feat(tools): run_code description param + native-parity dispatch logging + web code-mode seam

run_code gains a required bash-style description parameter: presentCall
titles the card with it and moves the program to rawInput, so every
surface gets a readable label. tool/code-dispatch now logs each
sub-call's complete content/isError (the tool/result vocabulary),
replacing the bounded resultSummary and deleting the summarize/cwd
machinery — a UI renders sub-calls through the identical path as native
results. The dsh config tree mounts the worker code runtime and reads
DSH_TOOLS_MODE (temporary seam until per-session mode selection lands).

Session format stays v0 (pre-release churn). Code-mode ACP/TUI fixtures
re-recorded; TUI presenter pin refreshed; catalogs regenerated. Keyless
web smoke pins the code-mode wire contract (tools=[run_code] + SDK
prompt section).
This commit is contained in:
Tianyi Cui
2026-07-26 02:43:34 +08:00
parent 6f50208ea3
commit d60dea9f55
40 changed files with 1312 additions and 1291 deletions

View File

@@ -1,7 +1,7 @@
terminal 100x36 buffer=normal length=38 base=2 viewport=2
terminal 100x36 buffer=normal length=53 base=17 viewport=17
lifecycle started=1 stopped=0 progress=inactive
title "Using ONE run_code program: call — DSH TUI snapshot"
cursor hidden column=1 viewportRow=31 bufferRow=33
cursor hidden column=1 viewportRow=31 bufferRow=48
buffer
0| " DEEPSEEK HARNESS"
style 1-8 fg=bright-blue bold
@@ -32,58 +32,107 @@ buffer
11| " Reasoning "
style 1-9 fg=bright-black italic
12| " The user wants me to write a single run_code program that: "
style 1-58 fg=bright-black italic
style 1-36 fg=bright-black italic
style 37-44 fg=cyan
style 45-58 fg=bright-black italic
13| " 1. Calls bash tool twice - first with echo CODE_ONE, then with echo CODE_TWO "
style 1-3 fg=bright-blue
style 4-38 fg=bright-black italic
style 4-9 fg=bright-black italic
style 10-13 fg=cyan
style 14-38 fg=bright-black italic
style 39-51 fg=cyan
style 52-63 fg=bright-black italic
style 64-76 fg=cyan
14| " 2. console.log exactly captured output "
style 1-3 fg=bright-blue
style 4-23 fg=bright-black italic
style 4-14 fg=cyan
style 15-23 fg=bright-black italic
style 24-38 fg=cyan
15| " 3. Return the two outputs joined with a plus sign "
15| " 3. Returns the two outputs joined with a plus sign "
style 1-3 fg=bright-blue
style 4-49 fg=bright-black italic
style 4-50 fg=bright-black italic
16| " "
17| " Let me write this carefully. "
style 1-28 fg=bright-black italic
18| <blank>
19| "▌ "
17| " The program body is an async function. I need to: "
style 1-49 fg=bright-black italic
18| " - Call tools.bash({command: \"echo CODE_ONE\", description: \"Echo CODE_ONE\"}) "
style 1-2 fg=bright-blue
style 3-7 fg=bright-black italic
style 8-75 fg=cyan
19| " - Call tools.bash({command: \"echo CODE_TWO\", description: \"Echo CODE_TWO\"}) "
style 1-2 fg=bright-blue
style 3-7 fg=bright-black italic
style 8-75 fg=cyan
20| " - Extract the stdout text from each "
style 1-2 fg=bright-blue
style 3-35 fg=bright-black italic
21| " - console.log exactly captured output "
style 1-2 fg=bright-blue
style 3-22 fg=bright-black italic
style 23-37 fg=cyan
22| " - Return them joined with + "
style 1-2 fg=bright-blue
style 3-26 fg=bright-black italic
style 27-27 fg=cyan
23| " "
24| " Let me look at the bash output shape. From the schema, it returns {kind: \"foreground\", stdout: "
style 1-66 fg=bright-black italic
style 67-99 fg=cyan
25| " {text: string, ...}, ...}. So I'd access result.stdout.text. "
style 1-25 fg=cyan
style 26-41 fg=bright-black italic
style 42-59 fg=cyan
style 60-60 fg=bright-black italic
26| " "
27| " The echo commands produce output like \"CODE_ONE\\n\" - I should trim the trailing newline. "
style 1-88 fg=bright-black italic
28| " "
29| " Let me write the code. "
style 1-22 fg=bright-black italic
30| <blank>
31| "▌ "
style 0-0 fg=green
20| "▌ ✓ const result1 = await tools.bash({ command: \"echo CODE_ONE\", description: \"First echo\" }); "
32| "▌ ✓ Echo CODE_ONE and CODE_TWO, join with plus "
style 0-0 fg=green
style 2-2 fg=green bold
style 3-99 bold
21| "▌ cons "
style 3-45 bold
33| "▌ captured output "
style 0-0 fg=green
style 2-5 bold
22| "▌ captured output "
34| "▌ CODE_ONE+CODE_TWO "
style 0-0 fg=green
23| "▌ CODE_ONE+CODE_TWO "
35| "▌ "
style 0-0 fg=green
24| "▌ "
style 0-0 fg=green
25| <blank>
26| " Reasoning "
36| <blank>
37| " Reasoning "
style 1-9 fg=bright-black italic
27| " The user asked me to reply with that joined string only and stop. The joined string is "
38| " The output shows: "
style 1-17 fg=bright-black italic
39| " 1. console.log(\"captured output\") printed captured output "
style 1-3 fg=bright-blue
style 4-33 fg=cyan
style 34-42 fg=bright-black italic
style 43-57 fg=cyan
40| " 2. The return value CODE_ONE+CODE_TWO was also printed "
style 1-3 fg=bright-blue
style 4-20 fg=bright-black italic
style 21-37 fg=cyan
style 38-54 fg=bright-black italic
41| " "
42| " The user said \"Reply with that joined string only and stop.\" So I should reply with just "
style 1-99 fg=bright-black italic
28| " CODE_ONE+CODE_TWO. "
43| " CODE_ONE+CODE_TWO. "
style 1-17 fg=cyan
style 18-18 fg=bright-black italic
29| <blank>
30| " Assistant "
44| <blank>
45| " Assistant "
style 1-9 fg=bright-magenta bold
31| " CODE_ONE+CODE_TWO "
32| "────────────────────────────────────────────────────────────────────────────────────────────────────"
46| " CODE_ONE+CODE_TWO "
47| "────────────────────────────────────────────────────────────────────────────────────────────────────"
style 0-99 dim
33| " "
48| " "
style 1-1 inverse
34| "────────────────────────────────────────────────────────────────────────────────────────────────────"
49| "────────────────────────────────────────────────────────────────────────────────────────────────────"
style 0-99 dim
35| "deepseek-v4-flash /workspace/project ↑4.1k ↓227 cache 53% 4% context tools:"
style 0-79 dim
style 82-99 dim
36-37| <blank>
50| "deepseek-v4-flash /workspace/project ↑150 ↓464 cache 98% 4% context tools:c"
style 0-78 dim
style 81-99 dim
51-52| <blank>