win4r/dsh-pi-review0

@charlesqin/dsh-pi-review

Read-only Pi Agent review of Git changes for DeepSeek Harness

包名
@charlesqin/dsh-pi-review
版本
0.1.0
许可证
MIT
最近更新
2026年8月23日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:win4r/dsh-pi-review

配置 Pi 认证与模型

默认以只读快照方式加载 Pi 的 ~/.pi/agent/auth.json~/.pi/agent/models.json;认证刷新和模型目录更新只保存在 Worker 内存中,不会写锁文件或回写 Pi 目录。可先在交互式 Pi 中执行 /login

npx -y @earendil-works/pi-coding-agent@0.84.2

建议在 cordis.patch.yml 中显式配置 provider/model-id

- insert:
    - id: pi-review
      name: '@charlesqin/dsh-pi-review'
      config:
        authority: direct-human
        model: kimi-coding/k3
        thinkingLevel: high
        timeoutMs: 300000
        maxDiffBytes: 524288
        maxFiles: 200
        maxOutputBytes: 524288
        maxDiagnosticBytes: 65536
        disposeGraceMs: 3000
        requireFullSandbox: true

Bundle patch 的同 ID config 是整对象替换语义。覆盖 pi-review 行时,应重写希望保留的完整配置。

优先使用 Pi auth.json 中的字面 API key、OAuth,或显式环境变量引用,避免把密钥直接写入 Harness 配置。Worker 不执行 Pi 配置中的 !command:命令型认证 Provider 会被标记为不可用,其他安全 Provider 仍可使用;models.jsonapiKey、header 或 env 中出现命令值则整个模型配置 fail closed。若认证或模型必须引用环境变量,可通过 forwardEnvironment 显式传入变量名;默认一个也不传。不要转发无关凭据。

自定义 Pi 目录可以用绝对路径配置:

agentDir: /absolute/path/to/pi-agent-dir
forwardEnvironment:
  - MY_MODEL_API_KEY

例如,可在 auth.json 使用 "key": "$MY_MODEL_API_KEY",再只转发 MY_MODEL_API_KEY。Worker 固定设置 PI_OFFLINE=1,关闭 Pi 的启动更新、包更新和遥测网络操作;模型请求本身仍需要访问所配置的 Provider。Windows 上当前仍可使用内置 Pi 模型和认证,但 v0.1 不加载自定义 models.json

使用

安装并重启 Profile 后,在顶层对话中要求 Agent 调用 pi_review_diff。例如:

请调用 pi_review_diff,以 working-tree 范围审查当前仓库全部未提交改动,
按严重度汇总 finding,并明确结果是否 stale。

工具参数:

参数说明
scope: unstaged工作区相对 index 的未暂存改动,并包含 untracked 文件
scope: stagedindex 相对 HEAD 的已暂存改动,不包含 untracked 文件;为避免混入未暂存内容,只开放冻结 diff,不开放当前文件读取/搜索
scope: working-tree整个工作区相对 HEAD,包含 staged、unstaged 与 untracked 文件
scope: base工作区相对解析后的 base_ref commit;必须提供 base_ref
paths可选、非空的仓库相对路径过滤列表

base_ref 只接受普通 ref 或对象 ID,不接受 HEAD~2A..B 等 revision expression。它会先解析为不可变 commit,再执行与当前工作区的比较;本版本不会自动计算 merge base。

成功结果包含:

  • verdict: cleanfindings
  • assessment 与按严重度排序的结构化 findings
  • snapshot.head、可选 basediffHash、变更路径与 stale
  • 实际沙箱 enforcement、Pi 模型 ID 与耗时

若审查期间仓库发生变化,插件仍返回冻结快照上的结果,但把 snapshot.stale 标为 true;应在新快照上重新审查。

配置参考

字段默认值说明
authoritydirect-human只允许由当前顶层人类消息驱动;root-turn 可放行插件/定时来源的顶层轮次
modelPi 当前可用默认模型可选的 provider/model-id
thinkingLevelhighoffxhigh
timeoutMs300000整个快照与审查事务的截止时间
maxDiffBytes524288diff 上限;超限直接失败,不截断
maxFiles200变更文件上限
maxOutputBytes524288Worker stdout 上限
maxDiagnosticBytes65536Worker stderr 上限
disposeGraceMs3000子进程终止宽限期
requireFullSandboxtrue平台只能提供 partial enforcement 时拒绝运行;设为 false 会允许较弱隔离,是不安全的部署级 opt-out
agentDir~/.pi/agent可选绝对 Pi 配置目录
forwardEnvironment[]显式传给 Worker 的环境变量名

authority: root-turn 会让 Cron、Plugin 等非人类来源的顶层轮次也能触发审查,适用于自动化,但扩大了调用权限。子 Agent、过期 Agent、无活动 driver、空闲状态或已结束轮次仍然不能调用。