@bolloon/bolloon-agent 0.1.0 → 0.1.1

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 (431) hide show
  1. package/package.json +1 -1
  2. package/dist/constraint-runtime/tests/agent.test.js +0 -16
  3. package/dist/constraint-runtime/tests/constraint.test.js +0 -41
  4. package/dist/constraint-runtime/tests/skill.test.js +0 -19
  5. package/dist/constraint-runtime/tests/thinking.test.js +0 -22
  6. package/dist/electron-preload.js +0 -15
  7. package/dist/electron-preload.js.map +0 -1
  8. package/dist/electron.js +0 -206
  9. package/dist/electron.js.map +0 -1
  10. package/dist/test/constraint-layer.test.js +0 -164
  11. package/dist/test/global-shared-context.test.js +0 -315
  12. package/dist/test/pi-sdk.test.js +0 -47
  13. package/dist/test/set-persona.test.js +0 -38
  14. package/dist/test/subagent-manager.test.js +0 -276
  15. package/dist/test/workflow-engine.test.js +0 -87
  16. package/dist/workflows/collaboration.js +0 -374
  17. package/dist/workflows/index.js +0 -54
  18. package/docs/agent-communication.md +0 -333
  19. package/docs/plans/2026-05-15-document-agent-design.md +0 -479
  20. package/docs/plans/2026-05-15-document-agent-implementation-plan.md +0 -792
  21. package/docs/plans/2026-05-16-chat-ui-design.md +0 -86
  22. package/docs/plans/2026-05-16-constraint-runtime-design.md +0 -106
  23. package/docs/plans/2026-05-16-constraint-runtime-implementation.md +0 -441
  24. 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
  25. package/src/bollharness/.boll/CLAUDE.md.template +0 -34
  26. package/src/bollharness/.boll/MANIFEST.yaml +0 -213
  27. package/src/bollharness/.boll/active-review-agents/.gitkeep +0 -0
  28. package/src/bollharness/.boll/agents/review-base.yaml +0 -108
  29. package/src/bollharness/.boll/deploy-allowlist.yaml +0 -38
  30. package/src/bollharness/.boll/inbox/schema/message-v1.json +0 -99
  31. package/src/bollharness/.boll/install-staging/.gitkeep +0 -0
  32. package/src/bollharness/.boll/issue-adapter.yaml +0 -31
  33. package/src/bollharness/.boll/plugins/boll-mode-toolkit/contracts/mode-contract.md +0 -85
  34. package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +0 -102
  35. package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/review-contract.yaml +0 -247
  36. package/src/bollharness/.boll/rules/backend-routes.md +0 -31
  37. package/src/bollharness/.boll/rules/closure-semantics.md +0 -30
  38. package/src/bollharness/.boll/rules/env-vars.md +0 -32
  39. package/src/bollharness/.boll/rules/hanis-protocol.md +0 -145
  40. package/src/bollharness/.boll/rules/repo-structure.md +0 -42
  41. package/src/bollharness/.boll/rules/review-agent-isolation.md +0 -73
  42. package/src/bollharness/.boll/rules/source-of-truth.md +0 -33
  43. package/src/bollharness/.boll/settings.json +0 -180
  44. package/src/bollharness/.boll/settings.json.template +0 -31
  45. package/src/bollharness/.boll/skills/arch/SKILL.md +0 -372
  46. package/src/bollharness/.boll/skills/bug-pipeline/SKILL.md +0 -168
  47. package/src/bollharness/.boll/skills/bug-triage/SKILL.md +0 -161
  48. package/src/bollharness/.boll/skills/context-chains/SKILL.md +0 -250
  49. package/src/bollharness/.boll/skills/context-chains/context-chain-index.md +0 -48
  50. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/code_change_extractor.ts +0 -142
  51. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/debugging_extractor.ts +0 -126
  52. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/design_extractor.ts +0 -148
  53. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/planning_extractor.ts +0 -162
  54. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/question_extractor.ts +0 -116
  55. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/review_extractor.ts +0 -136
  56. package/src/bollharness/.boll/skills/crystal-learn/SKILL.md +0 -93
  57. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-0.md +0 -34
  58. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-1.md +0 -34
  59. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-2.md +0 -35
  60. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-3.md +0 -34
  61. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-4.md +0 -43
  62. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-5.md +0 -34
  63. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-6.md +0 -37
  64. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-7.md +0 -46
  65. package/src/bollharness/.boll/skills/guardian-fixer/PROMPT.md +0 -415
  66. package/src/bollharness/.boll/skills/guardian-fixer/SKILL.md +0 -320
  67. package/src/bollharness/.boll/skills/harness-dev/SKILL.md +0 -93
  68. package/src/bollharness/.boll/skills/harness-dev/examples/README.md +0 -227
  69. package/src/bollharness/.boll/skills/harness-dev-handoff/SKILL.md +0 -165
  70. package/src/bollharness/.boll/skills/harness-eng/SKILL.md +0 -110
  71. package/src/bollharness/.boll/skills/harness-eng-test/SKILL.md +0 -79
  72. package/src/bollharness/.boll/skills/harness-lab/SKILL.md +0 -170
  73. package/src/bollharness/.boll/skills/harness-ops/SKILL.md +0 -57
  74. package/src/bollharness/.boll/skills/harness-voice/SKILL.md +0 -183
  75. package/src/bollharness/.boll/skills/judgment/SKILL.md +0 -115
  76. package/src/bollharness/.boll/skills/lead/SKILL.md +0 -245
  77. package/src/bollharness/.boll/skills/lead/install-wow-harness.md +0 -77
  78. package/src/bollharness/.boll/skills/lead/ref-review-sop.md +0 -91
  79. package/src/bollharness/.boll/skills/lead/ref-stages.md +0 -129
  80. package/src/bollharness/.boll/skills/skill-discovery/SKILL.md +0 -169
  81. package/src/bollharness/.boll/skills/task-arch/SKILL.md +0 -106
  82. package/src/bollharness/.boll/skills/toolkit/SKILL.md +0 -57
  83. package/src/bollharness/.boll/tasks/.gitkeep +0 -0
  84. package/src/bollharness/.boll/toolkit-index.yaml +0 -112
  85. package/src/bollharness/.claude/agents/review-base.yaml +0 -108
  86. package/src/bollharness/.claude/plugins/boll-mode-toolkit/.claude-plugin/plugin.json +0 -44
  87. package/src/bollharness/.claude/plugins/boll-review-toolkit/.claude-plugin/plugin.json +0 -24
  88. package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +0 -102
  89. package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/review-contract.yaml +0 -247
  90. package/src/bollharness/.claude/settings.json +0 -157
  91. package/src/bollharness/.claude/skills/arch/SKILL.md +0 -64
  92. package/src/bollharness/.claude/skills/crystal-learn/SKILL.md +0 -93
  93. package/src/bollharness/.claude/skills/guardian-fixer/PROMPT.md +0 -44
  94. package/src/bollharness/.claude/skills/guardian-fixer/SKILL.md +0 -324
  95. package/src/bollharness/.claude/skills/harness-dev/SKILL.md +0 -93
  96. package/src/bollharness/.claude/skills/harness-dev/examples/README.md +0 -17
  97. package/src/bollharness/.claude/skills/harness-dev-handoff/SKILL.md +0 -165
  98. package/src/bollharness/.claude/skills/harness-eng/SKILL.md +0 -183
  99. package/src/bollharness/.claude/skills/harness-eng-test/SKILL.md +0 -57
  100. package/src/bollharness/.claude/skills/harness-ops/SKILL.md +0 -57
  101. package/src/bollharness/.claude/skills/harness-voice/SKILL.md +0 -84
  102. package/src/bollharness/.claude/skills/lead/INDEX.md +0 -28
  103. package/src/bollharness/.claude/skills/lead/SKILL.md +0 -24
  104. package/src/bollharness/.claude/skills/lead/install-wow-harness.md +0 -77
  105. package/src/bollharness/.claude/skills/lead/ref-review-sop.md +0 -48
  106. package/src/bollharness/.claude/skills/lead/ref-stages.md +0 -58
  107. package/src/bollharness/.claude/skills/plan-lock/SKILL.md +0 -74
  108. package/src/bollharness/.claude/skills/skill-discovery/SKILL.md +0 -120
  109. package/src/bollharness/.claude/skills/task-arch/SKILL.md +0 -106
  110. package/src/bollharness/.claude/skills/toolkit/SKILL.md +0 -57
  111. package/src/bollharness/.claude/skills/toolkit/list.sh +0 -92
  112. package/src/bollharness/.githooks/pre-commit +0 -21
  113. package/src/bollharness/.github/workflows/ci.yml +0 -88
  114. package/src/bollharness/CLAUDE.md +0 -73
  115. package/src/bollharness/README.md +0 -143
  116. package/src/bollharness/README.zh-CN.md +0 -131
  117. package/src/bollharness/docs/decisions/ADR-030-guard-signal-protocol-and-governance-reload.md +0 -1076
  118. package/src/bollharness/docs/decisions/ADR-038-harness-optimization-strategy.md +0 -2039
  119. package/src/bollharness/docs/decisions/ADR-041-codex-claude-code-division-of-labor.md +0 -128
  120. package/src/bollharness/docs/decisions/ADR-H1-crystal-learn-revival.md +0 -188
  121. package/src/bollharness/docs/decisions/ADR-H2-identity-isolation.md +0 -183
  122. package/src/bollharness/docs/decisions/ADR-H3-memory-scope.md +0 -133
  123. package/src/bollharness/docs/decisions/ADR-H4-prompt-governance.md +0 -146
  124. package/src/bollharness/docs/decisions/ADR-H5-gate-quantization.md +0 -212
  125. package/src/bollharness/docs/decisions/ADR-H6-state-file-health.md +0 -211
  126. package/src/bollharness/docs/decisions/ADR-H8-issue-and-doc-compliance.md +0 -202
  127. package/src/bollharness/docs/decisions/ADR-H9-mailbox.md +0 -231
  128. package/src/bollharness/docs/decisions/PLAN-H1-crystal-learn-revival.md +0 -270
  129. package/src/bollharness/docs/decisions/PLAN-H2-identity-isolation.md +0 -291
  130. package/src/bollharness/docs/decisions/PLAN-H3-memory-scope.md +0 -228
  131. package/src/bollharness/docs/decisions/PLAN-H4-prompt-governance.md +0 -227
  132. package/src/bollharness/docs/decisions/PLAN-H5-gate-quantization.md +0 -239
  133. package/src/bollharness/docs/decisions/PLAN-H6-state-file-health.md +0 -325
  134. package/src/bollharness/docs/decisions/PLAN-H8-issue-and-doc-compliance.md +0 -242
  135. package/src/bollharness/docs/decisions/PLAN-H9-mailbox.md +0 -378
  136. package/src/bollharness/docs/launch-article-en.md +0 -276
  137. package/src/bollharness/docs/launch-article-zh.md +0 -305
  138. package/src/bollharness/docs/practice.html +0 -356
  139. package/src/bollharness/docs/practice.md +0 -82
  140. package/src/bollharness/docs/research/round-1/README.md +0 -11
  141. package/src/bollharness/docs/research/round-2/README.md +0 -11
  142. package/src/bollharness/docs/research/round-3/README.md +0 -11
  143. package/src/bollharness/docs/research/round-4/README.md +0 -11
  144. package/src/bollharness/docs/research/round-5/README.md +0 -11
  145. package/src/bollharness/docs/research/round-6/README.md +0 -11
  146. package/src/bollharness/package-lock.json +0 -48
  147. package/src/bollharness/reference/boll-reference/.claude/rules/backend-routes.md +0 -268
  148. package/src/bollharness/reference/boll-reference/.claude/rules/bridge.md +0 -20
  149. package/src/bollharness/reference/boll-reference/.claude/rules/closure-semantics.md +0 -30
  150. package/src/bollharness/reference/boll-reference/.claude/rules/coaching.md +0 -13
  151. package/src/bollharness/reference/boll-reference/.claude/rules/env-vars.md +0 -50
  152. package/src/bollharness/reference/boll-reference/.claude/rules/hackathon.md +0 -12
  153. package/src/bollharness/reference/boll-reference/.claude/rules/repo-structure.md +0 -184
  154. package/src/bollharness/reference/boll-reference/.claude/rules/review-agent-isolation.md +0 -112
  155. package/src/bollharness/reference/boll-reference/.claude/rules/scenes.md +0 -12
  156. package/src/bollharness/reference/boll-reference/.claude/skills/arch/SKILL.md +0 -551
  157. package/src/bollharness/reference/boll-reference/.claude/skills/boll-animation/SKILL.md +0 -26
  158. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/SKILL.md +0 -227
  159. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/agents/openai.yaml +0 -4
  160. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-failure-taxonomy.md +0 -142
  161. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-validation-ladder.md +0 -107
  162. package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal/SKILL.md +0 -893
  163. package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal-learn/SKILL.md +0 -89
  164. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/SKILL.md +0 -93
  165. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/examples/README.md +0 -209
  166. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev-handoff/SKILL.md +0 -165
  167. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng/SKILL.md +0 -110
  168. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-frontend/SKILL.md +0 -203
  169. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-hdc/SKILL.md +0 -27
  170. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-orchestrator/SKILL.md +0 -28
  171. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-prompt/SKILL.md +0 -27
  172. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-test/SKILL.md +0 -79
  173. package/src/bollharness/reference/boll-reference/.claude/skills/boll-lab/SKILL.md +0 -372
  174. package/src/bollharness/reference/boll-reference/.claude/skills/boll-run/SKILL.md +0 -437
  175. package/src/bollharness/reference/boll-reference/.claude/skills/boll-ux-appstore/SKILL.md +0 -27
  176. package/src/bollharness/reference/boll-reference/.claude/skills/boll-voice/SKILL.md +0 -442
  177. package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/PROMPT.md +0 -421
  178. package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/SKILL.md +0 -326
  179. package/src/bollharness/reference/boll-reference/.claude/skills/lead/SKILL.md +0 -155
  180. package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-review-sop.md +0 -91
  181. package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-stages.md +0 -129
  182. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-preview.png +0 -0
  183. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v2.png +0 -0
  184. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v3.png +0 -0
  185. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v4.png +0 -0
  186. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/SKILL.md +0 -425
  187. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-three-checks.md +0 -62
  188. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-wp-templates.md +0 -78
  189. package/src/bollharness/reference/boll-reference/.claude/skills/task-arch/SKILL.md +0 -76
  190. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/SKILL.md +0 -57
  191. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/beads-graph.sh +0 -153
  192. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/SKILL.md +0 -52
  193. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/beads-auto-link.sh +0 -76
  194. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/SKILL.md +0 -50
  195. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/beads-sync-proj.sh +0 -108
  196. package/src/bollharness/reference/boll-reference/docs/architecture/AGENT-PROFILE.md +0 -151
  197. package/src/bollharness/reference/boll-reference/docs/architecture/COST-STRUCTURE.md +0 -56
  198. package/src/bollharness/reference/boll-reference/docs/architecture/INDEX.md +0 -76
  199. package/src/bollharness/reference/boll-reference/docs/architecture/MODULE1-INTENT-FIELD.md +0 -116
  200. package/src/bollharness/reference/boll-reference/docs/architecture/MODULE2-CRYSTALLIZATION.md +0 -200
  201. package/src/bollharness/reference/boll-reference/docs/architecture/PRINCIPLES.md +0 -84
  202. package/src/bollharness/reference/boll-reference/docs/architecture/PROTOCOL-CORE.md +0 -209
  203. package/src/bollharness/reference/boll-reference/docs/architecture/VISION.md +0 -181
  204. package/src/bollharness/reference/boll-reference/docs/architecture/discussions/D-01-MARKET-SCENE-PROTOCOL.md +0 -754
  205. package/src/bollharness/reference/boll-reference/scripts/hooks/stop-evaluator.md +0 -57
  206. package/src/bollharness/scripts/context-fragments/artifact-linkage.md +0 -14
  207. package/src/bollharness/scripts/context-fragments/auth-consumers.md +0 -17
  208. package/src/bollharness/scripts/context-fragments/bridge-constitution.md +0 -13
  209. package/src/bollharness/scripts/context-fragments/catalyst-distributed.md +0 -18
  210. package/src/bollharness/scripts/context-fragments/closure-checklist.md +0 -13
  211. package/src/bollharness/scripts/context-fragments/contract-consumers.md +0 -15
  212. package/src/bollharness/scripts/context-fragments/db-shared-structures.md +0 -15
  213. package/src/bollharness/scripts/context-fragments/fixed-three-layers.md +0 -19
  214. package/src/bollharness/scripts/context-fragments/general-dev-principles.md +0 -11
  215. package/src/bollharness/scripts/context-fragments/issue-first.md +0 -8
  216. package/src/bollharness/scripts/context-fragments/mcp-parity.md +0 -16
  217. package/src/bollharness/scripts/context-fragments/pi-agent-operations.md +0 -74
  218. package/src/bollharness/scripts/context-fragments/protocol-consumers.md +0 -15
  219. package/src/bollharness/scripts/context-fragments/run-events-consumers.md +0 -15
  220. package/src/bollharness/scripts/context-fragments/scene-fidelity.md +0 -13
  221. package/src/bollharness/scripts/context-fragments/truth-source-hierarchy.md +0 -15
  222. package/src/bollharness/scripts/context-fragments/two-language.md +0 -15
  223. package/src/bollharness/scripts/context-fragments/version-sources.md +0 -14
  224. package/src/bollharness/scripts/hooks/stop-evaluator.md +0 -83
  225. package/src/bollharness/templates/scaffold/.boll/guard/.gitkeep +0 -0
  226. package/src/bollharness/templates/scaffold/.boll/metrics/.gitkeep +0 -0
  227. package/src/bollharness/templates/scaffold/.boll/state/.gitkeep +0 -0
  228. package/src/bollharness/templates/scaffold/CLAUDE.md +0 -89
  229. package/src/bollharness/templates/scaffold/docs/INDEX.md +0 -3
  230. package/src/bollharness/templates/scaffold/docs/decisions/ADR_TEMPLATE.md +0 -38
  231. package/src/bollharness/templates/scaffold/docs/decisions/PLAN_TEMPLATE.md +0 -45
  232. package/src/bollharness/templates/scaffold/docs/decisions/tasks/.gitkeep +0 -2
  233. package/src/bollharness/templates/scaffold/docs/issues/.gitkeep +0 -0
  234. package/src/bollharness/templates/scaffold/docs/issues/GUARD_ISSUE_TEMPLATE.md +0 -35
  235. package/src/bollharness/templates/scaffold/docs/issues/ISSUE_TEMPLATE.md +0 -51
  236. package/src/bollharness/tsconfig.json +0 -26
  237. package/src/constraint-runtime/package-lock.json +0 -48
  238. package/src/constraint-runtime/package.json +0 -34
  239. package/src/constraint-runtime/src/_archive_helper.ts +0 -16
  240. package/src/constraint-runtime/src/agent/coordinator.ts +0 -71
  241. package/src/constraint-runtime/src/agent/index.ts +0 -1
  242. package/src/constraint-runtime/src/assistant/index.ts +0 -15
  243. package/src/constraint-runtime/src/bootstrap/index.ts +0 -15
  244. package/src/constraint-runtime/src/bootstrap_graph.ts +0 -17
  245. package/src/constraint-runtime/src/bridge/index.ts +0 -15
  246. package/src/constraint-runtime/src/buddy/index.ts +0 -15
  247. package/src/constraint-runtime/src/cli/index.ts +0 -15
  248. package/src/constraint-runtime/src/command_graph.ts +0 -20
  249. package/src/constraint-runtime/src/commands.ts +0 -83
  250. package/src/constraint-runtime/src/components/index.ts +0 -15
  251. package/src/constraint-runtime/src/constants/index.ts +0 -15
  252. package/src/constraint-runtime/src/constraint/budget.ts +0 -25
  253. package/src/constraint-runtime/src/constraint/index.ts +0 -3
  254. package/src/constraint-runtime/src/constraint/permission.ts +0 -28
  255. package/src/constraint-runtime/src/context.ts +0 -45
  256. package/src/constraint-runtime/src/coordinator/index.ts +0 -15
  257. package/src/constraint-runtime/src/cost_hook.ts +0 -6
  258. package/src/constraint-runtime/src/cost_tracker.ts +0 -9
  259. package/src/constraint-runtime/src/deferred_init.ts +0 -18
  260. package/src/constraint-runtime/src/direct_modes.ts +0 -13
  261. package/src/constraint-runtime/src/dynamic-tool-loader.ts +0 -115
  262. package/src/constraint-runtime/src/entrypoints/index.ts +0 -15
  263. package/src/constraint-runtime/src/execution_registry.ts +0 -41
  264. package/src/constraint-runtime/src/history.ts +0 -16
  265. package/src/constraint-runtime/src/hooks/index.ts +0 -15
  266. package/src/constraint-runtime/src/index.ts +0 -28
  267. package/src/constraint-runtime/src/ink.ts +0 -4
  268. package/src/constraint-runtime/src/keybindings/index.ts +0 -15
  269. package/src/constraint-runtime/src/memdir/index.ts +0 -15
  270. package/src/constraint-runtime/src/migrations/index.ts +0 -15
  271. package/src/constraint-runtime/src/models.ts +0 -49
  272. package/src/constraint-runtime/src/moreright/index.ts +0 -15
  273. package/src/constraint-runtime/src/native_ts/index.ts +0 -15
  274. package/src/constraint-runtime/src/output_styles/index.ts +0 -15
  275. package/src/constraint-runtime/src/parity_audit.ts +0 -23
  276. package/src/constraint-runtime/src/plugins/index.ts +0 -15
  277. package/src/constraint-runtime/src/port_manifest.ts +0 -20
  278. package/src/constraint-runtime/src/prefetch.ts +0 -17
  279. package/src/constraint-runtime/src/query.ts +0 -7
  280. package/src/constraint-runtime/src/reference_data/archive_surface_snapshot.json +0 -63
  281. package/src/constraint-runtime/src/reference_data/commands_snapshot.json +0 -1037
  282. package/src/constraint-runtime/src/reference_data/subsystems/OpenCLI.json +0 -10
  283. package/src/constraint-runtime/src/reference_data/subsystems/PolymarketSDK.json +0 -12
  284. package/src/constraint-runtime/src/reference_data/subsystems/SafeSDK.json +0 -14
  285. package/src/constraint-runtime/src/reference_data/subsystems/assistant.json +0 -8
  286. package/src/constraint-runtime/src/reference_data/subsystems/bootstrap.json +0 -8
  287. package/src/constraint-runtime/src/reference_data/subsystems/bridge.json +0 -32
  288. package/src/constraint-runtime/src/reference_data/subsystems/buddy.json +0 -13
  289. package/src/constraint-runtime/src/reference_data/subsystems/cli.json +0 -26
  290. package/src/constraint-runtime/src/reference_data/subsystems/components.json +0 -32
  291. package/src/constraint-runtime/src/reference_data/subsystems/constants.json +0 -28
  292. package/src/constraint-runtime/src/reference_data/subsystems/coordinator.json +0 -8
  293. package/src/constraint-runtime/src/reference_data/subsystems/entrypoints.json +0 -15
  294. package/src/constraint-runtime/src/reference_data/subsystems/hooks.json +0 -32
  295. package/src/constraint-runtime/src/reference_data/subsystems/keybindings.json +0 -21
  296. package/src/constraint-runtime/src/reference_data/subsystems/memdir.json +0 -15
  297. package/src/constraint-runtime/src/reference_data/subsystems/migrations.json +0 -18
  298. package/src/constraint-runtime/src/reference_data/subsystems/moreright.json +0 -8
  299. package/src/constraint-runtime/src/reference_data/subsystems/native_ts.json +0 -11
  300. package/src/constraint-runtime/src/reference_data/subsystems/outputStyles.json +0 -8
  301. package/src/constraint-runtime/src/reference_data/subsystems/plugins.json +0 -9
  302. package/src/constraint-runtime/src/reference_data/subsystems/remote.json +0 -11
  303. package/src/constraint-runtime/src/reference_data/subsystems/schemas.json +0 -8
  304. package/src/constraint-runtime/src/reference_data/subsystems/screens.json +0 -10
  305. package/src/constraint-runtime/src/reference_data/subsystems/server.json +0 -10
  306. package/src/constraint-runtime/src/reference_data/subsystems/services.json +0 -32
  307. package/src/constraint-runtime/src/reference_data/subsystems/skills.json +0 -27
  308. package/src/constraint-runtime/src/reference_data/subsystems/state.json +0 -13
  309. package/src/constraint-runtime/src/reference_data/subsystems/types.json +0 -18
  310. package/src/constraint-runtime/src/reference_data/subsystems/upstreamproxy.json +0 -9
  311. package/src/constraint-runtime/src/reference_data/subsystems/utils.json +0 -32
  312. package/src/constraint-runtime/src/reference_data/subsystems/vim.json +0 -12
  313. package/src/constraint-runtime/src/reference_data/subsystems/voice.json +0 -8
  314. package/src/constraint-runtime/src/reference_data/tools_snapshot.json +0 -1042
  315. package/src/constraint-runtime/src/remote/index.ts +0 -15
  316. package/src/constraint-runtime/src/remote_runtime.ts +0 -17
  317. package/src/constraint-runtime/src/runtime/index.ts +0 -1
  318. package/src/constraint-runtime/src/runtime/session.ts +0 -42
  319. package/src/constraint-runtime/src/schemas/index.ts +0 -15
  320. package/src/constraint-runtime/src/screens/index.ts +0 -15
  321. package/src/constraint-runtime/src/server/index.ts +0 -15
  322. package/src/constraint-runtime/src/services/index.ts +0 -15
  323. package/src/constraint-runtime/src/session_store.ts +0 -32
  324. package/src/constraint-runtime/src/setup.ts +0 -50
  325. package/src/constraint-runtime/src/skills/index.ts +0 -1
  326. package/src/constraint-runtime/src/skills/skill-registry.ts +0 -40
  327. package/src/constraint-runtime/src/state/index.ts +0 -15
  328. package/src/constraint-runtime/src/system_init.ts +0 -21
  329. package/src/constraint-runtime/src/thinking/engine.ts +0 -61
  330. package/src/constraint-runtime/src/thinking/index.ts +0 -1
  331. package/src/constraint-runtime/src/tool_pool.ts +0 -20
  332. package/src/constraint-runtime/src/tools/OpenCLI/execAdapter.ts +0 -12
  333. package/src/constraint-runtime/src/tools/OpenCLI/listAdapters.ts +0 -12
  334. package/src/constraint-runtime/src/tools/OpenCLI/runCommand.ts +0 -13
  335. package/src/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.ts +0 -10
  336. package/src/constraint-runtime/src/tools/PolymarketSDK/createOrder.ts +0 -13
  337. package/src/constraint-runtime/src/tools/PolymarketSDK/getMarket.ts +0 -14
  338. package/src/constraint-runtime/src/tools/PolymarketSDK/getOrders.ts +0 -10
  339. package/src/constraint-runtime/src/tools/PolymarketSDK/listMarkets.ts +0 -24
  340. package/src/constraint-runtime/src/tools/SafeSDK/confirmTransaction.ts +0 -13
  341. package/src/constraint-runtime/src/tools/SafeSDK/createTransaction.ts +0 -23
  342. package/src/constraint-runtime/src/tools/SafeSDK/deploySafe.ts +0 -12
  343. package/src/constraint-runtime/src/tools/SafeSDK/executeTransaction.ts +0 -12
  344. package/src/constraint-runtime/src/tools/SafeSDK/getBalance.ts +0 -10
  345. package/src/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.ts +0 -10
  346. package/src/constraint-runtime/src/tools/SafeSDK/proposeTransaction.ts +0 -14
  347. package/src/constraint-runtime/src/tools/WalletTools/autoPay.ts +0 -58
  348. package/src/constraint-runtime/src/tools/WalletTools/createWallet.ts +0 -19
  349. package/src/constraint-runtime/src/tools/WalletTools/getBalance.ts +0 -28
  350. package/src/constraint-runtime/src/tools/WalletTools/importWallet.ts +0 -34
  351. package/src/constraint-runtime/src/tools/WalletTools/sendTransaction.ts +0 -50
  352. package/src/constraint-runtime/src/tools/WalletTools/signMessage.ts +0 -23
  353. package/src/constraint-runtime/src/tools/WalletTools/transferToken.ts +0 -49
  354. package/src/constraint-runtime/src/tools.ts +0 -100
  355. package/src/constraint-runtime/src/transcript.ts +0 -23
  356. package/src/constraint-runtime/src/types/index.ts +0 -15
  357. package/src/constraint-runtime/src/upstream_proxy/index.ts +0 -15
  358. package/src/constraint-runtime/src/utils/index.ts +0 -15
  359. package/src/constraint-runtime/src/vim/index.ts +0 -15
  360. package/src/constraint-runtime/src/voice/index.ts +0 -15
  361. package/src/constraint-runtime/tests/agent.test.ts +0 -20
  362. package/src/constraint-runtime/tests/constraint.test.ts +0 -47
  363. package/src/constraint-runtime/tests/skill.test.ts +0 -23
  364. package/src/constraint-runtime/tests/thinking.test.ts +0 -28
  365. package/src/constraint-runtime/tsconfig.json +0 -13
  366. package/src/pi-ecosystem/index.ts +0 -453
  367. package/src/pi-ecosystem-colony/index.ts +0 -482
  368. package/src/pi-ecosystem-goals/index.ts +0 -585
  369. package/src/pi-ecosystem-judgment/decision.ts +0 -431
  370. package/src/pi-ecosystem-judgment/distillation.ts +0 -398
  371. package/src/pi-ecosystem-judgment/human-value-store.ts +0 -580
  372. package/src/pi-ecosystem-judgment/index.ts +0 -678
  373. package/src/pi-ecosystem-judgment/value-injection.ts +0 -744
  374. package/src/pi-ecosystem-mcp/index.ts +0 -427
  375. package/src/pi-ecosystem-subagents/index.ts +0 -408
  376. package/src/test/ai-judgment-test.ts +0 -92
  377. package/src/test/bollharness-integration.test.ts +0 -398
  378. package/src/test/channel-agent-multi-dialogue.ts +0 -265
  379. package/src/test/channel-heartbeat-agent-test.ts +0 -244
  380. package/src/test/constraint-layer.test.ts +0 -191
  381. package/src/test/diap-identity-test.ts +0 -222
  382. package/src/test/diap-quick-test.ts +0 -73
  383. package/src/test/global-shared-context.test.ts +0 -393
  384. package/src/test/harness-judgment-injection.test.ts +0 -353
  385. package/src/test/harness-workflow-integrator-test.ts +0 -285
  386. package/src/test/human-value-store.test.ts +0 -316
  387. package/src/test/hybrid-integration-test.ts +0 -126
  388. package/src/test/hybrid-messenger-verify.ts +0 -68
  389. package/src/test/iroh-bistream-debug.ts +0 -50
  390. package/src/test/iroh-communication.test.ts +0 -81
  391. package/src/test/iroh-debug-test.ts +0 -69
  392. package/src/test/iroh-diap-test.ts +0 -90
  393. package/src/test/iroh-direct-connect.ts +0 -65
  394. package/src/test/iroh-e2e-fixed.ts +0 -106
  395. package/src/test/iroh-e2e-same-process.ts +0 -83
  396. package/src/test/iroh-e2e.ts +0 -83
  397. package/src/test/iroh-final-e2e.ts +0 -84
  398. package/src/test/iroh-relay-test.ts +0 -46
  399. package/src/test/iroh-simple-test.ts +0 -49
  400. package/src/test/iroh-transport-verify.ts +0 -60
  401. package/src/test/iroh-transport.test.ts +0 -47
  402. package/src/test/iroh-two-nodes.ts +0 -87
  403. package/src/test/iroh-verify.ts +0 -55
  404. package/src/test/judgment-decision.test.ts +0 -373
  405. package/src/test/llm-judgment-integration.test.ts +0 -257
  406. package/src/test/p2p-agent-complex-dialogue.ts +0 -490
  407. package/src/test/p2p-agent-dialogue.ts +0 -423
  408. package/src/test/p2p-agent-full-bidirectional.ts +0 -686
  409. package/src/test/p2p-agent-harness-flow.ts +0 -562
  410. package/src/test/p2p-agent-harness-single.ts +0 -175
  411. package/src/test/p2p-ai-dialogue-test.ts +0 -374
  412. package/src/test/p2p-cid-connect-test.ts +0 -245
  413. package/src/test/p2p-connect-receiver.ts +0 -85
  414. package/src/test/p2p-iroh-test.ts +0 -214
  415. package/src/test/p2p-minimal-test.ts +0 -264
  416. package/src/test/p2p-node-1.ts +0 -172
  417. package/src/test/p2p-node-2.ts +0 -172
  418. package/src/test/p2p-server.ts +0 -335
  419. package/src/test/p2p-two-nodes-test.ts +0 -542
  420. package/src/test/pi-sdk.test.ts +0 -47
  421. package/src/test/set-persona.ts +0 -56
  422. package/src/test/simple.test.ts +0 -11
  423. package/src/test/storage-integration.test.ts +0 -191
  424. package/src/test/subagent-manager.test.ts +0 -392
  425. package/src/test/test-gate-flow.test.ts +0 -92
  426. package/src/test/workflow-engine.test.ts +0 -101
  427. package/src/web/design.md +0 -99
  428. package/src/workflows/collaboration.ts +0 -455
  429. package/src/workflows/index.ts +0 -64
  430. package/vitest.config.ts +0 -12
  431. package//346/203/263/346/263/225.md +0 -79
@@ -1,245 +0,0 @@
1
- /**
2
- * P2P CID 连接测试 - 验证通过 CID 自动解析 DID 文档并建立连接
3
- *
4
- * 流程:
5
- * 1. 电脑 A: 生成 DID → 发布到 IPFS → 获得 CID → 分享给 B
6
- * 2. 电脑 B: 接收 CID → 从 IPFS 解析 DID 文档 → 提取连接信息 → 建立 P2P
7
- */
8
-
9
- import crypto from 'node:crypto';
10
- import { KeyManager, IpfsClient } from '@diap/sdk';
11
- import { createHyperswarmCommunicator, createTopic, type P2PConnection } from '@diap/sdk';
12
-
13
- const IPFS_ENDPOINT = 'http://127.0.0.1:5001';
14
- const P2P_TOPIC = 'bolloon-test-v2'; // 测试用主题
15
-
16
- interface AgentInfo {
17
- did: string;
18
- name: string;
19
- cid: string;
20
- peerPublicKey: string;
21
- }
22
-
23
- // ============================================================
24
- // 步骤 1: 发布 DID 到 IPFS(电脑 A)
25
- // ============================================================
26
- async function publishDIDToIPFS(name: string): Promise<{ did: string; cid: string; keyPair: any }> {
27
- console.log('\n[步骤 1] 发布 DID 到 IPFS...');
28
-
29
- // 生成 DID
30
- const keyPair = KeyManager.generate();
31
- const did = keyPair.did;
32
- console.log(` ✅ DID 生成: ${did}`);
33
-
34
- // 构建 DID 文档(标准 DIAP 格式)
35
- const didDoc = {
36
- '@context': [
37
- 'https://www.w3.org/ns/did/v1',
38
- 'https://w3id.org/security/suites/ed25519-2020/v1'
39
- ],
40
- id: did,
41
- verificationMethod: [{
42
- id: `${did}#key-1`,
43
- type: 'Ed25519VerificationKey2020',
44
- controller: did,
45
- publicKeyMultibase: `did:key:${Buffer.from(keyPair.publicKey).toString('base64url')}`
46
- }],
47
- authentication: [`${did}#key-1`],
48
- capabilityInvocation: [`${did}#key-1`],
49
- capabilityDelegation: [`${did}#key-1`],
50
- // 扩展字段:智能体信息
51
- name: name,
52
- capabilities: ['chat', 'reasoning', 'judgment-injection'],
53
- interests: ['ai', 'p2p'],
54
- channels: [{ id: 'main', name: '主对话' }]
55
- };
56
-
57
- // 上传到 IPFS
58
- const ipfs = new IpfsClient(IPFS_ENDPOINT, null);
59
- const docJson = JSON.stringify(didDoc);
60
-
61
- const formData = new FormData();
62
- const blob = new Blob([docJson], { type: 'application/json' });
63
- formData.append('file', blob, 'did-doc.json');
64
-
65
- const response = await fetch(`${IPFS_ENDPOINT}/api/v0/add`, {
66
- method: 'POST',
67
- body: formData
68
- });
69
- const result = await response.text();
70
- const cidMatch = result.match(/"Hash":"([^"]+)"/);
71
- const cid = cidMatch ? cidMatch[1] : '';
72
-
73
- console.log(` ✅ DID 文档发布到 IPFS: ${cid}`);
74
-
75
- return { did, cid, keyPair };
76
- }
77
-
78
- // ============================================================
79
- // 步骤 2: 从 IPFS 解析 DID 文档(电脑 B)
80
- // ============================================================
81
- async function resolveDIDFromIPFS(cid: string): Promise<{ did: string; name: string; capabilities: string[] } | null> {
82
- console.log('\n[步骤 2] 从 IPFS 解析 DID 文档...');
83
-
84
- const ipfs = new IpfsClient(IPFS_ENDPOINT, null);
85
-
86
- try {
87
- const content = await ipfs.get(cid);
88
- const doc = JSON.parse(content);
89
-
90
- console.log(` ✅ DID 文档解析成功`);
91
- console.log(` DID: ${doc.id}`);
92
- console.log(` 名称: ${doc.name || 'N/A'}`);
93
- console.log(` 能力: ${(doc.capabilities || []).join(', ') || 'N/A'}`);
94
-
95
- return {
96
- did: doc.id,
97
- name: doc.name || 'Unknown',
98
- capabilities: doc.capabilities || []
99
- };
100
- } catch (e) {
101
- console.log(` ❌ 解析失败: ${(e as Error).message}`);
102
- return null;
103
- }
104
- }
105
-
106
- // ============================================================
107
- // 步骤 3: 建立 P2P 连接
108
- // ============================================================
109
- async function establishP2PConnection(): Promise<{ comm: any; publicKey: string }> {
110
- console.log('\n[步骤 3] 初始化 P2P 网络...');
111
-
112
- const seed = crypto.getRandomValues(new Uint8Array(32));
113
- const comm = createHyperswarmCommunicator({
114
- server: true,
115
- client: true,
116
- autoConnect: true,
117
- maxConnections: 5,
118
- seed: seed as any
119
- });
120
-
121
- // 先启动
122
- await comm.start();
123
- console.log(' ✅ P2P 网络已启动');
124
-
125
- const topic = createTopic(P2P_TOPIC) as Buffer;
126
- await comm.joinTopic(topic);
127
-
128
- console.log(` ✅ 已加入 P2P 主题: ${P2P_TOPIC}`);
129
-
130
- // 获取本机公钥
131
- const publicKey = (comm as any).publicKey || '';
132
- console.log(` ✅ 本机节点 ID: ${publicKey.substring(0, 16)}...`);
133
-
134
- return { comm, publicKey };
135
- }
136
-
137
- // ============================================================
138
- // 步骤 4: 发送/接收消息
139
- // ============================================================
140
- async function testMessaging(comm: any, isInitiator: boolean) {
141
- console.log('\n[步骤 4] 测试消息收发...');
142
-
143
- const messageLog: string[] = [];
144
-
145
- comm.on('message', (msg: any, conn: P2PConnection) => {
146
- const content = new TextDecoder().decode(msg.content);
147
- console.log(` 📩 收到消息: ${content}`);
148
- messageLog.push(`收到: ${content}`);
149
-
150
- // 回复
151
- const reply = isInitiator
152
- ? `ACK: 已收到 "${content}"`
153
- : `响应: 你好,我是接收方`;
154
- conn.send(new TextEncoder().encode(reply));
155
- console.log(` 📤 发送回复: ${reply}`);
156
- });
157
-
158
- comm.on('connection', (conn: P2PConnection) => {
159
- console.log(` 🔌 新连接: ${conn.publicKey.substring(0, 8)}...`);
160
-
161
- // 发起方发送测试消息
162
- if (isInitiator && messageLog.length === 0) {
163
- setTimeout(() => {
164
- const testMsg = `Hello from ${isInitiator ? 'Initiator' : 'Receiver'} at ${new Date().toISOString()}`;
165
- conn.send(new TextEncoder().encode(testMsg));
166
- console.log(` 📤 发送测试消息: ${testMsg}`);
167
- }, 1000);
168
- }
169
- });
170
-
171
- return messageLog;
172
- }
173
-
174
- // ============================================================
175
- // 主测试流程
176
- // ============================================================
177
- async function main() {
178
- console.log('╔═══════════════════════════════════════════════════════════╗');
179
- console.log('║ P2P CID 连接测试 - 验证 DID 文档解析与自动连接 ║');
180
- console.log('╚═══════════════════════════════════════════════════════════╝');
181
-
182
- const args = process.argv.slice(2);
183
- const isInitiator = args.includes('--initiator');
184
- const shareCid = args.find(a => a.startsWith('--cid='))?.split('=')[1];
185
-
186
- // 电脑 A: 发布 DID 到 IPFS
187
- if (isInitiator) {
188
- const agentName = `test-agent-${Date.now()}`;
189
- const { did, cid } = await publishDIDToIPFS(agentName);
190
-
191
- // 建立 P2P
192
- const { comm, publicKey } = await establishP2PConnection();
193
-
194
- console.log('\n═══════════════════════════════════════════════════════════');
195
- console.log(' 📋 分享给另一台电脑的信息:');
196
- console.log('═══════════════════════════════════════════════════════════');
197
- console.log(` CID: ${cid}`);
198
- console.log(` 主题: ${P2P_TOPIC}`);
199
- console.log(` 你的节点 ID: ${publicKey.substring(0, 20)}...`);
200
- console.log('═══════════════════════════════════════════════════════════\n');
201
-
202
- await testMessaging(comm, true);
203
-
204
- console.log('\n 等待消息... (Ctrl+C 退出)');
205
-
206
- }
207
- // 电脑 B: 从 CID 解析并连接
208
- else if (shareCid) {
209
- const resolved = await resolveDIDFromIPFS(shareCid);
210
-
211
- if (!resolved) {
212
- console.log('❌ 无法解析 DID 文档');
213
- return;
214
- }
215
-
216
- console.log(`\n 准备连接到 ${resolved.name}...`);
217
-
218
- // 建立 P2P(加入同一主题)
219
- const { comm, publicKey } = await establishP2PConnection();
220
-
221
- console.log('\n═══════════════════════════════════════════════════════════');
222
- console.log(' 📋 本机信息:');
223
- console.log('═══════════════════════════════════════════════════════════');
224
- console.log(` DID: ${resolved.did}`);
225
- console.log(` 名称: ${resolved.name}`);
226
- console.log(` 主题: ${P2P_TOPIC}`);
227
- console.log(` 你的节点 ID: ${publicKey.substring(0, 20)}...`);
228
- console.log('═══════════════════════════════════════════════════════════\n');
229
-
230
- await testMessaging(comm, false);
231
-
232
- console.log('\n 等待消息... (Ctrl+C 退出)');
233
-
234
- } else {
235
- console.log('\n用法:');
236
- console.log(' 电脑 A (发起方): npx tsx src/test/p2p-cid-connect-test.ts --initiator');
237
- console.log(' 电脑 B (接收方): npx tsx src/test/p2p-cid-connect-test.ts --cid=<CID>');
238
- console.log('\n测试步骤:');
239
- console.log(' 1. 在电脑 A 运行 --initiator,记录显示的 CID');
240
- console.log(' 2. 在电脑 B 运行 --cid=<上一步的CID>');
241
- console.log(' 3. 观察 P2P 连接和消息收发');
242
- }
243
- }
244
-
245
- main().catch(console.error);
@@ -1,85 +0,0 @@
1
- /**
2
- * P2P 接收端测试 - 电脑 B 使用 CID 解析并连接
3
- */
4
-
5
- import { irohTransport } from '../network/iroh-transport.js';
6
-
7
- async function main() {
8
- console.log('╔═══════════════════════════════════════════╗');
9
- console.log('║ P2P 接收端 - 解析 CID 并连接 ║');
10
- console.log('╚═══════════════════════════════════════════╝');
11
-
12
- // 从命令行获取参数
13
- const args = process.argv.slice(2);
14
- const cid = args.find(a => a.startsWith('--cid='))?.split('=')[1];
15
- const nodeId = args.find(a => a.startsWith('--node='))?.split('=')[1];
16
-
17
- if (!cid || !nodeId) {
18
- console.log('\n用法:');
19
- console.log(' npx tsx src/test/p2p-connect-receiver.ts --cid=<CID> --node=<iroh-node-id>');
20
- console.log('\n示例:');
21
- console.log(' npx tsx src/test/p2p-connect-receiver.ts \\');
22
- console.log(' --cid=QmXjU6RJZRgBphuMAD9gka2JMuEKvSutTLwsfHbrBb4JGQ \\');
23
- console.log(' --node=327914b4744c67e0dbe3307175b22d893e14413cd9ca7f1a5667d565702575b4');
24
- return;
25
- }
26
-
27
- console.log(`\n📡 CID: ${cid}`);
28
- console.log(`🔗 目标节点: ${nodeId.substring(0, 20)}...`);
29
-
30
- // 1. 启动 iroh
31
- console.log('\n[1] 启动 iroh...');
32
- await irohTransport.start();
33
- const myNodeId = irohTransport.getNodeId();
34
- console.log(` ✅ 我的节点 ID: ${myNodeId}`);
35
-
36
- // 2. 解析 CID
37
- console.log('\n[2] 解析 DID 文档...');
38
- try {
39
- const response = await fetch(`http://127.0.0.1:5001/api/v0/cat?arg=${cid}`, {
40
- method: 'POST'
41
- });
42
- const content = await response.text();
43
- const doc = JSON.parse(content);
44
- console.log(` ✅ 解析成功!`);
45
- console.log(` DID: ${doc.id}`);
46
- console.log(` 名称: ${doc.name || 'N/A'}`);
47
- } catch (e) {
48
- console.log(` ⚠️ 解析失败(可能对方离线): ${(e as Error).message}`);
49
- }
50
-
51
- // 3. 设置消息监听
52
- console.log('\n[3] 设置消息监听...');
53
- irohTransport.onMessage('chat', (msg) => {
54
- console.log(`\n 💬 收到消息 from ${msg.from.substring(0, 16)}...`);
55
- console.log(` 内容: ${new TextDecoder().decode(msg.payload)}`);
56
-
57
- // 回复
58
- const reply = `ACK from ${myNodeId?.substring(0, 8)}: 已收到!`;
59
- irohTransport.sendMessage(msg.from, 'chat', new TextEncoder().encode(reply));
60
- console.log(` 📤 发送回复`);
61
- });
62
- console.log(' ✅ 等待消息...');
63
-
64
- // 4. 尝试连接并发送消息
65
- console.log('\n[4] 尝试连接目标节点...');
66
- const success = await irohTransport.sendMessage(
67
- nodeId,
68
- 'chat',
69
- new TextEncoder().encode(`Hello from receiver at ${Date.now()}!`)
70
- );
71
-
72
- if (success) {
73
- console.log(' ✅ 消息发送成功!');
74
- } else {
75
- console.log(' ⚠️ 消息发送失败(目标可能离线)');
76
- console.log(' 消息将在对方上线时自动送达');
77
- }
78
-
79
- console.log('\n 等待消息... (Ctrl+C 退出)\n');
80
-
81
- // 保持运行
82
- await new Promise(() => {});
83
- }
84
-
85
- main().catch(console.error);
@@ -1,214 +0,0 @@
1
- /**
2
- * P2P iroh 测试 - 通过 CID 解析 DID 文档并使用 iroh 建立连接
3
- *
4
- * 流程:
5
- * 1. 生成 DID → 发布到 IPFS → 获得 CID
6
- * 2. 通过 CID 从 IPFS 解析 DID 文档
7
- * 3. 使用 iroh 直接通过 Node ID 连接
8
- */
9
-
10
- import crypto from 'node:crypto';
11
- import { KeyManager, AgentAuthManager } from '@diap/sdk';
12
- import { irohTransport } from '../network/iroh-transport.js';
13
- import { initIrohIntegration, getIrohIntegration } from '../network/iroh-integration.js';
14
-
15
- const IPFS_ENDPOINT = 'http://127.0.0.1:5001';
16
-
17
- interface AgentInfo {
18
- did: string;
19
- name: string;
20
- cid: string;
21
- irohNodeId: string;
22
- }
23
-
24
- // ============================================================
25
- // 步骤 1: 发布 DID 到 IPFS
26
- // ============================================================
27
- async function publishDIDToIPFS(name: string): Promise<AgentInfo> {
28
- console.log('\n[步骤 1] 发布 DID 到 IPFS...');
29
-
30
- // 生成 DID
31
- const keyPair = KeyManager.generate();
32
- const did = keyPair.did;
33
- console.log(` ✅ DID 生成: ${did}`);
34
-
35
- // 获取已有的 iroh Node ID
36
- const irohNodeId = irohTransport.getNodeId();
37
- console.log(` ✅ iroh 节点 ID: ${irohNodeId}`);
38
-
39
- // 发布 DID 到 IPFS(使用 AgentAuthManager)
40
- const authManager = await AgentAuthManager.newWithRemoteIpfs(IPFS_ENDPOINT, IPFS_ENDPOINT);
41
- const result = await authManager.registerAgent({ name, services: [] }, keyPair, '');
42
-
43
- console.log(` ✅ IPFS CID: ${result.cid}`);
44
-
45
- return {
46
- did,
47
- name,
48
- cid: result.cid || '',
49
- irohNodeId: irohNodeId || '',
50
- };
51
- }
52
-
53
- // ============================================================
54
- // 步骤 2: 从 CID 解析 DID 文档
55
- // ============================================================
56
- async function resolveDIDFromIPFS(cid: string): Promise<{ did: string; name: string } | null> {
57
- console.log('\n[步骤 2] 从 IPFS 解析 DID 文档...');
58
-
59
- try {
60
- // 直接使用 fetch 获取
61
- const response = await fetch(`${IPFS_ENDPOINT}/api/v0/cat?arg=${cid}`, {
62
- method: 'POST'
63
- });
64
- const content = await response.text();
65
- const doc = JSON.parse(content);
66
-
67
- console.log(` ✅ DID 文档解析成功`);
68
- console.log(` DID: ${doc.id}`);
69
- console.log(` 名称: ${doc.name || 'N/A'}`);
70
-
71
- return {
72
- did: doc.id,
73
- name: doc.name || 'Unknown',
74
- };
75
- } catch (e) {
76
- console.log(` ❌ 解析失败: ${(e as Error).message}`);
77
- return null;
78
- }
79
- }
80
-
81
- // ============================================================
82
- // 步骤 3: 通过 iroh 连接并发送消息
83
- // ============================================================
84
- async function connectAndMessage(targetNodeId: string, message: string): Promise<void> {
85
- console.log('\n[步骤 3] 通过 iroh 发送消息...');
86
- console.log(` 📤 目标节点: ${targetNodeId.substring(0, 20)}...`);
87
- console.log(` 📝 消息: ${message}`);
88
-
89
- const success = await irohTransport.sendMessage(
90
- targetNodeId,
91
- 'chat',
92
- new TextEncoder().encode(message)
93
- );
94
-
95
- if (success) {
96
- console.log(' ✅ 消息发送成功');
97
- } else {
98
- console.log(' ⚠️ 消息发送失败(对方可能不在线)');
99
- }
100
- }
101
-
102
- // ============================================================
103
- // 接收消息处理
104
- // ============================================================
105
- function setupMessageHandler() {
106
- console.log('\n[监听] 设置消息处理器...');
107
-
108
- irohTransport.onMessage('chat', (msg) => {
109
- const content = new TextDecoder().decode(msg.payload);
110
- console.log(`\n 💬 收到消息 from ${msg.from.substring(0, 12)}...: ${content}`);
111
-
112
- // 回复
113
- const reply = `ACK: 已收到 "${content.substring(0, 30)}..."`;
114
- irohTransport.sendMessage(msg.from, 'chat', new TextEncoder().encode(reply));
115
- console.log(` 📤 发送回复: ${reply}`);
116
- });
117
-
118
- irohTransport.onMessage('*', (msg) => {
119
- console.log(`\n 📩 收到未知类型消息 [${msg.type}] from ${msg.from.substring(0, 12)}...`);
120
- });
121
-
122
- console.log(' ✅ 消息处理器已设置');
123
- }
124
-
125
- // ============================================================
126
- // 主测试流程
127
- // ============================================================
128
- async function main() {
129
- console.log('╔═══════════════════════════════════════════════════════════╗');
130
- console.log('║ P2P iroh 测试 - CID 解析 + 直接 Node ID 连接 ║');
131
- console.log('╚═══════════════════════════════════════════════════════════╝');
132
-
133
- const args = process.argv.slice(2);
134
- const isPublisher = args.includes('--publish');
135
- const targetCid = args.find(a => a.startsWith('--cid='))?.split('=')[1];
136
- const targetNodeId = args.find(a => a.startsWith('--node='))?.split('=')[1];
137
- const testMessage = args.find(a => a.startsWith('--msg='))?.split('=')[1] || 'Hello from iroh!';
138
-
139
- // 初始化 iroh(所有模式都需要)
140
- console.log('\n[初始化] 启动 iroh transport...');
141
- try {
142
- await irohTransport.start(undefined, false);
143
- console.log(' ✅ iroh transport 已启动');
144
- } catch (e) {
145
- console.log(` ❌ iroh 启动失败: ${(e as Error).message}`);
146
- return;
147
- }
148
-
149
- // 设置消息处理器
150
- setupMessageHandler();
151
-
152
- // 模式 1: 发布 DID(电脑 A)
153
- if (isPublisher) {
154
- const agentName = `bolloon-${Date.now()}`;
155
- const info = await publishDIDToIPFS(agentName);
156
-
157
- console.log('\n═══════════════════════════════════════════════════════════');
158
- console.log(' 📋 分享给另一台电脑的信息:');
159
- console.log('═══════════════════════════════════════════════════════════');
160
- console.log(` DID: ${info.did}`);
161
- console.log(` CID: ${info.cid}`);
162
- console.log(` iroh Node ID: ${info.irohNodeId}`);
163
- console.log('═══════════════════════════════════════════════════════════');
164
- console.log('\n 用法:');
165
- console.log(` 电脑 B: npx tsx src/test/p2p-iroh-test.ts --cid=${info.cid} --node=${info.irohNodeId}`);
166
- console.log('\n 等待消息... (Ctrl+C 退出)\n');
167
-
168
- // 保持运行
169
- await new Promise(() => {});
170
- }
171
-
172
- // 模式 2: 解析 CID 并连接(电脑 B)
173
- else if (targetCid) {
174
- const resolved = await resolveDIDFromIPFS(targetCid);
175
-
176
- if (!resolved) {
177
- console.log('❌ 无法解析 DID 文档');
178
- return;
179
- }
180
-
181
- // 如果提供了 Node ID,直接连接
182
- if (targetNodeId) {
183
- console.log(`\n 🎯 连接到节点: ${targetNodeId.substring(0, 20)}...`);
184
-
185
- await connectAndMessage(targetNodeId, testMessage);
186
-
187
- console.log('\n 等待回复... (5秒后退出)');
188
- await new Promise(resolve => setTimeout(resolve, 5000));
189
- } else {
190
- console.log(`\n ⚠️ DID 文档已解析,但需要 Node ID 才能连接`);
191
- console.log(` DID: ${resolved.did}`);
192
- console.log(` 名称: ${resolved.name}`);
193
- console.log('\n 注意: DID 文档中需要包含 iroh Node ID 信息');
194
- console.log(' 请使用 --node=<iroh-node-id> 参数直接指定节点 ID');
195
- }
196
- }
197
-
198
- // 帮助信息
199
- else {
200
- console.log('\n用法:');
201
- console.log('');
202
- console.log(' 电脑 A (发布方):');
203
- console.log(' npx tsx src/test/p2p-iroh-test.ts --publish');
204
- console.log('');
205
- console.log(' 电脑 B (连接方):');
206
- console.log(' npx tsx src/test/p2p-iroh-test.ts --cid=<CID> --node=<iroh-node-id> --msg=<消息>');
207
- console.log('');
208
- console.log('示例:');
209
- console.log(' A: npx tsx src/test/p2p-iroh-test.ts --publish');
210
- console.log(' B: npx tsx src/test/p2p-iroh-test.ts --cid=QmXXX --node=xyz123 --msg="Hello!"');
211
- }
212
- }
213
-
214
- main().catch(console.error);