@bolloon/bolloon-agent 0.1.36 → 0.1.37

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 (530) hide show
  1. package/dist/web/client.js +2861 -3746
  2. package/dist/web/components/p2p/index.js +226 -264
  3. package/dist/web/ui/message-renderer.js +323 -434
  4. package/dist/web/ui/step-timeline.js +255 -351
  5. package/package.json +2 -2
  6. package/.auto-evolve-calls +0 -1
  7. package/.last-auto-evolve-baseline +0 -1
  8. package/.playwright-mcp/page-2026-06-16T07-51-45-706Z.yml +0 -130
  9. package/.playwright-mcp/page-2026-06-16T07-56-44-116Z.yml +0 -131
  10. package/Bolloon.md +0 -144
  11. package/Dive-into/CITATION.cff +0 -17
  12. package/Dive-into/LICENSE +0 -25
  13. package/Dive-into/README.md +0 -598
  14. package/Dive-into/README_zh.md +0 -599
  15. package/Dive-into/assets/context.png +0 -0
  16. package/Dive-into/assets/extensibility.png +0 -0
  17. package/Dive-into/assets/iteration.png +0 -0
  18. package/Dive-into/assets/layered_architecture.png +0 -0
  19. package/Dive-into/assets/main_structure.png +0 -0
  20. package/Dive-into/assets/permission.png +0 -0
  21. package/Dive-into/assets/session_compact.png +0 -0
  22. package/Dive-into/assets/subagent.png +0 -0
  23. package/Dive-into/paper/Dive_into_Claude_Code.pdf +0 -0
  24. package/dist/agents/constraint-layer.js.map +0 -1
  25. package/dist/agents/pi-sdk.js.map +0 -1
  26. package/dist/agents/workflow-engine.js.map +0 -1
  27. package/dist/bollharness/src/index.js +0 -5
  28. package/dist/bollharness/src/scripts/checks/check_adr_plan_numbering.js +0 -6
  29. package/dist/bollharness/src/scripts/checks/check_api_types.js +0 -45
  30. package/dist/bollharness/src/scripts/checks/check_artifact_link.js +0 -146
  31. package/dist/bollharness/src/scripts/checks/check_bridge_deps.js +0 -6
  32. package/dist/bollharness/src/scripts/checks/check_bugfix_binding.js +0 -6
  33. package/dist/bollharness/src/scripts/checks/check_bugfix_binding_ci.js +0 -6
  34. package/dist/bollharness/src/scripts/checks/check_doc_file_references.js +0 -6
  35. package/dist/bollharness/src/scripts/checks/check_doc_freshness.js +0 -135
  36. package/dist/bollharness/src/scripts/checks/check_doc_links.js +0 -31
  37. package/dist/bollharness/src/scripts/checks/check_file_existence_claims.js +0 -6
  38. package/dist/bollharness/src/scripts/checks/check_fragment_integrity.js +0 -34
  39. package/dist/bollharness/src/scripts/checks/check_hook_installed.js +0 -63
  40. package/dist/bollharness/src/scripts/checks/check_issue_closure.js +0 -41
  41. package/dist/bollharness/src/scripts/checks/check_mcp_parity.js +0 -6
  42. package/dist/bollharness/src/scripts/checks/check_security.js +0 -48
  43. package/dist/bollharness/src/scripts/checks/check_skill_parity.js +0 -6
  44. package/dist/bollharness/src/scripts/checks/check_versions.js +0 -6
  45. package/dist/bollharness/src/scripts/checks/finding.js +0 -13
  46. package/dist/bollharness/src/scripts/checks/next_decision_number.js +0 -20
  47. package/dist/bollharness/src/scripts/checks/regenerate_magic_docs.js +0 -6
  48. package/dist/bollharness/src/scripts/ci/detect_rebaseline_triggers.js +0 -8
  49. package/dist/bollharness/src/scripts/ci/scan_subprocess_cfg.js +0 -8
  50. package/dist/bollharness/src/scripts/ci/scan_verify_artifacts.js +0 -8
  51. package/dist/bollharness/src/scripts/ci/scan_yaml_schema.js +0 -8
  52. package/dist/bollharness/src/scripts/context_router.js +0 -67
  53. package/dist/bollharness/src/scripts/deploy-guard.js +0 -157
  54. package/dist/bollharness/src/scripts/guard-feedback.js +0 -192
  55. package/dist/bollharness/src/scripts/guard_router.js +0 -158
  56. package/dist/bollharness/src/scripts/hooks/_hook_output.js +0 -6
  57. package/dist/bollharness/src/scripts/hooks/auto-python3.js +0 -6
  58. package/dist/bollharness/src/scripts/hooks/deploy-progress-on-session-end.js +0 -6
  59. package/dist/bollharness/src/scripts/hooks/failure-analyzer.js +0 -6
  60. package/dist/bollharness/src/scripts/hooks/gate-judgment-inject.js +0 -92
  61. package/dist/bollharness/src/scripts/hooks/gate-transition-judgment.js +0 -63
  62. package/dist/bollharness/src/scripts/hooks/inbox-ack.js +0 -6
  63. package/dist/bollharness/src/scripts/hooks/inbox-inject-on-start.js +0 -6
  64. package/dist/bollharness/src/scripts/hooks/inbox-validate.js +0 -6
  65. package/dist/bollharness/src/scripts/hooks/inbox-write-ledger.js +0 -6
  66. package/dist/bollharness/src/scripts/hooks/initializer-agent.js +0 -6
  67. package/dist/bollharness/src/scripts/hooks/loop-detection.js +0 -73
  68. package/dist/bollharness/src/scripts/hooks/owner-guard.js +0 -6
  69. package/dist/bollharness/src/scripts/hooks/precompact.js +0 -6
  70. package/dist/bollharness/src/scripts/hooks/review-agent-gatekeeper.js +0 -6
  71. package/dist/bollharness/src/scripts/hooks/risk-tracker.js +0 -108
  72. package/dist/bollharness/src/scripts/hooks/sanitize-on-read.js +0 -6
  73. package/dist/bollharness/src/scripts/hooks/session-reflection.js +0 -7
  74. package/dist/bollharness/src/scripts/hooks/session-start-magic-docs.js +0 -7
  75. package/dist/bollharness/src/scripts/hooks/session-start-reset-risk.js +0 -7
  76. package/dist/bollharness/src/scripts/hooks/session-start-toolkit-reminder.js +0 -7
  77. package/dist/bollharness/src/scripts/hooks/stop-evaluator.js +0 -157
  78. package/dist/bollharness/src/scripts/hooks/tool-call-counter.js +0 -6
  79. package/dist/bollharness/src/scripts/hooks/trace-analyzer.js +0 -10
  80. package/dist/bollharness/src/scripts/install/install-trust-token.js +0 -7
  81. package/dist/bollharness/src/scripts/install/multi_project_registry.js +0 -9
  82. package/dist/bollharness/src/scripts/install/phase2_auto.js +0 -21
  83. package/dist/bollharness/src/scripts/install/pre_commit_installer.js +0 -6
  84. package/dist/bollharness/src/scripts/install/tier_selector.js +0 -7
  85. package/dist/bollharness/src/scripts/install/transcript_miner.js +0 -7
  86. package/dist/bollharness/src/scripts/lib/claim_patterns.js +0 -10
  87. package/dist/bollharness/src/scripts/lib/sanitize_patterns.js +0 -12
  88. package/dist/bollharness/src/scripts/sanitize.js +0 -6
  89. package/dist/bollharness-integration/context-router-judgment.js.map +0 -1
  90. package/dist/bollharness-integration/context-router.js.map +0 -1
  91. package/dist/bollharness-integration/gate-state-machine.js.map +0 -1
  92. package/dist/bollharness-integration/gate-transition-hooks.js.map +0 -1
  93. package/dist/bollharness-integration/guard-checker.js.map +0 -1
  94. package/dist/bollharness-integration/index.js.map +0 -1
  95. package/dist/bollharness-integration/integration.js.map +0 -1
  96. package/dist/bollharness-integration/llm/pi-ai.d.ts +0 -60
  97. package/dist/bollharness-integration/pi-ecosystem-colony/index.d.ts +0 -153
  98. package/dist/bollharness-integration/pi-ecosystem-goals/index.d.ts +0 -136
  99. package/dist/bollharness-integration/pi-ecosystem-judgment/decision.d.ts +0 -117
  100. package/dist/bollharness-integration/pi-ecosystem-judgment/distillation.d.ts +0 -78
  101. package/dist/bollharness-integration/pi-ecosystem-judgment/index.d.ts +0 -139
  102. package/dist/bollharness-integration/pi-ecosystem-mcp/index.d.ts +0 -127
  103. package/dist/bollharness-integration/pi-ecosystem-subagents/index.d.ts +0 -95
  104. package/dist/bollharness-integration/skill-adapter.js.map +0 -1
  105. package/dist/constraint-runtime/src/_archive_helper.js +0 -9
  106. package/dist/constraint-runtime/src/agent/coordinator.js +0 -48
  107. package/dist/constraint-runtime/src/agent/index.js +0 -1
  108. package/dist/constraint-runtime/src/assistant/index.js +0 -12
  109. package/dist/constraint-runtime/src/bootstrap/index.js +0 -12
  110. package/dist/constraint-runtime/src/bootstrap_graph.js +0 -13
  111. package/dist/constraint-runtime/src/bridge/index.js +0 -12
  112. package/dist/constraint-runtime/src/buddy/index.js +0 -12
  113. package/dist/constraint-runtime/src/cli/index.js +0 -12
  114. package/dist/constraint-runtime/src/command_graph.js +0 -10
  115. package/dist/constraint-runtime/src/commands.js +0 -60
  116. package/dist/constraint-runtime/src/components/index.js +0 -12
  117. package/dist/constraint-runtime/src/constants/index.js +0 -12
  118. package/dist/constraint-runtime/src/constraint/budget.js +0 -22
  119. package/dist/constraint-runtime/src/constraint/budget.js.map +0 -1
  120. package/dist/constraint-runtime/src/constraint/index.js +0 -2
  121. package/dist/constraint-runtime/src/constraint/permission.js +0 -20
  122. package/dist/constraint-runtime/src/constraint/permission.js.map +0 -1
  123. package/dist/constraint-runtime/src/context.js +0 -30
  124. package/dist/constraint-runtime/src/coordinator/index.js +0 -12
  125. package/dist/constraint-runtime/src/cost_hook.js +0 -4
  126. package/dist/constraint-runtime/src/cost_tracker.js +0 -8
  127. package/dist/constraint-runtime/src/deferred_init.js +0 -10
  128. package/dist/constraint-runtime/src/direct_modes.js +0 -6
  129. package/dist/constraint-runtime/src/dynamic-tool-loader.js +0 -85
  130. package/dist/constraint-runtime/src/entrypoints/index.js +0 -12
  131. package/dist/constraint-runtime/src/execution_registry.js +0 -44
  132. package/dist/constraint-runtime/src/history.js +0 -9
  133. package/dist/constraint-runtime/src/hooks/index.js +0 -12
  134. package/dist/constraint-runtime/src/index.js +0 -26
  135. package/dist/constraint-runtime/src/ink.js +0 -4
  136. package/dist/constraint-runtime/src/keybindings/index.js +0 -12
  137. package/dist/constraint-runtime/src/memdir/index.js +0 -12
  138. package/dist/constraint-runtime/src/migrations/index.js +0 -12
  139. package/dist/constraint-runtime/src/models.js +0 -1
  140. package/dist/constraint-runtime/src/models.js.map +0 -1
  141. package/dist/constraint-runtime/src/moreright/index.js +0 -12
  142. package/dist/constraint-runtime/src/native_ts/index.js +0 -12
  143. package/dist/constraint-runtime/src/output_styles/index.js +0 -12
  144. package/dist/constraint-runtime/src/parity_audit.js +0 -12
  145. package/dist/constraint-runtime/src/plugins/index.js +0 -12
  146. package/dist/constraint-runtime/src/port_manifest.js +0 -11
  147. package/dist/constraint-runtime/src/prefetch.js +0 -9
  148. package/dist/constraint-runtime/src/query.js +0 -1
  149. package/dist/constraint-runtime/src/remote/index.js +0 -12
  150. package/dist/constraint-runtime/src/remote_runtime.js +0 -9
  151. package/dist/constraint-runtime/src/runtime/index.js +0 -1
  152. package/dist/constraint-runtime/src/runtime/session.js +0 -35
  153. package/dist/constraint-runtime/src/schemas/index.js +0 -12
  154. package/dist/constraint-runtime/src/screens/index.js +0 -12
  155. package/dist/constraint-runtime/src/server/index.js +0 -12
  156. package/dist/constraint-runtime/src/services/index.js +0 -12
  157. package/dist/constraint-runtime/src/session_store.js +0 -22
  158. package/dist/constraint-runtime/src/setup.js +0 -30
  159. package/dist/constraint-runtime/src/skills/index.js +0 -1
  160. package/dist/constraint-runtime/src/skills/skill-registry.js +0 -28
  161. package/dist/constraint-runtime/src/state/index.js +0 -12
  162. package/dist/constraint-runtime/src/system_init.js +0 -20
  163. package/dist/constraint-runtime/src/thinking/engine.js +0 -42
  164. package/dist/constraint-runtime/src/thinking/index.js +0 -1
  165. package/dist/constraint-runtime/src/tool_pool.js +0 -8
  166. package/dist/constraint-runtime/src/tools/OpenCLI/execAdapter.js +0 -7
  167. package/dist/constraint-runtime/src/tools/OpenCLI/listAdapters.js +0 -7
  168. package/dist/constraint-runtime/src/tools/OpenCLI/runCommand.js +0 -7
  169. package/dist/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.js +0 -6
  170. package/dist/constraint-runtime/src/tools/PolymarketSDK/createOrder.js +0 -6
  171. package/dist/constraint-runtime/src/tools/PolymarketSDK/getMarket.js +0 -5
  172. package/dist/constraint-runtime/src/tools/PolymarketSDK/getOrders.js +0 -6
  173. package/dist/constraint-runtime/src/tools/PolymarketSDK/listMarkets.js +0 -4
  174. package/dist/constraint-runtime/src/tools/SafeSDK/confirmTransaction.js +0 -6
  175. package/dist/constraint-runtime/src/tools/SafeSDK/createTransaction.js +0 -8
  176. package/dist/constraint-runtime/src/tools/SafeSDK/deploySafe.js +0 -6
  177. package/dist/constraint-runtime/src/tools/SafeSDK/executeTransaction.js +0 -6
  178. package/dist/constraint-runtime/src/tools/SafeSDK/getBalance.js +0 -6
  179. package/dist/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.js +0 -6
  180. package/dist/constraint-runtime/src/tools/SafeSDK/proposeTransaction.js +0 -6
  181. package/dist/constraint-runtime/src/tools/WalletTools/autoPay.js +0 -29
  182. package/dist/constraint-runtime/src/tools/WalletTools/createWallet.js +0 -10
  183. package/dist/constraint-runtime/src/tools/WalletTools/getBalance.js +0 -13
  184. package/dist/constraint-runtime/src/tools/WalletTools/importWallet.js +0 -22
  185. package/dist/constraint-runtime/src/tools/WalletTools/sendTransaction.js +0 -25
  186. package/dist/constraint-runtime/src/tools/WalletTools/signMessage.js +0 -10
  187. package/dist/constraint-runtime/src/tools/WalletTools/transferToken.js +0 -25
  188. package/dist/constraint-runtime/src/tools.js +0 -80
  189. package/dist/constraint-runtime/src/transcript.js +0 -19
  190. package/dist/constraint-runtime/src/types/index.js +0 -12
  191. package/dist/constraint-runtime/src/upstream_proxy/index.js +0 -12
  192. package/dist/constraint-runtime/src/utils/index.js +0 -12
  193. package/dist/constraint-runtime/src/vim/index.js +0 -12
  194. package/dist/constraint-runtime/src/voice/index.js +0 -12
  195. package/dist/constraints/index.js.map +0 -1
  196. package/dist/documents/reader.js.map +0 -1
  197. package/dist/llm/config-store.js.map +0 -1
  198. package/dist/llm/pi-ai.js.map +0 -1
  199. package/dist/network/agent-network.js.map +0 -1
  200. package/dist/network/iroh-integration.js.map +0 -1
  201. package/dist/network/iroh-transport.js.map +0 -1
  202. package/dist/network/p2p.js.map +0 -1
  203. package/dist/network/storage/adapters/json-adapter.js.map +0 -1
  204. package/dist/pi-ecosystem-colony/index.js.map +0 -1
  205. package/dist/pi-ecosystem-goals/index.js.map +0 -1
  206. package/dist/pi-ecosystem-judgment/decision.js.map +0 -1
  207. package/dist/pi-ecosystem-judgment/distillation.js.map +0 -1
  208. package/dist/pi-ecosystem-judgment/human-value-store.js.map +0 -1
  209. package/dist/pi-ecosystem-judgment/index.js.map +0 -1
  210. package/dist/pi-ecosystem-judgment/value-injection.js.map +0 -1
  211. package/dist/pi-ecosystem-mcp/index.js.map +0 -1
  212. package/dist/pi-ecosystem-subagents/index.js.map +0 -1
  213. package/dist/social/ant-colony/AdaptiveHeartbeat.js.map +0 -1
  214. package/dist/social/ant-colony/PheromoneEngine.js.map +0 -1
  215. package/dist/social/ant-colony/types.js.map +0 -1
  216. package/dist/social/channels/ChannelManager.js.map +0 -1
  217. package/dist/social/channels/DiapChannelBridge.js.map +0 -1
  218. package/dist/social/channels/InterestMatcher.js.map +0 -1
  219. package/dist/social/channels/types.js.map +0 -1
  220. package/dist/social/global-shared-context.js.map +0 -1
  221. package/dist/social/heartbeat.js.map +0 -1
  222. package/dist/web/components/p2p/P2PModal.js +0 -188
  223. package/dist/web/components/p2p/p2p-modal.js +0 -657
  224. package/dist/web/components/p2p/p2p-tools.js +0 -248
  225. package/lefthook.yml +0 -33
  226. package/scripts/auto-evolve-loop.ts +0 -481
  227. package/scripts/auto-evolve-oneshot.sh +0 -155
  228. package/scripts/auto-evolve-snapshot.sh +0 -136
  229. package/scripts/build-cli.js +0 -216
  230. package/scripts/build-web.ts +0 -116
  231. package/scripts/detect-schema-changes.sh +0 -48
  232. package/scripts/diff-reviewer.ts +0 -159
  233. package/scripts/postinstall.js +0 -153
  234. package/scripts/validate-system-prompt.ts +0 -142
  235. package/scripts/weekly-report.ts +0 -364
  236. package/src/agents/agent-manifest-protocol.ts +0 -117
  237. package/src/agents/constraint-layer.ts +0 -309
  238. package/src/agents/iroh-secret.ts +0 -32
  239. package/src/agents/p2p-chat-tools.ts +0 -383
  240. package/src/agents/p2p-document-tools.ts +0 -347
  241. package/src/agents/permission-mode.ts +0 -127
  242. package/src/agents/pi-sdk.ts +0 -2895
  243. package/src/agents/pre-tool-validator.ts +0 -213
  244. package/src/agents/protocol.ts +0 -398
  245. package/src/agents/shell-guard.ts +0 -417
  246. package/src/agents/shell-tool.ts +0 -103
  247. package/src/agents/skill-loader.ts +0 -202
  248. package/src/agents/subagent-manager.ts +0 -553
  249. package/src/agents/workflow-engine.ts +0 -332
  250. package/src/agents/workflow-pivot-loop.ts +0 -766
  251. package/src/bollharness/.sanitize-report.json +0 -13
  252. package/src/bollharness/CLAUDE.md +0 -73
  253. package/src/bollharness/LICENSE +0 -21
  254. package/src/bollharness/README.md +0 -143
  255. package/src/bollharness/README.zh-CN.md +0 -131
  256. package/src/bollharness/package.json +0 -20
  257. package/src/bollharness/reference/SOURCE-COMMIT.txt +0 -3
  258. package/src/bollharness/reference/boll-reference/scripts/hooks/.sanitize-report.json +0 -12
  259. package/src/bollharness/reference/boll-reference/scripts/hooks/find-boll-root.sh +0 -27
  260. package/src/bollharness/reference/boll-reference/scripts/hooks/precompact.sh +0 -57
  261. package/src/bollharness/reference/boll-reference/scripts/hooks/stop-evaluator.md +0 -57
  262. package/src/bollharness/schemas/metrics-jsonl-allowlist.json +0 -67
  263. package/src/bollharness/scripts/checks/next_decision_number.sh +0 -48
  264. package/src/bollharness/scripts/ci/count-components.sh +0 -65
  265. package/src/bollharness/scripts/context-fragments/artifact-linkage.md +0 -14
  266. package/src/bollharness/scripts/context-fragments/auth-consumers.md +0 -17
  267. package/src/bollharness/scripts/context-fragments/bridge-constitution.md +0 -13
  268. package/src/bollharness/scripts/context-fragments/catalyst-distributed.md +0 -18
  269. package/src/bollharness/scripts/context-fragments/closure-checklist.md +0 -13
  270. package/src/bollharness/scripts/context-fragments/contract-consumers.md +0 -15
  271. package/src/bollharness/scripts/context-fragments/db-shared-structures.md +0 -15
  272. package/src/bollharness/scripts/context-fragments/fixed-three-layers.md +0 -19
  273. package/src/bollharness/scripts/context-fragments/general-dev-principles.md +0 -11
  274. package/src/bollharness/scripts/context-fragments/issue-first.md +0 -8
  275. package/src/bollharness/scripts/context-fragments/mcp-parity.md +0 -16
  276. package/src/bollharness/scripts/context-fragments/pi-agent-operations.md +0 -108
  277. package/src/bollharness/scripts/context-fragments/protocol-consumers.md +0 -15
  278. package/src/bollharness/scripts/context-fragments/run-events-consumers.md +0 -15
  279. package/src/bollharness/scripts/context-fragments/scene-fidelity.md +0 -13
  280. package/src/bollharness/scripts/context-fragments/truth-source-hierarchy.md +0 -15
  281. package/src/bollharness/scripts/context-fragments/two-language.md +0 -15
  282. package/src/bollharness/scripts/context-fragments/version-sources.md +0 -14
  283. package/src/bollharness/scripts/hooks/find-project-root.sh +0 -47
  284. package/src/bollharness/scripts/hooks/inbox-poll.sh +0 -78
  285. package/src/bollharness/scripts/hooks/precompact.sh +0 -56
  286. package/src/bollharness/scripts/hooks/stop-evaluator.md +0 -83
  287. package/src/bollharness/scripts/sync-from-upstream.sh +0 -281
  288. package/src/bollharness/src/index.ts +0 -5
  289. package/src/bollharness/src/scripts/checks/check_adr_plan_numbering.ts +0 -11
  290. package/src/bollharness/src/scripts/checks/check_api_types.ts +0 -52
  291. package/src/bollharness/src/scripts/checks/check_artifact_link.ts +0 -156
  292. package/src/bollharness/src/scripts/checks/check_bridge_deps.ts +0 -11
  293. package/src/bollharness/src/scripts/checks/check_bugfix_binding.ts +0 -11
  294. package/src/bollharness/src/scripts/checks/check_bugfix_binding_ci.ts +0 -11
  295. package/src/bollharness/src/scripts/checks/check_doc_file_references.ts +0 -11
  296. package/src/bollharness/src/scripts/checks/check_doc_freshness.ts +0 -141
  297. package/src/bollharness/src/scripts/checks/check_doc_links.ts +0 -36
  298. package/src/bollharness/src/scripts/checks/check_file_existence_claims.ts +0 -11
  299. package/src/bollharness/src/scripts/checks/check_fragment_integrity.ts +0 -40
  300. package/src/bollharness/src/scripts/checks/check_hook_installed.ts +0 -70
  301. package/src/bollharness/src/scripts/checks/check_issue_closure.ts +0 -51
  302. package/src/bollharness/src/scripts/checks/check_mcp_parity.ts +0 -11
  303. package/src/bollharness/src/scripts/checks/check_security.ts +0 -54
  304. package/src/bollharness/src/scripts/checks/check_skill_parity.ts +0 -11
  305. package/src/bollharness/src/scripts/checks/check_versions.ts +0 -11
  306. package/src/bollharness/src/scripts/checks/finding.ts +0 -35
  307. package/src/bollharness/src/scripts/checks/next_decision_number.ts +0 -24
  308. package/src/bollharness/src/scripts/checks/regenerate_magic_docs.ts +0 -11
  309. package/src/bollharness/src/scripts/ci/detect_rebaseline_triggers.ts +0 -14
  310. package/src/bollharness/src/scripts/ci/scan_subprocess_cfg.ts +0 -14
  311. package/src/bollharness/src/scripts/ci/scan_verify_artifacts.ts +0 -14
  312. package/src/bollharness/src/scripts/ci/scan_yaml_schema.ts +0 -14
  313. package/src/bollharness/src/scripts/context_router.ts +0 -76
  314. package/src/bollharness/src/scripts/deploy-guard.ts +0 -182
  315. package/src/bollharness/src/scripts/guard-feedback.ts +0 -215
  316. package/src/bollharness/src/scripts/guard_router.ts +0 -194
  317. package/src/bollharness/src/scripts/hooks/_hook_output.js +0 -3
  318. package/src/bollharness/src/scripts/hooks/_hook_output.ts +0 -11
  319. package/src/bollharness/src/scripts/hooks/auto-python3.ts +0 -10
  320. package/src/bollharness/src/scripts/hooks/deploy-progress-on-session-end.ts +0 -10
  321. package/src/bollharness/src/scripts/hooks/failure-analyzer.ts +0 -10
  322. package/src/bollharness/src/scripts/hooks/gate-judgment-inject.ts +0 -111
  323. package/src/bollharness/src/scripts/hooks/gate-transition-judgment.ts +0 -74
  324. package/src/bollharness/src/scripts/hooks/inbox-ack.ts +0 -10
  325. package/src/bollharness/src/scripts/hooks/inbox-inject-on-start.ts +0 -10
  326. package/src/bollharness/src/scripts/hooks/inbox-validate.ts +0 -10
  327. package/src/bollharness/src/scripts/hooks/inbox-write-ledger.ts +0 -10
  328. package/src/bollharness/src/scripts/hooks/initializer-agent.ts +0 -10
  329. package/src/bollharness/src/scripts/hooks/loop-detection.ts +0 -83
  330. package/src/bollharness/src/scripts/hooks/owner-guard.ts +0 -10
  331. package/src/bollharness/src/scripts/hooks/precompact.ts +0 -10
  332. package/src/bollharness/src/scripts/hooks/review-agent-gatekeeper.ts +0 -10
  333. package/src/bollharness/src/scripts/hooks/risk-tracker.ts +0 -121
  334. package/src/bollharness/src/scripts/hooks/sanitize-on-read.ts +0 -10
  335. package/src/bollharness/src/scripts/hooks/session-reflection.ts +0 -12
  336. package/src/bollharness/src/scripts/hooks/session-start-magic-docs.ts +0 -12
  337. package/src/bollharness/src/scripts/hooks/session-start-reset-risk.ts +0 -12
  338. package/src/bollharness/src/scripts/hooks/session-start-toolkit-reminder.ts +0 -12
  339. package/src/bollharness/src/scripts/hooks/stop-evaluator.ts +0 -164
  340. package/src/bollharness/src/scripts/hooks/tool-call-counter.ts +0 -10
  341. package/src/bollharness/src/scripts/hooks/trace-analyzer.ts +0 -14
  342. package/src/bollharness/src/scripts/install/install-trust-token.ts +0 -13
  343. package/src/bollharness/src/scripts/install/multi_project_registry.ts +0 -13
  344. package/src/bollharness/src/scripts/install/phase2_auto.ts +0 -28
  345. package/src/bollharness/src/scripts/install/pre_commit_installer.ts +0 -10
  346. package/src/bollharness/src/scripts/install/tier_selector.ts +0 -10
  347. package/src/bollharness/src/scripts/install/transcript_miner.ts +0 -13
  348. package/src/bollharness/src/scripts/lib/claim_patterns.ts +0 -11
  349. package/src/bollharness/src/scripts/lib/sanitize_patterns.ts +0 -13
  350. package/src/bollharness/src/scripts/sanitize.ts +0 -9
  351. package/src/bollharness/templates/persona/default.json +0 -19
  352. package/src/bollharness/templates/scaffold/.gitignore.append +0 -16
  353. package/src/bollharness/templates/scaffold/CLAUDE.md +0 -89
  354. package/src/bollharness-integration/channel-judgment-engine.ts +0 -634
  355. package/src/bollharness-integration/context-chain-router.ts +0 -474
  356. package/src/bollharness-integration/context-router-judgment.ts +0 -339
  357. package/src/bollharness-integration/context-router.ts +0 -583
  358. package/src/bollharness-integration/gate-state-machine.ts +0 -444
  359. package/src/bollharness-integration/gate-transition-hooks.ts +0 -137
  360. package/src/bollharness-integration/guard-checker.ts +0 -451
  361. package/src/bollharness-integration/index.ts +0 -195
  362. package/src/bollharness-integration/integration.ts +0 -538
  363. package/src/bollharness-integration/judgment-prompts.yaml +0 -535
  364. package/src/bollharness-integration/llm-judgment-engine.ts +0 -712
  365. package/src/bollharness-integration/skill-adapter.ts +0 -646
  366. package/src/bootstrap/bootstrap.ts +0 -135
  367. package/src/bootstrap/context-collector.ts +0 -371
  368. package/src/bootstrap/context-hierarchy.ts +0 -283
  369. package/src/bootstrap/lifecycle-hooks.ts +0 -289
  370. package/src/bootstrap/project-context.ts +0 -171
  371. package/src/cli/interface.ts +0 -211
  372. package/src/cli-entry.ts +0 -304
  373. package/src/constraints/index.ts +0 -6
  374. package/src/context-compaction/auto-compact.ts +0 -153
  375. package/src/context-compaction/budget-gate.ts +0 -32
  376. package/src/context-compaction/budget-reduce.ts +0 -37
  377. package/src/context-compaction/context-collapse.ts +0 -72
  378. package/src/context-compaction/index.ts +0 -24
  379. package/src/context-compaction/microcompact.ts +0 -54
  380. package/src/context-compaction/pipeline.ts +0 -133
  381. package/src/context-compaction/snip.ts +0 -51
  382. package/src/context-compaction/token-estimator.ts +0 -36
  383. package/src/context-compaction/types.ts +0 -99
  384. package/src/documents/reader.ts +0 -85
  385. package/src/documents/store.ts +0 -252
  386. package/src/electron-preload.ts +0 -25
  387. package/src/electron.ts +0 -200
  388. package/src/heartbeat/DaemonManager.ts +0 -283
  389. package/src/heartbeat/HealthMonitor.ts +0 -317
  390. package/src/heartbeat/StartupVerifier.ts +0 -223
  391. package/src/heartbeat/Watchdog.ts +0 -208
  392. package/src/heartbeat/index.ts +0 -109
  393. package/src/heartbeat/self-improve-bus.ts +0 -110
  394. package/src/heartbeat/types.ts +0 -82
  395. package/src/index.ts +0 -1724
  396. package/src/llm/audio-config-store.ts +0 -246
  397. package/src/llm/config-store.ts +0 -400
  398. package/src/llm/llm-judgment-client.ts +0 -471
  399. package/src/llm/pi-ai.ts +0 -653
  400. package/src/llm/system-prompt/health.ts +0 -159
  401. package/src/llm/system-prompt/layers/channel/local.md +0 -14
  402. package/src/llm/system-prompt/layers/channel/p2p-agent.md +0 -18
  403. package/src/llm/system-prompt/layers/channel/p2p-visitor.md +0 -19
  404. package/src/llm/system-prompt/layers/core/artifacts_storage.md +0 -89
  405. package/src/llm/system-prompt/layers/core/evenhandedness.md +0 -21
  406. package/src/llm/system-prompt/layers/core/hibs_reminders.md +0 -15
  407. package/src/llm/system-prompt/layers/core/identity.md +0 -37
  408. package/src/llm/system-prompt/layers/core/knowledge.md +0 -17
  409. package/src/llm/system-prompt/layers/core/memory_system.md +0 -12
  410. package/src/llm/system-prompt/layers/core/network_filesystem.md +0 -28
  411. package/src/llm/system-prompt/layers/core/refusal.md +0 -37
  412. package/src/llm/system-prompt/layers/core/tone.md +0 -31
  413. package/src/llm/system-prompt/layers/core/tools.thin.md +0 -13
  414. package/src/llm/system-prompt/layers/core/wellbeing.md +0 -41
  415. package/src/llm/system-prompt/layers/role/architect.md +0 -20
  416. package/src/llm/system-prompt/layers/role/expert.md +0 -19
  417. package/src/llm/system-prompt/layers/role/implementer.md +0 -15
  418. package/src/llm/system-prompt/layers/role/security.md +0 -15
  419. package/src/llm/system-prompt/layers/tool/artifacts.md +0 -72
  420. package/src/llm/system-prompt/layers/tool/bash.md +0 -25
  421. package/src/llm/system-prompt/layers/tool/hibs_api.md +0 -171
  422. package/src/llm/system-prompt/layers/tool/image_search.md +0 -70
  423. package/src/llm/system-prompt/layers/tool/manifest.md +0 -89
  424. package/src/llm/system-prompt/layers/tool/mcp_apps.md +0 -53
  425. package/src/llm/system-prompt/layers/tool/web_search.md +0 -83
  426. package/src/llm/system-prompt/registry.ts +0 -325
  427. package/src/llm/system-prompt/strip-hibsml.ts +0 -52
  428. package/src/llm/tool-manifest/ask_user_input.ts +0 -37
  429. package/src/llm/tool-manifest/bash.ts +0 -25
  430. package/src/llm/tool-manifest/create_file.ts +0 -26
  431. package/src/llm/tool-manifest/fetch_sports_data.ts +0 -28
  432. package/src/llm/tool-manifest/image_search.ts +0 -26
  433. package/src/llm/tool-manifest/index.ts +0 -88
  434. package/src/llm/tool-manifest/mcp.ts +0 -46
  435. package/src/llm/tool-manifest/message_compose.ts +0 -33
  436. package/src/llm/tool-manifest/places.ts +0 -86
  437. package/src/llm/tool-manifest/present_files.ts +0 -23
  438. package/src/llm/tool-manifest/recipe.ts +0 -42
  439. package/src/llm/tool-manifest/recommend_apps.ts +0 -25
  440. package/src/llm/tool-manifest/str_replace.ts +0 -29
  441. package/src/llm/tool-manifest/types.ts +0 -52
  442. package/src/llm/tool-manifest/view.ts +0 -26
  443. package/src/llm/tool-manifest/weather.ts +0 -29
  444. package/src/llm/tool-manifest/web.ts +0 -54
  445. package/src/llm/video-config-store.ts +0 -257
  446. package/src/network/agent-network.ts +0 -800
  447. package/src/network/hybrid-messenger.ts +0 -199
  448. package/src/network/iroh-bootstrap.ts +0 -57
  449. package/src/network/iroh-discovery.ts +0 -208
  450. package/src/network/iroh-integration.ts +0 -158
  451. package/src/network/iroh-transport.ts +0 -637
  452. package/src/network/known-peers.ts +0 -102
  453. package/src/network/p2p-direct.ts +0 -262
  454. package/src/network/p2p-secret.ts +0 -153
  455. package/src/network/p2p.ts +0 -964
  456. package/src/network/source-intent-broadcaster.ts +0 -242
  457. package/src/network/source-intent.ts +0 -167
  458. package/src/network/storage/adapters/json-adapter.ts +0 -454
  459. package/src/network/storage/index.ts +0 -203
  460. package/src/network/storage/types.ts +0 -166
  461. package/src/security/builtin-guards.ts +0 -162
  462. package/src/security/context-router-tool.ts +0 -122
  463. package/src/security/input-scanner.ts +0 -287
  464. package/src/security/react-harness.ts +0 -177
  465. package/src/security/tool-gate.ts +0 -294
  466. package/src/social/ant-colony/index.js +0 -19
  467. package/src/social/channels/ChannelManager.ts +0 -485
  468. package/src/social/channels/DiapChannelBridge.ts +0 -501
  469. package/src/social/channels/InterestMatcher.ts +0 -189
  470. package/src/social/channels/agent-workflow-config.json +0 -214
  471. package/src/social/channels/agent-workflow-config.yaml +0 -334
  472. package/src/social/channels/channel-agent-session.ts +0 -407
  473. package/src/social/channels/channel-heartbeat-agent.ts +0 -622
  474. package/src/social/channels/diap-doc-parser.ts +0 -282
  475. package/src/social/channels/harness-workflow-integrator.ts +0 -594
  476. package/src/social/channels/index.ts +0 -22
  477. package/src/social/channels/types.ts +0 -115
  478. package/src/social/global-shared-context.ts +0 -506
  479. package/src/social/heartbeat.ts +0 -1057
  480. package/src/social/persona/enhanced-persona.ts +0 -359
  481. package/src/types.d.ts +0 -12
  482. package/src/utils/auto-evolve-policy.ts +0 -138
  483. package/src/utils/auto-update.ts +0 -482
  484. package/src/utils/clamp.ts +0 -5
  485. package/src/web/agent-delegate-server.ts +0 -148
  486. package/src/web/api-config.html +0 -520
  487. package/src/web/client.js +0 -2352
  488. package/src/web/client.ts +0 -4326
  489. package/src/web/components/p2p/P2PModal.tsx +0 -416
  490. package/src/web/components/p2p/index.ts +0 -566
  491. package/src/web/components/p2p/index.tsx +0 -297
  492. package/src/web/components/p2p/p2p-connection.ts +0 -338
  493. package/src/web/components/p2p/p2p-identity.ts +0 -92
  494. package/src/web/components/p2p/p2p-manager.ts +0 -147
  495. package/src/web/components/p2p/p2p-messages.ts +0 -219
  496. package/src/web/components/p2p/p2p-modal.ts +0 -685
  497. package/src/web/components/p2p/p2p-store-memory.ts +0 -162
  498. package/src/web/components/p2p/p2p-tools.ts +0 -315
  499. package/src/web/components/p2p/types.ts +0 -170
  500. package/src/web/components/wallet-viem.mjs +0 -118
  501. package/src/web/design.md +0 -99
  502. package/src/web/icons/apple-touch-icon.png +0 -0
  503. package/src/web/icons/favicon-16x16.png +0 -0
  504. package/src/web/icons/favicon-192x192.png +0 -0
  505. package/src/web/icons/favicon-32x32.png +0 -0
  506. package/src/web/icons/favicon-48x48.png +0 -0
  507. package/src/web/icons/favicon-512x512.png +0 -0
  508. package/src/web/icons/favicon.icns +0 -0
  509. package/src/web/icons/favicon.ico +0 -0
  510. package/src/web/icons/icon.png +0 -0
  511. package/src/web/icons/image.png +0 -0
  512. package/src/web/index.html +0 -373
  513. package/src/web/iroh-delegate-transport.ts +0 -139
  514. package/src/web/manifest.json +0 -21
  515. package/src/web/server.ts +0 -5731
  516. package/src/web/style.css +0 -4737
  517. package/src/web/ui/message-renderer.ts +0 -540
  518. package/src/web/ui/step-timeline.ts +0 -394
  519. package/staging/auto-evolve/clean-001/.review-verdict +0 -9
  520. package/staging/auto-evolve/clean-001/clean-001.patch +0 -14
  521. package/staging/auto-evolve/e2e-001/.patch-id +0 -1
  522. package/staging/auto-evolve/e2e-001/.review-verdict +0 -12
  523. package/staging/auto-evolve/e2e-001/e2e-001.patch +0 -11
  524. package/staging/auto-evolve/test-bad/.review-verdict +0 -12
  525. package/staging/auto-evolve/test-bad/test-bad.patch +0 -11
  526. package/test-results/.last-run.json +0 -6
  527. 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
  528. package/tsconfig.cli.json +0 -16
  529. package/tsconfig.electron.json +0 -20
  530. package/tsconfig.json +0 -18
@@ -1,283 +0,0 @@
1
- /**
2
- * DaemonManager - 守护进程管理器
3
- * 支持自动重启、日志轮转、PID 管理
4
- */
5
-
6
- import * as fs from 'fs/promises';
7
- import * as path from 'path';
8
- import type { DaemonConfig } from './types.js';
9
-
10
- export interface DaemonState {
11
- pid: number;
12
- startedAt: number;
13
- restartCount: number;
14
- lastRestartAt?: number;
15
- lastError?: string;
16
- }
17
-
18
- export class DaemonManager {
19
- private config: Required<DaemonConfig>;
20
- private state: DaemonState | null = null;
21
- private stopRequested: boolean = false;
22
- private isChildProcess: boolean = false;
23
-
24
- constructor(config: Partial<DaemonConfig> = {}) {
25
- this.config = {
26
- maxRestarts: config.maxRestarts || 5,
27
- restartDelayMs: config.restartDelayMs || 5000,
28
- logFile: config.logFile || path.join(process.env.HOME || '/tmp', '.bolloon', 'daemon.log'),
29
- pidFile: config.pidFile || path.join(process.env.HOME || '/tmp', '.bolloon', 'daemon.pid')
30
- };
31
- this.isChildProcess = process.env.BOLLOON_DAEMON_CHILD === '1';
32
- }
33
-
34
- /**
35
- * 获取当前守护进程状态
36
- */
37
- async getState(): Promise<DaemonState | null> {
38
- try {
39
- const pidData = await fs.readFile(this.config.pidFile, 'utf-8');
40
- const pid = parseInt(pidData.trim(), 10);
41
-
42
- if (isNaN(pid)) return null;
43
-
44
- // 检查进程是否仍在运行
45
- try {
46
- process.kill(pid, 0); // Signal 0 只是检查进程是否存在
47
- return { ...this.state!, pid };
48
- } catch {
49
- // 进程不存在
50
- return null;
51
- }
52
- } catch {
53
- return null;
54
- }
55
- }
56
-
57
- /**
58
- * 检查是否已有守护进程在运行
59
- */
60
- async isRunning(): Promise<boolean> {
61
- const state = await this.getState();
62
- return state !== null;
63
- }
64
-
65
- /**
66
- * 保存 PID 文件
67
- */
68
- private async savePid(): Promise<void> {
69
- await fs.mkdir(path.dirname(this.config.pidFile), { recursive: true });
70
- await fs.writeFile(this.config.pidFile, String(process.pid));
71
- console.log(`[Daemon] PID saved: ${process.pid}`);
72
- }
73
-
74
- /**
75
- * 删除 PID 文件
76
- */
77
- async clearPid(): Promise<void> {
78
- try {
79
- await fs.unlink(this.config.pidFile);
80
- } catch {
81
- // 忽略删除失败
82
- }
83
- }
84
-
85
- /**
86
- * 写入日志
87
- */
88
- private async writeLog(message: string): Promise<void> {
89
- if (!this.config.logFile) return;
90
-
91
- try {
92
- await fs.mkdir(path.dirname(this.config.logFile), { recursive: true });
93
- const timestamp = new Date().toISOString();
94
- await fs.appendFile(this.config.logFile, `[${timestamp}] ${message}\n`);
95
- } catch {
96
- // 忽略日志写入失败
97
- }
98
- }
99
-
100
- /**
101
- * 启动主进程(父进程调用)
102
- */
103
- async spawn(processArgv: string[] = process.argv): Promise<void> {
104
- // 检查是否已在运行
105
- if (await this.isRunning()) {
106
- console.log('[Daemon] Already running, pid:', (await this.getState())?.pid);
107
- return;
108
- }
109
-
110
- this.state = {
111
- pid: process.pid,
112
- startedAt: Date.now(),
113
- restartCount: 0
114
- };
115
-
116
- await this.savePid();
117
- await this.writeLog('Daemon started');
118
-
119
- // 设置优雅退出
120
- this.setupGracefulShutdown();
121
-
122
- // 注册信号处理
123
- this.setupSignalHandlers();
124
-
125
- console.log('[Daemon] Manager initialized');
126
- }
127
-
128
- /**
129
- * 启动子进程并管理其生命周期
130
- */
131
- async runWithAutoRestart(childArgs: string[]): Promise<void> {
132
- if (!this.isChildProcess) {
133
- // 父进程:启动子进程
134
- await this.runChildProcess(childArgs);
135
- return;
136
- }
137
-
138
- // 子进程:正常运行主程序
139
- console.log('[Daemon] Running as child process');
140
- }
141
-
142
- /**
143
- * 启动子进程
144
- */
145
- private async runChildProcess(childArgs: string[]): Promise<void> {
146
- const { spawn } = await import('child_process');
147
- let consecutiveFailures = 0;
148
-
149
- while (!this.stopRequested && consecutiveFailures < this.config.maxRestarts) {
150
- console.log(`[Daemon] Spawning child process (attempt ${consecutiveFailures + 1}/${this.config.maxRestarts})`);
151
-
152
- const child = spawn(process.execPath, childArgs, {
153
- stdio: 'inherit',
154
- env: { ...process.env, BOLLOON_DAEMON_CHILD: '1' }
155
- });
156
-
157
- child.on('exit', async (code, signal) => {
158
- const reason = signal || `exit code ${code}`;
159
- console.log(`[Daemon] Child exited: ${reason}`);
160
-
161
- if (this.stopRequested) {
162
- console.log('[Daemon] Stop requested, not restarting');
163
- await this.clearPid();
164
- process.exit(0);
165
- }
166
-
167
- consecutiveFailures++;
168
- this.state = {
169
- ...this.state!,
170
- restartCount: consecutiveFailures,
171
- lastRestartAt: Date.now(),
172
- lastError: reason
173
- };
174
-
175
- if (consecutiveFailures < this.config.maxRestarts) {
176
- console.log(`[Daemon] Restarting in ${this.config.restartDelayMs}ms...`);
177
- await this.writeLog(`Child exited ${reason}, restarting (${consecutiveFailures}/${this.config.maxRestarts})`);
178
-
179
- await new Promise(resolve => setTimeout(resolve, this.config.restartDelayMs));
180
- // 继续 while 循环,重启子进程
181
- } else {
182
- console.error('[Daemon] Max restarts reached, giving up');
183
- await this.writeLog(`Max restarts reached (${this.config.maxRestarts})`);
184
- await this.clearPid();
185
- process.exit(1);
186
- }
187
- });
188
-
189
- child.on('error', async (err) => {
190
- console.error('[Daemon] Child process error:', err.message);
191
- await this.writeLog(`Child error: ${err.message}`);
192
- });
193
-
194
- // 等待子进程退出
195
- await new Promise<void>((resolve) => {
196
- child.on('exit', () => resolve());
197
- });
198
- }
199
- }
200
-
201
- /**
202
- * 设置优雅退出
203
- */
204
- private setupGracefulShutdown(): void {
205
- let isShuttingDown = false;
206
-
207
- const shutdown = async () => {
208
- if (isShuttingDown) return;
209
- isShuttingDown = true;
210
-
211
- console.log('[Daemon] Graceful shutdown...');
212
- await this.writeLog('Graceful shutdown');
213
- this.stopRequested = true;
214
-
215
- await this.clearPid();
216
- process.exit(0);
217
- };
218
-
219
- process.on('SIGTERM', shutdown);
220
- process.on('SIGINT', shutdown);
221
- process.on('uncaughtException', async (err) => {
222
- console.error('[Daemon] Uncaught exception:', err);
223
- await this.writeLog(`Uncaught exception: ${err.message}`);
224
- await shutdown();
225
- });
226
- }
227
-
228
- /**
229
- * 设置信号处理
230
- */
231
- private setupSignalHandlers(): void {
232
- process.on('SIGHUP', () => {
233
- console.log('[Daemon] Received SIGHUP, reloading...');
234
- // 可以实现配置重载逻辑
235
- });
236
- }
237
-
238
- /**
239
- * 请求停止守护进程
240
- */
241
- async stop(): Promise<void> {
242
- const state = await this.getState();
243
- if (state) {
244
- console.log(`[Daemon] Sending SIGTERM to pid ${state.pid}`);
245
- try {
246
- process.kill(state.pid, 'SIGTERM');
247
- } catch {
248
- console.log('[Daemon] Process not found, clearing PID');
249
- }
250
- }
251
- await this.clearPid();
252
- this.stopRequested = true;
253
- }
254
-
255
- /**
256
- * 获取重启次数
257
- */
258
- async getRestartCount(): Promise<number> {
259
- return this.state?.restartCount || 0;
260
- }
261
-
262
- /**
263
- * 检查是否可以继续重启
264
- */
265
- canRestart(): boolean {
266
- return (this.state?.restartCount || 0) < this.config.maxRestarts;
267
- }
268
- }
269
-
270
- // 全局实例
271
- let daemonManagerInstance: DaemonManager | null = null;
272
-
273
- export function getDaemonManager(): DaemonManager {
274
- if (!daemonManagerInstance) {
275
- daemonManagerInstance = new DaemonManager();
276
- }
277
- return daemonManagerInstance;
278
- }
279
-
280
- export function createDaemonManager(config?: Partial<DaemonConfig>): DaemonManager {
281
- daemonManagerInstance = new DaemonManager(config);
282
- return daemonManagerInstance;
283
- }
@@ -1,317 +0,0 @@
1
- /**
2
- * HealthMonitor - 健康检查核心
3
- * 监控 P2P、Iroh、LLM、内存等关键指标
4
- */
5
-
6
- import type { HealthStatus, HealthCheckResult, HealthCheckProvider } from './types.js';
7
- import { getMinimax } from '../constraints/index.js';
8
-
9
- export class HealthMonitor implements HealthCheckProvider {
10
- private lastHeartbeatTime: number = Date.now();
11
- private checkIntervalId: ReturnType<typeof setInterval> | null = null;
12
- private onStatusChange?: (status: HealthStatus) => void;
13
-
14
- constructor(private config: {
15
- checkIntervalMs?: number;
16
- onStatusChange?: (status: HealthStatus) => void;
17
- } = {}) {
18
- this.onStatusChange = config.onStatusChange;
19
- }
20
-
21
- /**
22
- * 执行完整健康检查
23
- */
24
- async check(): Promise<HealthStatus> {
25
- const checks: HealthStatus['checks'] = {
26
- p2p: await this.checkP2P(),
27
- iroh: await this.checkIroh(),
28
- llm: await this.checkLLM(),
29
- memory: await this.checkMemory(),
30
- heartbeat: await this.checkHeartbeat()
31
- };
32
-
33
- // 计算整体状态
34
- const errors = Object.values(checks).filter(c => c.status === 'error').length;
35
- let status: HealthStatus['status'] = 'healthy';
36
- if (errors >= 3) {
37
- status = 'unhealthy';
38
- } else if (errors >= 1) {
39
- status = 'degraded';
40
- }
41
-
42
- const healthStatus: HealthStatus = {
43
- status,
44
- timestamp: new Date().toISOString(),
45
- uptime_seconds: process.uptime(),
46
- checks,
47
- recommendations: this.generateRecommendations(checks)
48
- };
49
-
50
- this.onStatusChange?.(healthStatus);
51
- return healthStatus;
52
- }
53
-
54
- /**
55
- * 检查 P2P 连接状态
56
- */
57
- async checkP2P(): Promise<HealthCheckResult> {
58
- const start = Date.now();
59
- try {
60
- // 从全局状态获取 HyperswarmCommunicator
61
- const comm = (global as any).hyperswarmComm;
62
- if (!comm) {
63
- return { status: 'ok', message: 'P2P not initialized yet', latency_ms: Date.now() - start };
64
- }
65
-
66
- const connections = comm.getConnections?.() || [];
67
- return {
68
- status: 'ok',
69
- message: `Connected to ${connections.length} peers`,
70
- details: { peer_count: connections.length },
71
- latency_ms: Date.now() - start
72
- };
73
- } catch (err: any) {
74
- return { status: 'error', message: err.message, latency_ms: Date.now() - start };
75
- }
76
- }
77
-
78
- /**
79
- * 检查 Iroh 节点状态
80
- */
81
- async checkIroh(): Promise<HealthCheckResult> {
82
- const start = Date.now();
83
- try {
84
- const { irohTransport } = await import('../network/iroh-transport.js');
85
-
86
- if (!irohTransport.isRunning?.()) {
87
- return { status: 'error', message: 'Iroh not running', latency_ms: Date.now() - start };
88
- }
89
-
90
- const nodeId = irohTransport.getNodeId?.() || '';
91
- const peers = irohTransport.getPeers?.() || [];
92
- const pendingOffline = irohTransport.getPendingOfflineCount?.() || 0;
93
-
94
- return {
95
- status: 'ok',
96
- message: `Iroh running, ${peers.length} peers`,
97
- details: {
98
- nodeId: nodeId.substring(0, 16) + '...',
99
- peer_count: peers.length,
100
- pending_offline_messages: pendingOffline
101
- },
102
- latency_ms: Date.now() - start
103
- };
104
- } catch (err: any) {
105
- return { status: 'error', message: err.message, latency_ms: Date.now() - start };
106
- }
107
- }
108
-
109
- /**
110
- * 检查 LLM 连接状态
111
- */
112
- async checkLLM(): Promise<HealthCheckResult> {
113
- const start = Date.now();
114
- try {
115
- const minimax = getMinimax();
116
-
117
- if (!minimax) {
118
- return { status: 'error', message: 'LLM not initialized', latency_ms: Date.now() - start };
119
- }
120
-
121
- // 执行 ping 测试
122
- const latency = await this.pingLLM(minimax);
123
- return {
124
- status: 'ok',
125
- message: 'LLM responsive',
126
- details: { latency_ms: latency },
127
- latency_ms: Date.now() - start
128
- };
129
- } catch (err: any) {
130
- return { status: 'error', message: err.message, latency_ms: Date.now() - start };
131
- }
132
- }
133
-
134
- /**
135
- * 检查内存使用
136
- */
137
- async checkMemory(): Promise<HealthCheckResult> {
138
- const start = Date.now();
139
- try {
140
- const usage = process.memoryUsage();
141
- const heapUsedPercent = (usage.heapUsed / usage.heapTotal) * 100;
142
- const rssPercent = (usage.rss / (1024 * 1024 * 1024)) * 100; // GB
143
-
144
- // 获取系统总内存 (macOS/Linux)
145
- let systemMemoryPercent = 0;
146
- try {
147
- if (process.platform === 'darwin' || process.platform === 'linux') {
148
- const { execSync } = require('child_process');
149
- if (process.platform === 'darwin') {
150
- const total = execSync('sysctl -n hw.memsize').toString().trim();
151
- const free = execSync('vm_stat | grep "Pages free" | awk \'{print $3}\' | tr -d "."');
152
- const pageSize = execSync('sysctl -n vm.pagesize').toString().trim();
153
- systemMemoryPercent = ((parseInt(free) * parseInt(pageSize)) / parseInt(total)) * 100;
154
- }
155
- }
156
- } catch {
157
- // 忽略系统内存获取失败
158
- }
159
-
160
- const isHealthy = heapUsedPercent < 80;
161
-
162
- return {
163
- status: isHealthy ? 'ok' : 'error',
164
- message: isHealthy ? 'Memory usage normal' : 'Memory usage high',
165
- details: {
166
- heap_used_mb: Math.round(usage.heapUsed / 1024 / 1024),
167
- heap_total_mb: Math.round(usage.heapTotal / 1024 / 1024),
168
- heap_used_percent: Math.round(heapUsedPercent * 10) / 10,
169
- rss_mb: Math.round(usage.rss / 1024 / 1024)
170
- },
171
- latency_ms: Date.now() - start
172
- };
173
- } catch (err: any) {
174
- return { status: 'error', message: err.message, latency_ms: Date.now() - start };
175
- }
176
- }
177
-
178
- /**
179
- * 检查心跳活跃度
180
- */
181
- async checkHeartbeat(): Promise<HealthCheckResult> {
182
- const start = Date.now();
183
- const elapsed = Date.now() - this.lastHeartbeatTime;
184
-
185
- // 获取 SocialHeartbeat 状态
186
- const heartbeat = (global as any).socialHeartbeat;
187
- let agentsCount = 0;
188
- let antColonyEnabled = false;
189
-
190
- if (heartbeat) {
191
- const agents = heartbeat.getDiscoveredAgents?.();
192
- agentsCount = agents?.length || 0;
193
- antColonyEnabled = heartbeat.isAntColonyEnabled?.() || false;
194
- }
195
-
196
- return {
197
- status: elapsed < 60000 ? 'ok' : 'error',
198
- message: elapsed < 60000
199
- ? `Heartbeat active ${Math.round(elapsed / 1000)}s ago`
200
- : 'Heartbeat inactive for > 60s',
201
- details: {
202
- last_heartbeat_ms: elapsed,
203
- discovered_agents: agentsCount,
204
- ant_colony_enabled: antColonyEnabled
205
- },
206
- latency_ms: Date.now() - start
207
- };
208
- }
209
-
210
- /**
211
- * 记录心跳活跃
212
- */
213
- recordHeartbeat(): void {
214
- this.lastHeartbeatTime = Date.now();
215
- }
216
-
217
- /**
218
- * 获取当前状态(不执行检查)
219
- */
220
- getQuickStatus(): { status: string; lastHeartbeat: number; memoryUsage: number } {
221
- const usage = process.memoryUsage();
222
- return {
223
- status: 'active',
224
- lastHeartbeat: this.lastHeartbeatTime,
225
- memoryUsage: Math.round((usage.heapUsed / usage.heapTotal) * 100)
226
- };
227
- }
228
-
229
- /**
230
- * 生成健康建议
231
- */
232
- private generateRecommendations(checks: HealthStatus['checks']): string[] {
233
- const recommendations: string[] = [];
234
-
235
- if (checks.p2p.status === 'error') {
236
- recommendations.push('P2P 连接失败,建议检查网络');
237
- }
238
- if (checks.iroh.status === 'error') {
239
- recommendations.push('Iroh 节点未运行,消息可能无法发送');
240
- }
241
- if (checks.llm.status === 'error') {
242
- recommendations.push('LLM 连接失败,检查 API 密钥配置');
243
- }
244
- if (checks.memory.status === 'error') {
245
- recommendations.push('内存使用率过高,考虑重启服务');
246
- }
247
- if (checks.heartbeat.status === 'error') {
248
- recommendations.push('心跳长时间未活跃,检查系统是否卡死');
249
- }
250
-
251
- return recommendations;
252
- }
253
-
254
- /**
255
- * Ping LLM 测试响应
256
- */
257
- private async pingLLM(minimax: any): Promise<number> {
258
- const start = Date.now();
259
- try {
260
- // 2026-06-15: signal 位置正确传 undefined (chat signature 是 (message, context?, signal?))
261
- // 之前传 { maxTokens: 1 } 被当 signal, Node 22+ undici 强类型 AbortSignal 校验 throw
262
- if (minimax.chat) {
263
- await minimax.chat('ping', 'test', undefined);
264
- } else if (minimax.ping) {
265
- await minimax.ping();
266
- }
267
- return Date.now() - start;
268
- } catch {
269
- // 如果 ping 失败,返回一个较大的值但不是错误
270
- return Date.now() - start;
271
- }
272
- }
273
-
274
- /**
275
- * 开始定期健康检查
276
- */
277
- startPeriodicCheck(intervalMs: number = 60000, callback?: (status: HealthStatus) => void): void {
278
- if (this.checkIntervalId) {
279
- clearInterval(this.checkIntervalId);
280
- }
281
-
282
- const checkFn = async () => {
283
- const status = await this.check();
284
- callback?.(status);
285
- this.onStatusChange?.(status);
286
- };
287
-
288
- this.checkIntervalId = setInterval(checkFn, intervalMs);
289
- // 立即执行一次
290
- checkFn();
291
- }
292
-
293
- /**
294
- * 停止定期检查
295
- */
296
- stopPeriodicCheck(): void {
297
- if (this.checkIntervalId) {
298
- clearInterval(this.checkIntervalId);
299
- this.checkIntervalId = null;
300
- }
301
- }
302
- }
303
-
304
- // 全局实例
305
- let healthMonitorInstance: HealthMonitor | null = null;
306
-
307
- export function getHealthMonitor(): HealthMonitor {
308
- if (!healthMonitorInstance) {
309
- healthMonitorInstance = new HealthMonitor();
310
- }
311
- return healthMonitorInstance;
312
- }
313
-
314
- export function createHealthMonitor(config?: { onStatusChange?: (status: HealthStatus) => void }): HealthMonitor {
315
- healthMonitorInstance = new HealthMonitor(config);
316
- return healthMonitorInstance;
317
- }