sandbox-acp-agent's whole surface moves into examples/acp-agent following the example's existing multi-variant shape (the code-mode/both-mode overlays): sandbox.cordis.yml + its replay overlay, the four snapshot scenarios (config-options / mode-switching / escalation-approved / escalation-rejected) as a 'sandbox' header class over per-scenario configPath — goldens byte-identical, zero re-recording — and escalation.e2e.ts unchanged apart from the config path. One ACP example remains; demo:sandbox-acp keeps its name and boots the variant. References (both RFCs, group/package READMEs, the examples table and test map, the e2e workflow comment) now point at the variant.
31 lines
1.5 KiB
YAML
31 lines
1.5 KiB
YAML
# Snapshot-test REPLAY overlay for the sandboxed composition: the SAME app
|
|
# tree as cordis.yml, derived from it by an include — the one difference is
|
|
# the model backend. A keyless replay run cannot boot the real adapter
|
|
# (llm-deepseek's apply() throws without DEEPSEEK_API_KEY), so the include
|
|
# patches the live tree at load time: the llm-deepseek entry is disabled by
|
|
# id, and the llm-replay entry (which serves a recorded session JSONL — no
|
|
# API key, no network) is inserted. Every other entry — the sandbox provider,
|
|
# the confined bash executor, the approval seam, the app — IS the live tree.
|
|
# The sandbox provider probes for a platform runner per EXECUTION, not at
|
|
# boot, so a protocol-only scenario (session config options) replays on hosts
|
|
# with no runner at all.
|
|
#
|
|
# The dsh-acp-agent bin selects this file for DSH_SNAPSHOT=replay (the
|
|
# sibling-swap of whatever config path it was handed). The replay fixture
|
|
# path comes from $DSH_SNAPSHOT_FILE, set by the snapshot harness. stdout
|
|
# stays reserved for the ACP JSON-RPC protocol.
|
|
- id: base
|
|
name: '@cordisjs/plugin-include'
|
|
config:
|
|
path: ./sandbox.cordis.yml
|
|
patches:
|
|
# The name is an assertion, not an override: the include skips the patch
|
|
# (warning) when the id points at a different plugin, so this can never
|
|
# disable the wrong entry.
|
|
- id: llm-deepseek
|
|
name: '@deepseek-ai/dsh-llm-deepseek'
|
|
disabled: true
|
|
- insert:
|
|
- id: llm-replay
|
|
name: '@deepseek-ai/dsh-llm-replay'
|