# 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 publish commit. cleanup_after_publish: false # Optional: local secret file loader (directory of ENV_VAR_NAME files). # secrets: # env_dir: ./secrets storage: # Optional storage backend selector; use "s3" for publish + S3 audio workflows. backend: s3 s3: # Required when using S3 audio or S3 publish 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 campaigns: # Optional; defaults to /usr/local/share/narratio/campaigns. root: /usr/local/share/narratio/campaigns # Optional command default when --campaign is omitted. default_campaign_id: sample-campaign spool: # Optional; defaults to /var/spool/narratio. root: /var/spool/narratio # Optional cleanup of run-scoped spool audio after successful publish commit. delete_audio_after_publish: false publish: # Optional booleans; defaults are true. enabled: true upload_run: true # Optional publish output rules; sources use Narratio artifact source IDs. outputs: - source: narratio.transcript.final_trimmed dest: transcripts/final.trimmed.json required: true - source: narratio.transcript.final_markdown dest: transcripts/final.md required: true - source: narratio.transcript.final_trimmed_markdown dest: transcripts/final.trimmed.md required: true - source: narratio.artifact.session_recap dest: artifacts/session_recap.md required: true - source: narratio.artifact.player_handout dest: 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/final.json output_schema: seriatim-intermediate report: true trim: # Keep disabled unless bounds prompt integration is configured. enabled: false output_path: transcripts/final.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.final_trimmed required: true previous_recap: source: narratio.previous_session.artifact.session_recap 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.final_trimmed required: true vars: session_id: true campaign_name: true output_kind: player_handout notification: # Optional notification settings. backend: "" recipient: "" timeout: 30s