@bolloon/bolloon-agent 0.1.0 → 0.1.2

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 (581) hide show
  1. package/bin/bolloon-cli.cjs +157 -0
  2. package/bin/bolloon-daemon.sh +207 -0
  3. package/bin/bolloon.cmd +11 -0
  4. package/dist/agents/constraint-layer.js +10 -15
  5. package/dist/agents/pi-sdk.js +433 -106
  6. package/dist/agents/protocol.js +82 -1
  7. package/dist/agents/subagent-manager.js +2 -2
  8. package/dist/agents/workflow-engine.js +15 -20
  9. package/dist/agents/workflow-pivot-loop.js +541 -0
  10. package/dist/bollharness/src/index.js +5 -0
  11. package/dist/bollharness/src/scripts/checks/check_adr_plan_numbering.js +6 -0
  12. package/dist/bollharness/src/scripts/checks/check_api_types.js +45 -0
  13. package/dist/bollharness/src/scripts/checks/check_artifact_link.js +146 -0
  14. package/dist/bollharness/src/scripts/checks/check_bridge_deps.js +6 -0
  15. package/dist/bollharness/src/scripts/checks/check_bugfix_binding.js +6 -0
  16. package/dist/bollharness/src/scripts/checks/check_bugfix_binding_ci.js +6 -0
  17. package/dist/bollharness/src/scripts/checks/check_doc_file_references.js +6 -0
  18. package/dist/bollharness/src/scripts/checks/check_doc_freshness.js +135 -0
  19. package/dist/bollharness/src/scripts/checks/check_doc_links.js +31 -0
  20. package/dist/bollharness/src/scripts/checks/check_file_existence_claims.js +6 -0
  21. package/dist/bollharness/src/scripts/checks/check_fragment_integrity.js +34 -0
  22. package/dist/bollharness/src/scripts/checks/check_hook_installed.js +63 -0
  23. package/dist/bollharness/src/scripts/checks/check_issue_closure.js +41 -0
  24. package/dist/bollharness/src/scripts/checks/check_mcp_parity.js +6 -0
  25. package/dist/bollharness/src/scripts/checks/check_security.js +48 -0
  26. package/dist/bollharness/src/scripts/checks/check_skill_parity.js +6 -0
  27. package/dist/bollharness/src/scripts/checks/check_versions.js +6 -0
  28. package/dist/bollharness/src/scripts/checks/finding.js +13 -0
  29. package/dist/bollharness/src/scripts/checks/next_decision_number.js +20 -0
  30. package/dist/bollharness/src/scripts/checks/regenerate_magic_docs.js +6 -0
  31. package/dist/bollharness/src/scripts/ci/detect_rebaseline_triggers.js +8 -0
  32. package/dist/bollharness/src/scripts/ci/scan_subprocess_cfg.js +8 -0
  33. package/dist/bollharness/src/scripts/ci/scan_verify_artifacts.js +8 -0
  34. package/dist/bollharness/src/scripts/ci/scan_yaml_schema.js +8 -0
  35. package/dist/bollharness/src/scripts/context_router.js +67 -0
  36. package/dist/bollharness/src/scripts/deploy-guard.js +157 -0
  37. package/dist/bollharness/src/scripts/guard-feedback.js +192 -0
  38. package/dist/bollharness/src/scripts/guard_router.js +158 -0
  39. package/dist/bollharness/src/scripts/hooks/_hook_output.js +6 -0
  40. package/dist/bollharness/src/scripts/hooks/auto-python3.js +6 -0
  41. package/dist/bollharness/src/scripts/hooks/deploy-progress-on-session-end.js +6 -0
  42. package/dist/bollharness/src/scripts/hooks/failure-analyzer.js +6 -0
  43. package/dist/bollharness/src/scripts/hooks/gate-judgment-inject.js +92 -0
  44. package/dist/bollharness/src/scripts/hooks/gate-transition-judgment.js +63 -0
  45. package/dist/bollharness/src/scripts/hooks/inbox-ack.js +6 -0
  46. package/dist/bollharness/src/scripts/hooks/inbox-inject-on-start.js +6 -0
  47. package/dist/bollharness/src/scripts/hooks/inbox-validate.js +6 -0
  48. package/dist/bollharness/src/scripts/hooks/inbox-write-ledger.js +6 -0
  49. package/dist/bollharness/src/scripts/hooks/initializer-agent.js +6 -0
  50. package/dist/bollharness/src/scripts/hooks/loop-detection.js +73 -0
  51. package/dist/bollharness/src/scripts/hooks/owner-guard.js +6 -0
  52. package/dist/bollharness/src/scripts/hooks/precompact.js +6 -0
  53. package/dist/bollharness/src/scripts/hooks/review-agent-gatekeeper.js +6 -0
  54. package/dist/bollharness/src/scripts/hooks/risk-tracker.js +108 -0
  55. package/dist/bollharness/src/scripts/hooks/sanitize-on-read.js +6 -0
  56. package/dist/bollharness/src/scripts/hooks/session-reflection.js +7 -0
  57. package/dist/bollharness/src/scripts/hooks/session-start-magic-docs.js +7 -0
  58. package/dist/bollharness/src/scripts/hooks/session-start-reset-risk.js +7 -0
  59. package/dist/bollharness/src/scripts/hooks/session-start-toolkit-reminder.js +7 -0
  60. package/dist/bollharness/src/scripts/hooks/stop-evaluator.js +157 -0
  61. package/dist/bollharness/src/scripts/hooks/tool-call-counter.js +6 -0
  62. package/dist/bollharness/src/scripts/hooks/trace-analyzer.js +10 -0
  63. package/dist/bollharness/src/scripts/install/install-trust-token.js +7 -0
  64. package/dist/bollharness/src/scripts/install/multi_project_registry.js +9 -0
  65. package/dist/bollharness/src/scripts/install/phase2_auto.js +21 -0
  66. package/dist/bollharness/src/scripts/install/pre_commit_installer.js +6 -0
  67. package/dist/bollharness/src/scripts/install/tier_selector.js +7 -0
  68. package/dist/bollharness/src/scripts/install/transcript_miner.js +7 -0
  69. package/dist/bollharness/src/scripts/lib/claim_patterns.js +10 -0
  70. package/dist/bollharness/src/scripts/lib/sanitize_patterns.js +12 -0
  71. package/dist/bollharness/src/scripts/sanitize.js +6 -0
  72. package/dist/bollharness-integration/channel-judgment-engine.js +530 -0
  73. package/dist/bollharness-integration/context-chain-router.js +383 -0
  74. package/dist/bollharness-integration/context-router-judgment.js +13 -21
  75. package/dist/bollharness-integration/context-router.js +22 -64
  76. package/dist/bollharness-integration/gate-state-machine.js +14 -19
  77. package/dist/bollharness-integration/gate-transition-hooks.js +16 -61
  78. package/dist/bollharness-integration/guard-checker.js +21 -68
  79. package/dist/bollharness-integration/index.js +14 -124
  80. package/dist/bollharness-integration/integration.js +13 -20
  81. package/dist/bollharness-integration/llm-judgment-engine.js +569 -0
  82. package/dist/bollharness-integration/skill-adapter.js +18 -64
  83. package/dist/cli-entry.js +261 -0
  84. package/dist/constraint-runtime/src/commands.js +17 -7
  85. package/dist/constraint-runtime/src/constraint/budget.js +1 -6
  86. package/dist/constraint-runtime/src/constraint/permission.js +1 -6
  87. package/dist/constraint-runtime/src/models.js +1 -3
  88. package/dist/constraint-runtime/src/tools.js +17 -7
  89. package/dist/constraints/index.js +1 -7
  90. package/dist/documents/reader.js +8 -49
  91. package/dist/heartbeat/DaemonManager.js +242 -0
  92. package/dist/heartbeat/HealthMonitor.js +285 -0
  93. package/dist/heartbeat/StartupVerifier.js +205 -0
  94. package/dist/heartbeat/Watchdog.js +168 -0
  95. package/dist/heartbeat/index.js +84 -0
  96. package/dist/heartbeat/types.js +5 -0
  97. package/dist/index.js +381 -28
  98. package/dist/llm/config-store.js +31 -57
  99. package/dist/llm/llm-judgment-client.js +389 -0
  100. package/dist/llm/pi-ai.js +9 -52
  101. package/dist/network/agent-network.js +46 -90
  102. package/dist/network/hybrid-messenger.js +125 -0
  103. package/dist/network/iroh-bootstrap.js +38 -0
  104. package/dist/network/iroh-discovery.js +145 -0
  105. package/dist/network/iroh-integration.js +9 -16
  106. package/dist/network/iroh-transport.js +10 -48
  107. package/dist/network/p2p.js +23 -62
  108. package/dist/network/storage/adapters/json-adapter.js +4 -42
  109. package/dist/network/storage/index.js +147 -0
  110. package/dist/network/storage/types.js +14 -0
  111. package/dist/pi-ecosystem/index.js +233 -0
  112. package/dist/pi-ecosystem-colony/index.js +29 -90
  113. package/dist/pi-ecosystem-goals/index.js +20 -74
  114. package/dist/pi-ecosystem-judgment/decision.js +29 -47
  115. package/dist/pi-ecosystem-judgment/distillation.js +16 -29
  116. package/dist/pi-ecosystem-judgment/human-value-store.js +13 -60
  117. package/dist/pi-ecosystem-judgment/index.js +21 -74
  118. package/dist/pi-ecosystem-judgment/value-injection.js +26 -72
  119. package/dist/pi-ecosystem-mcp/index.js +24 -78
  120. package/dist/pi-ecosystem-subagents/index.js +20 -69
  121. package/dist/social/ant-colony/AdaptiveHeartbeat.js +3 -8
  122. package/dist/social/ant-colony/PheromoneEngine.js +11 -49
  123. package/dist/social/ant-colony/index.js +6 -0
  124. package/dist/social/ant-colony/types.js +4 -8
  125. package/dist/social/channels/ChannelManager.js +8 -46
  126. package/dist/social/channels/DiapChannelBridge.js +9 -47
  127. package/dist/social/channels/InterestMatcher.js +2 -7
  128. package/dist/social/channels/channel-agent-session.js +309 -0
  129. package/dist/social/channels/channel-heartbeat-agent.js +494 -0
  130. package/dist/social/channels/diap-doc-parser.js +204 -0
  131. package/dist/social/channels/harness-workflow-integrator.js +446 -0
  132. package/dist/social/channels/index.js +9 -0
  133. package/dist/social/channels/types.js +3 -7
  134. package/dist/social/global-shared-context.js +6 -47
  135. package/dist/social/heartbeat.js +29 -72
  136. package/dist/social/persona/enhanced-persona.js +299 -0
  137. package/dist/web/client.js +302 -136
  138. package/dist/web/components/p2p/index.js +159 -9
  139. package/dist/web/components/p2p/p2p-connection.js +136 -0
  140. package/dist/web/components/p2p/p2p-manager.js +24 -0
  141. package/dist/web/components/p2p/p2p-store-memory.js +1 -1
  142. package/dist/web/components/p2p/types.js +7 -0
  143. package/dist/web/index.html +5 -0
  144. package/dist/web/style.css +118 -0
  145. package/package.json +12 -6
  146. package/scripts/build-cli.js +206 -0
  147. package/scripts/postinstall.js +153 -0
  148. package/src/agents/pi-sdk.ts +347 -28
  149. package/src/agents/protocol.ts +95 -1
  150. package/src/agents/workflow-pivot-loop.ts +674 -0
  151. package/src/bollharness/scripts/context-fragments/pi-agent-operations.md +34 -0
  152. package/src/cli-entry.ts +304 -0
  153. package/src/heartbeat/DaemonManager.ts +283 -0
  154. package/src/heartbeat/HealthMonitor.ts +316 -0
  155. package/src/heartbeat/StartupVerifier.ts +223 -0
  156. package/src/heartbeat/Watchdog.ts +198 -0
  157. package/src/heartbeat/index.ts +108 -0
  158. package/src/heartbeat/types.ts +82 -0
  159. package/src/llm/config-store.ts +23 -5
  160. package/src/network/iroh-transport.ts +3 -3
  161. package/src/web/client.js +302 -136
  162. package/src/web/components/p2p/P2PModal.tsx +91 -3
  163. package/src/web/components/p2p/index.ts +171 -9
  164. package/src/web/components/p2p/p2p-connection.ts +153 -1
  165. package/src/web/components/p2p/p2p-manager.ts +39 -1
  166. package/src/web/components/p2p/p2p-store-memory.ts +1 -1
  167. package/src/web/components/p2p/p2p-tools.ts +315 -0
  168. package/src/web/components/p2p/types.ts +58 -0
  169. package/src/web/index.html +5 -0
  170. package/src/web/server.ts +353 -36
  171. package/src/web/style.css +118 -0
  172. package/tsconfig.cli.json +16 -0
  173. package/tsconfig.electron.json +1 -1
  174. package/tsconfig.json +1 -2
  175. package/dist/constraint-runtime/tests/agent.test.js +0 -16
  176. package/dist/constraint-runtime/tests/constraint.test.js +0 -41
  177. package/dist/constraint-runtime/tests/skill.test.js +0 -19
  178. package/dist/constraint-runtime/tests/thinking.test.js +0 -22
  179. package/dist/electron-preload.js +0 -15
  180. package/dist/electron-preload.js.map +0 -1
  181. package/dist/electron.js +0 -206
  182. package/dist/electron.js.map +0 -1
  183. package/dist/test/constraint-layer.test.js +0 -164
  184. package/dist/test/global-shared-context.test.js +0 -315
  185. package/dist/test/pi-sdk.test.js +0 -47
  186. package/dist/test/set-persona.test.js +0 -38
  187. package/dist/test/subagent-manager.test.js +0 -276
  188. package/dist/test/workflow-engine.test.js +0 -87
  189. package/dist/web/server.js +0 -1647
  190. package/dist/web/server.js.map +0 -1
  191. package/dist/workflows/collaboration.js +0 -374
  192. package/dist/workflows/index.js +0 -54
  193. package/docs/agent-communication.md +0 -333
  194. package/docs/plans/2026-05-15-document-agent-design.md +0 -479
  195. package/docs/plans/2026-05-15-document-agent-implementation-plan.md +0 -792
  196. package/docs/plans/2026-05-16-chat-ui-design.md +0 -86
  197. package/docs/plans/2026-05-16-constraint-runtime-design.md +0 -106
  198. package/docs/plans/2026-05-16-constraint-runtime-implementation.md +0 -441
  199. package/docs//346/225/260/345/255/246/350/276/205/345/212/251/346/231/272/350/203/275/344/275/223-/346/240/270/345/277/203/346/225/210/346/236/234/345/256/232/344/271/211.md +0 -287
  200. package/src/bollharness/.boll/CLAUDE.md.template +0 -34
  201. package/src/bollharness/.boll/MANIFEST.yaml +0 -213
  202. package/src/bollharness/.boll/active-review-agents/.gitkeep +0 -0
  203. package/src/bollharness/.boll/agents/review-base.yaml +0 -108
  204. package/src/bollharness/.boll/deploy-allowlist.yaml +0 -38
  205. package/src/bollharness/.boll/inbox/schema/message-v1.json +0 -99
  206. package/src/bollharness/.boll/install-staging/.gitkeep +0 -0
  207. package/src/bollharness/.boll/issue-adapter.yaml +0 -31
  208. package/src/bollharness/.boll/plugins/boll-mode-toolkit/contracts/mode-contract.md +0 -85
  209. package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +0 -102
  210. package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/review-contract.yaml +0 -247
  211. package/src/bollharness/.boll/rules/backend-routes.md +0 -31
  212. package/src/bollharness/.boll/rules/closure-semantics.md +0 -30
  213. package/src/bollharness/.boll/rules/env-vars.md +0 -32
  214. package/src/bollharness/.boll/rules/hanis-protocol.md +0 -145
  215. package/src/bollharness/.boll/rules/repo-structure.md +0 -42
  216. package/src/bollharness/.boll/rules/review-agent-isolation.md +0 -73
  217. package/src/bollharness/.boll/rules/source-of-truth.md +0 -33
  218. package/src/bollharness/.boll/settings.json +0 -180
  219. package/src/bollharness/.boll/settings.json.template +0 -31
  220. package/src/bollharness/.boll/skills/arch/SKILL.md +0 -372
  221. package/src/bollharness/.boll/skills/bug-pipeline/SKILL.md +0 -168
  222. package/src/bollharness/.boll/skills/bug-triage/SKILL.md +0 -161
  223. package/src/bollharness/.boll/skills/context-chains/SKILL.md +0 -250
  224. package/src/bollharness/.boll/skills/context-chains/context-chain-index.md +0 -48
  225. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/code_change_extractor.ts +0 -142
  226. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/debugging_extractor.ts +0 -126
  227. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/design_extractor.ts +0 -148
  228. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/planning_extractor.ts +0 -162
  229. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/question_extractor.ts +0 -116
  230. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/review_extractor.ts +0 -136
  231. package/src/bollharness/.boll/skills/crystal-learn/SKILL.md +0 -93
  232. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-0.md +0 -34
  233. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-1.md +0 -34
  234. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-2.md +0 -35
  235. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-3.md +0 -34
  236. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-4.md +0 -43
  237. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-5.md +0 -34
  238. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-6.md +0 -37
  239. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-7.md +0 -46
  240. package/src/bollharness/.boll/skills/guardian-fixer/PROMPT.md +0 -415
  241. package/src/bollharness/.boll/skills/guardian-fixer/SKILL.md +0 -320
  242. package/src/bollharness/.boll/skills/harness-dev/SKILL.md +0 -93
  243. package/src/bollharness/.boll/skills/harness-dev/examples/README.md +0 -227
  244. package/src/bollharness/.boll/skills/harness-dev-handoff/SKILL.md +0 -165
  245. package/src/bollharness/.boll/skills/harness-eng/SKILL.md +0 -110
  246. package/src/bollharness/.boll/skills/harness-eng-test/SKILL.md +0 -79
  247. package/src/bollharness/.boll/skills/harness-lab/SKILL.md +0 -170
  248. package/src/bollharness/.boll/skills/harness-ops/SKILL.md +0 -57
  249. package/src/bollharness/.boll/skills/harness-voice/SKILL.md +0 -183
  250. package/src/bollharness/.boll/skills/judgment/SKILL.md +0 -115
  251. package/src/bollharness/.boll/skills/lead/SKILL.md +0 -245
  252. package/src/bollharness/.boll/skills/lead/install-wow-harness.md +0 -77
  253. package/src/bollharness/.boll/skills/lead/ref-review-sop.md +0 -91
  254. package/src/bollharness/.boll/skills/lead/ref-stages.md +0 -129
  255. package/src/bollharness/.boll/skills/skill-discovery/SKILL.md +0 -169
  256. package/src/bollharness/.boll/skills/task-arch/SKILL.md +0 -106
  257. package/src/bollharness/.boll/skills/toolkit/SKILL.md +0 -57
  258. package/src/bollharness/.boll/tasks/.gitkeep +0 -0
  259. package/src/bollharness/.boll/toolkit-index.yaml +0 -112
  260. package/src/bollharness/.claude/agents/review-base.yaml +0 -108
  261. package/src/bollharness/.claude/plugins/boll-mode-toolkit/.claude-plugin/plugin.json +0 -44
  262. package/src/bollharness/.claude/plugins/boll-review-toolkit/.claude-plugin/plugin.json +0 -24
  263. package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +0 -102
  264. package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/review-contract.yaml +0 -247
  265. package/src/bollharness/.claude/settings.json +0 -157
  266. package/src/bollharness/.claude/skills/arch/SKILL.md +0 -64
  267. package/src/bollharness/.claude/skills/crystal-learn/SKILL.md +0 -93
  268. package/src/bollharness/.claude/skills/guardian-fixer/PROMPT.md +0 -44
  269. package/src/bollharness/.claude/skills/guardian-fixer/SKILL.md +0 -324
  270. package/src/bollharness/.claude/skills/harness-dev/SKILL.md +0 -93
  271. package/src/bollharness/.claude/skills/harness-dev/examples/README.md +0 -17
  272. package/src/bollharness/.claude/skills/harness-dev-handoff/SKILL.md +0 -165
  273. package/src/bollharness/.claude/skills/harness-eng/SKILL.md +0 -183
  274. package/src/bollharness/.claude/skills/harness-eng-test/SKILL.md +0 -57
  275. package/src/bollharness/.claude/skills/harness-ops/SKILL.md +0 -57
  276. package/src/bollharness/.claude/skills/harness-voice/SKILL.md +0 -84
  277. package/src/bollharness/.claude/skills/lead/INDEX.md +0 -28
  278. package/src/bollharness/.claude/skills/lead/SKILL.md +0 -24
  279. package/src/bollharness/.claude/skills/lead/install-wow-harness.md +0 -77
  280. package/src/bollharness/.claude/skills/lead/ref-review-sop.md +0 -48
  281. package/src/bollharness/.claude/skills/lead/ref-stages.md +0 -58
  282. package/src/bollharness/.claude/skills/plan-lock/SKILL.md +0 -74
  283. package/src/bollharness/.claude/skills/skill-discovery/SKILL.md +0 -120
  284. package/src/bollharness/.claude/skills/task-arch/SKILL.md +0 -106
  285. package/src/bollharness/.claude/skills/toolkit/SKILL.md +0 -57
  286. package/src/bollharness/.claude/skills/toolkit/list.sh +0 -92
  287. package/src/bollharness/.githooks/pre-commit +0 -21
  288. package/src/bollharness/.github/workflows/ci.yml +0 -88
  289. package/src/bollharness/docs/decisions/ADR-030-guard-signal-protocol-and-governance-reload.md +0 -1076
  290. package/src/bollharness/docs/decisions/ADR-038-harness-optimization-strategy.md +0 -2039
  291. package/src/bollharness/docs/decisions/ADR-041-codex-claude-code-division-of-labor.md +0 -128
  292. package/src/bollharness/docs/decisions/ADR-H1-crystal-learn-revival.md +0 -188
  293. package/src/bollharness/docs/decisions/ADR-H2-identity-isolation.md +0 -183
  294. package/src/bollharness/docs/decisions/ADR-H3-memory-scope.md +0 -133
  295. package/src/bollharness/docs/decisions/ADR-H4-prompt-governance.md +0 -146
  296. package/src/bollharness/docs/decisions/ADR-H5-gate-quantization.md +0 -212
  297. package/src/bollharness/docs/decisions/ADR-H6-state-file-health.md +0 -211
  298. package/src/bollharness/docs/decisions/ADR-H8-issue-and-doc-compliance.md +0 -202
  299. package/src/bollharness/docs/decisions/ADR-H9-mailbox.md +0 -231
  300. package/src/bollharness/docs/decisions/PLAN-H1-crystal-learn-revival.md +0 -270
  301. package/src/bollharness/docs/decisions/PLAN-H2-identity-isolation.md +0 -291
  302. package/src/bollharness/docs/decisions/PLAN-H3-memory-scope.md +0 -228
  303. package/src/bollharness/docs/decisions/PLAN-H4-prompt-governance.md +0 -227
  304. package/src/bollharness/docs/decisions/PLAN-H5-gate-quantization.md +0 -239
  305. package/src/bollharness/docs/decisions/PLAN-H6-state-file-health.md +0 -325
  306. package/src/bollharness/docs/decisions/PLAN-H8-issue-and-doc-compliance.md +0 -242
  307. package/src/bollharness/docs/decisions/PLAN-H9-mailbox.md +0 -378
  308. package/src/bollharness/docs/launch-article-en.md +0 -276
  309. package/src/bollharness/docs/launch-article-zh.md +0 -305
  310. package/src/bollharness/docs/practice.html +0 -356
  311. package/src/bollharness/docs/practice.md +0 -82
  312. package/src/bollharness/docs/research/round-1/README.md +0 -11
  313. package/src/bollharness/docs/research/round-2/README.md +0 -11
  314. package/src/bollharness/docs/research/round-3/README.md +0 -11
  315. package/src/bollharness/docs/research/round-4/README.md +0 -11
  316. package/src/bollharness/docs/research/round-5/README.md +0 -11
  317. package/src/bollharness/docs/research/round-6/README.md +0 -11
  318. package/src/bollharness/package-lock.json +0 -48
  319. package/src/bollharness/reference/boll-reference/.claude/rules/backend-routes.md +0 -268
  320. package/src/bollharness/reference/boll-reference/.claude/rules/bridge.md +0 -20
  321. package/src/bollharness/reference/boll-reference/.claude/rules/closure-semantics.md +0 -30
  322. package/src/bollharness/reference/boll-reference/.claude/rules/coaching.md +0 -13
  323. package/src/bollharness/reference/boll-reference/.claude/rules/env-vars.md +0 -50
  324. package/src/bollharness/reference/boll-reference/.claude/rules/hackathon.md +0 -12
  325. package/src/bollharness/reference/boll-reference/.claude/rules/repo-structure.md +0 -184
  326. package/src/bollharness/reference/boll-reference/.claude/rules/review-agent-isolation.md +0 -112
  327. package/src/bollharness/reference/boll-reference/.claude/rules/scenes.md +0 -12
  328. package/src/bollharness/reference/boll-reference/.claude/skills/arch/SKILL.md +0 -551
  329. package/src/bollharness/reference/boll-reference/.claude/skills/boll-animation/SKILL.md +0 -26
  330. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/SKILL.md +0 -227
  331. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/agents/openai.yaml +0 -4
  332. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-failure-taxonomy.md +0 -142
  333. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-validation-ladder.md +0 -107
  334. package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal/SKILL.md +0 -893
  335. package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal-learn/SKILL.md +0 -89
  336. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/SKILL.md +0 -93
  337. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/examples/README.md +0 -209
  338. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev-handoff/SKILL.md +0 -165
  339. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng/SKILL.md +0 -110
  340. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-frontend/SKILL.md +0 -203
  341. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-hdc/SKILL.md +0 -27
  342. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-orchestrator/SKILL.md +0 -28
  343. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-prompt/SKILL.md +0 -27
  344. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-test/SKILL.md +0 -79
  345. package/src/bollharness/reference/boll-reference/.claude/skills/boll-lab/SKILL.md +0 -372
  346. package/src/bollharness/reference/boll-reference/.claude/skills/boll-run/SKILL.md +0 -437
  347. package/src/bollharness/reference/boll-reference/.claude/skills/boll-ux-appstore/SKILL.md +0 -27
  348. package/src/bollharness/reference/boll-reference/.claude/skills/boll-voice/SKILL.md +0 -442
  349. package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/PROMPT.md +0 -421
  350. package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/SKILL.md +0 -326
  351. package/src/bollharness/reference/boll-reference/.claude/skills/lead/SKILL.md +0 -155
  352. package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-review-sop.md +0 -91
  353. package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-stages.md +0 -129
  354. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-preview.png +0 -0
  355. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v2.png +0 -0
  356. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v3.png +0 -0
  357. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v4.png +0 -0
  358. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/SKILL.md +0 -425
  359. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-three-checks.md +0 -62
  360. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-wp-templates.md +0 -78
  361. package/src/bollharness/reference/boll-reference/.claude/skills/task-arch/SKILL.md +0 -76
  362. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/SKILL.md +0 -57
  363. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/beads-graph.sh +0 -153
  364. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/SKILL.md +0 -52
  365. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/beads-auto-link.sh +0 -76
  366. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/SKILL.md +0 -50
  367. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/beads-sync-proj.sh +0 -108
  368. package/src/bollharness/reference/boll-reference/docs/architecture/AGENT-PROFILE.md +0 -151
  369. package/src/bollharness/reference/boll-reference/docs/architecture/COST-STRUCTURE.md +0 -56
  370. package/src/bollharness/reference/boll-reference/docs/architecture/INDEX.md +0 -76
  371. package/src/bollharness/reference/boll-reference/docs/architecture/MODULE1-INTENT-FIELD.md +0 -116
  372. package/src/bollharness/reference/boll-reference/docs/architecture/MODULE2-CRYSTALLIZATION.md +0 -200
  373. package/src/bollharness/reference/boll-reference/docs/architecture/PRINCIPLES.md +0 -84
  374. package/src/bollharness/reference/boll-reference/docs/architecture/PROTOCOL-CORE.md +0 -209
  375. package/src/bollharness/reference/boll-reference/docs/architecture/VISION.md +0 -181
  376. package/src/bollharness/reference/boll-reference/docs/architecture/discussions/D-01-MARKET-SCENE-PROTOCOL.md +0 -754
  377. package/src/bollharness/templates/scaffold/.boll/guard/.gitkeep +0 -0
  378. package/src/bollharness/templates/scaffold/.boll/metrics/.gitkeep +0 -0
  379. package/src/bollharness/templates/scaffold/.boll/state/.gitkeep +0 -0
  380. package/src/bollharness/templates/scaffold/docs/INDEX.md +0 -3
  381. package/src/bollharness/templates/scaffold/docs/decisions/ADR_TEMPLATE.md +0 -38
  382. package/src/bollharness/templates/scaffold/docs/decisions/PLAN_TEMPLATE.md +0 -45
  383. package/src/bollharness/templates/scaffold/docs/decisions/tasks/.gitkeep +0 -2
  384. package/src/bollharness/templates/scaffold/docs/issues/.gitkeep +0 -0
  385. package/src/bollharness/templates/scaffold/docs/issues/GUARD_ISSUE_TEMPLATE.md +0 -35
  386. package/src/bollharness/templates/scaffold/docs/issues/ISSUE_TEMPLATE.md +0 -51
  387. package/src/bollharness/tsconfig.json +0 -26
  388. package/src/constraint-runtime/package-lock.json +0 -48
  389. package/src/constraint-runtime/package.json +0 -34
  390. package/src/constraint-runtime/src/_archive_helper.ts +0 -16
  391. package/src/constraint-runtime/src/agent/coordinator.ts +0 -71
  392. package/src/constraint-runtime/src/agent/index.ts +0 -1
  393. package/src/constraint-runtime/src/assistant/index.ts +0 -15
  394. package/src/constraint-runtime/src/bootstrap/index.ts +0 -15
  395. package/src/constraint-runtime/src/bootstrap_graph.ts +0 -17
  396. package/src/constraint-runtime/src/bridge/index.ts +0 -15
  397. package/src/constraint-runtime/src/buddy/index.ts +0 -15
  398. package/src/constraint-runtime/src/cli/index.ts +0 -15
  399. package/src/constraint-runtime/src/command_graph.ts +0 -20
  400. package/src/constraint-runtime/src/commands.ts +0 -83
  401. package/src/constraint-runtime/src/components/index.ts +0 -15
  402. package/src/constraint-runtime/src/constants/index.ts +0 -15
  403. package/src/constraint-runtime/src/constraint/budget.ts +0 -25
  404. package/src/constraint-runtime/src/constraint/index.ts +0 -3
  405. package/src/constraint-runtime/src/constraint/permission.ts +0 -28
  406. package/src/constraint-runtime/src/context.ts +0 -45
  407. package/src/constraint-runtime/src/coordinator/index.ts +0 -15
  408. package/src/constraint-runtime/src/cost_hook.ts +0 -6
  409. package/src/constraint-runtime/src/cost_tracker.ts +0 -9
  410. package/src/constraint-runtime/src/deferred_init.ts +0 -18
  411. package/src/constraint-runtime/src/direct_modes.ts +0 -13
  412. package/src/constraint-runtime/src/dynamic-tool-loader.ts +0 -115
  413. package/src/constraint-runtime/src/entrypoints/index.ts +0 -15
  414. package/src/constraint-runtime/src/execution_registry.ts +0 -41
  415. package/src/constraint-runtime/src/history.ts +0 -16
  416. package/src/constraint-runtime/src/hooks/index.ts +0 -15
  417. package/src/constraint-runtime/src/index.ts +0 -28
  418. package/src/constraint-runtime/src/ink.ts +0 -4
  419. package/src/constraint-runtime/src/keybindings/index.ts +0 -15
  420. package/src/constraint-runtime/src/memdir/index.ts +0 -15
  421. package/src/constraint-runtime/src/migrations/index.ts +0 -15
  422. package/src/constraint-runtime/src/models.ts +0 -49
  423. package/src/constraint-runtime/src/moreright/index.ts +0 -15
  424. package/src/constraint-runtime/src/native_ts/index.ts +0 -15
  425. package/src/constraint-runtime/src/output_styles/index.ts +0 -15
  426. package/src/constraint-runtime/src/parity_audit.ts +0 -23
  427. package/src/constraint-runtime/src/plugins/index.ts +0 -15
  428. package/src/constraint-runtime/src/port_manifest.ts +0 -20
  429. package/src/constraint-runtime/src/prefetch.ts +0 -17
  430. package/src/constraint-runtime/src/query.ts +0 -7
  431. package/src/constraint-runtime/src/reference_data/archive_surface_snapshot.json +0 -63
  432. package/src/constraint-runtime/src/reference_data/commands_snapshot.json +0 -1037
  433. package/src/constraint-runtime/src/reference_data/subsystems/OpenCLI.json +0 -10
  434. package/src/constraint-runtime/src/reference_data/subsystems/PolymarketSDK.json +0 -12
  435. package/src/constraint-runtime/src/reference_data/subsystems/SafeSDK.json +0 -14
  436. package/src/constraint-runtime/src/reference_data/subsystems/assistant.json +0 -8
  437. package/src/constraint-runtime/src/reference_data/subsystems/bootstrap.json +0 -8
  438. package/src/constraint-runtime/src/reference_data/subsystems/bridge.json +0 -32
  439. package/src/constraint-runtime/src/reference_data/subsystems/buddy.json +0 -13
  440. package/src/constraint-runtime/src/reference_data/subsystems/cli.json +0 -26
  441. package/src/constraint-runtime/src/reference_data/subsystems/components.json +0 -32
  442. package/src/constraint-runtime/src/reference_data/subsystems/constants.json +0 -28
  443. package/src/constraint-runtime/src/reference_data/subsystems/coordinator.json +0 -8
  444. package/src/constraint-runtime/src/reference_data/subsystems/entrypoints.json +0 -15
  445. package/src/constraint-runtime/src/reference_data/subsystems/hooks.json +0 -32
  446. package/src/constraint-runtime/src/reference_data/subsystems/keybindings.json +0 -21
  447. package/src/constraint-runtime/src/reference_data/subsystems/memdir.json +0 -15
  448. package/src/constraint-runtime/src/reference_data/subsystems/migrations.json +0 -18
  449. package/src/constraint-runtime/src/reference_data/subsystems/moreright.json +0 -8
  450. package/src/constraint-runtime/src/reference_data/subsystems/native_ts.json +0 -11
  451. package/src/constraint-runtime/src/reference_data/subsystems/outputStyles.json +0 -8
  452. package/src/constraint-runtime/src/reference_data/subsystems/plugins.json +0 -9
  453. package/src/constraint-runtime/src/reference_data/subsystems/remote.json +0 -11
  454. package/src/constraint-runtime/src/reference_data/subsystems/schemas.json +0 -8
  455. package/src/constraint-runtime/src/reference_data/subsystems/screens.json +0 -10
  456. package/src/constraint-runtime/src/reference_data/subsystems/server.json +0 -10
  457. package/src/constraint-runtime/src/reference_data/subsystems/services.json +0 -32
  458. package/src/constraint-runtime/src/reference_data/subsystems/skills.json +0 -27
  459. package/src/constraint-runtime/src/reference_data/subsystems/state.json +0 -13
  460. package/src/constraint-runtime/src/reference_data/subsystems/types.json +0 -18
  461. package/src/constraint-runtime/src/reference_data/subsystems/upstreamproxy.json +0 -9
  462. package/src/constraint-runtime/src/reference_data/subsystems/utils.json +0 -32
  463. package/src/constraint-runtime/src/reference_data/subsystems/vim.json +0 -12
  464. package/src/constraint-runtime/src/reference_data/subsystems/voice.json +0 -8
  465. package/src/constraint-runtime/src/reference_data/tools_snapshot.json +0 -1042
  466. package/src/constraint-runtime/src/remote/index.ts +0 -15
  467. package/src/constraint-runtime/src/remote_runtime.ts +0 -17
  468. package/src/constraint-runtime/src/runtime/index.ts +0 -1
  469. package/src/constraint-runtime/src/runtime/session.ts +0 -42
  470. package/src/constraint-runtime/src/schemas/index.ts +0 -15
  471. package/src/constraint-runtime/src/screens/index.ts +0 -15
  472. package/src/constraint-runtime/src/server/index.ts +0 -15
  473. package/src/constraint-runtime/src/services/index.ts +0 -15
  474. package/src/constraint-runtime/src/session_store.ts +0 -32
  475. package/src/constraint-runtime/src/setup.ts +0 -50
  476. package/src/constraint-runtime/src/skills/index.ts +0 -1
  477. package/src/constraint-runtime/src/skills/skill-registry.ts +0 -40
  478. package/src/constraint-runtime/src/state/index.ts +0 -15
  479. package/src/constraint-runtime/src/system_init.ts +0 -21
  480. package/src/constraint-runtime/src/thinking/engine.ts +0 -61
  481. package/src/constraint-runtime/src/thinking/index.ts +0 -1
  482. package/src/constraint-runtime/src/tool_pool.ts +0 -20
  483. package/src/constraint-runtime/src/tools/OpenCLI/execAdapter.ts +0 -12
  484. package/src/constraint-runtime/src/tools/OpenCLI/listAdapters.ts +0 -12
  485. package/src/constraint-runtime/src/tools/OpenCLI/runCommand.ts +0 -13
  486. package/src/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.ts +0 -10
  487. package/src/constraint-runtime/src/tools/PolymarketSDK/createOrder.ts +0 -13
  488. package/src/constraint-runtime/src/tools/PolymarketSDK/getMarket.ts +0 -14
  489. package/src/constraint-runtime/src/tools/PolymarketSDK/getOrders.ts +0 -10
  490. package/src/constraint-runtime/src/tools/PolymarketSDK/listMarkets.ts +0 -24
  491. package/src/constraint-runtime/src/tools/SafeSDK/confirmTransaction.ts +0 -13
  492. package/src/constraint-runtime/src/tools/SafeSDK/createTransaction.ts +0 -23
  493. package/src/constraint-runtime/src/tools/SafeSDK/deploySafe.ts +0 -12
  494. package/src/constraint-runtime/src/tools/SafeSDK/executeTransaction.ts +0 -12
  495. package/src/constraint-runtime/src/tools/SafeSDK/getBalance.ts +0 -10
  496. package/src/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.ts +0 -10
  497. package/src/constraint-runtime/src/tools/SafeSDK/proposeTransaction.ts +0 -14
  498. package/src/constraint-runtime/src/tools/WalletTools/autoPay.ts +0 -58
  499. package/src/constraint-runtime/src/tools/WalletTools/createWallet.ts +0 -19
  500. package/src/constraint-runtime/src/tools/WalletTools/getBalance.ts +0 -28
  501. package/src/constraint-runtime/src/tools/WalletTools/importWallet.ts +0 -34
  502. package/src/constraint-runtime/src/tools/WalletTools/sendTransaction.ts +0 -50
  503. package/src/constraint-runtime/src/tools/WalletTools/signMessage.ts +0 -23
  504. package/src/constraint-runtime/src/tools/WalletTools/transferToken.ts +0 -49
  505. package/src/constraint-runtime/src/tools.ts +0 -100
  506. package/src/constraint-runtime/src/transcript.ts +0 -23
  507. package/src/constraint-runtime/src/types/index.ts +0 -15
  508. package/src/constraint-runtime/src/upstream_proxy/index.ts +0 -15
  509. package/src/constraint-runtime/src/utils/index.ts +0 -15
  510. package/src/constraint-runtime/src/vim/index.ts +0 -15
  511. package/src/constraint-runtime/src/voice/index.ts +0 -15
  512. package/src/constraint-runtime/tests/agent.test.ts +0 -20
  513. package/src/constraint-runtime/tests/constraint.test.ts +0 -47
  514. package/src/constraint-runtime/tests/skill.test.ts +0 -23
  515. package/src/constraint-runtime/tests/thinking.test.ts +0 -28
  516. package/src/constraint-runtime/tsconfig.json +0 -13
  517. package/src/pi-ecosystem/index.ts +0 -453
  518. package/src/pi-ecosystem-colony/index.ts +0 -482
  519. package/src/pi-ecosystem-goals/index.ts +0 -585
  520. package/src/pi-ecosystem-judgment/decision.ts +0 -431
  521. package/src/pi-ecosystem-judgment/distillation.ts +0 -398
  522. package/src/pi-ecosystem-judgment/human-value-store.ts +0 -580
  523. package/src/pi-ecosystem-judgment/index.ts +0 -678
  524. package/src/pi-ecosystem-judgment/value-injection.ts +0 -744
  525. package/src/pi-ecosystem-mcp/index.ts +0 -427
  526. package/src/pi-ecosystem-subagents/index.ts +0 -408
  527. package/src/test/ai-judgment-test.ts +0 -92
  528. package/src/test/bollharness-integration.test.ts +0 -398
  529. package/src/test/channel-agent-multi-dialogue.ts +0 -265
  530. package/src/test/channel-heartbeat-agent-test.ts +0 -244
  531. package/src/test/constraint-layer.test.ts +0 -191
  532. package/src/test/diap-identity-test.ts +0 -222
  533. package/src/test/diap-quick-test.ts +0 -73
  534. package/src/test/global-shared-context.test.ts +0 -393
  535. package/src/test/harness-judgment-injection.test.ts +0 -353
  536. package/src/test/harness-workflow-integrator-test.ts +0 -285
  537. package/src/test/human-value-store.test.ts +0 -316
  538. package/src/test/hybrid-integration-test.ts +0 -126
  539. package/src/test/hybrid-messenger-verify.ts +0 -68
  540. package/src/test/iroh-bistream-debug.ts +0 -50
  541. package/src/test/iroh-communication.test.ts +0 -81
  542. package/src/test/iroh-debug-test.ts +0 -69
  543. package/src/test/iroh-diap-test.ts +0 -90
  544. package/src/test/iroh-direct-connect.ts +0 -65
  545. package/src/test/iroh-e2e-fixed.ts +0 -106
  546. package/src/test/iroh-e2e-same-process.ts +0 -83
  547. package/src/test/iroh-e2e.ts +0 -83
  548. package/src/test/iroh-final-e2e.ts +0 -84
  549. package/src/test/iroh-relay-test.ts +0 -46
  550. package/src/test/iroh-simple-test.ts +0 -49
  551. package/src/test/iroh-transport-verify.ts +0 -60
  552. package/src/test/iroh-transport.test.ts +0 -47
  553. package/src/test/iroh-two-nodes.ts +0 -87
  554. package/src/test/iroh-verify.ts +0 -55
  555. package/src/test/judgment-decision.test.ts +0 -373
  556. package/src/test/llm-judgment-integration.test.ts +0 -257
  557. package/src/test/p2p-agent-complex-dialogue.ts +0 -490
  558. package/src/test/p2p-agent-dialogue.ts +0 -423
  559. package/src/test/p2p-agent-full-bidirectional.ts +0 -686
  560. package/src/test/p2p-agent-harness-flow.ts +0 -562
  561. package/src/test/p2p-agent-harness-single.ts +0 -175
  562. package/src/test/p2p-ai-dialogue-test.ts +0 -374
  563. package/src/test/p2p-cid-connect-test.ts +0 -245
  564. package/src/test/p2p-connect-receiver.ts +0 -85
  565. package/src/test/p2p-iroh-test.ts +0 -214
  566. package/src/test/p2p-minimal-test.ts +0 -264
  567. package/src/test/p2p-node-1.ts +0 -172
  568. package/src/test/p2p-node-2.ts +0 -172
  569. package/src/test/p2p-server.ts +0 -335
  570. package/src/test/p2p-two-nodes-test.ts +0 -542
  571. package/src/test/pi-sdk.test.ts +0 -47
  572. package/src/test/set-persona.ts +0 -56
  573. package/src/test/simple.test.ts +0 -11
  574. package/src/test/storage-integration.test.ts +0 -191
  575. package/src/test/subagent-manager.test.ts +0 -392
  576. package/src/test/test-gate-flow.test.ts +0 -92
  577. package/src/test/workflow-engine.test.ts +0 -101
  578. package/src/workflows/collaboration.ts +0 -455
  579. package/src/workflows/index.ts +0 -64
  580. package/vitest.config.ts +0 -12
  581. package//346/203/263/346/263/225.md +0 -79
@@ -1,49 +1,8 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.agentMessaging = exports.AgentMessaging = exports.agentRegistry = exports.AgentRegistry = void 0;
37
- exports.initializeAgentNetwork = initializeAgentNetwork;
38
- exports.broadcastOwnAddress = broadcastOwnAddress;
39
- exports.findAndConnectToAgent = findAndConnectToAgent;
40
- exports.sendMessageToAgent = sendMessageToAgent;
41
- exports.sendUnverifiedMessageToAgent = sendUnverifiedMessageToAgent;
42
- const fs = __importStar(require("fs/promises"));
43
- const path = __importStar(require("path"));
44
- const multiaddr_1 = require("@multiformats/multiaddr");
45
- const sdk_1 = require("@diap/sdk");
46
- const p2p_js_1 = require("./p2p.js");
1
+ import * as fs from 'fs/promises';
2
+ import * as path from 'path';
3
+ import { multiaddr as createMultiaddr } from '@multiformats/multiaddr';
4
+ import { KeyManager } from '@diap/sdk';
5
+ import { p2pNetwork } from './p2p.js';
47
6
  const AGENT_REGISTRY_PATH = path.join(process.env.HOME || '/tmp', '.bolloon', 'agent-registry.json');
48
7
  const KEY_PAIR_PATH = path.join(process.env.HOME || '/tmp', '.bolloon', 'keypair.json');
49
8
  const ADDRESS_BROADCAST_INTERVAL = 5 * 60 * 1000;
@@ -51,7 +10,7 @@ const RELAY_RETRY_INTERVAL = 30000;
51
10
  const MAX_RELAY_HOPS = 3;
52
11
  const MESSAGE_TIMESTAMP_TOLERANCE = 24 * 60 * 60 * 1000;
53
12
  const SIGNED_MESSAGE_TYPES = ['task', 'response', 'discovery', 'address_broadcast'];
54
- class AgentRegistry {
13
+ export class AgentRegistry {
55
14
  agents = new Map();
56
15
  registryPath;
57
16
  ownEndpoint = null;
@@ -81,7 +40,7 @@ class AgentRegistry {
81
40
  }
82
41
  catch {
83
42
  console.log(`[Registry] Generating new keypair...`);
84
- const kp = sdk_1.KeyManager.generate();
43
+ const kp = KeyManager.generate();
85
44
  this.keyPair = {
86
45
  privateKey: kp.privateKey,
87
46
  publicKey: kp.publicKey,
@@ -144,7 +103,7 @@ class AgentRegistry {
144
103
  return null;
145
104
  }
146
105
  try {
147
- const signature = await sdk_1.KeyManager.sign(this.keyPair, new TextEncoder().encode(data));
106
+ const signature = await KeyManager.sign(this.keyPair, new TextEncoder().encode(data));
148
107
  return signature;
149
108
  }
150
109
  catch (e) {
@@ -161,7 +120,7 @@ class AgentRegistry {
161
120
  }
162
121
  const publicKey = Buffer.from(agent.publicKey, 'hex');
163
122
  const keyPair = { privateKey: new Uint8Array(32), publicKey, did };
164
- const isValid = await sdk_1.KeyManager.verify(keyPair, new TextEncoder().encode(data), signature);
123
+ const isValid = await KeyManager.verify(keyPair, new TextEncoder().encode(data), signature);
165
124
  if (!isValid) {
166
125
  console.warn(`[Registry] Invalid signature from ${did.substring(0, 20)}`);
167
126
  }
@@ -232,7 +191,7 @@ class AgentRegistry {
232
191
  if (entry && now - entry.lastBroadcast < ADDRESS_BROADCAST_INTERVAL) {
233
192
  return null;
234
193
  }
235
- const relayAddr = p2p_js_1.p2pNetwork.getRelayAddress?.() || null;
194
+ const relayAddr = p2pNetwork.getRelayAddress?.() || null;
236
195
  const broadcastData = JSON.stringify({
237
196
  type: 'address_broadcast',
238
197
  from: this.keyPair.did,
@@ -368,8 +327,8 @@ class AgentRegistry {
368
327
  if (agent.multiaddrs && agent.multiaddrs.length > 0) {
369
328
  for (const addr of agent.multiaddrs) {
370
329
  try {
371
- const ma = (0, multiaddr_1.multiaddr)(addr);
372
- const node = p2p_js_1.p2pNetwork.node;
330
+ const ma = createMultiaddr(addr);
331
+ const node = p2pNetwork.node;
373
332
  if (node) {
374
333
  await node.dial(ma);
375
334
  connected = true;
@@ -385,9 +344,9 @@ class AgentRegistry {
385
344
  if (!connected && agent.relayAddr) {
386
345
  console.log(`[Registry] Trying relay connection to ${agent.name} via ${agent.relayAddr}`);
387
346
  try {
388
- const node = p2p_js_1.p2pNetwork.node;
347
+ const node = p2pNetwork.node;
389
348
  if (node) {
390
- const ma = (0, multiaddr_1.multiaddr)(`${agent.relayAddr}/p2p/${agent.peerId}`);
349
+ const ma = createMultiaddr(`${agent.relayAddr}/p2p/${agent.peerId}`);
391
350
  await node.dial(ma);
392
351
  connected = true;
393
352
  console.log(`[Registry] Relay connection to ${agent.name} established`);
@@ -406,9 +365,9 @@ class AgentRegistry {
406
365
  console.log(`[Registry] Trying to relay via ${relay.name} (${relay.peerId.substring(0, 12)}...)`);
407
366
  const relayAddr = relay.relayAddr || relay.multiaddrs?.[0];
408
367
  if (relayAddr) {
409
- const node = p2p_js_1.p2pNetwork.node;
368
+ const node = p2pNetwork.node;
410
369
  if (node) {
411
- const ma = (0, multiaddr_1.multiaddr)(`${relayAddr}/p2p/${agent.peerId}`);
370
+ const ma = createMultiaddr(`${relayAddr}/p2p/${agent.peerId}`);
412
371
  await node.dial(ma);
413
372
  connected = true;
414
373
  console.log(`[Registry] Connection to ${agent.name} via relay ${relay.name}`);
@@ -423,7 +382,7 @@ class AgentRegistry {
423
382
  }
424
383
  if (connected) {
425
384
  this.updateLastSeen(did);
426
- p2p_js_1.p2pNetwork.addPersistentPeer({
385
+ p2pNetwork.addPersistentPeer({
427
386
  peerId: agent.peerId,
428
387
  multiaddrs: agent.multiaddrs,
429
388
  did: agent.did,
@@ -451,7 +410,7 @@ class AgentRegistry {
451
410
  try {
452
411
  const peerId = targetAgent.peerId;
453
412
  const relayMsg = new TextEncoder().encode(`RELAY:${fromDid}|${hops + 1}|${new TextDecoder().decode(data)}`);
454
- await p2p_js_1.p2pNetwork.sendMessage(peerId, 'relay', new TextDecoder().decode(relayMsg));
413
+ await p2pNetwork.sendMessage(peerId, 'relay', new TextDecoder().decode(relayMsg));
455
414
  return true;
456
415
  }
457
416
  catch (e) {
@@ -470,9 +429,8 @@ class AgentRegistry {
470
429
  };
471
430
  }
472
431
  }
473
- exports.AgentRegistry = AgentRegistry;
474
- exports.agentRegistry = new AgentRegistry();
475
- class AgentMessaging {
432
+ export const agentRegistry = new AgentRegistry();
433
+ export class AgentMessaging {
476
434
  registry;
477
435
  messageHandlers = new Map();
478
436
  constructor(registry) {
@@ -494,7 +452,7 @@ class AgentMessaging {
494
452
  }
495
453
  try {
496
454
  const messageStr = JSON.stringify(signedMsg);
497
- await p2p_js_1.p2pNetwork.sendMessage(agent.peerId, 'signed', messageStr);
455
+ await p2pNetwork.sendMessage(agent.peerId, 'signed', messageStr);
498
456
  return true;
499
457
  }
500
458
  catch (e) {
@@ -510,7 +468,7 @@ class AgentMessaging {
510
468
  }
511
469
  const message = `${type}:${payload}`;
512
470
  try {
513
- await p2p_js_1.p2pNetwork.sendMessage(agent.peerId, type, payload);
471
+ await p2pNetwork.sendMessage(agent.peerId, type, payload);
514
472
  return true;
515
473
  }
516
474
  catch (e) {
@@ -525,7 +483,7 @@ class AgentMessaging {
525
483
  if (agent.did === ownEndpoint?.did)
526
484
  continue;
527
485
  try {
528
- await p2p_js_1.p2pNetwork.sendMessage(agent.peerId, type, payload);
486
+ await p2pNetwork.sendMessage(agent.peerId, type, payload);
529
487
  }
530
488
  catch (e) {
531
489
  console.warn(`[Messaging] Broadcast failed to ${agent.name}:`, e);
@@ -610,36 +568,35 @@ class AgentMessaging {
610
568
  }
611
569
  }
612
570
  }
613
- exports.AgentMessaging = AgentMessaging;
614
- exports.agentMessaging = new AgentMessaging(exports.agentRegistry);
615
- async function initializeAgentNetwork(ownDid, ownName, peerId, multiaddrs) {
616
- await exports.agentRegistry.initialize();
617
- const keyPair = exports.agentRegistry.getKeyPair();
571
+ export const agentMessaging = new AgentMessaging(agentRegistry);
572
+ export async function initializeAgentNetwork(ownDid, ownName, peerId, multiaddrs) {
573
+ await agentRegistry.initialize();
574
+ const keyPair = agentRegistry.getKeyPair();
618
575
  const publicKeyHex = keyPair ? Buffer.from(keyPair.publicKey).toString('hex') : undefined;
619
- exports.agentRegistry.setOwnEndpoint({
576
+ agentRegistry.setOwnEndpoint({
620
577
  did: keyPair?.did || ownDid,
621
578
  name: ownName,
622
579
  peerId,
623
580
  multiaddrs,
624
581
  publicKey: publicKeyHex
625
582
  });
626
- p2p_js_1.p2pNetwork.setOwnDid(keyPair?.did || ownDid);
627
- p2p_js_1.p2pNetwork.onMessage('signed', async (data, from, did) => {
628
- await exports.agentMessaging.dispatchSignedMessage(data, from);
583
+ p2pNetwork.setOwnDid(keyPair?.did || ownDid);
584
+ p2pNetwork.onMessage('signed', async (data, from, did) => {
585
+ await agentMessaging.dispatchSignedMessage(data, from);
629
586
  });
630
- p2p_js_1.p2pNetwork.onMessage('address_broadcast', async (data, from, did) => {
587
+ p2pNetwork.onMessage('address_broadcast', async (data, from, did) => {
631
588
  try {
632
589
  const messageStr = new TextDecoder().decode(data);
633
590
  const broadcast = JSON.parse(messageStr);
634
591
  if (broadcast.type === 'address_broadcast') {
635
- await exports.agentRegistry.handleAddressBroadcast(broadcast);
592
+ await agentRegistry.handleAddressBroadcast(broadcast);
636
593
  }
637
594
  }
638
595
  catch (e) {
639
596
  console.warn(`[AgentNetwork] Failed to handle address broadcast:`, e);
640
597
  }
641
598
  });
642
- p2p_js_1.p2pNetwork.onMessage('relay', (data, from, did) => {
599
+ p2pNetwork.onMessage('relay', (data, from, did) => {
643
600
  try {
644
601
  const relayMsg = new TextDecoder().decode(data);
645
602
  const relayMatch = relayMsg.match(/^RELAY:(.+?)\|(\d+)\|(.+)$/);
@@ -647,7 +604,7 @@ async function initializeAgentNetwork(ownDid, ownName, peerId, multiaddrs) {
647
604
  const [, targetDid, hopsStr, innerData] = relayMatch;
648
605
  const hops = parseInt(hopsStr, 10);
649
606
  if (hops < MAX_RELAY_HOPS) {
650
- exports.agentRegistry.relayMessage(targetDid, new TextEncoder().encode(innerData), did || from, hops);
607
+ agentRegistry.relayMessage(targetDid, new TextEncoder().encode(innerData), did || from, hops);
651
608
  }
652
609
  }
653
610
  }
@@ -655,12 +612,12 @@ async function initializeAgentNetwork(ownDid, ownName, peerId, multiaddrs) {
655
612
  console.warn(`[AgentNetwork] Failed to handle relay:`, e);
656
613
  }
657
614
  });
658
- p2p_js_1.p2pNetwork.onMessage('discovery', async (data, from, did) => {
615
+ p2pNetwork.onMessage('discovery', async (data, from, did) => {
659
616
  try {
660
617
  const messageStr = new TextDecoder().decode(data);
661
618
  const discovery = JSON.parse(messageStr);
662
619
  if (discovery.type === 'discovery') {
663
- const isValid = await exports.agentRegistry.verifySignature(discovery.from, JSON.stringify({ ...discovery, signature: undefined }), Buffer.from(discovery.signature, 'hex'));
620
+ const isValid = await agentRegistry.verifySignature(discovery.from, JSON.stringify({ ...discovery, signature: undefined }), Buffer.from(discovery.signature, 'hex'));
664
621
  if (isValid) {
665
622
  console.log(`[AgentNetwork] Verified discovery from: ${discovery.name}`);
666
623
  }
@@ -672,21 +629,20 @@ async function initializeAgentNetwork(ownDid, ownName, peerId, multiaddrs) {
672
629
  });
673
630
  console.log(`[AgentNetwork] Initialized with DID: ${keyPair?.did.substring(0, 20) || ownDid.substring(0, 20)}...`);
674
631
  }
675
- async function broadcastOwnAddress() {
676
- const broadcast = await exports.agentRegistry.createSignedBroadcast();
632
+ export async function broadcastOwnAddress() {
633
+ const broadcast = await agentRegistry.createSignedBroadcast();
677
634
  if (broadcast) {
678
635
  const data = JSON.stringify(broadcast);
679
- await p2p_js_1.p2pNetwork.broadcast('address_broadcast', data);
636
+ await p2pNetwork.broadcast('address_broadcast', data);
680
637
  console.log(`[AgentNetwork] Broadcast signed address to network`);
681
638
  }
682
639
  }
683
- async function findAndConnectToAgent(did) {
684
- return exports.agentRegistry.connectToAgent(did);
640
+ export async function findAndConnectToAgent(did) {
641
+ return agentRegistry.connectToAgent(did);
685
642
  }
686
- async function sendMessageToAgent(did, type, payload) {
687
- return exports.agentMessaging.sendSignedToAgent(did, type, payload);
643
+ export async function sendMessageToAgent(did, type, payload) {
644
+ return agentMessaging.sendSignedToAgent(did, type, payload);
688
645
  }
689
- async function sendUnverifiedMessageToAgent(did, type, payload) {
690
- return exports.agentMessaging.sendToAgent(did, type, payload);
646
+ export async function sendUnverifiedMessageToAgent(did, type, payload) {
647
+ return agentMessaging.sendToAgent(did, type, payload);
691
648
  }
692
- //# sourceMappingURL=agent-network.js.map
@@ -0,0 +1,125 @@
1
+ import { irohTransport } from './iroh-transport.js';
2
+ import { p2pNetwork } from './p2p.js';
3
+ const DEFAULT_CONFIG = {
4
+ preferIrohForLarge: true,
5
+ largeThresholdBytes: 64 * 1024,
6
+ enableRelay: true,
7
+ };
8
+ export class HybridMessenger {
9
+ messageHandlers = new Map();
10
+ wildcardHandler = null;
11
+ config;
12
+ irohEnabled = true;
13
+ constructor(config = {}) {
14
+ this.config = { ...DEFAULT_CONFIG, ...config };
15
+ }
16
+ selectTransport(type, payloadSize, priority = 'normal') {
17
+ if (this.irohEnabled && this.shouldUseIroh(type, payloadSize, priority)) {
18
+ return 'iroh';
19
+ }
20
+ if (priority === 'urgent' || type === 'relay') {
21
+ return 'libp2p';
22
+ }
23
+ return 'hyperswarm';
24
+ }
25
+ shouldUseIroh(type, payloadSize, priority) {
26
+ const bulkTypes = ['blob', 'stream', 'file', 'large-data'];
27
+ if (bulkTypes.includes(type) || payloadSize > this.config.largeThresholdBytes) {
28
+ return true;
29
+ }
30
+ if (priority === 'bulk' && payloadSize > 1024) {
31
+ return true;
32
+ }
33
+ return false;
34
+ }
35
+ async sendMessage(targetId, type, payload, options = {}) {
36
+ const { priority = 'normal', preferTransport, relayAddr } = options;
37
+ const payloadBytes = typeof payload === 'string'
38
+ ? new TextEncoder().encode(payload)
39
+ : payload;
40
+ const transport = preferTransport || this.selectTransport(type, payloadBytes.length, priority);
41
+ console.log(`[HybridMessenger] Sending "${type}" (${payloadBytes.length} bytes) via ${transport}`);
42
+ switch (transport) {
43
+ case 'iroh':
44
+ return this.sendViaIroh(targetId, type, payloadBytes);
45
+ case 'libp2p':
46
+ return this.sendViaLibp2p(targetId, type, payloadBytes, relayAddr);
47
+ case 'hyperswarm':
48
+ default:
49
+ return this.sendViaHyperswarm(targetId, type, payloadBytes);
50
+ }
51
+ }
52
+ async sendViaIroh(targetId, type, payload) {
53
+ try {
54
+ return await irohTransport.sendMessage(targetId, type, payload);
55
+ }
56
+ catch (e) {
57
+ console.warn('[HybridMessenger] iroh send failed:', e);
58
+ return false;
59
+ }
60
+ }
61
+ async sendViaLibp2p(targetId, type, payload, relayAddr) {
62
+ try {
63
+ await p2pNetwork.sendMessage(targetId, type, new TextDecoder().decode(payload));
64
+ return true;
65
+ }
66
+ catch (e) {
67
+ console.warn('[HybridMessenger] libp2p send failed:', e);
68
+ return false;
69
+ }
70
+ }
71
+ async sendViaHyperswarm(targetId, type, payload) {
72
+ try {
73
+ await p2pNetwork.sendMessage(targetId, type, new TextDecoder().decode(payload));
74
+ return true;
75
+ }
76
+ catch (e) {
77
+ console.warn('[HybridMessenger] Hyperswarm send failed:', e);
78
+ return false;
79
+ }
80
+ }
81
+ async broadcast(type, payload, options = {}) {
82
+ const { priority = 'normal', transport } = options;
83
+ const payloadBytes = typeof payload === 'string'
84
+ ? new TextEncoder().encode(payload)
85
+ : payload;
86
+ const selectedTransport = transport || this.selectTransport(type, payloadBytes.length, priority);
87
+ if (selectedTransport === 'iroh') {
88
+ await irohTransport.broadcast(type, payloadBytes);
89
+ }
90
+ else {
91
+ await p2pNetwork.broadcast(type, new TextDecoder().decode(payloadBytes));
92
+ }
93
+ }
94
+ onMessage(type, handler) {
95
+ this.messageHandlers.set(type, handler);
96
+ }
97
+ onWildcard(handler) {
98
+ this.wildcardHandler = handler;
99
+ }
100
+ dispatchMessage(msg) {
101
+ const handler = this.messageHandlers.get(msg.type);
102
+ if (handler) {
103
+ handler(msg);
104
+ }
105
+ else if (this.wildcardHandler) {
106
+ this.wildcardHandler(msg);
107
+ }
108
+ }
109
+ setIrohEnabled(enabled) {
110
+ this.irohEnabled = enabled;
111
+ }
112
+ isIrohEnabled() {
113
+ return this.irohEnabled;
114
+ }
115
+ getConfig() {
116
+ return { ...this.config };
117
+ }
118
+ setLargeThreshold(bytes) {
119
+ this.config.largeThresholdBytes = bytes;
120
+ }
121
+ setPreferIrohForLarge(enabled) {
122
+ this.config.preferIrohForLarge = enabled;
123
+ }
124
+ }
125
+ export const hybridMessenger = new HybridMessenger();
@@ -0,0 +1,38 @@
1
+ import { irohTransport } from './iroh-transport.js';
2
+ export async function bootstrapIroh(auth, keyPair, agentName) {
3
+ console.log('[Iroh] Starting iroh transport...');
4
+ const node = await irohTransport.start();
5
+ const nodeId = node.nodeId;
6
+ console.log(`[Iroh] Node ID: ${nodeId}`);
7
+ const services = [
8
+ { serviceType: 'iroh', endpoint: nodeId },
9
+ { serviceType: 'iroh-quic', endpoint: `iroh://${nodeId}` },
10
+ ];
11
+ try {
12
+ const result = await auth.registerAgent({ name: agentName, services: services }, keyPair, nodeId);
13
+ console.log(`[Iroh] Registered with DIAP: DID=${result.did.substring(0, 20)}...`);
14
+ }
15
+ catch (e) {
16
+ console.warn('[Iroh] DIAP registration failed:', e);
17
+ }
18
+ irohTransport.onMessage('task', async (msg) => {
19
+ console.log(`[Iroh] Received task from ${msg.from}: ${new TextDecoder().decode(msg.payload).substring(0, 50)}...`);
20
+ });
21
+ irohTransport.onMessage('relay', (msg) => {
22
+ console.log(`[Iroh] Relay message from ${msg.from}`);
23
+ });
24
+ irohTransport.onMessage('blob', (msg) => {
25
+ console.log(`[Iroh] Blob from ${msg.from}: ${msg.payload.length} bytes`);
26
+ });
27
+ return nodeId;
28
+ }
29
+ export async function connectToIrohPeer(targetNodeId, type, payload) {
30
+ return irohTransport.sendMessage(targetNodeId, type, new TextEncoder().encode(payload));
31
+ }
32
+ export async function requestIrohPeer(targetNodeId, type, payload) {
33
+ const response = await irohTransport.requestResponse(targetNodeId, type, new TextEncoder().encode(payload));
34
+ return response ? new TextDecoder().decode(response) : null;
35
+ }
36
+ export function onIrohMessage(type, handler) {
37
+ irohTransport.onMessage(type, handler);
38
+ }
@@ -0,0 +1,145 @@
1
+ import { irohTransport } from './iroh-transport.js';
2
+ export class IrohDiscoveryService {
3
+ config;
4
+ discoveredAgents = new Map();
5
+ ownIrohNodeId = null;
6
+ refreshTimer = null;
7
+ discoveryTimer = null;
8
+ isRegistered = false;
9
+ constructor(config) {
10
+ this.config = {
11
+ discoveryIntervalMs: 30000,
12
+ refreshIntervalMs: 5 * 60 * 1000,
13
+ ...config,
14
+ };
15
+ }
16
+ async start() {
17
+ console.log('[IrohDiscovery] Starting...');
18
+ const node = await irohTransport.start();
19
+ this.ownIrohNodeId = node.nodeId;
20
+ console.log('[IrohDiscovery] Iroh node ID:', this.ownIrohNodeId.substring(0, 16) + '...');
21
+ await this.registerWithDIAP();
22
+ this.isRegistered = true;
23
+ this.startRefreshLoop();
24
+ this.startDiscoveryLoop();
25
+ return this.ownIrohNodeId;
26
+ }
27
+ async registerWithDIAP() {
28
+ if (!this.ownIrohNodeId)
29
+ return;
30
+ try {
31
+ const services = [
32
+ { serviceType: 'iroh', endpoint: this.ownIrohNodeId },
33
+ { serviceType: 'iroh-quic', endpoint: `iroh://${this.ownIrohNodeId}` },
34
+ ];
35
+ const agentInfo = {
36
+ name: this.config.agentName,
37
+ services: services,
38
+ description: this.config.agentDescription || 'Bolloon agent with iroh P2P',
39
+ tags: this.config.agentTags || ['bolloon', 'iroh'],
40
+ };
41
+ await this.config.agentAuthManager.registerAgent(agentInfo, this.config.keyPair, this.ownIrohNodeId);
42
+ console.log('[IrohDiscovery] Registered with DIAP');
43
+ }
44
+ catch (e) {
45
+ console.warn('[IrohDiscovery] DIAP registration failed:', e);
46
+ }
47
+ }
48
+ startRefreshLoop() {
49
+ this.refreshTimer = setInterval(async () => {
50
+ if (!this.isRegistered)
51
+ return;
52
+ console.log('[IrohDiscovery] Refreshing DIAP registration...');
53
+ await this.registerWithDIAP();
54
+ }, this.config.refreshIntervalMs);
55
+ }
56
+ startDiscoveryLoop() {
57
+ this.discoveryTimer = setInterval(async () => {
58
+ await this.discoverPeers();
59
+ }, this.discoveryIntervalMs);
60
+ setTimeout(() => this.discoverPeers(), 2000);
61
+ }
62
+ async discoverPeers() {
63
+ console.log('[IrohDiscovery] Discovering peers...');
64
+ const now = Date.now();
65
+ const staleThreshold = 10 * 60 * 1000;
66
+ for (const [did, agent] of this.discoveredAgents) {
67
+ if (now - agent.lastSeen > staleThreshold) {
68
+ this.discoveredAgents.delete(did);
69
+ }
70
+ }
71
+ console.log('[IrohDiscovery] Known agents:', this.discoveredAgents.size);
72
+ return Array.from(this.discoveredAgents.values());
73
+ }
74
+ async discoverViaDIAP() {
75
+ console.log('[IrohDiscovery] Querying DIAP for agents...');
76
+ const agents = [];
77
+ try {
78
+ const ipfsClient = this.config.agentAuthManager.identityManager?.ipfsClient;
79
+ if (ipfsClient) {
80
+ console.log('[IrohDiscovery] IPFS client available for discovery');
81
+ }
82
+ }
83
+ catch (e) {
84
+ console.warn('[IrohDiscovery] DIAP discovery error:', e);
85
+ }
86
+ return agents;
87
+ }
88
+ addDiscoveredAgent(agent) {
89
+ const existing = this.discoveredAgents.get(agent.did);
90
+ this.discoveredAgents.set(agent.did, {
91
+ ...agent,
92
+ lastSeen: Date.now(),
93
+ irohNodeId: agent.irohNodeId || existing?.irohNodeId || null,
94
+ });
95
+ }
96
+ getDiscoveredAgents() {
97
+ return Array.from(this.discoveredAgents.values());
98
+ }
99
+ getAgentByDid(did) {
100
+ return this.discoveredAgents.get(did);
101
+ }
102
+ getAgentsWithIroh() {
103
+ return Array.from(this.discoveredAgents.values()).filter((a) => a.irohNodeId !== null);
104
+ }
105
+ getOwnIrohNodeId() {
106
+ return this.ownIrohNodeId;
107
+ }
108
+ async connectToPeer(nodeId) {
109
+ return irohTransport.connect(nodeId);
110
+ }
111
+ async connectToAllIrohPeers() {
112
+ const agents = this.getAgentsWithIroh();
113
+ for (const agent of agents) {
114
+ if (agent.irohNodeId && agent.irohNodeId !== this.ownIrohNodeId) {
115
+ await this.connectToPeer(agent.irohNodeId);
116
+ }
117
+ }
118
+ }
119
+ async shutdown() {
120
+ this.isRegistered = false;
121
+ if (this.refreshTimer) {
122
+ clearInterval(this.refreshTimer);
123
+ this.refreshTimer = null;
124
+ }
125
+ if (this.discoveryTimer) {
126
+ clearInterval(this.discoveryTimer);
127
+ this.discoveryTimer = null;
128
+ }
129
+ this.discoveredAgents.clear();
130
+ await irohTransport.shutdown();
131
+ console.log('[IrohDiscovery] Shut down');
132
+ }
133
+ }
134
+ let discoveryInstance = null;
135
+ export async function startIrohDiscovery(config) {
136
+ if (discoveryInstance) {
137
+ return discoveryInstance;
138
+ }
139
+ discoveryInstance = new IrohDiscoveryService(config);
140
+ await discoveryInstance.start();
141
+ return discoveryInstance;
142
+ }
143
+ export function getIrohDiscovery() {
144
+ return discoveryInstance;
145
+ }
@@ -1,10 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IrohIntegration = void 0;
4
- exports.initIrohIntegration = initIrohIntegration;
5
- exports.getIrohIntegration = getIrohIntegration;
6
- const iroh_transport_js_1 = require("./iroh-transport.js");
7
- class IrohIntegration {
1
+ import { irohTransport } from './iroh-transport.js';
2
+ export class IrohIntegration {
8
3
  config;
9
4
  irohNodeId = null;
10
5
  registration = null;
@@ -22,10 +17,10 @@ class IrohIntegration {
22
17
  async start() {
23
18
  try {
24
19
  console.log('[IrohIntegration] Starting iroh transport...');
25
- const node = await iroh_transport_js_1.irohTransport.start();
20
+ const node = await irohTransport.start();
26
21
  this.irohNodeId = node.nodeId;
27
22
  console.log(`[IrohIntegration] Node ID: ${this.irohNodeId}`);
28
- iroh_transport_js_1.irohTransport.onMessage('*', (msg) => {
23
+ irohTransport.onMessage('*', (msg) => {
29
24
  this.dispatchMessage(msg);
30
25
  });
31
26
  await this.registerWithDIAP();
@@ -77,10 +72,10 @@ class IrohIntegration {
77
72
  this.messageHandlers.set(type, handler);
78
73
  }
79
74
  async sendTo(targetNodeId, type, payload) {
80
- return iroh_transport_js_1.irohTransport.sendMessage(targetNodeId, type, payload);
75
+ return irohTransport.sendMessage(targetNodeId, type, payload);
81
76
  }
82
77
  async requestFrom(targetNodeId, type, payload) {
83
- return iroh_transport_js_1.irohTransport.requestResponse(targetNodeId, type, payload);
78
+ return irohTransport.requestResponse(targetNodeId, type, payload);
84
79
  }
85
80
  getNodeId() {
86
81
  return this.irohNodeId;
@@ -96,13 +91,12 @@ class IrohIntegration {
96
91
  clearInterval(this.refreshTimer);
97
92
  this.refreshTimer = null;
98
93
  }
99
- await iroh_transport_js_1.irohTransport.shutdown();
94
+ await irohTransport.shutdown();
100
95
  console.log('[IrohIntegration] Shut down');
101
96
  }
102
97
  }
103
- exports.IrohIntegration = IrohIntegration;
104
98
  let integrationInstance = null;
105
- async function initIrohIntegration(config) {
99
+ export async function initIrohIntegration(config) {
106
100
  if (integrationInstance) {
107
101
  console.log('[IrohIntegration] Already initialized');
108
102
  return integrationInstance;
@@ -111,7 +105,6 @@ async function initIrohIntegration(config) {
111
105
  await integrationInstance.start();
112
106
  return integrationInstance;
113
107
  }
114
- function getIrohIntegration() {
108
+ export function getIrohIntegration() {
115
109
  return integrationInstance;
116
110
  }
117
- //# sourceMappingURL=iroh-integration.js.map