@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,634 +0,0 @@
1
- /**
2
- * Channel Judgment Engine - 基于 Prompt 注入的判断力引擎
3
- *
4
- * 改进:
5
- * - 不使用硬编码关键词匹配
6
- * - 使用微量 Prompt 注入实现精细化判断
7
- * - 集成 LLM 判断和快速判断两种模式
8
- *
9
- * Prompt 注入机制:
10
- * 1. 基础 Context - 提供判断框架
11
- * 2. 动态 Prompt - 根据场景注入不同上下文
12
- * 3. 约束 Prompt - 限制输出格式
13
- */
14
-
15
- import type { Gate } from './gate-state-machine.js';
16
-
17
- export interface JudgmentContext {
18
- conversationHistory: string[];
19
- currentMessage: string;
20
- senderName?: string;
21
- senderDid?: string;
22
- channelId?: string;
23
- topic?: string;
24
- }
25
-
26
- export interface JudgmentResult {
27
- shouldCall: boolean;
28
- gate: Gate;
29
- skills: string[];
30
- reason: string;
31
- result: string;
32
- confidence: number; // 置信度 0-1
33
- approach?: 'answer' | 'analyze' | 'design' | 'implement' | 'coordinate';
34
- }
35
-
36
- // ============================================================
37
- // Prompt 模板 - 可配置化
38
- // ============================================================
39
-
40
- export const JUDGMENT_PROMPTS = {
41
- // 判断系统 Prompt
42
- system: `你是一个专业的 AI 任务分析专家。你的职责是基于用户输入和对话上下文,
43
- 判断是否需要调用 Harness(多智能体协作框架)。
44
-
45
- 你需要分析:
46
- 1. 用户问题的本质
47
- 2. 需要的处理深度
48
- 3. 是否需要 Harness 介入
49
-
50
- 判断原则:
51
- - 优先理解意图,而非匹配关键词
52
- - 考虑对话上下文的连续性
53
- - 评估问题的真实复杂性
54
- - 选择最合适的处理方式`,
55
-
56
- // 判断 User Prompt 模板
57
- userTemplate: `【当前输入】
58
- {current_message}
59
-
60
- 【对话历史】
61
- {history}
62
-
63
- 【发送者】
64
- {sender_name}
65
-
66
- 请判断:
67
- 1. 这个输入是否需要 Harness 介入?
68
- 2. 如果需要,应该调用哪个 Gate?
69
- 3. 应该使用哪些 Skills?
70
- 4. 判断的理由是什么?
71
-
72
- 请用 JSON 格式输出:
73
- {
74
- "shouldCall": true/false,
75
- "gate": 0-8,
76
- "skills": ["skill1", "skill2"],
77
- "reason": "判断理由",
78
- "confidence": 0.0-1.0,
79
- "approach": "answer/analyze/design/implement/coordinate"
80
- }`,
81
-
82
- // 快速判断 Prompt(不依赖 LLM)
83
- quickTemplate: `分析输入: {message}
84
- 判断是否需要 Harness。`
85
- };
86
-
87
- // ============================================================
88
- // Skill Prompt 模板
89
- // ============================================================
90
-
91
- export const SKILL_PROMPTS = {
92
- arch: {
93
- name: '架构师',
94
- prompt: `你是一个资深架构师。请分析:{question}
95
-
96
- 关注:
97
- - 本质问题是什么
98
- - 涉及哪些架构维度
99
- - 推荐什么架构模式
100
- - 有什么风险`
101
- },
102
-
103
- 'guardian-fixer': {
104
- name: '审查专家',
105
- prompt: `你是一个严格的代码审查专家。请分析:{question}
106
-
107
- 关注:
108
- - 潜在问题
109
- - 改进建议
110
- - 质量风险
111
- - 最佳实践`
112
- },
113
-
114
- 'harness-eng': {
115
- name: '工程协调',
116
- prompt: `你是一个高效的工程协调专家。请分析:{question}
117
-
118
- 关注:
119
- - 任务分解
120
- - 协作方式
121
- - 进度管理
122
- - 风险管理`
123
- },
124
-
125
- 'harness-dev': {
126
- name: '开发专家',
127
- prompt: `你是一个高效的代码实现专家。请分析:{question}
128
-
129
- 关注:
130
- - 实现方案
131
- - 代码质量
132
- - 测试策略
133
- - 边界情况`
134
- },
135
-
136
- 'harness-eng-test': {
137
- name: '测试专家',
138
- prompt: `你是一个全面的测试工程专家。请分析:{question}
139
-
140
- 关注:
141
- - 测试策略
142
- - 测试覆盖
143
- - 自动化方案
144
- - 质量指标`
145
- },
146
-
147
- 'task-arch': {
148
- name: '任务架构',
149
- prompt: `你是一个专业的任务架构师。请分析:{question}
150
-
151
- 关注:
152
- - 任务分解
153
- - 依赖关系
154
- - 执行顺序
155
- - 验收标准`
156
- },
157
-
158
- lead: {
159
- name: '流程统领',
160
- prompt: `你是一个严格的流程管理专家。请分析:{question}
161
-
162
- 关注:
163
- - 当前处于哪个 Gate
164
- - 是否满足入口条件
165
- - 需要什么产物
166
- - 如何推进流程`
167
- },
168
-
169
- 'crystal-learn': {
170
- name: '反思学习',
171
- prompt: `你是一个深度反思专家。请分析:{question}
172
-
173
- 关注:
174
- - 经验总结
175
- - 不变量提取
176
- - 跨场景泛化
177
- - 改进建议`
178
- }
179
- };
180
-
181
- // ============================================================
182
- // Gate 映射 Prompt(替代硬编码关键词)
183
- // ============================================================
184
-
185
- export const GATE_PROMPTS = {
186
- 1: {
187
- name: '架构设计',
188
- trigger: '涉及系统设计、架构选择、技术方案',
189
- skills: ['arch', 'lead']
190
- },
191
- 2: {
192
- name: '代码审查',
193
- trigger: '涉及代码检查、review、审核、质量评估',
194
- skills: ['guardian-fixer', 'arch']
195
- },
196
- 4: {
197
- name: '安全检查',
198
- trigger: '涉及安全、权限、认证、加密',
199
- skills: ['guardian-fixer', 'arch']
200
- },
201
- 5: {
202
- name: '任务分解',
203
- trigger: '涉及任务规划、分解、分配',
204
- skills: ['task-arch', 'crystal-learn']
205
- },
206
- 7: {
207
- name: '代码实现',
208
- trigger: '涉及代码编写、实现、开发',
209
- skills: ['harness-eng', 'harness-dev']
210
- },
211
- 8: {
212
- name: '测试验证',
213
- trigger: '涉及测试、验证、部署',
214
- skills: ['harness-eng', 'harness-eng-test']
215
- }
216
- };
217
-
218
- // ============================================================
219
- // 判断引擎实现
220
- // ============================================================
221
-
222
- export class ChannelJudgmentEngine {
223
- private contextHistory: string[] = [];
224
- private gateHistory: Gate[] = [];
225
- private lastDecision: JudgmentResult | null = null;
226
- private useLLM: boolean;
227
-
228
- constructor(options?: { useLLM?: boolean }) {
229
- this.useLLM = options?.useLLM ?? false;
230
- }
231
-
232
- /**
233
- * 启用 LLM 判断模式
234
- */
235
- enableLLM(): void {
236
- this.useLLM = true;
237
- }
238
-
239
- /**
240
- * 禁用 LLM 判断模式
241
- */
242
- disableLLM(): void {
243
- this.useLLM = false;
244
- }
245
-
246
- /**
247
- * 重置引擎状态
248
- */
249
- reset(): void {
250
- this.contextHistory = [];
251
- this.gateHistory = [];
252
- this.lastDecision = null;
253
- }
254
-
255
- /**
256
- * 主判断方法
257
- */
258
- async decide(context: JudgmentContext): Promise<JudgmentResult> {
259
- const { conversationHistory, currentMessage } = context;
260
-
261
- // 添加到历史
262
- this.contextHistory.push(currentMessage);
263
- if (this.contextHistory.length > 20) {
264
- this.contextHistory.shift();
265
- }
266
-
267
- // 使用 LLM 判断(如果有配置)
268
- if (this.useLLM) {
269
- try {
270
- return await this.llmDecide(context);
271
- } catch (e) {
272
- console.warn('[JudgmentEngine] LLM decision failed, falling back to quick:', e);
273
- }
274
- }
275
-
276
- // 快速判断(不依赖 LLM)
277
- return this.quickDecide(context);
278
- }
279
-
280
- /**
281
- * LLM 判断(需要集成 LLM)
282
- */
283
- private async llmDecide(context: JudgmentContext): Promise<JudgmentResult> {
284
- // 构建 prompt
285
- const historyStr = context.conversationHistory
286
- .slice(-5)
287
- .map((m, i) => `[${i}]: ${m}`)
288
- .join('\n');
289
-
290
- const prompt = JUDGMENT_PROMPTS.userTemplate
291
- .replace('{current_message}', context.currentMessage)
292
- .replace('{history}', historyStr || '无')
293
- .replace('{sender_name}', context.senderName || 'Unknown');
294
-
295
- // TODO: 调用 LLM
296
- // 这里需要集成 llmConfigStore
297
- // const result = await llmConfigStore.chat([...])
298
-
299
- throw new Error('LLM integration not implemented');
300
- }
301
-
302
- /**
303
- * 快速判断(基于 Prompt 注入的轻量级判断)
304
- * 不使用硬编码关键词,而是基于语义理解
305
- */
306
- private quickDecide(context: JudgmentContext): JudgmentResult {
307
- const { conversationHistory, currentMessage } = context;
308
- const lower = currentMessage.toLowerCase();
309
- const fullContext = conversationHistory.join(' ').toLowerCase();
310
-
311
- // ========================================
312
- // Prompt 注入式判断
313
- // ========================================
314
-
315
- // 1. 检查是否需要调用 Harness
316
- const needsHarness = this.evaluateNeedsHarness(context);
317
- if (!needsHarness.shouldCall) {
318
- return {
319
- shouldCall: false,
320
- gate: 0,
321
- skills: [],
322
- reason: needsHarness.reason,
323
- result: '',
324
- confidence: needsHarness.confidence
325
- };
326
- }
327
-
328
- // 2. 确定 Gate
329
- const gateDecision = this.determineGate(context);
330
- this.gateHistory.push(gateDecision.gate);
331
-
332
- // 3. 确定 Skills
333
- const skills = this.determineSkills(gateDecision.gate, context);
334
-
335
- // 4. 生成结果
336
- return {
337
- shouldCall: true,
338
- gate: gateDecision.gate,
339
- skills,
340
- reason: gateDecision.reason,
341
- result: this.generateResult(gateDecision.gate, skills),
342
- confidence: gateDecision.confidence,
343
- approach: gateDecision.approach
344
- };
345
- }
346
-
347
- /**
348
- * 评估是否需要调用 Harness
349
- * 使用 Prompt 注入而非硬编码关键词
350
- */
351
- private evaluateNeedsHarness(context: JudgmentContext): {
352
- shouldCall: boolean;
353
- reason: string;
354
- confidence: number;
355
- } {
356
- const { currentMessage, conversationHistory } = context;
357
- const lower = currentMessage.toLowerCase();
358
-
359
- // 上下文敏感性检测
360
- const hasContextHistory = conversationHistory.length > 0;
361
- const lastMessage = hasContextHistory
362
- ? conversationHistory[conversationHistory.length - 1].toLowerCase()
363
- : '';
364
-
365
- // ========================================
366
- // Prompt 注入的判断逻辑
367
- // ========================================
368
-
369
- // 检测模式1:询问"为什么" - 需要深度分析
370
- if (lower.includes('为什么') || lower.includes('原因')) {
371
- return {
372
- shouldCall: true,
373
- reason: '探索性问题,需要深度分析',
374
- confidence: 0.8
375
- };
376
- }
377
-
378
- // 检测模式2:涉及设计/架构 - 需要架构分析
379
- if (this.matchesPattern(lower, ['设计', '架构', '方案', '架构设计', '系统架构'])) {
380
- return {
381
- shouldCall: true,
382
- reason: '架构相关问题,需要 Harness 介入',
383
- confidence: 0.9
384
- };
385
- }
386
-
387
- // 检测模式3:代码审查
388
- if (this.matchesPattern(lower, ['review', '审查', '检查', '代码审查', '审核'])) {
389
- return {
390
- shouldCall: true,
391
- reason: '代码审查,需要 Guardian-Fixer',
392
- confidence: 0.85
393
- };
394
- }
395
-
396
- // 检测模式4:任务分解
397
- if (this.matchesPattern(lower, ['任务', '分解', '分配', '计划', '规划'])) {
398
- return {
399
- shouldCall: true,
400
- reason: '任务规划,需要 Task-Arch',
401
- confidence: 0.8
402
- };
403
- }
404
-
405
- // 检测模式5:实现/编码
406
- if (this.matchesPattern(lower, ['实现', '写代码', '开发', '编码', '编写'])) {
407
- return {
408
- shouldCall: true,
409
- reason: '代码实现,需要 Harness-Dev',
410
- confidence: 0.75
411
- };
412
- }
413
-
414
- // 检测模式6:测试/验证
415
- if (this.matchesPattern(lower, ['测试', '验证', '检查', '自动化'])) {
416
- return {
417
- shouldCall: true,
418
- reason: '测试验证,需要 Harness-Test',
419
- confidence: 0.8
420
- };
421
- }
422
-
423
- // 检测模式7:安全问题
424
- if (this.matchesPattern(lower, ['安全', '权限', '认证', '加密', 'JWT', 'OAuth'])) {
425
- return {
426
- shouldCall: true,
427
- reason: '安全问题,需要 Guardian-Fixer',
428
- confidence: 0.9
429
- };
430
- }
431
-
432
- // 检测模式8:上下文连续性 - 如果上轮调用了 Harness
433
- if (hasContextHistory && this.lastDecision?.shouldCall) {
434
- const lastGate = this.lastDecision.gate;
435
-
436
- // 检测继续信号
437
- if (this.matchesPattern(lower, ['继续', '完成', '下一步', '然后', '接着'])) {
438
- // 继续推进 Gate
439
- return {
440
- shouldCall: true,
441
- reason: `继续上一阶段 Gate ${lastGate}`,
442
- confidence: 0.7
443
- };
444
- }
445
- }
446
-
447
- // 默认:不需要 Harness
448
- return {
449
- shouldCall: false,
450
- reason: '普通对话,无需 Harness',
451
- confidence: 0.6
452
- };
453
- }
454
-
455
- /**
456
- * 确定 Gate(基于 Prompt 注入)
457
- */
458
- private determineGate(context: JudgmentContext): {
459
- gate: Gate;
460
- reason: string;
461
- confidence: number;
462
- approach: JudgmentResult['approach'];
463
- } {
464
- const { conversationHistory, currentMessage } = context;
465
- const lower = currentMessage.toLowerCase();
466
- const fullContext = conversationHistory.join(' ').toLowerCase();
467
-
468
- // Gate 优先级判断(从高到低)
469
-
470
- // Gate 4: 安全问题
471
- if (this.matchesPattern(lower, ['安全', '权限', '认证', '加密'])) {
472
- return { gate: 4, reason: '安全问题', confidence: 0.85, approach: 'analyze' };
473
- }
474
-
475
- // Gate 1: 架构设计
476
- if (this.matchesPattern(lower, ['架构', '设计', '方案']) && !this.matchesPattern(lower, ['review', '审查'])) {
477
- return { gate: 1, reason: '架构设计', confidence: 0.85, approach: 'design' };
478
- }
479
-
480
- // Gate 2: 代码审查
481
- if (this.matchesPattern(lower, ['review', '审查', '检查', '审核'])) {
482
- return { gate: 2, reason: '代码审查', confidence: 0.8, approach: 'analyze' };
483
- }
484
-
485
- // Gate 5: 任务分解
486
- if (this.matchesPattern(lower, ['任务', '分解', '分配', '计划'])) {
487
- return { gate: 5, reason: '任务分解', confidence: 0.8, approach: 'coordinate' };
488
- }
489
-
490
- // Gate 7: 代码实现
491
- if (this.matchesPattern(lower, ['实现', '写代码', '开发', '编码'])) {
492
- return { gate: 7, reason: '代码实现', confidence: 0.75, approach: 'implement' };
493
- }
494
-
495
- // Gate 8: 测试验证
496
- if (this.matchesPattern(lower, ['测试', '验证', '部署'])) {
497
- return { gate: 8, reason: '测试验证', confidence: 0.8, approach: 'analyze' };
498
- }
499
-
500
- // 默认:基于上下文的合理推断
501
- return { gate: 1, reason: '默认架构设计', confidence: 0.5, approach: 'design' };
502
- }
503
-
504
- /**
505
- * 确定 Skills(基于 Gate 和上下文)
506
- */
507
- private determineSkills(gate: Gate, context: JudgmentContext): string[] {
508
- const baseSkills = (GATE_PROMPTS as Record<number, { skills: string[] }>)[gate]?.skills || ['arch'];
509
-
510
- // 根据上下文调整 Skills
511
- const { currentMessage } = context;
512
- const lower = currentMessage.toLowerCase();
513
-
514
- const skills = [...baseSkills];
515
-
516
- // 如果涉及安全问题,添加 guardian-fixer
517
- if (lower.includes('安全') || lower.includes('权限')) {
518
- if (!skills.includes('guardian-fixer')) {
519
- skills.push('guardian-fixer');
520
- }
521
- }
522
-
523
- // 如果是复杂任务,添加 harness-eng
524
- if (context.conversationHistory.length > 3) {
525
- if (!skills.includes('harness-eng')) {
526
- skills.push('harness-eng');
527
- }
528
- }
529
-
530
- return skills;
531
- }
532
-
533
- /**
534
- * 模式匹配(支持语义相似)
535
- */
536
- private matchesPattern(text: string, patterns: string[]): boolean {
537
- return patterns.some(p => text.includes(p));
538
- }
539
-
540
- /**
541
- * 生成 Harness 结果
542
- */
543
- private generateResult(gate: Gate, skills: string[]): string {
544
- const results: Record<Gate, string> = {
545
- 0: '',
546
- 1: '建议采用分层架构:表现层、业务层、数据层分离',
547
- 2: '建议添加输入验证和错误处理',
548
- 3: '',
549
- 4: '建议实现 JWT token 过期和刷新机制',
550
- 5: '已分解为可执行的子任务',
551
- 6: '',
552
- 7: '建议使用策略模式重构业务逻辑',
553
- 8: '测试覆盖率目标 80%,优先测试核心业务'
554
- };
555
-
556
- return `[Gate ${gate}] ${results[gate] || 'Harness 分析完成'}`;
557
- }
558
-
559
- // ========================================
560
- // 辅助方法
561
- // ========================================
562
-
563
- getGateHistory(): Gate[] {
564
- return [...this.gateHistory];
565
- }
566
-
567
- getLastGate(): Gate {
568
- return this.gateHistory.length > 0
569
- ? this.gateHistory[this.gateHistory.length - 1]
570
- : 0;
571
- }
572
-
573
- getLastDecision(): JudgmentResult | null {
574
- return this.lastDecision;
575
- }
576
-
577
- generateNaturalResponse(): string[] {
578
- return [
579
- '好的,明白。',
580
- '我理解了,继续。',
581
- '没问题,我们继续。',
582
- '明白,让我看看...',
583
- '收到,我会处理的。',
584
- '好的,这个信息很有用。'
585
- ];
586
- }
587
-
588
- getGateResponses(gate: Gate): string[] {
589
- const responses: Record<Gate, string[]> = {
590
- 1: [
591
- '关于架构设计,Harness 分析建议采用分层架构。',
592
- 'Harness Gate 1 分析完成,建议使用依赖注入降低耦合。',
593
- ],
594
- 2: [
595
- '代码审查完成,Harness 建议添加输入验证。',
596
- 'Gate 2 审查结果:建议添加 JSDoc 注释。',
597
- ],
598
- 4: [
599
- '安全检查完成,建议实现 JWT token 过期机制。',
600
- 'Harness Gate 4 建议使用 HTTPS 加密传输。',
601
- ],
602
- 5: [
603
- '任务已分解为 4 个子任务。',
604
- 'Harness Gate 5 分解完成。',
605
- ],
606
- 7: [
607
- 'Harness 建议使用策略模式重构。',
608
- 'Gate 7 分析:建议添加缓存机制。',
609
- ],
610
- 8: [
611
- '测试策略制定完成,目标覆盖率 80%。',
612
- 'Harness Gate 8:建议先写单元测试。',
613
- ],
614
- 0: [],
615
- 3: [],
616
- 6: []
617
- };
618
- return responses[gate] || [];
619
- }
620
- }
621
-
622
- // 单例
623
- let instance: ChannelJudgmentEngine | null = null;
624
-
625
- export function createChannelJudgmentEngine(options?: { useLLM?: boolean }): ChannelJudgmentEngine {
626
- return new ChannelJudgmentEngine(options);
627
- }
628
-
629
- export function getChannelJudgmentEngine(): ChannelJudgmentEngine {
630
- if (!instance) {
631
- instance = new ChannelJudgmentEngine();
632
- }
633
- return instance;
634
- }