dispatch-pi
v0.1.0
Published
DSH × Pi, dispatched. Bring DeepSeek-Harness-grade capability (event-stack audit, kernel sandbox, programmatic tool-calling) into Pi Agent as a swappable pi package.
Maintainers
Readme
dispatch-pi
DSH × Pi, dispatched.
把 DeepSeek Harness(DSH)级的能力(事件流可追溯、内核级沙箱、程序化工具调用 PTC、能力接缝)派发进 Pi Agent,作为一个可独立装、独立迭代的 pi package。
定位
| 项 | 值 |
|---|---|
| 形态 | 独立 Pi Package(经 packages 机制挂载,Pi 退化为版本锁定依赖) |
| 架构 | 注入层(官方 ExtensionAPI)/ 执行层(外置子进程)/ 封装层(分发配置) |
| 红线 | 能力不触碰 Pi 核心——升级 Pi 只需换依赖版本 + 跑测试 |
| License | MIT |
能力一览
| 能力 | 层 | 说明 | 配置 |
|---|---|---|---|
| 事件流审计 | 注入 | append-only 记录模型看到的一切(源码含系统/思维链/工具/子Agent/注入);dp_audit 只读查询 | audit |
| 应用级安全门 | 注入 | bash 工具危险命令拦截/确认、路径保护 | gate |
| 内核级沙箱 | 执行 | dp_bash → 外置 runner,OS 级隔离(landlock/seatbelt/acl 接入位) | sandbox |
| 程序化工具调用 PTC | 执行 | runPct 执行模型生成的 TS,一次调用替代多轮往返(默认关) | pct |
| 能力接缝 | 注入 | 自定义 Provider / UI 接线 | — |
所有对外工具/命令统一 dp_ / dp- 前缀,规避与 Pi 生态命名冲突。
目录结构
dispatch-pi/
├── extensions/ # 注入层(entry/audit/gate/providers/ui/config/pi-api)
├── runner/
│ ├── sandbox/ # 内核沙箱客户端(index.ts) + worker.mjs(被 spawn 的执行器)
│ └── pct/ # 程序化工具调用执行器
├── skills/ # Agent Skills(如 dp-security-check)
├── prompts/ # 提示词模板(dp-review)
├── config/schema.json # 配置 JSON Schema
└── test/{unit,e2e} # 单测 + pi-package 结构冒烟安装
依赖已装好;作为 pi package 装进本机 Pi:
# 开发/联调
pi install ./dispatch-pi
# 试运行不落盘
pi -e ./dispatch-pi
# 正式发布后(详见快速发布)
pi install npm:[email protected]配置(.pi/dispatch.json)
{
"prefix": "dp_",
"audit": { "mode": "file", "path": ".pi/audit.jsonl" },
"gate": { "enabled": true, "confirm": ["rm -rf", "sudo"], "block": ["curl\\s+-[Ssf]?.*\\|\\s*(ba)?sh"] },
"sandbox": { "mode": "auto", "backend": "auto", "timeoutMs": 60000,
"defaultPolicy": { "read": ["."], "write": ["./src"], "net": false } },
"pct": { "enabled": false, "timeoutMs": 30000 }
}开发与验证
npm run typecheck # tsc --noEmit
npm test # unit(vitest)
npm run test:e2e # pi-package 结构冒烟(升级 Pi 后必须重跑)Roadmap
- [ ] M0 脚手架(完成):工程结构、pi 清单、配置 schema
- [ ] M1 注入层(完成):审计、安全门、
dp_*工具集 - [ ] M2 执行层(完成,占位后端):sandbox / PTC 外置 runner
- [ ] M3 工程化:接入真实 OS 级沙箱(native addon)、发布 npm
dispatch-pi、Renovate + CI - [ ] 占名:本机
npm login后npm publish --access public锁定包名
License
MIT
