@bolloon/bolloon-agent 0.1.36 → 0.1.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/dist/web/client.js +2861 -3746
  2. package/dist/web/components/p2p/index.js +226 -264
  3. package/dist/web/ui/message-renderer.js +323 -434
  4. package/dist/web/ui/step-timeline.js +255 -351
  5. package/package.json +2 -2
  6. package/.auto-evolve-calls +0 -1
  7. package/.last-auto-evolve-baseline +0 -1
  8. package/.playwright-mcp/page-2026-06-16T07-51-45-706Z.yml +0 -130
  9. package/.playwright-mcp/page-2026-06-16T07-56-44-116Z.yml +0 -131
  10. package/Bolloon.md +0 -144
  11. package/Dive-into/CITATION.cff +0 -17
  12. package/Dive-into/LICENSE +0 -25
  13. package/Dive-into/README.md +0 -598
  14. package/Dive-into/README_zh.md +0 -599
  15. package/Dive-into/assets/context.png +0 -0
  16. package/Dive-into/assets/extensibility.png +0 -0
  17. package/Dive-into/assets/iteration.png +0 -0
  18. package/Dive-into/assets/layered_architecture.png +0 -0
  19. package/Dive-into/assets/main_structure.png +0 -0
  20. package/Dive-into/assets/permission.png +0 -0
  21. package/Dive-into/assets/session_compact.png +0 -0
  22. package/Dive-into/assets/subagent.png +0 -0
  23. package/Dive-into/paper/Dive_into_Claude_Code.pdf +0 -0
  24. package/dist/agents/constraint-layer.js.map +0 -1
  25. package/dist/agents/pi-sdk.js.map +0 -1
  26. package/dist/agents/workflow-engine.js.map +0 -1
  27. package/dist/bollharness/src/index.js +0 -5
  28. package/dist/bollharness/src/scripts/checks/check_adr_plan_numbering.js +0 -6
  29. package/dist/bollharness/src/scripts/checks/check_api_types.js +0 -45
  30. package/dist/bollharness/src/scripts/checks/check_artifact_link.js +0 -146
  31. package/dist/bollharness/src/scripts/checks/check_bridge_deps.js +0 -6
  32. package/dist/bollharness/src/scripts/checks/check_bugfix_binding.js +0 -6
  33. package/dist/bollharness/src/scripts/checks/check_bugfix_binding_ci.js +0 -6
  34. package/dist/bollharness/src/scripts/checks/check_doc_file_references.js +0 -6
  35. package/dist/bollharness/src/scripts/checks/check_doc_freshness.js +0 -135
  36. package/dist/bollharness/src/scripts/checks/check_doc_links.js +0 -31
  37. package/dist/bollharness/src/scripts/checks/check_file_existence_claims.js +0 -6
  38. package/dist/bollharness/src/scripts/checks/check_fragment_integrity.js +0 -34
  39. package/dist/bollharness/src/scripts/checks/check_hook_installed.js +0 -63
  40. package/dist/bollharness/src/scripts/checks/check_issue_closure.js +0 -41
  41. package/dist/bollharness/src/scripts/checks/check_mcp_parity.js +0 -6
  42. package/dist/bollharness/src/scripts/checks/check_security.js +0 -48
  43. package/dist/bollharness/src/scripts/checks/check_skill_parity.js +0 -6
  44. package/dist/bollharness/src/scripts/checks/check_versions.js +0 -6
  45. package/dist/bollharness/src/scripts/checks/finding.js +0 -13
  46. package/dist/bollharness/src/scripts/checks/next_decision_number.js +0 -20
  47. package/dist/bollharness/src/scripts/checks/regenerate_magic_docs.js +0 -6
  48. package/dist/bollharness/src/scripts/ci/detect_rebaseline_triggers.js +0 -8
  49. package/dist/bollharness/src/scripts/ci/scan_subprocess_cfg.js +0 -8
  50. package/dist/bollharness/src/scripts/ci/scan_verify_artifacts.js +0 -8
  51. package/dist/bollharness/src/scripts/ci/scan_yaml_schema.js +0 -8
  52. package/dist/bollharness/src/scripts/context_router.js +0 -67
  53. package/dist/bollharness/src/scripts/deploy-guard.js +0 -157
  54. package/dist/bollharness/src/scripts/guard-feedback.js +0 -192
  55. package/dist/bollharness/src/scripts/guard_router.js +0 -158
  56. package/dist/bollharness/src/scripts/hooks/_hook_output.js +0 -6
  57. package/dist/bollharness/src/scripts/hooks/auto-python3.js +0 -6
  58. package/dist/bollharness/src/scripts/hooks/deploy-progress-on-session-end.js +0 -6
  59. package/dist/bollharness/src/scripts/hooks/failure-analyzer.js +0 -6
  60. package/dist/bollharness/src/scripts/hooks/gate-judgment-inject.js +0 -92
  61. package/dist/bollharness/src/scripts/hooks/gate-transition-judgment.js +0 -63
  62. package/dist/bollharness/src/scripts/hooks/inbox-ack.js +0 -6
  63. package/dist/bollharness/src/scripts/hooks/inbox-inject-on-start.js +0 -6
  64. package/dist/bollharness/src/scripts/hooks/inbox-validate.js +0 -6
  65. package/dist/bollharness/src/scripts/hooks/inbox-write-ledger.js +0 -6
  66. package/dist/bollharness/src/scripts/hooks/initializer-agent.js +0 -6
  67. package/dist/bollharness/src/scripts/hooks/loop-detection.js +0 -73
  68. package/dist/bollharness/src/scripts/hooks/owner-guard.js +0 -6
  69. package/dist/bollharness/src/scripts/hooks/precompact.js +0 -6
  70. package/dist/bollharness/src/scripts/hooks/review-agent-gatekeeper.js +0 -6
  71. package/dist/bollharness/src/scripts/hooks/risk-tracker.js +0 -108
  72. package/dist/bollharness/src/scripts/hooks/sanitize-on-read.js +0 -6
  73. package/dist/bollharness/src/scripts/hooks/session-reflection.js +0 -7
  74. package/dist/bollharness/src/scripts/hooks/session-start-magic-docs.js +0 -7
  75. package/dist/bollharness/src/scripts/hooks/session-start-reset-risk.js +0 -7
  76. package/dist/bollharness/src/scripts/hooks/session-start-toolkit-reminder.js +0 -7
  77. package/dist/bollharness/src/scripts/hooks/stop-evaluator.js +0 -157
  78. package/dist/bollharness/src/scripts/hooks/tool-call-counter.js +0 -6
  79. package/dist/bollharness/src/scripts/hooks/trace-analyzer.js +0 -10
  80. package/dist/bollharness/src/scripts/install/install-trust-token.js +0 -7
  81. package/dist/bollharness/src/scripts/install/multi_project_registry.js +0 -9
  82. package/dist/bollharness/src/scripts/install/phase2_auto.js +0 -21
  83. package/dist/bollharness/src/scripts/install/pre_commit_installer.js +0 -6
  84. package/dist/bollharness/src/scripts/install/tier_selector.js +0 -7
  85. package/dist/bollharness/src/scripts/install/transcript_miner.js +0 -7
  86. package/dist/bollharness/src/scripts/lib/claim_patterns.js +0 -10
  87. package/dist/bollharness/src/scripts/lib/sanitize_patterns.js +0 -12
  88. package/dist/bollharness/src/scripts/sanitize.js +0 -6
  89. package/dist/bollharness-integration/context-router-judgment.js.map +0 -1
  90. package/dist/bollharness-integration/context-router.js.map +0 -1
  91. package/dist/bollharness-integration/gate-state-machine.js.map +0 -1
  92. package/dist/bollharness-integration/gate-transition-hooks.js.map +0 -1
  93. package/dist/bollharness-integration/guard-checker.js.map +0 -1
  94. package/dist/bollharness-integration/index.js.map +0 -1
  95. package/dist/bollharness-integration/integration.js.map +0 -1
  96. package/dist/bollharness-integration/llm/pi-ai.d.ts +0 -60
  97. package/dist/bollharness-integration/pi-ecosystem-colony/index.d.ts +0 -153
  98. package/dist/bollharness-integration/pi-ecosystem-goals/index.d.ts +0 -136
  99. package/dist/bollharness-integration/pi-ecosystem-judgment/decision.d.ts +0 -117
  100. package/dist/bollharness-integration/pi-ecosystem-judgment/distillation.d.ts +0 -78
  101. package/dist/bollharness-integration/pi-ecosystem-judgment/index.d.ts +0 -139
  102. package/dist/bollharness-integration/pi-ecosystem-mcp/index.d.ts +0 -127
  103. package/dist/bollharness-integration/pi-ecosystem-subagents/index.d.ts +0 -95
  104. package/dist/bollharness-integration/skill-adapter.js.map +0 -1
  105. package/dist/constraint-runtime/src/_archive_helper.js +0 -9
  106. package/dist/constraint-runtime/src/agent/coordinator.js +0 -48
  107. package/dist/constraint-runtime/src/agent/index.js +0 -1
  108. package/dist/constraint-runtime/src/assistant/index.js +0 -12
  109. package/dist/constraint-runtime/src/bootstrap/index.js +0 -12
  110. package/dist/constraint-runtime/src/bootstrap_graph.js +0 -13
  111. package/dist/constraint-runtime/src/bridge/index.js +0 -12
  112. package/dist/constraint-runtime/src/buddy/index.js +0 -12
  113. package/dist/constraint-runtime/src/cli/index.js +0 -12
  114. package/dist/constraint-runtime/src/command_graph.js +0 -10
  115. package/dist/constraint-runtime/src/commands.js +0 -60
  116. package/dist/constraint-runtime/src/components/index.js +0 -12
  117. package/dist/constraint-runtime/src/constants/index.js +0 -12
  118. package/dist/constraint-runtime/src/constraint/budget.js +0 -22
  119. package/dist/constraint-runtime/src/constraint/budget.js.map +0 -1
  120. package/dist/constraint-runtime/src/constraint/index.js +0 -2
  121. package/dist/constraint-runtime/src/constraint/permission.js +0 -20
  122. package/dist/constraint-runtime/src/constraint/permission.js.map +0 -1
  123. package/dist/constraint-runtime/src/context.js +0 -30
  124. package/dist/constraint-runtime/src/coordinator/index.js +0 -12
  125. package/dist/constraint-runtime/src/cost_hook.js +0 -4
  126. package/dist/constraint-runtime/src/cost_tracker.js +0 -8
  127. package/dist/constraint-runtime/src/deferred_init.js +0 -10
  128. package/dist/constraint-runtime/src/direct_modes.js +0 -6
  129. package/dist/constraint-runtime/src/dynamic-tool-loader.js +0 -85
  130. package/dist/constraint-runtime/src/entrypoints/index.js +0 -12
  131. package/dist/constraint-runtime/src/execution_registry.js +0 -44
  132. package/dist/constraint-runtime/src/history.js +0 -9
  133. package/dist/constraint-runtime/src/hooks/index.js +0 -12
  134. package/dist/constraint-runtime/src/index.js +0 -26
  135. package/dist/constraint-runtime/src/ink.js +0 -4
  136. package/dist/constraint-runtime/src/keybindings/index.js +0 -12
  137. package/dist/constraint-runtime/src/memdir/index.js +0 -12
  138. package/dist/constraint-runtime/src/migrations/index.js +0 -12
  139. package/dist/constraint-runtime/src/models.js +0 -1
  140. package/dist/constraint-runtime/src/models.js.map +0 -1
  141. package/dist/constraint-runtime/src/moreright/index.js +0 -12
  142. package/dist/constraint-runtime/src/native_ts/index.js +0 -12
  143. package/dist/constraint-runtime/src/output_styles/index.js +0 -12
  144. package/dist/constraint-runtime/src/parity_audit.js +0 -12
  145. package/dist/constraint-runtime/src/plugins/index.js +0 -12
  146. package/dist/constraint-runtime/src/port_manifest.js +0 -11
  147. package/dist/constraint-runtime/src/prefetch.js +0 -9
  148. package/dist/constraint-runtime/src/query.js +0 -1
  149. package/dist/constraint-runtime/src/remote/index.js +0 -12
  150. package/dist/constraint-runtime/src/remote_runtime.js +0 -9
  151. package/dist/constraint-runtime/src/runtime/index.js +0 -1
  152. package/dist/constraint-runtime/src/runtime/session.js +0 -35
  153. package/dist/constraint-runtime/src/schemas/index.js +0 -12
  154. package/dist/constraint-runtime/src/screens/index.js +0 -12
  155. package/dist/constraint-runtime/src/server/index.js +0 -12
  156. package/dist/constraint-runtime/src/services/index.js +0 -12
  157. package/dist/constraint-runtime/src/session_store.js +0 -22
  158. package/dist/constraint-runtime/src/setup.js +0 -30
  159. package/dist/constraint-runtime/src/skills/index.js +0 -1
  160. package/dist/constraint-runtime/src/skills/skill-registry.js +0 -28
  161. package/dist/constraint-runtime/src/state/index.js +0 -12
  162. package/dist/constraint-runtime/src/system_init.js +0 -20
  163. package/dist/constraint-runtime/src/thinking/engine.js +0 -42
  164. package/dist/constraint-runtime/src/thinking/index.js +0 -1
  165. package/dist/constraint-runtime/src/tool_pool.js +0 -8
  166. package/dist/constraint-runtime/src/tools/OpenCLI/execAdapter.js +0 -7
  167. package/dist/constraint-runtime/src/tools/OpenCLI/listAdapters.js +0 -7
  168. package/dist/constraint-runtime/src/tools/OpenCLI/runCommand.js +0 -7
  169. package/dist/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.js +0 -6
  170. package/dist/constraint-runtime/src/tools/PolymarketSDK/createOrder.js +0 -6
  171. package/dist/constraint-runtime/src/tools/PolymarketSDK/getMarket.js +0 -5
  172. package/dist/constraint-runtime/src/tools/PolymarketSDK/getOrders.js +0 -6
  173. package/dist/constraint-runtime/src/tools/PolymarketSDK/listMarkets.js +0 -4
  174. package/dist/constraint-runtime/src/tools/SafeSDK/confirmTransaction.js +0 -6
  175. package/dist/constraint-runtime/src/tools/SafeSDK/createTransaction.js +0 -8
  176. package/dist/constraint-runtime/src/tools/SafeSDK/deploySafe.js +0 -6
  177. package/dist/constraint-runtime/src/tools/SafeSDK/executeTransaction.js +0 -6
  178. package/dist/constraint-runtime/src/tools/SafeSDK/getBalance.js +0 -6
  179. package/dist/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.js +0 -6
  180. package/dist/constraint-runtime/src/tools/SafeSDK/proposeTransaction.js +0 -6
  181. package/dist/constraint-runtime/src/tools/WalletTools/autoPay.js +0 -29
  182. package/dist/constraint-runtime/src/tools/WalletTools/createWallet.js +0 -10
  183. package/dist/constraint-runtime/src/tools/WalletTools/getBalance.js +0 -13
  184. package/dist/constraint-runtime/src/tools/WalletTools/importWallet.js +0 -22
  185. package/dist/constraint-runtime/src/tools/WalletTools/sendTransaction.js +0 -25
  186. package/dist/constraint-runtime/src/tools/WalletTools/signMessage.js +0 -10
  187. package/dist/constraint-runtime/src/tools/WalletTools/transferToken.js +0 -25
  188. package/dist/constraint-runtime/src/tools.js +0 -80
  189. package/dist/constraint-runtime/src/transcript.js +0 -19
  190. package/dist/constraint-runtime/src/types/index.js +0 -12
  191. package/dist/constraint-runtime/src/upstream_proxy/index.js +0 -12
  192. package/dist/constraint-runtime/src/utils/index.js +0 -12
  193. package/dist/constraint-runtime/src/vim/index.js +0 -12
  194. package/dist/constraint-runtime/src/voice/index.js +0 -12
  195. package/dist/constraints/index.js.map +0 -1
  196. package/dist/documents/reader.js.map +0 -1
  197. package/dist/llm/config-store.js.map +0 -1
  198. package/dist/llm/pi-ai.js.map +0 -1
  199. package/dist/network/agent-network.js.map +0 -1
  200. package/dist/network/iroh-integration.js.map +0 -1
  201. package/dist/network/iroh-transport.js.map +0 -1
  202. package/dist/network/p2p.js.map +0 -1
  203. package/dist/network/storage/adapters/json-adapter.js.map +0 -1
  204. package/dist/pi-ecosystem-colony/index.js.map +0 -1
  205. package/dist/pi-ecosystem-goals/index.js.map +0 -1
  206. package/dist/pi-ecosystem-judgment/decision.js.map +0 -1
  207. package/dist/pi-ecosystem-judgment/distillation.js.map +0 -1
  208. package/dist/pi-ecosystem-judgment/human-value-store.js.map +0 -1
  209. package/dist/pi-ecosystem-judgment/index.js.map +0 -1
  210. package/dist/pi-ecosystem-judgment/value-injection.js.map +0 -1
  211. package/dist/pi-ecosystem-mcp/index.js.map +0 -1
  212. package/dist/pi-ecosystem-subagents/index.js.map +0 -1
  213. package/dist/social/ant-colony/AdaptiveHeartbeat.js.map +0 -1
  214. package/dist/social/ant-colony/PheromoneEngine.js.map +0 -1
  215. package/dist/social/ant-colony/types.js.map +0 -1
  216. package/dist/social/channels/ChannelManager.js.map +0 -1
  217. package/dist/social/channels/DiapChannelBridge.js.map +0 -1
  218. package/dist/social/channels/InterestMatcher.js.map +0 -1
  219. package/dist/social/channels/types.js.map +0 -1
  220. package/dist/social/global-shared-context.js.map +0 -1
  221. package/dist/social/heartbeat.js.map +0 -1
  222. package/dist/web/components/p2p/P2PModal.js +0 -188
  223. package/dist/web/components/p2p/p2p-modal.js +0 -657
  224. package/dist/web/components/p2p/p2p-tools.js +0 -248
  225. package/lefthook.yml +0 -33
  226. package/scripts/auto-evolve-loop.ts +0 -481
  227. package/scripts/auto-evolve-oneshot.sh +0 -155
  228. package/scripts/auto-evolve-snapshot.sh +0 -136
  229. package/scripts/build-cli.js +0 -216
  230. package/scripts/build-web.ts +0 -116
  231. package/scripts/detect-schema-changes.sh +0 -48
  232. package/scripts/diff-reviewer.ts +0 -159
  233. package/scripts/postinstall.js +0 -153
  234. package/scripts/validate-system-prompt.ts +0 -142
  235. package/scripts/weekly-report.ts +0 -364
  236. package/src/agents/agent-manifest-protocol.ts +0 -117
  237. package/src/agents/constraint-layer.ts +0 -309
  238. package/src/agents/iroh-secret.ts +0 -32
  239. package/src/agents/p2p-chat-tools.ts +0 -383
  240. package/src/agents/p2p-document-tools.ts +0 -347
  241. package/src/agents/permission-mode.ts +0 -127
  242. package/src/agents/pi-sdk.ts +0 -2895
  243. package/src/agents/pre-tool-validator.ts +0 -213
  244. package/src/agents/protocol.ts +0 -398
  245. package/src/agents/shell-guard.ts +0 -417
  246. package/src/agents/shell-tool.ts +0 -103
  247. package/src/agents/skill-loader.ts +0 -202
  248. package/src/agents/subagent-manager.ts +0 -553
  249. package/src/agents/workflow-engine.ts +0 -332
  250. package/src/agents/workflow-pivot-loop.ts +0 -766
  251. package/src/bollharness/.sanitize-report.json +0 -13
  252. package/src/bollharness/CLAUDE.md +0 -73
  253. package/src/bollharness/LICENSE +0 -21
  254. package/src/bollharness/README.md +0 -143
  255. package/src/bollharness/README.zh-CN.md +0 -131
  256. package/src/bollharness/package.json +0 -20
  257. package/src/bollharness/reference/SOURCE-COMMIT.txt +0 -3
  258. package/src/bollharness/reference/boll-reference/scripts/hooks/.sanitize-report.json +0 -12
  259. package/src/bollharness/reference/boll-reference/scripts/hooks/find-boll-root.sh +0 -27
  260. package/src/bollharness/reference/boll-reference/scripts/hooks/precompact.sh +0 -57
  261. package/src/bollharness/reference/boll-reference/scripts/hooks/stop-evaluator.md +0 -57
  262. package/src/bollharness/schemas/metrics-jsonl-allowlist.json +0 -67
  263. package/src/bollharness/scripts/checks/next_decision_number.sh +0 -48
  264. package/src/bollharness/scripts/ci/count-components.sh +0 -65
  265. package/src/bollharness/scripts/context-fragments/artifact-linkage.md +0 -14
  266. package/src/bollharness/scripts/context-fragments/auth-consumers.md +0 -17
  267. package/src/bollharness/scripts/context-fragments/bridge-constitution.md +0 -13
  268. package/src/bollharness/scripts/context-fragments/catalyst-distributed.md +0 -18
  269. package/src/bollharness/scripts/context-fragments/closure-checklist.md +0 -13
  270. package/src/bollharness/scripts/context-fragments/contract-consumers.md +0 -15
  271. package/src/bollharness/scripts/context-fragments/db-shared-structures.md +0 -15
  272. package/src/bollharness/scripts/context-fragments/fixed-three-layers.md +0 -19
  273. package/src/bollharness/scripts/context-fragments/general-dev-principles.md +0 -11
  274. package/src/bollharness/scripts/context-fragments/issue-first.md +0 -8
  275. package/src/bollharness/scripts/context-fragments/mcp-parity.md +0 -16
  276. package/src/bollharness/scripts/context-fragments/pi-agent-operations.md +0 -108
  277. package/src/bollharness/scripts/context-fragments/protocol-consumers.md +0 -15
  278. package/src/bollharness/scripts/context-fragments/run-events-consumers.md +0 -15
  279. package/src/bollharness/scripts/context-fragments/scene-fidelity.md +0 -13
  280. package/src/bollharness/scripts/context-fragments/truth-source-hierarchy.md +0 -15
  281. package/src/bollharness/scripts/context-fragments/two-language.md +0 -15
  282. package/src/bollharness/scripts/context-fragments/version-sources.md +0 -14
  283. package/src/bollharness/scripts/hooks/find-project-root.sh +0 -47
  284. package/src/bollharness/scripts/hooks/inbox-poll.sh +0 -78
  285. package/src/bollharness/scripts/hooks/precompact.sh +0 -56
  286. package/src/bollharness/scripts/hooks/stop-evaluator.md +0 -83
  287. package/src/bollharness/scripts/sync-from-upstream.sh +0 -281
  288. package/src/bollharness/src/index.ts +0 -5
  289. package/src/bollharness/src/scripts/checks/check_adr_plan_numbering.ts +0 -11
  290. package/src/bollharness/src/scripts/checks/check_api_types.ts +0 -52
  291. package/src/bollharness/src/scripts/checks/check_artifact_link.ts +0 -156
  292. package/src/bollharness/src/scripts/checks/check_bridge_deps.ts +0 -11
  293. package/src/bollharness/src/scripts/checks/check_bugfix_binding.ts +0 -11
  294. package/src/bollharness/src/scripts/checks/check_bugfix_binding_ci.ts +0 -11
  295. package/src/bollharness/src/scripts/checks/check_doc_file_references.ts +0 -11
  296. package/src/bollharness/src/scripts/checks/check_doc_freshness.ts +0 -141
  297. package/src/bollharness/src/scripts/checks/check_doc_links.ts +0 -36
  298. package/src/bollharness/src/scripts/checks/check_file_existence_claims.ts +0 -11
  299. package/src/bollharness/src/scripts/checks/check_fragment_integrity.ts +0 -40
  300. package/src/bollharness/src/scripts/checks/check_hook_installed.ts +0 -70
  301. package/src/bollharness/src/scripts/checks/check_issue_closure.ts +0 -51
  302. package/src/bollharness/src/scripts/checks/check_mcp_parity.ts +0 -11
  303. package/src/bollharness/src/scripts/checks/check_security.ts +0 -54
  304. package/src/bollharness/src/scripts/checks/check_skill_parity.ts +0 -11
  305. package/src/bollharness/src/scripts/checks/check_versions.ts +0 -11
  306. package/src/bollharness/src/scripts/checks/finding.ts +0 -35
  307. package/src/bollharness/src/scripts/checks/next_decision_number.ts +0 -24
  308. package/src/bollharness/src/scripts/checks/regenerate_magic_docs.ts +0 -11
  309. package/src/bollharness/src/scripts/ci/detect_rebaseline_triggers.ts +0 -14
  310. package/src/bollharness/src/scripts/ci/scan_subprocess_cfg.ts +0 -14
  311. package/src/bollharness/src/scripts/ci/scan_verify_artifacts.ts +0 -14
  312. package/src/bollharness/src/scripts/ci/scan_yaml_schema.ts +0 -14
  313. package/src/bollharness/src/scripts/context_router.ts +0 -76
  314. package/src/bollharness/src/scripts/deploy-guard.ts +0 -182
  315. package/src/bollharness/src/scripts/guard-feedback.ts +0 -215
  316. package/src/bollharness/src/scripts/guard_router.ts +0 -194
  317. package/src/bollharness/src/scripts/hooks/_hook_output.js +0 -3
  318. package/src/bollharness/src/scripts/hooks/_hook_output.ts +0 -11
  319. package/src/bollharness/src/scripts/hooks/auto-python3.ts +0 -10
  320. package/src/bollharness/src/scripts/hooks/deploy-progress-on-session-end.ts +0 -10
  321. package/src/bollharness/src/scripts/hooks/failure-analyzer.ts +0 -10
  322. package/src/bollharness/src/scripts/hooks/gate-judgment-inject.ts +0 -111
  323. package/src/bollharness/src/scripts/hooks/gate-transition-judgment.ts +0 -74
  324. package/src/bollharness/src/scripts/hooks/inbox-ack.ts +0 -10
  325. package/src/bollharness/src/scripts/hooks/inbox-inject-on-start.ts +0 -10
  326. package/src/bollharness/src/scripts/hooks/inbox-validate.ts +0 -10
  327. package/src/bollharness/src/scripts/hooks/inbox-write-ledger.ts +0 -10
  328. package/src/bollharness/src/scripts/hooks/initializer-agent.ts +0 -10
  329. package/src/bollharness/src/scripts/hooks/loop-detection.ts +0 -83
  330. package/src/bollharness/src/scripts/hooks/owner-guard.ts +0 -10
  331. package/src/bollharness/src/scripts/hooks/precompact.ts +0 -10
  332. package/src/bollharness/src/scripts/hooks/review-agent-gatekeeper.ts +0 -10
  333. package/src/bollharness/src/scripts/hooks/risk-tracker.ts +0 -121
  334. package/src/bollharness/src/scripts/hooks/sanitize-on-read.ts +0 -10
  335. package/src/bollharness/src/scripts/hooks/session-reflection.ts +0 -12
  336. package/src/bollharness/src/scripts/hooks/session-start-magic-docs.ts +0 -12
  337. package/src/bollharness/src/scripts/hooks/session-start-reset-risk.ts +0 -12
  338. package/src/bollharness/src/scripts/hooks/session-start-toolkit-reminder.ts +0 -12
  339. package/src/bollharness/src/scripts/hooks/stop-evaluator.ts +0 -164
  340. package/src/bollharness/src/scripts/hooks/tool-call-counter.ts +0 -10
  341. package/src/bollharness/src/scripts/hooks/trace-analyzer.ts +0 -14
  342. package/src/bollharness/src/scripts/install/install-trust-token.ts +0 -13
  343. package/src/bollharness/src/scripts/install/multi_project_registry.ts +0 -13
  344. package/src/bollharness/src/scripts/install/phase2_auto.ts +0 -28
  345. package/src/bollharness/src/scripts/install/pre_commit_installer.ts +0 -10
  346. package/src/bollharness/src/scripts/install/tier_selector.ts +0 -10
  347. package/src/bollharness/src/scripts/install/transcript_miner.ts +0 -13
  348. package/src/bollharness/src/scripts/lib/claim_patterns.ts +0 -11
  349. package/src/bollharness/src/scripts/lib/sanitize_patterns.ts +0 -13
  350. package/src/bollharness/src/scripts/sanitize.ts +0 -9
  351. package/src/bollharness/templates/persona/default.json +0 -19
  352. package/src/bollharness/templates/scaffold/.gitignore.append +0 -16
  353. package/src/bollharness/templates/scaffold/CLAUDE.md +0 -89
  354. package/src/bollharness-integration/channel-judgment-engine.ts +0 -634
  355. package/src/bollharness-integration/context-chain-router.ts +0 -474
  356. package/src/bollharness-integration/context-router-judgment.ts +0 -339
  357. package/src/bollharness-integration/context-router.ts +0 -583
  358. package/src/bollharness-integration/gate-state-machine.ts +0 -444
  359. package/src/bollharness-integration/gate-transition-hooks.ts +0 -137
  360. package/src/bollharness-integration/guard-checker.ts +0 -451
  361. package/src/bollharness-integration/index.ts +0 -195
  362. package/src/bollharness-integration/integration.ts +0 -538
  363. package/src/bollharness-integration/judgment-prompts.yaml +0 -535
  364. package/src/bollharness-integration/llm-judgment-engine.ts +0 -712
  365. package/src/bollharness-integration/skill-adapter.ts +0 -646
  366. package/src/bootstrap/bootstrap.ts +0 -135
  367. package/src/bootstrap/context-collector.ts +0 -371
  368. package/src/bootstrap/context-hierarchy.ts +0 -283
  369. package/src/bootstrap/lifecycle-hooks.ts +0 -289
  370. package/src/bootstrap/project-context.ts +0 -171
  371. package/src/cli/interface.ts +0 -211
  372. package/src/cli-entry.ts +0 -304
  373. package/src/constraints/index.ts +0 -6
  374. package/src/context-compaction/auto-compact.ts +0 -153
  375. package/src/context-compaction/budget-gate.ts +0 -32
  376. package/src/context-compaction/budget-reduce.ts +0 -37
  377. package/src/context-compaction/context-collapse.ts +0 -72
  378. package/src/context-compaction/index.ts +0 -24
  379. package/src/context-compaction/microcompact.ts +0 -54
  380. package/src/context-compaction/pipeline.ts +0 -133
  381. package/src/context-compaction/snip.ts +0 -51
  382. package/src/context-compaction/token-estimator.ts +0 -36
  383. package/src/context-compaction/types.ts +0 -99
  384. package/src/documents/reader.ts +0 -85
  385. package/src/documents/store.ts +0 -252
  386. package/src/electron-preload.ts +0 -25
  387. package/src/electron.ts +0 -200
  388. package/src/heartbeat/DaemonManager.ts +0 -283
  389. package/src/heartbeat/HealthMonitor.ts +0 -317
  390. package/src/heartbeat/StartupVerifier.ts +0 -223
  391. package/src/heartbeat/Watchdog.ts +0 -208
  392. package/src/heartbeat/index.ts +0 -109
  393. package/src/heartbeat/self-improve-bus.ts +0 -110
  394. package/src/heartbeat/types.ts +0 -82
  395. package/src/index.ts +0 -1724
  396. package/src/llm/audio-config-store.ts +0 -246
  397. package/src/llm/config-store.ts +0 -400
  398. package/src/llm/llm-judgment-client.ts +0 -471
  399. package/src/llm/pi-ai.ts +0 -653
  400. package/src/llm/system-prompt/health.ts +0 -159
  401. package/src/llm/system-prompt/layers/channel/local.md +0 -14
  402. package/src/llm/system-prompt/layers/channel/p2p-agent.md +0 -18
  403. package/src/llm/system-prompt/layers/channel/p2p-visitor.md +0 -19
  404. package/src/llm/system-prompt/layers/core/artifacts_storage.md +0 -89
  405. package/src/llm/system-prompt/layers/core/evenhandedness.md +0 -21
  406. package/src/llm/system-prompt/layers/core/hibs_reminders.md +0 -15
  407. package/src/llm/system-prompt/layers/core/identity.md +0 -37
  408. package/src/llm/system-prompt/layers/core/knowledge.md +0 -17
  409. package/src/llm/system-prompt/layers/core/memory_system.md +0 -12
  410. package/src/llm/system-prompt/layers/core/network_filesystem.md +0 -28
  411. package/src/llm/system-prompt/layers/core/refusal.md +0 -37
  412. package/src/llm/system-prompt/layers/core/tone.md +0 -31
  413. package/src/llm/system-prompt/layers/core/tools.thin.md +0 -13
  414. package/src/llm/system-prompt/layers/core/wellbeing.md +0 -41
  415. package/src/llm/system-prompt/layers/role/architect.md +0 -20
  416. package/src/llm/system-prompt/layers/role/expert.md +0 -19
  417. package/src/llm/system-prompt/layers/role/implementer.md +0 -15
  418. package/src/llm/system-prompt/layers/role/security.md +0 -15
  419. package/src/llm/system-prompt/layers/tool/artifacts.md +0 -72
  420. package/src/llm/system-prompt/layers/tool/bash.md +0 -25
  421. package/src/llm/system-prompt/layers/tool/hibs_api.md +0 -171
  422. package/src/llm/system-prompt/layers/tool/image_search.md +0 -70
  423. package/src/llm/system-prompt/layers/tool/manifest.md +0 -89
  424. package/src/llm/system-prompt/layers/tool/mcp_apps.md +0 -53
  425. package/src/llm/system-prompt/layers/tool/web_search.md +0 -83
  426. package/src/llm/system-prompt/registry.ts +0 -325
  427. package/src/llm/system-prompt/strip-hibsml.ts +0 -52
  428. package/src/llm/tool-manifest/ask_user_input.ts +0 -37
  429. package/src/llm/tool-manifest/bash.ts +0 -25
  430. package/src/llm/tool-manifest/create_file.ts +0 -26
  431. package/src/llm/tool-manifest/fetch_sports_data.ts +0 -28
  432. package/src/llm/tool-manifest/image_search.ts +0 -26
  433. package/src/llm/tool-manifest/index.ts +0 -88
  434. package/src/llm/tool-manifest/mcp.ts +0 -46
  435. package/src/llm/tool-manifest/message_compose.ts +0 -33
  436. package/src/llm/tool-manifest/places.ts +0 -86
  437. package/src/llm/tool-manifest/present_files.ts +0 -23
  438. package/src/llm/tool-manifest/recipe.ts +0 -42
  439. package/src/llm/tool-manifest/recommend_apps.ts +0 -25
  440. package/src/llm/tool-manifest/str_replace.ts +0 -29
  441. package/src/llm/tool-manifest/types.ts +0 -52
  442. package/src/llm/tool-manifest/view.ts +0 -26
  443. package/src/llm/tool-manifest/weather.ts +0 -29
  444. package/src/llm/tool-manifest/web.ts +0 -54
  445. package/src/llm/video-config-store.ts +0 -257
  446. package/src/network/agent-network.ts +0 -800
  447. package/src/network/hybrid-messenger.ts +0 -199
  448. package/src/network/iroh-bootstrap.ts +0 -57
  449. package/src/network/iroh-discovery.ts +0 -208
  450. package/src/network/iroh-integration.ts +0 -158
  451. package/src/network/iroh-transport.ts +0 -637
  452. package/src/network/known-peers.ts +0 -102
  453. package/src/network/p2p-direct.ts +0 -262
  454. package/src/network/p2p-secret.ts +0 -153
  455. package/src/network/p2p.ts +0 -964
  456. package/src/network/source-intent-broadcaster.ts +0 -242
  457. package/src/network/source-intent.ts +0 -167
  458. package/src/network/storage/adapters/json-adapter.ts +0 -454
  459. package/src/network/storage/index.ts +0 -203
  460. package/src/network/storage/types.ts +0 -166
  461. package/src/security/builtin-guards.ts +0 -162
  462. package/src/security/context-router-tool.ts +0 -122
  463. package/src/security/input-scanner.ts +0 -287
  464. package/src/security/react-harness.ts +0 -177
  465. package/src/security/tool-gate.ts +0 -294
  466. package/src/social/ant-colony/index.js +0 -19
  467. package/src/social/channels/ChannelManager.ts +0 -485
  468. package/src/social/channels/DiapChannelBridge.ts +0 -501
  469. package/src/social/channels/InterestMatcher.ts +0 -189
  470. package/src/social/channels/agent-workflow-config.json +0 -214
  471. package/src/social/channels/agent-workflow-config.yaml +0 -334
  472. package/src/social/channels/channel-agent-session.ts +0 -407
  473. package/src/social/channels/channel-heartbeat-agent.ts +0 -622
  474. package/src/social/channels/diap-doc-parser.ts +0 -282
  475. package/src/social/channels/harness-workflow-integrator.ts +0 -594
  476. package/src/social/channels/index.ts +0 -22
  477. package/src/social/channels/types.ts +0 -115
  478. package/src/social/global-shared-context.ts +0 -506
  479. package/src/social/heartbeat.ts +0 -1057
  480. package/src/social/persona/enhanced-persona.ts +0 -359
  481. package/src/types.d.ts +0 -12
  482. package/src/utils/auto-evolve-policy.ts +0 -138
  483. package/src/utils/auto-update.ts +0 -482
  484. package/src/utils/clamp.ts +0 -5
  485. package/src/web/agent-delegate-server.ts +0 -148
  486. package/src/web/api-config.html +0 -520
  487. package/src/web/client.js +0 -2352
  488. package/src/web/client.ts +0 -4326
  489. package/src/web/components/p2p/P2PModal.tsx +0 -416
  490. package/src/web/components/p2p/index.ts +0 -566
  491. package/src/web/components/p2p/index.tsx +0 -297
  492. package/src/web/components/p2p/p2p-connection.ts +0 -338
  493. package/src/web/components/p2p/p2p-identity.ts +0 -92
  494. package/src/web/components/p2p/p2p-manager.ts +0 -147
  495. package/src/web/components/p2p/p2p-messages.ts +0 -219
  496. package/src/web/components/p2p/p2p-modal.ts +0 -685
  497. package/src/web/components/p2p/p2p-store-memory.ts +0 -162
  498. package/src/web/components/p2p/p2p-tools.ts +0 -315
  499. package/src/web/components/p2p/types.ts +0 -170
  500. package/src/web/components/wallet-viem.mjs +0 -118
  501. package/src/web/design.md +0 -99
  502. package/src/web/icons/apple-touch-icon.png +0 -0
  503. package/src/web/icons/favicon-16x16.png +0 -0
  504. package/src/web/icons/favicon-192x192.png +0 -0
  505. package/src/web/icons/favicon-32x32.png +0 -0
  506. package/src/web/icons/favicon-48x48.png +0 -0
  507. package/src/web/icons/favicon-512x512.png +0 -0
  508. package/src/web/icons/favicon.icns +0 -0
  509. package/src/web/icons/favicon.ico +0 -0
  510. package/src/web/icons/icon.png +0 -0
  511. package/src/web/icons/image.png +0 -0
  512. package/src/web/index.html +0 -373
  513. package/src/web/iroh-delegate-transport.ts +0 -139
  514. package/src/web/manifest.json +0 -21
  515. package/src/web/server.ts +0 -5731
  516. package/src/web/style.css +0 -4737
  517. package/src/web/ui/message-renderer.ts +0 -540
  518. package/src/web/ui/step-timeline.ts +0 -394
  519. package/staging/auto-evolve/clean-001/.review-verdict +0 -9
  520. package/staging/auto-evolve/clean-001/clean-001.patch +0 -14
  521. package/staging/auto-evolve/e2e-001/.patch-id +0 -1
  522. package/staging/auto-evolve/e2e-001/.review-verdict +0 -12
  523. package/staging/auto-evolve/e2e-001/e2e-001.patch +0 -11
  524. package/staging/auto-evolve/test-bad/.review-verdict +0 -12
  525. package/staging/auto-evolve/test-bad/test-bad.patch +0 -11
  526. package/test-results/.last-run.json +0 -6
  527. package/test-results/src-test-web-loop-status-b-5734c-atus-bar-/346/230/276/347/244/272-spinner-/344/270/215/346/230/276/347/244/272/345/276/252/347/216/257/350/256/241/346/225/260/error-context.md +0 -285
  528. package/tsconfig.cli.json +0 -16
  529. package/tsconfig.electron.json +0 -20
  530. package/tsconfig.json +0 -18
@@ -1,444 +0,0 @@
1
- /**
2
- * Gate State Machine - Implements Bollharness's 8-Gate workflow governance
3
- *
4
- * Port of bollharness's lead skill Gate system to Bolloon's multi-agent architecture.
5
- *
6
- * Gates:
7
- * G0 → G1 → G2* → G3 → G4* → G5 → G6* → G7 → G8*
8
- * 审查门 审查门 审查门 审查门
9
- * (* = 独立审查者,使用独立的agent上下文)
10
- */
11
-
12
- import { AgentCoordinator, type SubTask, type AgentResult } from '@bolloon/constraint-runtime';
13
- import { executeGateTransitionHooks, initializeGateHooks } from './gate-transition-hooks.js';
14
- import { generateSituationalValueInjection, generateValueInjection } from '../pi-ecosystem-judgment/value-injection.js';
15
- import { loadAllJudgments } from '../pi-ecosystem-judgment/human-value-store.js';
16
- import { getModel, isModelAvailable } from '../llm/pi-ai.js';
17
-
18
- export type Gate = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
19
-
20
- export interface GateConfig {
21
- entryCondition: string;
22
- requiredArtifact: string;
23
- requiredNextSkill: string;
24
- requiredReviewSubstrate?: string;
25
- isReviewGate: boolean;
26
- situation: string;
27
- }
28
-
29
- export interface GateTransition {
30
- from: Gate;
31
- to: Gate;
32
- blockers: string[];
33
- artifact?: Record<string, unknown>;
34
- }
35
-
36
- export interface GateState {
37
- currentGate: Gate;
38
- entrySatisfied: boolean;
39
- blockers: string[];
40
- requiredArtifact: string;
41
- requiredNextSkill: string;
42
- requiredReviewSubstrate?: string;
43
- valueInjection: string;
44
- artifacts: Map<string, unknown>;
45
- conversationHistory: string[];
46
- }
47
-
48
- const GATE_CONFIGS: Record<Gate, GateConfig> = {
49
- 0: {
50
- entryCondition: '用户提出需求',
51
- requiredArtifact: '问题陈述 + Change Classification',
52
- requiredNextSkill: 'arch',
53
- isReviewGate: false,
54
- situation: '理解用户提出的需求或问题,确定问题的本质和边界',
55
- },
56
- 1: {
57
- entryCondition: 'Gate 0 产物存在',
58
- requiredArtifact: 'ADR 草稿 + 消费方清单',
59
- requiredNextSkill: 'arch',
60
- isReviewGate: false,
61
- situation: '在多个技术方案中做取舍,权衡复杂度、可维护性、性能和团队实际情况',
62
- },
63
- 2: {
64
- entryCondition: 'ADR 草稿完成',
65
- requiredArtifact: '审查报告 (verdict: PASS/BLOCK)',
66
- requiredNextSkill: 'review',
67
- requiredReviewSubstrate: 'ref-review-sop.md 阶段②维度',
68
- isReviewGate: true,
69
- situation: '审查架构方案有没有根本性缺陷,安全底线在哪里,什么是不可妥协的',
70
- },
71
- 3: {
72
- entryCondition: 'Gate 2 PASS',
73
- requiredArtifact: 'PLAN 文档 + 架构覆盖矩阵',
74
- requiredNextSkill: 'harness-eng',
75
- isReviewGate: false,
76
- situation: '制定具体的执行计划,判断时间线和风险覆盖是否充分',
77
- },
78
- 4: {
79
- entryCondition: 'PLAN vN-final 冻结',
80
- requiredArtifact: '审查报告 + plan-lock 确认',
81
- requiredNextSkill: 'review',
82
- requiredReviewSubstrate: 'ref-review-sop.md 阶段④维度 + C/D/E/F',
83
- isReviewGate: true,
84
- situation: '审查计划是否可行,是否遗漏了关键风险或依赖',
85
- },
86
- 5: {
87
- entryCondition: 'Gate 4 PASS + plan-lock',
88
- requiredArtifact: 'WP 拆分 + TASK.md',
89
- requiredNextSkill: 'task-arch',
90
- isReviewGate: false,
91
- situation: '将计划拆分为具体的可执行任务,判断任务粒度是否合理',
92
- },
93
- 6: {
94
- entryCondition: '全部 TASK.md 完成',
95
- requiredArtifact: '审查报告 (verdict: PASS/BLOCK)',
96
- requiredNextSkill: 'review',
97
- requiredReviewSubstrate: 'ref-review-sop.md WP 拆分专项',
98
- isReviewGate: true,
99
- situation: '审查任务拆分是否完整,依赖关系是否清晰,有没有遗漏',
100
- },
101
- 7: {
102
- entryCondition: 'Gate 6 PASS',
103
- requiredArtifact: '代码 + LOG.md',
104
- requiredNextSkill: 'harness-eng',
105
- isReviewGate: false,
106
- situation: '实现代码,判断实现方案是否符合决策标准,代码质量要求是什么',
107
- },
108
- 8: {
109
- entryCondition: '全部 WP 代码 + LOG.md 存在',
110
- requiredArtifact: '审查报告 + 验收确认',
111
- requiredNextSkill: 'harness-eng-test',
112
- requiredReviewSubstrate: 'ref-review-sop.md 阶段⑤⑥维度',
113
- isReviewGate: true,
114
- situation: '最终验收,判断交付物是否解决了原始问题,是否满足质量标准',
115
- },
116
- };
117
-
118
- export class GateStateMachine {
119
- private state: GateState;
120
- private coordinator: AgentCoordinator;
121
- private reviewAgentContext: Map<number, string> = new Map();
122
-
123
- constructor() {
124
- this.state = this.initState();
125
- this.coordinator = new AgentCoordinator(3);
126
- initializeGateHooks();
127
- }
128
-
129
- private initState(): GateState {
130
- return {
131
- currentGate: 0,
132
- entrySatisfied: true,
133
- blockers: [],
134
- requiredArtifact: GATE_CONFIGS[0].requiredArtifact,
135
- requiredNextSkill: GATE_CONFIGS[0].requiredNextSkill,
136
- valueInjection: '',
137
- artifacts: new Map(),
138
- conversationHistory: [],
139
- };
140
- }
141
-
142
- getState(): GateState {
143
- return { ...this.state, artifacts: new Map(this.state.artifacts), conversationHistory: [...this.state.conversationHistory] };
144
- }
145
-
146
- getCurrentGate(): Gate {
147
- return this.state.currentGate;
148
- }
149
-
150
- getGateConfig(gate: Gate): GateConfig {
151
- return GATE_CONFIGS[gate];
152
- }
153
-
154
- /**
155
- * 检查是否可以进入下一个Gate
156
- */
157
- canTransition(): boolean {
158
- return this.state.entrySatisfied && this.state.blockers.length === 0;
159
- }
160
-
161
- /**
162
- * 提交产物到当前Gate
163
- */
164
- submitArtifact(name: string, artifact: unknown): void {
165
- this.state.artifacts.set(name, artifact);
166
- this.checkEntryCondition();
167
- }
168
-
169
- /**
170
- * 获取Gate包 - 用于skill输出
171
- */
172
- getGatePack(): {
173
- current_gate: number;
174
- entry_satisfied: boolean;
175
- blockers: string[];
176
- required_artifact: string;
177
- required_next_skill: string;
178
- required_review_substrate?: string;
179
- value_injection: string;
180
- situation: string;
181
- } {
182
- const config = GATE_CONFIGS[this.state.currentGate];
183
- return {
184
- current_gate: this.state.currentGate,
185
- entry_satisfied: this.state.entrySatisfied,
186
- blockers: [...this.state.blockers],
187
- required_artifact: this.state.requiredArtifact,
188
- required_next_skill: this.state.requiredNextSkill,
189
- required_review_substrate: this.state.requiredReviewSubstrate,
190
- value_injection: this.state.valueInjection,
191
- situation: config.situation,
192
- };
193
- }
194
-
195
- /**
196
- * 尝试转移到下一个Gate
197
- * @param reviewResult 审查结果(审查门需要)
198
- * @param userInput 用户当前输入或 artifact 内容,用于 LLM 动态扩展情境描述
199
- */
200
- async transition(
201
- reviewResult?: { verdict: 'PASS' | 'BLOCK'; details?: string },
202
- userInput?: string
203
- ): Promise<GateTransition> {
204
- const currentGate = this.state.currentGate;
205
- const blockers: string[] = [];
206
-
207
- // 检查审查门是否需要独立审查
208
- if (GATE_CONFIGS[currentGate].isReviewGate) {
209
- if (!reviewResult) {
210
- return {
211
- from: currentGate,
212
- to: currentGate,
213
- blockers: ['审查门需要审查结果'],
214
- };
215
- }
216
- if (reviewResult.verdict === 'BLOCK') {
217
- blockers.push(reviewResult.details || '审查未通过');
218
- }
219
- }
220
-
221
- // 检查entry condition
222
- if (!this.state.entrySatisfied) {
223
- blockers.push('入口条件未满足');
224
- }
225
-
226
- if (blockers.length > 0) {
227
- return { from: currentGate, to: currentGate, blockers };
228
- }
229
-
230
- // 执行转移
231
- const nextGate = (currentGate + 1) as Gate;
232
- this.state.currentGate = nextGate;
233
- this.updateStateForGate(nextGate);
234
-
235
- // 生成进入新 Gate 时的价值观注入
236
- await this.generateValueInjectionForCurrentGate(userInput);
237
-
238
- // Execute gate transition hooks
239
- await executeGateTransitionHooks(currentGate, nextGate, true, []);
240
-
241
- return {
242
- from: currentGate,
243
- to: nextGate,
244
- blockers: [],
245
- artifact: this.getGatePack() as unknown as Record<string, unknown>,
246
- };
247
- }
248
-
249
- /**
250
- * 回退到指定Gate
251
- */
252
- rollback(gate: Gate): void {
253
- if (gate < this.state.currentGate) {
254
- this.state.currentGate = gate;
255
- this.updateStateForGate(gate);
256
- }
257
- }
258
-
259
- /**
260
- * 检查快速通道条件
261
- */
262
- checkFastTrack(
263
- changeClassification: 'policy' | 'contract' | 'implementation',
264
- criteria?: {
265
- fileCount?: number;
266
- hasContractChange?: boolean;
267
- hasCrossModuleSeams?: boolean;
268
- affectsUserMentalModel?: boolean;
269
- introducesArchitectureDecision?: boolean;
270
- }
271
- ): boolean {
272
- if (changeClassification !== 'implementation') return false;
273
-
274
- const c = criteria ?? {};
275
-
276
- if (c.fileCount !== undefined && c.fileCount > 3) return false;
277
- if (c.hasContractChange) return false;
278
- if (c.hasCrossModuleSeams) return false;
279
- if (c.affectsUserMentalModel) return false;
280
- if (c.introducesArchitectureDecision) return false;
281
-
282
- return true;
283
- }
284
-
285
- private checkEntryCondition(): void {
286
- const config = GATE_CONFIGS[this.state.currentGate];
287
- const entry = config.entryCondition;
288
-
289
- if (this.state.currentGate === 0) {
290
- this.state.entrySatisfied = true;
291
- return;
292
- }
293
-
294
- if (entry.includes('PASS')) {
295
- const passArtifact = this.state.artifacts.get('review-verdict');
296
- if (!passArtifact) {
297
- this.state.entrySatisfied = false;
298
- return;
299
- }
300
- const verdict = (passArtifact as { verdict?: string }).verdict;
301
- this.state.entrySatisfied = verdict === 'PASS';
302
- return;
303
- }
304
-
305
- if (entry.includes('产物存在') || entry.includes('完成')) {
306
- const artifactKeys = Array.from(this.state.artifacts.keys());
307
- const hasArtifacts = artifactKeys.length > 0;
308
- this.state.entrySatisfied = hasArtifacts;
309
- return;
310
- }
311
-
312
- this.state.entrySatisfied = true;
313
- }
314
-
315
- private updateStateForGate(gate: Gate): void {
316
- const config = GATE_CONFIGS[gate];
317
- this.state.entrySatisfied = true;
318
- this.state.blockers = [];
319
- this.state.requiredArtifact = config.requiredArtifact;
320
- this.state.requiredNextSkill = config.requiredNextSkill;
321
- this.state.requiredReviewSubstrate = config.requiredReviewSubstrate;
322
- this.state.valueInjection = '';
323
- }
324
-
325
- /**
326
- * 为当前 Gate 生成情境化价值观注入
327
- * 基于 Gate 的 situation 描述,从历史判断中匹配相关价值观
328
- */
329
- private async generateValueInjectionForCurrentGate(userInput?: string): Promise<void> {
330
- const config = GATE_CONFIGS[this.state.currentGate];
331
- const baseSituation = config.situation;
332
-
333
- if (userInput) {
334
- this.state.conversationHistory.push(userInput);
335
- if (this.state.conversationHistory.length > 10) {
336
- this.state.conversationHistory = this.state.conversationHistory.slice(-10);
337
- }
338
- }
339
-
340
- let situation = baseSituation;
341
-
342
- if (userInput && isModelAvailable()) {
343
- try {
344
- situation = await this.expandSituationWithUserInput(baseSituation, userInput);
345
- } catch (e) {
346
- console.warn('[GateStateMachine] Situation expansion failed, using base:', e);
347
- }
348
- }
349
-
350
- try {
351
- const judgments = await loadAllJudgments();
352
- const hasEnoughData = judgments.length >= 3;
353
-
354
- let injection = '';
355
-
356
- if (hasEnoughData) {
357
- const result = await generateSituationalValueInjection(
358
- situation,
359
- this.state.conversationHistory,
360
- { mode: 'standard', maxJudgments: 5, includeExamples: true }
361
- );
362
- injection = result.injection;
363
- }
364
-
365
- if (!injection) {
366
- injection = await generateValueInjection(situation, {
367
- mode: 'standard',
368
- maxTokens: 600,
369
- includeExamples: true,
370
- includeRules: true,
371
- });
372
- }
373
-
374
- this.state.valueInjection = injection;
375
- } catch (error) {
376
- console.warn(`[GateStateMachine] Value injection generation failed for gate ${this.state.currentGate}:`, error);
377
- this.state.valueInjection = '';
378
- }
379
- }
380
-
381
- /**
382
- * 用 LLM 将硬编码的 Gate situation 和用户输入结合,生成更具体的情境描述
383
- */
384
- private async expandSituationWithUserInput(
385
- baseSituation: string,
386
- userInput: string
387
- ): Promise<string> {
388
- const model = getModel();
389
-
390
- const prompt = `基于以下 Gate 情境模板和用户当前输入,生成一个更具体的情境描述。
391
-
392
- Gate 情境模板:${baseSituation}
393
-
394
- 用户当前输入/artifact 内容:
395
- ${userInput.substring(0, 1000)}
396
-
397
- 要求:
398
- 1. 结合用户输入,把情境描述具体化
399
- 2. 保留原始 Gate 情境的重点(用词可以调整)
400
- 3. 提取用户输入中与该 Gate 决策相关的关键信息
401
- 4. 输出一个 50-150 字的自然语言情境描述
402
-
403
- 直接输出情境描述,不要解释。`;
404
-
405
- const result = await model.chat(prompt, '');
406
- return result.reply.trim();
407
- }
408
-
409
- /**
410
- * 执行独立审查(用于审查门)
411
- * 使用独立的agent上下文
412
- */
413
- async executeIndependentReview(
414
- task: string,
415
- substrate: string
416
- ): Promise<{ verdict: 'PASS' | 'BLOCK'; details: string }> {
417
- // 使用AgentCoordinator执行独立审查任务
418
- const subtasks: SubTask[] = [
419
- {
420
- id: `review-gate-${this.state.currentGate}`,
421
- description: task,
422
- priority: 1,
423
- },
424
- ];
425
-
426
- try {
427
- const results = await this.coordinator.dispatch(
428
- subtasks.map(t => t.description).join(' ||| '),
429
- 1
430
- );
431
-
432
- // 简化处理 - 实际应该解析审查结果
433
- return {
434
- verdict: 'PASS',
435
- details: '审查完成',
436
- };
437
- } catch {
438
- return {
439
- verdict: 'BLOCK',
440
- details: '审查执行失败',
441
- };
442
- }
443
- }
444
- }
@@ -1,137 +0,0 @@
1
- /**
2
- * Gate Transition Hook Manager
3
- *
4
- * Handles PreGateTransition and PostGateTransition hooks.
5
- * Hooks are triggered when a gate transition occurs.
6
- */
7
-
8
- import { EventEmitter } from 'events';
9
- import { exec } from 'child_process';
10
- import { promisify } from 'util';
11
- import * as path from 'path';
12
- import * as fs from 'fs';
13
-
14
- const execAsync = promisify(exec);
15
-
16
- export interface GateHookConfig {
17
- gates?: number[];
18
- matcher?: string;
19
- type: 'command' | 'skill';
20
- command?: string;
21
- skill?: string;
22
- action?: string;
23
- timeout?: number;
24
- }
25
-
26
- export interface GateTransitionEvent {
27
- from: number;
28
- to: number;
29
- success: boolean;
30
- blockers: string[];
31
- }
32
-
33
- class GateTransitionEmitter extends EventEmitter {}
34
-
35
- const transitionEmitter = new GateTransitionEmitter();
36
-
37
- const GATE_HOOKS: GateHookConfig[] = [];
38
-
39
- let initialized = false;
40
-
41
- export function initializeGateHooks(): void {
42
- if (initialized) return;
43
- initialized = true;
44
-
45
- loadGateHooksFromSettings();
46
- }
47
-
48
- function loadGateHooksFromSettings(): void {
49
- try {
50
- const settingsPath = path.join(process.cwd(), 'src', 'bollharness', '.boll', 'settings.json');
51
- if (!fs.existsSync(settingsPath)) return;
52
-
53
- const settings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
54
- const gateHooks = settings.hooks?.PreGateTransition || settings.hooks?.PostGateTransition || [];
55
-
56
- for (const hook of gateHooks) {
57
- if (hook.type === 'command' || hook.type === 'skill') {
58
- GATE_HOOKS.push(hook as GateHookConfig);
59
- }
60
- }
61
- } catch (e) {
62
- console.warn('[GateHooks] Failed to load gate hooks from settings:', e);
63
- }
64
- }
65
-
66
- export function onGateTransition(
67
- phase: 'PreGateTransition' | 'PostGateTransition',
68
- callback: (event: GateTransitionEvent) => void
69
- ): void {
70
- transitionEmitter.on(phase, callback);
71
- }
72
-
73
- export function offGateTransition(
74
- phase: 'PreGateTransition' | 'PostGateTransition',
75
- callback: (event: GateTransitionEvent) => void
76
- ): void {
77
- transitionEmitter.off(phase, callback);
78
- }
79
-
80
- export function emitGateTransition(event: GateTransitionEvent): void {
81
- transitionEmitter.emit('PreGateTransition', event);
82
- transitionEmitter.emit('PostGateTransition', event);
83
- }
84
-
85
- function matchGate(gates: number[] | undefined, to: number): boolean {
86
- if (!gates || gates.length === 0) return true;
87
- return gates.includes(to);
88
- }
89
-
90
- export async function runGateHooks(
91
- phase: 'PreGateTransition' | 'PostGateTransition',
92
- event: GateTransitionEvent
93
- ): Promise<void> {
94
- for (const hook of GATE_HOOKS) {
95
- if (!matchGate(hook.gates, event.to)) continue;
96
-
97
- try {
98
- if (hook.type === 'command' && hook.command) {
99
- const timeout = hook.timeout || 10;
100
- await execAsync(hook.command, { timeout: timeout * 1000, cwd: process.cwd() });
101
- } else if (hook.type === 'skill' && hook.skill) {
102
- await runSkillHook(hook.skill, hook.action || 'default', event);
103
- }
104
- } catch (e) {
105
- console.error(`[GateHooks] Hook failed (${phase}):`, e);
106
- }
107
- }
108
- }
109
-
110
- async function runSkillHook(skill: string, action: string, event: GateTransitionEvent): Promise<void> {
111
- console.log(`[GateHooks] Running skill hook: ${skill} action=${action} for Gate ${event.from} -> ${event.to}`);
112
- }
113
-
114
- export async function executeGateTransitionHooks(
115
- from: number,
116
- to: number,
117
- success: boolean,
118
- blockers: string[]
119
- ): Promise<void> {
120
- const event: GateTransitionEvent = { from, to, success, blockers };
121
-
122
- await runGateHooks('PreGateTransition', event);
123
- emitGateTransition(event);
124
- await runGateHooks('PostGateTransition', event);
125
- }
126
-
127
- export function addGateHook(config: GateHookConfig): void {
128
- GATE_HOOKS.push(config);
129
- }
130
-
131
- export function clearGateHooks(): void {
132
- GATE_HOOKS.length = 0;
133
- }
134
-
135
- export function listGateHooks(): GateHookConfig[] {
136
- return [...GATE_HOOKS];
137
- }