@bolloon/bolloon-agent 0.1.36 → 0.1.38

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 (518) hide show
  1. package/package.json +2 -2
  2. package/.auto-evolve-calls +0 -1
  3. package/.last-auto-evolve-baseline +0 -1
  4. package/.playwright-mcp/page-2026-06-16T07-51-45-706Z.yml +0 -130
  5. package/.playwright-mcp/page-2026-06-16T07-56-44-116Z.yml +0 -131
  6. package/Bolloon.md +0 -144
  7. package/Dive-into/CITATION.cff +0 -17
  8. package/Dive-into/LICENSE +0 -25
  9. package/Dive-into/README.md +0 -598
  10. package/Dive-into/README_zh.md +0 -599
  11. package/Dive-into/assets/context.png +0 -0
  12. package/Dive-into/assets/extensibility.png +0 -0
  13. package/Dive-into/assets/iteration.png +0 -0
  14. package/Dive-into/assets/layered_architecture.png +0 -0
  15. package/Dive-into/assets/main_structure.png +0 -0
  16. package/Dive-into/assets/permission.png +0 -0
  17. package/Dive-into/assets/session_compact.png +0 -0
  18. package/Dive-into/assets/subagent.png +0 -0
  19. package/Dive-into/paper/Dive_into_Claude_Code.pdf +0 -0
  20. package/dist/agents/constraint-layer.js.map +0 -1
  21. package/dist/agents/pi-sdk.js.map +0 -1
  22. package/dist/agents/workflow-engine.js.map +0 -1
  23. package/dist/bollharness/src/index.js +0 -5
  24. package/dist/bollharness/src/scripts/checks/check_adr_plan_numbering.js +0 -6
  25. package/dist/bollharness/src/scripts/checks/check_api_types.js +0 -45
  26. package/dist/bollharness/src/scripts/checks/check_artifact_link.js +0 -146
  27. package/dist/bollharness/src/scripts/checks/check_bridge_deps.js +0 -6
  28. package/dist/bollharness/src/scripts/checks/check_bugfix_binding.js +0 -6
  29. package/dist/bollharness/src/scripts/checks/check_bugfix_binding_ci.js +0 -6
  30. package/dist/bollharness/src/scripts/checks/check_doc_file_references.js +0 -6
  31. package/dist/bollharness/src/scripts/checks/check_doc_freshness.js +0 -135
  32. package/dist/bollharness/src/scripts/checks/check_doc_links.js +0 -31
  33. package/dist/bollharness/src/scripts/checks/check_file_existence_claims.js +0 -6
  34. package/dist/bollharness/src/scripts/checks/check_fragment_integrity.js +0 -34
  35. package/dist/bollharness/src/scripts/checks/check_hook_installed.js +0 -63
  36. package/dist/bollharness/src/scripts/checks/check_issue_closure.js +0 -41
  37. package/dist/bollharness/src/scripts/checks/check_mcp_parity.js +0 -6
  38. package/dist/bollharness/src/scripts/checks/check_security.js +0 -48
  39. package/dist/bollharness/src/scripts/checks/check_skill_parity.js +0 -6
  40. package/dist/bollharness/src/scripts/checks/check_versions.js +0 -6
  41. package/dist/bollharness/src/scripts/checks/finding.js +0 -13
  42. package/dist/bollharness/src/scripts/checks/next_decision_number.js +0 -20
  43. package/dist/bollharness/src/scripts/checks/regenerate_magic_docs.js +0 -6
  44. package/dist/bollharness/src/scripts/ci/detect_rebaseline_triggers.js +0 -8
  45. package/dist/bollharness/src/scripts/ci/scan_subprocess_cfg.js +0 -8
  46. package/dist/bollharness/src/scripts/ci/scan_verify_artifacts.js +0 -8
  47. package/dist/bollharness/src/scripts/ci/scan_yaml_schema.js +0 -8
  48. package/dist/bollharness/src/scripts/context_router.js +0 -67
  49. package/dist/bollharness/src/scripts/deploy-guard.js +0 -157
  50. package/dist/bollharness/src/scripts/guard-feedback.js +0 -192
  51. package/dist/bollharness/src/scripts/guard_router.js +0 -158
  52. package/dist/bollharness/src/scripts/hooks/_hook_output.js +0 -6
  53. package/dist/bollharness/src/scripts/hooks/auto-python3.js +0 -6
  54. package/dist/bollharness/src/scripts/hooks/deploy-progress-on-session-end.js +0 -6
  55. package/dist/bollharness/src/scripts/hooks/failure-analyzer.js +0 -6
  56. package/dist/bollharness/src/scripts/hooks/gate-judgment-inject.js +0 -92
  57. package/dist/bollharness/src/scripts/hooks/gate-transition-judgment.js +0 -63
  58. package/dist/bollharness/src/scripts/hooks/inbox-ack.js +0 -6
  59. package/dist/bollharness/src/scripts/hooks/inbox-inject-on-start.js +0 -6
  60. package/dist/bollharness/src/scripts/hooks/inbox-validate.js +0 -6
  61. package/dist/bollharness/src/scripts/hooks/inbox-write-ledger.js +0 -6
  62. package/dist/bollharness/src/scripts/hooks/initializer-agent.js +0 -6
  63. package/dist/bollharness/src/scripts/hooks/loop-detection.js +0 -73
  64. package/dist/bollharness/src/scripts/hooks/owner-guard.js +0 -6
  65. package/dist/bollharness/src/scripts/hooks/precompact.js +0 -6
  66. package/dist/bollharness/src/scripts/hooks/review-agent-gatekeeper.js +0 -6
  67. package/dist/bollharness/src/scripts/hooks/risk-tracker.js +0 -108
  68. package/dist/bollharness/src/scripts/hooks/sanitize-on-read.js +0 -6
  69. package/dist/bollharness/src/scripts/hooks/session-reflection.js +0 -7
  70. package/dist/bollharness/src/scripts/hooks/session-start-magic-docs.js +0 -7
  71. package/dist/bollharness/src/scripts/hooks/session-start-reset-risk.js +0 -7
  72. package/dist/bollharness/src/scripts/hooks/session-start-toolkit-reminder.js +0 -7
  73. package/dist/bollharness/src/scripts/hooks/stop-evaluator.js +0 -157
  74. package/dist/bollharness/src/scripts/hooks/tool-call-counter.js +0 -6
  75. package/dist/bollharness/src/scripts/hooks/trace-analyzer.js +0 -10
  76. package/dist/bollharness/src/scripts/install/install-trust-token.js +0 -7
  77. package/dist/bollharness/src/scripts/install/multi_project_registry.js +0 -9
  78. package/dist/bollharness/src/scripts/install/phase2_auto.js +0 -21
  79. package/dist/bollharness/src/scripts/install/pre_commit_installer.js +0 -6
  80. package/dist/bollharness/src/scripts/install/tier_selector.js +0 -7
  81. package/dist/bollharness/src/scripts/install/transcript_miner.js +0 -7
  82. package/dist/bollharness/src/scripts/lib/claim_patterns.js +0 -10
  83. package/dist/bollharness/src/scripts/lib/sanitize_patterns.js +0 -12
  84. package/dist/bollharness/src/scripts/sanitize.js +0 -6
  85. package/dist/bollharness-integration/context-router-judgment.js.map +0 -1
  86. package/dist/bollharness-integration/context-router.js.map +0 -1
  87. package/dist/bollharness-integration/gate-state-machine.js.map +0 -1
  88. package/dist/bollharness-integration/gate-transition-hooks.js.map +0 -1
  89. package/dist/bollharness-integration/guard-checker.js.map +0 -1
  90. package/dist/bollharness-integration/index.js.map +0 -1
  91. package/dist/bollharness-integration/integration.js.map +0 -1
  92. package/dist/bollharness-integration/llm/pi-ai.d.ts +0 -60
  93. package/dist/bollharness-integration/pi-ecosystem-colony/index.d.ts +0 -153
  94. package/dist/bollharness-integration/pi-ecosystem-goals/index.d.ts +0 -136
  95. package/dist/bollharness-integration/pi-ecosystem-judgment/decision.d.ts +0 -117
  96. package/dist/bollharness-integration/pi-ecosystem-judgment/distillation.d.ts +0 -78
  97. package/dist/bollharness-integration/pi-ecosystem-judgment/index.d.ts +0 -139
  98. package/dist/bollharness-integration/pi-ecosystem-mcp/index.d.ts +0 -127
  99. package/dist/bollharness-integration/pi-ecosystem-subagents/index.d.ts +0 -95
  100. package/dist/bollharness-integration/skill-adapter.js.map +0 -1
  101. package/dist/constraint-runtime/src/_archive_helper.js +0 -9
  102. package/dist/constraint-runtime/src/agent/coordinator.js +0 -48
  103. package/dist/constraint-runtime/src/agent/index.js +0 -1
  104. package/dist/constraint-runtime/src/assistant/index.js +0 -12
  105. package/dist/constraint-runtime/src/bootstrap/index.js +0 -12
  106. package/dist/constraint-runtime/src/bootstrap_graph.js +0 -13
  107. package/dist/constraint-runtime/src/bridge/index.js +0 -12
  108. package/dist/constraint-runtime/src/buddy/index.js +0 -12
  109. package/dist/constraint-runtime/src/cli/index.js +0 -12
  110. package/dist/constraint-runtime/src/command_graph.js +0 -10
  111. package/dist/constraint-runtime/src/commands.js +0 -60
  112. package/dist/constraint-runtime/src/components/index.js +0 -12
  113. package/dist/constraint-runtime/src/constants/index.js +0 -12
  114. package/dist/constraint-runtime/src/constraint/budget.js +0 -22
  115. package/dist/constraint-runtime/src/constraint/budget.js.map +0 -1
  116. package/dist/constraint-runtime/src/constraint/index.js +0 -2
  117. package/dist/constraint-runtime/src/constraint/permission.js +0 -20
  118. package/dist/constraint-runtime/src/constraint/permission.js.map +0 -1
  119. package/dist/constraint-runtime/src/context.js +0 -30
  120. package/dist/constraint-runtime/src/coordinator/index.js +0 -12
  121. package/dist/constraint-runtime/src/cost_hook.js +0 -4
  122. package/dist/constraint-runtime/src/cost_tracker.js +0 -8
  123. package/dist/constraint-runtime/src/deferred_init.js +0 -10
  124. package/dist/constraint-runtime/src/direct_modes.js +0 -6
  125. package/dist/constraint-runtime/src/dynamic-tool-loader.js +0 -85
  126. package/dist/constraint-runtime/src/entrypoints/index.js +0 -12
  127. package/dist/constraint-runtime/src/execution_registry.js +0 -44
  128. package/dist/constraint-runtime/src/history.js +0 -9
  129. package/dist/constraint-runtime/src/hooks/index.js +0 -12
  130. package/dist/constraint-runtime/src/index.js +0 -26
  131. package/dist/constraint-runtime/src/ink.js +0 -4
  132. package/dist/constraint-runtime/src/keybindings/index.js +0 -12
  133. package/dist/constraint-runtime/src/memdir/index.js +0 -12
  134. package/dist/constraint-runtime/src/migrations/index.js +0 -12
  135. package/dist/constraint-runtime/src/models.js +0 -1
  136. package/dist/constraint-runtime/src/models.js.map +0 -1
  137. package/dist/constraint-runtime/src/moreright/index.js +0 -12
  138. package/dist/constraint-runtime/src/native_ts/index.js +0 -12
  139. package/dist/constraint-runtime/src/output_styles/index.js +0 -12
  140. package/dist/constraint-runtime/src/parity_audit.js +0 -12
  141. package/dist/constraint-runtime/src/plugins/index.js +0 -12
  142. package/dist/constraint-runtime/src/port_manifest.js +0 -11
  143. package/dist/constraint-runtime/src/prefetch.js +0 -9
  144. package/dist/constraint-runtime/src/query.js +0 -1
  145. package/dist/constraint-runtime/src/remote/index.js +0 -12
  146. package/dist/constraint-runtime/src/remote_runtime.js +0 -9
  147. package/dist/constraint-runtime/src/runtime/index.js +0 -1
  148. package/dist/constraint-runtime/src/runtime/session.js +0 -35
  149. package/dist/constraint-runtime/src/schemas/index.js +0 -12
  150. package/dist/constraint-runtime/src/screens/index.js +0 -12
  151. package/dist/constraint-runtime/src/server/index.js +0 -12
  152. package/dist/constraint-runtime/src/services/index.js +0 -12
  153. package/dist/constraint-runtime/src/session_store.js +0 -22
  154. package/dist/constraint-runtime/src/setup.js +0 -30
  155. package/dist/constraint-runtime/src/skills/index.js +0 -1
  156. package/dist/constraint-runtime/src/skills/skill-registry.js +0 -28
  157. package/dist/constraint-runtime/src/state/index.js +0 -12
  158. package/dist/constraint-runtime/src/system_init.js +0 -20
  159. package/dist/constraint-runtime/src/thinking/engine.js +0 -42
  160. package/dist/constraint-runtime/src/thinking/index.js +0 -1
  161. package/dist/constraint-runtime/src/tool_pool.js +0 -8
  162. package/dist/constraint-runtime/src/tools/OpenCLI/execAdapter.js +0 -7
  163. package/dist/constraint-runtime/src/tools/OpenCLI/listAdapters.js +0 -7
  164. package/dist/constraint-runtime/src/tools/OpenCLI/runCommand.js +0 -7
  165. package/dist/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.js +0 -6
  166. package/dist/constraint-runtime/src/tools/PolymarketSDK/createOrder.js +0 -6
  167. package/dist/constraint-runtime/src/tools/PolymarketSDK/getMarket.js +0 -5
  168. package/dist/constraint-runtime/src/tools/PolymarketSDK/getOrders.js +0 -6
  169. package/dist/constraint-runtime/src/tools/PolymarketSDK/listMarkets.js +0 -4
  170. package/dist/constraint-runtime/src/tools/SafeSDK/confirmTransaction.js +0 -6
  171. package/dist/constraint-runtime/src/tools/SafeSDK/createTransaction.js +0 -8
  172. package/dist/constraint-runtime/src/tools/SafeSDK/deploySafe.js +0 -6
  173. package/dist/constraint-runtime/src/tools/SafeSDK/executeTransaction.js +0 -6
  174. package/dist/constraint-runtime/src/tools/SafeSDK/getBalance.js +0 -6
  175. package/dist/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.js +0 -6
  176. package/dist/constraint-runtime/src/tools/SafeSDK/proposeTransaction.js +0 -6
  177. package/dist/constraint-runtime/src/tools/WalletTools/autoPay.js +0 -29
  178. package/dist/constraint-runtime/src/tools/WalletTools/createWallet.js +0 -10
  179. package/dist/constraint-runtime/src/tools/WalletTools/getBalance.js +0 -13
  180. package/dist/constraint-runtime/src/tools/WalletTools/importWallet.js +0 -22
  181. package/dist/constraint-runtime/src/tools/WalletTools/sendTransaction.js +0 -25
  182. package/dist/constraint-runtime/src/tools/WalletTools/signMessage.js +0 -10
  183. package/dist/constraint-runtime/src/tools/WalletTools/transferToken.js +0 -25
  184. package/dist/constraint-runtime/src/tools.js +0 -80
  185. package/dist/constraint-runtime/src/transcript.js +0 -19
  186. package/dist/constraint-runtime/src/types/index.js +0 -12
  187. package/dist/constraint-runtime/src/upstream_proxy/index.js +0 -12
  188. package/dist/constraint-runtime/src/utils/index.js +0 -12
  189. package/dist/constraint-runtime/src/vim/index.js +0 -12
  190. package/dist/constraint-runtime/src/voice/index.js +0 -12
  191. package/dist/constraints/index.js.map +0 -1
  192. package/dist/documents/reader.js.map +0 -1
  193. package/dist/llm/config-store.js.map +0 -1
  194. package/dist/llm/pi-ai.js.map +0 -1
  195. package/dist/network/agent-network.js.map +0 -1
  196. package/dist/network/iroh-integration.js.map +0 -1
  197. package/dist/network/iroh-transport.js.map +0 -1
  198. package/dist/network/p2p.js.map +0 -1
  199. package/dist/network/storage/adapters/json-adapter.js.map +0 -1
  200. package/dist/pi-ecosystem-colony/index.js.map +0 -1
  201. package/dist/pi-ecosystem-goals/index.js.map +0 -1
  202. package/dist/pi-ecosystem-judgment/decision.js.map +0 -1
  203. package/dist/pi-ecosystem-judgment/distillation.js.map +0 -1
  204. package/dist/pi-ecosystem-judgment/human-value-store.js.map +0 -1
  205. package/dist/pi-ecosystem-judgment/index.js.map +0 -1
  206. package/dist/pi-ecosystem-judgment/value-injection.js.map +0 -1
  207. package/dist/pi-ecosystem-mcp/index.js.map +0 -1
  208. package/dist/pi-ecosystem-subagents/index.js.map +0 -1
  209. package/dist/social/ant-colony/AdaptiveHeartbeat.js.map +0 -1
  210. package/dist/social/ant-colony/PheromoneEngine.js.map +0 -1
  211. package/dist/social/ant-colony/types.js.map +0 -1
  212. package/dist/social/channels/ChannelManager.js.map +0 -1
  213. package/dist/social/channels/DiapChannelBridge.js.map +0 -1
  214. package/dist/social/channels/InterestMatcher.js.map +0 -1
  215. package/dist/social/channels/types.js.map +0 -1
  216. package/dist/social/global-shared-context.js.map +0 -1
  217. package/dist/social/heartbeat.js.map +0 -1
  218. package/lefthook.yml +0 -33
  219. package/scripts/auto-evolve-loop.ts +0 -481
  220. package/scripts/build-web.ts +0 -116
  221. package/scripts/diff-reviewer.ts +0 -159
  222. package/scripts/validate-system-prompt.ts +0 -142
  223. package/scripts/weekly-report.ts +0 -364
  224. package/src/agents/agent-manifest-protocol.ts +0 -117
  225. package/src/agents/constraint-layer.ts +0 -309
  226. package/src/agents/iroh-secret.ts +0 -32
  227. package/src/agents/p2p-chat-tools.ts +0 -383
  228. package/src/agents/p2p-document-tools.ts +0 -347
  229. package/src/agents/permission-mode.ts +0 -127
  230. package/src/agents/pi-sdk.ts +0 -2895
  231. package/src/agents/pre-tool-validator.ts +0 -213
  232. package/src/agents/protocol.ts +0 -398
  233. package/src/agents/shell-guard.ts +0 -417
  234. package/src/agents/shell-tool.ts +0 -103
  235. package/src/agents/skill-loader.ts +0 -202
  236. package/src/agents/subagent-manager.ts +0 -553
  237. package/src/agents/workflow-engine.ts +0 -332
  238. package/src/agents/workflow-pivot-loop.ts +0 -766
  239. package/src/bollharness/.sanitize-report.json +0 -13
  240. package/src/bollharness/CLAUDE.md +0 -73
  241. package/src/bollharness/LICENSE +0 -21
  242. package/src/bollharness/README.md +0 -143
  243. package/src/bollharness/README.zh-CN.md +0 -131
  244. package/src/bollharness/package.json +0 -20
  245. package/src/bollharness/reference/SOURCE-COMMIT.txt +0 -3
  246. package/src/bollharness/reference/boll-reference/scripts/hooks/.sanitize-report.json +0 -12
  247. package/src/bollharness/reference/boll-reference/scripts/hooks/find-boll-root.sh +0 -27
  248. package/src/bollharness/reference/boll-reference/scripts/hooks/precompact.sh +0 -57
  249. package/src/bollharness/reference/boll-reference/scripts/hooks/stop-evaluator.md +0 -57
  250. package/src/bollharness/schemas/metrics-jsonl-allowlist.json +0 -67
  251. package/src/bollharness/scripts/checks/next_decision_number.sh +0 -48
  252. package/src/bollharness/scripts/ci/count-components.sh +0 -65
  253. package/src/bollharness/scripts/context-fragments/artifact-linkage.md +0 -14
  254. package/src/bollharness/scripts/context-fragments/auth-consumers.md +0 -17
  255. package/src/bollharness/scripts/context-fragments/bridge-constitution.md +0 -13
  256. package/src/bollharness/scripts/context-fragments/catalyst-distributed.md +0 -18
  257. package/src/bollharness/scripts/context-fragments/closure-checklist.md +0 -13
  258. package/src/bollharness/scripts/context-fragments/contract-consumers.md +0 -15
  259. package/src/bollharness/scripts/context-fragments/db-shared-structures.md +0 -15
  260. package/src/bollharness/scripts/context-fragments/fixed-three-layers.md +0 -19
  261. package/src/bollharness/scripts/context-fragments/general-dev-principles.md +0 -11
  262. package/src/bollharness/scripts/context-fragments/issue-first.md +0 -8
  263. package/src/bollharness/scripts/context-fragments/mcp-parity.md +0 -16
  264. package/src/bollharness/scripts/context-fragments/pi-agent-operations.md +0 -108
  265. package/src/bollharness/scripts/context-fragments/protocol-consumers.md +0 -15
  266. package/src/bollharness/scripts/context-fragments/run-events-consumers.md +0 -15
  267. package/src/bollharness/scripts/context-fragments/scene-fidelity.md +0 -13
  268. package/src/bollharness/scripts/context-fragments/truth-source-hierarchy.md +0 -15
  269. package/src/bollharness/scripts/context-fragments/two-language.md +0 -15
  270. package/src/bollharness/scripts/context-fragments/version-sources.md +0 -14
  271. package/src/bollharness/scripts/hooks/find-project-root.sh +0 -47
  272. package/src/bollharness/scripts/hooks/inbox-poll.sh +0 -78
  273. package/src/bollharness/scripts/hooks/precompact.sh +0 -56
  274. package/src/bollharness/scripts/hooks/stop-evaluator.md +0 -83
  275. package/src/bollharness/scripts/sync-from-upstream.sh +0 -281
  276. package/src/bollharness/src/index.ts +0 -5
  277. package/src/bollharness/src/scripts/checks/check_adr_plan_numbering.ts +0 -11
  278. package/src/bollharness/src/scripts/checks/check_api_types.ts +0 -52
  279. package/src/bollharness/src/scripts/checks/check_artifact_link.ts +0 -156
  280. package/src/bollharness/src/scripts/checks/check_bridge_deps.ts +0 -11
  281. package/src/bollharness/src/scripts/checks/check_bugfix_binding.ts +0 -11
  282. package/src/bollharness/src/scripts/checks/check_bugfix_binding_ci.ts +0 -11
  283. package/src/bollharness/src/scripts/checks/check_doc_file_references.ts +0 -11
  284. package/src/bollharness/src/scripts/checks/check_doc_freshness.ts +0 -141
  285. package/src/bollharness/src/scripts/checks/check_doc_links.ts +0 -36
  286. package/src/bollharness/src/scripts/checks/check_file_existence_claims.ts +0 -11
  287. package/src/bollharness/src/scripts/checks/check_fragment_integrity.ts +0 -40
  288. package/src/bollharness/src/scripts/checks/check_hook_installed.ts +0 -70
  289. package/src/bollharness/src/scripts/checks/check_issue_closure.ts +0 -51
  290. package/src/bollharness/src/scripts/checks/check_mcp_parity.ts +0 -11
  291. package/src/bollharness/src/scripts/checks/check_security.ts +0 -54
  292. package/src/bollharness/src/scripts/checks/check_skill_parity.ts +0 -11
  293. package/src/bollharness/src/scripts/checks/check_versions.ts +0 -11
  294. package/src/bollharness/src/scripts/checks/finding.ts +0 -35
  295. package/src/bollharness/src/scripts/checks/next_decision_number.ts +0 -24
  296. package/src/bollharness/src/scripts/checks/regenerate_magic_docs.ts +0 -11
  297. package/src/bollharness/src/scripts/ci/detect_rebaseline_triggers.ts +0 -14
  298. package/src/bollharness/src/scripts/ci/scan_subprocess_cfg.ts +0 -14
  299. package/src/bollharness/src/scripts/ci/scan_verify_artifacts.ts +0 -14
  300. package/src/bollharness/src/scripts/ci/scan_yaml_schema.ts +0 -14
  301. package/src/bollharness/src/scripts/context_router.ts +0 -76
  302. package/src/bollharness/src/scripts/deploy-guard.ts +0 -182
  303. package/src/bollharness/src/scripts/guard-feedback.ts +0 -215
  304. package/src/bollharness/src/scripts/guard_router.ts +0 -194
  305. package/src/bollharness/src/scripts/hooks/_hook_output.js +0 -3
  306. package/src/bollharness/src/scripts/hooks/_hook_output.ts +0 -11
  307. package/src/bollharness/src/scripts/hooks/auto-python3.ts +0 -10
  308. package/src/bollharness/src/scripts/hooks/deploy-progress-on-session-end.ts +0 -10
  309. package/src/bollharness/src/scripts/hooks/failure-analyzer.ts +0 -10
  310. package/src/bollharness/src/scripts/hooks/gate-judgment-inject.ts +0 -111
  311. package/src/bollharness/src/scripts/hooks/gate-transition-judgment.ts +0 -74
  312. package/src/bollharness/src/scripts/hooks/inbox-ack.ts +0 -10
  313. package/src/bollharness/src/scripts/hooks/inbox-inject-on-start.ts +0 -10
  314. package/src/bollharness/src/scripts/hooks/inbox-validate.ts +0 -10
  315. package/src/bollharness/src/scripts/hooks/inbox-write-ledger.ts +0 -10
  316. package/src/bollharness/src/scripts/hooks/initializer-agent.ts +0 -10
  317. package/src/bollharness/src/scripts/hooks/loop-detection.ts +0 -83
  318. package/src/bollharness/src/scripts/hooks/owner-guard.ts +0 -10
  319. package/src/bollharness/src/scripts/hooks/precompact.ts +0 -10
  320. package/src/bollharness/src/scripts/hooks/review-agent-gatekeeper.ts +0 -10
  321. package/src/bollharness/src/scripts/hooks/risk-tracker.ts +0 -121
  322. package/src/bollharness/src/scripts/hooks/sanitize-on-read.ts +0 -10
  323. package/src/bollharness/src/scripts/hooks/session-reflection.ts +0 -12
  324. package/src/bollharness/src/scripts/hooks/session-start-magic-docs.ts +0 -12
  325. package/src/bollharness/src/scripts/hooks/session-start-reset-risk.ts +0 -12
  326. package/src/bollharness/src/scripts/hooks/session-start-toolkit-reminder.ts +0 -12
  327. package/src/bollharness/src/scripts/hooks/stop-evaluator.ts +0 -164
  328. package/src/bollharness/src/scripts/hooks/tool-call-counter.ts +0 -10
  329. package/src/bollharness/src/scripts/hooks/trace-analyzer.ts +0 -14
  330. package/src/bollharness/src/scripts/install/install-trust-token.ts +0 -13
  331. package/src/bollharness/src/scripts/install/multi_project_registry.ts +0 -13
  332. package/src/bollharness/src/scripts/install/phase2_auto.ts +0 -28
  333. package/src/bollharness/src/scripts/install/pre_commit_installer.ts +0 -10
  334. package/src/bollharness/src/scripts/install/tier_selector.ts +0 -10
  335. package/src/bollharness/src/scripts/install/transcript_miner.ts +0 -13
  336. package/src/bollharness/src/scripts/lib/claim_patterns.ts +0 -11
  337. package/src/bollharness/src/scripts/lib/sanitize_patterns.ts +0 -13
  338. package/src/bollharness/src/scripts/sanitize.ts +0 -9
  339. package/src/bollharness/templates/persona/default.json +0 -19
  340. package/src/bollharness/templates/scaffold/.gitignore.append +0 -16
  341. package/src/bollharness/templates/scaffold/CLAUDE.md +0 -89
  342. package/src/bollharness-integration/channel-judgment-engine.ts +0 -634
  343. package/src/bollharness-integration/context-chain-router.ts +0 -474
  344. package/src/bollharness-integration/context-router-judgment.ts +0 -339
  345. package/src/bollharness-integration/context-router.ts +0 -583
  346. package/src/bollharness-integration/gate-state-machine.ts +0 -444
  347. package/src/bollharness-integration/gate-transition-hooks.ts +0 -137
  348. package/src/bollharness-integration/guard-checker.ts +0 -451
  349. package/src/bollharness-integration/index.ts +0 -195
  350. package/src/bollharness-integration/integration.ts +0 -538
  351. package/src/bollharness-integration/judgment-prompts.yaml +0 -535
  352. package/src/bollharness-integration/llm-judgment-engine.ts +0 -712
  353. package/src/bollharness-integration/skill-adapter.ts +0 -646
  354. package/src/bootstrap/bootstrap.ts +0 -135
  355. package/src/bootstrap/context-collector.ts +0 -371
  356. package/src/bootstrap/context-hierarchy.ts +0 -283
  357. package/src/bootstrap/lifecycle-hooks.ts +0 -289
  358. package/src/bootstrap/project-context.ts +0 -171
  359. package/src/cli/interface.ts +0 -211
  360. package/src/cli-entry.ts +0 -304
  361. package/src/constraints/index.ts +0 -6
  362. package/src/context-compaction/auto-compact.ts +0 -153
  363. package/src/context-compaction/budget-gate.ts +0 -32
  364. package/src/context-compaction/budget-reduce.ts +0 -37
  365. package/src/context-compaction/context-collapse.ts +0 -72
  366. package/src/context-compaction/index.ts +0 -24
  367. package/src/context-compaction/microcompact.ts +0 -54
  368. package/src/context-compaction/pipeline.ts +0 -133
  369. package/src/context-compaction/snip.ts +0 -51
  370. package/src/context-compaction/token-estimator.ts +0 -36
  371. package/src/context-compaction/types.ts +0 -99
  372. package/src/documents/reader.ts +0 -85
  373. package/src/documents/store.ts +0 -252
  374. package/src/electron-preload.ts +0 -25
  375. package/src/electron.ts +0 -200
  376. package/src/heartbeat/DaemonManager.ts +0 -283
  377. package/src/heartbeat/HealthMonitor.ts +0 -317
  378. package/src/heartbeat/StartupVerifier.ts +0 -223
  379. package/src/heartbeat/Watchdog.ts +0 -208
  380. package/src/heartbeat/index.ts +0 -109
  381. package/src/heartbeat/self-improve-bus.ts +0 -110
  382. package/src/heartbeat/types.ts +0 -82
  383. package/src/index.ts +0 -1724
  384. package/src/llm/audio-config-store.ts +0 -246
  385. package/src/llm/config-store.ts +0 -400
  386. package/src/llm/llm-judgment-client.ts +0 -471
  387. package/src/llm/pi-ai.ts +0 -653
  388. package/src/llm/system-prompt/health.ts +0 -159
  389. package/src/llm/system-prompt/layers/channel/local.md +0 -14
  390. package/src/llm/system-prompt/layers/channel/p2p-agent.md +0 -18
  391. package/src/llm/system-prompt/layers/channel/p2p-visitor.md +0 -19
  392. package/src/llm/system-prompt/layers/core/artifacts_storage.md +0 -89
  393. package/src/llm/system-prompt/layers/core/evenhandedness.md +0 -21
  394. package/src/llm/system-prompt/layers/core/hibs_reminders.md +0 -15
  395. package/src/llm/system-prompt/layers/core/identity.md +0 -37
  396. package/src/llm/system-prompt/layers/core/knowledge.md +0 -17
  397. package/src/llm/system-prompt/layers/core/memory_system.md +0 -12
  398. package/src/llm/system-prompt/layers/core/network_filesystem.md +0 -28
  399. package/src/llm/system-prompt/layers/core/refusal.md +0 -37
  400. package/src/llm/system-prompt/layers/core/tone.md +0 -31
  401. package/src/llm/system-prompt/layers/core/tools.thin.md +0 -13
  402. package/src/llm/system-prompt/layers/core/wellbeing.md +0 -41
  403. package/src/llm/system-prompt/layers/role/architect.md +0 -20
  404. package/src/llm/system-prompt/layers/role/expert.md +0 -19
  405. package/src/llm/system-prompt/layers/role/implementer.md +0 -15
  406. package/src/llm/system-prompt/layers/role/security.md +0 -15
  407. package/src/llm/system-prompt/layers/tool/artifacts.md +0 -72
  408. package/src/llm/system-prompt/layers/tool/bash.md +0 -25
  409. package/src/llm/system-prompt/layers/tool/hibs_api.md +0 -171
  410. package/src/llm/system-prompt/layers/tool/image_search.md +0 -70
  411. package/src/llm/system-prompt/layers/tool/manifest.md +0 -89
  412. package/src/llm/system-prompt/layers/tool/mcp_apps.md +0 -53
  413. package/src/llm/system-prompt/layers/tool/web_search.md +0 -83
  414. package/src/llm/system-prompt/registry.ts +0 -325
  415. package/src/llm/system-prompt/strip-hibsml.ts +0 -52
  416. package/src/llm/tool-manifest/ask_user_input.ts +0 -37
  417. package/src/llm/tool-manifest/bash.ts +0 -25
  418. package/src/llm/tool-manifest/create_file.ts +0 -26
  419. package/src/llm/tool-manifest/fetch_sports_data.ts +0 -28
  420. package/src/llm/tool-manifest/image_search.ts +0 -26
  421. package/src/llm/tool-manifest/index.ts +0 -88
  422. package/src/llm/tool-manifest/mcp.ts +0 -46
  423. package/src/llm/tool-manifest/message_compose.ts +0 -33
  424. package/src/llm/tool-manifest/places.ts +0 -86
  425. package/src/llm/tool-manifest/present_files.ts +0 -23
  426. package/src/llm/tool-manifest/recipe.ts +0 -42
  427. package/src/llm/tool-manifest/recommend_apps.ts +0 -25
  428. package/src/llm/tool-manifest/str_replace.ts +0 -29
  429. package/src/llm/tool-manifest/types.ts +0 -52
  430. package/src/llm/tool-manifest/view.ts +0 -26
  431. package/src/llm/tool-manifest/weather.ts +0 -29
  432. package/src/llm/tool-manifest/web.ts +0 -54
  433. package/src/llm/video-config-store.ts +0 -257
  434. package/src/network/agent-network.ts +0 -800
  435. package/src/network/hybrid-messenger.ts +0 -199
  436. package/src/network/iroh-bootstrap.ts +0 -57
  437. package/src/network/iroh-discovery.ts +0 -208
  438. package/src/network/iroh-integration.ts +0 -158
  439. package/src/network/iroh-transport.ts +0 -637
  440. package/src/network/known-peers.ts +0 -102
  441. package/src/network/p2p-direct.ts +0 -262
  442. package/src/network/p2p-secret.ts +0 -153
  443. package/src/network/p2p.ts +0 -964
  444. package/src/network/source-intent-broadcaster.ts +0 -242
  445. package/src/network/source-intent.ts +0 -167
  446. package/src/network/storage/adapters/json-adapter.ts +0 -454
  447. package/src/network/storage/index.ts +0 -203
  448. package/src/network/storage/types.ts +0 -166
  449. package/src/security/builtin-guards.ts +0 -162
  450. package/src/security/context-router-tool.ts +0 -122
  451. package/src/security/input-scanner.ts +0 -287
  452. package/src/security/react-harness.ts +0 -177
  453. package/src/security/tool-gate.ts +0 -294
  454. package/src/social/ant-colony/index.js +0 -19
  455. package/src/social/channels/ChannelManager.ts +0 -485
  456. package/src/social/channels/DiapChannelBridge.ts +0 -501
  457. package/src/social/channels/InterestMatcher.ts +0 -189
  458. package/src/social/channels/agent-workflow-config.json +0 -214
  459. package/src/social/channels/agent-workflow-config.yaml +0 -334
  460. package/src/social/channels/channel-agent-session.ts +0 -407
  461. package/src/social/channels/channel-heartbeat-agent.ts +0 -622
  462. package/src/social/channels/diap-doc-parser.ts +0 -282
  463. package/src/social/channels/harness-workflow-integrator.ts +0 -594
  464. package/src/social/channels/index.ts +0 -22
  465. package/src/social/channels/types.ts +0 -115
  466. package/src/social/global-shared-context.ts +0 -506
  467. package/src/social/heartbeat.ts +0 -1057
  468. package/src/social/persona/enhanced-persona.ts +0 -359
  469. package/src/types.d.ts +0 -12
  470. package/src/utils/auto-evolve-policy.ts +0 -138
  471. package/src/utils/auto-update.ts +0 -482
  472. package/src/utils/clamp.ts +0 -5
  473. package/src/web/agent-delegate-server.ts +0 -148
  474. package/src/web/api-config.html +0 -520
  475. package/src/web/client.js +0 -2352
  476. package/src/web/client.ts +0 -4326
  477. package/src/web/components/p2p/P2PModal.tsx +0 -416
  478. package/src/web/components/p2p/index.ts +0 -566
  479. package/src/web/components/p2p/index.tsx +0 -297
  480. package/src/web/components/p2p/p2p-connection.ts +0 -338
  481. package/src/web/components/p2p/p2p-identity.ts +0 -92
  482. package/src/web/components/p2p/p2p-manager.ts +0 -147
  483. package/src/web/components/p2p/p2p-messages.ts +0 -219
  484. package/src/web/components/p2p/p2p-modal.ts +0 -685
  485. package/src/web/components/p2p/p2p-store-memory.ts +0 -162
  486. package/src/web/components/p2p/p2p-tools.ts +0 -315
  487. package/src/web/components/p2p/types.ts +0 -170
  488. package/src/web/components/wallet-viem.mjs +0 -118
  489. package/src/web/design.md +0 -99
  490. package/src/web/icons/apple-touch-icon.png +0 -0
  491. package/src/web/icons/favicon-16x16.png +0 -0
  492. package/src/web/icons/favicon-192x192.png +0 -0
  493. package/src/web/icons/favicon-32x32.png +0 -0
  494. package/src/web/icons/favicon-48x48.png +0 -0
  495. package/src/web/icons/favicon-512x512.png +0 -0
  496. package/src/web/icons/favicon.icns +0 -0
  497. package/src/web/icons/favicon.ico +0 -0
  498. package/src/web/icons/icon.png +0 -0
  499. package/src/web/icons/image.png +0 -0
  500. package/src/web/index.html +0 -373
  501. package/src/web/iroh-delegate-transport.ts +0 -139
  502. package/src/web/manifest.json +0 -21
  503. package/src/web/server.ts +0 -5731
  504. package/src/web/style.css +0 -4737
  505. package/src/web/ui/message-renderer.ts +0 -540
  506. package/src/web/ui/step-timeline.ts +0 -394
  507. package/staging/auto-evolve/clean-001/.review-verdict +0 -9
  508. package/staging/auto-evolve/clean-001/clean-001.patch +0 -14
  509. package/staging/auto-evolve/e2e-001/.patch-id +0 -1
  510. package/staging/auto-evolve/e2e-001/.review-verdict +0 -12
  511. package/staging/auto-evolve/e2e-001/e2e-001.patch +0 -11
  512. package/staging/auto-evolve/test-bad/.review-verdict +0 -12
  513. package/staging/auto-evolve/test-bad/test-bad.patch +0 -11
  514. package/test-results/.last-run.json +0 -6
  515. package/test-results/src-test-web-loop-status-b-5734c-atus-bar-/346/230/276/347/244/272-spinner-/344/270/215/346/230/276/347/244/272/345/276/252/347/216/257/350/256/241/346/225/260/error-context.md +0 -285
  516. package/tsconfig.cli.json +0 -16
  517. package/tsconfig.electron.json +0 -20
  518. package/tsconfig.json +0 -18
@@ -1,213 +0,0 @@
1
- /**
2
- * Pre-Tool Validator — 4 步链式校验
3
- *
4
- * 严格对齐 Claude Code 论文 PreToolUse 4 步:
5
- * 1. modeGate(tool, mode) — bypassPermissions → 直接放行(除 shell)
6
- * 2. blacklistGate(tool, args) — 6 模式黑名单 (recursive rm, force push, dd 等)
7
- * 3. shellGuardGate(tool, args) — **完整** shell-guard (checkCommand + checkWritePath), 永远生效
8
- * 4. schemaGate(tool, args) — 第一版 stub: always allow (后续接入 tool-gate.ts)
9
- *
10
- * 每步独立 try/catch, 失败 = 跳过该步, 不阻塞 (与现有 lifecycle-hooks 风格一致)
11
- *
12
- * 失败静默: 任何 step 异常 → console.warn + 继续下一 step, 不抛错
13
- */
14
-
15
- import { shouldRunBlacklist, isShellTool, type PermissionMode } from './permission-mode.js';
16
- import { checkCommand, checkWritePath } from './shell-guard.js';
17
-
18
- export interface PreToolResult {
19
- allowed: boolean;
20
- reason?: string;
21
- /** 哪一步拒绝的 (供 audit log) */
22
- rejectedBy?: 'mode' | 'blacklist' | 'shell-guard' | 'schema';
23
- mode: PermissionMode;
24
- /** bypassPermissions 时记录, 区分 "完全放行" vs "shell-guard 仍生效" */
25
- shellGuardRetained?: boolean;
26
- }
27
-
28
- const DANGEROUS_PATTERNS: Array<{ re: RegExp; reason: string }> = [
29
- { re: /\brm\s+(-[a-z]*f[a-z]*\s+)?-[a-z]*r[a-z]*\s+\//, reason: '禁止递归删除根目录' },
30
- { re: /\bgit\s+push\s+.*--force\b/, reason: '禁止 force push' },
31
- { re: /\brm\s+-rf\s+~\//, reason: '禁止递归删除 home' },
32
- { re: /\bdd\s+if=.*\s+of=\/dev\//, reason: '禁止 dd 覆盖块设备' },
33
- { re: /\bcurl\s+.*\|\s*(ba)?sh\b/, reason: '禁止 curl|sh 直执行' },
34
- { re: />\s*\/dev\/sd[a-z]/, reason: '禁止写裸设备' },
35
- ];
36
-
37
- /**
38
- * Step 1: modeGate
39
- * - bypassPermissions + 非 shell → 直接放行 (但保留 shellGuardRetained 标记)
40
- * - 其他 → 继续
41
- */
42
- function modeGate(tool: string, mode: PermissionMode): PreToolResult | null {
43
- try {
44
- if (mode === 'bypassPermissions' && !isShellTool(tool)) {
45
- return { allowed: true, mode, rejectedBy: undefined, shellGuardRetained: false };
46
- }
47
- return null; // 不在这一步决定
48
- } catch (err) {
49
- console.warn('[pre-tool] modeGate failed (silent):', err);
50
- return null;
51
- }
52
- }
53
-
54
- /**
55
- * Step 2: blacklistGate
56
- * 6 模式黑名单 (现有 lifecycle-hooks.ts 行为)
57
- */
58
- function blacklistGate(tool: string, args: Record<string, unknown>, mode: PermissionMode): PreToolResult | null {
59
- try {
60
- if (!isShellTool(tool)) return null;
61
- const cmd = String(args.command || args.cmd || '');
62
- if (!cmd) return null;
63
- for (const { re, reason } of DANGEROUS_PATTERNS) {
64
- if (re.test(cmd)) {
65
- return { allowed: false, reason, rejectedBy: 'blacklist', mode };
66
- }
67
- }
68
- return null;
69
- } catch (err) {
70
- console.warn('[pre-tool] blacklistGate failed (silent):', err);
71
- return null;
72
- }
73
- }
74
-
75
- /**
76
- * Step 3: shellGuardGate
77
- * 永远跑 (绕过 mode), 是 bolloon 自身的安全底线
78
- *
79
- * 接完整 shell-guard.ts (checkCommand + checkWritePath):
80
- * - checkCommand 走命令白名单 + 参数黑名单 (允许列表默认 git/node/npm/npx/tsx/tsc/vitest 等)
81
- * - checkWritePath 走路径黑名单 (硬编码: pi-sdk.ts, shell-guard.ts, .env, .git/, .bolloon/, package.json, dist/ 等)
82
- *
83
- * 失败静默: 任何异常 → 跳过这步, 不阻塞
84
- */
85
- function shellGuardGate(tool: string, args: Record<string, unknown>, mode: PermissionMode): PreToolResult | null {
86
- try {
87
- if (!isShellTool(tool)) return null;
88
-
89
- // 1. 命令检查 (含白名单 + arg 黑名单)
90
- const cmd = String(args.command || args.cmd || '');
91
- let bin = '';
92
- if (cmd) {
93
- // shell-guard 期望 (cmd, args[]) 形式
94
- // 简单 split: 第一个 token 是 cmd, 之后是 args
95
- const parts = cmd.split(/\s+/).filter(Boolean);
96
- bin = parts[0] || '';
97
- const rest = parts.slice(1);
98
- if (bin) {
99
- const cmdResult = checkCommand(bin, rest);
100
- if (!cmdResult.allowed) {
101
- return {
102
- allowed: false,
103
- reason: cmdResult.reason,
104
- rejectedBy: 'shell-guard',
105
- mode,
106
- shellGuardRetained: true,
107
- };
108
- }
109
- }
110
- }
111
-
112
- // 2. 写路径检查 — 从 2 个来源抽:
113
- // a) 结构化字段 (args.path / args.target / args.file)
114
- // b) 命令字符串里的 token (老测试传 args.command='cat pi-sdk.ts' 时也能拦)
115
- const pathCandidates: string[] = [];
116
- const structured = String(
117
- args.path || args.target || args.file || args.targetPath || args.destination || ''
118
- );
119
- if (structured) pathCandidates.push(structured);
120
- if (cmd) {
121
- // 简单 tokenize: 按空白切, 取不含 shell 元字符的 token
122
- const tokens = cmd.split(/\s+/).filter((t) => t && !/^[|>;&`$()<]/.test(t));
123
- for (const t of tokens) {
124
- if (t !== bin) pathCandidates.push(t); // 跳过命令本身
125
- }
126
- }
127
- // 纯文件名 denylist (兜底 — checkWritePath 的 regex 要求 /src/xxx/ 锚定, 纯文件名拦不到)
128
- // 只对**写/删/改**类命令生效 (rm, cp, mv, sed -i, echo >); 读类命令 (cat, head, tail, ls) 跳过
129
- const READ_BINS = new Set(['cat', 'head', 'tail', 'wc', 'ls', 'echo', 'pwd', 'date', 'mkdir', 'touch', 'find', 'grep', 'git', 'node', 'npm', 'npx', 'tsx', 'tsc', 'vitest']);
130
- const FILENAME_DENYLIST = [
131
- 'pi-sdk.ts', 'shell-guard.ts', 'shell-tool.ts',
132
- '.env', 'package.json', 'tsconfig.json',
133
- ];
134
- const isReadOperation = READ_BINS.has(bin);
135
- for (const candidate of pathCandidates) {
136
- // 2a. checkWritePath 只对写操作调用 (读类命令绕开, 避免 cat pi-sdk.ts 误拦)
137
- if (!isReadOperation) {
138
- const pathResult = checkWritePath(candidate);
139
- if (!pathResult.allowed) {
140
- return {
141
- allowed: false,
142
- reason: pathResult.reason,
143
- rejectedBy: 'shell-guard',
144
- mode,
145
- shellGuardRetained: true,
146
- };
147
- }
148
- }
149
- // 2b. 纯文件名兜底 — 只对写操作生效
150
- if (!isReadOperation) {
151
- const baseName = candidate.split('/').pop() || '';
152
- if (FILENAME_DENYLIST.includes(baseName)) {
153
- return {
154
- allowed: false,
155
- reason: `shell-guard: 禁止 ${bin} 操作 ${candidate} (命中文件名硬编码黑名单)`,
156
- rejectedBy: 'shell-guard',
157
- mode,
158
- shellGuardRetained: true,
159
- };
160
- }
161
- }
162
- }
163
-
164
- return null; // 通过
165
- } catch (err) {
166
- console.warn('[pre-tool] shellGuardGate failed (silent):', err);
167
- return null;
168
- }
169
- }
170
-
171
- /**
172
- * Step 4: schemaGate
173
- * 第一版 stub: always allow
174
- */
175
- function schemaGate(_tool: string, _args: Record<string, unknown>, mode: PermissionMode): PreToolResult | null {
176
- return null; // 不在这一步决定
177
- }
178
-
179
- /**
180
- * 主入口: 4 步链式, 任何一步拒绝 → 返回, 否则最终放行
181
- */
182
- export function validatePreToolUse(
183
- tool: string,
184
- args: Record<string, unknown>,
185
- mode: PermissionMode
186
- ): PreToolResult {
187
- const steps = [
188
- () => modeGate(tool, mode),
189
- () => blacklistGate(tool, args, mode),
190
- () => shellGuardGate(tool, args, mode),
191
- () => schemaGate(tool, args, mode),
192
- ];
193
- for (const step of steps) {
194
- const result = step();
195
- if (result && !result.allowed) return result;
196
- }
197
- // 全部通过 → 放行
198
- // bypassPermissions + shell 走到这里 = shellGuardGate 已经放过, 但要标记 shellGuardRetained
199
- return {
200
- allowed: true,
201
- mode,
202
- rejectedBy: undefined,
203
- shellGuardRetained: isShellTool(tool),
204
- };
205
- }
206
-
207
- // ============================================================
208
- // 测试钩子
209
- // ============================================================
210
-
211
- export function _resetValidatorForTest(): void {
212
- // validator 是 pure, 保留 API 一致
213
- }
@@ -1,398 +0,0 @@
1
- import { p2pNetwork } from '../network/p2p.js';
2
- import { documentReader, DocumentContent } from '../documents/reader.js';
3
- import { getMinimax } from '../constraints/index.js';
4
-
5
- export type MessageType = 'task' | 'result' | 'report' | 'feedback' | 'improve' | 'improved';
6
-
7
- export interface AgentMessage {
8
- type: MessageType;
9
- from: string;
10
- to?: string;
11
- taskId: string;
12
- payload: string;
13
- timestamp: number;
14
- }
15
-
16
- export interface Task {
17
- taskId: string;
18
- action: 'read' | 'summarize' | 'improve' | 'report';
19
- target?: string;
20
- documentPath?: string;
21
- context?: string;
22
- requirements?: string;
23
- }
24
-
25
- export interface TaskResult {
26
- taskId: string;
27
- success: boolean;
28
- result?: string;
29
- qualityScore?: number;
30
- needsApproval?: boolean;
31
- autoSent?: boolean;
32
- }
33
-
34
- export interface ImproveResult {
35
- taskId: string;
36
- success: boolean;
37
- originalPath?: string;
38
- improvedContent?: string;
39
- qualityScore?: number;
40
- shouldAutoSend: boolean;
41
- needsApproval: boolean;
42
- }
43
-
44
- export class AgentProtocol {
45
- private peerId: string;
46
- private identityName: string;
47
- private pendingTasks: Map<string, Task> = new Map();
48
- private taskQueue: Task[] = [];
49
- private autoSendThreshold = 0.7;
50
- private autonomousMode = true;
51
-
52
- constructor(peerId: string, identityName?: string) {
53
- this.peerId = peerId;
54
- this.identityName = identityName || `Agent-${peerId.substring(0, 8)}`;
55
- this.setupMessageHandler();
56
- }
57
-
58
- private setupMessageHandler(): void {
59
- p2pNetwork.onMessage('task', async (data, from) => {
60
- const message = JSON.parse(new TextDecoder().decode(data)) as AgentMessage;
61
- await this.handleTask(message);
62
- });
63
-
64
- p2pNetwork.onMessage('result', async (data, from) => {
65
- const message = JSON.parse(new TextDecoder().decode(data)) as AgentMessage;
66
- await this.handleResult(message);
67
- });
68
-
69
- p2pNetwork.onMessage('feedback', async (data, from) => {
70
- const message = JSON.parse(new TextDecoder().decode(data)) as AgentMessage;
71
- await this.handleFeedback(message);
72
- });
73
-
74
- p2pNetwork.onMessage('improve', async (data, from) => {
75
- const message = JSON.parse(new TextDecoder().decode(data)) as AgentMessage;
76
- await this.handleImproveRequest(message);
77
- });
78
-
79
- p2pNetwork.onMessage('improved', async (data, from) => {
80
- const message = JSON.parse(new TextDecoder().decode(data)) as AgentMessage;
81
- await this.handleImprovedResult(message);
82
- });
83
- }
84
-
85
- async sendTask(task: Task, targetPeer: string): Promise<void> {
86
- const message: AgentMessage = {
87
- type: 'task',
88
- from: this.peerId,
89
- to: targetPeer,
90
- taskId: task.taskId,
91
- payload: JSON.stringify(task),
92
- timestamp: Date.now()
93
- };
94
-
95
- this.pendingTasks.set(task.taskId, task);
96
- await p2pNetwork.sendMessage(targetPeer, 'task', JSON.stringify(message));
97
- }
98
-
99
- async broadcastTask(task: Task): Promise<void> {
100
- const message: AgentMessage = {
101
- type: 'task',
102
- from: this.peerId,
103
- taskId: task.taskId,
104
- payload: JSON.stringify(task),
105
- timestamp: Date.now()
106
- };
107
-
108
- this.pendingTasks.set(task.taskId, task);
109
- await p2pNetwork.broadcast('task', JSON.stringify(message));
110
- }
111
-
112
- async requestImprove(documentPath: string, requirements: string, targetPeer?: string): Promise<void> {
113
- const task: Task = {
114
- taskId: `improve-${Date.now()}`,
115
- action: 'improve',
116
- documentPath,
117
- requirements,
118
- context: `Requested by ${this.identityName}`
119
- };
120
-
121
- const message: AgentMessage = {
122
- type: 'improve',
123
- from: this.peerId,
124
- to: targetPeer,
125
- taskId: task.taskId,
126
- payload: JSON.stringify(task),
127
- timestamp: Date.now()
128
- };
129
-
130
- this.pendingTasks.set(task.taskId, task);
131
-
132
- if (targetPeer) {
133
- await p2pNetwork.sendMessage(targetPeer, 'improve', JSON.stringify(message));
134
- } else {
135
- await p2pNetwork.broadcast('improve', JSON.stringify(message));
136
- }
137
- }
138
-
139
- private async handleTask(message: AgentMessage): Promise<void> {
140
- const task = JSON.parse(message.payload) as Task;
141
-
142
- if (task.action === 'read' && task.documentPath) {
143
- const content = await documentReader.read(task.documentPath);
144
- const result = await this.processDocument(content, task.context);
145
-
146
- const resultMsg: AgentMessage = {
147
- type: 'result',
148
- from: this.peerId,
149
- to: message.from,
150
- taskId: task.taskId,
151
- payload: JSON.stringify(result),
152
- timestamp: Date.now()
153
- };
154
-
155
- await p2pNetwork.sendMessage(message.from, 'result', JSON.stringify(resultMsg));
156
- } else if (task.action === 'improve' && task.documentPath && task.requirements) {
157
- const result = await this.processImprove(task);
158
- const resultMsg: AgentMessage = {
159
- type: 'improved',
160
- from: this.peerId,
161
- to: message.from,
162
- taskId: task.taskId,
163
- payload: JSON.stringify(result),
164
- timestamp: Date.now()
165
- };
166
-
167
- if (result.shouldAutoSend && this.autonomousMode) {
168
- console.log(`\n🤖 [${this.identityName}] 自动发送改进结果 (质量: ${(result.qualityScore! * 10).toFixed(1)}/10)`);
169
- await p2pNetwork.sendMessage(message.from, 'improved', JSON.stringify(resultMsg));
170
- } else if (result.needsApproval) {
171
- console.log(`\n📋 [${this.identityName}] 改进完成,等待审批 (质量: ${(result.qualityScore! * 10).toFixed(1)}/10)`);
172
- }
173
- }
174
- }
175
-
176
- private async processImprove(task: Task): Promise<ImproveResult> {
177
- const llm = getMinimax();
178
- const content = await documentReader.read(task.documentPath!);
179
- const improvedContent = await llm.improveContent(content.text, task.requirements!, task.context);
180
- const qualityScore = llm.estimateQuality(content.text, improvedContent);
181
- const shouldAutoSend = await llm.shouldAutoSend(qualityScore, this.autoSendThreshold);
182
-
183
- return {
184
- taskId: task.taskId,
185
- success: true,
186
- originalPath: task.documentPath,
187
- improvedContent,
188
- qualityScore,
189
- shouldAutoSend,
190
- needsApproval: !shouldAutoSend
191
- };
192
- }
193
-
194
- private async processDocument(content: DocumentContent, context?: string): Promise<TaskResult> {
195
- const llm = getMinimax();
196
- const chunks = documentReader.chunk(content.text);
197
- const summaries: string[] = [];
198
- let totalQuality = 0;
199
-
200
- for (const chunk of chunks) {
201
- const result = await llm.summarize(chunk, context);
202
- summaries.push(result.summary);
203
- totalQuality += result.qualityScore;
204
- }
205
-
206
- const combinedSummary = summaries.join('\n\n');
207
- const avgQuality = totalQuality / chunks.length;
208
-
209
- const canAutoSend = await llm.shouldAutoSend(avgQuality, this.autoSendThreshold);
210
-
211
- return {
212
- taskId: `task-${Date.now()}`,
213
- success: true,
214
- result: combinedSummary,
215
- qualityScore: avgQuality,
216
- needsApproval: !canAutoSend,
217
- autoSent: canAutoSend && this.autonomousMode
218
- };
219
- }
220
-
221
- private async handleResult(message: AgentMessage): Promise<void> {
222
- const result = JSON.parse(message.payload) as TaskResult;
223
- const task = this.pendingTasks.get(message.taskId);
224
-
225
- if (result.needsApproval && !result.autoSent) {
226
- console.log('\n📋 文档处理完成,需要人工确认:');
227
- console.log(` 质量评分: ${(result.qualityScore! * 10).toFixed(1)}/10`);
228
- console.log(` 摘要预览: ${result.result?.substring(0, 200)}...\n`);
229
- } else if (result.autoSent || this.autonomousMode) {
230
- console.log('\n✅ 文档处理完成,自动发送汇报');
231
- await this.autoReport(result, message.from);
232
- }
233
- }
234
-
235
- private async handleImproveRequest(message: AgentMessage): Promise<void> {
236
- const task = JSON.parse(message.payload) as Task;
237
- console.log(`\n📝 [${this.identityName}] 收到改进请求: ${task.documentPath}`);
238
- console.log(` 要求: ${task.requirements}`);
239
- }
240
-
241
- private async handleImprovedResult(message: AgentMessage): Promise<void> {
242
- const result = JSON.parse(message.payload) as ImproveResult;
243
- const task = this.pendingTasks.get(message.taskId);
244
-
245
- console.log('\n✨ 改进结果已接收:');
246
- console.log(` 原始文档: ${result.originalPath}`);
247
- console.log(` 质量评分: ${(result.qualityScore! * 10).toFixed(1)}/10`);
248
- console.log(` 自动发送: ${result.shouldAutoSend ? '是' : '否'}`);
249
- console.log(` 改进预览: ${result.improvedContent?.substring(0, 200)}...\n`);
250
- }
251
-
252
- private async handleFeedback(message: AgentMessage): Promise<void> {
253
- const { taskId, improvements } = JSON.parse(message.payload);
254
- console.log(`\n📝 [${this.identityName}] 收到改进意见 for task ${taskId}:`, improvements);
255
- }
256
-
257
- private async autoReport(result: TaskResult, fromPeer: string): Promise<void> {
258
- const reportMsg: AgentMessage = {
259
- type: 'report',
260
- from: this.peerId,
261
- taskId: result.taskId,
262
- payload: JSON.stringify({
263
- summary: result.result,
264
- qualityScore: result.qualityScore,
265
- fromAgent: this.identityName
266
- }),
267
- timestamp: Date.now()
268
- };
269
-
270
- const peers = p2pNetwork.getPeers();
271
- const failedPeers: string[] = [];
272
-
273
- for (const peer of peers) {
274
- if (peer !== fromPeer) {
275
- try {
276
- await p2pNetwork.sendMessage(peer, 'report', JSON.stringify(reportMsg));
277
- console.log(`[${this.identityName}] 汇报已发送至 ${peer}`);
278
- } catch (sendError) {
279
- console.warn(`[${this.identityName}] 发送汇报至 ${peer} 失败: ${sendError}`);
280
- failedPeers.push(peer);
281
- }
282
- }
283
- }
284
-
285
- // 重试失败的发送
286
- if (failedPeers.length > 0) {
287
- console.log(`[${this.identityName}] 尝试重新发送汇报至 ${failedPeers.length} 个失败节点`);
288
- await this.retryFailedReports(reportMsg, failedPeers, 2);
289
- }
290
- }
291
-
292
- private async retryFailedReports(
293
- reportMsg: AgentMessage,
294
- failedPeers: string[],
295
- maxRetries: number
296
- ): Promise<void> {
297
- for (let attempt = 1; attempt <= maxRetries; attempt++) {
298
- if (failedPeers.length === 0) break;
299
-
300
- console.log(`[${this.identityName}] 重试第 ${attempt}/${maxRetries} 次`);
301
- await this.sleep(1000 * attempt); // 指数退避
302
-
303
- const stillFailed: string[] = [];
304
- for (const peer of failedPeers) {
305
- try {
306
- await p2pNetwork.sendMessage(peer, 'report', JSON.stringify(reportMsg));
307
- console.log(`[${this.identityName}] 重试成功: ${peer}`);
308
- } catch {
309
- stillFailed.push(peer);
310
- }
311
- }
312
- failedPeers = stillFailed;
313
- }
314
-
315
- if (failedPeers.length > 0) {
316
- console.log(`[${this.identityName}] 最终仍有 ${failedPeers.length} 个节点发送失败,将加入待重试队列`);
317
- this.queueFailedReports(reportMsg, failedPeers);
318
- }
319
- }
320
-
321
- private failedReportsQueue: Array<{ msg: AgentMessage; peers: string[]; timestamp: number }> = [];
322
-
323
- private queueFailedReports(msg: AgentMessage, peers: string[]): void {
324
- this.failedReportsQueue.push({
325
- msg,
326
- peers,
327
- timestamp: Date.now()
328
- });
329
- // 限制队列大小
330
- if (this.failedReportsQueue.length > 50) {
331
- this.failedReportsQueue = this.failedReportsQueue.slice(-50);
332
- }
333
- }
334
-
335
- async processFailedReportsQueue(): Promise<void> {
336
- if (this.failedReportsQueue.length === 0) return;
337
-
338
- console.log(`[${this.identityName}] 处理待重试汇报队列 (${this.failedReportsQueue.length} 条)`);
339
- const processed: number[] = [];
340
-
341
- for (let i = 0; i < this.failedReportsQueue.length; i++) {
342
- const item = this.failedReportsQueue[i];
343
- const stillFailed: string[] = [];
344
-
345
- for (const peer of item.peers) {
346
- try {
347
- await p2pNetwork.sendMessage(peer, 'report', JSON.stringify(item.msg));
348
- console.log(`[${this.identityName}] 队列重试成功: ${peer}`);
349
- } catch {
350
- stillFailed.push(peer);
351
- }
352
- }
353
-
354
- if (stillFailed.length === 0) {
355
- processed.push(i);
356
- } else {
357
- item.peers = stillFailed;
358
- item.timestamp = Date.now();
359
- }
360
- }
361
-
362
- // 移除已成功的
363
- for (let i = processed.length - 1; i >= 0; i--) {
364
- this.failedReportsQueue.splice(processed[i], 1);
365
- }
366
- }
367
-
368
- private sleep(ms: number): Promise<void> {
369
- return new Promise(resolve => setTimeout(resolve, ms));
370
- }
371
-
372
- async submitImprovements(taskId: string, improvements: string): Promise<void> {
373
- const feedbackMsg: AgentMessage = {
374
- type: 'feedback',
375
- from: this.peerId,
376
- taskId,
377
- payload: JSON.stringify({ taskId, improvements }),
378
- timestamp: Date.now()
379
- };
380
-
381
- const peers = p2pNetwork.getPeers();
382
- for (const peer of peers) {
383
- await p2pNetwork.sendMessage(peer, 'feedback', JSON.stringify(feedbackMsg));
384
- }
385
- }
386
-
387
- setAutoSendThreshold(threshold: number): void {
388
- this.autoSendThreshold = threshold;
389
- }
390
-
391
- setAutonomousMode(enabled: boolean): void {
392
- this.autonomousMode = enabled;
393
- }
394
-
395
- isAutonomousMode(): boolean {
396
- return this.autonomousMode;
397
- }
398
- }