deepseek-harness/docs
Tianyi Cui 149ab1bba4 feat(acp): render bash as a terminal card via the _meta convention
When the client advertises clientCapabilities._meta.terminal_output (Zed), a
bash tool call now renders as a real TERMINAL card — a cwd header + the command
+ its output — instead of the plain ```console text block. Keeps agent-side
dsh-bash execution; rejects the spec's client-side terminal/create (which would
bypass sandbox/env-scrub/ownership/cwd). Matches what claude-agent-acp and
codex-acp do; wire contract verified against Zed's source.

- dsh-tools: a provider-neutral ToolTerminal shape ({ cwd?, output? }) on
  ToolCallPresentation/ToolResultPresentation — a tool asks "render me as a
  terminal"; no ACP types leak in.
- dsh-tool-bash: bash presentCall marks terminal (cwd from an explicit absolute
  workdir, else left for the bridge to fill from the session cwd); presentResult
  carries the output alongside the ```console fallback.
- dsh-acp: initialize reads/remembers the _meta.terminal_output capability;
  streamSessionEventUpdate maps a terminal presentation to
  content:[{type:'terminal',terminalId}] + _meta.terminal_info on the call and
  _meta.terminal_output on the update WHEN capable — else the unchanged text
  path. terminalId is the callId; cwd defaults to the session header. The pure
  translator gained a TerminalRendering {enabled,cwd} param (off by default).

Tests via the REAL tool-bash + bash-local: capability ON -> terminal content +
_meta; OFF -> no _meta (text path). The with-key e2e adds a real-model terminal
card case (echo over ACP with the capability on). 773 tests, 100% coverage.

The exit-status pill (_meta.terminal_exit), live streaming
(_meta.terminal_output_delta), and command classification are RFC follow-ups.
2026-06-18 17:25:09 +08:00
..
cookbook Merge remote-tracking branch 'origin/master' into feat/acp-2-bridge 2026-06-18 03:31:04 +08:00
postmortem fix(acp): address Codex review — strict ctx.get, correct fiber-ownership doc + test 2026-06-18 03:48:33 +08:00
rfc feat(acp): render bash as a terminal card via the _meta convention 2026-06-18 17:25:09 +08:00
AGENTS.md docs: unify ADR/RFC trees into one lifecycle-organized RFC tree 2026-06-18 02:18:24 +08:00
architecture.md Merge remote-tracking branch 'origin/master' into feat/acp-2-bridge 2026-06-18 03:31:04 +08:00
development.md Merge remote-tracking branch 'origin/master' into worktree-md-wrap-guard 2026-06-16 23:38:58 +08:00
module-graph.md feat(acp): tool-owned tool-call UI presentation (title/command/output) 2026-06-18 09:01:36 +08:00