66 lines
2.2 KiB
Markdown
66 lines
2.2 KiB
Markdown
# narratio
|
|
|
|
`narratio` is a Go-based orchestration application for processing D&D session audio into transcripts and downstream artifacts.
|
|
|
|
This repository currently contains a **working scaffold** with strict config loading, local workdir/manifest handling, resumable stage control, a real WhisperX HTTP adapter, and a real `prepare` + `transcribe` path.
|
|
|
|
## Expected Config Files
|
|
|
|
`narratio` expects two YAML files:
|
|
|
|
- `pipeline.yml`: pipeline/workspace settings (`workspace`, `storage`, `whisperx`, `seriatim`, `audita`, `analyzer`, `notification`)
|
|
- `session.yml`: per-session settings (`session_id`, `inputs`, optional metadata)
|
|
|
|
WhisperX config contract in `pipeline.yml`:
|
|
|
|
- required: `whisperx.transcribe_url`
|
|
- defaulted when omitted: `whisperx.language` (`en`), `whisperx.timeout` (`30m`), `whisperx.retries` (`3`), `whisperx.retry_delay` (`2s`), `whisperx.concurrency` (`2`)
|
|
|
|
Decoding is strict (`KnownFields(true)`), so unknown YAML fields fail fast.
|
|
|
|
Example minimal files are available under `examples/`:
|
|
|
|
- `examples/pipeline.minimal.yml`
|
|
- `examples/session.minimal.yml`
|
|
|
|
## Current Scaffold Status
|
|
|
|
Implemented now:
|
|
|
|
- strict config load + validation
|
|
- local artifact/workdir creation and locking
|
|
- manifest create/load/save and stage status tracking
|
|
- stage framework with real `prepare` and `transcribe` stages; placeholder downstream stages
|
|
- resumable run control (`run`, `resume`, `run-stage`, `plan` with run/skip decisions)
|
|
- real WhisperX HTTP adapter plus fake/no-op adapters for test/scaffold usage
|
|
|
|
Not implemented yet:
|
|
|
|
- real Seriatim execution
|
|
- real Audita execution
|
|
- real analyzer integration
|
|
- real remote archive/storage backend
|
|
- real notification backend
|
|
|
|
## Run Tests
|
|
|
|
```bash
|
|
go test ./...
|
|
```
|
|
|
|
## Run Plan
|
|
|
|
```bash
|
|
go run ./cmd/narratio plan --config examples/pipeline.minimal.yml --session examples/session.minimal.yml
|
|
```
|
|
|
|
## Run Pipeline (Current State)
|
|
|
|
The current `run` command executes `prepare` + real `transcribe` + placeholder downstream stages and records progress in `manifest.json`.
|
|
|
|
Default CLI wiring builds and uses the real WhisperX HTTP adapter from `pipeline.whisperx` when `whisperx.transcribe_url` is configured.
|
|
|
|
```bash
|
|
go run ./cmd/narratio run --config examples/pipeline.minimal.yml --session examples/session.minimal.yml
|
|
```
|