跳到主要内容

dsh-envelope-highlight

已验证

dsh-envelope-highlight · v0.1.3 · MIT · Web 界面

Restore syntax highlighting of read/write tool envelopes inside run_code (PTC / Code Mode) result cards

安装

dsh plugin add dsh-envelope-highlight

用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。

源码

标签

作者

说明文档

dsh-envelope-highlight

在 run_code(PTC / Code Mode)结果中恢复 read 工具结果的语法着色。

问题

原生模式下,read 工具结果以「行号 + shiki 语法着色」的代码视图 (ReadBlock)渲染。而 PTC / Code Mode 下,模型通过 run_code 程序调用工具,read 的结果有两种形态,官方 UI 都渲染成纯文本:

  1. 结构化对象 { path, lines, totalLines } —— 程序 return 后以 原始 JSON 进入 run_code 卡的 OUT 区;
  2. 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