53 lines
1.7 KiB
Markdown
53 lines
1.7 KiB
Markdown
# Internal: Adapters
|
|
|
|
## Purpose
|
|
Define external integration boundaries and default adapter wiring used by app/stage orchestration.
|
|
|
|
## Adapter Boundaries
|
|
Narratio stage logic depends on adapter interfaces, not transport-specific details.
|
|
|
|
Primary adapters:
|
|
- `whisperx.Client`
|
|
- `seriatim.Runner`
|
|
- `audita.Runner`
|
|
- `scriptorium.Runner`
|
|
- `storage.ObjectStore`
|
|
- `notify.Sender`
|
|
|
|
Legacy compatibility boundary:
|
|
- `storage.Backend` remains in the storage adapter package and defaults to `NoopBackend`; current pipeline stages use `storage.ObjectStore`.
|
|
|
|
## Ownership
|
|
Adapters own:
|
|
- HTTP/subprocess/SDK argument and transport details.
|
|
- Backend-specific request/response mapping.
|
|
|
|
Adapters do not own:
|
|
- stage ordering/skip/force logic;
|
|
- manifest transitions;
|
|
- canonical path policy.
|
|
|
|
## Default Wiring
|
|
`internal/app/runner.go` initializes default adapters when not injected:
|
|
- WhisperX HTTP client from pipeline config.
|
|
- Seriatim subprocess runner.
|
|
- Audita subprocess runner.
|
|
- Scriptorium subprocess runner.
|
|
- Noop notifier (`notify.NoopSender`).
|
|
- Object store only when required by selected stages/config.
|
|
|
|
Object-store construction goes through `newCommandObjectStore`, which loads configured filesystem secrets before adapter initialization.
|
|
|
|
## Failure Semantics
|
|
- Constructor errors fail stage execution setup early.
|
|
- Runtime adapter errors propagate to stage code and then manifest failure handling.
|
|
- Subprocess adapters persist stage logs/generated configs through stage-managed paths.
|
|
|
|
## Test Surfaces
|
|
- `internal/adapters/whisperx/http_test.go`
|
|
- `internal/adapters/seriatim/subprocess_test.go`
|
|
- `internal/adapters/audita/subprocess_test.go`
|
|
- `internal/adapters/scriptorium/subprocess_test.go`
|
|
- `internal/adapters/storage/*_test.go`
|
|
- `internal/app/runner_test.go`
|