The model reads a PNG/JPEG/WebP/GIF file, the bytes commit through the durable attachment lifecycle, and the tool result carries the real ImageBlock so the image enters context from the next request onward. FileSystem gains a bounded readBytes primitive (local + E2B providers); registration is conditional on the attachment store, and a strict execution gate refuses routes that do not declare image input, so a text route's durable history stays free of image blocks. llm-replay models may declare inputModalities, letting keyless ACP snapshots pin both the sha256-referenced success and the verbatim refusal. Supersedes the withdrawn route-scoped design of PR #598; the decision record is .agents/notes/implemented/feature/2026-08-10-minimal-read-image-tool.md.
42 lines
1.8 KiB
YAML
42 lines
1.8 KiB
YAML
# Keyless replay for the read-image success scenario. Include patches cannot
|
|
# target entries behind a nested include, so this restates the replay overlay
|
|
# directly over the base cordis.yml (the fs.cordis.snapshot.yml pattern) and
|
|
# re-pins the recorded flash model. The replay catalog declares image input on
|
|
# flash, so the strict read_image gate accepts the route and the tool result
|
|
# carries the durable image block; the live DeepSeek route cannot record this.
|
|
- id: base
|
|
name: '@cordisjs/plugin-include'
|
|
config:
|
|
path: ./cordis.yml
|
|
patches:
|
|
- 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'
|
|
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.
|
|
- insert:
|
|
- id: attachment-local
|
|
name: '@deepseek-ai/dsh-attachment-local'
|
|
- id: llm-replay
|
|
name: '@deepseek-ai/dsh-llm-replay'
|
|
config:
|
|
providers:
|
|
- id: deepseek-official
|
|
name: DeepSeek
|
|
models:
|
|
- id: deepseek-v4-flash
|
|
inputModalities: [text, image]
|
|
- id: deepseek-v4-pro
|
|
inputModalities: [text]
|