@bolloon/bolloon-agent 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (581) hide show
  1. package/bin/bolloon-cli.cjs +157 -0
  2. package/bin/bolloon-daemon.sh +207 -0
  3. package/bin/bolloon.cmd +11 -0
  4. package/dist/agents/constraint-layer.js +10 -15
  5. package/dist/agents/pi-sdk.js +433 -106
  6. package/dist/agents/protocol.js +82 -1
  7. package/dist/agents/subagent-manager.js +2 -2
  8. package/dist/agents/workflow-engine.js +15 -20
  9. package/dist/agents/workflow-pivot-loop.js +541 -0
  10. package/dist/bollharness/src/index.js +5 -0
  11. package/dist/bollharness/src/scripts/checks/check_adr_plan_numbering.js +6 -0
  12. package/dist/bollharness/src/scripts/checks/check_api_types.js +45 -0
  13. package/dist/bollharness/src/scripts/checks/check_artifact_link.js +146 -0
  14. package/dist/bollharness/src/scripts/checks/check_bridge_deps.js +6 -0
  15. package/dist/bollharness/src/scripts/checks/check_bugfix_binding.js +6 -0
  16. package/dist/bollharness/src/scripts/checks/check_bugfix_binding_ci.js +6 -0
  17. package/dist/bollharness/src/scripts/checks/check_doc_file_references.js +6 -0
  18. package/dist/bollharness/src/scripts/checks/check_doc_freshness.js +135 -0
  19. package/dist/bollharness/src/scripts/checks/check_doc_links.js +31 -0
  20. package/dist/bollharness/src/scripts/checks/check_file_existence_claims.js +6 -0
  21. package/dist/bollharness/src/scripts/checks/check_fragment_integrity.js +34 -0
  22. package/dist/bollharness/src/scripts/checks/check_hook_installed.js +63 -0
  23. package/dist/bollharness/src/scripts/checks/check_issue_closure.js +41 -0
  24. package/dist/bollharness/src/scripts/checks/check_mcp_parity.js +6 -0
  25. package/dist/bollharness/src/scripts/checks/check_security.js +48 -0
  26. package/dist/bollharness/src/scripts/checks/check_skill_parity.js +6 -0
  27. package/dist/bollharness/src/scripts/checks/check_versions.js +6 -0
  28. package/dist/bollharness/src/scripts/checks/finding.js +13 -0
  29. package/dist/bollharness/src/scripts/checks/next_decision_number.js +20 -0
  30. package/dist/bollharness/src/scripts/checks/regenerate_magic_docs.js +6 -0
  31. package/dist/bollharness/src/scripts/ci/detect_rebaseline_triggers.js +8 -0
  32. package/dist/bollharness/src/scripts/ci/scan_subprocess_cfg.js +8 -0
  33. package/dist/bollharness/src/scripts/ci/scan_verify_artifacts.js +8 -0
  34. package/dist/bollharness/src/scripts/ci/scan_yaml_schema.js +8 -0
  35. package/dist/bollharness/src/scripts/context_router.js +67 -0
  36. package/dist/bollharness/src/scripts/deploy-guard.js +157 -0
  37. package/dist/bollharness/src/scripts/guard-feedback.js +192 -0
  38. package/dist/bollharness/src/scripts/guard_router.js +158 -0
  39. package/dist/bollharness/src/scripts/hooks/_hook_output.js +6 -0
  40. package/dist/bollharness/src/scripts/hooks/auto-python3.js +6 -0
  41. package/dist/bollharness/src/scripts/hooks/deploy-progress-on-session-end.js +6 -0
  42. package/dist/bollharness/src/scripts/hooks/failure-analyzer.js +6 -0
  43. package/dist/bollharness/src/scripts/hooks/gate-judgment-inject.js +92 -0
  44. package/dist/bollharness/src/scripts/hooks/gate-transition-judgment.js +63 -0
  45. package/dist/bollharness/src/scripts/hooks/inbox-ack.js +6 -0
  46. package/dist/bollharness/src/scripts/hooks/inbox-inject-on-start.js +6 -0
  47. package/dist/bollharness/src/scripts/hooks/inbox-validate.js +6 -0
  48. package/dist/bollharness/src/scripts/hooks/inbox-write-ledger.js +6 -0
  49. package/dist/bollharness/src/scripts/hooks/initializer-agent.js +6 -0
  50. package/dist/bollharness/src/scripts/hooks/loop-detection.js +73 -0
  51. package/dist/bollharness/src/scripts/hooks/owner-guard.js +6 -0
  52. package/dist/bollharness/src/scripts/hooks/precompact.js +6 -0
  53. package/dist/bollharness/src/scripts/hooks/review-agent-gatekeeper.js +6 -0
  54. package/dist/bollharness/src/scripts/hooks/risk-tracker.js +108 -0
  55. package/dist/bollharness/src/scripts/hooks/sanitize-on-read.js +6 -0
  56. package/dist/bollharness/src/scripts/hooks/session-reflection.js +7 -0
  57. package/dist/bollharness/src/scripts/hooks/session-start-magic-docs.js +7 -0
  58. package/dist/bollharness/src/scripts/hooks/session-start-reset-risk.js +7 -0
  59. package/dist/bollharness/src/scripts/hooks/session-start-toolkit-reminder.js +7 -0
  60. package/dist/bollharness/src/scripts/hooks/stop-evaluator.js +157 -0
  61. package/dist/bollharness/src/scripts/hooks/tool-call-counter.js +6 -0
  62. package/dist/bollharness/src/scripts/hooks/trace-analyzer.js +10 -0
  63. package/dist/bollharness/src/scripts/install/install-trust-token.js +7 -0
  64. package/dist/bollharness/src/scripts/install/multi_project_registry.js +9 -0
  65. package/dist/bollharness/src/scripts/install/phase2_auto.js +21 -0
  66. package/dist/bollharness/src/scripts/install/pre_commit_installer.js +6 -0
  67. package/dist/bollharness/src/scripts/install/tier_selector.js +7 -0
  68. package/dist/bollharness/src/scripts/install/transcript_miner.js +7 -0
  69. package/dist/bollharness/src/scripts/lib/claim_patterns.js +10 -0
  70. package/dist/bollharness/src/scripts/lib/sanitize_patterns.js +12 -0
  71. package/dist/bollharness/src/scripts/sanitize.js +6 -0
  72. package/dist/bollharness-integration/channel-judgment-engine.js +530 -0
  73. package/dist/bollharness-integration/context-chain-router.js +383 -0
  74. package/dist/bollharness-integration/context-router-judgment.js +13 -21
  75. package/dist/bollharness-integration/context-router.js +22 -64
  76. package/dist/bollharness-integration/gate-state-machine.js +14 -19
  77. package/dist/bollharness-integration/gate-transition-hooks.js +16 -61
  78. package/dist/bollharness-integration/guard-checker.js +21 -68
  79. package/dist/bollharness-integration/index.js +14 -124
  80. package/dist/bollharness-integration/integration.js +13 -20
  81. package/dist/bollharness-integration/llm-judgment-engine.js +569 -0
  82. package/dist/bollharness-integration/skill-adapter.js +18 -64
  83. package/dist/cli-entry.js +261 -0
  84. package/dist/constraint-runtime/src/commands.js +17 -7
  85. package/dist/constraint-runtime/src/constraint/budget.js +1 -6
  86. package/dist/constraint-runtime/src/constraint/permission.js +1 -6
  87. package/dist/constraint-runtime/src/models.js +1 -3
  88. package/dist/constraint-runtime/src/tools.js +17 -7
  89. package/dist/constraints/index.js +1 -7
  90. package/dist/documents/reader.js +8 -49
  91. package/dist/heartbeat/DaemonManager.js +242 -0
  92. package/dist/heartbeat/HealthMonitor.js +285 -0
  93. package/dist/heartbeat/StartupVerifier.js +205 -0
  94. package/dist/heartbeat/Watchdog.js +168 -0
  95. package/dist/heartbeat/index.js +84 -0
  96. package/dist/heartbeat/types.js +5 -0
  97. package/dist/index.js +381 -28
  98. package/dist/llm/config-store.js +31 -57
  99. package/dist/llm/llm-judgment-client.js +389 -0
  100. package/dist/llm/pi-ai.js +9 -52
  101. package/dist/network/agent-network.js +46 -90
  102. package/dist/network/hybrid-messenger.js +125 -0
  103. package/dist/network/iroh-bootstrap.js +38 -0
  104. package/dist/network/iroh-discovery.js +145 -0
  105. package/dist/network/iroh-integration.js +9 -16
  106. package/dist/network/iroh-transport.js +10 -48
  107. package/dist/network/p2p.js +23 -62
  108. package/dist/network/storage/adapters/json-adapter.js +4 -42
  109. package/dist/network/storage/index.js +147 -0
  110. package/dist/network/storage/types.js +14 -0
  111. package/dist/pi-ecosystem/index.js +233 -0
  112. package/dist/pi-ecosystem-colony/index.js +29 -90
  113. package/dist/pi-ecosystem-goals/index.js +20 -74
  114. package/dist/pi-ecosystem-judgment/decision.js +29 -47
  115. package/dist/pi-ecosystem-judgment/distillation.js +16 -29
  116. package/dist/pi-ecosystem-judgment/human-value-store.js +13 -60
  117. package/dist/pi-ecosystem-judgment/index.js +21 -74
  118. package/dist/pi-ecosystem-judgment/value-injection.js +26 -72
  119. package/dist/pi-ecosystem-mcp/index.js +24 -78
  120. package/dist/pi-ecosystem-subagents/index.js +20 -69
  121. package/dist/social/ant-colony/AdaptiveHeartbeat.js +3 -8
  122. package/dist/social/ant-colony/PheromoneEngine.js +11 -49
  123. package/dist/social/ant-colony/index.js +6 -0
  124. package/dist/social/ant-colony/types.js +4 -8
  125. package/dist/social/channels/ChannelManager.js +8 -46
  126. package/dist/social/channels/DiapChannelBridge.js +9 -47
  127. package/dist/social/channels/InterestMatcher.js +2 -7
  128. package/dist/social/channels/channel-agent-session.js +309 -0
  129. package/dist/social/channels/channel-heartbeat-agent.js +494 -0
  130. package/dist/social/channels/diap-doc-parser.js +204 -0
  131. package/dist/social/channels/harness-workflow-integrator.js +446 -0
  132. package/dist/social/channels/index.js +9 -0
  133. package/dist/social/channels/types.js +3 -7
  134. package/dist/social/global-shared-context.js +6 -47
  135. package/dist/social/heartbeat.js +29 -72
  136. package/dist/social/persona/enhanced-persona.js +299 -0
  137. package/dist/web/client.js +302 -136
  138. package/dist/web/components/p2p/index.js +159 -9
  139. package/dist/web/components/p2p/p2p-connection.js +136 -0
  140. package/dist/web/components/p2p/p2p-manager.js +24 -0
  141. package/dist/web/components/p2p/p2p-store-memory.js +1 -1
  142. package/dist/web/components/p2p/types.js +7 -0
  143. package/dist/web/index.html +5 -0
  144. package/dist/web/style.css +118 -0
  145. package/package.json +12 -6
  146. package/scripts/build-cli.js +206 -0
  147. package/scripts/postinstall.js +153 -0
  148. package/src/agents/pi-sdk.ts +347 -28
  149. package/src/agents/protocol.ts +95 -1
  150. package/src/agents/workflow-pivot-loop.ts +674 -0
  151. package/src/bollharness/scripts/context-fragments/pi-agent-operations.md +34 -0
  152. package/src/cli-entry.ts +304 -0
  153. package/src/heartbeat/DaemonManager.ts +283 -0
  154. package/src/heartbeat/HealthMonitor.ts +316 -0
  155. package/src/heartbeat/StartupVerifier.ts +223 -0
  156. package/src/heartbeat/Watchdog.ts +198 -0
  157. package/src/heartbeat/index.ts +108 -0
  158. package/src/heartbeat/types.ts +82 -0
  159. package/src/llm/config-store.ts +23 -5
  160. package/src/network/iroh-transport.ts +3 -3
  161. package/src/web/client.js +302 -136
  162. package/src/web/components/p2p/P2PModal.tsx +91 -3
  163. package/src/web/components/p2p/index.ts +171 -9
  164. package/src/web/components/p2p/p2p-connection.ts +153 -1
  165. package/src/web/components/p2p/p2p-manager.ts +39 -1
  166. package/src/web/components/p2p/p2p-store-memory.ts +1 -1
  167. package/src/web/components/p2p/p2p-tools.ts +315 -0
  168. package/src/web/components/p2p/types.ts +58 -0
  169. package/src/web/index.html +5 -0
  170. package/src/web/server.ts +353 -36
  171. package/src/web/style.css +118 -0
  172. package/tsconfig.cli.json +16 -0
  173. package/tsconfig.electron.json +1 -1
  174. package/tsconfig.json +1 -2
  175. package/dist/constraint-runtime/tests/agent.test.js +0 -16
  176. package/dist/constraint-runtime/tests/constraint.test.js +0 -41
  177. package/dist/constraint-runtime/tests/skill.test.js +0 -19
  178. package/dist/constraint-runtime/tests/thinking.test.js +0 -22
  179. package/dist/electron-preload.js +0 -15
  180. package/dist/electron-preload.js.map +0 -1
  181. package/dist/electron.js +0 -206
  182. package/dist/electron.js.map +0 -1
  183. package/dist/test/constraint-layer.test.js +0 -164
  184. package/dist/test/global-shared-context.test.js +0 -315
  185. package/dist/test/pi-sdk.test.js +0 -47
  186. package/dist/test/set-persona.test.js +0 -38
  187. package/dist/test/subagent-manager.test.js +0 -276
  188. package/dist/test/workflow-engine.test.js +0 -87
  189. package/dist/web/server.js +0 -1647
  190. package/dist/web/server.js.map +0 -1
  191. package/dist/workflows/collaboration.js +0 -374
  192. package/dist/workflows/index.js +0 -54
  193. package/docs/agent-communication.md +0 -333
  194. package/docs/plans/2026-05-15-document-agent-design.md +0 -479
  195. package/docs/plans/2026-05-15-document-agent-implementation-plan.md +0 -792
  196. package/docs/plans/2026-05-16-chat-ui-design.md +0 -86
  197. package/docs/plans/2026-05-16-constraint-runtime-design.md +0 -106
  198. package/docs/plans/2026-05-16-constraint-runtime-implementation.md +0 -441
  199. package/docs//346/225/260/345/255/246/350/276/205/345/212/251/346/231/272/350/203/275/344/275/223-/346/240/270/345/277/203/346/225/210/346/236/234/345/256/232/344/271/211.md +0 -287
  200. package/src/bollharness/.boll/CLAUDE.md.template +0 -34
  201. package/src/bollharness/.boll/MANIFEST.yaml +0 -213
  202. package/src/bollharness/.boll/active-review-agents/.gitkeep +0 -0
  203. package/src/bollharness/.boll/agents/review-base.yaml +0 -108
  204. package/src/bollharness/.boll/deploy-allowlist.yaml +0 -38
  205. package/src/bollharness/.boll/inbox/schema/message-v1.json +0 -99
  206. package/src/bollharness/.boll/install-staging/.gitkeep +0 -0
  207. package/src/bollharness/.boll/issue-adapter.yaml +0 -31
  208. package/src/bollharness/.boll/plugins/boll-mode-toolkit/contracts/mode-contract.md +0 -85
  209. package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +0 -102
  210. package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/review-contract.yaml +0 -247
  211. package/src/bollharness/.boll/rules/backend-routes.md +0 -31
  212. package/src/bollharness/.boll/rules/closure-semantics.md +0 -30
  213. package/src/bollharness/.boll/rules/env-vars.md +0 -32
  214. package/src/bollharness/.boll/rules/hanis-protocol.md +0 -145
  215. package/src/bollharness/.boll/rules/repo-structure.md +0 -42
  216. package/src/bollharness/.boll/rules/review-agent-isolation.md +0 -73
  217. package/src/bollharness/.boll/rules/source-of-truth.md +0 -33
  218. package/src/bollharness/.boll/settings.json +0 -180
  219. package/src/bollharness/.boll/settings.json.template +0 -31
  220. package/src/bollharness/.boll/skills/arch/SKILL.md +0 -372
  221. package/src/bollharness/.boll/skills/bug-pipeline/SKILL.md +0 -168
  222. package/src/bollharness/.boll/skills/bug-triage/SKILL.md +0 -161
  223. package/src/bollharness/.boll/skills/context-chains/SKILL.md +0 -250
  224. package/src/bollharness/.boll/skills/context-chains/context-chain-index.md +0 -48
  225. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/code_change_extractor.ts +0 -142
  226. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/debugging_extractor.ts +0 -126
  227. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/design_extractor.ts +0 -148
  228. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/planning_extractor.ts +0 -162
  229. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/question_extractor.ts +0 -116
  230. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/review_extractor.ts +0 -136
  231. package/src/bollharness/.boll/skills/crystal-learn/SKILL.md +0 -93
  232. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-0.md +0 -34
  233. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-1.md +0 -34
  234. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-2.md +0 -35
  235. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-3.md +0 -34
  236. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-4.md +0 -43
  237. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-5.md +0 -34
  238. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-6.md +0 -37
  239. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-7.md +0 -46
  240. package/src/bollharness/.boll/skills/guardian-fixer/PROMPT.md +0 -415
  241. package/src/bollharness/.boll/skills/guardian-fixer/SKILL.md +0 -320
  242. package/src/bollharness/.boll/skills/harness-dev/SKILL.md +0 -93
  243. package/src/bollharness/.boll/skills/harness-dev/examples/README.md +0 -227
  244. package/src/bollharness/.boll/skills/harness-dev-handoff/SKILL.md +0 -165
  245. package/src/bollharness/.boll/skills/harness-eng/SKILL.md +0 -110
  246. package/src/bollharness/.boll/skills/harness-eng-test/SKILL.md +0 -79
  247. package/src/bollharness/.boll/skills/harness-lab/SKILL.md +0 -170
  248. package/src/bollharness/.boll/skills/harness-ops/SKILL.md +0 -57
  249. package/src/bollharness/.boll/skills/harness-voice/SKILL.md +0 -183
  250. package/src/bollharness/.boll/skills/judgment/SKILL.md +0 -115
  251. package/src/bollharness/.boll/skills/lead/SKILL.md +0 -245
  252. package/src/bollharness/.boll/skills/lead/install-wow-harness.md +0 -77
  253. package/src/bollharness/.boll/skills/lead/ref-review-sop.md +0 -91
  254. package/src/bollharness/.boll/skills/lead/ref-stages.md +0 -129
  255. package/src/bollharness/.boll/skills/skill-discovery/SKILL.md +0 -169
  256. package/src/bollharness/.boll/skills/task-arch/SKILL.md +0 -106
  257. package/src/bollharness/.boll/skills/toolkit/SKILL.md +0 -57
  258. package/src/bollharness/.boll/tasks/.gitkeep +0 -0
  259. package/src/bollharness/.boll/toolkit-index.yaml +0 -112
  260. package/src/bollharness/.claude/agents/review-base.yaml +0 -108
  261. package/src/bollharness/.claude/plugins/boll-mode-toolkit/.claude-plugin/plugin.json +0 -44
  262. package/src/bollharness/.claude/plugins/boll-review-toolkit/.claude-plugin/plugin.json +0 -24
  263. package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +0 -102
  264. package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/review-contract.yaml +0 -247
  265. package/src/bollharness/.claude/settings.json +0 -157
  266. package/src/bollharness/.claude/skills/arch/SKILL.md +0 -64
  267. package/src/bollharness/.claude/skills/crystal-learn/SKILL.md +0 -93
  268. package/src/bollharness/.claude/skills/guardian-fixer/PROMPT.md +0 -44
  269. package/src/bollharness/.claude/skills/guardian-fixer/SKILL.md +0 -324
  270. package/src/bollharness/.claude/skills/harness-dev/SKILL.md +0 -93
  271. package/src/bollharness/.claude/skills/harness-dev/examples/README.md +0 -17
  272. package/src/bollharness/.claude/skills/harness-dev-handoff/SKILL.md +0 -165
  273. package/src/bollharness/.claude/skills/harness-eng/SKILL.md +0 -183
  274. package/src/bollharness/.claude/skills/harness-eng-test/SKILL.md +0 -57
  275. package/src/bollharness/.claude/skills/harness-ops/SKILL.md +0 -57
  276. package/src/bollharness/.claude/skills/harness-voice/SKILL.md +0 -84
  277. package/src/bollharness/.claude/skills/lead/INDEX.md +0 -28
  278. package/src/bollharness/.claude/skills/lead/SKILL.md +0 -24
  279. package/src/bollharness/.claude/skills/lead/install-wow-harness.md +0 -77
  280. package/src/bollharness/.claude/skills/lead/ref-review-sop.md +0 -48
  281. package/src/bollharness/.claude/skills/lead/ref-stages.md +0 -58
  282. package/src/bollharness/.claude/skills/plan-lock/SKILL.md +0 -74
  283. package/src/bollharness/.claude/skills/skill-discovery/SKILL.md +0 -120
  284. package/src/bollharness/.claude/skills/task-arch/SKILL.md +0 -106
  285. package/src/bollharness/.claude/skills/toolkit/SKILL.md +0 -57
  286. package/src/bollharness/.claude/skills/toolkit/list.sh +0 -92
  287. package/src/bollharness/.githooks/pre-commit +0 -21
  288. package/src/bollharness/.github/workflows/ci.yml +0 -88
  289. package/src/bollharness/docs/decisions/ADR-030-guard-signal-protocol-and-governance-reload.md +0 -1076
  290. package/src/bollharness/docs/decisions/ADR-038-harness-optimization-strategy.md +0 -2039
  291. package/src/bollharness/docs/decisions/ADR-041-codex-claude-code-division-of-labor.md +0 -128
  292. package/src/bollharness/docs/decisions/ADR-H1-crystal-learn-revival.md +0 -188
  293. package/src/bollharness/docs/decisions/ADR-H2-identity-isolation.md +0 -183
  294. package/src/bollharness/docs/decisions/ADR-H3-memory-scope.md +0 -133
  295. package/src/bollharness/docs/decisions/ADR-H4-prompt-governance.md +0 -146
  296. package/src/bollharness/docs/decisions/ADR-H5-gate-quantization.md +0 -212
  297. package/src/bollharness/docs/decisions/ADR-H6-state-file-health.md +0 -211
  298. package/src/bollharness/docs/decisions/ADR-H8-issue-and-doc-compliance.md +0 -202
  299. package/src/bollharness/docs/decisions/ADR-H9-mailbox.md +0 -231
  300. package/src/bollharness/docs/decisions/PLAN-H1-crystal-learn-revival.md +0 -270
  301. package/src/bollharness/docs/decisions/PLAN-H2-identity-isolation.md +0 -291
  302. package/src/bollharness/docs/decisions/PLAN-H3-memory-scope.md +0 -228
  303. package/src/bollharness/docs/decisions/PLAN-H4-prompt-governance.md +0 -227
  304. package/src/bollharness/docs/decisions/PLAN-H5-gate-quantization.md +0 -239
  305. package/src/bollharness/docs/decisions/PLAN-H6-state-file-health.md +0 -325
  306. package/src/bollharness/docs/decisions/PLAN-H8-issue-and-doc-compliance.md +0 -242
  307. package/src/bollharness/docs/decisions/PLAN-H9-mailbox.md +0 -378
  308. package/src/bollharness/docs/launch-article-en.md +0 -276
  309. package/src/bollharness/docs/launch-article-zh.md +0 -305
  310. package/src/bollharness/docs/practice.html +0 -356
  311. package/src/bollharness/docs/practice.md +0 -82
  312. package/src/bollharness/docs/research/round-1/README.md +0 -11
  313. package/src/bollharness/docs/research/round-2/README.md +0 -11
  314. package/src/bollharness/docs/research/round-3/README.md +0 -11
  315. package/src/bollharness/docs/research/round-4/README.md +0 -11
  316. package/src/bollharness/docs/research/round-5/README.md +0 -11
  317. package/src/bollharness/docs/research/round-6/README.md +0 -11
  318. package/src/bollharness/package-lock.json +0 -48
  319. package/src/bollharness/reference/boll-reference/.claude/rules/backend-routes.md +0 -268
  320. package/src/bollharness/reference/boll-reference/.claude/rules/bridge.md +0 -20
  321. package/src/bollharness/reference/boll-reference/.claude/rules/closure-semantics.md +0 -30
  322. package/src/bollharness/reference/boll-reference/.claude/rules/coaching.md +0 -13
  323. package/src/bollharness/reference/boll-reference/.claude/rules/env-vars.md +0 -50
  324. package/src/bollharness/reference/boll-reference/.claude/rules/hackathon.md +0 -12
  325. package/src/bollharness/reference/boll-reference/.claude/rules/repo-structure.md +0 -184
  326. package/src/bollharness/reference/boll-reference/.claude/rules/review-agent-isolation.md +0 -112
  327. package/src/bollharness/reference/boll-reference/.claude/rules/scenes.md +0 -12
  328. package/src/bollharness/reference/boll-reference/.claude/skills/arch/SKILL.md +0 -551
  329. package/src/bollharness/reference/boll-reference/.claude/skills/boll-animation/SKILL.md +0 -26
  330. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/SKILL.md +0 -227
  331. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/agents/openai.yaml +0 -4
  332. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-failure-taxonomy.md +0 -142
  333. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-validation-ladder.md +0 -107
  334. package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal/SKILL.md +0 -893
  335. package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal-learn/SKILL.md +0 -89
  336. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/SKILL.md +0 -93
  337. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/examples/README.md +0 -209
  338. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev-handoff/SKILL.md +0 -165
  339. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng/SKILL.md +0 -110
  340. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-frontend/SKILL.md +0 -203
  341. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-hdc/SKILL.md +0 -27
  342. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-orchestrator/SKILL.md +0 -28
  343. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-prompt/SKILL.md +0 -27
  344. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-test/SKILL.md +0 -79
  345. package/src/bollharness/reference/boll-reference/.claude/skills/boll-lab/SKILL.md +0 -372
  346. package/src/bollharness/reference/boll-reference/.claude/skills/boll-run/SKILL.md +0 -437
  347. package/src/bollharness/reference/boll-reference/.claude/skills/boll-ux-appstore/SKILL.md +0 -27
  348. package/src/bollharness/reference/boll-reference/.claude/skills/boll-voice/SKILL.md +0 -442
  349. package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/PROMPT.md +0 -421
  350. package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/SKILL.md +0 -326
  351. package/src/bollharness/reference/boll-reference/.claude/skills/lead/SKILL.md +0 -155
  352. package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-review-sop.md +0 -91
  353. package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-stages.md +0 -129
  354. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-preview.png +0 -0
  355. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v2.png +0 -0
  356. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v3.png +0 -0
  357. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v4.png +0 -0
  358. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/SKILL.md +0 -425
  359. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-three-checks.md +0 -62
  360. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-wp-templates.md +0 -78
  361. package/src/bollharness/reference/boll-reference/.claude/skills/task-arch/SKILL.md +0 -76
  362. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/SKILL.md +0 -57
  363. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/beads-graph.sh +0 -153
  364. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/SKILL.md +0 -52
  365. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/beads-auto-link.sh +0 -76
  366. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/SKILL.md +0 -50
  367. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/beads-sync-proj.sh +0 -108
  368. package/src/bollharness/reference/boll-reference/docs/architecture/AGENT-PROFILE.md +0 -151
  369. package/src/bollharness/reference/boll-reference/docs/architecture/COST-STRUCTURE.md +0 -56
  370. package/src/bollharness/reference/boll-reference/docs/architecture/INDEX.md +0 -76
  371. package/src/bollharness/reference/boll-reference/docs/architecture/MODULE1-INTENT-FIELD.md +0 -116
  372. package/src/bollharness/reference/boll-reference/docs/architecture/MODULE2-CRYSTALLIZATION.md +0 -200
  373. package/src/bollharness/reference/boll-reference/docs/architecture/PRINCIPLES.md +0 -84
  374. package/src/bollharness/reference/boll-reference/docs/architecture/PROTOCOL-CORE.md +0 -209
  375. package/src/bollharness/reference/boll-reference/docs/architecture/VISION.md +0 -181
  376. package/src/bollharness/reference/boll-reference/docs/architecture/discussions/D-01-MARKET-SCENE-PROTOCOL.md +0 -754
  377. package/src/bollharness/templates/scaffold/.boll/guard/.gitkeep +0 -0
  378. package/src/bollharness/templates/scaffold/.boll/metrics/.gitkeep +0 -0
  379. package/src/bollharness/templates/scaffold/.boll/state/.gitkeep +0 -0
  380. package/src/bollharness/templates/scaffold/docs/INDEX.md +0 -3
  381. package/src/bollharness/templates/scaffold/docs/decisions/ADR_TEMPLATE.md +0 -38
  382. package/src/bollharness/templates/scaffold/docs/decisions/PLAN_TEMPLATE.md +0 -45
  383. package/src/bollharness/templates/scaffold/docs/decisions/tasks/.gitkeep +0 -2
  384. package/src/bollharness/templates/scaffold/docs/issues/.gitkeep +0 -0
  385. package/src/bollharness/templates/scaffold/docs/issues/GUARD_ISSUE_TEMPLATE.md +0 -35
  386. package/src/bollharness/templates/scaffold/docs/issues/ISSUE_TEMPLATE.md +0 -51
  387. package/src/bollharness/tsconfig.json +0 -26
  388. package/src/constraint-runtime/package-lock.json +0 -48
  389. package/src/constraint-runtime/package.json +0 -34
  390. package/src/constraint-runtime/src/_archive_helper.ts +0 -16
  391. package/src/constraint-runtime/src/agent/coordinator.ts +0 -71
  392. package/src/constraint-runtime/src/agent/index.ts +0 -1
  393. package/src/constraint-runtime/src/assistant/index.ts +0 -15
  394. package/src/constraint-runtime/src/bootstrap/index.ts +0 -15
  395. package/src/constraint-runtime/src/bootstrap_graph.ts +0 -17
  396. package/src/constraint-runtime/src/bridge/index.ts +0 -15
  397. package/src/constraint-runtime/src/buddy/index.ts +0 -15
  398. package/src/constraint-runtime/src/cli/index.ts +0 -15
  399. package/src/constraint-runtime/src/command_graph.ts +0 -20
  400. package/src/constraint-runtime/src/commands.ts +0 -83
  401. package/src/constraint-runtime/src/components/index.ts +0 -15
  402. package/src/constraint-runtime/src/constants/index.ts +0 -15
  403. package/src/constraint-runtime/src/constraint/budget.ts +0 -25
  404. package/src/constraint-runtime/src/constraint/index.ts +0 -3
  405. package/src/constraint-runtime/src/constraint/permission.ts +0 -28
  406. package/src/constraint-runtime/src/context.ts +0 -45
  407. package/src/constraint-runtime/src/coordinator/index.ts +0 -15
  408. package/src/constraint-runtime/src/cost_hook.ts +0 -6
  409. package/src/constraint-runtime/src/cost_tracker.ts +0 -9
  410. package/src/constraint-runtime/src/deferred_init.ts +0 -18
  411. package/src/constraint-runtime/src/direct_modes.ts +0 -13
  412. package/src/constraint-runtime/src/dynamic-tool-loader.ts +0 -115
  413. package/src/constraint-runtime/src/entrypoints/index.ts +0 -15
  414. package/src/constraint-runtime/src/execution_registry.ts +0 -41
  415. package/src/constraint-runtime/src/history.ts +0 -16
  416. package/src/constraint-runtime/src/hooks/index.ts +0 -15
  417. package/src/constraint-runtime/src/index.ts +0 -28
  418. package/src/constraint-runtime/src/ink.ts +0 -4
  419. package/src/constraint-runtime/src/keybindings/index.ts +0 -15
  420. package/src/constraint-runtime/src/memdir/index.ts +0 -15
  421. package/src/constraint-runtime/src/migrations/index.ts +0 -15
  422. package/src/constraint-runtime/src/models.ts +0 -49
  423. package/src/constraint-runtime/src/moreright/index.ts +0 -15
  424. package/src/constraint-runtime/src/native_ts/index.ts +0 -15
  425. package/src/constraint-runtime/src/output_styles/index.ts +0 -15
  426. package/src/constraint-runtime/src/parity_audit.ts +0 -23
  427. package/src/constraint-runtime/src/plugins/index.ts +0 -15
  428. package/src/constraint-runtime/src/port_manifest.ts +0 -20
  429. package/src/constraint-runtime/src/prefetch.ts +0 -17
  430. package/src/constraint-runtime/src/query.ts +0 -7
  431. package/src/constraint-runtime/src/reference_data/archive_surface_snapshot.json +0 -63
  432. package/src/constraint-runtime/src/reference_data/commands_snapshot.json +0 -1037
  433. package/src/constraint-runtime/src/reference_data/subsystems/OpenCLI.json +0 -10
  434. package/src/constraint-runtime/src/reference_data/subsystems/PolymarketSDK.json +0 -12
  435. package/src/constraint-runtime/src/reference_data/subsystems/SafeSDK.json +0 -14
  436. package/src/constraint-runtime/src/reference_data/subsystems/assistant.json +0 -8
  437. package/src/constraint-runtime/src/reference_data/subsystems/bootstrap.json +0 -8
  438. package/src/constraint-runtime/src/reference_data/subsystems/bridge.json +0 -32
  439. package/src/constraint-runtime/src/reference_data/subsystems/buddy.json +0 -13
  440. package/src/constraint-runtime/src/reference_data/subsystems/cli.json +0 -26
  441. package/src/constraint-runtime/src/reference_data/subsystems/components.json +0 -32
  442. package/src/constraint-runtime/src/reference_data/subsystems/constants.json +0 -28
  443. package/src/constraint-runtime/src/reference_data/subsystems/coordinator.json +0 -8
  444. package/src/constraint-runtime/src/reference_data/subsystems/entrypoints.json +0 -15
  445. package/src/constraint-runtime/src/reference_data/subsystems/hooks.json +0 -32
  446. package/src/constraint-runtime/src/reference_data/subsystems/keybindings.json +0 -21
  447. package/src/constraint-runtime/src/reference_data/subsystems/memdir.json +0 -15
  448. package/src/constraint-runtime/src/reference_data/subsystems/migrations.json +0 -18
  449. package/src/constraint-runtime/src/reference_data/subsystems/moreright.json +0 -8
  450. package/src/constraint-runtime/src/reference_data/subsystems/native_ts.json +0 -11
  451. package/src/constraint-runtime/src/reference_data/subsystems/outputStyles.json +0 -8
  452. package/src/constraint-runtime/src/reference_data/subsystems/plugins.json +0 -9
  453. package/src/constraint-runtime/src/reference_data/subsystems/remote.json +0 -11
  454. package/src/constraint-runtime/src/reference_data/subsystems/schemas.json +0 -8
  455. package/src/constraint-runtime/src/reference_data/subsystems/screens.json +0 -10
  456. package/src/constraint-runtime/src/reference_data/subsystems/server.json +0 -10
  457. package/src/constraint-runtime/src/reference_data/subsystems/services.json +0 -32
  458. package/src/constraint-runtime/src/reference_data/subsystems/skills.json +0 -27
  459. package/src/constraint-runtime/src/reference_data/subsystems/state.json +0 -13
  460. package/src/constraint-runtime/src/reference_data/subsystems/types.json +0 -18
  461. package/src/constraint-runtime/src/reference_data/subsystems/upstreamproxy.json +0 -9
  462. package/src/constraint-runtime/src/reference_data/subsystems/utils.json +0 -32
  463. package/src/constraint-runtime/src/reference_data/subsystems/vim.json +0 -12
  464. package/src/constraint-runtime/src/reference_data/subsystems/voice.json +0 -8
  465. package/src/constraint-runtime/src/reference_data/tools_snapshot.json +0 -1042
  466. package/src/constraint-runtime/src/remote/index.ts +0 -15
  467. package/src/constraint-runtime/src/remote_runtime.ts +0 -17
  468. package/src/constraint-runtime/src/runtime/index.ts +0 -1
  469. package/src/constraint-runtime/src/runtime/session.ts +0 -42
  470. package/src/constraint-runtime/src/schemas/index.ts +0 -15
  471. package/src/constraint-runtime/src/screens/index.ts +0 -15
  472. package/src/constraint-runtime/src/server/index.ts +0 -15
  473. package/src/constraint-runtime/src/services/index.ts +0 -15
  474. package/src/constraint-runtime/src/session_store.ts +0 -32
  475. package/src/constraint-runtime/src/setup.ts +0 -50
  476. package/src/constraint-runtime/src/skills/index.ts +0 -1
  477. package/src/constraint-runtime/src/skills/skill-registry.ts +0 -40
  478. package/src/constraint-runtime/src/state/index.ts +0 -15
  479. package/src/constraint-runtime/src/system_init.ts +0 -21
  480. package/src/constraint-runtime/src/thinking/engine.ts +0 -61
  481. package/src/constraint-runtime/src/thinking/index.ts +0 -1
  482. package/src/constraint-runtime/src/tool_pool.ts +0 -20
  483. package/src/constraint-runtime/src/tools/OpenCLI/execAdapter.ts +0 -12
  484. package/src/constraint-runtime/src/tools/OpenCLI/listAdapters.ts +0 -12
  485. package/src/constraint-runtime/src/tools/OpenCLI/runCommand.ts +0 -13
  486. package/src/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.ts +0 -10
  487. package/src/constraint-runtime/src/tools/PolymarketSDK/createOrder.ts +0 -13
  488. package/src/constraint-runtime/src/tools/PolymarketSDK/getMarket.ts +0 -14
  489. package/src/constraint-runtime/src/tools/PolymarketSDK/getOrders.ts +0 -10
  490. package/src/constraint-runtime/src/tools/PolymarketSDK/listMarkets.ts +0 -24
  491. package/src/constraint-runtime/src/tools/SafeSDK/confirmTransaction.ts +0 -13
  492. package/src/constraint-runtime/src/tools/SafeSDK/createTransaction.ts +0 -23
  493. package/src/constraint-runtime/src/tools/SafeSDK/deploySafe.ts +0 -12
  494. package/src/constraint-runtime/src/tools/SafeSDK/executeTransaction.ts +0 -12
  495. package/src/constraint-runtime/src/tools/SafeSDK/getBalance.ts +0 -10
  496. package/src/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.ts +0 -10
  497. package/src/constraint-runtime/src/tools/SafeSDK/proposeTransaction.ts +0 -14
  498. package/src/constraint-runtime/src/tools/WalletTools/autoPay.ts +0 -58
  499. package/src/constraint-runtime/src/tools/WalletTools/createWallet.ts +0 -19
  500. package/src/constraint-runtime/src/tools/WalletTools/getBalance.ts +0 -28
  501. package/src/constraint-runtime/src/tools/WalletTools/importWallet.ts +0 -34
  502. package/src/constraint-runtime/src/tools/WalletTools/sendTransaction.ts +0 -50
  503. package/src/constraint-runtime/src/tools/WalletTools/signMessage.ts +0 -23
  504. package/src/constraint-runtime/src/tools/WalletTools/transferToken.ts +0 -49
  505. package/src/constraint-runtime/src/tools.ts +0 -100
  506. package/src/constraint-runtime/src/transcript.ts +0 -23
  507. package/src/constraint-runtime/src/types/index.ts +0 -15
  508. package/src/constraint-runtime/src/upstream_proxy/index.ts +0 -15
  509. package/src/constraint-runtime/src/utils/index.ts +0 -15
  510. package/src/constraint-runtime/src/vim/index.ts +0 -15
  511. package/src/constraint-runtime/src/voice/index.ts +0 -15
  512. package/src/constraint-runtime/tests/agent.test.ts +0 -20
  513. package/src/constraint-runtime/tests/constraint.test.ts +0 -47
  514. package/src/constraint-runtime/tests/skill.test.ts +0 -23
  515. package/src/constraint-runtime/tests/thinking.test.ts +0 -28
  516. package/src/constraint-runtime/tsconfig.json +0 -13
  517. package/src/pi-ecosystem/index.ts +0 -453
  518. package/src/pi-ecosystem-colony/index.ts +0 -482
  519. package/src/pi-ecosystem-goals/index.ts +0 -585
  520. package/src/pi-ecosystem-judgment/decision.ts +0 -431
  521. package/src/pi-ecosystem-judgment/distillation.ts +0 -398
  522. package/src/pi-ecosystem-judgment/human-value-store.ts +0 -580
  523. package/src/pi-ecosystem-judgment/index.ts +0 -678
  524. package/src/pi-ecosystem-judgment/value-injection.ts +0 -744
  525. package/src/pi-ecosystem-mcp/index.ts +0 -427
  526. package/src/pi-ecosystem-subagents/index.ts +0 -408
  527. package/src/test/ai-judgment-test.ts +0 -92
  528. package/src/test/bollharness-integration.test.ts +0 -398
  529. package/src/test/channel-agent-multi-dialogue.ts +0 -265
  530. package/src/test/channel-heartbeat-agent-test.ts +0 -244
  531. package/src/test/constraint-layer.test.ts +0 -191
  532. package/src/test/diap-identity-test.ts +0 -222
  533. package/src/test/diap-quick-test.ts +0 -73
  534. package/src/test/global-shared-context.test.ts +0 -393
  535. package/src/test/harness-judgment-injection.test.ts +0 -353
  536. package/src/test/harness-workflow-integrator-test.ts +0 -285
  537. package/src/test/human-value-store.test.ts +0 -316
  538. package/src/test/hybrid-integration-test.ts +0 -126
  539. package/src/test/hybrid-messenger-verify.ts +0 -68
  540. package/src/test/iroh-bistream-debug.ts +0 -50
  541. package/src/test/iroh-communication.test.ts +0 -81
  542. package/src/test/iroh-debug-test.ts +0 -69
  543. package/src/test/iroh-diap-test.ts +0 -90
  544. package/src/test/iroh-direct-connect.ts +0 -65
  545. package/src/test/iroh-e2e-fixed.ts +0 -106
  546. package/src/test/iroh-e2e-same-process.ts +0 -83
  547. package/src/test/iroh-e2e.ts +0 -83
  548. package/src/test/iroh-final-e2e.ts +0 -84
  549. package/src/test/iroh-relay-test.ts +0 -46
  550. package/src/test/iroh-simple-test.ts +0 -49
  551. package/src/test/iroh-transport-verify.ts +0 -60
  552. package/src/test/iroh-transport.test.ts +0 -47
  553. package/src/test/iroh-two-nodes.ts +0 -87
  554. package/src/test/iroh-verify.ts +0 -55
  555. package/src/test/judgment-decision.test.ts +0 -373
  556. package/src/test/llm-judgment-integration.test.ts +0 -257
  557. package/src/test/p2p-agent-complex-dialogue.ts +0 -490
  558. package/src/test/p2p-agent-dialogue.ts +0 -423
  559. package/src/test/p2p-agent-full-bidirectional.ts +0 -686
  560. package/src/test/p2p-agent-harness-flow.ts +0 -562
  561. package/src/test/p2p-agent-harness-single.ts +0 -175
  562. package/src/test/p2p-ai-dialogue-test.ts +0 -374
  563. package/src/test/p2p-cid-connect-test.ts +0 -245
  564. package/src/test/p2p-connect-receiver.ts +0 -85
  565. package/src/test/p2p-iroh-test.ts +0 -214
  566. package/src/test/p2p-minimal-test.ts +0 -264
  567. package/src/test/p2p-node-1.ts +0 -172
  568. package/src/test/p2p-node-2.ts +0 -172
  569. package/src/test/p2p-server.ts +0 -335
  570. package/src/test/p2p-two-nodes-test.ts +0 -542
  571. package/src/test/pi-sdk.test.ts +0 -47
  572. package/src/test/set-persona.ts +0 -56
  573. package/src/test/simple.test.ts +0 -11
  574. package/src/test/storage-integration.test.ts +0 -191
  575. package/src/test/subagent-manager.test.ts +0 -392
  576. package/src/test/test-gate-flow.test.ts +0 -92
  577. package/src/test/workflow-engine.test.ts +0 -101
  578. package/src/workflows/collaboration.ts +0 -455
  579. package/src/workflows/index.ts +0 -64
  580. package/vitest.config.ts +0 -12
  581. package//346/203/263/346/263/225.md +0 -79
@@ -1,353 +0,0 @@
1
- import { describe, it, expect, beforeEach, vi } from 'vitest';
2
- import {
3
- generateJudgmentInjection,
4
- getCoreJudgmentsForSession,
5
- getJudgmentsForPath,
6
- getJudgmentsForFragment,
7
- getJudgmentsForContextRequest,
8
- type JudgmentInjectOptions,
9
- } from '../bollharness-integration/context-router-judgment.js';
10
- import * as judgmentModule from '../pi-ecosystem-judgment/index.js';
11
-
12
- describe('Harness Judgment Injection - Gate Integration', () => {
13
- beforeEach(() => {
14
- vi.clearAllMocks();
15
- });
16
-
17
- describe('Gate-specific judgment injection', () => {
18
- it('should inject core judgments at Gate 0 (session start)', async () => {
19
- const injection = await generateJudgmentInjection('src/agents/', 0);
20
-
21
- expect(injection).toContain('# User Core Values');
22
- expect(injection).toContain('core_judgments:');
23
- expect(injection).toContain('confidence: 0.9');
24
- });
25
-
26
- it('should inject path judgments at Gate 3 (plan freeze)', async () => {
27
- const injection = await generateJudgmentInjection('src/agents/', 3);
28
-
29
- expect(injection).toContain('# Plan Freeze');
30
- expect(injection).toContain('active_judgments:');
31
- });
32
-
33
- it('should return path judgments for Gate 1 (not core)', async () => {
34
- const injection = await generateJudgmentInjection('src/agents/', 1);
35
-
36
- expect(injection).toContain('# Gate 1');
37
- expect(injection).not.toContain('core_judgments:');
38
- });
39
-
40
- it('should include confidence in injection header', async () => {
41
- const injection = await generateJudgmentInjection('src/agents/', 3);
42
-
43
- expect(injection).toMatch(/# Confidence: \d+%/);
44
- });
45
-
46
- it('should include file path in injection header', async () => {
47
- const injection = await generateJudgmentInjection('src/agents/', 3);
48
-
49
- expect(injection).toContain('# Path: src/agents/');
50
- });
51
- });
52
-
53
- describe('Path-based judgment routing', () => {
54
- it('should route src/agents/ to agent-related fragments', async () => {
55
- const result = await getJudgmentsForPath('src/agents/');
56
-
57
- expect(result.fragments).toBeDefined();
58
- expect(Array.isArray(result.fragments)).toBe(true);
59
- });
60
-
61
- it('should return judgments sorted by confidence', async () => {
62
- const result = await getJudgmentsForPath('src/agents/');
63
-
64
- if (result.judgments.length > 1) {
65
- for (let i = 1; i < result.judgments.length; i++) {
66
- expect(result.judgments[i - 1].confidence).toBeGreaterThanOrEqual(
67
- result.judgments[i].confidence
68
- );
69
- }
70
- }
71
- });
72
-
73
- it('should filter judgments by minimum confidence', async () => {
74
- const result = await getJudgmentsForPath('src/agents/', { minConfidence: 0.9 });
75
-
76
- for (const j of result.judgments) {
77
- expect(j.confidence).toBeGreaterThanOrEqual(0.9);
78
- }
79
- });
80
-
81
- it('should limit number of judgments', async () => {
82
- const result = await getJudgmentsForPath('src/agents/', { maxJudgments: 3 });
83
-
84
- expect(result.judgments.length).toBeLessThanOrEqual(3);
85
- });
86
-
87
- it('should calculate overall confidence for path', async () => {
88
- const result = await getJudgmentsForPath('src/agents/');
89
-
90
- expect(typeof result.confidence).toBe('number');
91
- expect(result.confidence).toBeGreaterThanOrEqual(0);
92
- expect(result.confidence).toBeLessThanOrEqual(1);
93
- });
94
- });
95
-
96
- describe('Fragment to judgment mapping', () => {
97
- it('should map agent-architecture fragment to agent contexts', async () => {
98
- const judgments = await getJudgmentsForFragment('agent-architecture');
99
-
100
- expect(Array.isArray(judgments)).toBe(true);
101
- });
102
-
103
- it('should map testing-patterns fragment to testing contexts', async () => {
104
- const judgments = await getJudgmentsForFragment('testing-patterns');
105
-
106
- expect(Array.isArray(judgments)).toBe(true);
107
- });
108
-
109
- it('should return empty for unknown fragment', async () => {
110
- const judgments = await getJudgmentsForFragment('unknown-fragment-xyz');
111
-
112
- expect(Array.isArray(judgments)).toBe(true);
113
- });
114
-
115
- it('should deduplicate judgments across fragments', async () => {
116
- const result = await getJudgmentsForPath('src/agents/');
117
-
118
- const ids = result.judgments.map(j => j.id);
119
- const uniqueIds = new Set(ids);
120
- expect(ids.length).toBe(uniqueIds.size);
121
- });
122
- });
123
-
124
- describe('Core judgments for session', () => {
125
- it('should only include human source judgments', async () => {
126
- const injection = await getCoreJudgmentsForSession(0.9);
127
-
128
- if (injection.length > 0) {
129
- expect(injection).toContain('core_judgments:');
130
- }
131
- });
132
-
133
- it('should filter by minimum confidence', async () => {
134
- const injection = await getCoreJudgmentsForSession(0.95);
135
-
136
- if (injection.length > 0) {
137
- expect(injection).toContain('confidence: 0.95');
138
- }
139
- });
140
-
141
- it('should limit to 10 judgments', async () => {
142
- const injection = await getCoreJudgmentsForSession(0.5);
143
-
144
- const matches = injection.match(/principle:/g);
145
- if (matches) {
146
- expect(matches.length).toBeLessThanOrEqual(10);
147
- }
148
- });
149
-
150
- it('should return empty string when no judgments meet threshold', async () => {
151
- const injection = await getCoreJudgmentsForSession(1.0);
152
-
153
- expect(typeof injection).toBe('string');
154
- });
155
- });
156
-
157
- describe('Judgment formatting', () => {
158
- it('should format judgments as YAML by default', async () => {
159
- const result = await getJudgmentsForPath('src/agents/', { format: 'yaml' });
160
-
161
- expect(result.contextYaml).toContain('active_judgments:');
162
- });
163
-
164
- it('should format judgments as JSON', async () => {
165
- const result = await getJudgmentsForPath('src/agents/', { format: 'json' });
166
-
167
- expect(result.contextYaml).toContain('[');
168
- expect(() => JSON.parse(result.contextYaml)).not.toThrow();
169
- });
170
-
171
- it('should format judgments as text', async () => {
172
- const result = await getJudgmentsForPath('src/agents/', { format: 'text' });
173
-
174
- expect(result.contextYaml).toMatch(/\[\d+%\]/);
175
- });
176
-
177
- it('should escape YAML strings correctly', async () => {
178
- const result = await getJudgmentsForPath('src/agents/', { format: 'yaml' });
179
-
180
- expect(result.contextYaml).not.toContain('\n"');
181
- });
182
- });
183
-
184
- describe('Context-specific judgment requests', () => {
185
- it('should get judgments for explicit context', async () => {
186
- const result = await getJudgmentsForContextRequest('typescript');
187
-
188
- expect(result).toHaveProperty('judgments');
189
- expect(result).toHaveProperty('confidence');
190
- expect(result).toHaveProperty('contextYaml');
191
- });
192
-
193
- it('should filter by context match', async () => {
194
- const result = await getJudgmentsForContextRequest('code-quality');
195
-
196
- for (const j of result.judgments) {
197
- const hasMatch = j.context?.toLowerCase().includes('code-quality') ||
198
- j.context?.toLowerCase().includes('quality') ||
199
- j.context?.toLowerCase().includes('development');
200
- expect(hasMatch).toBeTruthy();
201
- }
202
- });
203
- });
204
- });
205
-
206
- describe('Harness Judgment Injection - Multi-Agent Scenarios', () => {
207
- beforeEach(() => {
208
- vi.clearAllMocks();
209
- });
210
-
211
- describe('Decision level with harness context', () => {
212
- it('should route consult_internal to colony_ant and subagent', async () => {
213
- vi.spyOn(judgmentModule, 'calculateConfidence').mockReturnValueOnce(0.5);
214
-
215
- const { evaluateDecision } = await import('../pi-ecosystem-judgment/decision.js');
216
- const request = await evaluateDecision(
217
- 'Delegate task to colony ant',
218
- 'delegation',
219
- 'agent-001',
220
- 0.7
221
- );
222
-
223
- expect(request.targets).toContain('colony_ant');
224
- expect(request.targets).toContain('subagent');
225
- expect(request.targets).not.toContain('p2p_agent');
226
- });
227
-
228
- it('should route consult_external to p2p_agent', async () => {
229
- vi.spyOn(judgmentModule, 'calculateConfidence').mockReturnValueOnce(0.35);
230
-
231
- const { evaluateDecision } = await import('../pi-ecosystem-judgment/decision.js');
232
- const request = await evaluateDecision(
233
- 'Cross-system protocol negotiation',
234
- 'protocol',
235
- 'agent-001',
236
- 0.7
237
- );
238
-
239
- expect(request.targets).toContain('p2p_agent');
240
- expect(request.targets).toContain('colony_ant');
241
- expect(request.targets).toContain('subagent');
242
- });
243
-
244
- it('should escalate to human for strategic decisions', async () => {
245
- vi.spyOn(judgmentModule, 'calculateConfidence').mockReturnValueOnce(0.2);
246
-
247
- const { evaluateDecision } = await import('../pi-ecosystem-judgment/decision.js');
248
- const request = await evaluateDecision(
249
- 'Strategic pivot decision',
250
- 'strategy',
251
- 'agent-001',
252
- 0.7
253
- );
254
-
255
- expect(request.targets).toEqual(['human']);
256
- });
257
- });
258
-
259
- describe('Judgment confidence propagation', () => {
260
- it('should use harness path confidence for decision routing', async () => {
261
- const result = await getJudgmentsForPath('src/agents/');
262
-
263
- vi.spyOn(judgmentModule, 'calculateConfidence').mockReturnValueOnce(result.confidence);
264
-
265
- const { evaluateDecision } = await import('../pi-ecosystem-judgment/decision.js');
266
- const request = await evaluateDecision(
267
- 'Agent architecture decision',
268
- 'architecture',
269
- 'agent-001',
270
- 0.7
271
- );
272
-
273
- if (result.confidence >= 0.7) {
274
- expect(request.level).toBe('autonomous');
275
- } else if (result.confidence >= 0.49) {
276
- expect(request.level).toBe('consult_internal');
277
- } else if (result.confidence >= 0.28) {
278
- expect(request.level).toBe('consult_external');
279
- } else {
280
- expect(request.level).toBe('require_human');
281
- }
282
- });
283
- });
284
- });
285
-
286
- describe('Harness Judgment Injection - Gate Confidence Thresholds', () => {
287
- const gateThresholds: Array<{ gate: number; expectedMinConfidence: number; description: string }> = [
288
- { gate: 0, expectedMinConfidence: 0.9, description: 'Session start - highest bar' },
289
- { gate: 1, expectedMinConfidence: 0.8, description: 'Architecture design' },
290
- { gate: 2, expectedMinConfidence: 0.75, description: 'Review' },
291
- { gate: 3, expectedMinConfidence: 0.8, description: 'Plan freeze' },
292
- { gate: 5, expectedMinConfidence: 0.7, description: 'Task architecture' },
293
- { gate: 7, expectedMinConfidence: 0.7, description: 'Execution' },
294
- ];
295
-
296
- it.each(gateThresholds)(
297
- 'Gate $gate ($description) should use minConfidence $expectedMinConfidence',
298
- async ({ gate, expectedMinConfidence }) => {
299
- const injection = await generateJudgmentInjection('src/agents/', gate);
300
-
301
- if (gate === 0 || gate === 1 || gate === 2 || gate === 3 || gate === 5 || gate === 7) {
302
- expect(injection).toBeDefined();
303
- expect(typeof injection).toBe('string');
304
- }
305
- }
306
- );
307
-
308
- it('should return path judgments for all non-zero gates', async () => {
309
- for (const gate of [1, 2, 4, 5, 6, 8, 9]) {
310
- const injection = await generateJudgmentInjection('src/agents/', gate);
311
- expect(typeof injection).toBe('string');
312
- }
313
- });
314
- });
315
-
316
- describe('Harness Judgment Injection - End-to-End Flow', () => {
317
- it('should produce injectable YAML for agent context', async () => {
318
- const injection = await generateJudgmentInjection('src/agents/', 0);
319
-
320
- const hasValidYamlStructure =
321
- injection.includes('core_judgments:') ||
322
- injection.includes('active_judgments:') ||
323
- injection.includes('# User Core Values');
324
-
325
- expect(hasValidYamlStructure).toBeTruthy();
326
- });
327
-
328
- it('should format judgments for LLM consumption', async () => {
329
- const result = await getJudgmentsForPath('src/agents/', { format: 'yaml' });
330
-
331
- const lines = result.contextYaml.split('\n');
332
- const hasPrinciple = lines.some(line => line.includes('principle:'));
333
- const hasConfidence = lines.some(line => line.includes('confidence:'));
334
-
335
- expect(hasPrinciple || hasConfidence).toBeTruthy();
336
- });
337
-
338
- it('should fallback to general-dev-principles for unknown paths', async () => {
339
- const result = await getJudgmentsForPath('/nonexistent/path/that/matches/nothing');
340
-
341
- expect(result).toHaveProperty('judgments');
342
- expect(result).toHaveProperty('confidence');
343
- expect(result.fragments).toContain('general-dev-principles');
344
- });
345
-
346
- it('should provide traceability from path to fragment to judgment', async () => {
347
- const result = await getJudgmentsForPath('src/agents/');
348
-
349
- expect(result.fragments.length).toBeGreaterThan(0);
350
- expect(result.judgments.length).toBeGreaterThanOrEqual(0);
351
- expect(typeof result.confidence).toBe('number');
352
- });
353
- });
@@ -1,285 +0,0 @@
1
- /**
2
- * Harness Workflow Integrator Test
3
- *
4
- * 测试 Channel Agent 与 Bollharness 配置系统的集成
5
- *
6
- * 运行: npx tsx src/test/harness-workflow-integrator-test.ts
7
- */
8
-
9
- import { config } from 'dotenv';
10
- import {
11
- createHarnessWorkflowIntegrator,
12
- HarnessWorkflowIntegrator
13
- } from '../social/channels/harness-workflow-integrator.js';
14
- import {
15
- createChannelAgent,
16
- ChannelAgent
17
- } from '../social/channels/channel-agent-session.js';
18
- import { createChannelJudgmentEngine } from '../bollharness-integration/channel-judgment-engine.js';
19
-
20
- config();
21
-
22
- async function testWorkflowIntegrator() {
23
- console.log('\n========================================');
24
- console.log(' Harness Workflow Integrator 测试');
25
- console.log('========================================\n');
26
-
27
- const integrator = createHarnessWorkflowIntegrator();
28
- await integrator.initialize();
29
-
30
- console.log('━━━ Gate 状态测试 ━━━\n');
31
-
32
- // 测试 Gate 状态
33
- let status = integrator.getWorkflowStatus();
34
- console.log(`当前 Gate: ${status.gateName} (${status.progress})`);
35
- console.log(`Blockers: ${status.blockers.length > 0 ? status.blockers.join(', ') : '无'}`);
36
-
37
- // 提交产物
38
- console.log('\n提交产物到 Gate 0...');
39
- integrator.submitArtifact('user_request', '设计一个用户认证系统');
40
- integrator.submitArtifact('change_classification', 'implementation');
41
-
42
- // 测试 Gate 转移
43
- console.log('\n尝试转移到 Gate 1...');
44
- let result = await integrator.transitionGate();
45
- console.log(`转移结果: ${result.message}`);
46
- console.log(`Success: ${result.success}`);
47
-
48
- status = integrator.getWorkflowStatus();
49
- console.log(`\n当前 Gate: ${status.gateName} (${status.progress})`);
50
-
51
- // 测试 Skill 路由
52
- console.log('\n━━━ Skill 路由测试 ━━━\n');
53
-
54
- const testMessages = [
55
- '帮我设计一个微服务架构',
56
- 'review 一下这段代码',
57
- '我们需要实现用户登录功能',
58
- '帮我分解这个任务',
59
- '测试一下代码覆盖率',
60
- '分析一下系统的安全性'
61
- ];
62
-
63
- for (const msg of testMessages) {
64
- const skills = integrator.routeSkillsByKeyword(msg);
65
- console.log(`"${msg}"`);
66
- console.log(` → Skills: ${skills.join(', ')}`);
67
- console.log('');
68
- }
69
-
70
- // 测试 Gate Pack
71
- console.log('━━━ Gate Pack 测试 ━━━\n');
72
-
73
- const gatePack = integrator.getGatePack();
74
- console.log('当前 Gate Pack:');
75
- console.log(JSON.stringify(gatePack, null, 2));
76
-
77
- console.log('\n========================================\n');
78
- }
79
-
80
- async function testAgentWithHarness() {
81
- console.log('\n========================================');
82
- console.log(' Channel Agent + Harness 集成测试');
83
- console.log('========================================\n');
84
-
85
- // 创建 Agent
86
- const alice = createChannelAgent({
87
- name: 'Alice',
88
- port: 9101,
89
- domain: '架构',
90
- capabilities: ['架构设计', '代码审查', '任务分解']
91
- });
92
-
93
- const integrator = createHarnessWorkflowIntegrator();
94
- await integrator.initialize();
95
-
96
- await alice.start();
97
-
98
- console.log('━━━ 多轮对话 + Harness + Gate 测试 ━━━\n');
99
-
100
- const script = [
101
- {
102
- from: 'Alice',
103
- content: 'Bob,我们需要设计一个新的微服务架构。',
104
- expectedGate: 1
105
- },
106
- {
107
- from: 'Bob',
108
- content: '好的,我来帮你分析架构设计。',
109
- expectedGate: 1
110
- },
111
- {
112
- from: 'Alice',
113
- content: '帮我 review 一下代码实现。',
114
- expectedGate: 2
115
- },
116
- {
117
- from: 'Bob',
118
- content: '代码审查完成,需要优化错误处理。',
119
- expectedGate: 0
120
- },
121
- {
122
- from: 'Alice',
123
- content: '好的,现在分解任务,制定开发计划。',
124
- expectedGate: 5
125
- },
126
- {
127
- from: 'Bob',
128
- content: '任务已分解为 4 个子任务。',
129
- expectedGate: 5
130
- }
131
- ];
132
-
133
- let harnessCallCount = 0;
134
- const gateStats = new Map<number, number>();
135
-
136
- for (let i = 0; i < script.length; i++) {
137
- const { from, content, expectedGate } = script[i];
138
- const to = from === 'Alice' ? 'Bob' : 'Alice';
139
-
140
- console.log(`[${from}] >>> ${content}`);
141
-
142
- // 通过 Agent 处理
143
- const result = await alice.receiveMessage(from, content);
144
-
145
- // 路由 Skill
146
- const skills = integrator.routeSkillsByKeyword(content);
147
-
148
- console.log(`[${to}] 处理结果:`);
149
- console.log(` 🧠 Harness调用: ${result.harnessCalled ? '是' : '否'}`);
150
- if (result.harnessCalled) {
151
- console.log(` Gate ${result.gate}`);
152
- console.log(` Skills: ${skills.join(', ')}`);
153
- harnessCallCount++;
154
- gateStats.set(result.gate!, (gateStats.get(result.gate!) || 0) + 1);
155
-
156
- if (result.gate !== expectedGate) {
157
- console.log(` ⚠️ 期望 Gate ${expectedGate}`);
158
- }
159
- }
160
- console.log(` 回复: ${result.response.substring(0, 60)}...`);
161
- console.log('');
162
-
163
- await new Promise(r => setTimeout(r, 200));
164
- }
165
-
166
- console.log('━━━ 结果汇总 ━━━\n');
167
- console.log(`Harness 调用次数: ${harnessCallCount}`);
168
- console.log('\nGate 统计:');
169
-
170
- const gateNames: Record<number, string> = {
171
- 1: '架构设计',
172
- 2: '代码审查',
173
- 4: '安全检查',
174
- 5: '任务分解',
175
- 7: '代码实现',
176
- 8: '测试验证'
177
- };
178
-
179
- for (const [gate, count] of Array.from(gateStats.entries()).sort((a, b) => a[0] - b[0])) {
180
- console.log(` Gate ${gate} (${gateNames[gate] || '未知'}): ${count} 次`);
181
- }
182
-
183
- console.log('\n当前工作流状态:');
184
- const status = integrator.getWorkflowStatus();
185
- console.log(` ${status.gateName} (${status.progress})`);
186
-
187
- const success = harnessCallCount >= 3;
188
- console.log(`\n${success ? '✅' : '⚠️'} ${success ? '测试成功' : '测试失败'}`);
189
-
190
- alice.shutdown();
191
-
192
- console.log('\n========================================\n');
193
-
194
- return success;
195
- }
196
-
197
- async function testSkillRouting() {
198
- console.log('\n========================================');
199
- console.log(' Skill 路由测试');
200
- console.log('========================================\n');
201
-
202
- const integrator = createHarnessWorkflowIntegrator();
203
- await integrator.initialize();
204
-
205
- const judgmentEngine = createChannelJudgmentEngine();
206
-
207
- const testCases = [
208
- {
209
- message: '帮我设计一个三层架构方案',
210
- expectedKeywords: ['架构', '设计'],
211
- expectedSkills: ['arch', 'lead']
212
- },
213
- {
214
- message: 'review 一下登录模块的实现',
215
- expectedKeywords: ['review'],
216
- expectedSkills: ['guardian-fixer', 'arch']
217
- },
218
- {
219
- message: '系统需要支持 OAuth2 认证',
220
- expectedKeywords: ['认证'],
221
- expectedSkills: ['guardian-fixer', 'arch']
222
- },
223
- {
224
- message: '把这个任务分解成可执行的子任务',
225
- expectedKeywords: ['任务', '分解'],
226
- expectedSkills: ['task-arch', 'harness-eng']
227
- },
228
- {
229
- message: '帮我写用户注册模块的代码',
230
- expectedKeywords: ['写代码', '实现'],
231
- expectedSkills: ['harness-dev', 'harness-eng']
232
- },
233
- {
234
- message: '运行单元测试验证功能',
235
- expectedKeywords: ['测试', '验证'],
236
- expectedSkills: ['harness-eng-test', 'guardian-fixer']
237
- }
238
- ];
239
-
240
- console.log('━━━ 测试用例 ━━━\n');
241
-
242
- let passed = 0;
243
- for (const tc of testCases) {
244
- // 通过 JudgmentEngine 判断
245
- const context = {
246
- conversationHistory: [],
247
- currentMessage: tc.message
248
- };
249
- const judgment = judgmentEngine.decide(context);
250
-
251
- // 通过 Integrator 路由 Skill
252
- const skills = integrator.routeSkillsByKeyword(tc.message);
253
-
254
- const judgmentGateMatch = judgment.shouldCall;
255
- const skillMatch = skills.some(s => tc.expectedSkills.includes(s));
256
-
257
- const status = judgmentGateMatch && skillMatch ? '✅' : '⚠️';
258
-
259
- console.log(`${status} "${tc.message}"`);
260
- console.log(` Judgment: ${judgment.shouldCall ? `Gate ${judgment.gate}` : '无需 Harness'}`);
261
- console.log(` Skills: ${skills.join(', ') || '无'}`);
262
-
263
- if (judgment.shouldCall && skillMatch) passed++;
264
-
265
- console.log('');
266
- }
267
-
268
- console.log(`通过率: ${passed}/${testCases.length}`);
269
-
270
- console.log('\n========================================\n');
271
- }
272
-
273
- async function main() {
274
- try {
275
- await testWorkflowIntegrator();
276
- await testSkillRouting();
277
- await testAgentWithHarness();
278
- process.exit(0);
279
- } catch (err) {
280
- console.error('测试失败:', err);
281
- process.exit(1);
282
- }
283
- }
284
-
285
- main();