← 返回列表
未验证
@macorreag/dsh-todo-hardened
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/23 · 已提供中文文档
DeepSeek Harness 的加固待办清单(active/locked/archive 所有权层 + 提案 + 仅追加日志)
综合分
27.3
GitHub 分
27.3
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Macorreag/dsh-todo-hardened该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
信任档位:仅索引本站尚未对其实装验证,仅收录元数据
- 是什么
- dsh 原生插件 · tool
- 装得上吗
- 本站尚未做安装检查
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 更新放缓:最近一次提交在 33 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/dsh-fs@deepseek-ai/dsh-sandbox@deepseek-ai/dsh-session用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成@macorreag/dsh-todo-hardened
为 DeepSeek Harness 打造的加固版 Todo —— 带所有权分层的 Todo 系统的持久化版本(npm 包),灵感来自 agnosticBrain。
⚠️ 与动态插件(cordis_define/cordis_run)不同:这是一个 npm 包,需要安装并在组合中声明,且能在重启后存活。
功能
- 3 层所有权:active(智能体)、locked(人类,不可侵犯)、archive(仅追加)。
- 机械门禁(非提示词):状态 FSM + 校验过的 schema + 所有权。
- 真正的人类审批(approval seam) 用于人类操作:todo_lock/todo_unlock/todo_approve/todo_reject 通过 ctx.approval.request(@deepseek-ai/dsh-user-approval 的 approval seam)请求确认,它会显示确认 UI,并且只授予 allowed-once。若没有组合的审批服务,或没有可用通道,操作将失败关闭(fail closed)。子智能体无法授权这些操作。
- Hook(tools.guard):拒绝直接对 todo/ 执行 write/edit/bash。
- 提案流程:智能体对 locked 提出变更;由人类批准。
- 仅追加日志 以 markdown 记录,包含每次操作的 actor。
- 存储为 /todo/ 下的纯 markdown。
注册的工具
| Tool | Actor | 功能 |
|---|---|---|
| todo_list、todo_get | 智能体 | 读取 |
| todo_add | 智能体 | 在 active 中创建 |
| todo_update | 智能体 | 编辑 active(open↔in_progress) |
| todo_complete、todo_cancel | 智能体 | 完成 → archive |
| todo_propose、todo_proposals | 智能体 | 对 locked 提出变更 |
| todo_log | 智能体 | 读取日志 |
| todo_lock、todo_unlock | 人类 | 锁定 / 解锁(approval prompt:人类确认) |
| todo_approve、todo_reject | 人类 | 批准 / 拒绝提案(approval prompt:人类确认) |
包结构
dsh-todo-hardened/
├── package.json # name, exports, dsh.client, peerDependencies
├── tsdown.config.ts # build (tsdown → lib/)
├── src/
│ ├── host.ts # Host 半边:tools + guard + markdown 存储 ✅ 完整
│ └── client.tsx # Client 半边:设置中的 UI + run-card ⚠️ RPC 待接线
├── cordis.example.yml # 示例组合行
└── README.md
构建
pnpm install
pnpm build # tsdown → lib/index.js, lib/client.js, lib/types/
安装与挂载
1. 发布到 npm:
npm publish --access public
2. 在你的 Profile 中安装该包:
dsh plugin --profile add @macorreag/dsh-todo-hardened
3. 将该行添加到你的 agent preset(agent.cordis.yml):
- id: todo-hardened
name: '@macorreag/dsh-todo-hardened'
(该插件注册工具,不发布服务,因此可以像 tool-bash 或 tool-goal 一样单独放在 preset 中。)
4. 验证挂载:
dentro de una sesión del harness, o con tu flujo de validación de presets:
standingKeyFor("") → 必须能无错误挂载
代码状态
- ✅ src/host.ts — 完整,并已翻译为真实的持久化 API
(来自 @deepseek-ai/dsh-tools 的 defineTool、ctx.tools.register、ctx.tools.guard、
inject: ['tools','fs','sandboxPolicy','agents']、通过 exec.agent 解析会话)。
人工操作使用 approval seam(requireHumanApproval →
ctx.approval.request):显示确认 UI,并在没有通道时以关闭方式失败。
- ⚠️ src/client.tsx — Slots 注册是正确的,并且当 Typert 的 Remote 未挂载时,
面板会以一条明确的消息降级(不抛出异常)。
数据/操作层(remoteInvoke)指向 ctx.remote.todo.*;todo
命名空间由该包生成的 /remote 产物提供
(lib/typert.remote-client.js + lib/typert.host.js),该产物由 monorepo 的
Typert 编译器生成。在该产物生成并挂载之前,
人工操作从聊天中执行(Host 会对它们进行门控)。
可移植性说明
- 工作区解析是按执行从 exec.agent.session 进行的
(不是全局 cwd),并且沙箱策略使用该会话进行解析,因此
每个会话写入自己的 /todo/。
- 存储是纯 markdown,人类可读,不依赖数据库。
- bash 的 guard 是尽力而为的(当命令引用该存储时,阻止写入动词和 >/>>
重定向);权威保护是
write/edit 的 guard(按路径)以及沙箱策略。