22-ai-00/dsh-enhanced--plugins-assistant-verifier ↗★ 2
@dsh-enhanced/assistant-verifier
Independent, bounded task acceptance verification with durable contracts and receipts.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:22-ai-00/dsh-enhanced#bb3fb924f1bdb946901614b8b848ac3a1d60c642&path:plugins/assistant-verifier说明文档
阅读完整 README ↗验收配置
authorities 是管理员控制的验证资源,profiles 是管理员确认的精确任务规格。每个 profile 绑定 scope.workspace、scope.preset、真实 owner 的 principalRecordId/principalVersion、taskKind 和原始 objective,并包含版本、有效期、验证预算及非空条件集合。更改已接受任务的规格会被拒绝,不能在看到结果后放宽要求。
| 类型 | 读取或执行内容 | 能证明的范围 |
|---|---|---|
runner | 固定程序、固定参数、明确环境变量、workspace 产物和有限 stdin/stdout | 指定输入的实际输出和退出码同时符合预期 |
document | workspace 文档、配置的 HTTPS 来源 | 指定文字存在;直接引文、来源 URI 与字节摘要匹配 |
readback | 固定 HTTPS 模板,仅替换一个路径段的对象 ID | 目标 ID、可选版本和指定 JSON Pointer 字段符合预期 |
repository-readback | 通过当前 Actions grant 与 Keychain 读取实际提交的 checks、reviews、PR、branch | 准确 head 的指定 checks/评审符合配置条件 |
通过 createVerifierAuthorities({ authorities }) 得到冻结配置和每个资源的 digest,将 { id, digest } 填入条件的 authority。profile 类型为包导出的 AcceptanceProfile,条件格式来自 @dsh-enhanced/task-acceptance-contract。资源变更会改变摘要,旧契约不能悄悄使用新资源。
可信 Host 可用 inspectAcceptanceProfile({ scope, owner, objective, taskKind }) 查询精确配置,返回独立深冻结的 { profile, digest },无匹配返回 null。参数不允许缺字段、额外字段或 getter;objective 保持精确文本,不默认选择 owner 或 task kind。inspectAcceptanceObjectives({ scope, owner, taskKind }) 使用相同的严格输入规则,返回该边界内去重并冻结的原始 objective 数组。它不返回 profile、criteria、验证命令或输入,也不越过 scope、owner record/version 或 task kind 发现其他配置。两个入口都不创建契约、不调用执行生产者或验证程序,不是授权或目标达成证明;服务卸载后拒绝查询。可用于安装配置诊断和提交前预检,真实执行仍必须取得绑定到实际任务身份的验收契约。
databasePath 是私有 SQLite 文件绝对路径;默认 dshHomePath('assistant-verifier/verification.sqlite')。tickIntervalMs 默认 5000,0 表示由 Host 调用 tick()。契约最长有效 7 天,单轮验证最长 5 分钟,不确定的验证最多尝试 3 次。无法证明执行已停止、契约过期或尝试耗尽时保留待处理状态;Host 通过 inspect(contractId) 和 continuations() 查看。需要把回执逐项绑定到完整已接纳契约的 Host,可同步调用 inspectAcceptedTask(contractId);它仅在契约和状态都存在时返回冻结的 { contract, ...state },不会把单独的回执状态当作验收证据。过期回执不会作为新的可信结果投递。
回执描述该次任务在观测时刻的结果,validUntil 限制结果进入 Evaluation 的时间。已接纳的历史结果不会仅因时间流逝被改写;它不证明外部系统现在仍处于同一状态。持续目标、发布或权限决策需要自己的新鲜度要求及新契约回读。owner 的显式纠正与撤回仍可修改 canonical 判断。
health() 给出准确的等待执行、等待验证、未投递回执、过期回执和待处理数量。配合 assistant-health,待处理结果或缺少 Evaluation 的积压会显示诊断;默认空 profile 显示验收未启用。分页轮转避免前 100 条未完成任务或过期回执阻塞后续任务。Host 回读与 Evaluation 投递各等待最多 5 秒,关闭服务会中断等待;失去确认的回执保留待投递,原任务不会重跑。