@bolloon/bolloon-agent 0.1.35 → 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 (502) hide show
  1. package/README.md +1 -1
  2. package/dist/agents/p2p-chat-tools.js +6 -6
  3. package/dist/agents/permission-mode.js +115 -0
  4. package/dist/agents/pi-sdk.js +435 -25
  5. package/dist/agents/pre-tool-validator.js +194 -0
  6. package/dist/agents/workflow-pivot-loop.js +113 -12
  7. package/dist/bollharness-integration/context-router.js +2 -2
  8. package/dist/bollharness-integration/guard-checker.js +1 -1
  9. package/dist/bootstrap/bootstrap.js +3 -0
  10. package/dist/bootstrap/context-collector.js +17 -1
  11. package/dist/bootstrap/context-hierarchy.js +218 -0
  12. package/dist/bootstrap/lifecycle-hooks.js +86 -24
  13. package/dist/bootstrap/project-context.js +10 -3
  14. package/dist/context-compaction/auto-compact.js +144 -0
  15. package/dist/context-compaction/budget-gate.js +28 -0
  16. package/dist/context-compaction/budget-reduce.js +35 -0
  17. package/dist/context-compaction/context-collapse.js +66 -0
  18. package/dist/context-compaction/index.js +21 -0
  19. package/dist/context-compaction/microcompact.js +51 -0
  20. package/dist/context-compaction/pipeline.js +123 -0
  21. package/dist/context-compaction/snip.js +45 -0
  22. package/dist/context-compaction/token-estimator.js +35 -0
  23. package/dist/context-compaction/types.js +19 -0
  24. package/dist/heartbeat/HealthMonitor.js +3 -2
  25. package/dist/index.js +38 -2
  26. package/dist/llm/llm-judgment-client.js +32 -30
  27. package/dist/llm/pi-ai.js +103 -16
  28. package/dist/llm/system-prompt/health.js +129 -0
  29. package/dist/llm/system-prompt/registry.js +246 -0
  30. package/dist/llm/system-prompt/strip-hibsml.js +51 -0
  31. package/dist/llm/tool-manifest/ask_user_input.js +35 -0
  32. package/dist/llm/tool-manifest/bash.js +23 -0
  33. package/dist/llm/tool-manifest/create_file.js +24 -0
  34. package/dist/llm/tool-manifest/fetch_sports_data.js +26 -0
  35. package/dist/llm/tool-manifest/image_search.js +24 -0
  36. package/dist/llm/tool-manifest/index.js +69 -0
  37. package/dist/llm/tool-manifest/mcp.js +43 -0
  38. package/dist/llm/tool-manifest/message_compose.js +31 -0
  39. package/dist/llm/tool-manifest/places.js +83 -0
  40. package/dist/llm/tool-manifest/present_files.js +21 -0
  41. package/dist/llm/tool-manifest/recipe.js +40 -0
  42. package/dist/llm/tool-manifest/recommend_apps.js +23 -0
  43. package/dist/llm/tool-manifest/str_replace.js +27 -0
  44. package/dist/llm/tool-manifest/types.js +7 -0
  45. package/dist/llm/tool-manifest/view.js +24 -0
  46. package/dist/llm/tool-manifest/weather.js +27 -0
  47. package/dist/llm/tool-manifest/web.js +51 -0
  48. package/dist/network/p2p-direct.js +23 -0
  49. package/dist/network/source-intent-broadcaster.js +203 -0
  50. package/dist/network/source-intent.js +100 -0
  51. package/dist/pi-ecosystem-judgment/adaptive-scan.js +48 -0
  52. package/dist/pi-ecosystem-judgment/injection-gate.js +54 -12
  53. package/dist/pi-ecosystem-judgment/value-injection.js +8 -2
  54. package/dist/security/context-router-tool.js +1 -1
  55. package/dist/security/input-scanner.js +223 -0
  56. package/dist/web/client.js +3089 -4458
  57. package/dist/web/index.html +58 -67
  58. package/dist/web/server.js +299 -117
  59. package/dist/web/style.css +531 -249
  60. package/dist/web/ui/message-renderer.js +352 -0
  61. package/dist/web/ui/step-timeline.js +279 -0
  62. package/package.json +2 -2
  63. package/.auto-evolve-calls +0 -1
  64. package/.last-auto-evolve-baseline +0 -1
  65. package/Bolloon.md +0 -103
  66. package/dist/agents/constraint-layer.js.map +0 -1
  67. package/dist/agents/pi-sdk.js.map +0 -1
  68. package/dist/agents/workflow-engine.js.map +0 -1
  69. package/dist/bollharness/src/index.js +0 -5
  70. package/dist/bollharness/src/scripts/checks/check_adr_plan_numbering.js +0 -6
  71. package/dist/bollharness/src/scripts/checks/check_api_types.js +0 -45
  72. package/dist/bollharness/src/scripts/checks/check_artifact_link.js +0 -146
  73. package/dist/bollharness/src/scripts/checks/check_bridge_deps.js +0 -6
  74. package/dist/bollharness/src/scripts/checks/check_bugfix_binding.js +0 -6
  75. package/dist/bollharness/src/scripts/checks/check_bugfix_binding_ci.js +0 -6
  76. package/dist/bollharness/src/scripts/checks/check_doc_file_references.js +0 -6
  77. package/dist/bollharness/src/scripts/checks/check_doc_freshness.js +0 -135
  78. package/dist/bollharness/src/scripts/checks/check_doc_links.js +0 -31
  79. package/dist/bollharness/src/scripts/checks/check_file_existence_claims.js +0 -6
  80. package/dist/bollharness/src/scripts/checks/check_fragment_integrity.js +0 -34
  81. package/dist/bollharness/src/scripts/checks/check_hook_installed.js +0 -63
  82. package/dist/bollharness/src/scripts/checks/check_issue_closure.js +0 -41
  83. package/dist/bollharness/src/scripts/checks/check_mcp_parity.js +0 -6
  84. package/dist/bollharness/src/scripts/checks/check_security.js +0 -48
  85. package/dist/bollharness/src/scripts/checks/check_skill_parity.js +0 -6
  86. package/dist/bollharness/src/scripts/checks/check_versions.js +0 -6
  87. package/dist/bollharness/src/scripts/checks/finding.js +0 -13
  88. package/dist/bollharness/src/scripts/checks/next_decision_number.js +0 -20
  89. package/dist/bollharness/src/scripts/checks/regenerate_magic_docs.js +0 -6
  90. package/dist/bollharness/src/scripts/ci/detect_rebaseline_triggers.js +0 -8
  91. package/dist/bollharness/src/scripts/ci/scan_subprocess_cfg.js +0 -8
  92. package/dist/bollharness/src/scripts/ci/scan_verify_artifacts.js +0 -8
  93. package/dist/bollharness/src/scripts/ci/scan_yaml_schema.js +0 -8
  94. package/dist/bollharness/src/scripts/context_router.js +0 -67
  95. package/dist/bollharness/src/scripts/deploy-guard.js +0 -157
  96. package/dist/bollharness/src/scripts/guard-feedback.js +0 -192
  97. package/dist/bollharness/src/scripts/guard_router.js +0 -158
  98. package/dist/bollharness/src/scripts/hooks/_hook_output.js +0 -6
  99. package/dist/bollharness/src/scripts/hooks/auto-python3.js +0 -6
  100. package/dist/bollharness/src/scripts/hooks/deploy-progress-on-session-end.js +0 -6
  101. package/dist/bollharness/src/scripts/hooks/failure-analyzer.js +0 -6
  102. package/dist/bollharness/src/scripts/hooks/gate-judgment-inject.js +0 -92
  103. package/dist/bollharness/src/scripts/hooks/gate-transition-judgment.js +0 -63
  104. package/dist/bollharness/src/scripts/hooks/inbox-ack.js +0 -6
  105. package/dist/bollharness/src/scripts/hooks/inbox-inject-on-start.js +0 -6
  106. package/dist/bollharness/src/scripts/hooks/inbox-validate.js +0 -6
  107. package/dist/bollharness/src/scripts/hooks/inbox-write-ledger.js +0 -6
  108. package/dist/bollharness/src/scripts/hooks/initializer-agent.js +0 -6
  109. package/dist/bollharness/src/scripts/hooks/loop-detection.js +0 -73
  110. package/dist/bollharness/src/scripts/hooks/owner-guard.js +0 -6
  111. package/dist/bollharness/src/scripts/hooks/precompact.js +0 -6
  112. package/dist/bollharness/src/scripts/hooks/review-agent-gatekeeper.js +0 -6
  113. package/dist/bollharness/src/scripts/hooks/risk-tracker.js +0 -108
  114. package/dist/bollharness/src/scripts/hooks/sanitize-on-read.js +0 -6
  115. package/dist/bollharness/src/scripts/hooks/session-reflection.js +0 -7
  116. package/dist/bollharness/src/scripts/hooks/session-start-magic-docs.js +0 -7
  117. package/dist/bollharness/src/scripts/hooks/session-start-reset-risk.js +0 -7
  118. package/dist/bollharness/src/scripts/hooks/session-start-toolkit-reminder.js +0 -7
  119. package/dist/bollharness/src/scripts/hooks/stop-evaluator.js +0 -157
  120. package/dist/bollharness/src/scripts/hooks/tool-call-counter.js +0 -6
  121. package/dist/bollharness/src/scripts/hooks/trace-analyzer.js +0 -10
  122. package/dist/bollharness/src/scripts/install/install-trust-token.js +0 -7
  123. package/dist/bollharness/src/scripts/install/multi_project_registry.js +0 -9
  124. package/dist/bollharness/src/scripts/install/phase2_auto.js +0 -21
  125. package/dist/bollharness/src/scripts/install/pre_commit_installer.js +0 -6
  126. package/dist/bollharness/src/scripts/install/tier_selector.js +0 -7
  127. package/dist/bollharness/src/scripts/install/transcript_miner.js +0 -7
  128. package/dist/bollharness/src/scripts/lib/claim_patterns.js +0 -10
  129. package/dist/bollharness/src/scripts/lib/sanitize_patterns.js +0 -12
  130. package/dist/bollharness/src/scripts/sanitize.js +0 -6
  131. package/dist/bollharness-integration/context-router-judgment.js.map +0 -1
  132. package/dist/bollharness-integration/context-router.js.map +0 -1
  133. package/dist/bollharness-integration/gate-state-machine.js.map +0 -1
  134. package/dist/bollharness-integration/gate-transition-hooks.js.map +0 -1
  135. package/dist/bollharness-integration/guard-checker.js.map +0 -1
  136. package/dist/bollharness-integration/index.js.map +0 -1
  137. package/dist/bollharness-integration/integration.js.map +0 -1
  138. package/dist/bollharness-integration/llm/pi-ai.d.ts +0 -60
  139. package/dist/bollharness-integration/pi-ecosystem-colony/index.d.ts +0 -153
  140. package/dist/bollharness-integration/pi-ecosystem-goals/index.d.ts +0 -136
  141. package/dist/bollharness-integration/pi-ecosystem-judgment/decision.d.ts +0 -117
  142. package/dist/bollharness-integration/pi-ecosystem-judgment/distillation.d.ts +0 -78
  143. package/dist/bollharness-integration/pi-ecosystem-judgment/index.d.ts +0 -139
  144. package/dist/bollharness-integration/pi-ecosystem-mcp/index.d.ts +0 -127
  145. package/dist/bollharness-integration/pi-ecosystem-subagents/index.d.ts +0 -95
  146. package/dist/bollharness-integration/skill-adapter.js.map +0 -1
  147. package/dist/constraint-runtime/src/_archive_helper.js +0 -9
  148. package/dist/constraint-runtime/src/agent/coordinator.js +0 -48
  149. package/dist/constraint-runtime/src/agent/index.js +0 -1
  150. package/dist/constraint-runtime/src/assistant/index.js +0 -12
  151. package/dist/constraint-runtime/src/bootstrap/index.js +0 -12
  152. package/dist/constraint-runtime/src/bootstrap_graph.js +0 -13
  153. package/dist/constraint-runtime/src/bridge/index.js +0 -12
  154. package/dist/constraint-runtime/src/buddy/index.js +0 -12
  155. package/dist/constraint-runtime/src/cli/index.js +0 -12
  156. package/dist/constraint-runtime/src/command_graph.js +0 -10
  157. package/dist/constraint-runtime/src/commands.js +0 -60
  158. package/dist/constraint-runtime/src/components/index.js +0 -12
  159. package/dist/constraint-runtime/src/constants/index.js +0 -12
  160. package/dist/constraint-runtime/src/constraint/budget.js +0 -22
  161. package/dist/constraint-runtime/src/constraint/budget.js.map +0 -1
  162. package/dist/constraint-runtime/src/constraint/index.js +0 -2
  163. package/dist/constraint-runtime/src/constraint/permission.js +0 -20
  164. package/dist/constraint-runtime/src/constraint/permission.js.map +0 -1
  165. package/dist/constraint-runtime/src/context.js +0 -30
  166. package/dist/constraint-runtime/src/coordinator/index.js +0 -12
  167. package/dist/constraint-runtime/src/cost_hook.js +0 -4
  168. package/dist/constraint-runtime/src/cost_tracker.js +0 -8
  169. package/dist/constraint-runtime/src/deferred_init.js +0 -10
  170. package/dist/constraint-runtime/src/direct_modes.js +0 -6
  171. package/dist/constraint-runtime/src/dynamic-tool-loader.js +0 -85
  172. package/dist/constraint-runtime/src/entrypoints/index.js +0 -12
  173. package/dist/constraint-runtime/src/execution_registry.js +0 -44
  174. package/dist/constraint-runtime/src/history.js +0 -9
  175. package/dist/constraint-runtime/src/hooks/index.js +0 -12
  176. package/dist/constraint-runtime/src/index.js +0 -26
  177. package/dist/constraint-runtime/src/ink.js +0 -4
  178. package/dist/constraint-runtime/src/keybindings/index.js +0 -12
  179. package/dist/constraint-runtime/src/memdir/index.js +0 -12
  180. package/dist/constraint-runtime/src/migrations/index.js +0 -12
  181. package/dist/constraint-runtime/src/models.js +0 -1
  182. package/dist/constraint-runtime/src/models.js.map +0 -1
  183. package/dist/constraint-runtime/src/moreright/index.js +0 -12
  184. package/dist/constraint-runtime/src/native_ts/index.js +0 -12
  185. package/dist/constraint-runtime/src/output_styles/index.js +0 -12
  186. package/dist/constraint-runtime/src/parity_audit.js +0 -12
  187. package/dist/constraint-runtime/src/plugins/index.js +0 -12
  188. package/dist/constraint-runtime/src/port_manifest.js +0 -11
  189. package/dist/constraint-runtime/src/prefetch.js +0 -9
  190. package/dist/constraint-runtime/src/query.js +0 -1
  191. package/dist/constraint-runtime/src/remote/index.js +0 -12
  192. package/dist/constraint-runtime/src/remote_runtime.js +0 -9
  193. package/dist/constraint-runtime/src/runtime/index.js +0 -1
  194. package/dist/constraint-runtime/src/runtime/session.js +0 -35
  195. package/dist/constraint-runtime/src/schemas/index.js +0 -12
  196. package/dist/constraint-runtime/src/screens/index.js +0 -12
  197. package/dist/constraint-runtime/src/server/index.js +0 -12
  198. package/dist/constraint-runtime/src/services/index.js +0 -12
  199. package/dist/constraint-runtime/src/session_store.js +0 -22
  200. package/dist/constraint-runtime/src/setup.js +0 -30
  201. package/dist/constraint-runtime/src/skills/index.js +0 -1
  202. package/dist/constraint-runtime/src/skills/skill-registry.js +0 -28
  203. package/dist/constraint-runtime/src/state/index.js +0 -12
  204. package/dist/constraint-runtime/src/system_init.js +0 -20
  205. package/dist/constraint-runtime/src/thinking/engine.js +0 -42
  206. package/dist/constraint-runtime/src/thinking/index.js +0 -1
  207. package/dist/constraint-runtime/src/tool_pool.js +0 -8
  208. package/dist/constraint-runtime/src/tools/OpenCLI/execAdapter.js +0 -7
  209. package/dist/constraint-runtime/src/tools/OpenCLI/listAdapters.js +0 -7
  210. package/dist/constraint-runtime/src/tools/OpenCLI/runCommand.js +0 -7
  211. package/dist/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.js +0 -6
  212. package/dist/constraint-runtime/src/tools/PolymarketSDK/createOrder.js +0 -6
  213. package/dist/constraint-runtime/src/tools/PolymarketSDK/getMarket.js +0 -5
  214. package/dist/constraint-runtime/src/tools/PolymarketSDK/getOrders.js +0 -6
  215. package/dist/constraint-runtime/src/tools/PolymarketSDK/listMarkets.js +0 -4
  216. package/dist/constraint-runtime/src/tools/SafeSDK/confirmTransaction.js +0 -6
  217. package/dist/constraint-runtime/src/tools/SafeSDK/createTransaction.js +0 -8
  218. package/dist/constraint-runtime/src/tools/SafeSDK/deploySafe.js +0 -6
  219. package/dist/constraint-runtime/src/tools/SafeSDK/executeTransaction.js +0 -6
  220. package/dist/constraint-runtime/src/tools/SafeSDK/getBalance.js +0 -6
  221. package/dist/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.js +0 -6
  222. package/dist/constraint-runtime/src/tools/SafeSDK/proposeTransaction.js +0 -6
  223. package/dist/constraint-runtime/src/tools/WalletTools/autoPay.js +0 -29
  224. package/dist/constraint-runtime/src/tools/WalletTools/createWallet.js +0 -10
  225. package/dist/constraint-runtime/src/tools/WalletTools/getBalance.js +0 -13
  226. package/dist/constraint-runtime/src/tools/WalletTools/importWallet.js +0 -22
  227. package/dist/constraint-runtime/src/tools/WalletTools/sendTransaction.js +0 -25
  228. package/dist/constraint-runtime/src/tools/WalletTools/signMessage.js +0 -10
  229. package/dist/constraint-runtime/src/tools/WalletTools/transferToken.js +0 -25
  230. package/dist/constraint-runtime/src/tools.js +0 -80
  231. package/dist/constraint-runtime/src/transcript.js +0 -19
  232. package/dist/constraint-runtime/src/types/index.js +0 -12
  233. package/dist/constraint-runtime/src/upstream_proxy/index.js +0 -12
  234. package/dist/constraint-runtime/src/utils/index.js +0 -12
  235. package/dist/constraint-runtime/src/vim/index.js +0 -12
  236. package/dist/constraint-runtime/src/voice/index.js +0 -12
  237. package/dist/constraints/index.js.map +0 -1
  238. package/dist/documents/reader.js.map +0 -1
  239. package/dist/llm/config-store.js.map +0 -1
  240. package/dist/llm/pi-ai.js.map +0 -1
  241. package/dist/network/agent-network.js.map +0 -1
  242. package/dist/network/iroh-integration.js.map +0 -1
  243. package/dist/network/iroh-transport.js.map +0 -1
  244. package/dist/network/p2p.js.map +0 -1
  245. package/dist/network/storage/adapters/json-adapter.js.map +0 -1
  246. package/dist/pi-ecosystem-colony/index.js.map +0 -1
  247. package/dist/pi-ecosystem-goals/index.js.map +0 -1
  248. package/dist/pi-ecosystem-judgment/decision.js.map +0 -1
  249. package/dist/pi-ecosystem-judgment/distillation.js.map +0 -1
  250. package/dist/pi-ecosystem-judgment/human-value-store.js.map +0 -1
  251. package/dist/pi-ecosystem-judgment/index.js.map +0 -1
  252. package/dist/pi-ecosystem-judgment/value-injection.js.map +0 -1
  253. package/dist/pi-ecosystem-mcp/index.js.map +0 -1
  254. package/dist/pi-ecosystem-subagents/index.js.map +0 -1
  255. package/dist/social/ant-colony/AdaptiveHeartbeat.js.map +0 -1
  256. package/dist/social/ant-colony/PheromoneEngine.js.map +0 -1
  257. package/dist/social/ant-colony/types.js.map +0 -1
  258. package/dist/social/channels/ChannelManager.js.map +0 -1
  259. package/dist/social/channels/DiapChannelBridge.js.map +0 -1
  260. package/dist/social/channels/InterestMatcher.js.map +0 -1
  261. package/dist/social/channels/types.js.map +0 -1
  262. package/dist/social/global-shared-context.js.map +0 -1
  263. package/dist/social/heartbeat.js.map +0 -1
  264. package/lefthook.yml +0 -29
  265. package/scripts/auto-evolve-loop.ts +0 -376
  266. package/scripts/auto-evolve-oneshot.sh +0 -155
  267. package/scripts/auto-evolve-snapshot.sh +0 -136
  268. package/scripts/build-cli.js +0 -216
  269. package/scripts/build-web.ts +0 -82
  270. package/scripts/detect-schema-changes.sh +0 -48
  271. package/scripts/diff-reviewer.ts +0 -159
  272. package/scripts/postinstall.js +0 -153
  273. package/scripts/weekly-report.ts +0 -364
  274. package/src/agents/agent-manifest-protocol.ts +0 -117
  275. package/src/agents/constraint-layer.ts +0 -309
  276. package/src/agents/iroh-secret.ts +0 -32
  277. package/src/agents/p2p-chat-tools.ts +0 -383
  278. package/src/agents/p2p-document-tools.ts +0 -347
  279. package/src/agents/pi-sdk.ts +0 -2462
  280. package/src/agents/protocol.ts +0 -398
  281. package/src/agents/shell-guard.ts +0 -417
  282. package/src/agents/shell-tool.ts +0 -103
  283. package/src/agents/skill-loader.ts +0 -202
  284. package/src/agents/subagent-manager.ts +0 -553
  285. package/src/agents/workflow-engine.ts +0 -332
  286. package/src/agents/workflow-pivot-loop.ts +0 -675
  287. package/src/bollharness/.sanitize-report.json +0 -13
  288. package/src/bollharness/CLAUDE.md +0 -73
  289. package/src/bollharness/LICENSE +0 -21
  290. package/src/bollharness/README.md +0 -143
  291. package/src/bollharness/README.zh-CN.md +0 -131
  292. package/src/bollharness/package.json +0 -20
  293. package/src/bollharness/reference/SOURCE-COMMIT.txt +0 -3
  294. package/src/bollharness/reference/boll-reference/scripts/hooks/.sanitize-report.json +0 -12
  295. package/src/bollharness/reference/boll-reference/scripts/hooks/find-boll-root.sh +0 -27
  296. package/src/bollharness/reference/boll-reference/scripts/hooks/precompact.sh +0 -57
  297. package/src/bollharness/reference/boll-reference/scripts/hooks/stop-evaluator.md +0 -57
  298. package/src/bollharness/schemas/metrics-jsonl-allowlist.json +0 -67
  299. package/src/bollharness/scripts/checks/next_decision_number.sh +0 -48
  300. package/src/bollharness/scripts/ci/count-components.sh +0 -65
  301. package/src/bollharness/scripts/context-fragments/artifact-linkage.md +0 -14
  302. package/src/bollharness/scripts/context-fragments/auth-consumers.md +0 -17
  303. package/src/bollharness/scripts/context-fragments/bridge-constitution.md +0 -13
  304. package/src/bollharness/scripts/context-fragments/catalyst-distributed.md +0 -18
  305. package/src/bollharness/scripts/context-fragments/closure-checklist.md +0 -13
  306. package/src/bollharness/scripts/context-fragments/contract-consumers.md +0 -15
  307. package/src/bollharness/scripts/context-fragments/db-shared-structures.md +0 -15
  308. package/src/bollharness/scripts/context-fragments/fixed-three-layers.md +0 -19
  309. package/src/bollharness/scripts/context-fragments/general-dev-principles.md +0 -11
  310. package/src/bollharness/scripts/context-fragments/issue-first.md +0 -8
  311. package/src/bollharness/scripts/context-fragments/mcp-parity.md +0 -16
  312. package/src/bollharness/scripts/context-fragments/pi-agent-operations.md +0 -108
  313. package/src/bollharness/scripts/context-fragments/protocol-consumers.md +0 -15
  314. package/src/bollharness/scripts/context-fragments/run-events-consumers.md +0 -15
  315. package/src/bollharness/scripts/context-fragments/scene-fidelity.md +0 -13
  316. package/src/bollharness/scripts/context-fragments/truth-source-hierarchy.md +0 -15
  317. package/src/bollharness/scripts/context-fragments/two-language.md +0 -15
  318. package/src/bollharness/scripts/context-fragments/version-sources.md +0 -14
  319. package/src/bollharness/scripts/hooks/find-project-root.sh +0 -47
  320. package/src/bollharness/scripts/hooks/inbox-poll.sh +0 -78
  321. package/src/bollharness/scripts/hooks/precompact.sh +0 -56
  322. package/src/bollharness/scripts/hooks/stop-evaluator.md +0 -83
  323. package/src/bollharness/scripts/sync-from-upstream.sh +0 -281
  324. package/src/bollharness/src/index.ts +0 -5
  325. package/src/bollharness/src/scripts/checks/check_adr_plan_numbering.ts +0 -11
  326. package/src/bollharness/src/scripts/checks/check_api_types.ts +0 -52
  327. package/src/bollharness/src/scripts/checks/check_artifact_link.ts +0 -156
  328. package/src/bollharness/src/scripts/checks/check_bridge_deps.ts +0 -11
  329. package/src/bollharness/src/scripts/checks/check_bugfix_binding.ts +0 -11
  330. package/src/bollharness/src/scripts/checks/check_bugfix_binding_ci.ts +0 -11
  331. package/src/bollharness/src/scripts/checks/check_doc_file_references.ts +0 -11
  332. package/src/bollharness/src/scripts/checks/check_doc_freshness.ts +0 -141
  333. package/src/bollharness/src/scripts/checks/check_doc_links.ts +0 -36
  334. package/src/bollharness/src/scripts/checks/check_file_existence_claims.ts +0 -11
  335. package/src/bollharness/src/scripts/checks/check_fragment_integrity.ts +0 -40
  336. package/src/bollharness/src/scripts/checks/check_hook_installed.ts +0 -70
  337. package/src/bollharness/src/scripts/checks/check_issue_closure.ts +0 -51
  338. package/src/bollharness/src/scripts/checks/check_mcp_parity.ts +0 -11
  339. package/src/bollharness/src/scripts/checks/check_security.ts +0 -54
  340. package/src/bollharness/src/scripts/checks/check_skill_parity.ts +0 -11
  341. package/src/bollharness/src/scripts/checks/check_versions.ts +0 -11
  342. package/src/bollharness/src/scripts/checks/finding.ts +0 -35
  343. package/src/bollharness/src/scripts/checks/next_decision_number.ts +0 -24
  344. package/src/bollharness/src/scripts/checks/regenerate_magic_docs.ts +0 -11
  345. package/src/bollharness/src/scripts/ci/detect_rebaseline_triggers.ts +0 -14
  346. package/src/bollharness/src/scripts/ci/scan_subprocess_cfg.ts +0 -14
  347. package/src/bollharness/src/scripts/ci/scan_verify_artifacts.ts +0 -14
  348. package/src/bollharness/src/scripts/ci/scan_yaml_schema.ts +0 -14
  349. package/src/bollharness/src/scripts/context_router.ts +0 -76
  350. package/src/bollharness/src/scripts/deploy-guard.ts +0 -182
  351. package/src/bollharness/src/scripts/guard-feedback.ts +0 -215
  352. package/src/bollharness/src/scripts/guard_router.ts +0 -194
  353. package/src/bollharness/src/scripts/hooks/_hook_output.js +0 -3
  354. package/src/bollharness/src/scripts/hooks/_hook_output.ts +0 -11
  355. package/src/bollharness/src/scripts/hooks/auto-python3.ts +0 -10
  356. package/src/bollharness/src/scripts/hooks/deploy-progress-on-session-end.ts +0 -10
  357. package/src/bollharness/src/scripts/hooks/failure-analyzer.ts +0 -10
  358. package/src/bollharness/src/scripts/hooks/gate-judgment-inject.ts +0 -111
  359. package/src/bollharness/src/scripts/hooks/gate-transition-judgment.ts +0 -74
  360. package/src/bollharness/src/scripts/hooks/inbox-ack.ts +0 -10
  361. package/src/bollharness/src/scripts/hooks/inbox-inject-on-start.ts +0 -10
  362. package/src/bollharness/src/scripts/hooks/inbox-validate.ts +0 -10
  363. package/src/bollharness/src/scripts/hooks/inbox-write-ledger.ts +0 -10
  364. package/src/bollharness/src/scripts/hooks/initializer-agent.ts +0 -10
  365. package/src/bollharness/src/scripts/hooks/loop-detection.ts +0 -83
  366. package/src/bollharness/src/scripts/hooks/owner-guard.ts +0 -10
  367. package/src/bollharness/src/scripts/hooks/precompact.ts +0 -10
  368. package/src/bollharness/src/scripts/hooks/review-agent-gatekeeper.ts +0 -10
  369. package/src/bollharness/src/scripts/hooks/risk-tracker.ts +0 -121
  370. package/src/bollharness/src/scripts/hooks/sanitize-on-read.ts +0 -10
  371. package/src/bollharness/src/scripts/hooks/session-reflection.ts +0 -12
  372. package/src/bollharness/src/scripts/hooks/session-start-magic-docs.ts +0 -12
  373. package/src/bollharness/src/scripts/hooks/session-start-reset-risk.ts +0 -12
  374. package/src/bollharness/src/scripts/hooks/session-start-toolkit-reminder.ts +0 -12
  375. package/src/bollharness/src/scripts/hooks/stop-evaluator.ts +0 -164
  376. package/src/bollharness/src/scripts/hooks/tool-call-counter.ts +0 -10
  377. package/src/bollharness/src/scripts/hooks/trace-analyzer.ts +0 -14
  378. package/src/bollharness/src/scripts/install/install-trust-token.ts +0 -13
  379. package/src/bollharness/src/scripts/install/multi_project_registry.ts +0 -13
  380. package/src/bollharness/src/scripts/install/phase2_auto.ts +0 -28
  381. package/src/bollharness/src/scripts/install/pre_commit_installer.ts +0 -10
  382. package/src/bollharness/src/scripts/install/tier_selector.ts +0 -10
  383. package/src/bollharness/src/scripts/install/transcript_miner.ts +0 -13
  384. package/src/bollharness/src/scripts/lib/claim_patterns.ts +0 -11
  385. package/src/bollharness/src/scripts/lib/sanitize_patterns.ts +0 -13
  386. package/src/bollharness/src/scripts/sanitize.ts +0 -9
  387. package/src/bollharness/templates/persona/default.json +0 -19
  388. package/src/bollharness/templates/scaffold/.gitignore.append +0 -16
  389. package/src/bollharness/templates/scaffold/CLAUDE.md +0 -89
  390. package/src/bollharness-integration/channel-judgment-engine.ts +0 -634
  391. package/src/bollharness-integration/context-chain-router.ts +0 -474
  392. package/src/bollharness-integration/context-router-judgment.ts +0 -339
  393. package/src/bollharness-integration/context-router.ts +0 -583
  394. package/src/bollharness-integration/gate-state-machine.ts +0 -444
  395. package/src/bollharness-integration/gate-transition-hooks.ts +0 -137
  396. package/src/bollharness-integration/guard-checker.ts +0 -451
  397. package/src/bollharness-integration/index.ts +0 -195
  398. package/src/bollharness-integration/integration.ts +0 -538
  399. package/src/bollharness-integration/judgment-prompts.yaml +0 -535
  400. package/src/bollharness-integration/llm-judgment-engine.ts +0 -712
  401. package/src/bollharness-integration/skill-adapter.ts +0 -646
  402. package/src/bootstrap/bootstrap.ts +0 -132
  403. package/src/bootstrap/context-collector.ts +0 -342
  404. package/src/bootstrap/lifecycle-hooks.ts +0 -176
  405. package/src/bootstrap/project-context.ts +0 -163
  406. package/src/cli/interface.ts +0 -211
  407. package/src/cli-entry.ts +0 -304
  408. package/src/constraints/index.ts +0 -6
  409. package/src/documents/reader.ts +0 -85
  410. package/src/documents/store.ts +0 -252
  411. package/src/electron-preload.ts +0 -25
  412. package/src/electron.ts +0 -200
  413. package/src/heartbeat/DaemonManager.ts +0 -283
  414. package/src/heartbeat/HealthMonitor.ts +0 -316
  415. package/src/heartbeat/StartupVerifier.ts +0 -223
  416. package/src/heartbeat/Watchdog.ts +0 -208
  417. package/src/heartbeat/index.ts +0 -109
  418. package/src/heartbeat/self-improve-bus.ts +0 -110
  419. package/src/heartbeat/types.ts +0 -82
  420. package/src/index.ts +0 -1690
  421. package/src/llm/audio-config-store.ts +0 -246
  422. package/src/llm/config-store.ts +0 -400
  423. package/src/llm/llm-judgment-client.ts +0 -470
  424. package/src/llm/pi-ai.ts +0 -558
  425. package/src/llm/video-config-store.ts +0 -257
  426. package/src/network/agent-network.ts +0 -800
  427. package/src/network/hybrid-messenger.ts +0 -199
  428. package/src/network/iroh-bootstrap.ts +0 -57
  429. package/src/network/iroh-discovery.ts +0 -208
  430. package/src/network/iroh-integration.ts +0 -158
  431. package/src/network/iroh-transport.ts +0 -637
  432. package/src/network/known-peers.ts +0 -102
  433. package/src/network/p2p-direct.ts +0 -240
  434. package/src/network/p2p-secret.ts +0 -153
  435. package/src/network/p2p.ts +0 -964
  436. package/src/network/storage/adapters/json-adapter.ts +0 -454
  437. package/src/network/storage/index.ts +0 -203
  438. package/src/network/storage/types.ts +0 -166
  439. package/src/security/builtin-guards.ts +0 -162
  440. package/src/security/context-router-tool.ts +0 -122
  441. package/src/security/react-harness.ts +0 -177
  442. package/src/security/tool-gate.ts +0 -294
  443. package/src/social/ant-colony/index.js +0 -19
  444. package/src/social/channels/ChannelManager.ts +0 -485
  445. package/src/social/channels/DiapChannelBridge.ts +0 -501
  446. package/src/social/channels/InterestMatcher.ts +0 -189
  447. package/src/social/channels/agent-workflow-config.json +0 -214
  448. package/src/social/channels/agent-workflow-config.yaml +0 -334
  449. package/src/social/channels/channel-agent-session.ts +0 -407
  450. package/src/social/channels/channel-heartbeat-agent.ts +0 -622
  451. package/src/social/channels/diap-doc-parser.ts +0 -282
  452. package/src/social/channels/harness-workflow-integrator.ts +0 -594
  453. package/src/social/channels/index.ts +0 -22
  454. package/src/social/channels/types.ts +0 -115
  455. package/src/social/global-shared-context.ts +0 -506
  456. package/src/social/heartbeat.ts +0 -1057
  457. package/src/social/persona/enhanced-persona.ts +0 -359
  458. package/src/types.d.ts +0 -12
  459. package/src/utils/auto-evolve-policy.ts +0 -138
  460. package/src/utils/auto-update.ts +0 -482
  461. package/src/utils/clamp.ts +0 -5
  462. package/src/web/agent-delegate-server.ts +0 -148
  463. package/src/web/api-config.html +0 -520
  464. package/src/web/client.js +0 -4898
  465. package/src/web/components/p2p/P2PModal.tsx +0 -416
  466. package/src/web/components/p2p/index.ts +0 -566
  467. package/src/web/components/p2p/index.tsx +0 -297
  468. package/src/web/components/p2p/p2p-connection.ts +0 -338
  469. package/src/web/components/p2p/p2p-identity.ts +0 -92
  470. package/src/web/components/p2p/p2p-manager.ts +0 -147
  471. package/src/web/components/p2p/p2p-messages.ts +0 -219
  472. package/src/web/components/p2p/p2p-modal.ts +0 -685
  473. package/src/web/components/p2p/p2p-store-memory.ts +0 -162
  474. package/src/web/components/p2p/p2p-tools.ts +0 -315
  475. package/src/web/components/p2p/types.ts +0 -170
  476. package/src/web/components/wallet-viem.mjs +0 -118
  477. package/src/web/design.md +0 -99
  478. package/src/web/icons/apple-touch-icon.png +0 -0
  479. package/src/web/icons/favicon-16x16.png +0 -0
  480. package/src/web/icons/favicon-192x192.png +0 -0
  481. package/src/web/icons/favicon-32x32.png +0 -0
  482. package/src/web/icons/favicon-48x48.png +0 -0
  483. package/src/web/icons/favicon-512x512.png +0 -0
  484. package/src/web/icons/favicon.icns +0 -0
  485. package/src/web/icons/favicon.ico +0 -0
  486. package/src/web/icons/icon.png +0 -0
  487. package/src/web/icons/image.png +0 -0
  488. package/src/web/index.html +0 -382
  489. package/src/web/iroh-delegate-transport.ts +0 -139
  490. package/src/web/manifest.json +0 -21
  491. package/src/web/server.ts +0 -5571
  492. package/src/web/style.css +0 -4455
  493. package/staging/auto-evolve/clean-001/.review-verdict +0 -9
  494. package/staging/auto-evolve/clean-001/clean-001.patch +0 -14
  495. package/staging/auto-evolve/e2e-001/.patch-id +0 -1
  496. package/staging/auto-evolve/e2e-001/.review-verdict +0 -12
  497. package/staging/auto-evolve/e2e-001/e2e-001.patch +0 -11
  498. package/staging/auto-evolve/test-bad/.review-verdict +0 -12
  499. package/staging/auto-evolve/test-bad/test-bad.patch +0 -11
  500. package/tsconfig.cli.json +0 -16
  501. package/tsconfig.electron.json +0 -20
  502. package/tsconfig.json +0 -18
@@ -1,65 +0,0 @@
1
- #!/bin/bash
2
- # count-components.sh — WP-03 AC 1 primary judge + WP-SEC-1 meta-self-check.
3
- #
4
- # Emits three lines that WP-SEC-1 CI asserts against MANIFEST.yaml:
5
- # command_instances=<N> # count of "command": entries in .boll/settings.json
6
- # unique_scripts=<N> # deduped scripts referenced by those commands
7
- # physical_files=<N> # hook + root-script files on disk (L1 registry)
8
- #
9
- # Meta-self-check (§13.5 INV-4 activation 5):
10
- # After set -e, the script verifies (a) its own file still exists, and
11
- # (b) .github/workflows/ci.yml — if present — still references this script
12
- # by name. If either check fails, exit 2 with the message
13
- # "count-components.sh meta-self-check failed: the chokepoint itself is vapor".
14
- #
15
- # Run from repo root. Reads .boll/settings.json, scripts/hooks/, scripts/.
16
-
17
- set -e
18
-
19
- # --- meta-self-check ---------------------------------------------------------
20
- SELF_PATH="$(cd "$(dirname "$0")" && pwd)/$(basename "$0")"
21
- test -f "${SELF_PATH}" || {
22
- echo "count-components.sh meta-self-check failed: the chokepoint itself is vapor" >&2
23
- exit 2
24
- }
25
-
26
- REPO_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
27
- CI_WORKFLOW="${REPO_ROOT}/.github/workflows/ci.yml"
28
- if [ -f "${CI_WORKFLOW}" ] && ! grep -q 'count-components.sh' "${CI_WORKFLOW}"; then
29
- echo "count-components.sh meta-self-check failed: the chokepoint itself is vapor" >&2
30
- exit 2
31
- fi
32
- # -----------------------------------------------------------------------------
33
-
34
- cd "${REPO_ROOT}"
35
-
36
- # command_instances: every "command" key in settings.json's hooks[]
37
- # Count the total commands across all hook stages.
38
- if command -v jq >/dev/null 2>&1; then
39
- CMD_INSTANCES=$(jq '[
40
- .hooks.PreToolUse[]?.hooks[]?,
41
- .hooks.PostToolUse[]?.hooks[]?,
42
- .hooks.PreCompact[]?.hooks[]?,
43
- .hooks.SessionStart[]?.hooks[]?,
44
- .hooks.SessionEnd[]?.hooks[]?,
45
- .hooks.Stop[]?.hooks[]?,
46
- .hooks.PostToolUseFailure[]?.hooks[]?
47
- ] | length' .boll/settings.json)
48
- else
49
- # Fallback: line-grep. Less precise but works without jq.
50
- CMD_INSTANCES=$(grep -c '"command":' .boll/settings.json || echo 0)
51
- fi
52
-
53
- # unique_scripts: distinct scripts referenced by those commands.
54
- # Extract the last `npx ts-node scripts/...` or `bash scripts/...` token and dedupe.
55
- UNIQUE_SCRIPTS=$(grep -oE '(npx ts-node|bash) scripts/[^ "]+' .boll/settings.json \
56
- | awk '{print $2}' | sort -u | wc -l | tr -d ' ')
57
-
58
- # physical_files: hooks dir + 2 root scripts
59
- HOOKS_COUNT=$(ls scripts/hooks/*.ts scripts/hooks/*.sh scripts/hooks/*.md 2>/dev/null | wc -l | tr -d ' ')
60
- ROOT_COUNT=$(ls scripts/guard-feedback.ts scripts/deploy-guard.ts 2>/dev/null | wc -l | tr -d ' ')
61
- PHYSICAL=$((HOOKS_COUNT + ROOT_COUNT))
62
-
63
- echo "command_instances=${CMD_INSTANCES}"
64
- echo "unique_scripts=${UNIQUE_SCRIPTS}"
65
- echo "physical_files=${PHYSICAL}"
@@ -1,14 +0,0 @@
1
- ## 代码变更与 Artifact 关联
2
-
3
- 你正在编辑决策文档。代码变更必须伴随相应的 artifact:
4
-
5
- | 变更类型 | 必须伴随的 artifact |
6
- |----------|---------------------|
7
- | 新功能 | ADR 或 PLAN 文档 |
8
- | Bug 修复 | Issue 文档(含根因分析) |
9
- | 架构变更 | ADR + 影响范围分析 |
10
- | 契约变更 | 消费方清单 + 迁移说明 |
11
-
12
- **行为约束**: 不得提交无 artifact 关联的重大变更。
13
- 目标态文档不得使用"已完成"语气描述尚未实现的功能(承诺 vs 现实漂移)。
14
- PLAN 文档中的 WP 状态必须反映实际代码状态,不是计划状态。
@@ -1,17 +0,0 @@
1
- ## 认证消费方与安全约定
2
-
3
- 你正在编辑认证相关代码。以下是认证体系的消费方:
4
-
5
- | 消费方 | 认证方式 | 入口文件 |
6
- |--------|----------|----------|
7
- | Protocol API | session token (Bearer) | `backend/product/auth/middleware.py` |
8
- | MCP Server (Python) | session token | `mcp-server/boll_mcp/client.py` |
9
- | MCP Server (Node) | session token | `mcp-server-node/src/client.ts` |
10
- | SecondMe OAuth | client_id + secret | `backend/product/auth/secondme.py` |
11
- | Bridge API | bridge API key | `backend/product/routes/bridge.py` |
12
- | Admin API | admin key | `backend/product/routes/admin.py` |
13
- | WebSocket | ticket auth | `backend/product/ws/` |
14
-
15
- **行为约束**: 前端不得暴露任何 API Key。SecondMe OAuth 的 client_secret 不得硬编码。
16
- 修改认证中间件时,必须确认所有消费方的认证链路不受影响。
17
- session token 必须有 TTL,不得发放永不过期的 token。
@@ -1,13 +0,0 @@
1
- ## Bridge 宪法(ADR-026)
2
-
3
- 你正在编辑 Bridge 相关代码。以下 5 条规则约束所有 bridge 改动:
4
-
5
- 1. **Worker 不拥有业务解释权,只上报执行事实。** 如果代码需要理解输出内容的含义,它写错了地方。
6
- 2. **同一个语义只允许有一个定义。** 文件名模式、artifact 类型、event 含义,只能在一个地方定义。
7
- 3. **跑通了就发结果,没跑通就报 failed。** 不做 partial_success 抢救、不生成 placeholder。
8
- 4. **生产不能是第一个集成环境。** 本地必须能用 fake CLI + 真实 HTTP backend 跑完整链。
9
- 5. **新增观测维度或 event 类型,只改 server,不改 worker。**
10
-
11
- 三层职责:`boll-run` 定义成功产物契约 -> `worker` 执行和上报事实 -> `server` 解释事实并生成产品语义。
12
-
13
- **行为约束**: 你不得在 worker 侧添加任何需要理解业务语义的逻辑。所有解释权必须归 server。
@@ -1,18 +0,0 @@
1
- ## 分布式协商约定
2
-
3
- 你正在编辑 catalyst 相关代码。端侧与平台侧职责严格分离:
4
-
5
- **平台侧(cloud catalyst)**:
6
- - 协调协商轮次、管理 deadline、聚合响应
7
- - 拥有全局视角,决定何时进入下一轮或结束
8
-
9
- **端侧(bridge worker)**:
10
- - 执行具体的 LLM 调用、生成响应
11
- - 只上报执行事实,不判断协商是否成功
12
-
13
- **BYOK 模式**:用户绑定自己的 API Key(Anthropic / MiniMax / 自定义 base_url)。
14
- 平台侧使用用户 key 调用 LLM,不存储 key 明文(仅 session 级绑定)。
15
-
16
- **行为约束**: 不得在 worker 侧添加协商策略逻辑(何时结束、何时重试)。
17
- catalyst coordinator 的状态机变更必须伴随测试覆盖。
18
- BYOK base_url 必须经过校验,不得接受任意 URL(SSRF 防护)。
@@ -1,13 +0,0 @@
1
- ## Issue 闭环检查清单
2
-
3
- 你正在编辑 issue 文档。关闭 issue 前必须逐条确认:
4
-
5
- 1. **prevention_status 是否 closed?** 如果是 open,说明复发路径未关闭,不得标 Fixed
6
- 2. **mechanism_layer 是否声明?** 必须指定防护机制:guard / test / type / convention
7
- 3. **有无具体的防护措施描述?** 不能只写"已修复",必须说明如何防止复发
8
- 4. **Guard > Memory 原则**:如果防护靠"记住规则",则 prevention 不算 closed
9
-
10
- **行为约束**: 你不得在 prevention_status 为 open 的情况下将 status 改为 fixed。
11
- 如果根因分析表明无法机械化防护,必须显式标注 `mechanism_layer: convention` 并说明原因。
12
-
13
- 检查顺序:根因 -> 复发路径 -> 防护机制 -> 标记状态。不得跳过中间步骤。
@@ -1,15 +0,0 @@
1
- ## 契约 vs 实现 + 消费方追踪
2
-
3
- 你正在编辑 API 路由代码。区分契约和实现是防止漂移的核心:
4
-
5
- **契约**(改了必须通知消费方):
6
- - URL 路径、HTTP method、请求/响应 JSON schema
7
- - 环境变量名、配置 key
8
- - 事件类型枚举、artifact 类型枚举
9
-
10
- **实现**(内部可自由调整):
11
- - 函数签名、内部数据结构、算法细节
12
-
13
- **行为约束**: 修改契约时,必须先列出所有消费方,逐一确认兼容性。
14
- 消费方列表不靠记忆维护——必须 grep 代码确认谁在调用。
15
- 新增 API 字段必须是 optional;删除字段必须走废弃流程,不得直接移除。
@@ -1,15 +0,0 @@
1
- ## DB 共享结构与迁移约定
2
-
3
- 你正在编辑数据库相关代码。以下表被多个模块共享:
4
-
5
- | 表 | 主要写入方 | 读取消费方 |
6
- |----|-----------|-----------|
7
- | users | auth 模块 | protocol, dashboard, admin |
8
- | demands | formulation | matching, runs, dashboard |
9
- | runs | catalyst, bridge | status API, result API, admin, WS |
10
- | run_events | bridge, catalyst | 6 个消费方(见 run-events-consumers) |
11
- | agents | protocol | discovery, federation, MCP |
12
-
13
- **行为约束**: SQLAlchemy `create_all()` 不会 ALTER 已有表——新增列必须用迁移脚本。
14
- 修改表结构时,必须检查所有读取消费方的查询是否兼容。
15
- 不得在不同模块中对同一表定义不同的 ORM model(一个表一个 model 定义)。
@@ -1,19 +0,0 @@
1
- ## Fixed 三层定义
2
-
3
- 你正在编辑 issue 文档。"Fixed" 不等于"症状消失":
4
-
5
- | 层级 | 含义 | 标准 | 标记 |
6
- |------|------|------|------|
7
- | Level 1 | 症状消失 | 生产不报错了 | Runtime Fixed |
8
- | Level 2 | 复发路径关闭 | 有机制防止同类问题再次发生 | **Fixed**(最低标准) |
9
- | Level 3 | 机制消灭 | 有 guard 自动检测 | Fixed + Guarded |
10
-
11
- issue doc YAML frontmatter 必须包含:
12
- ```yaml
13
- status: fixed|open|wont_fix
14
- prevention_status: open|closed|not_applicable
15
- mechanism_layer: guard|test|type|convention
16
- ```
17
-
18
- **行为约束**: 如果标 `status: fixed` 但 `prevention_status` 是 `open`,则不合格。必须先分析复发路径。
19
- Guard: `check_issue_closure.py`
@@ -1,11 +0,0 @@
1
- ## 通用开发原则
2
-
3
- 以下原则适用于所有代码变更:
4
-
5
- 1. **Guard > Memory**: 如果一件事靠"记住规则"维护,它一定会出错。能机械化检测的,必须写 guard。
6
- 2. **一个事实一个定义**: 同一信息不得在多处重复定义。其余位置必须自动派生或引用。
7
- 3. **验证看最后一公里**: "服务启动了"不等于"功能正常"。验证必须到达用户可观测的终点。
8
- 4. **先分层再动手**: 区分 policy / contract / implementation 三层,搞清楚问题在哪层再修。
9
-
10
- **行为约束**: 不得引入新的重复定义。如果发现已有重复,应在本次变更中收口为单一来源。
11
- 不得跳过测试直接部署。不得用 `--no-verify` 绕过 pre-commit hook。
@@ -1,8 +0,0 @@
1
- ## Issue-First 工作流
2
-
3
- 修复 Bug 或变更业务逻辑前,先确认 `docs/issues/` 或 `docs/decisions/` 中有对应文档。
4
- 没有文档就没有复发路径分析,修了也白修。
5
-
6
- **检查清单**(一行即可):
7
- - 工作区是否已有或已创建对应的 issue/decision 文档?
8
- - 文档中是否写了复发路径(prevention_status)?
@@ -1,16 +0,0 @@
1
- ## MCP 双端一致性约定
2
-
3
- 你正在编辑 MCP 相关代码。Python 和 Node 两端必须保持一致:
4
-
5
- - **工具数量**:两端都是 54 个 @mcp.tool() / registerTool()
6
- - **工具名称**:必须完全相同(boll_xxx)
7
- - **行为语义**:相同输入必须产生相同输出结构
8
- - **版本号**:pyproject.toml 和 package.json 版本必须一致
9
-
10
- 对应文件映射:
11
- - Python: `mcp-server/boll_mcp/server.py` <-> Node: `mcp-server-node/src/index.ts`
12
- - Python: `mcp-server/boll_mcp/client.py` <-> Node: `mcp-server-node/src/client.ts`
13
- - Python: `mcp-server/boll_mcp/config.py` <-> Node: `mcp-server-node/src/config.ts`
14
-
15
- **行为约束**: 改了一端后,你必须检查另一端是否需要同步。不得单独修改一端的工具签名或行为。
16
- Guard: `check_mcp_parity.py`
@@ -1,108 +0,0 @@
1
- ---
2
- paths:
3
- - "src/agents/**"
4
- ---
5
-
6
- # Pi Agent 操作与工具定义
7
-
8
- > 来源: pi-sdk.ts TOOL_DEFINITIONS + getDefaultResponse
9
- > 关联: src/agents/constraint-layer.ts(工具注册)
10
-
11
- ---
12
-
13
- ## 核心操作
14
-
15
- | 操作 | 描述 | 方法签名 |
16
- |------|------|----------|
17
- | 读取文档 | 读取并分析文档内容,支持 .txt, .md, .pdf, .docx | `read_document(path)` |
18
- | 总结文档 | 总结文档内容,可选提供上下文 | `summarize_document(path, context?)` |
19
- | 改进文档 | 改进文档,需提供文件路径和改进要求 | `improve_document(path, requirements)` |
20
- | 查看节点 | 查看已连接的对等节点 | `list_peers()` |
21
- | 发送消息 | 向指定对等节点发送消息 | `send_message(peer_id, message)` |
22
- | 广播消息 | 广播消息到所有节点 | `broadcast_message(message)` |
23
- | 查看身份 | 查看当前智能体身份 | `get_identity()` |
24
- | 设置 Persona | 更新智能体 persona 信息 | `set_persona(persona_json)` |
25
- | 执行工作流 | 执行预定义工作流 | `run_workflow(steps)` |
26
- | 查看日志 | 查看最近操作日志 | `get_operation_logs()` |
27
- | 列出文件 | 列出目录中的文件 | `list_files(path?)` |
28
- | 读取目录 | 读取目录内容,返回文件列表和目录结构 | `read_directory(path?)` |
29
-
30
- ---
31
-
32
- ## 自主循环机制
33
-
34
- 智能体基于 ReAct (Reasoning + Acting) 模式工作,具备自动评估质量和错误恢复能力:
35
-
36
- ### 质量评估与自动改进
37
- - **质量阈值**: `0.6` (6/10)
38
- - **最大改进次数**: `3` 次
39
- - 当回复或工具执行结果质量低于阈值时,自动触发改进循环
40
- - 改进时在 system prompt 中添加质量提示,让 LLM 重新生成更优回答
41
-
42
- ### 错误处理与自动恢复
43
- - **连续错误上限**: `3` 次
44
- - 工具执行失败时增加错误计数
45
- - 达到连续错误上限时,添加错误上下文让 LLM 换一种方式处理
46
- - 工具执行异常会被捕获并记录,不中断循环
47
-
48
- ### 循环继续条件
49
- 当 LLM 返回不是 tool call 格式时,判断是否需要继续循环:
50
- 1. 包含错误/失败信息(不存在、找不到、错误、failed 等)
51
- 2. 回复太短(<100 字符且无换行),可能是中间回复
52
- 3. 包含问号,可能是需要更多信息
53
- 4. 不包含明确结论(完成、结果、答案等)
54
-
55
- 满足以上任一条件且循环未达上限,则继续处理。
56
-
57
- ### 重试机制
58
- - 工具调用失败时重试(最多 3 次)
59
- - 汇报发送失败时重试(最多 2 次,指数退避)
60
- - 失败的汇报会进入待重试队列
61
-
62
- ---
63
-
64
- ## 示例请求格式
65
-
66
- ### 文档操作
67
- ```
68
- "读取 README.md"
69
- "总结一下 src/index.ts"
70
- "改进文档,按照更清晰的错误处理要求"
71
- ```
72
-
73
- ### P2P 网络操作
74
- ```
75
- "查看当前连接了哪些节点"
76
- "向 QmABC... 发送测试消息"
77
- "广播消息:系统将在 10 分钟后维护"
78
- ```
79
-
80
- ### 身份与状态
81
- ```
82
- "查看身份"
83
- "查看日志"
84
- ```
85
-
86
- ---
87
-
88
- ## 工具注册位置
89
-
90
- 工具在 `pi-sdk.ts` 的 `PiAgent` 类构造函数中注册,映射到:
91
- - `src/agents/constraint-layer.ts` — ConstraintLayer 基类提供的基础能力
92
- - `src/network/p2p.ts` — P2P 网络模块
93
- - `src/documents/reader.ts` — 文档读取模块
94
-
95
- ---
96
-
97
- ## 自然语言指令映射
98
-
99
- | 自然语言指令 | 解析关键词 | 执行方法 |
100
- |-------------|-----------|----------|
101
- | 读取 X | `读取`、`read_document`、`read` | `readDocument(path)` |
102
- | 总结文档 | `总结`、`summarize_document` | `summarizeDocument(path, context?)` |
103
- | 改进文档 | `改进`、`improve_document` | `improveDocument(request)` |
104
- | 查看节点 | `查看节点`、`list_peers` | `listPeers()` |
105
- | 发送消息 | `向 X 发送消息`、`send_message` | `sendMessage(peerId, message)` |
106
- | 广播消息 | `广播消息`、`broadcast_message` | `broadcast(message)` |
107
- | 查看身份 | `查看身份`、`get_identity` | `getIdentity()` |
108
- | 查看日志 | `查看日志`、`get_operation_logs` | `getOperationLogs()` |
@@ -1,15 +0,0 @@
1
- ## Protocol API 消费方
2
-
3
- 你正在编辑 /protocol/ 相关代码。以下是 Protocol API 的消费方列表:
4
-
5
- | 消费方 | 入口 | 认证方式 |
6
- |--------|------|----------|
7
- | MCP Server (Python) | `mcp-server/boll_mcp/client.py` | session token |
8
- | MCP Server (Node) | `mcp-server-node/src/client.ts` | session token |
9
- | 前端 website | `website/` fetch 调用 | session token (cookie) |
10
- | Bridge Agent | `bridge_agent/` | bridge API key |
11
- | 外部 A2A 调用方 | federation endpoint | DID 签名 |
12
-
13
- **行为约束**: 修改任何 /protocol/ 路由的请求/响应结构时,必须检查上述所有消费方是否兼容。
14
- 不得在不更新消费方的情况下修改返回字段名或删除字段。
15
- 新增字段必须是 optional,避免破坏现有消费方。
@@ -1,15 +0,0 @@
1
- ## run_events 消费方(共享结构)
2
-
3
- 你正在编辑 run_events 相关代码。此表有 6 个消费方,各自角色不同:
4
-
5
- | 消费方 | 读/写 | 用途 | 关键依赖 |
6
- |--------|-------|------|----------|
7
- | Bridge events 路由 | 写 | 接收 worker 上报的事件 | event_type 枚举 |
8
- | Catalyst coordinator | 写 | 记录协商轮次事件 | round_number, role |
9
- | Run status API | 读 | 前端展示进度 | 按 run_id 查询 + 时间排序 |
10
- | Run result API | 读 | 提取最终产物 | artifact 类型过滤 |
11
- | Admin event log | 读 | 运维审计 | 全字段 |
12
- | WebSocket hub | 读 | 实时推送 | 增量查询(last_id) |
13
-
14
- **行为约束**: 修改 run_events 表结构或写入逻辑时,必须逐一确认 6 个消费方不受影响。
15
- 不得假设"只有一个地方读"。读模型截断会导致长 run 状态不正确。
@@ -1,13 +0,0 @@
1
- ## 场景保真度分级
2
-
3
- 你正在编辑场景相关代码。每个场景有明确的保真度等级:
4
-
5
- | 等级 | 含义 | 数据来源 | 示例 |
6
- |------|------|----------|------|
7
- | **real** | 接真实 Protocol API | 生产后端 | startup-hub |
8
- | **demo** | 有独立后端但非协议链路 | demo 专用 API | ai-gig-market |
9
- | **shell** | 纯前端展示,无后端 | 静态/mock 数据 | 其他展示页 |
10
-
11
- **行为约束**: 文档和代码中声明的保真度必须与运行时实际行为一致。
12
- 不得在文档中声称"真实协议"而代码跑 demo fallback(承诺 vs 现实漂移)。
13
- 修改场景接入方式时,必须同步更新场景配置中的 fidelity 字段。
@@ -1,15 +0,0 @@
1
- ## 真相源优先级
2
-
3
- 你正在编辑核心文档。boll 的真相源有明确的优先级:
4
-
5
- | 优先级 | 来源 | 说明 |
6
- |--------|------|------|
7
- | 1 | 运行中的代码 | 实际行为是最终真相 |
8
- | 2 | 数据库 schema + 测试 | 可执行的约束 |
9
- | 3 | ADR / TECH / PLAN 文档 | 设计决策记录 |
10
- | 4 | CLAUDE.md | 开发指导(派生自上层) |
11
- | 5 | MEMORY.md | 会话间记忆(最易过期) |
12
-
13
- **行为约束**: 当不同层级的信息冲突时,必须以高优先级来源为准并修正低优先级来源。
14
- CLAUDE.md 中的信息必须可以从代码或 ADR 中验证——不得包含无法溯源的断言。
15
- 修改真相源文件时,必须检查下游是否需要同步更新。
@@ -1,15 +0,0 @@
1
- ## 两套语言体系
2
-
3
- 你正在编辑面向用户的代码。协议术语和用户语言必须严格分离:
4
-
5
- **协议层**(仅开发者/文档可见):
6
- formulation, crystallization, catalyst, nomination, intent field, operator, resonance
7
-
8
- **用户层**(UI/文案/帮助文本):
9
- 需求澄清, 多方协商, 协调, 推荐, 能力匹配
10
-
11
- **行为约束**: 前端 UI、用户提示、错误消息中不得出现协议内部术语。
12
- 用户永远不需要知道"结晶"是什么——他们只知道"多方协商"。
13
- 比喻:酒店管家不会跟客人说"我现在执行 housekeeping protocol"。
14
-
15
- 禁词(用户可见文本): "播种意图"、"共振"、"场域"、"结晶"等诗意表达。
@@ -1,14 +0,0 @@
1
- ## 版本号来源清单
2
-
3
- 你正在编辑版本相关文件。一个事实只允许有一个定义:
4
-
5
- | 版本号 | 权威来源 | 必须同步的位置 |
6
- |--------|----------|----------------|
7
- | MCP Python | `mcp-server/pyproject.toml` | CLAUDE.md 引用 |
8
- | MCP Node | `mcp-server-node/package.json` | 必须与 Python 版本一致 |
9
- | 后端 API | `backend/product/protocol/service.py` | /protocol 元数据返回 |
10
- | 前端 | `website/package.json` | 部署产物 BUILD_ID |
11
-
12
- **行为约束**: 修改任何版本号时,必须同步所有关联位置。
13
- Python MCP 和 Node MCP 版本号必须完全一致,不得出现 0.x.y vs 0.x.z 的漂移。
14
- "一个事实一个定义"——如果两个地方都写死版本号,其中一个必须是自动派生的。
@@ -1,47 +0,0 @@
1
- #!/bin/bash
2
- # Walks up from $PWD to find the bollharness-installed project root.
3
- #
4
- # Anchor priority:
5
- # 1. .bollharness/MANIFEST.yaml (primary — declared by installer)
6
- # 2. CLAUDE.md (fallback — older projects or pre-install)
7
- #
8
- # Why not scripts/guard-feedback.ts like the old boll-specific script?
9
- # Because that created a circular dependency: guard-feedback.ts was both
10
- # the anchor AND the target invoked by the hook. Projects that don't ship
11
- # guard-feedback.ts (because they disabled it via issue-adapter.yaml) would
12
- # fail to locate their own root. The MANIFEST anchor is independent of any
13
- # specific hook installation.
14
- #
15
- # Prints absolute project root to stdout. Exits 1 if not found.
16
- set -e
17
- d="${PWD}"
18
- while [ "$d" != "/" ] && [ -n "$d" ]; do
19
- if [ -f "$d/.bollharness/MANIFEST.yaml" ]; then
20
- echo "$d"
21
- exit 0
22
- fi
23
- d="$(dirname "$d")"
24
- done
25
-
26
- # Fallback 1: walk up again looking for CLAUDE.md alone
27
- d="${PWD}"
28
- while [ "$d" != "/" ] && [ -n "$d" ]; do
29
- if [ -f "$d/CLAUDE.md" ]; then
30
- echo "$d"
31
- exit 0
32
- fi
33
- d="$(dirname "$d")"
34
- done
35
-
36
- # Fallback 2: CLAUDE_PROJECT_DIR env var set by Claude Code
37
- if [ -n "${CLAUDE_PROJECT_DIR:-}" ]; then
38
- if [ -f "${CLAUDE_PROJECT_DIR}/.bollharness/MANIFEST.yaml" ] || [ -f "${CLAUDE_PROJECT_DIR}/CLAUDE.md" ]; then
39
- echo "${CLAUDE_PROJECT_DIR}"
40
- exit 0
41
- fi
42
- fi
43
-
44
- # Fail-closed: no hardcoded machine-specific path. If you reach here the
45
- # project is either not yet installed or CLAUDE_PROJECT_DIR is unset —
46
- # both cases should surface as an error to the hook caller.
47
- exit 1
@@ -1,78 +0,0 @@
1
- #!/bin/bash
2
- # H9 inbox poll:状态检查 + 下次 wake 间隔推荐(PLAN-H9 §4.5 WP-05)。
3
- #
4
- # Spec letter 工程修订(disclosure):
5
- # PLAN-H9 §4.5 原文写"shell 脚本 ... 内部调用 ScheduleWakeup MCP"。落地阶段
6
- # 发现 ScheduleWakeup 是 CC agent loop 内部 tool API,shell 进程没有合法 RPC
7
- # 入口直接调用——必须由 CC agent(主窗口)调用。本脚本因此切分为:
8
- # [shell 层] inbox-poll.sh = 状态检查 + 推荐间隔 → stdout 状态
9
- # [agent 层] 主 agent 读 stdout 后自行决定下一次 ScheduleWakeup 时机
10
- # 切分边界已在 PLAN-H9 §4.5 + §11 letter 对齐时点明,记入 ADR-H9 修订建议。
11
- #
12
- # 输出:纯 KV 文本(不是 hook IO JSON),主 agent 解读后调度。
13
- # unread_count=<int>
14
- # p0_exists=<true|false>
15
- # oldest_unread_age_seconds=<int|0>
16
- # recommended_wake_seconds=<int>
17
- #
18
- # Hook IO 红线:本文件**不是** CC hook(不在 .boll/settings.json 注册),
19
- # 是主 agent 用 Bash tool 主动调用的检查脚本。无 print(json.dumps) / echo
20
- # permissionDecision / echo systemMessage 等 banned form——由 PLAN-H9 §8 显式
21
- # grep DoD 物理校验。
22
-
23
- set -euo pipefail
24
-
25
- # 主仓 root 检测(与 find-project-root.sh 语义对齐)
26
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
27
- REPO_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
28
- INBOX_ROOT="${REPO_ROOT}/.boll/inbox"
29
- MAIN_UNREAD="${INBOX_ROOT}/main/unread"
30
-
31
- # 默认间隔常量(见 ADR-H9 §6.3 ScheduleWakeup 边界)
32
- NORMAL_WAKE_SECONDS="${INBOX_POLL_NORMAL_WAKE:-1200}" # 20 分钟(cache 友好)
33
- P0_WAKE_SECONDS="${INBOX_POLL_P0_WAKE:-300}" # 5 分钟(CC ScheduleWakeup 最短允许下限)
34
-
35
- # unread 计数
36
- unread_count=0
37
- if [ -d "${MAIN_UNREAD}" ]; then
38
- unread_count="$(find "${MAIN_UNREAD}" -maxdepth 1 -type f -name '*.md' 2>/dev/null | wc -l | tr -d ' ')"
39
- fi
40
-
41
- # 是否存在 priority=P0 消息
42
- p0_exists=false
43
- if [ "${unread_count}" -gt 0 ]; then
44
- if grep -lE '^priority:[[:space:]]*P0[[:space:]]*$' "${MAIN_UNREAD}"/*.md 2>/dev/null | head -1 | grep -q .; then
45
- p0_exists=true
46
- fi
47
- fi
48
-
49
- # 最旧 unread 的 mtime delta(秒)
50
- oldest_age=0
51
- if [ "${unread_count}" -gt 0 ]; then
52
- oldest_file="$(ls -1tr "${MAIN_UNREAD}"/*.md 2>/dev/null | head -1 || true)"
53
- if [ -n "${oldest_file}" ] && [ -f "${oldest_file}" ]; then
54
- if stat --version >/dev/null 2>&1; then
55
- # GNU stat (Linux)
56
- oldest_mtime="$(stat -c %Y "${oldest_file}" 2>/dev/null || echo 0)"
57
- else
58
- # BSD stat (macOS)
59
- oldest_mtime="$(stat -f %m "${oldest_file}" 2>/dev/null || echo 0)"
60
- fi
61
- now="$(date +%s)"
62
- oldest_age="$((now - oldest_mtime))"
63
- fi
64
- fi
65
-
66
- # 推荐 wake 间隔
67
- if [ "${p0_exists}" = "true" ]; then
68
- recommended="${P0_WAKE_SECONDS}"
69
- else
70
- recommended="${NORMAL_WAKE_SECONDS}"
71
- fi
72
-
73
- # 输出(KV 纯文本,主 agent 用 grep / awk 解读)
74
- printf 'unread_count=%s\n' "${unread_count}"
75
- printf 'p0_exists=%s\n' "${p0_exists}"
76
- printf 'oldest_unread_age_seconds=%s\n' "${oldest_age}"
77
- printf 'recommended_wake_seconds=%s\n' "${recommended}"
78
- printf 'note=ScheduleWakeup MCP must be invoked by main agent (shell cannot reach CC internal tool API)\n'
@@ -1,56 +0,0 @@
1
- #!/bin/bash
2
- # PreCompact hook: 注入必须在 context compaction 中保留的关键信息
3
- # [来源: ADR-038 D2.3 + D9 (v4 Objective Recitation), CC PreCompact hook — exit 0 追加为 compact 指令]
4
-
5
- # 读取当前活跃的 PLAN/TASK/Issue 状态
6
- REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
7
-
8
- cat <<'PRESERVE'
9
- ## 必须保留的关键信息
10
-
11
- ### 当前工作上下文
12
- - 保留当前正在进行的 PLAN/TASK/Issue 的完整状态和进度
13
- - 保留 Sprint Contract(如果有)的全部验收标准
14
- - 保留当前 WP 的 scope 和验收条件
15
-
16
- ### 不可降级规则 (ADR-030 核心)
17
- - Guard > Memory: 能机械化检测的必须写 guard
18
- - 一个事实一个定义: 同一信息不得在多处重复定义
19
- - 验证看最后一公里: 验证必须到达用户可观测的终点
20
-
21
- ### 行为约束
22
- - 所有 commit message 必须中英双语
23
- - 所有 subagent 必须使用 claude-opus-4-6
24
- - 不得跳过 Gate 2/4/6/8 审查
25
- - Issue 先于代码: 改代码前必须先创建 issue 文档
26
- PRESERVE
27
-
28
- # ── v4 D9: Objective Recitation ──
29
- # [来源: Manus/IMPACT — recite objectives at end of context after ~50 tool calls]
30
- # [来源: Cursor — 丢失 reasoning traces 导致 30% 性能下降]
31
- # 在 compact 后的新上下文末尾追加原始目标,防止注意力漂移。
32
- # KV cache 友好——只追加到末尾,不重排前文。
33
- PROGRESS_FILE="$REPO_ROOT/.boll/progress/current.json"
34
- if [ -f "$PROGRESS_FILE" ]; then
35
- echo ""
36
- echo "## Objective Recitation (v4 D9)"
37
- echo ""
38
- echo "**原始目标**(不可漂移,由 D8 Initializer Agent 写入后 read-only):"
39
- npx ts-node -e "
40
- import * as fs from 'fs';
41
- const data = JSON.parse(fs.readFileSync(process.env.PROGRESS_FILE!, 'utf-8'));
42
- console.log(' ' + (data.objective || '<未设置>'));
43
- console.log();
44
- const pending = (data.features || []).filter((f: { status: string }) => f.status !== 'passing');
45
- if (pending.length) {
46
- console.log('**未完成 features**:');
47
- pending.forEach((f: { status: string; id: string; subject: string }) => {
48
- console.log(' - [' + f.status + '] ' + f.id + ': ' + f.subject);
49
- });
50
- } else {
51
- console.log('**所有 features 已 passing**,可以进入 Stop 流程。');
52
- }
53
- " 2>&1
54
- fi
55
-
56
- exit 0