personal-bot 0.2.4 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTEXT.md +9 -7
- package/README.md +13 -6
- package/README.zh-CN.md +13 -6
- package/docs/README.md +3 -1
- package/docs/agent-collaboration.md +26 -12
- package/docs/architecture-guidelines.md +2 -2
- package/docs/capability-design.md +6 -4
- package/docs/dsh-implementation-plan.md +158 -0
- package/docs/dsh-support-proposal.md +314 -0
- package/docs/dsh.md +103 -0
- package/docs/file-storage.md +14 -9
- package/docs/history.md +29 -18
- package/docs/installation-design.md +3 -1
- package/docs/interaction-design.md +13 -0
- package/docs/release.md +3 -3
- package/docs/technical-design.md +29 -15
- package/docs/validation.md +38 -2
- package/lib/client.js +1071 -0
- package/lib/common/files.d.ts +2 -0
- package/lib/common/files.js +44 -0
- package/lib/common/json.d.ts +6 -0
- package/lib/common/json.js +16 -0
- package/lib/common/markdown.d.ts +5 -0
- package/lib/common/markdown.js +26 -0
- package/lib/common/paths.d.ts +1 -0
- package/lib/common/paths.js +2 -0
- package/lib/common/validation.d.ts +3 -0
- package/lib/common/validation.js +14 -0
- package/lib/common/version.d.ts +3 -0
- package/lib/common/version.js +13 -0
- package/lib/dsh.d.ts +4 -0
- package/lib/dsh.js +22 -0
- package/lib/extension/dsh/agent-events.d.ts +24 -0
- package/lib/extension/dsh/agent-events.js +242 -0
- package/lib/extension/dsh/agent-runtime.d.ts +49 -0
- package/lib/extension/dsh/agent-runtime.js +348 -0
- package/lib/extension/dsh/command.d.ts +4 -0
- package/lib/extension/dsh/command.js +83 -0
- package/lib/extension/dsh/files.d.ts +5 -0
- package/lib/extension/dsh/files.js +67 -0
- package/lib/extension/dsh/history.d.ts +15 -0
- package/lib/extension/dsh/history.js +88 -0
- package/lib/extension/dsh/management.d.ts +21 -0
- package/lib/extension/dsh/management.js +217 -0
- package/lib/extension/dsh/workspace.d.ts +48 -0
- package/lib/extension/dsh/workspace.js +290 -0
- package/lib/integrations/agent-resources.d.ts +1 -0
- package/lib/integrations/agent-resources.js +18 -0
- package/lib/integrations/dsh/dsh-agents.d.ts +30 -0
- package/lib/integrations/dsh/dsh-agents.js +104 -0
- package/lib/integrations/dsh/history-summary.d.ts +11 -0
- package/lib/integrations/dsh/history-summary.js +40 -0
- package/lib/integrations/dsh/history.d.ts +16 -0
- package/lib/integrations/dsh/history.js +156 -0
- package/lib/integrations/dsh/input.d.ts +21 -0
- package/lib/integrations/dsh/input.js +62 -0
- package/lib/integrations/dsh/messages.d.ts +36 -0
- package/lib/integrations/dsh/messages.js +11 -0
- package/lib/integrations/dsh/notifications.d.ts +8 -0
- package/lib/integrations/dsh/notifications.js +55 -0
- package/lib/integrations/dsh/resources.d.ts +10 -0
- package/lib/integrations/dsh/resources.js +41 -0
- package/lib/integrations/dsh/schema.d.ts +7 -0
- package/lib/integrations/dsh/schema.js +28 -0
- package/lib/integrations/dsh/session.d.ts +14 -0
- package/lib/integrations/dsh/session.js +59 -0
- package/lib/integrations/history-summary.d.ts +2 -0
- package/lib/integrations/history-summary.js +21 -0
- package/lib/integrations/process.d.ts +14 -0
- package/lib/integrations/process.js +48 -0
- package/lib/integrations/python-activation.d.ts +2 -0
- package/lib/integrations/python-activation.js +29 -0
- package/lib/integrations/team-context.d.ts +18 -0
- package/lib/integrations/team-context.js +57 -0
- package/lib/model/agent.d.ts +92 -0
- package/lib/model/agent.js +1 -0
- package/lib/model/history.d.ts +43 -0
- package/lib/model/history.js +1 -0
- package/lib/model/team.d.ts +85 -0
- package/lib/model/team.js +1 -0
- package/lib/services/agents/agent-notices.d.ts +13 -0
- package/lib/services/agents/agent-notices.js +25 -0
- package/lib/services/agents/agent-run.d.ts +39 -0
- package/lib/services/agents/agent-run.js +138 -0
- package/lib/services/agents/agent-service.d.ts +166 -0
- package/lib/services/agents/agent-service.js +325 -0
- package/lib/services/agents/team-service.d.ts +168 -0
- package/lib/services/agents/team-service.js +343 -0
- package/lib/services/history/history-service.d.ts +103 -0
- package/lib/services/history/history-service.js +269 -0
- package/lib/services/workspace/python-environment-service.d.ts +15 -0
- package/lib/services/workspace/python-environment-service.js +50 -0
- package/lib/services/workspace/workspace-files.d.ts +2 -0
- package/lib/services/workspace/workspace-files.js +17 -0
- package/lib/services/workspace/workspace-preparation.d.ts +2 -0
- package/lib/services/workspace/workspace-preparation.js +18 -0
- package/lib/storage/agent-files.d.ts +30 -0
- package/lib/storage/agent-files.js +166 -0
- package/lib/storage/atomic-json.d.ts +11 -0
- package/lib/storage/atomic-json.js +101 -0
- package/lib/storage/file-access.d.ts +2 -0
- package/lib/storage/file-access.js +26 -0
- package/lib/storage/history-files.d.ts +10 -0
- package/lib/storage/history-files.js +63 -0
- package/lib/storage/team-files.d.ts +16 -0
- package/lib/storage/team-files.js +111 -0
- package/lib/tools/agents/actions.d.ts +52 -0
- package/lib/tools/agents/actions.js +49 -0
- package/lib/tools/agents/contract.d.ts +163 -0
- package/lib/tools/agents/contract.js +56 -0
- package/lib/tools/agents/dsh-contract.d.ts +52 -0
- package/lib/tools/agents/dsh-contract.js +15 -0
- package/lib/tools/agents/dsh-tool.d.ts +5 -0
- package/lib/tools/agents/dsh-tool.js +38 -0
- package/lib/tools/history/actions.d.ts +70 -0
- package/lib/tools/history/actions.js +7 -0
- package/lib/tools/history/contract.d.ts +81 -0
- package/lib/tools/history/contract.js +32 -0
- package/lib/tools/history/dsh-tool.d.ts +4 -0
- package/lib/tools/history/dsh-tool.js +22 -0
- package/lib/tools/result.d.ts +18 -0
- package/lib/tools/result.js +10 -0
- package/lib/tools/teams/actions.d.ts +24 -0
- package/lib/tools/teams/actions.js +38 -0
- package/lib/tools/teams/contract.d.ts +232 -0
- package/lib/tools/teams/contract.js +67 -0
- package/lib/tools/teams/dsh-tool.d.ts +8 -0
- package/lib/tools/teams/dsh-tool.js +49 -0
- package/lib/ui/dsh/attachments.d.ts +5 -0
- package/lib/ui/dsh/attachments.js +39 -0
- package/lib/ui/dsh/elements.d.ts +17 -0
- package/lib/ui/dsh/elements.js +79 -0
- package/lib/ui/dsh/index.d.ts +4 -0
- package/lib/ui/dsh/index.js +13 -0
- package/lib/ui/dsh/management.d.ts +4 -0
- package/lib/ui/dsh/management.js +711 -0
- package/lib/ui/dsh/remote.d.ts +15 -0
- package/lib/ui/dsh/remote.js +11 -0
- package/lib/ui/dsh/styles.d.ts +1 -0
- package/lib/ui/dsh/styles.js +132 -0
- package/lib/ui/presentation.d.ts +3 -0
- package/lib/ui/presentation.js +12 -0
- package/npm-shrinkwrap.json +11140 -830
- package/package.json +94 -12
- package/python/README.md +6 -6
- package/resources/agents/coordinator.md +1 -1
- package/resources/dsh/cordis.patch.yml +3 -0
- package/resources/prompts/workspace.md +1 -1
- package/resources/references/compute.md +1 -1
- package/resources/references/task-conductor.md +6 -4
- package/resources/skills/provider-connections/SKILL.md +10 -0
- package/scripts/README.md +9 -1
- package/src/dsh.ts +22 -0
- package/src/extension/agent-events.ts +51 -46
- package/src/extension/agents-command.ts +48 -34
- package/src/extension/command.ts +42 -23
- package/src/extension/dsh/agent-events.ts +148 -0
- package/src/extension/dsh/agent-runtime.ts +251 -0
- package/src/extension/dsh/command.ts +78 -0
- package/src/extension/dsh/files.ts +61 -0
- package/src/extension/dsh/history.ts +69 -0
- package/src/extension/dsh/management.ts +108 -0
- package/src/extension/dsh/workspace.ts +206 -0
- package/src/extension/events.ts +6 -4
- package/src/extension/history.ts +15 -12
- package/src/extension/subagent-entry.ts +34 -63
- package/src/extension/teams-command.ts +53 -46
- package/src/integrations/{pi/agent-resources.ts → agent-resources.ts} +2 -2
- package/src/integrations/dsh/dsh-agents.ts +97 -0
- package/src/integrations/dsh/history-summary.ts +43 -0
- package/src/integrations/dsh/history.ts +76 -0
- package/src/integrations/dsh/input.ts +66 -0
- package/src/integrations/dsh/messages.ts +22 -0
- package/src/integrations/dsh/notifications.ts +46 -0
- package/src/integrations/dsh/resources.ts +44 -0
- package/src/integrations/dsh/schema.ts +26 -0
- package/src/integrations/dsh/session.ts +67 -0
- package/src/integrations/history-summary.ts +20 -0
- package/src/integrations/pi/history.ts +4 -14
- package/src/integrations/pi/pi-agents.ts +17 -6
- package/src/integrations/pi/team-context.ts +6 -58
- package/src/integrations/team-context.ts +60 -0
- package/src/model/agent.ts +2 -0
- package/src/model/history.ts +3 -1
- package/src/pbot.ts +1 -1
- package/src/services/agents/agent-notices.ts +28 -0
- package/src/services/agents/agent-run.ts +114 -0
- package/src/services/agents/agent-service.ts +127 -64
- package/src/services/history/history-service.ts +120 -59
- package/src/storage/agent-files.ts +17 -4
- package/src/storage/history-files.ts +30 -5
- package/src/tools/agents/actions.ts +47 -0
- package/src/tools/agents/contract.ts +8 -5
- package/src/tools/agents/dsh-contract.ts +16 -0
- package/src/tools/agents/dsh-tool.ts +41 -0
- package/src/tools/agents/tool.ts +7 -43
- package/src/tools/history/actions.ts +9 -0
- package/src/tools/history/contract.ts +34 -0
- package/src/tools/history/dsh-tool.ts +22 -0
- package/src/tools/history/tool.ts +7 -30
- package/src/tools/teams/actions.ts +38 -0
- package/src/tools/teams/contract.ts +7 -3
- package/src/tools/teams/dsh-tool.ts +55 -0
- package/src/tools/teams/tool.ts +6 -31
- package/src/ui/agent-display.ts +7 -4
- package/src/ui/dsh/attachments.ts +42 -0
- package/src/ui/dsh/elements.ts +50 -0
- package/src/ui/dsh/index.ts +18 -0
- package/src/ui/dsh/management.ts +412 -0
- package/src/ui/dsh/remote.ts +20 -0
- package/src/ui/dsh/styles.ts +132 -0
- package/src/ui/pi/menu.ts +37 -0
- package/src/ui/pi/reader.ts +46 -0
- package/src/ui/presentation.ts +12 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 界面设计
|
|
2
|
+
|
|
3
|
+
风格简洁,标签和说明尽量短。常用状态与操作直接可见,高级配置和原始数据按需展开。两端共享业务规则,分别使用宿主主题与原生能力。
|
|
4
|
+
|
|
5
|
+
## Pi TUI
|
|
6
|
+
|
|
7
|
+
`/pbot` 打开菜单,原有子命令仍可直接使用。菜单支持键盘选择和长列表滚动;状态、历史及公共消息使用只读阅读页。专家仍通过 tmux 进入原生会话。后台提示最多显示四位专家。
|
|
8
|
+
|
|
9
|
+
## dsh GUI
|
|
10
|
+
|
|
11
|
+
工作台分工作区、专家、团队、历史四页。宽窗口使用侧边导航,窄窗口使用顶部导航与单列布局。专家列表支持筛选;表单、记录和高级设置分开呈现。查询与提交显示各自结果,不把任务排队当作完成。
|
|
12
|
+
|
|
13
|
+
轮询保留表单草稿、输入焦点和分页。关闭取消查询及未接纳上传;已接纳操作归服务端。查看页面不恢复专家、不领取模型通知。
|
package/docs/release.md
CHANGED
|
@@ -21,7 +21,7 @@ provenance 所用 repository 元数据须与实际公开仓库匹配。若改为
|
|
|
21
21
|
|
|
22
22
|
## 准备候选包
|
|
23
23
|
|
|
24
|
-
使用 Linux、Node.js
|
|
24
|
+
使用 Linux、Node.js 24.9+ 和 Python 3.11+ 准备发布包。Pi 与独立 CLI 的消费者检查仍使用 Node.js 22.19.0。更新版本:
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
27
|
npm version <新版本> --no-git-tag-version --ignore-scripts
|
|
@@ -44,7 +44,7 @@ prepack 先检查再构建 CLI。核对包清单包含 bin、lib、src、resourc
|
|
|
44
44
|
|
|
45
45
|
## GitHub 发布
|
|
46
46
|
|
|
47
|
-
[CI](../.github/workflows/ci.yml) 在 Node 22.19.0
|
|
47
|
+
[CI](../.github/workflows/ci.yml) 在 Node 24.x 安装完整开发依赖、执行检查和测试,再生成候选 tarball;独立 Node 22.19.0 作业安装同一 tarball,检查 CLI 不隐式安装宿主 SDK,再显式安装锁定的 Pi SDK,验证扩展、工具、技能和资料初始化。消费者检查不安装 dsh 开发依赖,不调用模型。[发布工作流](../.github/workflows/publish.yml)要求:
|
|
48
48
|
|
|
49
49
|
- tag 为 v<稳定版本>,包与锁文件版本一致。
|
|
50
50
|
- 提交已进入远端默认分支。
|
|
@@ -59,7 +59,7 @@ git tag "v$VERSION"
|
|
|
59
59
|
git push origin "v$VERSION"
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
发布作业下载本次 CI 的同一 tarball,使用 OIDC 和 provenance 上传,跳过包脚本,然后查询公开版本与 latest。npm 可能在上传成功后继续处理包,查询最多执行 20 次,失败后间隔 15 秒;只重试只读查询,不重试上传。普通分支推送只运行 CI
|
|
62
|
+
发布作业下载本次 CI 的同一 tarball,使用 OIDC 和 provenance 上传,跳过包脚本,然后查询公开版本与 latest。npm 可能在上传成功后继续处理包,查询最多执行 20 次,失败后间隔 15 秒;只重试只读查询,不重试上传。普通分支推送只运行 CI;已发布到 npm 的版本及对应 tag 保持不变。只有 registry 明确返回该版本 404、此前未执行上传,并经维护者同意时,才可在修复和检查后将失败发布的 tag 更新到修复提交,继续发布同一版本;更新前再次核对 registry,并用远端旧 tag 对象限定推送,避免覆盖并发修改。预发布版本不适用此流程。
|
|
63
63
|
|
|
64
64
|
## 本机发布
|
|
65
65
|
|
package/docs/technical-design.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# 技术设计
|
|
2
2
|
|
|
3
|
-
Personal Bot
|
|
3
|
+
Personal Bot 提供按工作区加载的 Pi 扩展和固定版 dsh Host/Web 接入。模型负责分析、协调和工具使用;扩展负责资料准备、专家会话和共享 Python 环境。安装与命令见[项目 README](../README.md)。
|
|
4
4
|
|
|
5
5
|
## 模块与依赖
|
|
6
6
|
|
|
7
7
|
```text
|
|
8
|
-
Pi
|
|
8
|
+
Pi / dsh 命令、工具、事件与原生 Remote
|
|
9
9
|
↓
|
|
10
10
|
tools / extension / ui
|
|
11
11
|
↓
|
|
@@ -16,39 +16,43 @@ Pi 命令、工具与事件
|
|
|
16
16
|
integrations
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
src/pbot.ts
|
|
19
|
+
src/pbot.ts 装配 Pi 入口,src/dsh.ts 装配 dsh Host,src/ui/dsh/index.ts 装配 Web 客户端;共享业务服务,不引入通用 Host 平台。src/extension/setup-cli.ts 装配独立安装命令;`pbot setup` 通过原生 npm/Pi 准备一个工作区,再启动 Pi 执行 `/pbot init`。安装器的顺序、来源保留与失败恢复由 services/installation 管理,接入层调用实际宿主的包管理接口,不创建模型会话。详见[安装与升级](installation-design.md)。
|
|
20
20
|
|
|
21
21
|
| 目录 | 责任 |
|
|
22
22
|
| --- | --- |
|
|
23
23
|
| src/tools/ | 输入、输出、schema、执行适配和工具列表 |
|
|
24
24
|
| src/services/ | 业务规则、状态变更和操作顺序,按 agents、workspace 聚合 |
|
|
25
25
|
| src/model/ | 数据类 |
|
|
26
|
-
| src/integrations/ | Pi
|
|
26
|
+
| src/integrations/ | Pi/dsh 原生会话、Python 环境激活与进程执行 |
|
|
27
27
|
| src/storage/ | 原子 JSON、子会话与团队文件 |
|
|
28
28
|
| src/extension/ | 命令、事件和资源生命周期 |
|
|
29
29
|
| src/ui/ | 确认队列、对话框和专家展示 |
|
|
30
30
|
| src/common/ | JSON、校验、文件、包路径和版本辅助逻辑 |
|
|
31
31
|
| resources/ | 角色、技能、提示词、模板和参考资料 |
|
|
32
32
|
|
|
33
|
-
服务不依赖 Pi SDK、工具或 UI。共享进程执行可直接使用,其他宿主能力通过窄接口传入。接入层可引用服务类型;命令和工具通过服务执行状态变更。数据类在进入 JSON、存储和工具结果前转为普通数据。
|
|
33
|
+
服务不依赖 Pi/dsh SDK、工具或 UI。共享进程执行可直接使用,其他宿主能力通过窄接口传入。接入层可引用服务类型;命令和工具通过服务执行状态变更。数据类在进入 JSON、存储和工具结果前转为普通数据。
|
|
34
34
|
|
|
35
35
|
| 主体 | 管理内容 |
|
|
36
36
|
| --- | --- |
|
|
37
37
|
| prepareWorkspace | 补建资料目录与根 AGENTS.md |
|
|
38
38
|
| PythonEnvironmentService | venv 准备、依赖检查、状态与取消等待 |
|
|
39
|
-
| AgentService |
|
|
39
|
+
| AgentService / AgentRun | 原生专家实例、启动预约、代次、inbox、领取/进入/消费/完成与交付资格;拒绝向被团队占用的成员发送私人任务 |
|
|
40
40
|
| TeamService | 固定成员、公共消息、有限轮次、团队占用与暂停规则 |
|
|
41
|
-
| HistoryService |
|
|
42
|
-
| WorkspaceInstance |
|
|
41
|
+
| HistoryService | 双来源问答索引、四叉摘要、查询、来源写锁与过期提交拒绝 |
|
|
42
|
+
| WorkspaceInstance / DshWorkspaces | 各宿主工作区及资源生命周期;dsh 按父会话装配,并按工作区共享历史整理 |
|
|
43
43
|
|
|
44
44
|
## 加载与关闭
|
|
45
45
|
|
|
46
46
|
Pi 原生配置决定扩展加载范围,启动目录作为工作区根目录。session_start 创建实例、提供工具与技能,并准备共享 Python 环境。加载本身不开展模型任务。
|
|
47
47
|
|
|
48
|
+
Pi 的 `/pbot` 打开原生菜单,状态与长记录使用只读阅读页;dsh 使用独立工作台。见[界面设计](interaction-design.md)。
|
|
49
|
+
|
|
48
50
|
`/pbot init` 可选地补建资料,已有文件保持不变。`/pbot status` 展示路径、版本和 Python 状态;模型通过每轮 pbot_environment 取得工作区、cwd、资源根目录和进程环境信息。
|
|
49
51
|
|
|
50
52
|
主 reload 保留子进程并重新关联,但暂停团队,不继续安排旧批次;退出或切换会话时清理子进程、取消环境准备并恢复本实例持有的环境变量。关闭操作幂等。子会话的分支归属、通知和恢复规则见[专家协作](agent-collaboration.md)。
|
|
51
53
|
|
|
54
|
+
dsh 只为原生 registry 中的根 Agent 建立协调者工作区,绑定其原始 cwd。专家使用同进程独立 Agent/Session;组件或所属父 Agent 关闭时取消预约、暂停安排并等待自己拥有的执行资源释放。打开页面、轮询、重连不恢复专家或启动模型,已接纳工作不归浏览器生命周期所有。原生存在但由其他实例持有的专家不能替换或假称已释放。
|
|
55
|
+
|
|
52
56
|
## 资源加载
|
|
53
57
|
|
|
54
58
|
| 资源 | 用途与加载方式 |
|
|
@@ -59,13 +63,15 @@ Pi 原生配置决定扩展加载范围,启动目录作为工作区根目录
|
|
|
59
63
|
| resources/references/ | 按需读取的操作参考 |
|
|
60
64
|
| resources/templates/workspace-agents.md | 补建根资料入口的模板 |
|
|
61
65
|
|
|
62
|
-
主会话通过 before_agent_start 增加提示词 section,同时保留 Pi 原生 AGENTS.md
|
|
66
|
+
主会话通过 before_agent_start 增加提示词 section,同时保留 Pi 原生 AGENTS.md 加载。资源在使用时读取,缺失时报错;提示词更新后按宿主原生机制重载。dsh 使用原生 systemPrompt 与 FileSystemSkillProvider,发现包内技能及工作区 `.agents/skills`,不增加另一套工具或技能注册平台。
|
|
63
67
|
|
|
64
|
-
公共约定负责工作区与执行边界,角色负责职责与验收,技能提供专业方法与必要的本地操作约定,工具定义参数与结果语义。委派资料修改依据原任务授权及明确的文件责任,诊断环境问题不要求再次授权。工具按 action 校验必填与允许字段,返回具体参数错误;status
|
|
68
|
+
公共约定负责工作区与执行边界,角色负责职责与验收,技能提供专业方法与必要的本地操作约定,工具定义参数与结果语义。委派资料修改依据原任务授权及明确的文件责任,诊断环境问题不要求再次授权。工具按 action 校验必填与允许字段,返回具体参数错误;status 不读取报告正文。Pi 附件组装保留绝对来源及原生读取结果;dsh 使用原生文件存储与图片准入,Web 通用文件走原生 Session 上传凭证,命令图片使用原生编码图片输入。资料保存由模型按公共约定与维护技能处理,沉淀方法、口径与结论,可再次查询的数据按需获取。布局见[文件存储](file-storage.md)。
|
|
65
69
|
|
|
66
70
|
## 历史查询
|
|
67
71
|
|
|
68
|
-
|
|
72
|
+
Pi 维护 `.pi/pbot/history/`,dsh 维护 `.dsh/pbot/history/`;两者共同查询既有归档,只收录和整理自己的原生来源。来源保存 host、会话 ID 与消息位置,不保存原生路径。Pi 保留既有 ID、摘要与旧归档处理,dsh 使用独立根 ID,不跨来源写入。
|
|
73
|
+
|
|
74
|
+
扫描与模型调用在短写锁外,提交时重读,拒绝过期原文或摘要覆盖。查询不调用模型;正常主交互结束后才在空闲阶段整理,新人工输入优先取消。dsh 使用原生 LLM 路由,不创建额外 Agent,也不写主聊天。原生会话缺失时保留现成归档,单个来源损坏不阻断另一来源。实现与限制见[历史对话](history.md)。
|
|
69
75
|
|
|
70
76
|
## 原生子会话存储
|
|
71
77
|
|
|
@@ -77,28 +83,36 @@ PiAgents 使用 `--session-id <agentId>` 启动新的原生会话,让 Pi 按
|
|
|
77
83
|
|
|
78
84
|
会话文件移出控制目录改变恢复契约,因此版本为 0.2.0,旧兼容线不进入当前列表或后台调度;不导入、迁移或删除旧记录。既有控制字段、团队调度及完成叶节点关联保持不变。
|
|
79
85
|
|
|
86
|
+
dsh 的 `native-session.json` 只保存原生 Session ID,不把它写入 Pi 路径字段。先持久化父会话,再创建并持久化空专家;冷读、恢复校验和固定 `dsh:<turn/end seq>` 报告均使用公开 Session API。恢复保留原生模型选择,清除旧 inbox,只接纳新代次的新请求。双方不接管对方的会话。
|
|
87
|
+
|
|
80
88
|
## 团队接入
|
|
81
89
|
|
|
82
90
|
团队采用独立 team.json,不改动旧 AgentMessage、AgentCycle 等持久结构。TeamService 接收普通成员状态与完成记录,安排 roundRobin 或 parallel 轮次;AgentService 再校验并写入原 inbox。父侧原扫描器收集固定叶节点报告并公开原文,不调用主模型转述,不另建执行器或事件总线。
|
|
83
91
|
|
|
84
|
-
团队关联先保存,再发布输入。跨文件窗口采用保守恢复:不自动重发旧请求,只补交付可核对的完成记录。主/子工具显式注册,子入口只有公共 read/post。Pi 的上下文注入和通知边界分别位于 subagent-entry、agent-events 与 integrations/pi/team-context
|
|
92
|
+
团队关联先保存,再发布输入。跨文件窗口采用保守恢复:不自动重发旧请求,只补交付可核对的完成记录。主/子工具显式注册,子入口只有公共 read/post。Pi 的上下文注入和通知边界分别位于 subagent-entry、agent-events 与 integrations/pi/team-context,服务不持有宿主 ctx。dsh 在原生 pre-step 安全边界注入团队上下文,以持久事件区分领取、进入、消费与正常最终答复;团队投递先取得原生 maintenance 准入,不能把公开 idle 当作独占许可。
|
|
85
93
|
|
|
86
94
|
模型可读的团队任务、背景、公共原文和批次通知使用 Markdown;公共消息 read 复用同一原文渲染。主 agent 收到的独立子会话结果通知,以及 agent/team 工具的列表、状态和报告文本也使用 Markdown。common/markdown 提供字段与原文区块渲染,tools/result 只为这些工具显式选择 Markdown 文本。上下文预算计入实际 Markdown、原文围栏与分页字段。工具 structuredContent、原生 custom message 的去重 details 和控制文件继续使用原有结构化字段,运行时不解析 Markdown 来识别团队或请求。
|
|
87
95
|
|
|
96
|
+
## dsh 人工管理
|
|
97
|
+
|
|
98
|
+
原生 `/pbot` 命令与模型工具调用同一业务动作。四个共享 Remote 描述符提供 snapshot、expert、team、history 查询,Host 注册,Client 原生 `$mount`;不增加 HTTP 服务。查询核对已加载的根父会话及领域归属;完整专家记录只读分页,不代替模型 read 领取通知。
|
|
99
|
+
|
|
100
|
+
Web 拥有草稿、上传和查询;接纳后的命令归服务端。命令不重复记录私人输入正文,人工对话要求团队暂停成功后才进入 inbox。原生工具成功读取或上下文实际消费才确认通知;PTC 内层 read 还要求根调用成功,页面读取不确认。
|
|
101
|
+
|
|
88
102
|
## Python 环境
|
|
89
103
|
|
|
90
104
|
所有工作区共用当前用户的 venv。PythonEnvironmentService 调用 scripts/setup-python.py,按 python/requirements.lock 创建或对齐依赖,完成 pip check、库导入和基础计算检查后标记就绪。安装仅使用 wheel。
|
|
91
105
|
|
|
92
106
|
共享锁串行化跨进程 setup,同一服务合并重叠请求。失败或取消时保留环境并报告状态,其他扩展功能继续可用;可通过 `/pbot python setup` 重试。
|
|
93
107
|
|
|
94
|
-
|
|
108
|
+
各宿主装配在当前进程激活 PATH、VIRTUAL_ENV 和 Python 路径变量,供主会话与专家的 Bash 继承;同一 dsh 进程内的工作区共用准备与激活生命周期。关闭时恢复仍由本实例持有的变量。环境更新会影响其他工作区,更新前应停止相关脚本。
|
|
95
109
|
|
|
96
110
|
计算通过原生 Bash 和第三方库 API 执行,使用项目自身的目录、输入和输出约定。路径、安装条件与许可见 [Python 说明](../python/README.md)。
|
|
97
111
|
|
|
98
112
|
## 工具与分发
|
|
99
113
|
|
|
100
|
-
|
|
114
|
+
Pi 将工具纳入 pbot namespace,codemode 按契约组合;dsh 注册原生工具,并在固定版可表达的 schema 之外继续校验完整领域契约。原生 CLI/MCP 与可选 Task Conductor 的接入和授权见[工具与执行](capability-design.md)。
|
|
101
115
|
|
|
102
|
-
扩展以 TypeScript 源码分发,由 Pi 加载;dist 仅供测试导入。安装 CLI 使用现有 TypeScript 工具链单独生成 lib,由 bin/pbot.mjs 启动,消费者无需编译或预装 Pi。宿主
|
|
116
|
+
扩展以 TypeScript 源码分发,由 Pi 加载;dist 仅供测试导入。安装 CLI 使用现有 TypeScript 工具链单独生成 lib,由 bin/pbot.mjs 启动,消费者无需编译或预装 Pi。dsh Host 与 Web 也编译到 lib,客户端由原生包根 Loader 发现;Pi 的入口仍由包清单明确指向 src。宿主 SDK 均为 optional peer,不捆绑另一份运行时;TypeBox 是共享契约所需的包自身运行时依赖。Pi/CLI 保持 Node.js 22.19+,dsh 与完整开发使用 Node.js 24.9+。安装检查子进程在发现真实宿主后使用该宿主的 SDK 读取配置和切换来源声明。发布版本以 package.json 为准,包内组件共用该版本。子会话兼容线在 1.0 前按次版本、1.0 起按主版本判断,跨线会话不能直接恢复。
|
|
103
117
|
|
|
104
118
|
开发验证见[验证](validation.md),分发流程见[npm 发布](release.md)。
|
package/docs/validation.md
CHANGED
|
@@ -9,7 +9,7 @@ git diff --check
|
|
|
9
9
|
npm pack --dry-run
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
npm test
|
|
12
|
+
完整开发与验收使用 Linux、Node.js 24.9+;Pi 与独立 CLI 消费路径保留 Node.js 22.19+。CI 使用 Node 24.x 安装完整开发依赖、执行全量检查并构建候选包,再由独立 Node 22.19.0 作业安装同一 tarball,检查无宿主 SDK 的 CLI 与显式安装 Pi SDK 后的扩展、工具、技能及资料初始化。消费者检查不安装 dsh 开发依赖,也不调用模型。npm test 先构建 dist 和 CLI、dsh Host/Web 的 lib,再串行执行 Node 测试。测试使用真实本地文件、进程、计算、Pi 1.4.0 与固定版 dsh 0.2.2-rc.1 SDK。Pi 开发依赖与相关传递组件统一锁定 1.4.0;宿主提供的包声明为 optional peer,不增加运行时副本。发布包包含 bin/lib,扩展仍由 Pi 加载 src,dist 不进入发布包。
|
|
13
13
|
|
|
14
14
|
| 范围 | 检查内容 |
|
|
15
15
|
| --- | --- |
|
|
@@ -17,6 +17,8 @@ npm test 先构建测试导入 dist 和安装 CLI 的 lib,再串行执行 Node
|
|
|
17
17
|
| tests/installation/ | 真实子进程、Pi 原生配置、来源与资源过滤保留、过期计划、CLI 打包入口、无模型认证时的初始化分发与拦截 |
|
|
18
18
|
| tests/smoke/ | 实际 tarball 加载、资料准备、独立 Python setup 脚本 |
|
|
19
19
|
| tests/e2e/ | Pi SDK/RPC 命令与工具、确认、持久化、重启和 Bash 环境继承 |
|
|
20
|
+
| tests/dsh/ | 真实 Agent/Session、代次与占用、附件、文件规则、团队、通知、双来源 history、原生 Remote、资源可见性与生命周期 |
|
|
21
|
+
| 历史并发 | 真实多进程与来源短锁,拒绝过期扫描和摘要覆盖,损坏来源隔离与独立取消 |
|
|
20
22
|
| 专家协作 | 真实 tmux/Pi 进程、无任务待命、原 inbox、消息顺序、分支归属、通知领取和异常退出 |
|
|
21
23
|
| 历史查询 | 真实 SDK 保存的问答、补充输入、工具过滤、分支隔离、四叉分组、原文与摘要搜索、正文分页、重载复用、空会话不误报、旧目录复制、跨目录读取、缺失原文时保留存档、旧路径清理、按会话 ID 重新关联与工具契约 |
|
|
22
24
|
| 原生会话存储 | 真实 CLI 的默认 cwd 目录、settings/环境变量优先级、tmux 旧环境覆盖、空待命恢复、进入已停止会话不入队或重放旧任务、绝对路径绑定、身份检查、固定叶节点只读报告与旧布局保留 |
|
|
@@ -33,6 +35,40 @@ npm test 先构建测试导入 dist 和安装 CLI 的 lib,再串行执行 Node
|
|
|
33
35
|
|
|
34
36
|
Node 测试不下载第三方 Python 依赖;原生库集成验证见 [Python 说明](../python/README.md)。
|
|
35
37
|
|
|
38
|
+
## 双宿主接入验收
|
|
39
|
+
|
|
40
|
+
已完成固定版 dsh 的 Host/Web、专家与团队、附件、通知、双来源 history 和人工管理。当前结果与证据位置持续记录在[实施记录](dsh-implementation-plan.md),使用入口见[dsh 使用](dsh.md)。
|
|
41
|
+
|
|
42
|
+
- 最新源码在 macOS、Node.js 24.22.2、npm 11.19.1 下完成 `npm run check`、`npm test`、`git diff --check`,125/125 通过,无跳过;依赖边界为 135 个模块、554 条依赖。正常 `npm pack --dry-run` 与 prepack 打包通过。最新 Linux 回归未完成。
|
|
43
|
+
- 正常 tarball 在独立消费者目录安装后没有安装 Pi/dsh SDK 副本;Node.js 22.19.0 下独立 CLI 返回版本,Pi 实际加载四个工具与技能、执行资料初始化和空专家查询通过。固定版 dsh 原生安装最终运行代码后,完整 Web 流程再次通过。
|
|
44
|
+
- 正常执行 prepack 的 tarball 经原生插件命令安装后,真实 Chrome 验证四个 Remote、资料准备、文件与图片上传、长原生记录分页、私人草稿、公共消息分页、停止后冷读、显式恢复、history 查询与页面刷新。缺 provider 的批次真实失败并暂停,没有生成模拟响应。
|
|
45
|
+
- 原生 Web 审批验证单次允许、真实取消以及等待期间符号链接变化;使用原生 Session 审计和真实 write 工具,不生成模型响应。
|
|
46
|
+
- 原生 Web 停用插件后入口移除,专家释放;重新启用后专家保持停止且记录可冷读。单独关闭管理页不停止已接纳专家。关闭整个浏览器进程后重新连接,父身份与两个专家的存活状态保持。长断线及真实模型运行中的接管、取消仍需后续验证。
|
|
47
|
+
- SDK 资源检查验证包内及工作区技能发现、不同工作区目录隔离、实际 skill 工具读取、noSkills 与专家工具限制。它证明原生可见性与加载,不证明模型会正确选用方法。
|
|
48
|
+
|
|
49
|
+
Python 测试已同时隔离 HOME 与 XDG_DATA_HOME,并用真实准备脚本确认目标目录。首轮 macOS 全量前的 fixture 隔离不完整;随后对个人 Python 目录的元数据核查未发现该轮开始后修改的文件或目录条目。没有删除、回滚或覆盖个人环境,不能追溯声称首轮从未访问它。临时损坏环境只验证失败与恢复路径,不代表依赖成功安装。
|
|
50
|
+
|
|
51
|
+
尚无本次获准的真实提供方工作流。成功专家/团队协作、通知后的模型推进、后台摘要成功及真实请求取消均未验收;旧版 Pi 模型冒烟和缺 provider 失败路径不能替代这些结果。
|
|
52
|
+
|
|
53
|
+
### macOS 桌面应用实测
|
|
54
|
+
|
|
55
|
+
使用本机 `/Applications/DeepSeek Harness.app` 0.2.2-rc.1、自带 Node.js 24.21.0,另开隔离的 Electron userData、DSH_HOME、HOME 与 Documents 工作区;原有应用进程持续运行。通过应用原生“插件 → 添加插件”安装实际 tarball 并启用,没有使用 dsh CLI 安装该测试 profile。
|
|
56
|
+
|
|
57
|
+
- 四页签与资料准备、524,305 字节文件及 1×1 图片上传、完整 JSON 分页重组、草稿保留、20,000 字符公共消息分页、团队真实缺 provider 后暂停、停止后冷读、携新要求恢复、history 查询及 Renderer 刷新全部通过。观察到 10 次管理写命令,轮询和刷新没有增加写命令,页面错误为空。
|
|
58
|
+
- 32 MiB 上传开始后立即关闭管理页,上传取消且没有提交 chat 命令或追加 inbox 消息;已创建专家继续存活。完整退出应用后再启动,两个专家保持停止且原生记录保留;插件停用、重新启用同样不自动恢复。
|
|
59
|
+
- 临时登录 Shell 的 PATH 配置为真实 Python 3.12 后,应用自动创建独立 venv 并安装锁定依赖,状态达到 ready。该环境 `pip check` 成功,5 项 Python 原生库测试通过,覆盖 TA-Lib/backtesting、统计与 sklearn、Excel/Parquet/Feather 往返及绘图。这证明本机桌面准备和库配合,不证明模型能正确开展研究。
|
|
60
|
+
- 隔离实例的原生模型选择器显示 `No models available`,未配置认证,没有进行成功模型调用。
|
|
61
|
+
|
|
62
|
+
证据位于 `/tmp/pbot-dsh-desktop-test/`:`smoke.json`、`verified.json`、`lifecycle.json`、`python.json`、`python-library-tests.log`、`model-picker.txt` 与对应截图;脚本位于 `/tmp/pbot-dsh-browser/desktop-*.mjs`。临时文件可能被系统清理,测试应用进程已退出,资料与记录保留。
|
|
63
|
+
|
|
64
|
+
### 界面验收
|
|
65
|
+
|
|
66
|
+
- Pi 1.4.0 真实终端通过 `/pbot` 菜单、只读状态页、历史入口和窗口缩放验证。真实组件测试覆盖长列表、中文/emoji 换行、滚动及深浅主题。
|
|
67
|
+
- 桌面应用通过原生插件页安装最终 tarball。专家切换保留各自草稿与附件;轮询保留表单焦点和分页。文件/图片、完整事件分页、团队消息、history、停止/恢复及刷新通过,8 次写命令,页面错误为空。
|
|
68
|
+
- 原生设置切换浅色/深色后,四页在 1360、560、360 像素宽度均无横向溢出;主按钮文字对比检查通过。
|
|
69
|
+
|
|
70
|
+
证据位于 `/tmp/pbot-ui-review/`,包括 `check.log`、`pi.json`、`gui.json`、`themes.json` 与截图。此轮未执行成功模型工作流。
|
|
71
|
+
|
|
36
72
|
## 安装器验收(2026-11-03)
|
|
37
73
|
|
|
38
74
|
本次实现完成以下验证。安装验收使用临时工作区与独立的用户目录、npm cache/prefix,不使用个人凭据或模型请求:
|
|
@@ -79,7 +115,7 @@ Node 测试不下载第三方 Python 依赖;原生库集成验证见 [Python
|
|
|
79
115
|
| CLI/MCP | 认证、发现、重连、动态工具、取消与业务结果 |
|
|
80
116
|
| TUI/RPC | 人工 attach、焦点、批准、查看器、长时间运行和会话导航 |
|
|
81
117
|
| npm 分发 | 包含安装器的新版本 OIDC 发布、公开 registry 的 npx 入口与用户环境反馈 |
|
|
82
|
-
| 平台与存储 | macOS
|
|
118
|
+
| 平台与存储 | 最新源码的 Linux 全量、macOS 独立安装器的完整交互、断电持久性及文件系统差异 |
|
|
83
119
|
|
|
84
120
|
研究与资料方法使用真实任务资料验收,重点检查来源追溯、口径一致、缺失数据处理、历史前提复核、产物引用和结项依据。知识沉淀需检查是否提炼方法与口径,以及后续任务能否据此重新取数。探索任务应区分实验失败与假设被否定。
|
|
85
121
|
|