# Keyless replay includes the live `cordis.yml`, disables the key-requiring
# DeepSeek adapter, and inserts `llm-replay` to serve recorded JSONL without a key
# or network; every other app entry remains shared. It also restates the acp-agent
# config to re-pin `deepseek-v4-flash`: `cordis.yml` ships `deepseek-v4-pro`, but the
# recorded corpus (request headers, provenance, system prompt) was captured on flash,
# so replay holds the recorded model to stay reproducible without a re-record. A config
# patch replaces the whole app config, so the base fields are restated verbatim.
# With `DSH_SNAPSHOT=replay`, the app bin reads `DSH_SNAPSHOT_FILE` and optional
# `DSH_SNAPSHOT_OVERRIDE` from the harness. The one-shot patch applies at include
# load time, and stdout remains reserved for ACP JSON-RPC.
- id: base
  name: '@cordisjs/plugin-include'
  config:
    path: ./cordis.yml
    patches:
      # `name` asserts the target: a mismatch skips the patch and warns only when
      # a logger exists. A renamed id leaves a stale adapter entry, but replay still
      # short-circuits through `llm-replay`.
      - id: llm-deepseek
        name: '@deepseek-ai/dsh-llm-deepseek'
        disabled: true
      - id: acp-agent
        name: '@deepseek-ai/dsh-acp-demo'
        config:
          provider: deepseek-official
          model: deepseek-v4-flash
          persistenceRoot: !!js process.env.DSH_SNAPSHOT_SESSIONS_ROOT ?? './.sessions'
          # Replay fixtures are raw JSONL; the whole-config patch must restate
          # the compression choice or the default zstd frames hide the logs
          # from the harness's harvest.
          persistenceCompression: none
          workspaceContext:
            maxBytes: 65536
          persona: |
            You are a coding assistant powered by the {{model}} model. Your working directory is {{cwd}}. Your bash tool runs under a file sandbox — a `[sandbox: file access denied …]` result is policy, not a command bug.

            Verify your work by running the code or tests. Keep answers brief and factual.
      - id: sandbox
        name: '@deepseek-ai/dsh-sandbox-local'
        config:
          runnerCommand:
            - bash
            - -c
            - while [ "$1" != "--" ]; do shift; done; shift; exec "$@"
            - passthrough-runner
          runnerFailureSignatures:
            - 'passthrough-runner: profile rejected'
      - insert:
          - id: llm-replay
            name: '@deepseek-ai/dsh-llm-replay'
            config:
              providers:
                - id: deepseek-official
                  name: DeepSeek
                  models:
                    - id: deepseek-v4-flash
                    - id: deepseek-v4-pro
