前言¶
在 DeepSeek Harness (DSH) 的 Web 控制台开发中,开发者常面临终端交互受限、难以实时追踪 AI 生成的文件以及缺乏全链路行为统计的问题。dsh-devpanel 作为一个开发者工具箱插件,直接在浏览器控制台中提供了真实的多标签 PTY 终端以及 AI 输出文件浏览器。它不依赖复杂的构建流程,通过挂载 Remote 命名空间和注入样式表,为 DSH 增加了原生终端的交互体验和可视化的工作流追踪能力。
插件定位¶
- 名称:dsh-devpanel
- 维护者:lispking
- 核心价值:在浏览器端复刻原生终端体验,并打通 AI 工具调用与文件变更的关联,提供双维度(AI + 终端)的行为统计。
核心功能¶
该插件通过三个主要面板增强 DSH 控制台:
1. 真实 PTY 终端面板¶
终端面板停靠在编辑器下方,提供类似原生 Shell 的环境。
- 真实会话:在会话的工作目录中启动系统登录 Shell (
$SHELL,回退到/bin/sh),并正确导出TERM环境变量,确保git、ls等命令的彩色输出和提示符正常渲染。 - 多标签管理:支持新建标签页、关闭单标签页、关闭全部。关闭最后一个标签页会销毁面板,重新打开则初始化新的默认标签。
- 原生行为:支持选中文本复制、
Cmd/Ctrl+Shift+V粘贴、clear命令,并能正确处理多字节 UTF-8 输出,避免乱码。 - 进程控制:可以向前台进程组发送
SIGINT、SIGTERM、SIGKILL、SIGTSTP和SIGHUP信号,或终止捕获的进程树(附带 2 秒宽限期)。 - 增量输出:浏览器通过轮询
read接口获取增量输出,主机端维护 1MB 的滚动缓冲区,确保长输出不会导致内存溢出。
2. AI 输出文件侧边栏¶
右侧侧边栏列出当前会话中 AI 写入或编辑的文件,以及 Shell 命令产生的文件。
- 来源追踪:收集 AI 工具的
write/edit调用产生的文件(去重,按首次出现排序),并解析 Shell 命令输出中的路径进行验证。 - 多格式渲染:支持语法高亮、Markdown 渲染、图片预览,并提供全屏查看模式。
3. 双维度使用统计面板¶
通过模态覆盖层展示 AI 和终端的活动数据。
- 数据维度:合并 AI 活动侧(Token 消耗、调用次数、模型分布、响应时长)与终端活动侧(会话数、提交命令数、运行时长)。
- 可视化:包含概览卡片、每日双系列趋势图、年度活动热力图。
- 持久化:历史会话索引通过
ctx.sessionQuery最佳尝试回放,并持久化到DSH_HOME/devpanel/usage-v1.json。 - 导出:支持调用和终端详情的 CSV/JSON 导出。
其他特性¶
- 会话作用域 CWD:终端和相对文件读取均基于会话的项目目录(回退至用户主目录或主机 CWD)。
- 双语 UI:内置简体中文和英文字典,注册在
toolkit命名空间下。 - 干净生命周期:插件卸载时会终止所有活动的 PTY 会话,清理注入的样式表和 Remote 命名空间。
架构设计¶
插件采用客户端/主机分离的双面架构,通过 Typert Remote 边界通信:
- 主机端:提供
TerminalPanelService(管理 PTY 会话、滚动缓冲区)和UsageService(处理session/event火箭筒、持久化统计)。 - 客户端:通过挂载
TYPERT_REMOTE命名空间,注册三个插槽:conversation.session.header.utilities(操作图标)、details(文件侧边栏,优先级-10覆盖默认详情页)、conversation.composer.dock(终端对话框)。
安装与启用¶
目前未提供具体的安装命令。可以通过以下链接获取插件源码或目录信息:
- GitHub 仓库:https://github.com/lispking/dsh-devpanel
- 插件目录:https://www.skillhub.cn/plugins/lispking/dsh-devpanel
典型用法¶
- 终端交互:在 DSH 控制台顶部工具栏点击终端图标,启动多标签终端。手动输入命令,或启动后台进程(如
python server.py),观察实时增量输出。 - 文件浏览:在 AI 编写代码或修改配置后,点击控制台顶部工具栏的侧边栏图标,查看右侧列出的所有 AI 生成或修改的文件,支持预览图片和代码高亮。
- 工作统计:点击控制台顶部的统计图标,打开模态面板,查看 Token 消耗、模型分布以及终端运行时长,并导出 CSV 分析数据。
适用场景与注意¶
- 适用对象:需要在浏览器中深度调试代码、频繁查看 AI 输出文件、或需要量化分析 AI 与终端协作效率的开发者。
- 注意事项:
- 插件以当前 DSH 进程的权限运行,涉及文件读写和进程控制,安装前应检查源码与许可证。
- 插件的生命周期与会话绑定,插件卸载时会终止所有活动的 PTY 会话,请勿在会话中运行关键任务后再卸载插件。