dsh-envelope-highlight
v0.1.3
Published
Restore syntax highlighting of read/write tool envelopes inside run_code (PTC / Code Mode) result cards
Maintainers
Readme
dsh-envelope-highlight
在 run_code(PTC / Code Mode)结果中恢复 read 工具结果的语法着色。
问题
原生模式下,read 工具结果以「行号 + shiki 语法着色」的代码视图
(ReadBlock)渲染。而 PTC / Code Mode 下,模型通过 run_code
程序调用工具,read 的结果有两种形态,官方 UI 都渲染成纯文本:
- 结构化对象
{ path, lines, totalLines }—— 程序return后以 原始 JSON 进入run_code卡的 OUT 区; - envelope 文本(
<path>…</path>\n<type>file</type>\n<content>…\n</content>, tool-fs 的formatReadOutput)—— read 子调用(code-dispatch)的 content。
两种形态都丢失语法着色。
方案
本插件注册两个 tool.call.toolview keyed 视图:
run_code(官方未注册,零替换风险):OUT 区中的 read envelope 与 read 结果 JSON 解析为ReadBlock——行号 gutter + shiki 着色,与原生 read 卡同一视觉语言。read(priority: -1接管官方行):code-dispatch 子调用 (resultView恒为 null)从其 content 解析 envelope 渲染为ReadBlock; 原生 read 调用完整复刻官方ReadRow行为。
非 read 输出保持原样。
安装
dsh plugin --profile <profile> add dsh-envelope-highlight构建(源码)
# 需要 dsh 源码检出(DSH_CHECKOUT,含 tsc/tsdown)
npm run build # host(tsc)+ client(tsdown)→ lib/
npm pack范围
- ✅
run_code会话内结果卡:read envelope / read 结果 JSON → 着色ReadBlock - ✅ run_code 树下的
read子调用行(code-dispatch)→ 着色ReadBlock; 原生 read 行不变 - ❌ 详情面板(
conversation.details.tool)——暂未覆盖
许可证
MIT
