# Full annotated pipeline example for implemented Narratio config fields. # Values are safe placeholders and must be adapted per environment. workspace: # Optional: defaults to /var/lib/narratio. root: /var/lib/narratio/workspace # Optional: remove run-scoped workdir after successful archive commit. cleanup_after_archive: false # Optional: local secret file loader (directory of ENV_VAR_NAME files). # secrets: # env_dir: ./secrets storage: # Optional storage backend selector; use "s3" for archive + S3 audio workflows. backend: s3 # Compatibility fields retained in schema. bucket: "" prefix: "" s3: # Required when using S3 audio or S3 archive uploads. bucket: my-dnd-archive # Optional; defaults to "dnd". root_prefix: dnd # Optional region/endpoint settings. region: us-east-1 endpoint: "" force_path_style: false # Optional; defaults shown explicitly. access_key_id_env: OBJECT_STORAGE_KEY_ID secret_access_key_env: OBJECT_STORAGE_KEY spool: # Optional; defaults to /var/spool/narratio. root: /var/spool/narratio # Optional cleanup of run-scoped spool audio after successful archive commit. delete_audio_after_archive: false archive: # Optional booleans; defaults are true. enabled: true upload_run: true # Optional promotion rules; required files fail archive if missing. promote_artifacts: - from: transcripts/trimmed.json to: transcripts/trimmed.json required: true - from: artifacts/session_recap.md to: artifacts/session_recap.md required: true - from: artifacts/player_handout.md to: artifacts/player_handout.md required: false whisperx: # Required. transcribe_url: "https://transcription.example.com/transcribe" # Optional overrides; defaults shown explicitly. language: en timeout: 30m retries: 3 retry_delay: 2s concurrency: 2 seriatim: # Optional overrides; defaults shown explicitly. binary: seriatim timeout: 10m output_schema: seriatim-intermediate coalesce_gap: 3.0 report: true env: # Optional advanced tuning; set only when needed. overlap_word_run_gap: 1.0 overlap_word_run_reorder_window: 1.0 backchannel_max_duration: 2.0 filler_max_duration: 1.25 audita: # Optional overrides; defaults shown explicitly where applicable. binary: audita timeout: 3h llm_api_key_env: AUDITA_LLM_API_KEY modules: [glossary, homophones, spoken_word, grammar] base_url: "" model: "" total_llm_concurrency: 2 proposal_llm_concurrency: 1 validation_model: "" validation_llm_concurrency: 1 transcript_description: "" config_path: /usr/local/etc/audita/config.yml output_schema: audita-v1 work_dir_retention: auto report: true normalize: # Optional; defaults shown explicitly. output_path: transcripts/normalized.json output_schema: seriatim-intermediate report: true trim: # Keep disabled unless bounds prompt integration is configured. enabled: false output_path: transcripts/trimmed.json bounds: prompt_id: dnd.session_bounds profile_id: local-fast transcript_input_name: transcript output_path: reports/session_bounds.json timeout: 10m render_debug: false render_output_path: reports/session_bounds.render.json seriatim: report: false scriptorium: binary: scriptorium config_path: /usr/local/etc/scriptorium/config.yml timeout: 10m render_debug: false artifacts: # Configured artifact keys map to source IDs narratio.artifact.. session_recap: enabled: true prompt_id: dnd.session_recap profile_id: local-fast output_path: artifacts/session_recap.md timeout: 10m inputs: transcript: source: narratio.transcript.trimmed required: true previous_recap: source: previous_session_artifact artifact: session_recap path: "" required: false vars: session_id: true session_date: true campaign_name: true previous_session_id: true output_kind: session_recap # Example dependent artifact: # - depends_on entries use artifact keys. # - narratio.artifact. sources require matching depends_on membership. player_handout: enabled: true depends_on: - session_recap prompt_id: dnd.player_handout profile_id: local-fast output_path: artifacts/player_handout.md timeout: 10m inputs: recap: source: narratio.artifact.session_recap required: true transcript: source: narratio.transcript.trimmed required: true vars: session_id: true campaign_name: true output_kind: player_handout analyzer: # Optional adapter settings. binary_path: "" timeout: 2m artifacts: output_dir: "" types: [] notification: # Optional notification settings. backend: "" recipient: "" timeout: 30s