61 lines
1.8 KiB
Markdown
61 lines
1.8 KiB
Markdown
# Integration: Audita
|
|
|
|
## Purpose
|
|
Define the Audita adapter contract used by the `polish` stage.
|
|
|
|
## Adapter Boundary
|
|
Interface:
|
|
- `audita.Runner`
|
|
- method: `Run(ctx, PolishRequest) (PolishResult, error)`
|
|
|
|
Primary implementation:
|
|
- `internal/adapters/audita/SubprocessRunner`
|
|
|
|
Execution mode:
|
|
- subprocess invocation of `audita process`
|
|
|
|
## Request Contract
|
|
`PolishRequest` carries:
|
|
- required transcript/glossary/output/work-dir paths;
|
|
- optional report path (required when report mode is enabled);
|
|
- generated config and stdout/stderr log paths;
|
|
- optional module/model/base-url/config/output-schema/concurrency settings.
|
|
|
|
## Result Contract
|
|
`PolishResult` returns:
|
|
- processed transcript path;
|
|
- optional report path;
|
|
- work dir and generated-config/log paths;
|
|
- exit code, duration, binary provenance;
|
|
- adapter metadata map.
|
|
|
|
## Validation and Failure Semantics
|
|
Construction fails for invalid static config values, including:
|
|
- empty binary;
|
|
- non-positive timeout;
|
|
- invalid base URL;
|
|
- invalid output schema;
|
|
- invalid work-dir retention value;
|
|
- invalid concurrency values.
|
|
|
|
Run fails for:
|
|
- missing required request paths;
|
|
- missing required credential env var when configured (`llm_api_key_env`);
|
|
- subprocess execution failure;
|
|
- invalid processed transcript JSON (`segments` array required);
|
|
- invalid report JSON when reporting is enabled.
|
|
|
|
Failure results still include output/log/config/exit metadata for diagnostics.
|
|
|
|
## Deterministic Behavior
|
|
- CLI args are built from runner config + request in a fixed order.
|
|
- Generated invocation YAML (`audita.generated.v1`) is emitted when requested.
|
|
- Manifest writes are stage-owned; adapter itself is stateless.
|
|
|
|
## Config Mapping
|
|
Config fields consumed through runner/stage wiring are under `pipeline.audita.*`.
|
|
|
|
Maintained example with Audita config:
|
|
- `examples/pipeline.full.annotated.yml`
|
|
- `examples/pipeline.production.yml`
|