@bolloon/bolloon-agent 0.4.13 → 0.4.15

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 (221) hide show
  1. package/README.md +127 -127
  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/agent-gateway.js +130 -0
  6. package/dist/agents/constraint-layer.js +19 -19
  7. package/dist/agents/gateway-group.js +261 -0
  8. package/dist/agents/gateway-network.js +278 -0
  9. package/dist/agents/judgment-protocol.js +14 -14
  10. package/dist/agents/pi-sdk-tools.js +117 -0
  11. package/dist/agents/pi-sdk-types.js +12 -12
  12. package/dist/agents/pi-sdk.js +101 -101
  13. package/dist/agents/skill-organizer.js +19 -19
  14. package/dist/agents/workflow-pivot-loop.js +2 -2
  15. package/dist/agents/x402/x402Pay.js +4 -0
  16. package/dist/bollharness/src/scripts/deploy-guard.js +8 -8
  17. package/dist/bollharness-integration/context-router-judgment.js +4 -4
  18. package/dist/bollharness-integration/context-router.js +292 -292
  19. package/dist/bollharness-integration/gate-state-machine.js +13 -13
  20. package/dist/bollharness-integration/llm-judgment-engine.js +134 -134
  21. package/dist/bollharness-integration/skill-adapter.js +21 -21
  22. package/dist/bootstrap/chat-archiver.js +14 -14
  23. package/dist/bootstrap/context-os.js +24 -24
  24. package/dist/bootstrap/memory-compressor.js +13 -13
  25. package/dist/cli-entry.js +36 -36
  26. package/dist/constraint-runtime/reference_data/archive_surface_snapshot.json +63 -0
  27. package/dist/constraint-runtime/reference_data/commands_snapshot.json +1037 -0
  28. package/dist/constraint-runtime/reference_data/subsystems/assistant.json +8 -0
  29. package/dist/constraint-runtime/reference_data/subsystems/bootstrap.json +8 -0
  30. package/dist/constraint-runtime/reference_data/subsystems/bridge.json +32 -0
  31. package/dist/constraint-runtime/reference_data/subsystems/buddy.json +13 -0
  32. package/dist/constraint-runtime/reference_data/subsystems/cli.json +26 -0
  33. package/dist/constraint-runtime/reference_data/subsystems/components.json +32 -0
  34. package/dist/constraint-runtime/reference_data/subsystems/constants.json +28 -0
  35. package/dist/constraint-runtime/reference_data/subsystems/coordinator.json +8 -0
  36. package/dist/constraint-runtime/reference_data/subsystems/entrypoints.json +15 -0
  37. package/dist/constraint-runtime/reference_data/subsystems/hooks.json +32 -0
  38. package/dist/constraint-runtime/reference_data/subsystems/keybindings.json +21 -0
  39. package/dist/constraint-runtime/reference_data/subsystems/memdir.json +15 -0
  40. package/dist/constraint-runtime/reference_data/subsystems/migrations.json +18 -0
  41. package/dist/constraint-runtime/reference_data/subsystems/moreright.json +8 -0
  42. package/dist/constraint-runtime/reference_data/subsystems/native_ts.json +11 -0
  43. package/dist/constraint-runtime/reference_data/subsystems/outputStyles.json +8 -0
  44. package/dist/constraint-runtime/reference_data/subsystems/plugins.json +9 -0
  45. package/dist/constraint-runtime/reference_data/subsystems/remote.json +11 -0
  46. package/dist/constraint-runtime/reference_data/subsystems/schemas.json +8 -0
  47. package/dist/constraint-runtime/reference_data/subsystems/screens.json +10 -0
  48. package/dist/constraint-runtime/reference_data/subsystems/server.json +10 -0
  49. package/dist/constraint-runtime/reference_data/subsystems/services.json +32 -0
  50. package/dist/constraint-runtime/reference_data/subsystems/skills.json +27 -0
  51. package/dist/constraint-runtime/reference_data/subsystems/state.json +13 -0
  52. package/dist/constraint-runtime/reference_data/subsystems/types.json +18 -0
  53. package/dist/constraint-runtime/reference_data/subsystems/upstreamproxy.json +9 -0
  54. package/dist/constraint-runtime/reference_data/subsystems/utils.json +32 -0
  55. package/dist/constraint-runtime/reference_data/subsystems/vim.json +12 -0
  56. package/dist/constraint-runtime/reference_data/subsystems/voice.json +8 -0
  57. package/dist/constraint-runtime/reference_data/tools_snapshot.json +922 -0
  58. package/dist/constraint-runtime/tools/PolymarketSDK/econ-integration.d.ts +55 -0
  59. package/dist/constraint-runtime/tools/PolymarketSDK/econ-integration.js +59 -0
  60. package/dist/context-compaction/auto-compact.js +7 -7
  61. package/dist/electron/config.js.map +1 -0
  62. package/dist/electron/dialogs.js.map +1 -0
  63. package/dist/electron/first-run.js +54 -54
  64. package/dist/electron/first-run.js.map +1 -0
  65. package/dist/electron/ipc.js.map +1 -0
  66. package/dist/electron/logger.js.map +1 -0
  67. package/dist/electron/main.js.map +1 -0
  68. package/dist/electron/menu.js.map +1 -0
  69. package/dist/electron/paths.js.map +1 -0
  70. package/dist/electron/server.js.map +1 -0
  71. package/dist/electron/tray.js.map +1 -0
  72. package/dist/electron/window.js.map +1 -0
  73. package/dist/electron-build/electron/first-run.js +54 -54
  74. package/dist/electron-preload.js.map +1 -1
  75. package/dist/electron.js.map +1 -1
  76. package/dist/index.js +112 -112
  77. package/dist/llm/llm-judgment-client.js +102 -102
  78. package/dist/llm/pi-ai.js +48 -48
  79. package/dist/llm/system-prompt/layers/channel/human-async.md +41 -41
  80. package/dist/llm/system-prompt/layers/channel/local.md +14 -14
  81. package/dist/llm/system-prompt/layers/channel/p2p-agent.md +18 -18
  82. package/dist/llm/system-prompt/layers/channel/p2p-peer-sync.md +51 -51
  83. package/dist/llm/system-prompt/layers/channel/p2p-proactive.md +43 -43
  84. package/dist/llm/system-prompt/layers/channel/p2p-visitor.md +19 -19
  85. package/dist/llm/system-prompt/layers/channel/session-handoff.md +61 -61
  86. package/dist/llm/system-prompt/layers/core/artifacts_storage.md +89 -89
  87. package/dist/llm/system-prompt/layers/core/evenhandedness.md +21 -21
  88. package/dist/llm/system-prompt/layers/core/external-engagement.md +73 -73
  89. package/dist/llm/system-prompt/layers/core/hibs_reminders.md +15 -15
  90. package/dist/llm/system-prompt/layers/core/identity.md +48 -48
  91. package/dist/llm/system-prompt/layers/core/knowledge.md +17 -17
  92. package/dist/llm/system-prompt/layers/core/memory_system.md +12 -12
  93. package/dist/llm/system-prompt/layers/core/network_filesystem.md +28 -28
  94. package/dist/llm/system-prompt/layers/core/refusal.md +37 -37
  95. package/dist/llm/system-prompt/layers/core/tone.md +31 -31
  96. package/dist/llm/system-prompt/layers/core/tools.thin.md +13 -13
  97. package/dist/llm/system-prompt/layers/core/wellbeing.md +41 -41
  98. package/dist/llm/system-prompt/layers/role/architect.md +20 -20
  99. package/dist/llm/system-prompt/layers/role/expert.md +19 -19
  100. package/dist/llm/system-prompt/layers/role/implementer.md +15 -15
  101. package/dist/llm/system-prompt/layers/role/security.md +15 -15
  102. package/dist/llm/system-prompt/layers/tool/artifacts.md +72 -72
  103. package/dist/llm/system-prompt/layers/tool/bash.md +25 -25
  104. package/dist/llm/system-prompt/layers/tool/goal_handoff.md +77 -77
  105. package/dist/llm/system-prompt/layers/tool/hibs_api.md +171 -171
  106. package/dist/llm/system-prompt/layers/tool/image_search.md +70 -70
  107. package/dist/llm/system-prompt/layers/tool/manifest.md +89 -89
  108. package/dist/llm/system-prompt/layers/tool/mcp_apps.md +53 -53
  109. package/dist/llm/system-prompt/layers/tool/p2p_request.md +61 -61
  110. package/dist/llm/system-prompt/layers/tool/web_search.md +83 -83
  111. package/dist/llm/tool-manifest/ask_user_input.js +1 -1
  112. package/dist/llm/tool-manifest/bash.js +3 -3
  113. package/dist/llm/tool-manifest/create_file.js +4 -4
  114. package/dist/llm/tool-manifest/fetch_sports_data.js +3 -3
  115. package/dist/llm/tool-manifest/image_search.js +2 -2
  116. package/dist/llm/tool-manifest/index.js +59 -0
  117. package/dist/llm/tool-manifest/mcp.js +2 -2
  118. package/dist/llm/tool-manifest/message_compose.js +3 -3
  119. package/dist/llm/tool-manifest/places.js +2 -2
  120. package/dist/llm/tool-manifest/present_files.js +1 -1
  121. package/dist/llm/tool-manifest/recipe.js +2 -2
  122. package/dist/llm/tool-manifest/str_replace.js +5 -5
  123. package/dist/llm/tool-manifest/view.js +3 -3
  124. package/dist/llm/tool-manifest/weather.js +4 -4
  125. package/dist/llm/tool-manifest/web.js +4 -4
  126. package/dist/network/p2p.js +78 -4
  127. package/dist/orbitdb/cid-database.js +39 -10
  128. package/dist/pi-ecosystem-judgment/causal-judge.js +51 -51
  129. package/dist/pi-ecosystem-judgment/distill-prompt.js +42 -42
  130. package/dist/pi-ecosystem-judgment/distillation.js +14 -14
  131. package/dist/pi-ecosystem-judgment/index.js +1 -1
  132. package/dist/pi-ecosystem-judgment/monitor-gate.js +28 -28
  133. package/dist/pi-ecosystem-judgment/value-injection.js +102 -102
  134. package/dist/security/context-router-tool.js +15 -15
  135. package/dist/utils/auto-update.js.map +1 -0
  136. package/dist/web/a2ui-client.js +1594 -223
  137. package/dist/web/api-config.html +779 -779
  138. package/dist/web/client-hearth.js +10 -10
  139. package/dist/web/client.js +273 -0
  140. package/dist/web/client.js.map +7 -0
  141. package/dist/web/components/wallet-viem.mjs +118 -118
  142. package/dist/web/index.html +502 -485
  143. package/dist/web/manifest.json +20 -20
  144. package/dist/web/mobile-agent.js +397 -0
  145. package/dist/web/mobile-core.js +86235 -0
  146. package/dist/web/mobile-data.js +346 -0
  147. package/dist/web/mobile-http-api.js +71 -0
  148. package/dist/web/mobile-p2p.js +250 -0
  149. package/dist/web/mobile-payments.js +80 -0
  150. package/dist/web/mobile-wallet.js +226 -0
  151. package/dist/web/mobile.css +483 -6
  152. package/dist/web/mobile.html +99 -50
  153. package/dist/web/mobile.js +1040 -187
  154. package/dist/web/server.js +196 -13
  155. package/dist/web/style.css +5062 -4946
  156. package/package.json +201 -198
  157. package/scripts/build-cli.js +215 -215
  158. package/scripts/build-web.ts +162 -149
  159. package/scripts/postinstall.js +152 -152
  160. package/bin/bolloon.js +0 -157
  161. package/dist/agents/python-exec.js +0 -115
  162. package/dist/pi-ecosystem-colony/index.js +0 -365
  163. package/dist/social/ant-colony/AdaptiveHeartbeat.js +0 -101
  164. package/dist/social/ant-colony/PheromoneEngine.js +0 -227
  165. package/dist/social/ant-colony/index.js +0 -6
  166. package/dist/social/ant-colony/types.js +0 -24
  167. package/dist/storage/trajectory.js +0 -101
  168. package/dist/test/ai-judgment-test.js +0 -80
  169. package/dist/test/bollharness-integration.test.js +0 -318
  170. package/dist/test/channel-agent-multi-dialogue.js +0 -205
  171. package/dist/test/channel-heartbeat-agent-test.js +0 -201
  172. package/dist/test/constraint-layer.test.js +0 -164
  173. package/dist/test/diap-identity-test.js +0 -172
  174. package/dist/test/diap-quick-test.js +0 -62
  175. package/dist/test/global-shared-context.test.js +0 -315
  176. package/dist/test/harness-judgment-injection.test.js +0 -246
  177. package/dist/test/harness-workflow-integrator-test.js +0 -228
  178. package/dist/test/human-value-store.test.js +0 -243
  179. package/dist/test/hybrid-integration-test.js +0 -118
  180. package/dist/test/hybrid-messenger-verify.js +0 -55
  181. package/dist/test/iroh-bistream-debug.js +0 -38
  182. package/dist/test/iroh-communication.test.js +0 -66
  183. package/dist/test/iroh-debug-test.js +0 -57
  184. package/dist/test/iroh-diap-test.js +0 -71
  185. package/dist/test/iroh-direct-connect.js +0 -55
  186. package/dist/test/iroh-e2e-fixed.js +0 -89
  187. package/dist/test/iroh-e2e-same-process.js +0 -63
  188. package/dist/test/iroh-e2e.js +0 -66
  189. package/dist/test/iroh-final-e2e.js +0 -72
  190. package/dist/test/iroh-relay-test.js +0 -37
  191. package/dist/test/iroh-simple-test.js +0 -41
  192. package/dist/test/iroh-transport-verify.js +0 -54
  193. package/dist/test/iroh-transport.test.js +0 -37
  194. package/dist/test/iroh-two-nodes.js +0 -70
  195. package/dist/test/iroh-verify.js +0 -44
  196. package/dist/test/judgment-decision.test.js +0 -219
  197. package/dist/test/llm-judgment-integration.test.js +0 -220
  198. package/dist/test/p2p-agent-complex-dialogue.js +0 -385
  199. package/dist/test/p2p-agent-dialogue.js +0 -341
  200. package/dist/test/p2p-agent-full-bidirectional.js +0 -510
  201. package/dist/test/p2p-agent-harness-flow.js +0 -437
  202. package/dist/test/p2p-agent-harness-single.js +0 -143
  203. package/dist/test/p2p-ai-dialogue-test.js +0 -318
  204. package/dist/test/p2p-cid-connect-test.js +0 -195
  205. package/dist/test/p2p-connect-receiver.js +0 -69
  206. package/dist/test/p2p-doc-transfer.js +0 -110
  207. package/dist/test/p2p-identity-page-test.js +0 -77
  208. package/dist/test/p2p-iroh-test.js +0 -171
  209. package/dist/test/p2p-minimal-test.js +0 -241
  210. package/dist/test/p2p-node-1.js +0 -148
  211. package/dist/test/p2p-node-2.js +0 -148
  212. package/dist/test/p2p-server.js +0 -281
  213. package/dist/test/p2p-two-nodes-test.js +0 -438
  214. package/dist/test/pi-sdk.test.js +0 -44
  215. package/dist/test/set-persona.js +0 -40
  216. package/dist/test/simple.test.js +0 -9
  217. package/dist/test/storage-integration.test.js +0 -150
  218. package/dist/test/subagent-manager.test.js +0 -276
  219. package/dist/test/test-gate-flow.test.js +0 -81
  220. package/dist/test/workflow-engine.test.js +0 -87
  221. package/dist/test/workflow-pivot-loop.test.js +0 -246
package/dist/index.js CHANGED
@@ -2178,10 +2178,10 @@ async function runToolCommand(tool, args, outputJson, comm, model, prompt) {
2178
2178
  const running = irohTransport.isRunning();
2179
2179
  const irohPeers = irohTransport.getPeers();
2180
2180
  const messenger = hybridMessenger ? 'HybridMessenger 就绪' : 'HybridMessenger 未初始化';
2181
- response = `iroh P2P 状态:
2182
- 运行中: ${running ? '是' : '否'}
2183
- Node ID: ${nodeId ? nodeId.substring(0, 32) + '...' : 'N/A'}
2184
- 已知节点: ${irohPeers.length}
2181
+ response = `iroh P2P 状态:
2182
+ 运行中: ${running ? '是' : '否'}
2183
+ Node ID: ${nodeId ? nodeId.substring(0, 32) + '...' : 'N/A'}
2184
+ 已知节点: ${irohPeers.length}
2185
2185
  ${messenger}`;
2186
2186
  break;
2187
2187
  }
@@ -3315,114 +3315,114 @@ function parseArgs() {
3315
3315
  return result;
3316
3316
  }
3317
3317
  function printHelp() {
3318
- console.log(`
3319
- 🤖 Bolloon Agent - AI 可调用文档处理智能体
3320
-
3321
- 用法:
3322
- npx tsx src/index.ts [选项] [参数]
3323
-
3324
- 选项:
3325
- # 文档处理
3326
- --read <file> 读取文档 (txt, md, pdf, docx)
3327
- --summarize <file> [ctx] 总结文档,可选上下文
3328
- --improve <file> <req> 改进文档,req 为改进要求
3329
-
3330
- # P2P 网络
3331
- --peers 列出已连接的对等节点
3332
- --broadcast <msg> 广播消息到所有节点
3333
- --send <peerId> <msg> 向指定节点发送消息
3334
-
3335
- # 智能体
3336
- --identity 显示当前智能体身份
3337
- --logs 显示操作日志
3338
- --search <keyword> 搜索文件
3339
- --tools 显示所有可用工具
3340
-
3341
- # SubAgent 管理
3342
- --agents 列出所有 SubAgent
3343
- --register-agent <name> [cap1] [cap2]... 注册新 SubAgent
3344
- --delegate <任务描述> [能力要求...] 委派任务给最佳 Agent
3345
-
3346
- # 全局共享上下文
3347
- --context 显示全局共享上下文摘要
3348
- --global-agents 显示全局 Agent 注册表
3349
- --add-action <内容> [重要性] 添加用户行动到共享上下文
3350
-
3351
- # Bollharness 治理框架
3352
- --harness-init 初始化 Bollharness 治理框架
3353
- --harness-gate 显示当前 Gate 状态
3354
- --harness-transition [PASS|BLOCK] 执行 Gate 转移
3355
- --harness-skill <name> [action] 执行 Harness Skill
3356
- --harness-classify <描述> 分类变更类型
3357
- --harness-context <file> 获取文件上下文
3358
- --harness-check <file> 执行 Guard 检查
3359
- --harness-archive 归档当前 Session 到 Harness
3360
- --harness-sessions 列出 Session 归档记录
3361
- --harness-session-context [id] 获取 Session 上下文
3362
-
3363
- # 自动更新
3364
- --update-check 检查 npm 包更新
3365
- --update-now [pkg] 更新到最新版本
3366
-
3367
- # 跨机聊天 (commits-as-messages, 共享 GitHub 仓库)
3368
- --chat-init 初始化 .comm/ 目录 (一次性)
3369
- --chat-send "消息正文" 把消息写到 .comm/<role>/, commit + push
3370
- --chat-pull 拉取远端 .comm/ 的新消息并显示
3371
- --chat-list 列出本地所有已同步消息
3372
- --chat-watch [--interval 15s] 后台定时拉取, 有新消息时输出
3373
- --chat-status 一屏查看: role / publicKey / remote / ahead-behind
3374
-
3375
- # 纯 P2P 私聊 (不走 GitHub, 不写 git, 不持久化)
3376
- --chat-p2p-send <peer|publicKey> "消息正文" 通过 P2P 直接发一条
3377
- --chat-p2p-listen 后台监听对方 P2P 私聊消息 (Ctrl-C 退出)
3378
-
3379
- # 跨机 agent 协作 (对方 bolloon --web 起着才能处理, 走 P2P 不经 GitHub)
3380
- --collab <peer|publicKey> "<任务描述>" 派任务给对端 LLM 干活, 等回结果 (90s 超时)
3381
-
3382
- # 外部编码智能体委派
3383
- --engine, -e <id> [--model <m>] <prompt> 委派任务给外部引擎,如 opencode/codex
3384
- --model <name> 指定委派时使用的模型
3385
-
3386
- # 输出控制
3387
- --json, -j 输出 JSON 格式
3388
- --output, -o <file> 结果保存到文件
3389
- --web 启动 Web UI 模式
3390
- --help, -h 显示帮助信息
3391
-
3392
- 示例:
3393
- # 文档处理
3394
- npx tsx src/index.ts --read 想法.md
3395
- npx tsx src/index.ts --summarize docs/想法.md
3396
- npx tsx src/index.ts --improve docs/README.md "让内容更简洁"
3397
- npx tsx src/index.ts --read 想法.md -o summary.txt
3398
-
3399
- # P2P 网络
3400
- npx tsx src/index.ts --peers
3401
- npx tsx src/index.ts --broadcast "Hello everyone"
3402
- npx tsx src/index.ts --send QmABC... "私信内容"
3403
-
3404
- # AI 对话
3405
- npx tsx src/index.ts --prompt "总结 README.md"
3406
- npx tsx src/index.ts -p "分析这个项目" -j
3407
-
3408
- # 交互模式
3409
- npx tsx src/index.ts
3410
-
3411
- # 外部引擎委派
3412
- npx tsx src/index.ts --engine opencode --model opencode/deepseek-v4-flash-free "说你好"
3413
-
3414
- # Web 模式
3415
- npx tsx src/index.ts --web
3416
-
3417
- 环境变量:
3418
- MINIMAX_API_KEY MiniMax API 密钥
3419
- DEEPSEEK_API_KEY DeepSeek API 密钥
3420
- KIMI_API_KEY / MOONSHOT_API_KEY Kimi/Moonshot API 密钥
3421
- GLM_API_KEY / ZHIPU_API_KEY 智谱 GLM API 密钥
3422
- QWEN_API_KEY / DASHSCOPE_API_KEY 通义千问 API 密钥
3423
- OPENAI_API_KEY OpenAI API 密钥(Pi SDK)
3424
- ANTHROPIC_API_KEY Anthropic API 密钥(Pi SDK)
3425
- PORT Web 服务端口(默认 54188)
3318
+ console.log(`
3319
+ 🤖 Bolloon Agent - AI 可调用文档处理智能体
3320
+
3321
+ 用法:
3322
+ npx tsx src/index.ts [选项] [参数]
3323
+
3324
+ 选项:
3325
+ # 文档处理
3326
+ --read <file> 读取文档 (txt, md, pdf, docx)
3327
+ --summarize <file> [ctx] 总结文档,可选上下文
3328
+ --improve <file> <req> 改进文档,req 为改进要求
3329
+
3330
+ # P2P 网络
3331
+ --peers 列出已连接的对等节点
3332
+ --broadcast <msg> 广播消息到所有节点
3333
+ --send <peerId> <msg> 向指定节点发送消息
3334
+
3335
+ # 智能体
3336
+ --identity 显示当前智能体身份
3337
+ --logs 显示操作日志
3338
+ --search <keyword> 搜索文件
3339
+ --tools 显示所有可用工具
3340
+
3341
+ # SubAgent 管理
3342
+ --agents 列出所有 SubAgent
3343
+ --register-agent <name> [cap1] [cap2]... 注册新 SubAgent
3344
+ --delegate <任务描述> [能力要求...] 委派任务给最佳 Agent
3345
+
3346
+ # 全局共享上下文
3347
+ --context 显示全局共享上下文摘要
3348
+ --global-agents 显示全局 Agent 注册表
3349
+ --add-action <内容> [重要性] 添加用户行动到共享上下文
3350
+
3351
+ # Bollharness 治理框架
3352
+ --harness-init 初始化 Bollharness 治理框架
3353
+ --harness-gate 显示当前 Gate 状态
3354
+ --harness-transition [PASS|BLOCK] 执行 Gate 转移
3355
+ --harness-skill <name> [action] 执行 Harness Skill
3356
+ --harness-classify <描述> 分类变更类型
3357
+ --harness-context <file> 获取文件上下文
3358
+ --harness-check <file> 执行 Guard 检查
3359
+ --harness-archive 归档当前 Session 到 Harness
3360
+ --harness-sessions 列出 Session 归档记录
3361
+ --harness-session-context [id] 获取 Session 上下文
3362
+
3363
+ # 自动更新
3364
+ --update-check 检查 npm 包更新
3365
+ --update-now [pkg] 更新到最新版本
3366
+
3367
+ # 跨机聊天 (commits-as-messages, 共享 GitHub 仓库)
3368
+ --chat-init 初始化 .comm/ 目录 (一次性)
3369
+ --chat-send "消息正文" 把消息写到 .comm/<role>/, commit + push
3370
+ --chat-pull 拉取远端 .comm/ 的新消息并显示
3371
+ --chat-list 列出本地所有已同步消息
3372
+ --chat-watch [--interval 15s] 后台定时拉取, 有新消息时输出
3373
+ --chat-status 一屏查看: role / publicKey / remote / ahead-behind
3374
+
3375
+ # 纯 P2P 私聊 (不走 GitHub, 不写 git, 不持久化)
3376
+ --chat-p2p-send <peer|publicKey> "消息正文" 通过 P2P 直接发一条
3377
+ --chat-p2p-listen 后台监听对方 P2P 私聊消息 (Ctrl-C 退出)
3378
+
3379
+ # 跨机 agent 协作 (对方 bolloon --web 起着才能处理, 走 P2P 不经 GitHub)
3380
+ --collab <peer|publicKey> "<任务描述>" 派任务给对端 LLM 干活, 等回结果 (90s 超时)
3381
+
3382
+ # 外部编码智能体委派
3383
+ --engine, -e <id> [--model <m>] <prompt> 委派任务给外部引擎,如 opencode/codex
3384
+ --model <name> 指定委派时使用的模型
3385
+
3386
+ # 输出控制
3387
+ --json, -j 输出 JSON 格式
3388
+ --output, -o <file> 结果保存到文件
3389
+ --web 启动 Web UI 模式
3390
+ --help, -h 显示帮助信息
3391
+
3392
+ 示例:
3393
+ # 文档处理
3394
+ npx tsx src/index.ts --read 想法.md
3395
+ npx tsx src/index.ts --summarize docs/想法.md
3396
+ npx tsx src/index.ts --improve docs/README.md "让内容更简洁"
3397
+ npx tsx src/index.ts --read 想法.md -o summary.txt
3398
+
3399
+ # P2P 网络
3400
+ npx tsx src/index.ts --peers
3401
+ npx tsx src/index.ts --broadcast "Hello everyone"
3402
+ npx tsx src/index.ts --send QmABC... "私信内容"
3403
+
3404
+ # AI 对话
3405
+ npx tsx src/index.ts --prompt "总结 README.md"
3406
+ npx tsx src/index.ts -p "分析这个项目" -j
3407
+
3408
+ # 交互模式
3409
+ npx tsx src/index.ts
3410
+
3411
+ # 外部引擎委派
3412
+ npx tsx src/index.ts --engine opencode --model opencode/deepseek-v4-flash-free "说你好"
3413
+
3414
+ # Web 模式
3415
+ npx tsx src/index.ts --web
3416
+
3417
+ 环境变量:
3418
+ MINIMAX_API_KEY MiniMax API 密钥
3419
+ DEEPSEEK_API_KEY DeepSeek API 密钥
3420
+ KIMI_API_KEY / MOONSHOT_API_KEY Kimi/Moonshot API 密钥
3421
+ GLM_API_KEY / ZHIPU_API_KEY 智谱 GLM API 密钥
3422
+ QWEN_API_KEY / DASHSCOPE_API_KEY 通义千问 API 密钥
3423
+ OPENAI_API_KEY OpenAI API 密钥(Pi SDK)
3424
+ ANTHROPIC_API_KEY Anthropic API 密钥(Pi SDK)
3425
+ PORT Web 服务端口(默认 54188)
3426
3426
  `);
3427
3427
  }
3428
3428
  // ---------------------------------------------------------------------------
@@ -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;