中文EN

@max-null/dsh-node-appearance

ui已测通过npmMIT

DeepSeek Harness Web GUI 会话节点外观插件:按节点类别/工具名可配置着色(左侧色条 + 淡色底),附带"显示思考过程"开关;纯前端渲染增强,改动即时生效并持久化到 DSH 用户设置文件。

下载量 / Downloads
1,397
依赖体积 / node_modules
15.49 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add @max-null/dsh-node-appearance

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

dsh-node-appearance

本插件属于 **@max-null/* 插件系列——这一系列共同构成 SSID(思灵 · Seek Soul in Darkness)** 桌面体验。SSID 是整合它们的盒:dsh-capture · dsh-chat-rail · dsh-chinese-thinking · dsh-draft-polish · dsh-guardian · dsh-habit · dsh-memory · dsh-node-appearance · dsh-plugin-center · dsh-quick-toolbar · dsh-skill-mcp-center · dsh-ssid-panels · dsh-ssid-zh-ui · dsh-achievements。

This plugin belongs to the **@max-null/* family — a set of plugins that together form the SSID (思灵 · Seek Soul in Darkness)** desktop experience.

会话节点外观插件:给 DeepSeek Harness Web GUI 的会话面板着色与重塑——节点 / 工具分类配色(可配置)、折叠摘要条按类别取色、接管触发通知卡(目标轮次字段化展示)、提问卡展示全部选项、交付文件行展开成清单、目标条详情折叠条。纯前端渲染增强,不改 DSH 源码,cordis.yml 一行挂载。

功能

  • 节点着色:工具调用、联网搜索、智能体调用、代码 / 指令执行、文件操作、交付文件、任务 / 目标、指令节点(/command)、思考行(Think)——每种类别一个可配置颜色,左侧 3px 色条 + 淡色底,深 / 浅主题均可读。
  • 过程组组头着色:内核把一串工具调用折成一行摘要时(「已读取文件并执行了命令」「已搜索代码」),组头按内核排在第一位的活动类别取色,与展开后各成员行的颜色同一色系——收起态也能一眼看出这一组在干什么。取色不解析标题文本,读的是内核在组头上发布的 data-process-activity 属性。
  • Turn 级折叠条着色:最外层的「已完成工作 · 用时 35 秒」用单独的中性色 summary(默认 #94a3b8)——它只有轮次号与工具计数,没有类别语义,硬套类别色是武断的。两条折叠条都只在收起态着色:展开后成员行各自带色,容器再涂就是两层色块叠在一起。
  • 两种折叠形态,两种涂法:过程组组头是「一行摘要」(以图标起头),走 3px 左轨 + 淡色底,内距比工具行宽(8px),让轨与图标之间有呼吸;Turn 级摘要条是整行宽的分节线(内核给它 padding: 0 加一条底部发丝线),改用底线染色、不加轨也不内缩 —— 否则轨会紧贴文字,而为补偿轨加的内缩又会让它与上下所有行错位。
  • 工具级颜色覆盖:任意工具名(如 web_search、subagent、run_code,不限出厂列表)可单独指定颜色,优先级高于类别色;shell 行的两个平台写法 bash / pwsh 互为别名。
  • 提问卡片:ask_user_question 的卡片改为展示当时给出的全部选项,被选中的选项用 ask 类别色(默认蓝)反显并打勾。官方转录卡只保留已选答案,提问一旦结算就再也看不到其他选项 —— 本插件把选项读回来。
  • 触发通知卡:接管内核的「唤醒本轮」通知卡(turn-trigger)。目标轮次那张原本把模型提示词原文连同骨架一起显示(<goal_round>、Objective: "…"、Round: 1/256、一整段英文执行要求),骨架对人不构成信息却占满展开区。接管后折叠头加轮次徽标(收起态即可读到走到第几轮),展开体改为字段化:「目标」是还原了 JSON 转义的目标原文,「模型收到的指令」独立成节并默认收起(保留可查性,不销毁)。其余触发来源(schedule / webhook / job / subagent …)按官方同构渲染 —— 遮蔽是全 key 的,见「已知限制」。
  • 目标条详情:官方目标条下方接一条与它拼成同一张卡的详情行(借待办卡片的折叠形态),把官方条上被 ellipsis 截断的目标展开成可读详情:完整目标、阶段、阻塞原因、自主轮次、目标标识。只读投影,不碰官方的编辑/暂停/清除,那四个按钮仍是官方在跑。
  • 交付文件行:present 的行改为折叠态只报「首个文件名 + 数量」,展开后逐文件成行(扩展名徽标 + 文件名 + 所在目录),并在结果文本上方标注行数。官方折叠行把全部文件名逗号拼成一行(fileNames() 的 .join(', ')),多文件时读不完,也看不出这一轮交付了几个。配色单列 deliver 类别(默认青蓝 #06b6d4)——本轮生成文件的那些行与交付行常常同屏出现,与 file(read/write)共用绿色会分不清谁是谁。
  • 思考过程显示开关:关闭后 Think 思考行前端隐藏(display: none),配置项与配色在同一张设置卡片里。
  • 上下文注入行(把 0.2.0 拿掉的画回来):DSH 从 dsh-v0.1.7-alpha.1 起,ui-chat 的 isVisibleChatNode() 把普通上下文注入行整个从对话面板滤掉——记忆快照、AGENTS.md、技能目录、时间快照这些全在其中,只放行含工具增删的 context 行。本插件用自有 kind(context-injection)接住同一批 user/message 再画回来:形态对齐官方 ContextInjectionRow(同一张折叠行、同一个 message.contextInjection 文案),配色沿用 context 类别。为什么不是接管:官方那条节点仍在生成、只是不再渲染,遮蔽同一个 key 根本轮不到它——改走 ChatNodeDataMap 这个 merge-extensible 的渲染 kind 注册口。由设置里的「显示上下文注入」开关控制,默认开;展开体不限高,滚动只留给会话消息流那一层。
  • 技能行(skill):接管内核的「加载技能」行。官方展开体是一张「说明」卡,里面用 <pre> 直接铺 skill 工具返回的规范渲染块——<skill_content> 套 <skill_resources> 再套 <skill_instructions>,那层 XML 壳对人不构成信息,却把技能正文夹在中间。接管后正文直出(壳在解析时丢掉),资源指引单独成节并默认收起(它解释技能去哪些路径找素材,属于按需查看的背景,不是正文);查看 入口、四态、状态词、技能名全部保留。结构不符时原样退回官方形态——绝不猜,也不把展开体渲染成空白。
  • 系统提示词行(0.2.0 恢复):isVisibleChatNode() 也排除 system-prompt,官方 system-message / request-prompt 两张卡同样「仍在生成、只是不再渲染」。本插件把 system-message 那半接回来(自有 kind system-prompt-notice):系统提示词发生变化时各出一张卡——首轮那张就是「会话发起时的系统提示词」,之后内容变了再出一张并标「系统提示词更新」。request-prompt 那半不做:它要复刻与 system-message 协作的位置状态机(shownByUpdate / stableRequestPromptAnchor),增量只是「没变时也补一张」。形态照官方(同一个折叠行、同一对文案 key、保留 data-system-prompt-body 锚点),不渲染 markdown——提示词的换行与缩进本身就是信息。状态推导直接调官方的服务方法 uiConversation.inspectSystemPrompt,不自己复刻。由「显示系统提示词」开关控制,默认开。
  • 即时生效:设置改动立即重绘会话,并持久化到 DSH 用户设置文档($DSH_HOME/settings.yaml)。

截图

会话节点着色 · 设置卡片

!会话节点着色 · !设置卡片

提问卡片 · 目标条(折叠 / 展开)

!提问卡片 · !目标条折叠 !目标条展开

目标详情(展开 · 长目标按 ① ② ③ 分条折行)

!目标详情分条折行

交付文件行(折叠)

!交付行折叠

交付文件行(展开 · 青=交付、绿=写入)

!交付行展开

折叠摘要条(收起 · 组头按类别取色) · 折叠摘要条(展开 · 成员行各自带色)

!组头收起 · !组头展开

Turn 级摘要条(收起 · 中性色 summary)

!Turn 摘要条收起

触发通知卡(收起 · 带轮次徽标) · 触发通知卡(展开 · 字段化)

!触发卡收起 · !触发卡展开

上下文注入行(0.2.0 起官方隐藏,本插件画回来 · 展开态)

!上下文注入行

技能行(展开 · 正文直出,XML 壳已剥)

!技能行

系统提示词卡(0.2.0 起官方隐藏,本插件画回来 · 展开态)

!系统提示词卡

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:16,最后更新 2026-10-02

链接

GitHub · Homepage · npm

同类插件