deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
DeepSeek Harness 颜色预览插件:按需预览对话中提到的十六进制颜色。
当模型在对话中给出一个颜色代码(如 #F59E0B)时,你只需要说一句「预览这个颜色」,对话流里就会渲染出一张色块卡片——72px 真实色块 + RGB / HSL / WCAG 对比度 / 颜色名。
Codex 终端里输入 #F59E0B 会显示一个同字号的小色块,而 DeepSeek Harness 没有这个能力。我们本可以修改 markdown 渲染器全局扫描 #hex,但那会:
#fff、#123456 在代码、issue 编号里到处都是)这个插件选择了另一条路:零扫描、零渲染开销,只有工具被调用才工作。这正是「按需」的含义——不常驻、不打扰、要的时候一秒钟出结果。
#F59E0B(6 位)、#fff(3 位)、#ff000080(8 位含透明度)tool.call.toolview 的开放 key 域,不替换任何官方 UIcolor-preview.mjs 复制到你的 agent preset 目录:$target = Join-Path $env:USERPROFILE '.dsh\.agent-presets\<你的preset>\color-preview.mjs'
Copy-Item -LiteralPath .\color-preview.mjs -Destination $target
agent.cordis.yml 里加一行(放在任意位置):- id: color-preview
name: ./color-preview.mjs
如果你只是想试试,可以在 DSH 的创造模式(cordis preset)里用动态插件机制加载本文件的 host / client 两半。
color_preview 工具┌──────────────────────────┐
│ ████████████████████████ │ ← 72px 真实色块
│ #F59E0B │
├──────────────────────────┤
│ 名称: Amber 琥珀 │
│ RGB: rgb(245, 158, 11) │
│ HSL: hsl(38, 92%, 50%) │
│ 白字对比度: 2.15:1 │
│ 黑字对比度: 9.78:1 │
└──────────────────────────┘
Host 半:harness.defineTool 注册 color_preview
hex → RGB → HSL → WCAG 亮度/对比度 → 颜色名
↓ 返回 JSON
Client 半:slots.register('tool.call.toolview', key='color_preview')
读取 ToolCallBlock(RunningToolCall | ToolResultNode)的 argsRaw + content
→ 渲染色块卡片
关键点:Client 读取的 ToolCallBlock 字段是 callId / argsRaw / content(RunningToolCall 与 ToolResultNode 两种形态),不是 arguments / result——这是本插件调试中踩过的最大的坑。
0.1.0-rc.6 实测通过harness.defineTool)与 tool.call.toolview Slot 的版本MIT License。参见 LICENSE。
dsh-plugin topic)CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。