@bolloon/bolloon-agent 0.4.3 → 0.4.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.
Files changed (212) hide show
  1. package/README.md +135 -135
  2. package/bin/bolloon-cli.cjs +183 -183
  3. package/bin/bolloon-daemon.sh +207 -0
  4. package/bin/bolloon.cjs +0 -0
  5. package/dist/agents/constraint-layer.js +19 -19
  6. package/dist/agents/judgment-protocol.js +14 -14
  7. package/dist/agents/pi-sdk-types.js +12 -12
  8. package/dist/agents/pi-sdk.js +90 -90
  9. package/dist/agents/skill-organizer.js +19 -19
  10. package/dist/agents/workflow-pivot-loop.js +2 -2
  11. package/dist/bollharness/src/scripts/deploy-guard.js +8 -8
  12. package/dist/bollharness-integration/context-router-judgment.js +4 -4
  13. package/dist/bollharness-integration/context-router.js +292 -292
  14. package/dist/bollharness-integration/gate-state-machine.js +13 -13
  15. package/dist/bollharness-integration/llm-judgment-engine.js +134 -134
  16. package/dist/bollharness-integration/skill-adapter.js +21 -21
  17. package/dist/bootstrap/chat-archiver.js +14 -14
  18. package/dist/bootstrap/context-os.js +24 -24
  19. package/dist/bootstrap/memory-compressor.js +13 -13
  20. package/dist/cli-entry.js +36 -36
  21. package/dist/constraint-runtime/reference_data/archive_surface_snapshot.json +63 -0
  22. package/dist/constraint-runtime/reference_data/commands_snapshot.json +1037 -0
  23. package/dist/constraint-runtime/reference_data/subsystems/assistant.json +8 -0
  24. package/dist/constraint-runtime/reference_data/subsystems/bootstrap.json +8 -0
  25. package/dist/constraint-runtime/reference_data/subsystems/bridge.json +32 -0
  26. package/dist/constraint-runtime/reference_data/subsystems/buddy.json +13 -0
  27. package/dist/constraint-runtime/reference_data/subsystems/cli.json +26 -0
  28. package/dist/constraint-runtime/reference_data/subsystems/components.json +32 -0
  29. package/dist/constraint-runtime/reference_data/subsystems/constants.json +28 -0
  30. package/dist/constraint-runtime/reference_data/subsystems/coordinator.json +8 -0
  31. package/dist/constraint-runtime/reference_data/subsystems/entrypoints.json +15 -0
  32. package/dist/constraint-runtime/reference_data/subsystems/hooks.json +32 -0
  33. package/dist/constraint-runtime/reference_data/subsystems/keybindings.json +21 -0
  34. package/dist/constraint-runtime/reference_data/subsystems/memdir.json +15 -0
  35. package/dist/constraint-runtime/reference_data/subsystems/migrations.json +18 -0
  36. package/dist/constraint-runtime/reference_data/subsystems/moreright.json +8 -0
  37. package/dist/constraint-runtime/reference_data/subsystems/native_ts.json +11 -0
  38. package/dist/constraint-runtime/reference_data/subsystems/outputStyles.json +8 -0
  39. package/dist/constraint-runtime/reference_data/subsystems/plugins.json +9 -0
  40. package/dist/constraint-runtime/reference_data/subsystems/remote.json +11 -0
  41. package/dist/constraint-runtime/reference_data/subsystems/schemas.json +8 -0
  42. package/dist/constraint-runtime/reference_data/subsystems/screens.json +10 -0
  43. package/dist/constraint-runtime/reference_data/subsystems/server.json +10 -0
  44. package/dist/constraint-runtime/reference_data/subsystems/services.json +32 -0
  45. package/dist/constraint-runtime/reference_data/subsystems/skills.json +27 -0
  46. package/dist/constraint-runtime/reference_data/subsystems/state.json +13 -0
  47. package/dist/constraint-runtime/reference_data/subsystems/types.json +18 -0
  48. package/dist/constraint-runtime/reference_data/subsystems/upstreamproxy.json +9 -0
  49. package/dist/constraint-runtime/reference_data/subsystems/utils.json +32 -0
  50. package/dist/constraint-runtime/reference_data/subsystems/vim.json +12 -0
  51. package/dist/constraint-runtime/reference_data/subsystems/voice.json +8 -0
  52. package/dist/constraint-runtime/reference_data/tools_snapshot.json +922 -0
  53. package/dist/context-compaction/auto-compact.js +7 -7
  54. package/dist/electron/config.js.map +1 -0
  55. package/dist/electron/dialogs.js.map +1 -0
  56. package/dist/electron/first-run.js +54 -54
  57. package/dist/electron/first-run.js.map +1 -0
  58. package/dist/electron/ipc.js.map +1 -0
  59. package/dist/electron/logger.js.map +1 -0
  60. package/dist/electron/main.js.map +1 -0
  61. package/dist/electron/menu.js.map +1 -0
  62. package/dist/electron/paths.js.map +1 -0
  63. package/dist/electron/server.js.map +1 -0
  64. package/dist/electron/tray.js.map +1 -0
  65. package/dist/electron/window.js.map +1 -0
  66. package/dist/electron-build/electron/config.js.map +1 -1
  67. package/dist/electron-build/electron/dialogs.js.map +1 -1
  68. package/dist/electron-build/electron/first-run.js +54 -54
  69. package/dist/electron-build/electron/first-run.js.map +1 -1
  70. package/dist/electron-build/electron/ipc.js.map +1 -1
  71. package/dist/electron-build/electron/logger.js.map +1 -1
  72. package/dist/electron-build/electron/menu.js.map +1 -1
  73. package/dist/electron-build/electron/paths.js.map +1 -1
  74. package/dist/electron-build/electron/server.js.map +1 -1
  75. package/dist/electron-build/electron/tray.js.map +1 -1
  76. package/dist/electron-build/electron/window.js.map +1 -1
  77. package/dist/electron-build/utils/auto-update.js.map +1 -1
  78. package/dist/electron-preload.js.map +1 -1
  79. package/dist/electron.js.map +1 -1
  80. package/dist/index.js +112 -112
  81. package/dist/llm/llm-judgment-client.js +102 -102
  82. package/dist/llm/pi-ai.js +48 -48
  83. package/dist/llm/system-prompt/layers/channel/human-async.md +41 -41
  84. package/dist/llm/system-prompt/layers/channel/local.md +14 -14
  85. package/dist/llm/system-prompt/layers/channel/p2p-agent.md +18 -18
  86. package/dist/llm/system-prompt/layers/channel/p2p-peer-sync.md +51 -51
  87. package/dist/llm/system-prompt/layers/channel/p2p-proactive.md +43 -43
  88. package/dist/llm/system-prompt/layers/channel/p2p-visitor.md +19 -19
  89. package/dist/llm/system-prompt/layers/channel/session-handoff.md +61 -61
  90. package/dist/llm/system-prompt/layers/core/artifacts_storage.md +89 -89
  91. package/dist/llm/system-prompt/layers/core/evenhandedness.md +21 -21
  92. package/dist/llm/system-prompt/layers/core/external-engagement.md +73 -73
  93. package/dist/llm/system-prompt/layers/core/hibs_reminders.md +15 -15
  94. package/dist/llm/system-prompt/layers/core/identity.md +48 -48
  95. package/dist/llm/system-prompt/layers/core/knowledge.md +17 -17
  96. package/dist/llm/system-prompt/layers/core/memory_system.md +12 -12
  97. package/dist/llm/system-prompt/layers/core/network_filesystem.md +28 -28
  98. package/dist/llm/system-prompt/layers/core/refusal.md +37 -37
  99. package/dist/llm/system-prompt/layers/core/tone.md +31 -31
  100. package/dist/llm/system-prompt/layers/core/tools.thin.md +13 -13
  101. package/dist/llm/system-prompt/layers/core/wellbeing.md +41 -41
  102. package/dist/llm/system-prompt/layers/role/architect.md +20 -20
  103. package/dist/llm/system-prompt/layers/role/expert.md +19 -19
  104. package/dist/llm/system-prompt/layers/role/implementer.md +15 -15
  105. package/dist/llm/system-prompt/layers/role/security.md +15 -15
  106. package/dist/llm/system-prompt/layers/tool/artifacts.md +72 -72
  107. package/dist/llm/system-prompt/layers/tool/bash.md +25 -25
  108. package/dist/llm/system-prompt/layers/tool/goal_handoff.md +77 -77
  109. package/dist/llm/system-prompt/layers/tool/hibs_api.md +171 -171
  110. package/dist/llm/system-prompt/layers/tool/image_search.md +70 -70
  111. package/dist/llm/system-prompt/layers/tool/manifest.md +89 -89
  112. package/dist/llm/system-prompt/layers/tool/mcp_apps.md +53 -53
  113. package/dist/llm/system-prompt/layers/tool/p2p_request.md +61 -61
  114. package/dist/llm/system-prompt/layers/tool/web_search.md +83 -83
  115. package/dist/llm/tool-manifest/ask_user_input.js +1 -1
  116. package/dist/llm/tool-manifest/bash.js +3 -3
  117. package/dist/llm/tool-manifest/create_file.js +4 -4
  118. package/dist/llm/tool-manifest/fetch_sports_data.js +3 -3
  119. package/dist/llm/tool-manifest/image_search.js +2 -2
  120. package/dist/llm/tool-manifest/index.js +59 -0
  121. package/dist/llm/tool-manifest/mcp.js +2 -2
  122. package/dist/llm/tool-manifest/message_compose.js +3 -3
  123. package/dist/llm/tool-manifest/places.js +2 -2
  124. package/dist/llm/tool-manifest/present_files.js +1 -1
  125. package/dist/llm/tool-manifest/recipe.js +2 -2
  126. package/dist/llm/tool-manifest/str_replace.js +5 -5
  127. package/dist/llm/tool-manifest/view.js +3 -3
  128. package/dist/llm/tool-manifest/weather.js +4 -4
  129. package/dist/llm/tool-manifest/web.js +4 -4
  130. package/dist/pi-ecosystem-judgment/causal-judge.js +51 -51
  131. package/dist/pi-ecosystem-judgment/distill-prompt.js +42 -42
  132. package/dist/pi-ecosystem-judgment/distillation.js +14 -14
  133. package/dist/pi-ecosystem-judgment/human-value-store.js +1 -1
  134. package/dist/pi-ecosystem-judgment/monitor-gate.js +28 -28
  135. package/dist/pi-ecosystem-judgment/value-injection.js +102 -102
  136. package/dist/pi-ecosystem-mcp/index.js +146 -5
  137. package/dist/security/context-router-tool.js +15 -15
  138. package/dist/utils/auto-update.js.map +1 -0
  139. package/dist/web/api-config.html +779 -779
  140. package/dist/web/client-hearth.js +10 -10
  141. package/dist/web/client.js.map +7 -0
  142. package/dist/web/components/wallet-viem.mjs +118 -118
  143. package/dist/web/edge-auth-client.js +120 -0
  144. package/dist/web/index.html +472 -472
  145. package/dist/web/manifest.json +20 -20
  146. package/dist/web/server.js +34 -67
  147. package/dist/web/style.css +4946 -4946
  148. package/package.json +195 -195
  149. package/scripts/build-cli.js +215 -215
  150. package/scripts/build-web.ts +130 -130
  151. package/scripts/postinstall.js +152 -152
  152. package/bin/bolloon.js +0 -157
  153. package/dist/pi-ecosystem-colony/index.js +0 -365
  154. package/dist/social/ant-colony/AdaptiveHeartbeat.js +0 -101
  155. package/dist/social/ant-colony/PheromoneEngine.js +0 -227
  156. package/dist/social/ant-colony/index.js +0 -6
  157. package/dist/social/ant-colony/types.js +0 -24
  158. package/dist/storage/trajectory.js +0 -101
  159. package/dist/test/ai-judgment-test.js +0 -80
  160. package/dist/test/bollharness-integration.test.js +0 -318
  161. package/dist/test/channel-agent-multi-dialogue.js +0 -205
  162. package/dist/test/channel-heartbeat-agent-test.js +0 -201
  163. package/dist/test/constraint-layer.test.js +0 -164
  164. package/dist/test/diap-identity-test.js +0 -172
  165. package/dist/test/diap-quick-test.js +0 -62
  166. package/dist/test/global-shared-context.test.js +0 -315
  167. package/dist/test/harness-judgment-injection.test.js +0 -246
  168. package/dist/test/harness-workflow-integrator-test.js +0 -228
  169. package/dist/test/human-value-store.test.js +0 -243
  170. package/dist/test/hybrid-integration-test.js +0 -118
  171. package/dist/test/hybrid-messenger-verify.js +0 -55
  172. package/dist/test/iroh-bistream-debug.js +0 -38
  173. package/dist/test/iroh-communication.test.js +0 -66
  174. package/dist/test/iroh-debug-test.js +0 -57
  175. package/dist/test/iroh-diap-test.js +0 -71
  176. package/dist/test/iroh-direct-connect.js +0 -55
  177. package/dist/test/iroh-e2e-fixed.js +0 -89
  178. package/dist/test/iroh-e2e-same-process.js +0 -63
  179. package/dist/test/iroh-e2e.js +0 -66
  180. package/dist/test/iroh-final-e2e.js +0 -72
  181. package/dist/test/iroh-relay-test.js +0 -37
  182. package/dist/test/iroh-simple-test.js +0 -41
  183. package/dist/test/iroh-transport-verify.js +0 -54
  184. package/dist/test/iroh-transport.test.js +0 -37
  185. package/dist/test/iroh-two-nodes.js +0 -70
  186. package/dist/test/iroh-verify.js +0 -44
  187. package/dist/test/judgment-decision.test.js +0 -219
  188. package/dist/test/llm-judgment-integration.test.js +0 -220
  189. package/dist/test/p2p-agent-complex-dialogue.js +0 -385
  190. package/dist/test/p2p-agent-dialogue.js +0 -341
  191. package/dist/test/p2p-agent-full-bidirectional.js +0 -510
  192. package/dist/test/p2p-agent-harness-flow.js +0 -437
  193. package/dist/test/p2p-agent-harness-single.js +0 -143
  194. package/dist/test/p2p-ai-dialogue-test.js +0 -318
  195. package/dist/test/p2p-cid-connect-test.js +0 -195
  196. package/dist/test/p2p-connect-receiver.js +0 -69
  197. package/dist/test/p2p-doc-transfer.js +0 -110
  198. package/dist/test/p2p-identity-page-test.js +0 -77
  199. package/dist/test/p2p-iroh-test.js +0 -171
  200. package/dist/test/p2p-minimal-test.js +0 -241
  201. package/dist/test/p2p-node-1.js +0 -148
  202. package/dist/test/p2p-node-2.js +0 -148
  203. package/dist/test/p2p-server.js +0 -281
  204. package/dist/test/p2p-two-nodes-test.js +0 -438
  205. package/dist/test/pi-sdk.test.js +0 -44
  206. package/dist/test/set-persona.js +0 -40
  207. package/dist/test/simple.test.js +0 -9
  208. package/dist/test/storage-integration.test.js +0 -150
  209. package/dist/test/subagent-manager.test.js +0 -276
  210. package/dist/test/test-gate-flow.test.js +0 -81
  211. package/dist/test/workflow-engine.test.js +0 -87
  212. package/dist/test/workflow-pivot-loop.test.js +0 -246
package/dist/index.js CHANGED
@@ -1981,10 +1981,10 @@ async function runToolCommand(tool, args, outputJson, comm, model, prompt) {
1981
1981
  const running = irohTransport.isRunning();
1982
1982
  const irohPeers = irohTransport.getPeers();
1983
1983
  const messenger = hybridMessenger ? 'HybridMessenger 就绪' : 'HybridMessenger 未初始化';
1984
- response = `iroh P2P 状态:
1985
- 运行中: ${running ? '是' : '否'}
1986
- Node ID: ${nodeId ? nodeId.substring(0, 32) + '...' : 'N/A'}
1987
- 已知节点: ${irohPeers.length}
1984
+ response = `iroh P2P 状态:
1985
+ 运行中: ${running ? '是' : '否'}
1986
+ Node ID: ${nodeId ? nodeId.substring(0, 32) + '...' : 'N/A'}
1987
+ 已知节点: ${irohPeers.length}
1988
1988
  ${messenger}`;
1989
1989
  break;
1990
1990
  }
@@ -3118,114 +3118,114 @@ function parseArgs() {
3118
3118
  return result;
3119
3119
  }
3120
3120
  function printHelp() {
3121
- console.log(`
3122
- 🤖 Bolloon Agent - AI 可调用文档处理智能体
3123
-
3124
- 用法:
3125
- npx tsx src/index.ts [选项] [参数]
3126
-
3127
- 选项:
3128
- # 文档处理
3129
- --read <file> 读取文档 (txt, md, pdf, docx)
3130
- --summarize <file> [ctx] 总结文档,可选上下文
3131
- --improve <file> <req> 改进文档,req 为改进要求
3132
-
3133
- # P2P 网络
3134
- --peers 列出已连接的对等节点
3135
- --broadcast <msg> 广播消息到所有节点
3136
- --send <peerId> <msg> 向指定节点发送消息
3137
-
3138
- # 智能体
3139
- --identity 显示当前智能体身份
3140
- --logs 显示操作日志
3141
- --search <keyword> 搜索文件
3142
- --tools 显示所有可用工具
3143
-
3144
- # SubAgent 管理
3145
- --agents 列出所有 SubAgent
3146
- --register-agent <name> [cap1] [cap2]... 注册新 SubAgent
3147
- --delegate <任务描述> [能力要求...] 委派任务给最佳 Agent
3148
-
3149
- # 全局共享上下文
3150
- --context 显示全局共享上下文摘要
3151
- --global-agents 显示全局 Agent 注册表
3152
- --add-action <内容> [重要性] 添加用户行动到共享上下文
3153
-
3154
- # Bollharness 治理框架
3155
- --harness-init 初始化 Bollharness 治理框架
3156
- --harness-gate 显示当前 Gate 状态
3157
- --harness-transition [PASS|BLOCK] 执行 Gate 转移
3158
- --harness-skill <name> [action] 执行 Harness Skill
3159
- --harness-classify <描述> 分类变更类型
3160
- --harness-context <file> 获取文件上下文
3161
- --harness-check <file> 执行 Guard 检查
3162
- --harness-archive 归档当前 Session 到 Harness
3163
- --harness-sessions 列出 Session 归档记录
3164
- --harness-session-context [id] 获取 Session 上下文
3165
-
3166
- # 自动更新
3167
- --update-check 检查 npm 包更新
3168
- --update-now [pkg] 更新到最新版本
3169
-
3170
- # 跨机聊天 (commits-as-messages, 共享 GitHub 仓库)
3171
- --chat-init 初始化 .comm/ 目录 (一次性)
3172
- --chat-send "消息正文" 把消息写到 .comm/<role>/, commit + push
3173
- --chat-pull 拉取远端 .comm/ 的新消息并显示
3174
- --chat-list 列出本地所有已同步消息
3175
- --chat-watch [--interval 15s] 后台定时拉取, 有新消息时输出
3176
- --chat-status 一屏查看: role / publicKey / remote / ahead-behind
3177
-
3178
- # 纯 P2P 私聊 (不走 GitHub, 不写 git, 不持久化)
3179
- --chat-p2p-send <peer|publicKey> "消息正文" 通过 P2P 直接发一条
3180
- --chat-p2p-listen 后台监听对方 P2P 私聊消息 (Ctrl-C 退出)
3181
-
3182
- # 跨机 agent 协作 (对方 bolloon --web 起着才能处理, 走 P2P 不经 GitHub)
3183
- --collab <peer|publicKey> "<任务描述>" 派任务给对端 LLM 干活, 等回结果 (90s 超时)
3184
-
3185
- # 外部编码智能体委派
3186
- --engine, -e <id> [--model <m>] <prompt> 委派任务给外部引擎,如 opencode/codex
3187
- --model <name> 指定委派时使用的模型
3188
-
3189
- # 输出控制
3190
- --json, -j 输出 JSON 格式
3191
- --output, -o <file> 结果保存到文件
3192
- --web 启动 Web UI 模式
3193
- --help, -h 显示帮助信息
3194
-
3195
- 示例:
3196
- # 文档处理
3197
- npx tsx src/index.ts --read 想法.md
3198
- npx tsx src/index.ts --summarize docs/想法.md
3199
- npx tsx src/index.ts --improve docs/README.md "让内容更简洁"
3200
- npx tsx src/index.ts --read 想法.md -o summary.txt
3201
-
3202
- # P2P 网络
3203
- npx tsx src/index.ts --peers
3204
- npx tsx src/index.ts --broadcast "Hello everyone"
3205
- npx tsx src/index.ts --send QmABC... "私信内容"
3206
-
3207
- # AI 对话
3208
- npx tsx src/index.ts --prompt "总结 README.md"
3209
- npx tsx src/index.ts -p "分析这个项目" -j
3210
-
3211
- # 交互模式
3212
- npx tsx src/index.ts
3213
-
3214
- # 外部引擎委派
3215
- npx tsx src/index.ts --engine opencode --model opencode/deepseek-v4-flash-free "说你好"
3216
-
3217
- # Web 模式
3218
- npx tsx src/index.ts --web
3219
-
3220
- 环境变量:
3221
- MINIMAX_API_KEY MiniMax API 密钥
3222
- DEEPSEEK_API_KEY DeepSeek API 密钥
3223
- KIMI_API_KEY / MOONSHOT_API_KEY Kimi/Moonshot API 密钥
3224
- GLM_API_KEY / ZHIPU_API_KEY 智谱 GLM API 密钥
3225
- QWEN_API_KEY / DASHSCOPE_API_KEY 通义千问 API 密钥
3226
- OPENAI_API_KEY OpenAI API 密钥(Pi SDK)
3227
- ANTHROPIC_API_KEY Anthropic API 密钥(Pi SDK)
3228
- PORT Web 服务端口(默认 54188)
3121
+ console.log(`
3122
+ 🤖 Bolloon Agent - AI 可调用文档处理智能体
3123
+
3124
+ 用法:
3125
+ npx tsx src/index.ts [选项] [参数]
3126
+
3127
+ 选项:
3128
+ # 文档处理
3129
+ --read <file> 读取文档 (txt, md, pdf, docx)
3130
+ --summarize <file> [ctx] 总结文档,可选上下文
3131
+ --improve <file> <req> 改进文档,req 为改进要求
3132
+
3133
+ # P2P 网络
3134
+ --peers 列出已连接的对等节点
3135
+ --broadcast <msg> 广播消息到所有节点
3136
+ --send <peerId> <msg> 向指定节点发送消息
3137
+
3138
+ # 智能体
3139
+ --identity 显示当前智能体身份
3140
+ --logs 显示操作日志
3141
+ --search <keyword> 搜索文件
3142
+ --tools 显示所有可用工具
3143
+
3144
+ # SubAgent 管理
3145
+ --agents 列出所有 SubAgent
3146
+ --register-agent <name> [cap1] [cap2]... 注册新 SubAgent
3147
+ --delegate <任务描述> [能力要求...] 委派任务给最佳 Agent
3148
+
3149
+ # 全局共享上下文
3150
+ --context 显示全局共享上下文摘要
3151
+ --global-agents 显示全局 Agent 注册表
3152
+ --add-action <内容> [重要性] 添加用户行动到共享上下文
3153
+
3154
+ # Bollharness 治理框架
3155
+ --harness-init 初始化 Bollharness 治理框架
3156
+ --harness-gate 显示当前 Gate 状态
3157
+ --harness-transition [PASS|BLOCK] 执行 Gate 转移
3158
+ --harness-skill <name> [action] 执行 Harness Skill
3159
+ --harness-classify <描述> 分类变更类型
3160
+ --harness-context <file> 获取文件上下文
3161
+ --harness-check <file> 执行 Guard 检查
3162
+ --harness-archive 归档当前 Session 到 Harness
3163
+ --harness-sessions 列出 Session 归档记录
3164
+ --harness-session-context [id] 获取 Session 上下文
3165
+
3166
+ # 自动更新
3167
+ --update-check 检查 npm 包更新
3168
+ --update-now [pkg] 更新到最新版本
3169
+
3170
+ # 跨机聊天 (commits-as-messages, 共享 GitHub 仓库)
3171
+ --chat-init 初始化 .comm/ 目录 (一次性)
3172
+ --chat-send "消息正文" 把消息写到 .comm/<role>/, commit + push
3173
+ --chat-pull 拉取远端 .comm/ 的新消息并显示
3174
+ --chat-list 列出本地所有已同步消息
3175
+ --chat-watch [--interval 15s] 后台定时拉取, 有新消息时输出
3176
+ --chat-status 一屏查看: role / publicKey / remote / ahead-behind
3177
+
3178
+ # 纯 P2P 私聊 (不走 GitHub, 不写 git, 不持久化)
3179
+ --chat-p2p-send <peer|publicKey> "消息正文" 通过 P2P 直接发一条
3180
+ --chat-p2p-listen 后台监听对方 P2P 私聊消息 (Ctrl-C 退出)
3181
+
3182
+ # 跨机 agent 协作 (对方 bolloon --web 起着才能处理, 走 P2P 不经 GitHub)
3183
+ --collab <peer|publicKey> "<任务描述>" 派任务给对端 LLM 干活, 等回结果 (90s 超时)
3184
+
3185
+ # 外部编码智能体委派
3186
+ --engine, -e <id> [--model <m>] <prompt> 委派任务给外部引擎,如 opencode/codex
3187
+ --model <name> 指定委派时使用的模型
3188
+
3189
+ # 输出控制
3190
+ --json, -j 输出 JSON 格式
3191
+ --output, -o <file> 结果保存到文件
3192
+ --web 启动 Web UI 模式
3193
+ --help, -h 显示帮助信息
3194
+
3195
+ 示例:
3196
+ # 文档处理
3197
+ npx tsx src/index.ts --read 想法.md
3198
+ npx tsx src/index.ts --summarize docs/想法.md
3199
+ npx tsx src/index.ts --improve docs/README.md "让内容更简洁"
3200
+ npx tsx src/index.ts --read 想法.md -o summary.txt
3201
+
3202
+ # P2P 网络
3203
+ npx tsx src/index.ts --peers
3204
+ npx tsx src/index.ts --broadcast "Hello everyone"
3205
+ npx tsx src/index.ts --send QmABC... "私信内容"
3206
+
3207
+ # AI 对话
3208
+ npx tsx src/index.ts --prompt "总结 README.md"
3209
+ npx tsx src/index.ts -p "分析这个项目" -j
3210
+
3211
+ # 交互模式
3212
+ npx tsx src/index.ts
3213
+
3214
+ # 外部引擎委派
3215
+ npx tsx src/index.ts --engine opencode --model opencode/deepseek-v4-flash-free "说你好"
3216
+
3217
+ # Web 模式
3218
+ npx tsx src/index.ts --web
3219
+
3220
+ 环境变量:
3221
+ MINIMAX_API_KEY MiniMax API 密钥
3222
+ DEEPSEEK_API_KEY DeepSeek API 密钥
3223
+ KIMI_API_KEY / MOONSHOT_API_KEY Kimi/Moonshot API 密钥
3224
+ GLM_API_KEY / ZHIPU_API_KEY 智谱 GLM API 密钥
3225
+ QWEN_API_KEY / DASHSCOPE_API_KEY 通义千问 API 密钥
3226
+ OPENAI_API_KEY OpenAI API 密钥(Pi SDK)
3227
+ ANTHROPIC_API_KEY Anthropic API 密钥(Pi SDK)
3228
+ PORT Web 服务端口(默认 54188)
3229
3229
  `);
3230
3230
  }
3231
3231
  // ---------------------------------------------------------------------------
@@ -31,55 +31,55 @@ export const JUDGMENT_PROMPTS = {
31
31
  default: {
32
32
  systemPrompt: '',
33
33
  systemPromptResolver: () => loadRoleLayer('role.expert', '你是一个专业的 AI 任务分析专家. '),
34
- userPromptTemplate: `【当前输入】
35
- {user_input}
36
-
37
- 【对话历史】
38
- {history}
39
-
40
- 【发送者】
41
- {sender_name}
42
-
43
- 请分析以上输入,判断:
44
-
45
- ## 理解
46
- 1. 问题本质是什么?(how-to / why / what / should / feasibility)
47
- 2. 核心需求是什么?
48
- 3. 有哪些隐含信息需要注意?
49
-
50
- ## 评估
51
- 1. 复杂性等级(simple / moderate / complex / profound)
52
- 2. 为什么是这个等级?
53
- 3. 需要多深的理解?(surface / deeper / fundamental)
54
-
55
- ## 决策
56
- 1. 推荐处理方式(answer / analyze / design / implement / coordinate)
57
- 2. 为什么这样处理?
58
-
59
- ## 路由
60
- 1. 应该调用哪些 Skills?(arch / guardian-fixer / harness-eng / harness-dev / task-arch / crystal-learn)
61
- 2. 需要什么协作模式?(solo / pair / team)
62
-
63
- 请用 JSON 格式输出,格式如下:
64
- {
65
- "understanding": {
66
- "essence": "问题本质",
67
- "coreNeed": "核心需求",
68
- "implicit": ["隐含信息1", "隐含信息2"]
69
- },
70
- "assessment": {
71
- "complexity": "complex",
72
- "complexityReason": "评估理由",
73
- "depth": "deeper"
74
- },
75
- "decision": {
76
- "approach": "design",
77
- "reasoning": "决策理由"
78
- },
79
- "routing": {
80
- "skills": ["arch", "guardian-fixer"],
81
- "collaboration": "pair"
82
- }
34
+ userPromptTemplate: `【当前输入】
35
+ {user_input}
36
+
37
+ 【对话历史】
38
+ {history}
39
+
40
+ 【发送者】
41
+ {sender_name}
42
+
43
+ 请分析以上输入,判断:
44
+
45
+ ## 理解
46
+ 1. 问题本质是什么?(how-to / why / what / should / feasibility)
47
+ 2. 核心需求是什么?
48
+ 3. 有哪些隐含信息需要注意?
49
+
50
+ ## 评估
51
+ 1. 复杂性等级(simple / moderate / complex / profound)
52
+ 2. 为什么是这个等级?
53
+ 3. 需要多深的理解?(surface / deeper / fundamental)
54
+
55
+ ## 决策
56
+ 1. 推荐处理方式(answer / analyze / design / implement / coordinate)
57
+ 2. 为什么这样处理?
58
+
59
+ ## 路由
60
+ 1. 应该调用哪些 Skills?(arch / guardian-fixer / harness-eng / harness-dev / task-arch / crystal-learn)
61
+ 2. 需要什么协作模式?(solo / pair / team)
62
+
63
+ 请用 JSON 格式输出,格式如下:
64
+ {
65
+ "understanding": {
66
+ "essence": "问题本质",
67
+ "coreNeed": "核心需求",
68
+ "implicit": ["隐含信息1", "隐含信息2"]
69
+ },
70
+ "assessment": {
71
+ "complexity": "complex",
72
+ "complexityReason": "评估理由",
73
+ "depth": "deeper"
74
+ },
75
+ "decision": {
76
+ "approach": "design",
77
+ "reasoning": "决策理由"
78
+ },
79
+ "routing": {
80
+ "skills": ["arch", "guardian-fixer"],
81
+ "collaboration": "pair"
82
+ }
83
83
  }`,
84
84
  outputFormat: 'json'
85
85
  },
@@ -87,26 +87,26 @@ export const JUDGMENT_PROMPTS = {
87
87
  architecture: {
88
88
  systemPrompt: '',
89
89
  systemPromptResolver: () => loadRoleLayer('role.architect', '你是一个经验丰富的系统架构师. '),
90
- userPromptTemplate: `【架构设计问题】
91
- {user_input}
92
-
93
- 【上下文】
94
- {context}
95
-
96
- 请进行架构分析,判断是否需要 Harness 介入。
97
-
98
- 分析维度:
99
- 1. 涉及哪些架构维度?(分层、微服务、事件驱动等)
100
- 2. 需要什么级别的架构设计?(概念性、逻辑性、物理性)
101
- 3. 有什么架构风险需要考虑?
102
-
103
- 输出 JSON:
104
- {
105
- "needsHarness": true/false,
106
- "gate": 0-8,
107
- "skills": ["arch", "harness-eng"],
108
- "architectureType": "microservices/layered/event-driven/etc",
109
- "concerns": ["concern1", "concern2"]
90
+ userPromptTemplate: `【架构设计问题】
91
+ {user_input}
92
+
93
+ 【上下文】
94
+ {context}
95
+
96
+ 请进行架构分析,判断是否需要 Harness 介入。
97
+
98
+ 分析维度:
99
+ 1. 涉及哪些架构维度?(分层、微服务、事件驱动等)
100
+ 2. 需要什么级别的架构设计?(概念性、逻辑性、物理性)
101
+ 3. 有什么架构风险需要考虑?
102
+
103
+ 输出 JSON:
104
+ {
105
+ "needsHarness": true/false,
106
+ "gate": 0-8,
107
+ "skills": ["arch", "harness-eng"],
108
+ "architectureType": "microservices/layered/event-driven/etc",
109
+ "concerns": ["concern1", "concern2"]
110
110
  }`,
111
111
  outputFormat: 'json'
112
112
  },
@@ -114,22 +114,22 @@ export const JUDGMENT_PROMPTS = {
114
114
  code: {
115
115
  systemPrompt: '',
116
116
  systemPromptResolver: () => loadRoleLayer('role.implementer', '你是一个高效的代码实现专家. '),
117
- userPromptTemplate: `【代码问题】
118
- {user_input}
119
-
120
- 请判断这个问题:
121
-
122
- 1. 是新功能实现还是修复问题?
123
- 2. 涉及哪些代码层面?(业务逻辑、数据访问、接口设计)
124
- 3. 需要什么测试覆盖?
125
-
126
- 输出 JSON:
127
- {
128
- "needsHarness": true/false,
129
- "gate": 0-8,
130
- "skills": ["harness-dev", "guardian-fixer"],
131
- "codeType": "feature/fix/refactor",
132
- "testCoverage": "unit/integration/e2e"
117
+ userPromptTemplate: `【代码问题】
118
+ {user_input}
119
+
120
+ 请判断这个问题:
121
+
122
+ 1. 是新功能实现还是修复问题?
123
+ 2. 涉及哪些代码层面?(业务逻辑、数据访问、接口设计)
124
+ 3. 需要什么测试覆盖?
125
+
126
+ 输出 JSON:
127
+ {
128
+ "needsHarness": true/false,
129
+ "gate": 0-8,
130
+ "skills": ["harness-dev", "guardian-fixer"],
131
+ "codeType": "feature/fix/refactor",
132
+ "testCoverage": "unit/integration/e2e"
133
133
  }`,
134
134
  outputFormat: 'json'
135
135
  },
@@ -137,23 +137,23 @@ export const JUDGMENT_PROMPTS = {
137
137
  security: {
138
138
  systemPrompt: '',
139
139
  systemPromptResolver: () => loadRoleLayer('role.security', '你是一个严格的安全专家. '),
140
- userPromptTemplate: `【安全问题】
141
- {user_input}
142
-
143
- 请分析安全问题:
144
-
145
- 1. 涉及哪些安全维度?(认证、授权、数据保护、传输安全)
146
- 2. 风险等级?(低/中/高/严重)
147
- 3. 需要什么安全措施?
148
-
149
- 输出 JSON:
150
- {
151
- "needsHarness": true,
152
- "gate": 4,
153
- "skills": ["guardian-fixer", "arch"],
154
- "securityDimensions": ["authentication", "authorization"],
155
- "riskLevel": "high",
156
- "recommendations": ["rec1", "rec2"]
140
+ userPromptTemplate: `【安全问题】
141
+ {user_input}
142
+
143
+ 请分析安全问题:
144
+
145
+ 1. 涉及哪些安全维度?(认证、授权、数据保护、传输安全)
146
+ 2. 风险等级?(低/中/高/严重)
147
+ 3. 需要什么安全措施?
148
+
149
+ 输出 JSON:
150
+ {
151
+ "needsHarness": true,
152
+ "gate": 4,
153
+ "skills": ["guardian-fixer", "arch"],
154
+ "securityDimensions": ["authentication", "authorization"],
155
+ "riskLevel": "high",
156
+ "recommendations": ["rec1", "rec2"]
157
157
  }`,
158
158
  outputFormat: 'json'
159
159
  }
package/dist/llm/pi-ai.js CHANGED
@@ -527,12 +527,12 @@ export class PiAIModel {
527
527
  // 降级: 旧硬编码 (layer registry 不可用时不挂)
528
528
  console.warn('[pi-ai] layer registry 不可用, 降级:', err.message?.slice(0, 100));
529
529
  const envDetails = this.getEnvironmentDetails();
530
- return `You are a friendly AI assistant in a P2P document collaboration network.
531
-
532
- ## User Working Directory
533
- ${context || process.cwd()}
534
-
535
- ## Environment
530
+ return `You are a friendly AI assistant in a P2P document collaboration network.
531
+
532
+ ## User Working Directory
533
+ ${context || process.cwd()}
534
+
535
+ ## Environment
536
536
  ${envDetails}`;
537
537
  }
538
538
  }
@@ -540,49 +540,49 @@ ${envDetails}`;
540
540
  // 保留但内部用 sync fallback; 后续可改成 async
541
541
  buildSystemPrompt(context) {
542
542
  const envDetails = this.getEnvironmentDetails();
543
- return `You are a friendly AI assistant in a P2P document collaboration network.
544
-
545
- ## User Working Directory
546
- ${context || process.cwd()}
547
-
548
- ## Environment
543
+ return `You are a friendly AI assistant in a P2P document collaboration network.
544
+
545
+ ## User Working Directory
546
+ ${context || process.cwd()}
547
+
548
+ ## Environment
549
549
  ${envDetails}`;
550
550
  }
551
551
  getEnvironmentDetails() {
552
- return `
553
- ## Available Workflows
554
- - read - Read documents
555
- - summarize - Summarize documents
556
- - improve - Improve documents
557
- - collaborate - Multi-agent collaboration
558
- - query - Query status
559
- - report - Generate reports
560
-
561
- ## System Capabilities
562
- - Document processing (Markdown, Text, PDF, DOCX)
563
- - Multi-agent collaboration (P2P network)
564
- - Workflow engine (constraint layer)
565
- - Quality assessment and auto-send
566
-
567
- ## Current Time
552
+ return `
553
+ ## Available Workflows
554
+ - read - Read documents
555
+ - summarize - Summarize documents
556
+ - improve - Improve documents
557
+ - collaborate - Multi-agent collaboration
558
+ - query - Query status
559
+ - report - Generate reports
560
+
561
+ ## System Capabilities
562
+ - Document processing (Markdown, Text, PDF, DOCX)
563
+ - Multi-agent collaboration (P2P network)
564
+ - Workflow engine (constraint layer)
565
+ - Quality assessment and auto-send
566
+
567
+ ## Current Time
568
568
  ${new Date().toISOString()}`;
569
569
  }
570
570
  buildSummarizePrompt(text, context) {
571
571
  const maxLength = 8000;
572
572
  const truncatedText = text.length > maxLength ? text.substring(0, maxLength) + '...' : text;
573
- let prompt = `Please generate a concise and accurate summary for the following document:
574
-
575
- ${truncatedText}
576
-
577
- Please output in the following format:
578
- ## Summary
579
- [Write summary here]
580
-
581
- ## Quality Self-Assessment
573
+ let prompt = `Please generate a concise and accurate summary for the following document:
574
+
575
+ ${truncatedText}
576
+
577
+ Please output in the following format:
578
+ ## Summary
579
+ [Write summary here]
580
+
581
+ ## Quality Self-Assessment
582
582
  [Score 1-10, with reasoning]`;
583
583
  if (context) {
584
- prompt = `Context: ${context}
585
-
584
+ prompt = `Context: ${context}
585
+
586
586
  ${prompt}`;
587
587
  }
588
588
  return prompt;
@@ -590,17 +590,17 @@ ${prompt}`;
590
590
  buildImprovePrompt(content, requirements, context) {
591
591
  const maxLength = 8000;
592
592
  const truncatedContent = content.length > maxLength ? content.substring(0, maxLength) + '...' : content;
593
- let prompt = `Please improve the document according to the following requirements:
594
-
595
- Requirements: ${requirements}
596
-
597
- Original Document:
598
- ${truncatedContent}
599
-
593
+ let prompt = `Please improve the document according to the following requirements:
594
+
595
+ Requirements: ${requirements}
596
+
597
+ Original Document:
598
+ ${truncatedContent}
599
+
600
600
  Please output only the improved document without additional explanation.`;
601
601
  if (context) {
602
- prompt = `Context: ${context}
603
-
602
+ prompt = `Context: ${context}
603
+
604
604
  ${prompt}`;
605
605
  }
606
606
  return prompt;