@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,199 +0,0 @@
1
- import { irohTransport } from './iroh-transport.js';
2
- import { p2pNetwork, type PersistentPeerInfo } from './p2p.js';
3
-
4
- export type TransportType = 'hyperswarm' | 'iroh' | 'libp2p';
5
- export type MessagePriority = 'urgent' | 'normal' | 'bulk';
6
-
7
- export interface HybridMessage {
8
- type: string;
9
- payload: Uint8Array;
10
- from: string;
11
- transport?: TransportType;
12
- }
13
-
14
- export type HybridMessageHandler = (msg: HybridMessage) => void;
15
-
16
- export interface TransportConfig {
17
- preferIrohForLarge: boolean;
18
- largeThresholdBytes: number;
19
- enableRelay: boolean;
20
- }
21
-
22
- const DEFAULT_CONFIG: TransportConfig = {
23
- preferIrohForLarge: true,
24
- largeThresholdBytes: 64 * 1024,
25
- enableRelay: true,
26
- };
27
-
28
- export class HybridMessenger {
29
- private messageHandlers: Map<string, HybridMessageHandler> = new Map();
30
- private wildcardHandler: HybridMessageHandler | null = null;
31
- private config: TransportConfig;
32
- private irohEnabled: boolean = true;
33
-
34
- constructor(config: Partial<TransportConfig> = {}) {
35
- this.config = { ...DEFAULT_CONFIG, ...config };
36
- }
37
-
38
- private selectTransport(
39
- type: string,
40
- payloadSize: number,
41
- priority: MessagePriority = 'normal'
42
- ): TransportType {
43
- if (this.irohEnabled && this.shouldUseIroh(type, payloadSize, priority)) {
44
- return 'iroh';
45
- }
46
-
47
- if (priority === 'urgent' || type === 'relay') {
48
- return 'libp2p';
49
- }
50
-
51
- return 'hyperswarm';
52
- }
53
-
54
- private shouldUseIroh(
55
- type: string,
56
- payloadSize: number,
57
- priority: MessagePriority
58
- ): boolean {
59
- const bulkTypes = ['blob', 'stream', 'file', 'large-data'];
60
- if (bulkTypes.includes(type) || payloadSize > this.config.largeThresholdBytes) {
61
- return true;
62
- }
63
-
64
- if (priority === 'bulk' && payloadSize > 1024) {
65
- return true;
66
- }
67
-
68
- return false;
69
- }
70
-
71
- async sendMessage(
72
- targetId: string,
73
- type: string,
74
- payload: string | Uint8Array,
75
- options: {
76
- priority?: MessagePriority;
77
- preferTransport?: TransportType;
78
- relayAddr?: string;
79
- } = {}
80
- ): Promise<boolean> {
81
- const { priority = 'normal', preferTransport, relayAddr } = options;
82
-
83
- const payloadBytes = typeof payload === 'string'
84
- ? new TextEncoder().encode(payload)
85
- : payload;
86
-
87
- const transport = preferTransport || this.selectTransport(type, payloadBytes.length, priority);
88
-
89
- console.log(`[HybridMessenger] Sending "${type}" (${payloadBytes.length} bytes) via ${transport}`);
90
-
91
- switch (transport) {
92
- case 'iroh':
93
- return this.sendViaIroh(targetId, type, payloadBytes);
94
-
95
- case 'libp2p':
96
- return this.sendViaLibp2p(targetId, type, payloadBytes, relayAddr);
97
-
98
- case 'hyperswarm':
99
- default:
100
- return this.sendViaHyperswarm(targetId, type, payloadBytes);
101
- }
102
- }
103
-
104
- private async sendViaIroh(targetId: string, type: string, payload: Uint8Array): Promise<boolean> {
105
- try {
106
- return await irohTransport.sendMessage(targetId, type, payload);
107
- } catch (e) {
108
- console.warn('[HybridMessenger] iroh send failed:', e);
109
- return false;
110
- }
111
- }
112
-
113
- private async sendViaLibp2p(
114
- targetId: string,
115
- type: string,
116
- payload: Uint8Array,
117
- relayAddr?: string
118
- ): Promise<boolean> {
119
- try {
120
- await p2pNetwork.sendMessage(targetId, type, new TextDecoder().decode(payload));
121
- return true;
122
- } catch (e) {
123
- console.warn('[HybridMessenger] libp2p send failed:', e);
124
- return false;
125
- }
126
- }
127
-
128
- private async sendViaHyperswarm(targetId: string, type: string, payload: Uint8Array): Promise<boolean> {
129
- try {
130
- await p2pNetwork.sendMessage(targetId, type, new TextDecoder().decode(payload));
131
- return true;
132
- } catch (e) {
133
- console.warn('[HybridMessenger] Hyperswarm send failed:', e);
134
- return false;
135
- }
136
- }
137
-
138
- async broadcast(
139
- type: string,
140
- payload: string | Uint8Array,
141
- options: {
142
- priority?: MessagePriority;
143
- transport?: TransportType;
144
- } = {}
145
- ): Promise<void> {
146
- const { priority = 'normal', transport } = options;
147
-
148
- const payloadBytes = typeof payload === 'string'
149
- ? new TextEncoder().encode(payload)
150
- : payload;
151
-
152
- const selectedTransport = transport || this.selectTransport(type, payloadBytes.length, priority);
153
-
154
- if (selectedTransport === 'iroh') {
155
- await irohTransport.broadcast(type, payloadBytes);
156
- } else {
157
- await p2pNetwork.broadcast(type, new TextDecoder().decode(payloadBytes));
158
- }
159
- }
160
-
161
- onMessage(type: string, handler: HybridMessageHandler): void {
162
- this.messageHandlers.set(type, handler);
163
- }
164
-
165
- onWildcard(handler: HybridMessageHandler): void {
166
- this.wildcardHandler = handler;
167
- }
168
-
169
- dispatchMessage(msg: HybridMessage): void {
170
- const handler = this.messageHandlers.get(msg.type);
171
- if (handler) {
172
- handler(msg);
173
- } else if (this.wildcardHandler) {
174
- this.wildcardHandler(msg);
175
- }
176
- }
177
-
178
- setIrohEnabled(enabled: boolean): void {
179
- this.irohEnabled = enabled;
180
- }
181
-
182
- isIrohEnabled(): boolean {
183
- return this.irohEnabled;
184
- }
185
-
186
- getConfig(): TransportConfig {
187
- return { ...this.config };
188
- }
189
-
190
- setLargeThreshold(bytes: number): void {
191
- this.config.largeThresholdBytes = bytes;
192
- }
193
-
194
- setPreferIrohForLarge(enabled: boolean): void {
195
- this.config.preferIrohForLarge = enabled;
196
- }
197
- }
198
-
199
- export const hybridMessenger = new HybridMessenger();
@@ -1,57 +0,0 @@
1
- import { AgentAuthManager, KeyManager } from '@diap/sdk';
2
- import { irohTransport } from './iroh-transport.js';
3
-
4
- export async function bootstrapIroh(
5
- auth: AgentAuthManager,
6
- keyPair: Awaited<ReturnType<typeof KeyManager.generate>>,
7
- agentName: string
8
- ): Promise<string | null> {
9
- console.log('[Iroh] Starting iroh transport...');
10
-
11
- const node = await irohTransport.start();
12
- const nodeId = node.nodeId;
13
- console.log(`[Iroh] Node ID: ${nodeId}`);
14
-
15
- const services = [
16
- { serviceType: 'iroh', endpoint: nodeId },
17
- { serviceType: 'iroh-quic', endpoint: `iroh://${nodeId}` },
18
- ];
19
-
20
- try {
21
- const result = await auth.registerAgent(
22
- { name: agentName, services: services as any } as any,
23
- keyPair,
24
- nodeId
25
- );
26
- console.log(`[Iroh] Registered with DIAP: DID=${result.did.substring(0, 20)}...`);
27
- } catch (e) {
28
- console.warn('[Iroh] DIAP registration failed:', e);
29
- }
30
-
31
- irohTransport.onMessage('task', async (msg) => {
32
- console.log(`[Iroh] Received task from ${msg.from}: ${new TextDecoder().decode(msg.payload).substring(0, 50)}...`);
33
- });
34
-
35
- irohTransport.onMessage('relay', (msg) => {
36
- console.log(`[Iroh] Relay message from ${msg.from}`);
37
- });
38
-
39
- irohTransport.onMessage('blob', (msg) => {
40
- console.log(`[Iroh] Blob from ${msg.from}: ${msg.payload.length} bytes`);
41
- });
42
-
43
- return nodeId;
44
- }
45
-
46
- export async function connectToIrohPeer(targetNodeId: string, type: string, payload: string): Promise<boolean> {
47
- return irohTransport.sendMessage(targetNodeId, type, new TextEncoder().encode(payload));
48
- }
49
-
50
- export async function requestIrohPeer(targetNodeId: string, type: string, payload: string): Promise<string | null> {
51
- const response = await irohTransport.requestResponse(targetNodeId, type, new TextEncoder().encode(payload));
52
- return response ? new TextDecoder().decode(response) : null;
53
- }
54
-
55
- export function onIrohMessage(type: string, handler: (msg: { type: string; payload: Uint8Array; from: string }) => void): void {
56
- irohTransport.onMessage(type, handler);
57
- }
@@ -1,208 +0,0 @@
1
- import { AgentAuthManager, type AgentInfo, type KeyPair } from '@diap/sdk';
2
- import { irohTransport } from './iroh-transport.js';
3
-
4
- export interface DiscoveredAgent {
5
- did: string;
6
- name: string;
7
- peerId: string;
8
- irohNodeId: string | null;
9
- lastSeen: number;
10
- services: string[];
11
- }
12
-
13
- export interface IrohDiscoveryConfig {
14
- agentAuthManager: AgentAuthManager;
15
- keyPair: KeyPair;
16
- agentName: string;
17
- agentDescription?: string;
18
- agentTags?: string[];
19
- discoveryIntervalMs?: number;
20
- refreshIntervalMs?: number;
21
- }
22
-
23
- export class IrohDiscoveryService {
24
- private config: IrohDiscoveryConfig;
25
- private discoveredAgents: Map<string, DiscoveredAgent> = new Map();
26
- private ownIrohNodeId: string | null = null;
27
- private refreshTimer: ReturnType<typeof setInterval> | null = null;
28
- private discoveryTimer: ReturnType<typeof setInterval> | null = null;
29
- private isRegistered: boolean = false;
30
-
31
- constructor(config: IrohDiscoveryConfig) {
32
- this.config = {
33
- discoveryIntervalMs: 30000,
34
- refreshIntervalMs: 5 * 60 * 1000,
35
- ...config,
36
- };
37
- }
38
-
39
- async start(): Promise<string | null> {
40
- console.log('[IrohDiscovery] Starting...');
41
-
42
- const node = await irohTransport.start();
43
- this.ownIrohNodeId = node.nodeId;
44
- console.log('[IrohDiscovery] Iroh node ID:', this.ownIrohNodeId.substring(0, 16) + '...');
45
-
46
- await this.registerWithDIAP();
47
- this.isRegistered = true;
48
-
49
- this.startRefreshLoop();
50
- this.startDiscoveryLoop();
51
-
52
- return this.ownIrohNodeId;
53
- }
54
-
55
- private async registerWithDIAP(): Promise<void> {
56
- if (!this.ownIrohNodeId) return;
57
-
58
- try {
59
- const services = [
60
- { serviceType: 'iroh', endpoint: this.ownIrohNodeId },
61
- { serviceType: 'iroh-quic', endpoint: `iroh://${this.ownIrohNodeId}` },
62
- ];
63
-
64
- const agentInfo: AgentInfo = {
65
- name: this.config.agentName,
66
- services: services as any,
67
- description: this.config.agentDescription || 'Bolloon agent with iroh P2P',
68
- tags: this.config.agentTags || ['bolloon', 'iroh'],
69
- };
70
-
71
- await this.config.agentAuthManager.registerAgent(
72
- agentInfo,
73
- this.config.keyPair,
74
- this.ownIrohNodeId
75
- );
76
-
77
- console.log('[IrohDiscovery] Registered with DIAP');
78
- } catch (e) {
79
- console.warn('[IrohDiscovery] DIAP registration failed:', e);
80
- }
81
- }
82
-
83
- private startRefreshLoop(): void {
84
- this.refreshTimer = setInterval(async () => {
85
- if (!this.isRegistered) return;
86
- console.log('[IrohDiscovery] Refreshing DIAP registration...');
87
- await this.registerWithDIAP();
88
- }, this.config.refreshIntervalMs!);
89
- }
90
-
91
- private startDiscoveryLoop(): void {
92
- const interval = this.config.discoveryIntervalMs ?? 30000;
93
- this.discoveryTimer = setInterval(async () => {
94
- await this.discoverPeers();
95
- }, interval);
96
-
97
- setTimeout(() => this.discoverPeers(), 2000);
98
- }
99
-
100
- async discoverPeers(): Promise<DiscoveredAgent[]> {
101
- console.log('[IrohDiscovery] Discovering peers...');
102
-
103
- const now = Date.now();
104
- const staleThreshold = 10 * 60 * 1000;
105
-
106
- for (const [did, agent] of this.discoveredAgents) {
107
- if (now - agent.lastSeen > staleThreshold) {
108
- this.discoveredAgents.delete(did);
109
- }
110
- }
111
-
112
- console.log('[IrohDiscovery] Known agents:', this.discoveredAgents.size);
113
- return Array.from(this.discoveredAgents.values());
114
- }
115
-
116
- async discoverViaDIAP(): Promise<DiscoveredAgent[]> {
117
- console.log('[IrohDiscovery] Querying DIAP for agents...');
118
-
119
- const agents: DiscoveredAgent[] = [];
120
-
121
- try {
122
- const ipfsClient = (this.config.agentAuthManager as any).identityManager?.ipfsClient;
123
- if (ipfsClient) {
124
- console.log('[IrohDiscovery] IPFS client available for discovery');
125
- }
126
- } catch (e) {
127
- console.warn('[IrohDiscovery] DIAP discovery error:', e);
128
- }
129
-
130
- return agents;
131
- }
132
-
133
- addDiscoveredAgent(agent: DiscoveredAgent): void {
134
- const existing = this.discoveredAgents.get(agent.did);
135
- this.discoveredAgents.set(agent.did, {
136
- ...agent,
137
- lastSeen: Date.now(),
138
- irohNodeId: agent.irohNodeId || existing?.irohNodeId || null,
139
- });
140
- }
141
-
142
- getDiscoveredAgents(): DiscoveredAgent[] {
143
- return Array.from(this.discoveredAgents.values());
144
- }
145
-
146
- getAgentByDid(did: string): DiscoveredAgent | undefined {
147
- return this.discoveredAgents.get(did);
148
- }
149
-
150
- getAgentsWithIroh(): DiscoveredAgent[] {
151
- return Array.from(this.discoveredAgents.values()).filter(
152
- (a) => a.irohNodeId !== null
153
- );
154
- }
155
-
156
- getOwnIrohNodeId(): string | null {
157
- return this.ownIrohNodeId;
158
- }
159
-
160
- async connectToPeer(nodeId: string): Promise<boolean> {
161
- return irohTransport.connect(nodeId);
162
- }
163
-
164
- async connectToAllIrohPeers(): Promise<void> {
165
- const agents = this.getAgentsWithIroh();
166
- for (const agent of agents) {
167
- if (agent.irohNodeId && agent.irohNodeId !== this.ownIrohNodeId) {
168
- await this.connectToPeer(agent.irohNodeId);
169
- }
170
- }
171
- }
172
-
173
- async shutdown(): Promise<void> {
174
- this.isRegistered = false;
175
-
176
- if (this.refreshTimer) {
177
- clearInterval(this.refreshTimer);
178
- this.refreshTimer = null;
179
- }
180
-
181
- if (this.discoveryTimer) {
182
- clearInterval(this.discoveryTimer);
183
- this.discoveryTimer = null;
184
- }
185
-
186
- this.discoveredAgents.clear();
187
- await irohTransport.shutdown();
188
- console.log('[IrohDiscovery] Shut down');
189
- }
190
- }
191
-
192
- let discoveryInstance: IrohDiscoveryService | null = null;
193
-
194
- export async function startIrohDiscovery(
195
- config: IrohDiscoveryConfig
196
- ): Promise<IrohDiscoveryService> {
197
- if (discoveryInstance) {
198
- return discoveryInstance;
199
- }
200
-
201
- discoveryInstance = new IrohDiscoveryService(config);
202
- await discoveryInstance.start();
203
- return discoveryInstance;
204
- }
205
-
206
- export function getIrohDiscovery(): IrohDiscoveryService | null {
207
- return discoveryInstance;
208
- }
@@ -1,158 +0,0 @@
1
- import { irohTransport, type IrohMessage } from './iroh-transport.js';
2
- import { AgentAuthManager, KeyManager, type AgentInfo, type IdentityRegistration, type KeyPair } from '@diap/sdk';
3
-
4
- export interface IrohDiscoveryResult {
5
- did: string;
6
- name: string;
7
- irohNodeId: string;
8
- lastSeen: number;
9
- }
10
-
11
- export interface IrohIntegrationConfig {
12
- agentAuthManager: AgentAuthManager;
13
- keyPair: KeyPair;
14
- agentName: string;
15
- agentDescription?: string;
16
- agentTags?: string[];
17
- refreshIntervalMs?: number;
18
- discoveryIntervalMs?: number;
19
- }
20
-
21
- export class IrohIntegration {
22
- private config: IrohIntegrationConfig;
23
- private irohNodeId: string | null = null;
24
- private registration: IdentityRegistration | null = null;
25
- private messageHandlers: Map<string, (msg: IrohMessage, from: string) => void> = new Map();
26
- private discoveredPeers: Map<string, IrohDiscoveryResult> = new Map();
27
- private refreshTimer: ReturnType<typeof setInterval> | null = null;
28
- private connectedPeers: Set<string> = new Set();
29
-
30
- constructor(config: IrohIntegrationConfig) {
31
- this.config = {
32
- refreshIntervalMs: 5 * 60 * 1000,
33
- discoveryIntervalMs: 30 * 1000,
34
- ...config,
35
- };
36
- }
37
-
38
- async start(): Promise<string | null> {
39
- try {
40
- console.log('[IrohIntegration] Starting iroh transport...');
41
-
42
- const node = await irohTransport.start();
43
- this.irohNodeId = node.nodeId;
44
- console.log(`[IrohIntegration] Node ID: ${this.irohNodeId}`);
45
-
46
- irohTransport.onMessage('*', (msg) => {
47
- this.dispatchMessage(msg);
48
- });
49
-
50
- await this.registerWithDIAP();
51
- this.startRefreshLoop();
52
-
53
- console.log('[IrohIntegration] Started successfully');
54
- return this.irohNodeId;
55
- } catch (e) {
56
- console.error('[IrohIntegration] Failed to start:', e);
57
- return null;
58
- }
59
- }
60
-
61
- private async registerWithDIAP(): Promise<void> {
62
- if (!this.irohNodeId) {
63
- console.warn('[IrohIntegration] No iroh node ID');
64
- return;
65
- }
66
-
67
- try {
68
- const services = [
69
- { serviceType: 'iroh', endpoint: this.irohNodeId },
70
- { serviceType: 'iroh-quic', endpoint: `iroh://${this.irohNodeId}` },
71
- ];
72
-
73
- const agentInfo: AgentInfo = {
74
- name: this.config.agentName,
75
- services: services as any,
76
- description: this.config.agentDescription || 'Bolloon agent with iroh P2P',
77
- tags: this.config.agentTags || ['bolloon', 'iroh', 'p2p'],
78
- };
79
-
80
- this.registration = await this.config.agentAuthManager.registerAgent(
81
- agentInfo,
82
- this.config.keyPair,
83
- this.irohNodeId
84
- );
85
-
86
- console.log(`[IrohIntegration] DIAP registered: DID=${this.registration.did.substring(0, 20)}...`);
87
- } catch (e) {
88
- console.error('[IrohIntegration] DIAP registration failed:', e);
89
- }
90
- }
91
-
92
- private startRefreshLoop(): void {
93
- this.refreshTimer = setInterval(async () => {
94
- console.log('[IrohIntegration] Refreshing DIAP registration...');
95
- await this.registerWithDIAP();
96
- }, this.config.refreshIntervalMs!);
97
- }
98
-
99
- private dispatchMessage(msg: IrohMessage): void {
100
- const handler = this.messageHandlers.get(msg.type);
101
- if (handler) {
102
- handler(msg, msg.from);
103
- }
104
- }
105
-
106
- onMessage(type: string, handler: (msg: IrohMessage, from: string) => void): void {
107
- this.messageHandlers.set(type, handler);
108
- }
109
-
110
- async sendTo(targetNodeId: string, type: string, payload: Uint8Array): Promise<boolean> {
111
- return irohTransport.sendMessage(targetNodeId, type, payload);
112
- }
113
-
114
- async requestFrom(targetNodeId: string, type: string, payload: Uint8Array): Promise<Uint8Array | null> {
115
- return irohTransport.requestResponse(targetNodeId, type, payload);
116
- }
117
-
118
- getNodeId(): string | null {
119
- return this.irohNodeId;
120
- }
121
-
122
- getRegistration(): IdentityRegistration | null {
123
- return this.registration;
124
- }
125
-
126
- getConnectedPeers(): string[] {
127
- return Array.from(this.connectedPeers);
128
- }
129
-
130
- async shutdown(): Promise<void> {
131
- if (this.refreshTimer) {
132
- clearInterval(this.refreshTimer);
133
- this.refreshTimer = null;
134
- }
135
-
136
- await irohTransport.shutdown();
137
- console.log('[IrohIntegration] Shut down');
138
- }
139
- }
140
-
141
- let integrationInstance: IrohIntegration | null = null;
142
-
143
- export async function initIrohIntegration(
144
- config: IrohIntegrationConfig
145
- ): Promise<IrohIntegration> {
146
- if (integrationInstance) {
147
- console.log('[IrohIntegration] Already initialized');
148
- return integrationInstance;
149
- }
150
-
151
- integrationInstance = new IrohIntegration(config);
152
- await integrationInstance.start();
153
- return integrationInstance;
154
- }
155
-
156
- export function getIrohIntegration(): IrohIntegration | null {
157
- return integrationInstance;
158
- }