feat: add pi lab ai management integration

This commit is contained in:
Agent Board
2026-07-04 21:47:42 +08:00
parent 36d027a4a1
commit c8472bb898
62 changed files with 15077 additions and 443 deletions
@@ -449,8 +449,8 @@ assistant-ui / CopilotKit / AG-UI 进入 UI 备选评估
本稿通过后新增:
- `7-69-page-ai-pi-first-lab-checklist-v1.md`
- `scripts/task*-page-ai-pi-rpc-smoke.js`
- `design/07-ai/done/7-69-page-ai-pi-first-lab-checklist-v1.md`
- `scripts/task-pi-lab-rpc-api-smoke.js`
- `scripts/task*-page-ai-pi-lightrag-smoke.js`
- `scripts/task*-page-ai-pi-file-patch-smoke.js`
@@ -472,3 +472,38 @@ assistant-ui / CopilotKit / AG-UI 进入 UI 备选评估
Pi 不应被过早否定;它已经有足够多的 runtime 与生态基础,值得作为首选实验底座。
Pi 也不应被过早宣布替换 OpenHub;MNote 需要自己补齐多用户控制面、Turso 审计、LightRAG tool、allowed roots 和 UI 产品化边界。
## 13. Spike 执行记录(2026-07-03
本稿对应的最小可验证 spike 已落地到代码,验收记录见:
- `design/07-ai/done/7-69-page-ai-pi-first-lab-spike-record-v1.md`
- `design/07-ai/done/7-69-page-ai-pi-first-lab-checklist-v1.md`
当前完成范围:
- `/api/page-ai/pi/*``/page-ai/pi` dev-only 入口。
- Pi RPC/mock runtime manager 与 MNote 管控 sessionDir。
- 8 个 MNote-owned tool facade。
- allowed roots 越界拒绝、file version、diff summary、deny reason、receipt JSONL adapter。
- LightRAG 仍通过 `knowledge_rag` facade 暴露给 Pi,不引入第二套 RAG。
- 文件 patch 返回 watcher refresh metadata,且 `polling=false`
- MNote-native Pi Lab UI 支持 start/send/events/abort、SSE stream、tool/citation/diff/receipt 显示。
- OpenHub 仍保持默认 Page AI 主线。
当前未完成范围:
- 全局 `pi` CLI 仍未进入 PATH;但已通过 `MNOTE_PAGE_AI_PI_BIN=/tmp/mnote-pi-cli-wrapper.sh` 包装 `npx -y @earendil-works/pi-coding-agent@0.80.3` 跑通真实 `pi --mode rpc` 端到端 smoke。
- Turso/libSQL 正式 receipt 表迁移;当前仍为 `provider_neutral_jsonl_adapter_v1`
- 登录态浏览器中验证 watcher 刷新 tiptap 当前页。
- `@earendil-works/pi-web-ui` 未成为长期 UI 基座,本轮由 MNote-native debug UI 承接。
验证结果:
- `node scripts/task-pi-lab-static-smoke.js`:通过。
- `node scripts/task-pi-lab-api-endpoint-smoke.js`:通过。
- `node scripts/task-pi-lab-mock-api-smoke.js`:通过,覆盖 mock runtime、SSE、allowed roots、越界拒绝、当前页读取、当前 `.md` patch、watcher refresh metadata、LightRAG facade、citation/open-reference facade、send、abort。
- `node scripts/task-pi-lab-browser-smoke.js`:通过,覆盖 `/page-ai/pi` 独立页、Pi Lab 面板、输入框、启动/发送/清空按钮、runtime asset、status API。
- 真实 Pi RPC smoke:通过,覆盖 MNote 托管启动 `pi --mode rpc``runtimePid`、当前页读取、越界拒绝、当前 `.md` patch、send accepted、abort。
- `node scripts/task-pi-lab-rpc-api-smoke.js`:新增,覆盖 runtimeMode=rpc 下 status、runtimePid 真实子进程、start/send/abort 端点、tool-call MNote facadesallowed roots、越界拒绝、.md patch、watcher refresh、LightRAG、citation)、SSE 事件流、多会话生命周期、Pi 进程清理。需要真实 Pi CLIMNOTE_PAGE_AI_PI_BIN)与可选 API key 验证 send。
- `cd rust && cargo check -p mnote-web`:通过。