diff --git a/README.md b/README.md index 200d02d..8797523 100644 --- a/README.md +++ b/README.md @@ -47,17 +47,31 @@ The compatible application versions are selected through these variables: | `dnd_pipeline_manage_build_dependencies` | `true` | | `dnd_pipeline_go_snap_channel` | `1.26/stable` | | `dnd_pipeline_go_binary` | `/snap/bin/go` | +| `dnd_pipeline_campaigns_repository_url` | `https://gitea.maximumdirect.net/eric/campaigns.git` | +| `dnd_pipeline_campaigns_revision` | `main` | +| `dnd_pipeline_campaigns_root` | `/usr/local/share/narratio/campaigns` | +| `dnd_pipeline_prompt_library_repository_url` | `https://gitea.maximumdirect.net/eric/narratio-prompts.git` | +| `dnd_pipeline_prompt_library_revision` | `main` | +| `dnd_pipeline_prompt_library_root` | `/usr/local/share/narratio/prompt-library` | The common dependency-management switch controls whether every application -role installs Git and Go. The Go channel and executable are likewise passed to -all five roles. Advanced callers may supply unmapped standalone-role variables -directly through normal Ansible variable precedence. +role installs Git and Go. Callers that disable it must provide both Git and Go. +The Go channel and executable are likewise passed to all five roles. Advanced +callers may supply unmapped standalone-role variables directly through normal +Ansible variable precedence. Narratio receives the standard Seriatim, Audita, Notarius, and Scriptorium binary and configuration paths managed by the composed roles. Notarius is installed but remains disabled in Narratio until a later feature supplies a -Notarius pipeline. Campaign content, prompt content, operator policy, and -secret delivery are intentionally deferred. +Notarius pipeline. + +The role deploys the campaign repository directly at the campaign root and +the prompt library directly at the prompt-library root. By default both follow +their `main` branches; callers can select an immutable commit, tag, or another +branch through the revision variables. Narratio receives the deployed campaign +root, while Scriptorium receives its `prompts/` and `schemas/` children. +Execution profiles, model backends, credentials, and D&D processing policy +remain deferred. ## Validation diff --git a/defaults/main.yml b/defaults/main.yml index ca45536..bba698f 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -7,3 +7,9 @@ dnd_pipeline_scriptorium_version: v0.13.0 dnd_pipeline_manage_build_dependencies: true dnd_pipeline_go_snap_channel: 1.26/stable dnd_pipeline_go_binary: /snap/bin/go +dnd_pipeline_campaigns_repository_url: https://gitea.maximumdirect.net/eric/campaigns.git +dnd_pipeline_campaigns_revision: main +dnd_pipeline_campaigns_root: /usr/local/share/narratio/campaigns +dnd_pipeline_prompt_library_repository_url: https://gitea.maximumdirect.net/eric/narratio-prompts.git +dnd_pipeline_prompt_library_revision: main +dnd_pipeline_prompt_library_root: /usr/local/share/narratio/prompt-library diff --git a/meta/argument_specs.yml b/meta/argument_specs.yml index f5cba9a..48044a7 100644 --- a/meta/argument_specs.yml +++ b/meta/argument_specs.yml @@ -39,3 +39,27 @@ argument_specs: type: str required: true description: WhisperX transcription endpoint passed to Narratio. + dnd_pipeline_campaigns_repository_url: + type: str + required: true + description: Git origin containing the campaign registry. + dnd_pipeline_campaigns_revision: + type: str + required: true + description: Campaign branch, tag, or commit to deploy. + dnd_pipeline_campaigns_root: + type: path + required: true + description: Campaign checkout and Narratio registry root. + dnd_pipeline_prompt_library_repository_url: + type: str + required: true + description: Git origin containing the prompt library. + dnd_pipeline_prompt_library_revision: + type: str + required: true + description: Prompt-library branch, tag, or commit to deploy. + dnd_pipeline_prompt_library_root: + type: path + required: true + description: Prompt-library checkout root. diff --git a/meta/main.yml b/meta/main.yml index 062b42e..b1df3bc 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -41,6 +41,8 @@ dependencies: scriptorium_manage_build_dependencies: "{{ dnd_pipeline_manage_build_dependencies }}" scriptorium_go_snap_channel: "{{ dnd_pipeline_go_snap_channel }}" scriptorium_go_binary: "{{ dnd_pipeline_go_binary }}" + scriptorium_prompt_dir: "{{ dnd_pipeline_prompt_library_root ~ '/prompts' }}" + scriptorium_schema_dir: "{{ dnd_pipeline_prompt_library_root ~ '/schemas' }}" - role: rakestraw.narratio vars: narratio_version: "{{ dnd_pipeline_narratio_version }}" @@ -48,6 +50,7 @@ dependencies: narratio_go_snap_channel: "{{ dnd_pipeline_go_snap_channel }}" narratio_go_binary: "{{ dnd_pipeline_go_binary }}" narratio_whisperx_transcribe_url: "{{ dnd_pipeline_whisperx_transcribe_url }}" + narratio_campaigns_root: "{{ dnd_pipeline_campaigns_root }}" narratio_seriatim_binary: /usr/local/bin/seriatim narratio_audita_binary: /usr/local/bin/audita narratio_audita_config_path: /usr/local/etc/audita/config.yml diff --git a/tasks/main.yml b/tasks/main.yml index ed97d53..87b10b1 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1 +1,27 @@ --- +- name: Create the prompt-library root + become: true + ansible.builtin.file: + path: "{{ dnd_pipeline_prompt_library_root }}" + state: directory + owner: root + group: narratio + mode: "0755" + +- name: Deploy the campaign registry + become: true + ansible.builtin.git: + repo: "{{ dnd_pipeline_campaigns_repository_url }}" + dest: "{{ dnd_pipeline_campaigns_root }}" + version: "{{ dnd_pipeline_campaigns_revision }}" + update: true + force: true + +- name: Deploy the prompt library + become: true + ansible.builtin.git: + repo: "{{ dnd_pipeline_prompt_library_repository_url }}" + dest: "{{ dnd_pipeline_prompt_library_root }}" + version: "{{ dnd_pipeline_prompt_library_revision }}" + update: true + force: true