22-ai-00/dsh-enhanced--plugins-assistant-verifier2

@dsh-enhanced/assistant-verifier

Independent, bounded task acceptance verification with durable contracts and receipts.

包名
@dsh-enhanced/assistant-verifier
版本
0.1.28
许可证
MIT
最近更新
2026年9月12日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:22-ai-00/dsh-enhanced#bb3fb924f1bdb946901614b8b848ac3a1d60c642&path:plugins/assistant-verifier

验收配置

authorities 是管理员控制的验证资源,profiles 是管理员确认的精确任务规格。每个 profile 绑定 scope.workspacescope.preset、真实 owner 的 principalRecordId/principalVersiontaskKind 和原始 objective,并包含版本、有效期、验证预算及非空条件集合。更改已接受任务的规格会被拒绝,不能在看到结果后放宽要求。

类型读取或执行内容能证明的范围
runner固定程序、固定参数、明确环境变量、workspace 产物和有限 stdin/stdout指定输入的实际输出和退出码同时符合预期
documentworkspace 文档、配置的 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 秒,关闭服务会中断等待;失去确认的回执保留待投递,原任务不会重跑。