deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
让「需要用户决策的内容」以带复选框的表格呈现在输入框上方:勾选确认、行内编辑,然后直接发送 / 填入对话框 / 关闭,任意操作后面板自动关闭。 Turn "content that needs your decision" into an editable checkbox table above the composer — check, edit, then send / fill the draft / close; any action closes the panel.
DeepSeek Harness 双半区插件:Host 半区向系统提示词注入标记规则;Client 半区把 LLM 用标记包裹的决策清单渲染为可编辑表格。 A DeepSeek Harness plugin (Host + Client halves): the Host injects a marker rule into the system prompt; the Client renders LLM decision lists — wrapped in markers — as an editable table above the composer.
<!-- dsh-todo:start -->…<!-- dsh-todo:end --> 标记块;普通陈述性列表(编号 / 项目符号 / checkbox)一律不触发。每个标记块 = 一个独立面板;块前紧邻的标题行作为列表标题。session.running === false)后渲染;流式输出中隐藏。todo_write 任务清单不处理。关于“发布检查”,我决定执行以下内容:
1. 确认版本号与发布说明一致
2. 检查回滚预案是否就绪
补充:发布窗口定在今晚十点
普通启发式(把编号 / checkbox 列表都当作待办)会把陈述性列表误判为「需要用户决策」。本插件改为契约式识别:
Host 半区向系统提示词注入一条规则(systemPrompt.section,order 120):凡有需要用户决策或确认的内容(待执行任务、待挑选选项、待批准方案),必须用成对标记包裹:
<!-- dsh-todo:start -->
- [ ] 事项一
- [ ] 事项二
<!-- dsh-todo:end -->
Client 半区只认标记块:标记是 HTML 注释,渲染后不可见、不破坏正文美观;头尾成对、天然区分多个清单(同一条回复可含多个标记对)。没有标记的普通列表一律不触发增强 UI。
支持从 GitHub 直接安装(公开仓库,需能访问 github.com;公开克隆无需登录,若本机 git 配置要求凭据则按 Git Credential Manager 授权即可):
dsh plugin --profile web add github:EmptyCollin/dsh-todo-enhancer
配合峰谷排队插件(dsh-peak-valley-queue)使用时,建议一条命令同时安装两个独立插件(两者都会加入 bundle 层):
dsh plugin --profile web add github:EmptyCollin/dsh-peak-valley-queue github:EmptyCollin/dsh-todo-enhancer
web 换成对应 profile 名。dsh plugin --profile web add D:\dsh-plugin\dsh-todo-enhancer。lib/index.js;Client 半区:lib/client.bundle.js(由 lib/client.js 经 npm run build:client 生成的模块加载器 bundle,产物已提交、无 prepare 脚本,安装无需构建)。面板是标记触发式的,平时不可见:
ctx.get('systemPrompt').section({ name: 'dsh-todo-enhancer:decision-markers', order: 120, text }) —— 会话作用域内注入标记规则。conversation.input.dock(id=todo-enhanced,order=5);数据源为槽位所有者 props session;session.running 作为「输出完成」闸门;动作走标准 props inputActions.setDraft/submit。cordis.patch.yml # dsh.bundle 补丁:把本包插入 profile 的 bundle 层
lib/
index.js # Host 半区(提示词注入,导出 { name, apply })
client.js # Client 半区源码(import React,导出 { name, inject, apply } + 纯函数)
client.bundle.js # Client bundle(__ModuleLoader__ 自注册形式,由 client.js 生成,产物已提交)
dynamic-host.js / dynamic-host-body.txt # Host 动态函数体(export const hostBody,供 cordis_define 开发用)
dynamic-client.js / dynamic-body.txt # Client 动态函数体(export const clientBody)
scripts/
build-bundle.mjs # 从 lib/client.js 生成 lib/client.bundle.js
npm run build:client # 由 lib/client.js 重新生成 lib/client.bundle.js(产物已提交,仅改动源码后需重跑)
npm run check # 重新生成 bundle 并对全部入口 node --check
node test.mjs # 离线冒烟测试(无标记不触发、多标记块多面板、思维链排除、Host 段落注册、动态体求值)
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。