Metadata-Version: 2.5
Name: run-manifest
Version: 0.1.4
Summary: Run Manifest creator
Project-URL: Homepage, https://codeberg.org/mionita1980/run-manifest
Project-URL: Source, https://codeberg.org/mionita1980/run-manifest
Author-email: Mihai Ionita <mionita1980@proton.me>
Requires-Python: >=3.14
Requires-Dist: python-dateutil>=2.8.2
Description-Content-Type: text/markdown

# Run Manifest

Run Manifest creator.

## Run

### Build Manifest Mode

```bash
uvx run-manifest "2026-08-13 09:00:00" "2026-08-13 10:00:01" --used-tokens 13 26 54054 832509 7617 --model opus "test/file1.txt" "test/file2.json" "test/file3.md"
```

`--used-tokens` is optional and takes 5 numbers, in order: API requests, fresh input, cache creation (written), cache read (replayed context), output. `--model` is optional and takes the model name. When omitted, the corresponding field is left out of the manifest.

Expected output:

```
{
  "start": "2026-08-13T06:00:00Z",
  "end": "2026-08-13T07:00:01Z",
  "runtime": 3601.0,
  "model": "opus",
  "used-tokens": {
    "api-requests": 13,
    "input": 26,
    "cache-creation": 54054,
    "cache-read": 832509,
    "output": 7617
  },
  "input-files": [
    {
      "name": "test/file1.txt",
      "crc32": "c56b525d"
    },
    {
      "name": "test/file2.json",
      "crc32": "373d4892"
    },
    {
      "name": "test/file3.md",
      "crc32": "98bab5fc"
    }
  ]
}
```

### Check Mode

Verify that a manifest's CRC-32 values still match the files it references:

```bash
uvx run-manifest --check manifest.json
```

Expected output (one of):

```
up-to-date
```

or

```
outdated: <name of the first file that changed or is missing>
```

The manifest can also be piped in via stdin instead of a file path:

```bash
cat manifest.json | uvx run-manifest --check
```

### Local Run

```bash
uvx --from . run-manifest
```
