@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.
- package/package.json +1 -1
- package/dist/constraint-runtime/tests/agent.test.js +0 -16
- package/dist/constraint-runtime/tests/constraint.test.js +0 -41
- package/dist/constraint-runtime/tests/skill.test.js +0 -19
- package/dist/constraint-runtime/tests/thinking.test.js +0 -22
- package/dist/electron-preload.js +0 -15
- package/dist/electron-preload.js.map +0 -1
- package/dist/electron.js +0 -206
- package/dist/electron.js.map +0 -1
- package/dist/test/constraint-layer.test.js +0 -164
- package/dist/test/global-shared-context.test.js +0 -315
- package/dist/test/pi-sdk.test.js +0 -47
- package/dist/test/set-persona.test.js +0 -38
- package/dist/test/subagent-manager.test.js +0 -276
- package/dist/test/workflow-engine.test.js +0 -87
- package/dist/workflows/collaboration.js +0 -374
- package/dist/workflows/index.js +0 -54
- package/docs/agent-communication.md +0 -333
- package/docs/plans/2026-05-15-document-agent-design.md +0 -479
- package/docs/plans/2026-05-15-document-agent-implementation-plan.md +0 -792
- package/docs/plans/2026-05-16-chat-ui-design.md +0 -86
- package/docs/plans/2026-05-16-constraint-runtime-design.md +0 -106
- package/docs/plans/2026-05-16-constraint-runtime-implementation.md +0 -441
- 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
- package/src/bollharness/.boll/CLAUDE.md.template +0 -34
- package/src/bollharness/.boll/MANIFEST.yaml +0 -213
- package/src/bollharness/.boll/active-review-agents/.gitkeep +0 -0
- package/src/bollharness/.boll/agents/review-base.yaml +0 -108
- package/src/bollharness/.boll/deploy-allowlist.yaml +0 -38
- package/src/bollharness/.boll/inbox/schema/message-v1.json +0 -99
- package/src/bollharness/.boll/install-staging/.gitkeep +0 -0
- package/src/bollharness/.boll/issue-adapter.yaml +0 -31
- package/src/bollharness/.boll/plugins/boll-mode-toolkit/contracts/mode-contract.md +0 -85
- package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +0 -102
- package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/review-contract.yaml +0 -247
- package/src/bollharness/.boll/rules/backend-routes.md +0 -31
- package/src/bollharness/.boll/rules/closure-semantics.md +0 -30
- package/src/bollharness/.boll/rules/env-vars.md +0 -32
- package/src/bollharness/.boll/rules/hanis-protocol.md +0 -145
- package/src/bollharness/.boll/rules/repo-structure.md +0 -42
- package/src/bollharness/.boll/rules/review-agent-isolation.md +0 -73
- package/src/bollharness/.boll/rules/source-of-truth.md +0 -33
- package/src/bollharness/.boll/settings.json +0 -180
- package/src/bollharness/.boll/settings.json.template +0 -31
- package/src/bollharness/.boll/skills/arch/SKILL.md +0 -372
- package/src/bollharness/.boll/skills/bug-pipeline/SKILL.md +0 -168
- package/src/bollharness/.boll/skills/bug-triage/SKILL.md +0 -161
- package/src/bollharness/.boll/skills/context-chains/SKILL.md +0 -250
- package/src/bollharness/.boll/skills/context-chains/context-chain-index.md +0 -48
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/code_change_extractor.ts +0 -142
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/debugging_extractor.ts +0 -126
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/design_extractor.ts +0 -148
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/planning_extractor.ts +0 -162
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/question_extractor.ts +0 -116
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/review_extractor.ts +0 -136
- package/src/bollharness/.boll/skills/crystal-learn/SKILL.md +0 -93
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-0.md +0 -34
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-1.md +0 -34
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-2.md +0 -35
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-3.md +0 -34
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-4.md +0 -43
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-5.md +0 -34
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-6.md +0 -37
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-7.md +0 -46
- package/src/bollharness/.boll/skills/guardian-fixer/PROMPT.md +0 -415
- package/src/bollharness/.boll/skills/guardian-fixer/SKILL.md +0 -320
- package/src/bollharness/.boll/skills/harness-dev/SKILL.md +0 -93
- package/src/bollharness/.boll/skills/harness-dev/examples/README.md +0 -227
- package/src/bollharness/.boll/skills/harness-dev-handoff/SKILL.md +0 -165
- package/src/bollharness/.boll/skills/harness-eng/SKILL.md +0 -110
- package/src/bollharness/.boll/skills/harness-eng-test/SKILL.md +0 -79
- package/src/bollharness/.boll/skills/harness-lab/SKILL.md +0 -170
- package/src/bollharness/.boll/skills/harness-ops/SKILL.md +0 -57
- package/src/bollharness/.boll/skills/harness-voice/SKILL.md +0 -183
- package/src/bollharness/.boll/skills/judgment/SKILL.md +0 -115
- package/src/bollharness/.boll/skills/lead/SKILL.md +0 -245
- package/src/bollharness/.boll/skills/lead/install-wow-harness.md +0 -77
- package/src/bollharness/.boll/skills/lead/ref-review-sop.md +0 -91
- package/src/bollharness/.boll/skills/lead/ref-stages.md +0 -129
- package/src/bollharness/.boll/skills/skill-discovery/SKILL.md +0 -169
- package/src/bollharness/.boll/skills/task-arch/SKILL.md +0 -106
- package/src/bollharness/.boll/skills/toolkit/SKILL.md +0 -57
- package/src/bollharness/.boll/tasks/.gitkeep +0 -0
- package/src/bollharness/.boll/toolkit-index.yaml +0 -112
- package/src/bollharness/.claude/agents/review-base.yaml +0 -108
- package/src/bollharness/.claude/plugins/boll-mode-toolkit/.claude-plugin/plugin.json +0 -44
- package/src/bollharness/.claude/plugins/boll-review-toolkit/.claude-plugin/plugin.json +0 -24
- package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +0 -102
- package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/review-contract.yaml +0 -247
- package/src/bollharness/.claude/settings.json +0 -157
- package/src/bollharness/.claude/skills/arch/SKILL.md +0 -64
- package/src/bollharness/.claude/skills/crystal-learn/SKILL.md +0 -93
- package/src/bollharness/.claude/skills/guardian-fixer/PROMPT.md +0 -44
- package/src/bollharness/.claude/skills/guardian-fixer/SKILL.md +0 -324
- package/src/bollharness/.claude/skills/harness-dev/SKILL.md +0 -93
- package/src/bollharness/.claude/skills/harness-dev/examples/README.md +0 -17
- package/src/bollharness/.claude/skills/harness-dev-handoff/SKILL.md +0 -165
- package/src/bollharness/.claude/skills/harness-eng/SKILL.md +0 -183
- package/src/bollharness/.claude/skills/harness-eng-test/SKILL.md +0 -57
- package/src/bollharness/.claude/skills/harness-ops/SKILL.md +0 -57
- package/src/bollharness/.claude/skills/harness-voice/SKILL.md +0 -84
- package/src/bollharness/.claude/skills/lead/INDEX.md +0 -28
- package/src/bollharness/.claude/skills/lead/SKILL.md +0 -24
- package/src/bollharness/.claude/skills/lead/install-wow-harness.md +0 -77
- package/src/bollharness/.claude/skills/lead/ref-review-sop.md +0 -48
- package/src/bollharness/.claude/skills/lead/ref-stages.md +0 -58
- package/src/bollharness/.claude/skills/plan-lock/SKILL.md +0 -74
- package/src/bollharness/.claude/skills/skill-discovery/SKILL.md +0 -120
- package/src/bollharness/.claude/skills/task-arch/SKILL.md +0 -106
- package/src/bollharness/.claude/skills/toolkit/SKILL.md +0 -57
- package/src/bollharness/.claude/skills/toolkit/list.sh +0 -92
- package/src/bollharness/.githooks/pre-commit +0 -21
- package/src/bollharness/.github/workflows/ci.yml +0 -88
- package/src/bollharness/CLAUDE.md +0 -73
- package/src/bollharness/README.md +0 -143
- package/src/bollharness/README.zh-CN.md +0 -131
- package/src/bollharness/docs/decisions/ADR-030-guard-signal-protocol-and-governance-reload.md +0 -1076
- package/src/bollharness/docs/decisions/ADR-038-harness-optimization-strategy.md +0 -2039
- package/src/bollharness/docs/decisions/ADR-041-codex-claude-code-division-of-labor.md +0 -128
- package/src/bollharness/docs/decisions/ADR-H1-crystal-learn-revival.md +0 -188
- package/src/bollharness/docs/decisions/ADR-H2-identity-isolation.md +0 -183
- package/src/bollharness/docs/decisions/ADR-H3-memory-scope.md +0 -133
- package/src/bollharness/docs/decisions/ADR-H4-prompt-governance.md +0 -146
- package/src/bollharness/docs/decisions/ADR-H5-gate-quantization.md +0 -212
- package/src/bollharness/docs/decisions/ADR-H6-state-file-health.md +0 -211
- package/src/bollharness/docs/decisions/ADR-H8-issue-and-doc-compliance.md +0 -202
- package/src/bollharness/docs/decisions/ADR-H9-mailbox.md +0 -231
- package/src/bollharness/docs/decisions/PLAN-H1-crystal-learn-revival.md +0 -270
- package/src/bollharness/docs/decisions/PLAN-H2-identity-isolation.md +0 -291
- package/src/bollharness/docs/decisions/PLAN-H3-memory-scope.md +0 -228
- package/src/bollharness/docs/decisions/PLAN-H4-prompt-governance.md +0 -227
- package/src/bollharness/docs/decisions/PLAN-H5-gate-quantization.md +0 -239
- package/src/bollharness/docs/decisions/PLAN-H6-state-file-health.md +0 -325
- package/src/bollharness/docs/decisions/PLAN-H8-issue-and-doc-compliance.md +0 -242
- package/src/bollharness/docs/decisions/PLAN-H9-mailbox.md +0 -378
- package/src/bollharness/docs/launch-article-en.md +0 -276
- package/src/bollharness/docs/launch-article-zh.md +0 -305
- package/src/bollharness/docs/practice.html +0 -356
- package/src/bollharness/docs/practice.md +0 -82
- package/src/bollharness/docs/research/round-1/README.md +0 -11
- package/src/bollharness/docs/research/round-2/README.md +0 -11
- package/src/bollharness/docs/research/round-3/README.md +0 -11
- package/src/bollharness/docs/research/round-4/README.md +0 -11
- package/src/bollharness/docs/research/round-5/README.md +0 -11
- package/src/bollharness/docs/research/round-6/README.md +0 -11
- package/src/bollharness/package-lock.json +0 -48
- package/src/bollharness/reference/boll-reference/.claude/rules/backend-routes.md +0 -268
- package/src/bollharness/reference/boll-reference/.claude/rules/bridge.md +0 -20
- package/src/bollharness/reference/boll-reference/.claude/rules/closure-semantics.md +0 -30
- package/src/bollharness/reference/boll-reference/.claude/rules/coaching.md +0 -13
- package/src/bollharness/reference/boll-reference/.claude/rules/env-vars.md +0 -50
- package/src/bollharness/reference/boll-reference/.claude/rules/hackathon.md +0 -12
- package/src/bollharness/reference/boll-reference/.claude/rules/repo-structure.md +0 -184
- package/src/bollharness/reference/boll-reference/.claude/rules/review-agent-isolation.md +0 -112
- package/src/bollharness/reference/boll-reference/.claude/rules/scenes.md +0 -12
- package/src/bollharness/reference/boll-reference/.claude/skills/arch/SKILL.md +0 -551
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-animation/SKILL.md +0 -26
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/SKILL.md +0 -227
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/agents/openai.yaml +0 -4
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-failure-taxonomy.md +0 -142
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-validation-ladder.md +0 -107
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal/SKILL.md +0 -893
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal-learn/SKILL.md +0 -89
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/SKILL.md +0 -93
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/examples/README.md +0 -209
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev-handoff/SKILL.md +0 -165
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng/SKILL.md +0 -110
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-frontend/SKILL.md +0 -203
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-hdc/SKILL.md +0 -27
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-orchestrator/SKILL.md +0 -28
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-prompt/SKILL.md +0 -27
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-test/SKILL.md +0 -79
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-lab/SKILL.md +0 -372
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-run/SKILL.md +0 -437
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-ux-appstore/SKILL.md +0 -27
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-voice/SKILL.md +0 -442
- package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/PROMPT.md +0 -421
- package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/SKILL.md +0 -326
- package/src/bollharness/reference/boll-reference/.claude/skills/lead/SKILL.md +0 -155
- package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-review-sop.md +0 -91
- package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-stages.md +0 -129
- package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-preview.png +0 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v2.png +0 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v3.png +0 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v4.png +0 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/SKILL.md +0 -425
- package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-three-checks.md +0 -62
- package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-wp-templates.md +0 -78
- package/src/bollharness/reference/boll-reference/.claude/skills/task-arch/SKILL.md +0 -76
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/SKILL.md +0 -57
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/beads-graph.sh +0 -153
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/SKILL.md +0 -52
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/beads-auto-link.sh +0 -76
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/SKILL.md +0 -50
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/beads-sync-proj.sh +0 -108
- package/src/bollharness/reference/boll-reference/docs/architecture/AGENT-PROFILE.md +0 -151
- package/src/bollharness/reference/boll-reference/docs/architecture/COST-STRUCTURE.md +0 -56
- package/src/bollharness/reference/boll-reference/docs/architecture/INDEX.md +0 -76
- package/src/bollharness/reference/boll-reference/docs/architecture/MODULE1-INTENT-FIELD.md +0 -116
- package/src/bollharness/reference/boll-reference/docs/architecture/MODULE2-CRYSTALLIZATION.md +0 -200
- package/src/bollharness/reference/boll-reference/docs/architecture/PRINCIPLES.md +0 -84
- package/src/bollharness/reference/boll-reference/docs/architecture/PROTOCOL-CORE.md +0 -209
- package/src/bollharness/reference/boll-reference/docs/architecture/VISION.md +0 -181
- package/src/bollharness/reference/boll-reference/docs/architecture/discussions/D-01-MARKET-SCENE-PROTOCOL.md +0 -754
- package/src/bollharness/reference/boll-reference/scripts/hooks/stop-evaluator.md +0 -57
- package/src/bollharness/scripts/context-fragments/artifact-linkage.md +0 -14
- package/src/bollharness/scripts/context-fragments/auth-consumers.md +0 -17
- package/src/bollharness/scripts/context-fragments/bridge-constitution.md +0 -13
- package/src/bollharness/scripts/context-fragments/catalyst-distributed.md +0 -18
- package/src/bollharness/scripts/context-fragments/closure-checklist.md +0 -13
- package/src/bollharness/scripts/context-fragments/contract-consumers.md +0 -15
- package/src/bollharness/scripts/context-fragments/db-shared-structures.md +0 -15
- package/src/bollharness/scripts/context-fragments/fixed-three-layers.md +0 -19
- package/src/bollharness/scripts/context-fragments/general-dev-principles.md +0 -11
- package/src/bollharness/scripts/context-fragments/issue-first.md +0 -8
- package/src/bollharness/scripts/context-fragments/mcp-parity.md +0 -16
- package/src/bollharness/scripts/context-fragments/pi-agent-operations.md +0 -74
- package/src/bollharness/scripts/context-fragments/protocol-consumers.md +0 -15
- package/src/bollharness/scripts/context-fragments/run-events-consumers.md +0 -15
- package/src/bollharness/scripts/context-fragments/scene-fidelity.md +0 -13
- package/src/bollharness/scripts/context-fragments/truth-source-hierarchy.md +0 -15
- package/src/bollharness/scripts/context-fragments/two-language.md +0 -15
- package/src/bollharness/scripts/context-fragments/version-sources.md +0 -14
- package/src/bollharness/scripts/hooks/stop-evaluator.md +0 -83
- package/src/bollharness/templates/scaffold/.boll/guard/.gitkeep +0 -0
- package/src/bollharness/templates/scaffold/.boll/metrics/.gitkeep +0 -0
- package/src/bollharness/templates/scaffold/.boll/state/.gitkeep +0 -0
- package/src/bollharness/templates/scaffold/CLAUDE.md +0 -89
- package/src/bollharness/templates/scaffold/docs/INDEX.md +0 -3
- package/src/bollharness/templates/scaffold/docs/decisions/ADR_TEMPLATE.md +0 -38
- package/src/bollharness/templates/scaffold/docs/decisions/PLAN_TEMPLATE.md +0 -45
- package/src/bollharness/templates/scaffold/docs/decisions/tasks/.gitkeep +0 -2
- package/src/bollharness/templates/scaffold/docs/issues/.gitkeep +0 -0
- package/src/bollharness/templates/scaffold/docs/issues/GUARD_ISSUE_TEMPLATE.md +0 -35
- package/src/bollharness/templates/scaffold/docs/issues/ISSUE_TEMPLATE.md +0 -51
- package/src/bollharness/tsconfig.json +0 -26
- package/src/constraint-runtime/package-lock.json +0 -48
- package/src/constraint-runtime/package.json +0 -34
- package/src/constraint-runtime/src/_archive_helper.ts +0 -16
- package/src/constraint-runtime/src/agent/coordinator.ts +0 -71
- package/src/constraint-runtime/src/agent/index.ts +0 -1
- package/src/constraint-runtime/src/assistant/index.ts +0 -15
- package/src/constraint-runtime/src/bootstrap/index.ts +0 -15
- package/src/constraint-runtime/src/bootstrap_graph.ts +0 -17
- package/src/constraint-runtime/src/bridge/index.ts +0 -15
- package/src/constraint-runtime/src/buddy/index.ts +0 -15
- package/src/constraint-runtime/src/cli/index.ts +0 -15
- package/src/constraint-runtime/src/command_graph.ts +0 -20
- package/src/constraint-runtime/src/commands.ts +0 -83
- package/src/constraint-runtime/src/components/index.ts +0 -15
- package/src/constraint-runtime/src/constants/index.ts +0 -15
- package/src/constraint-runtime/src/constraint/budget.ts +0 -25
- package/src/constraint-runtime/src/constraint/index.ts +0 -3
- package/src/constraint-runtime/src/constraint/permission.ts +0 -28
- package/src/constraint-runtime/src/context.ts +0 -45
- package/src/constraint-runtime/src/coordinator/index.ts +0 -15
- package/src/constraint-runtime/src/cost_hook.ts +0 -6
- package/src/constraint-runtime/src/cost_tracker.ts +0 -9
- package/src/constraint-runtime/src/deferred_init.ts +0 -18
- package/src/constraint-runtime/src/direct_modes.ts +0 -13
- package/src/constraint-runtime/src/dynamic-tool-loader.ts +0 -115
- package/src/constraint-runtime/src/entrypoints/index.ts +0 -15
- package/src/constraint-runtime/src/execution_registry.ts +0 -41
- package/src/constraint-runtime/src/history.ts +0 -16
- package/src/constraint-runtime/src/hooks/index.ts +0 -15
- package/src/constraint-runtime/src/index.ts +0 -28
- package/src/constraint-runtime/src/ink.ts +0 -4
- package/src/constraint-runtime/src/keybindings/index.ts +0 -15
- package/src/constraint-runtime/src/memdir/index.ts +0 -15
- package/src/constraint-runtime/src/migrations/index.ts +0 -15
- package/src/constraint-runtime/src/models.ts +0 -49
- package/src/constraint-runtime/src/moreright/index.ts +0 -15
- package/src/constraint-runtime/src/native_ts/index.ts +0 -15
- package/src/constraint-runtime/src/output_styles/index.ts +0 -15
- package/src/constraint-runtime/src/parity_audit.ts +0 -23
- package/src/constraint-runtime/src/plugins/index.ts +0 -15
- package/src/constraint-runtime/src/port_manifest.ts +0 -20
- package/src/constraint-runtime/src/prefetch.ts +0 -17
- package/src/constraint-runtime/src/query.ts +0 -7
- package/src/constraint-runtime/src/reference_data/archive_surface_snapshot.json +0 -63
- package/src/constraint-runtime/src/reference_data/commands_snapshot.json +0 -1037
- package/src/constraint-runtime/src/reference_data/subsystems/OpenCLI.json +0 -10
- package/src/constraint-runtime/src/reference_data/subsystems/PolymarketSDK.json +0 -12
- package/src/constraint-runtime/src/reference_data/subsystems/SafeSDK.json +0 -14
- package/src/constraint-runtime/src/reference_data/subsystems/assistant.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/bootstrap.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/bridge.json +0 -32
- package/src/constraint-runtime/src/reference_data/subsystems/buddy.json +0 -13
- package/src/constraint-runtime/src/reference_data/subsystems/cli.json +0 -26
- package/src/constraint-runtime/src/reference_data/subsystems/components.json +0 -32
- package/src/constraint-runtime/src/reference_data/subsystems/constants.json +0 -28
- package/src/constraint-runtime/src/reference_data/subsystems/coordinator.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/entrypoints.json +0 -15
- package/src/constraint-runtime/src/reference_data/subsystems/hooks.json +0 -32
- package/src/constraint-runtime/src/reference_data/subsystems/keybindings.json +0 -21
- package/src/constraint-runtime/src/reference_data/subsystems/memdir.json +0 -15
- package/src/constraint-runtime/src/reference_data/subsystems/migrations.json +0 -18
- package/src/constraint-runtime/src/reference_data/subsystems/moreright.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/native_ts.json +0 -11
- package/src/constraint-runtime/src/reference_data/subsystems/outputStyles.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/plugins.json +0 -9
- package/src/constraint-runtime/src/reference_data/subsystems/remote.json +0 -11
- package/src/constraint-runtime/src/reference_data/subsystems/schemas.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/screens.json +0 -10
- package/src/constraint-runtime/src/reference_data/subsystems/server.json +0 -10
- package/src/constraint-runtime/src/reference_data/subsystems/services.json +0 -32
- package/src/constraint-runtime/src/reference_data/subsystems/skills.json +0 -27
- package/src/constraint-runtime/src/reference_data/subsystems/state.json +0 -13
- package/src/constraint-runtime/src/reference_data/subsystems/types.json +0 -18
- package/src/constraint-runtime/src/reference_data/subsystems/upstreamproxy.json +0 -9
- package/src/constraint-runtime/src/reference_data/subsystems/utils.json +0 -32
- package/src/constraint-runtime/src/reference_data/subsystems/vim.json +0 -12
- package/src/constraint-runtime/src/reference_data/subsystems/voice.json +0 -8
- package/src/constraint-runtime/src/reference_data/tools_snapshot.json +0 -1042
- package/src/constraint-runtime/src/remote/index.ts +0 -15
- package/src/constraint-runtime/src/remote_runtime.ts +0 -17
- package/src/constraint-runtime/src/runtime/index.ts +0 -1
- package/src/constraint-runtime/src/runtime/session.ts +0 -42
- package/src/constraint-runtime/src/schemas/index.ts +0 -15
- package/src/constraint-runtime/src/screens/index.ts +0 -15
- package/src/constraint-runtime/src/server/index.ts +0 -15
- package/src/constraint-runtime/src/services/index.ts +0 -15
- package/src/constraint-runtime/src/session_store.ts +0 -32
- package/src/constraint-runtime/src/setup.ts +0 -50
- package/src/constraint-runtime/src/skills/index.ts +0 -1
- package/src/constraint-runtime/src/skills/skill-registry.ts +0 -40
- package/src/constraint-runtime/src/state/index.ts +0 -15
- package/src/constraint-runtime/src/system_init.ts +0 -21
- package/src/constraint-runtime/src/thinking/engine.ts +0 -61
- package/src/constraint-runtime/src/thinking/index.ts +0 -1
- package/src/constraint-runtime/src/tool_pool.ts +0 -20
- package/src/constraint-runtime/src/tools/OpenCLI/execAdapter.ts +0 -12
- package/src/constraint-runtime/src/tools/OpenCLI/listAdapters.ts +0 -12
- package/src/constraint-runtime/src/tools/OpenCLI/runCommand.ts +0 -13
- package/src/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.ts +0 -10
- package/src/constraint-runtime/src/tools/PolymarketSDK/createOrder.ts +0 -13
- package/src/constraint-runtime/src/tools/PolymarketSDK/getMarket.ts +0 -14
- package/src/constraint-runtime/src/tools/PolymarketSDK/getOrders.ts +0 -10
- package/src/constraint-runtime/src/tools/PolymarketSDK/listMarkets.ts +0 -24
- package/src/constraint-runtime/src/tools/SafeSDK/confirmTransaction.ts +0 -13
- package/src/constraint-runtime/src/tools/SafeSDK/createTransaction.ts +0 -23
- package/src/constraint-runtime/src/tools/SafeSDK/deploySafe.ts +0 -12
- package/src/constraint-runtime/src/tools/SafeSDK/executeTransaction.ts +0 -12
- package/src/constraint-runtime/src/tools/SafeSDK/getBalance.ts +0 -10
- package/src/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.ts +0 -10
- package/src/constraint-runtime/src/tools/SafeSDK/proposeTransaction.ts +0 -14
- package/src/constraint-runtime/src/tools/WalletTools/autoPay.ts +0 -58
- package/src/constraint-runtime/src/tools/WalletTools/createWallet.ts +0 -19
- package/src/constraint-runtime/src/tools/WalletTools/getBalance.ts +0 -28
- package/src/constraint-runtime/src/tools/WalletTools/importWallet.ts +0 -34
- package/src/constraint-runtime/src/tools/WalletTools/sendTransaction.ts +0 -50
- package/src/constraint-runtime/src/tools/WalletTools/signMessage.ts +0 -23
- package/src/constraint-runtime/src/tools/WalletTools/transferToken.ts +0 -49
- package/src/constraint-runtime/src/tools.ts +0 -100
- package/src/constraint-runtime/src/transcript.ts +0 -23
- package/src/constraint-runtime/src/types/index.ts +0 -15
- package/src/constraint-runtime/src/upstream_proxy/index.ts +0 -15
- package/src/constraint-runtime/src/utils/index.ts +0 -15
- package/src/constraint-runtime/src/vim/index.ts +0 -15
- package/src/constraint-runtime/src/voice/index.ts +0 -15
- package/src/constraint-runtime/tests/agent.test.ts +0 -20
- package/src/constraint-runtime/tests/constraint.test.ts +0 -47
- package/src/constraint-runtime/tests/skill.test.ts +0 -23
- package/src/constraint-runtime/tests/thinking.test.ts +0 -28
- package/src/constraint-runtime/tsconfig.json +0 -13
- package/src/pi-ecosystem/index.ts +0 -453
- package/src/pi-ecosystem-colony/index.ts +0 -482
- package/src/pi-ecosystem-goals/index.ts +0 -585
- package/src/pi-ecosystem-judgment/decision.ts +0 -431
- package/src/pi-ecosystem-judgment/distillation.ts +0 -398
- package/src/pi-ecosystem-judgment/human-value-store.ts +0 -580
- package/src/pi-ecosystem-judgment/index.ts +0 -678
- package/src/pi-ecosystem-judgment/value-injection.ts +0 -744
- package/src/pi-ecosystem-mcp/index.ts +0 -427
- package/src/pi-ecosystem-subagents/index.ts +0 -408
- package/src/test/ai-judgment-test.ts +0 -92
- package/src/test/bollharness-integration.test.ts +0 -398
- package/src/test/channel-agent-multi-dialogue.ts +0 -265
- package/src/test/channel-heartbeat-agent-test.ts +0 -244
- package/src/test/constraint-layer.test.ts +0 -191
- package/src/test/diap-identity-test.ts +0 -222
- package/src/test/diap-quick-test.ts +0 -73
- package/src/test/global-shared-context.test.ts +0 -393
- package/src/test/harness-judgment-injection.test.ts +0 -353
- package/src/test/harness-workflow-integrator-test.ts +0 -285
- package/src/test/human-value-store.test.ts +0 -316
- package/src/test/hybrid-integration-test.ts +0 -126
- package/src/test/hybrid-messenger-verify.ts +0 -68
- package/src/test/iroh-bistream-debug.ts +0 -50
- package/src/test/iroh-communication.test.ts +0 -81
- package/src/test/iroh-debug-test.ts +0 -69
- package/src/test/iroh-diap-test.ts +0 -90
- package/src/test/iroh-direct-connect.ts +0 -65
- package/src/test/iroh-e2e-fixed.ts +0 -106
- package/src/test/iroh-e2e-same-process.ts +0 -83
- package/src/test/iroh-e2e.ts +0 -83
- package/src/test/iroh-final-e2e.ts +0 -84
- package/src/test/iroh-relay-test.ts +0 -46
- package/src/test/iroh-simple-test.ts +0 -49
- package/src/test/iroh-transport-verify.ts +0 -60
- package/src/test/iroh-transport.test.ts +0 -47
- package/src/test/iroh-two-nodes.ts +0 -87
- package/src/test/iroh-verify.ts +0 -55
- package/src/test/judgment-decision.test.ts +0 -373
- package/src/test/llm-judgment-integration.test.ts +0 -257
- package/src/test/p2p-agent-complex-dialogue.ts +0 -490
- package/src/test/p2p-agent-dialogue.ts +0 -423
- package/src/test/p2p-agent-full-bidirectional.ts +0 -686
- package/src/test/p2p-agent-harness-flow.ts +0 -562
- package/src/test/p2p-agent-harness-single.ts +0 -175
- package/src/test/p2p-ai-dialogue-test.ts +0 -374
- package/src/test/p2p-cid-connect-test.ts +0 -245
- package/src/test/p2p-connect-receiver.ts +0 -85
- package/src/test/p2p-iroh-test.ts +0 -214
- package/src/test/p2p-minimal-test.ts +0 -264
- package/src/test/p2p-node-1.ts +0 -172
- package/src/test/p2p-node-2.ts +0 -172
- package/src/test/p2p-server.ts +0 -335
- package/src/test/p2p-two-nodes-test.ts +0 -542
- package/src/test/pi-sdk.test.ts +0 -47
- package/src/test/set-persona.ts +0 -56
- package/src/test/simple.test.ts +0 -11
- package/src/test/storage-integration.test.ts +0 -191
- package/src/test/subagent-manager.test.ts +0 -392
- package/src/test/test-gate-flow.test.ts +0 -92
- package/src/test/workflow-engine.test.ts +0 -101
- package/src/web/design.md +0 -99
- package/src/workflows/collaboration.ts +0 -455
- package/src/workflows/index.ts +0 -64
- package/vitest.config.ts +0 -12
- package//346/203/263/346/263/225.md +0 -79
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { Endpoint } from '@rayhanadev/iroh';
|
|
2
|
-
|
|
3
|
-
const IROH_ALPN = 'bolloon/iroh/1';
|
|
4
|
-
|
|
5
|
-
async function testConnection() {
|
|
6
|
-
console.log('=== iroh Connection Debug Test ===\n');
|
|
7
|
-
|
|
8
|
-
console.log('[1] Starting server...');
|
|
9
|
-
const server = await Endpoint.createWithOptions({ alpns: [IROH_ALPN] });
|
|
10
|
-
await server.online();
|
|
11
|
-
console.log(` Server ID: ${server.nodeId()}`);
|
|
12
|
-
console.log(` Server addr: ${server.addr()}`);
|
|
13
|
-
|
|
14
|
-
let acceptResult: any = null;
|
|
15
|
-
const acceptPromise = server.accept().then(conn => {
|
|
16
|
-
acceptResult = conn;
|
|
17
|
-
console.log('[Server] ✅ Connection accepted!');
|
|
18
|
-
return conn;
|
|
19
|
-
}).catch(e => {
|
|
20
|
-
console.log('[Server] ❌ Accept error:', e.message || e);
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
console.log('\n[2] Starting client...');
|
|
24
|
-
const client = await Endpoint.createWithOptions({ alpns: [IROH_ALPN] });
|
|
25
|
-
await client.online();
|
|
26
|
-
console.log(` Client ID: ${client.nodeId()}`);
|
|
27
|
-
|
|
28
|
-
console.log('\n[3] Client connecting to server...');
|
|
29
|
-
const connectPromise = client.connect(server.nodeId(), IROH_ALPN)
|
|
30
|
-
.then(conn => {
|
|
31
|
-
console.log('[Client] ✅ Connected!');
|
|
32
|
-
return conn;
|
|
33
|
-
})
|
|
34
|
-
.catch(e => {
|
|
35
|
-
console.log('[Client] ❌ Connection error:', e.message || e);
|
|
36
|
-
return null;
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
console.log(' Waiting 20s for connection...');
|
|
40
|
-
|
|
41
|
-
const timeout = new Promise(r => setTimeout(r, 20000));
|
|
42
|
-
|
|
43
|
-
const result = await Promise.race([connectPromise, timeout]);
|
|
44
|
-
|
|
45
|
-
if (result && result !== timeout) {
|
|
46
|
-
console.log('\n[4] Connection established, testing message...');
|
|
47
|
-
const { send, recv } = await result.openBi();
|
|
48
|
-
await send.writeAll(Buffer.from('test:hello'));
|
|
49
|
-
await send.finish();
|
|
50
|
-
console.log(' Message sent');
|
|
51
|
-
|
|
52
|
-
await new Promise(r => setTimeout(r, 2000));
|
|
53
|
-
|
|
54
|
-
if (acceptResult) {
|
|
55
|
-
const data = await recv.readToEnd(1024);
|
|
56
|
-
console.log(` ✅ Received: "${new TextDecoder().decode(data)}"`);
|
|
57
|
-
console.log('\n✅ TEST PASSED');
|
|
58
|
-
}
|
|
59
|
-
} else if (!result) {
|
|
60
|
-
console.log('\n❌ Connection failed');
|
|
61
|
-
} else {
|
|
62
|
-
console.log('\n⏳ Connection timed out');
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
await server.close().catch(() => {});
|
|
66
|
-
await client.close().catch(() => {});
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
testConnection().catch(console.error);
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { AgentAuthManager, KeyManager } from '@diap/sdk';
|
|
2
|
-
import { initIrohIntegration, getIrohIntegration } from '../network/iroh-integration.js';
|
|
3
|
-
|
|
4
|
-
const IPFS_API = 'http://127.0.0.1:5001';
|
|
5
|
-
const IPFS_GATEWAY = 'http://127.0.0.1:8080';
|
|
6
|
-
|
|
7
|
-
async function main() {
|
|
8
|
-
console.log('╔═══════════════════════════════════════════╗');
|
|
9
|
-
console.log('║ iroh + DIAP Integration Test ║');
|
|
10
|
-
console.log('╚═══════════════════════════════════════════╝\n');
|
|
11
|
-
|
|
12
|
-
console.log('[1] Generating DIAP identity...');
|
|
13
|
-
const keyPair = KeyManager.generate();
|
|
14
|
-
console.log(` DID: ${keyPair.did}`);
|
|
15
|
-
console.log(` Name: test-agent-${keyPair.did.substring(0, 4)}`);
|
|
16
|
-
|
|
17
|
-
console.log('\n[2] Creating AgentAuthManager...');
|
|
18
|
-
const authManager = await AgentAuthManager.newWithRemoteIpfs(IPFS_API, IPFS_GATEWAY);
|
|
19
|
-
console.log(' AuthManager ready');
|
|
20
|
-
|
|
21
|
-
console.log('\n[3] Initializing iroh integration...');
|
|
22
|
-
const integration = await initIrohIntegration({
|
|
23
|
-
agentAuthManager: authManager,
|
|
24
|
-
keyPair: keyPair,
|
|
25
|
-
agentName: `test-agent-${keyPair.did.substring(0, 4)}`,
|
|
26
|
-
agentDescription: 'Test agent with iroh P2P transport',
|
|
27
|
-
agentTags: ['test', 'iroh'],
|
|
28
|
-
refreshIntervalMs: 5 * 60 * 1000,
|
|
29
|
-
discoveryIntervalMs: 30 * 1000,
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
const nodeId = integration.getNodeId();
|
|
33
|
-
console.log(`\n ✅ Iroh Node ID: ${nodeId}`);
|
|
34
|
-
|
|
35
|
-
const registration = integration.getRegistration();
|
|
36
|
-
if (registration) {
|
|
37
|
-
console.log(` ✅ DIAP CID: ${registration.cid}`);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
console.log('\n[4] Setting up message handlers...');
|
|
41
|
-
|
|
42
|
-
integration.onMessage('ping', (msg, from) => {
|
|
43
|
-
console.log(`\n 📥 Ping from ${from.substring(0, 12)}...`);
|
|
44
|
-
console.log(` Payload: "${new TextDecoder().decode(msg.payload)}"`);
|
|
45
|
-
|
|
46
|
-
console.log(' 📤 Sending pong...');
|
|
47
|
-
integration.sendTo(from, 'pong', new TextEncoder().encode('pong from ' + nodeId?.substring(0, 8)));
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
integration.onMessage('task', (msg, from) => {
|
|
51
|
-
console.log(`\n 📥 Task from ${from.substring(0, 12)}...`);
|
|
52
|
-
const taskData = new TextDecoder().decode(msg.payload);
|
|
53
|
-
console.log(` Task: ${taskData.substring(0, 80)}...`);
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
integration.onMessage('response', (msg, from) => {
|
|
57
|
-
console.log(`\n 📥 Response from ${from.substring(0, 12)}...`);
|
|
58
|
-
console.log(` Response: "${new TextDecoder().decode(msg.payload)}"`);
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
console.log(' Handlers registered for: ping, task, response');
|
|
62
|
-
|
|
63
|
-
console.log('\n[5] Connection info for other peers:');
|
|
64
|
-
console.log(' ───────────────────────────────────────');
|
|
65
|
-
console.log(` Node ID: ${nodeId}`);
|
|
66
|
-
console.log(' ───────────────────────────────────────');
|
|
67
|
-
console.log('\n To connect another peer, use this Node ID.');
|
|
68
|
-
|
|
69
|
-
console.log('\n[6] Waiting for connections (60s)...');
|
|
70
|
-
|
|
71
|
-
let tick = 0;
|
|
72
|
-
const ticker = setInterval(() => {
|
|
73
|
-
tick++;
|
|
74
|
-
const peers = integration.getDiscoveredPeers();
|
|
75
|
-
const connected = integration.getConnectedPeers();
|
|
76
|
-
process.stdout.write(`\r [${tick}s] Discovered: ${peers.length}, Connected: ${connected.length} `);
|
|
77
|
-
}, 1000);
|
|
78
|
-
|
|
79
|
-
await new Promise(resolve => setTimeout(resolve, 60000));
|
|
80
|
-
clearInterval(ticker);
|
|
81
|
-
|
|
82
|
-
console.log('\n\n[7] Shutting down...');
|
|
83
|
-
await integration.shutdown();
|
|
84
|
-
console.log('Done');
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
main().catch(e => {
|
|
88
|
-
console.error('Error:', e);
|
|
89
|
-
process.exit(1);
|
|
90
|
-
});
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { Endpoint } from '@rayhanadev/iroh';
|
|
2
|
-
|
|
3
|
-
const IROH_ALPN = 'bolloon/iroh/1';
|
|
4
|
-
|
|
5
|
-
async function testConnection() {
|
|
6
|
-
console.log('=== Direct Connection Test ===\n');
|
|
7
|
-
|
|
8
|
-
// Server
|
|
9
|
-
console.log('[1] Starting server...');
|
|
10
|
-
const server = await Endpoint.createWithOptions({ alpns: [IROH_ALPN] });
|
|
11
|
-
await server.online();
|
|
12
|
-
const serverId = server.nodeId();
|
|
13
|
-
console.log(` Server ID: ${serverId}`);
|
|
14
|
-
console.log(` Server addr: ${server.addr()}`);
|
|
15
|
-
|
|
16
|
-
// Accept in background
|
|
17
|
-
let acceptedConn: any = null;
|
|
18
|
-
server.accept().then((conn: any) => {
|
|
19
|
-
console.log('[Server] Connection accepted!');
|
|
20
|
-
acceptedConn = conn;
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
// Client
|
|
24
|
-
console.log('\n[2] Starting client...');
|
|
25
|
-
const client = await Endpoint.createWithOptions({ alpns: [IROH_ALPN] });
|
|
26
|
-
await client.online();
|
|
27
|
-
const clientId = client.nodeId();
|
|
28
|
-
console.log(` Client ID: ${clientId}`);
|
|
29
|
-
|
|
30
|
-
console.log('\n[3] Client connecting to server...');
|
|
31
|
-
try {
|
|
32
|
-
const conn = await client.connect(serverId, IROH_ALPN);
|
|
33
|
-
console.log('[Client] Connected!');
|
|
34
|
-
console.log(` Remote: ${conn.remoteNodeId()}`);
|
|
35
|
-
|
|
36
|
-
// Send message
|
|
37
|
-
console.log('\n[4] Client sending message...');
|
|
38
|
-
const { send, recv } = await conn.openBi();
|
|
39
|
-
await send.writeAll(Buffer.from('hello:world'));
|
|
40
|
-
await send.finish();
|
|
41
|
-
|
|
42
|
-
console.log('[5] Waiting for server to receive...');
|
|
43
|
-
await new Promise(r => setTimeout(r, 2000));
|
|
44
|
-
|
|
45
|
-
if (acceptedConn) {
|
|
46
|
-
console.log('[Server] Reading message...');
|
|
47
|
-
const data = await recv.readToEnd(1024);
|
|
48
|
-
console.log(` Received: "${new TextDecoder().decode(data)}"`);
|
|
49
|
-
console.log('✅ CONNECTION TEST PASSED');
|
|
50
|
-
} else {
|
|
51
|
-
console.log('❌ Server did not accept connection');
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
conn.close();
|
|
55
|
-
} catch (e) {
|
|
56
|
-
console.log('[Client] Connection failed:', e);
|
|
57
|
-
console.log('❌ CONNECTION TEST FAILED');
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
await server.close();
|
|
61
|
-
await client.close();
|
|
62
|
-
console.log('\nDone');
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
testConnection().catch(console.error);
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { Endpoint, Connection } from '@rayhanadev/iroh';
|
|
2
|
-
|
|
3
|
-
const IROH_ALPN = 'bolloon/iroh/1';
|
|
4
|
-
|
|
5
|
-
async function testConnection() {
|
|
6
|
-
console.log('=== iroh E2E Test ===\n');
|
|
7
|
-
|
|
8
|
-
console.log('[1] Starting server...');
|
|
9
|
-
const server = await Endpoint.createWithOptions({ alpns: [IROH_ALPN] });
|
|
10
|
-
await server.online();
|
|
11
|
-
console.log(` Server ID: ${server.nodeId()}`);
|
|
12
|
-
|
|
13
|
-
let serverConn: Connection | null = null;
|
|
14
|
-
|
|
15
|
-
server.accept().then((conn: Connection) => {
|
|
16
|
-
serverConn = conn;
|
|
17
|
-
console.log('[Server] ✅ Connection accepted!');
|
|
18
|
-
}).catch((e: any) => {
|
|
19
|
-
console.log('[Server] ❌ Accept error:', e.message || e);
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
console.log('\n[2] Starting client...');
|
|
23
|
-
const client = await Endpoint.createWithOptions({ alpns: [IROH_ALPN] });
|
|
24
|
-
await client.online();
|
|
25
|
-
console.log(` Client ID: ${client.nodeId()}`);
|
|
26
|
-
|
|
27
|
-
console.log('\n[3] Client connecting to server...');
|
|
28
|
-
let clientConn: any = null;
|
|
29
|
-
try {
|
|
30
|
-
clientConn = await client.connect(server.nodeId(), IROH_ALPN);
|
|
31
|
-
console.log('[Client] ✅ Connected!');
|
|
32
|
-
} catch (e: any) {
|
|
33
|
-
console.log('[Client] ❌ Connection failed:', e.message || e);
|
|
34
|
-
await server.close();
|
|
35
|
-
await client.close();
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
console.log('\n[4] Waiting for server to accept connection...');
|
|
40
|
-
let waitCount = 0;
|
|
41
|
-
while (!serverConn && waitCount < 20) {
|
|
42
|
-
await new Promise(r => setTimeout(r, 500));
|
|
43
|
-
waitCount++;
|
|
44
|
-
process.stdout.write(` Waiting... ${waitCount}/20\r`);
|
|
45
|
-
}
|
|
46
|
-
console.log('');
|
|
47
|
-
|
|
48
|
-
if (!serverConn) {
|
|
49
|
-
console.log('❌ Server did not accept connection');
|
|
50
|
-
await server.close();
|
|
51
|
-
await client.close();
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
console.log('[5] Client opening bi-stream...');
|
|
56
|
-
const clientStreams = await clientConn.openBi();
|
|
57
|
-
console.log(' Bi-stream opened');
|
|
58
|
-
|
|
59
|
-
console.log('[6] Server accepting bi-stream...');
|
|
60
|
-
let serverStreams: any = null;
|
|
61
|
-
try {
|
|
62
|
-
serverStreams = await serverConn.acceptBi();
|
|
63
|
-
console.log(' Bi-stream accepted');
|
|
64
|
-
} catch (e: any) {
|
|
65
|
-
console.log('[Server] ❌ Accept bi error:', e.message || e);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
if (!serverStreams) {
|
|
69
|
-
console.log('❌ Server could not accept bi-stream');
|
|
70
|
-
clientConn.close();
|
|
71
|
-
await server.close();
|
|
72
|
-
await client.close();
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
console.log('\n[7] Client sending message...');
|
|
77
|
-
const { send: clientSend, recv: clientRecv } = clientStreams;
|
|
78
|
-
const message = 'hello:this is a test message';
|
|
79
|
-
await clientSend.writeAll(Buffer.from(message));
|
|
80
|
-
await clientSend.finish();
|
|
81
|
-
console.log(` Sent: "${message}"`);
|
|
82
|
-
|
|
83
|
-
console.log('[8] Server receiving message...');
|
|
84
|
-
const { recv: serverRecv } = serverStreams;
|
|
85
|
-
const received = await serverRecv.readToEnd(1024);
|
|
86
|
-
console.log(` ✅ Received: "${new TextDecoder().decode(received)}"`);
|
|
87
|
-
|
|
88
|
-
console.log('\n[9] Server sending response...');
|
|
89
|
-
const { send: serverSend } = serverStreams;
|
|
90
|
-
const response = 'response:hello from server';
|
|
91
|
-
await serverSend.writeAll(Buffer.from(response));
|
|
92
|
-
await serverSend.finish();
|
|
93
|
-
console.log(` Sent: "${response}"`);
|
|
94
|
-
|
|
95
|
-
console.log('[10] Client receiving response...');
|
|
96
|
-
const resp = await clientRecv.readToEnd(1024);
|
|
97
|
-
console.log(` ✅ Received: "${new TextDecoder().decode(resp)}"`);
|
|
98
|
-
|
|
99
|
-
console.log('\n✅✅✅ FULL E2E TEST PASSED ✅✅✅');
|
|
100
|
-
|
|
101
|
-
clientConn.close();
|
|
102
|
-
await server.close();
|
|
103
|
-
await client.close();
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
testConnection().catch(console.error);
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { irohTransport } from '../network/iroh-transport.js';
|
|
2
|
-
|
|
3
|
-
async function testTwoNodes() {
|
|
4
|
-
console.log('╔═══════════════════════════════════════════╗');
|
|
5
|
-
console.log('║ iroh Two-Node E2E Test ║');
|
|
6
|
-
console.log('╚═══════════════════════════════════════════╝\n');
|
|
7
|
-
|
|
8
|
-
let serverNodeId: string | null = null;
|
|
9
|
-
let clientNodeId: string | null = null;
|
|
10
|
-
let messagesReceived = 0;
|
|
11
|
-
|
|
12
|
-
console.log('[1] Starting server node...');
|
|
13
|
-
const server = await irohTransport.start();
|
|
14
|
-
serverNodeId = server.nodeId;
|
|
15
|
-
console.log(` Server Node ID: ${serverNodeId}`);
|
|
16
|
-
console.log('');
|
|
17
|
-
|
|
18
|
-
irohTransport.onMessage('ping', (msg) => {
|
|
19
|
-
messagesReceived++;
|
|
20
|
-
console.log(` [Server] Got ping: "${new TextDecoder().decode(msg.payload)}"`);
|
|
21
|
-
irohTransport.sendMessage(msg.from, 'pong', new TextEncoder().encode('pong'));
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
irohTransport.onMessage('request', async (msg) => {
|
|
25
|
-
messagesReceived++;
|
|
26
|
-
console.log(` [Server] Got request: "${new TextDecoder().decode(msg.payload)}"`);
|
|
27
|
-
const response = await irohTransport.requestResponse(msg.from, 'response', new TextEncoder().encode('response data'));
|
|
28
|
-
if (response) {
|
|
29
|
-
console.log(` [Server] Response sent`);
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
console.log('[2] Starting client node...');
|
|
34
|
-
const clientTransport = new (await import('../network/iroh-transport.js')).IrohTransport();
|
|
35
|
-
const client = await clientTransport.start();
|
|
36
|
-
clientNodeId = client.node;
|
|
37
|
-
console.log(` Client Node ID: ${clientNodeId}`);
|
|
38
|
-
console.log('');
|
|
39
|
-
|
|
40
|
-
let clientPongs = 0;
|
|
41
|
-
let clientResponses = 0;
|
|
42
|
-
|
|
43
|
-
clientTransport.onMessage('pong', (msg) => {
|
|
44
|
-
clientPongs++;
|
|
45
|
-
console.log(` [Client] Got pong: "${new TextDecoder().decode(msg.payload)}"`);
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
clientTransport.onMessage('response', (msg) => {
|
|
49
|
-
clientResponses++;
|
|
50
|
-
console.log(` [Client] Got response: "${new TextDecoder().decode(msg.payload)}"`);
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
await new Promise(r => setTimeout(r, 500));
|
|
54
|
-
|
|
55
|
-
console.log('[3] Client sending ping to server...');
|
|
56
|
-
await clientTransport.sendMessage(serverNodeId!, 'ping', new TextEncoder().encode('hello'));
|
|
57
|
-
|
|
58
|
-
await new Promise(r => setTimeout(r, 500));
|
|
59
|
-
|
|
60
|
-
console.log('[4] Client sending request (with response)...');
|
|
61
|
-
await clientTransport.sendMessage(serverNodeId!, 'request', new TextEncoder().encode('need data'));
|
|
62
|
-
|
|
63
|
-
await new Promise(r => setTimeout(r, 2000));
|
|
64
|
-
|
|
65
|
-
console.log('\n[5] Results:');
|
|
66
|
-
console.log(` Messages received by server: ${messagesReceived}`);
|
|
67
|
-
console.log(` Pongs received by client: ${clientPongs}`);
|
|
68
|
-
console.log(` Responses received by client: ${clientResponses}`);
|
|
69
|
-
|
|
70
|
-
const success = messagesReceived >= 2 && clientPongs >= 1 && clientResponses >= 1;
|
|
71
|
-
|
|
72
|
-
console.log('\n' + (success ? '✅ E2E TEST PASSED' : '❌ E2E TEST FAILED'));
|
|
73
|
-
|
|
74
|
-
await clientTransport.shutdown();
|
|
75
|
-
await irohTransport.shutdown();
|
|
76
|
-
|
|
77
|
-
process.exit(success ? 0 : 1);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
testTwoNodes().catch(e => {
|
|
81
|
-
console.error('Test failed:', e);
|
|
82
|
-
process.exit(1);
|
|
83
|
-
});
|
package/src/test/iroh-e2e.ts
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { irohTransport } from '../network/iroh-transport.js';
|
|
2
|
-
|
|
3
|
-
const args = process.argv.slice(2);
|
|
4
|
-
const role = args[0] as 'server' | 'client';
|
|
5
|
-
const targetNodeId = args[1];
|
|
6
|
-
|
|
7
|
-
if (!role || !['server', 'client'].includes(role)) {
|
|
8
|
-
console.log('Usage:');
|
|
9
|
-
console.log(' Server: npx tsx src/test/iroh-e2e.ts server');
|
|
10
|
-
console.log(' Client: npx tsx src/test/iroh-e2e.ts client <server-node-id>');
|
|
11
|
-
process.exit(1);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
async function runServer() {
|
|
15
|
-
console.log('[Server] Starting iroh transport...');
|
|
16
|
-
const node = await irohTransport.start();
|
|
17
|
-
console.log('[Server] Node ID:', node.nodeId);
|
|
18
|
-
console.log('[Server] Waiting for connections...\n');
|
|
19
|
-
|
|
20
|
-
let msgCount = 0;
|
|
21
|
-
|
|
22
|
-
irohTransport.onMessage('ping', (msg) => {
|
|
23
|
-
msgCount++;
|
|
24
|
-
console.log(`[Server] #${msgCount} Ping from ${msg.from.substring(0, 16)}...`);
|
|
25
|
-
console.log(`[Server] Payload: "${new TextDecoder().decode(msg.payload)}"`);
|
|
26
|
-
irohTransport.sendMessage(msg.from, 'pong', new TextEncoder().encode('pong from server'));
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
irohTransport.onMessage('task', (msg) => {
|
|
30
|
-
msgCount++;
|
|
31
|
-
console.log(`[Server] #${msgCount} Task from ${msg.from.substring(0, 16)}...`);
|
|
32
|
-
const task = new TextDecoder().decode(msg.payload);
|
|
33
|
-
console.log(`[Server] Task: ${task.substring(0, 60)}...`);
|
|
34
|
-
irohTransport.sendMessage(msg.from, 'response', new TextEncoder().encode('task received'));
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
console.log('[Server] Ready. Press Ctrl+C to stop.');
|
|
38
|
-
await new Promise(() => {});
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
async function runClient(targetId: string) {
|
|
42
|
-
if (!targetId) {
|
|
43
|
-
console.error('[Client] Error: target node ID required');
|
|
44
|
-
process.exit(1);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
console.log('[Client] Starting iroh transport...');
|
|
48
|
-
const node = await irohTransport.start();
|
|
49
|
-
console.log('[Client] Node ID:', node.nodeId);
|
|
50
|
-
console.log('[Client] Target:', targetId);
|
|
51
|
-
console.log('');
|
|
52
|
-
|
|
53
|
-
irohTransport.onMessage('pong', (msg) => {
|
|
54
|
-
console.log(`[Client] Pong from ${msg.from.substring(0, 16)}...: "${new TextDecoder().decode(msg.payload)}"`);
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
irohTransport.onMessage('response', (msg) => {
|
|
58
|
-
console.log(`[Client] Response from ${msg.from.substring(0, 16)}...: "${new TextDecoder().decode(msg.payload)}"`);
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
await new Promise(resolve => setTimeout(resolve, 500));
|
|
62
|
-
|
|
63
|
-
console.log('[Client] Sending ping...');
|
|
64
|
-
await irohTransport.sendMessage(targetId, 'ping', new TextEncoder().encode('hello server'));
|
|
65
|
-
|
|
66
|
-
await new Promise(resolve => setTimeout(resolve, 300));
|
|
67
|
-
|
|
68
|
-
console.log('[Client] Sending task...');
|
|
69
|
-
const task = JSON.stringify({ id: '123', type: 'summarize', documentPath: '/test.pdf' });
|
|
70
|
-
await irohTransport.sendMessage(targetId, 'task', new TextEncoder().encode(task));
|
|
71
|
-
|
|
72
|
-
console.log('[Client] Waiting for responses...');
|
|
73
|
-
await new Promise(resolve => setTimeout(resolve, 5000));
|
|
74
|
-
|
|
75
|
-
await irohTransport.shutdown();
|
|
76
|
-
console.log('[Client] Done');
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
if (role === 'server') {
|
|
80
|
-
runServer();
|
|
81
|
-
} else {
|
|
82
|
-
runClient(targetNodeId!);
|
|
83
|
-
}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { Endpoint, Connection } from '@rayhanadev/iroh';
|
|
2
|
-
|
|
3
|
-
const IROH_ALPN = 'bolloon/iroh/1';
|
|
4
|
-
|
|
5
|
-
async function main() {
|
|
6
|
-
console.log('=== iroh E2E Final Test ===\n');
|
|
7
|
-
|
|
8
|
-
const serverEndpoint = await Endpoint.createWithOptions({ alpns: [IROH_ALPN] });
|
|
9
|
-
await serverEndpoint.online();
|
|
10
|
-
console.log('[Server] Started, ID:', serverEndpoint.nodeId().substring(0, 16) + '...');
|
|
11
|
-
|
|
12
|
-
const clientEndpoint = await Endpoint.createWithOptions({ alpns: [IROH_ALPN] });
|
|
13
|
-
await clientEndpoint.online();
|
|
14
|
-
console.log('[Client] Started, ID:', clientEndpoint.nodeId().substring(0, 16) + '...');
|
|
15
|
-
|
|
16
|
-
let serverConn: Connection | null = null;
|
|
17
|
-
let serverConnPromise = serverEndpoint.accept().then(c => { serverConn = c; return c; });
|
|
18
|
-
|
|
19
|
-
console.log('[Client] Connecting to server...');
|
|
20
|
-
let clientConn: any = null;
|
|
21
|
-
try {
|
|
22
|
-
clientConn = await clientEndpoint.connect(serverEndpoint.nodeId(), IROH_ALPN);
|
|
23
|
-
console.log('[Client] ✅ Connected!');
|
|
24
|
-
} catch (e: any) {
|
|
25
|
-
console.log('[Client] ❌ Failed:', e.message);
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
console.log('[Server] Waiting for accept...');
|
|
30
|
-
try {
|
|
31
|
-
await serverConnPromise;
|
|
32
|
-
console.log('[Server] ✅ Connection accepted!');
|
|
33
|
-
} catch (e: any) {
|
|
34
|
-
console.log('[Server] ❌ Accept failed:', e.message);
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
console.log('[Client] Opening bi-stream...');
|
|
39
|
-
let clientBi: any = null;
|
|
40
|
-
try {
|
|
41
|
-
clientBi = await clientConn.openBi();
|
|
42
|
-
console.log('[Client] ✅ Bi-stream opened');
|
|
43
|
-
} catch (e: any) {
|
|
44
|
-
console.log('[Client] ❌ openBi failed:', e.message);
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
console.log('[Server] Accepting bi-stream...');
|
|
49
|
-
let serverBi: any = null;
|
|
50
|
-
try {
|
|
51
|
-
serverBi = await serverConn!.acceptBi();
|
|
52
|
-
console.log('[Server] ✅ Bi-stream accepted');
|
|
53
|
-
} catch (e: any) {
|
|
54
|
-
console.log('[Server] ❌ acceptBi failed:', e.message);
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
console.log('\n[Test] Sending message client → server...');
|
|
59
|
-
const { send: cSend, recv: cRecv } = clientBi;
|
|
60
|
-
await cSend.writeAll(Buffer.from('hello from client'));
|
|
61
|
-
await cSend.finish();
|
|
62
|
-
|
|
63
|
-
const { recv: sRecv, send: sSend } = serverBi;
|
|
64
|
-
const msg = await sRecv.readToEnd(1024);
|
|
65
|
-
console.log('[Server] ✅ Received:', new TextDecoder().decode(msg));
|
|
66
|
-
|
|
67
|
-
console.log('[Server] Sending response...');
|
|
68
|
-
await sSend.writeAll(Buffer.from('hello from server'));
|
|
69
|
-
await sSend.finish();
|
|
70
|
-
|
|
71
|
-
const resp = await cRecv.readToEnd(1024);
|
|
72
|
-
console.log('[Client] ✅ Received:', new TextDecoder().decode(resp));
|
|
73
|
-
|
|
74
|
-
console.log('\n✅✅✅ E2E TEST PASSED ✅✅✅');
|
|
75
|
-
|
|
76
|
-
clientConn.close();
|
|
77
|
-
await serverEndpoint.close();
|
|
78
|
-
await clientEndpoint.close();
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
main().catch(e => {
|
|
82
|
-
console.error('Error:', e);
|
|
83
|
-
process.exit(1);
|
|
84
|
-
});
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Endpoint } from '@rayhanadev/iroh';
|
|
2
|
-
|
|
3
|
-
const IROH_ALPN = 'bolloon/iroh/1';
|
|
4
|
-
|
|
5
|
-
async function testConnection() {
|
|
6
|
-
console.log('=== iroh Relay Connection Test ===\n');
|
|
7
|
-
|
|
8
|
-
console.log('[1] Starting server...');
|
|
9
|
-
const server = await Endpoint.createWithOptions({ alpns: [IROH_ALPN] });
|
|
10
|
-
await server.online();
|
|
11
|
-
console.log(` Server ID: ${server.nodeId()}`);
|
|
12
|
-
console.log(` Server addr: ${server.addr()}`);
|
|
13
|
-
|
|
14
|
-
console.log('\n[2] Starting client...');
|
|
15
|
-
const client = await Endpoint.createWithOptions({ alpns: [IROH_ALPN] });
|
|
16
|
-
await client.online();
|
|
17
|
-
console.log(` Client ID: ${client.nodeId()}`);
|
|
18
|
-
|
|
19
|
-
console.log('\n[3] Client connecting to server via relay...');
|
|
20
|
-
try {
|
|
21
|
-
console.log(' Waiting for connection (relay may take time)...');
|
|
22
|
-
const conn = await client.connect(server.nodeId(), IROH_ALPN);
|
|
23
|
-
console.log('[Client] ✅ Connected!');
|
|
24
|
-
console.log(` Remote: ${conn.remoteNodeId()}`);
|
|
25
|
-
|
|
26
|
-
console.log('\n[4] Client sending message...');
|
|
27
|
-
const { send, recv } = await conn.openBi();
|
|
28
|
-
await send.writeAll(Buffer.from('hello:test message'));
|
|
29
|
-
await send.finish();
|
|
30
|
-
console.log(' Message sent');
|
|
31
|
-
|
|
32
|
-
console.log('\n[5] Server receiving...');
|
|
33
|
-
const data = await recv.readToEnd(1024);
|
|
34
|
-
console.log(` ✅ Received: "${new TextDecoder().decode(data)}"`);
|
|
35
|
-
|
|
36
|
-
console.log('\n✅ FULL E2E TEST PASSED');
|
|
37
|
-
conn.close();
|
|
38
|
-
} catch (e: any) {
|
|
39
|
-
console.log('[Client] ❌ Connection failed:', e.message || e);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
await server.close();
|
|
43
|
-
await client.close();
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
testConnection().catch(console.error);
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { Endpoint, Connection } from '@rayhanadev/iroh';
|
|
2
|
-
|
|
3
|
-
const IROH_ALPN = 'bolloon/iroh/1';
|
|
4
|
-
|
|
5
|
-
async function testConnection() {
|
|
6
|
-
console.log('=== iroh E2E Test (Simple) ===\n');
|
|
7
|
-
|
|
8
|
-
console.log('[1] Starting server...');
|
|
9
|
-
const server = await Endpoint.createWithOptions({ alpns: [IROH_ALPN] });
|
|
10
|
-
await server.online();
|
|
11
|
-
console.log(` Server ID: ${server.nodeId()}`);
|
|
12
|
-
|
|
13
|
-
console.log('[2] Starting client...');
|
|
14
|
-
const client = await Endpoint.createWithOptions({ alpns: [IROH_ALPN] });
|
|
15
|
-
await client.online();
|
|
16
|
-
console.log(` Client ID: ${client.nodeId()}`);
|
|
17
|
-
|
|
18
|
-
console.log('\n[3] Client connecting...');
|
|
19
|
-
let clientConn: any = null;
|
|
20
|
-
try {
|
|
21
|
-
clientConn = await client.connect(server.nodeId(), IROH_ALPN);
|
|
22
|
-
console.log('[Client] ✅ Connected!');
|
|
23
|
-
} catch (e: any) {
|
|
24
|
-
console.log('[Client] ❌ Failed:', e.message || e);
|
|
25
|
-
await server.close();
|
|
26
|
-
await client.close();
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
console.log('[4] Client sending datagram...');
|
|
31
|
-
try {
|
|
32
|
-
clientConn.sendDatagram(Buffer.from('hello:test datagram'));
|
|
33
|
-
console.log(' Datagram sent');
|
|
34
|
-
} catch (e: any) {
|
|
35
|
-
console.log('[Client] ❌ Datagram failed:', e.message || e);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
console.log('[5] Waiting 3s...');
|
|
39
|
-
await new Promise(r => setTimeout(r, 3000));
|
|
40
|
-
|
|
41
|
-
console.log('[6] Closing connections...');
|
|
42
|
-
clientConn.close();
|
|
43
|
-
await server.close();
|
|
44
|
-
await client.close();
|
|
45
|
-
|
|
46
|
-
console.log('\n✅ Connection test completed');
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
testConnection().catch(console.error);
|