soloforge 1.1.44 → 1.1.46

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 (289) hide show
  1. package/README.md +3 -3
  2. package/dist/context/contracts/lifecycle_knowledge_contract.d.ts.map +1 -1
  3. package/dist/context/contracts/lifecycle_knowledge_contract.js +2 -2
  4. package/dist/context/contracts/lifecycle_knowledge_contract.js.map +1 -1
  5. package/dist/core/task_context/manager.d.ts +0 -8
  6. package/dist/core/task_context/manager.d.ts.map +1 -1
  7. package/dist/core/task_context/manager.js +1 -19
  8. package/dist/core/task_context/manager.js.map +1 -1
  9. package/dist/core/task_context/state_fact_classifier.d.ts +0 -8
  10. package/dist/core/task_context/state_fact_classifier.d.ts.map +1 -1
  11. package/dist/core/task_context/state_fact_classifier.js +0 -36
  12. package/dist/core/task_context/state_fact_classifier.js.map +1 -1
  13. package/dist/domain/contracts/design_artifact_pack.d.ts +0 -1
  14. package/dist/domain/contracts/design_artifact_pack.d.ts.map +1 -1
  15. package/dist/domain/contracts/design_artifact_pack.js +1 -4
  16. package/dist/domain/contracts/design_artifact_pack.js.map +1 -1
  17. package/dist/domain/index.d.ts +1 -1
  18. package/dist/domain/index.d.ts.map +1 -1
  19. package/dist/domain/registry.d.ts +2 -2
  20. package/dist/domain/registry.d.ts.map +1 -1
  21. package/dist/domain/types.d.ts +1 -12
  22. package/dist/domain/types.d.ts.map +1 -1
  23. package/dist/domain/types.js +3 -0
  24. package/dist/domain/types.js.map +1 -1
  25. package/dist/gate/contracts/capability_registry.d.ts.map +1 -1
  26. package/dist/gate/contracts/capability_registry.js +0 -26
  27. package/dist/gate/contracts/capability_registry.js.map +1 -1
  28. package/dist/gate/contracts/control_plane_contract.d.ts +1 -1
  29. package/dist/gate/contracts/control_plane_contract.d.ts.map +1 -1
  30. package/dist/gate/contracts/control_plane_contract.js +1 -10
  31. package/dist/gate/contracts/control_plane_contract.js.map +1 -1
  32. package/dist/gate/contracts/tool_invocation_contract_registry.d.ts +1 -0
  33. package/dist/gate/contracts/tool_invocation_contract_registry.d.ts.map +1 -1
  34. package/dist/gate/contracts/tool_invocation_contract_registry.js +1 -1
  35. package/dist/gate/contracts/tool_invocation_contract_registry.js.map +1 -1
  36. package/dist/gate/executors/executors_annotation.d.ts.map +1 -1
  37. package/dist/gate/executors/executors_annotation.js +8 -1
  38. package/dist/gate/executors/executors_annotation.js.map +1 -1
  39. package/dist/gate/executors/executors_artifact.d.ts +1 -1
  40. package/dist/gate/executors/executors_artifact.d.ts.map +1 -1
  41. package/dist/gate/executors/executors_artifact.js +18 -7
  42. package/dist/gate/executors/executors_artifact.js.map +1 -1
  43. package/dist/gate/executors/executors_deploy.d.ts.map +1 -1
  44. package/dist/gate/executors/executors_deploy.js +3 -2
  45. package/dist/gate/executors/executors_deploy.js.map +1 -1
  46. package/dist/gate/executors/executors_openapi_sync.d.ts.map +1 -1
  47. package/dist/gate/executors/executors_openapi_sync.js +15 -2
  48. package/dist/gate/executors/executors_openapi_sync.js.map +1 -1
  49. package/dist/gate/executors/executors_regex_scan.d.ts.map +1 -1
  50. package/dist/gate/executors/executors_regex_scan.js +9 -0
  51. package/dist/gate/executors/executors_regex_scan.js.map +1 -1
  52. package/dist/gate/executors/executors_trace.d.ts.map +1 -1
  53. package/dist/gate/executors/executors_trace.js +12 -2
  54. package/dist/gate/executors/executors_trace.js.map +1 -1
  55. package/dist/gate/index.d.ts +0 -2
  56. package/dist/gate/index.d.ts.map +1 -1
  57. package/dist/gate/index.js +0 -1
  58. package/dist/gate/index.js.map +1 -1
  59. package/dist/server/tools/index.d.ts.map +1 -1
  60. package/dist/server/tools/index.js +1 -3
  61. package/dist/server/tools/index.js.map +1 -1
  62. package/dist/server/tools/lazy_loaders.d.ts +0 -23
  63. package/dist/server/tools/lazy_loaders.d.ts.map +1 -1
  64. package/dist/server/tools/lazy_loaders.js +2 -33
  65. package/dist/server/tools/lazy_loaders.js.map +1 -1
  66. package/dist/server/tools/middleware.d.ts +2 -5
  67. package/dist/server/tools/middleware.d.ts.map +1 -1
  68. package/dist/server/tools/middleware.js +3 -33
  69. package/dist/server/tools/middleware.js.map +1 -1
  70. package/dist/server/tools/sf_task.d.ts.map +1 -1
  71. package/dist/server/tools/sf_task.js +9 -8
  72. package/dist/server/tools/sf_task.js.map +1 -1
  73. package/dist/server/tools/types.d.ts +0 -2
  74. package/dist/server/tools/types.d.ts.map +1 -1
  75. package/dist/types/pipeline_types.d.ts +1 -9
  76. package/dist/types/pipeline_types.d.ts.map +1 -1
  77. package/dist/verify/audit/verifier.d.ts.map +1 -1
  78. package/dist/verify/audit/verifier.js +0 -33
  79. package/dist/verify/audit/verifier.js.map +1 -1
  80. package/dist/verify/index.d.ts +1 -4
  81. package/dist/verify/index.d.ts.map +1 -1
  82. package/dist/verify/index.js +0 -3
  83. package/dist/verify/index.js.map +1 -1
  84. package/dist/verify/types.d.ts +0 -21
  85. package/dist/verify/types.d.ts.map +1 -1
  86. package/package.json +1 -1
  87. package/templates/shared//345/206/263/347/255/226/347/275/221/345/205/263.md +7 -21
  88. package/dist/context/engine/dependency_scanner.d.ts +0 -23
  89. package/dist/context/engine/dependency_scanner.d.ts.map +0 -1
  90. package/dist/context/engine/dependency_scanner.js +0 -309
  91. package/dist/context/engine/dependency_scanner.js.map +0 -1
  92. package/dist/context/engine/exploration.d.ts +0 -194
  93. package/dist/context/engine/exploration.d.ts.map +0 -1
  94. package/dist/context/engine/exploration.js +0 -712
  95. package/dist/context/engine/exploration.js.map +0 -1
  96. package/dist/context/knowledge/knowledge_acceptance_registry.d.ts +0 -42
  97. package/dist/context/knowledge/knowledge_acceptance_registry.d.ts.map +0 -1
  98. package/dist/context/knowledge/knowledge_acceptance_registry.js +0 -249
  99. package/dist/context/knowledge/knowledge_acceptance_registry.js.map +0 -1
  100. package/dist/context/knowledge/knowledge_scenario_registry.d.ts +0 -26
  101. package/dist/context/knowledge/knowledge_scenario_registry.d.ts.map +0 -1
  102. package/dist/context/knowledge/knowledge_scenario_registry.js +0 -267
  103. package/dist/context/knowledge/knowledge_scenario_registry.js.map +0 -1
  104. package/dist/context/knowledge/knowledge_sovereignty.d.ts +0 -65
  105. package/dist/context/knowledge/knowledge_sovereignty.d.ts.map +0 -1
  106. package/dist/context/knowledge/knowledge_sovereignty.js +0 -199
  107. package/dist/context/knowledge/knowledge_sovereignty.js.map +0 -1
  108. package/dist/context/team_awareness.d.ts +0 -42
  109. package/dist/context/team_awareness.d.ts.map +0 -1
  110. package/dist/context/team_awareness.js +0 -154
  111. package/dist/context/team_awareness.js.map +0 -1
  112. package/dist/context/templates/template_asset_visibility.d.ts +0 -116
  113. package/dist/context/templates/template_asset_visibility.d.ts.map +0 -1
  114. package/dist/context/templates/template_asset_visibility.js +0 -310
  115. package/dist/context/templates/template_asset_visibility.js.map +0 -1
  116. package/dist/gate/conflict_gate.d.ts +0 -53
  117. package/dist/gate/conflict_gate.d.ts.map +0 -1
  118. package/dist/gate/conflict_gate.js +0 -96
  119. package/dist/gate/conflict_gate.js.map +0 -1
  120. package/dist/gate/contracts/capability_action_advisor.d.ts +0 -34
  121. package/dist/gate/contracts/capability_action_advisor.d.ts.map +0 -1
  122. package/dist/gate/contracts/capability_action_advisor.js +0 -165
  123. package/dist/gate/contracts/capability_action_advisor.js.map +0 -1
  124. package/dist/gate/contracts/capability_state_store.d.ts +0 -121
  125. package/dist/gate/contracts/capability_state_store.d.ts.map +0 -1
  126. package/dist/gate/contracts/capability_state_store.js +0 -188
  127. package/dist/gate/contracts/capability_state_store.js.map +0 -1
  128. package/dist/gate/contracts/contract_guard.d.ts +0 -50
  129. package/dist/gate/contracts/contract_guard.d.ts.map +0 -1
  130. package/dist/gate/contracts/contract_guard.js +0 -611
  131. package/dist/gate/contracts/contract_guard.js.map +0 -1
  132. package/dist/gate/contracts/escape_report.d.ts +0 -103
  133. package/dist/gate/contracts/escape_report.d.ts.map +0 -1
  134. package/dist/gate/contracts/escape_report.js +0 -145
  135. package/dist/gate/contracts/escape_report.js.map +0 -1
  136. package/dist/gate/feasibility_checker.d.ts +0 -27
  137. package/dist/gate/feasibility_checker.d.ts.map +0 -1
  138. package/dist/gate/feasibility_checker.js +0 -114
  139. package/dist/gate/feasibility_checker.js.map +0 -1
  140. package/dist/gate/migration_guard.d.ts +0 -22
  141. package/dist/gate/migration_guard.d.ts.map +0 -1
  142. package/dist/gate/migration_guard.js +0 -277
  143. package/dist/gate/migration_guard.js.map +0 -1
  144. package/dist/gate/scope_lease.d.ts +0 -94
  145. package/dist/gate/scope_lease.d.ts.map +0 -1
  146. package/dist/gate/scope_lease.js +0 -180
  147. package/dist/gate/scope_lease.js.map +0 -1
  148. package/dist/git/git_deps.d.ts +0 -85
  149. package/dist/git/git_deps.d.ts.map +0 -1
  150. package/dist/git/git_deps.js +0 -22
  151. package/dist/git/git_deps.js.map +0 -1
  152. package/dist/git/operations.d.ts +0 -173
  153. package/dist/git/operations.d.ts.map +0 -1
  154. package/dist/git/operations.js +0 -350
  155. package/dist/git/operations.js.map +0 -1
  156. package/dist/server/tools/gate_engine.d.ts +0 -17
  157. package/dist/server/tools/gate_engine.d.ts.map +0 -1
  158. package/dist/server/tools/gate_engine.js +0 -17
  159. package/dist/server/tools/gate_engine.js.map +0 -1
  160. package/dist/server/tools/middleware/budget_check.d.ts +0 -35
  161. package/dist/server/tools/middleware/budget_check.d.ts.map +0 -1
  162. package/dist/server/tools/middleware/budget_check.js +0 -69
  163. package/dist/server/tools/middleware/budget_check.js.map +0 -1
  164. package/dist/shared/contracts/contract_registry/builtin_contracts_core.d.ts +0 -16
  165. package/dist/shared/contracts/contract_registry/builtin_contracts_core.d.ts.map +0 -1
  166. package/dist/shared/contracts/contract_registry/builtin_contracts_core.js +0 -306
  167. package/dist/shared/contracts/contract_registry/builtin_contracts_core.js.map +0 -1
  168. package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.d.ts +0 -16
  169. package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.d.ts.map +0 -1
  170. package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.js +0 -304
  171. package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.js.map +0 -1
  172. package/dist/shared/contracts/contract_registry/builtin_contracts_extended.d.ts +0 -16
  173. package/dist/shared/contracts/contract_registry/builtin_contracts_extended.d.ts.map +0 -1
  174. package/dist/shared/contracts/contract_registry/builtin_contracts_extended.js +0 -434
  175. package/dist/shared/contracts/contract_registry/builtin_contracts_extended.js.map +0 -1
  176. package/dist/shared/contracts/contract_registry/index.d.ts +0 -8
  177. package/dist/shared/contracts/contract_registry/index.d.ts.map +0 -1
  178. package/dist/shared/contracts/contract_registry/index.js +0 -7
  179. package/dist/shared/contracts/contract_registry/index.js.map +0 -1
  180. package/dist/shared/contracts/contract_registry/registry.d.ts +0 -62
  181. package/dist/shared/contracts/contract_registry/registry.d.ts.map +0 -1
  182. package/dist/shared/contracts/contract_registry/registry.js +0 -191
  183. package/dist/shared/contracts/contract_registry/registry.js.map +0 -1
  184. package/dist/shared/contracts/contract_registry/registry_internal.d.ts +0 -19
  185. package/dist/shared/contracts/contract_registry/registry_internal.d.ts.map +0 -1
  186. package/dist/shared/contracts/contract_registry/registry_internal.js +0 -54
  187. package/dist/shared/contracts/contract_registry/registry_internal.js.map +0 -1
  188. package/dist/shared/contracts/contract_registry/types.d.ts +0 -47
  189. package/dist/shared/contracts/contract_registry/types.d.ts.map +0 -1
  190. package/dist/shared/contracts/contract_registry/types.js +0 -5
  191. package/dist/shared/contracts/contract_registry/types.js.map +0 -1
  192. package/dist/shared/contracts/contract_registry/validation.d.ts +0 -25
  193. package/dist/shared/contracts/contract_registry/validation.d.ts.map +0 -1
  194. package/dist/shared/contracts/contract_registry/validation.js +0 -363
  195. package/dist/shared/contracts/contract_registry/validation.js.map +0 -1
  196. package/dist/shared/llm_gateway.d.ts +0 -186
  197. package/dist/shared/llm_gateway.d.ts.map +0 -1
  198. package/dist/shared/llm_gateway.js +0 -393
  199. package/dist/shared/llm_gateway.js.map +0 -1
  200. package/dist/verify/audit/audit_sampler.d.ts +0 -29
  201. package/dist/verify/audit/audit_sampler.d.ts.map +0 -1
  202. package/dist/verify/audit/audit_sampler.js +0 -42
  203. package/dist/verify/audit/audit_sampler.js.map +0 -1
  204. package/dist/verify/audit/debt_reporter.d.ts +0 -22
  205. package/dist/verify/audit/debt_reporter.d.ts.map +0 -1
  206. package/dist/verify/audit/debt_reporter.js +0 -107
  207. package/dist/verify/audit/debt_reporter.js.map +0 -1
  208. package/dist/verify/audit/debugger.d.ts +0 -25
  209. package/dist/verify/audit/debugger.d.ts.map +0 -1
  210. package/dist/verify/audit/debugger.js +0 -429
  211. package/dist/verify/audit/debugger.js.map +0 -1
  212. package/dist/verify/audit/degradation.d.ts +0 -62
  213. package/dist/verify/audit/degradation.d.ts.map +0 -1
  214. package/dist/verify/audit/degradation.js +0 -78
  215. package/dist/verify/audit/degradation.js.map +0 -1
  216. package/dist/verify/audit/developer_sovereignty.d.ts +0 -29
  217. package/dist/verify/audit/developer_sovereignty.d.ts.map +0 -1
  218. package/dist/verify/audit/developer_sovereignty.js +0 -137
  219. package/dist/verify/audit/developer_sovereignty.js.map +0 -1
  220. package/dist/verify/audit/failure_report.d.ts +0 -76
  221. package/dist/verify/audit/failure_report.d.ts.map +0 -1
  222. package/dist/verify/audit/failure_report.js +0 -145
  223. package/dist/verify/audit/failure_report.js.map +0 -1
  224. package/dist/verify/audit/governance_report.d.ts +0 -110
  225. package/dist/verify/audit/governance_report.d.ts.map +0 -1
  226. package/dist/verify/audit/governance_report.js +0 -194
  227. package/dist/verify/audit/governance_report.js.map +0 -1
  228. package/dist/verify/audit/mutation_audit.d.ts +0 -40
  229. package/dist/verify/audit/mutation_audit.d.ts.map +0 -1
  230. package/dist/verify/audit/mutation_audit.js +0 -154
  231. package/dist/verify/audit/mutation_audit.js.map +0 -1
  232. package/dist/verify/audit/risk_sampler.d.ts +0 -44
  233. package/dist/verify/audit/risk_sampler.d.ts.map +0 -1
  234. package/dist/verify/audit/risk_sampler.js +0 -80
  235. package/dist/verify/audit/risk_sampler.js.map +0 -1
  236. package/dist/verify/audit/runtime_safety.d.ts +0 -89
  237. package/dist/verify/audit/runtime_safety.d.ts.map +0 -1
  238. package/dist/verify/audit/runtime_safety.js +0 -209
  239. package/dist/verify/audit/runtime_safety.js.map +0 -1
  240. package/dist/verify/audit/semantic_evidence.d.ts +0 -36
  241. package/dist/verify/audit/semantic_evidence.d.ts.map +0 -1
  242. package/dist/verify/audit/semantic_evidence.js +0 -90
  243. package/dist/verify/audit/semantic_evidence.js.map +0 -1
  244. package/dist/verify/audit/test_generator.d.ts +0 -23
  245. package/dist/verify/audit/test_generator.d.ts.map +0 -1
  246. package/dist/verify/audit/test_generator.js +0 -278
  247. package/dist/verify/audit/test_generator.js.map +0 -1
  248. package/dist/verify/audit/test_quality.d.ts +0 -49
  249. package/dist/verify/audit/test_quality.d.ts.map +0 -1
  250. package/dist/verify/audit/test_quality.js +0 -684
  251. package/dist/verify/audit/test_quality.js.map +0 -1
  252. package/dist/verify/change_coordinator.d.ts +0 -45
  253. package/dist/verify/change_coordinator.d.ts.map +0 -1
  254. package/dist/verify/change_coordinator.js +0 -168
  255. package/dist/verify/change_coordinator.js.map +0 -1
  256. package/dist/verify/contracts/decision_contract.d.ts +0 -51
  257. package/dist/verify/contracts/decision_contract.d.ts.map +0 -1
  258. package/dist/verify/contracts/decision_contract.js +0 -70
  259. package/dist/verify/contracts/decision_contract.js.map +0 -1
  260. package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.d.ts +0 -17
  261. package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.d.ts.map +0 -1
  262. package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.js +0 -428
  263. package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.js.map +0 -1
  264. package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.d.ts +0 -17
  265. package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.d.ts.map +0 -1
  266. package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.js +0 -429
  267. package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.js.map +0 -1
  268. package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.d.ts +0 -17
  269. package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.d.ts.map +0 -1
  270. package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.js +0 -194
  271. package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.js.map +0 -1
  272. package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.d.ts +0 -17
  273. package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.d.ts.map +0 -1
  274. package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.js +0 -365
  275. package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.js.map +0 -1
  276. package/dist/verify/contracts/mechanism_contract_registry/index.d.ts +0 -19
  277. package/dist/verify/contracts/mechanism_contract_registry/index.d.ts.map +0 -1
  278. package/dist/verify/contracts/mechanism_contract_registry/index.js +0 -21
  279. package/dist/verify/contracts/mechanism_contract_registry/index.js.map +0 -1
  280. package/dist/verify/contracts/mechanism_contract_registry/types.d.ts +0 -33
  281. package/dist/verify/contracts/mechanism_contract_registry/types.d.ts.map +0 -1
  282. package/dist/verify/contracts/mechanism_contract_registry/types.js +0 -5
  283. package/dist/verify/contracts/mechanism_contract_registry/types.js.map +0 -1
  284. package/dist/verify/contracts/mechanism_contract_registry/validation.d.ts +0 -38
  285. package/dist/verify/contracts/mechanism_contract_registry/validation.d.ts.map +0 -1
  286. package/dist/verify/contracts/mechanism_contract_registry/validation.js +0 -136
  287. package/dist/verify/contracts/mechanism_contract_registry/validation.js.map +0 -1
  288. package/templates/shared/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +0 -54
  289. package/templates/shared//346/265/201/345/274/217/345/277/203/350/267/263.md +0 -64
@@ -21,41 +21,27 @@ extra:
21
21
 
22
22
  ## 决策规则
23
23
 
24
- - LLM Gateway Token 全局预算上限 Budget_Total = 100000(advisory,不 hard block)
25
- - LLM Gateway 单任务预算上限 Task_Budget = 30000(advisory,预算耗尽返回 warning 不阻断)
26
- - H1 handler 返回 h1_advisory warning,任务仍继续进入 executing
27
- - 熔断触发比 Circuit_Breaker_Ratio = 0.9,超过即 advisory 告警并建议降级模型
28
- - 重型操作分级 tier=heavy 自动启动流式心跳(advisory)
29
- - 心跳间隔 Heartbeat_Interval = 5000 毫秒
30
24
  - 控制流操作(classify/scope_resolve/drift_detect 等)走本地,不消耗 Token
31
- - 决策流操作(intent_refinement/solution_brainstorm/code_generation 等)走 Gateway,消耗 Token
32
- - AI 操作分级: light(<2000)/ medium(2000-3000)/ heavy(>3000)
33
- - 信心门限 Confidence_Threshold = 0.95,低于此值触发头脑风暴流程补充
25
+ - 决策流操作(intent_refinement/solution_brainstorm/code_generation 等)由客户端 AI 执行(SoloForge 引擎本身不调 LLM)
26
+ - 信心门限 Confidence_Threshold = 0.95,低于此值禁止直接输出执行代码,必须触发头脑风暴流程(三轨方案)展示后再执行
34
27
 
35
28
  ## 验收项
36
29
 
37
- - [AC-01] Token 消耗监控按 operation_type 追踪
38
- - [AC-02] 预算超限返回 advisory warning,不阻断任务
39
- - [AC-03] 熔断后 AI 操作建议降级模型(advisory)
40
- - [AC-04] 心跳在重型操作期间每 Heartbeat_Interval 毫秒输出进度
41
- - [AC-05] 每次请求返回 remaining_budget 和 remaining_task_budget
30
+ - [AC-01] 信心门限由 gate/cep_assessment 独立实现(requiresBrainstorm / checkBrainstormGate),低置信度强制走头脑风暴流程
42
31
 
43
32
  ## 何时使用
44
33
 
45
- advisory: 预算耗尽是 warning 不是 hard fail,不应阻断任务
34
+ 信心门限:AI 决策置信度低于阈值时,禁止直接输出执行代码,必须先走头脑风暴流程展示多轨方案。
46
35
 
47
36
  ## 是否 hard block
48
37
 
49
- 否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
38
+ 信心低于阈值时禁止直接执行(强制走头脑风暴流程),但不阻断整个任务。
50
39
 
51
40
  ## 证据要求
52
41
 
53
- - H1/H4 handler 测试通过
54
- - heartbeat 测试通过
55
- -
42
+ - cep_assessment 头脑风暴门禁测试通过
56
43
 
57
44
  ## 人工确认/降级边界
58
45
 
59
46
  - 此能力可被开发者决策覆盖
60
- - 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
61
- - 降级/禁用需经 治理运行时 + 人工确认
47
+ - 历史记录:LLM Token 预算网关(LLMGateway,含预算/熔断/heartbeat/capability CAP-006)于 2026-06 移除——原因:影子记账不准、文案误导产出收缩(如 api_specification 被压缩);真预算管控交客户端 AI 侧
@@ -1,23 +0,0 @@
1
- /**
2
- * Dependency Scanner — 模块模块。
3
- *
4
- * 职责边界:
5
- * - 负责:scanDependencies 等 模块职责
6
- * - 不负责:不属于本模块的职责由对应模块承担
7
- *
8
- * 被谁调用:上层模块按需调用
9
- * 调用谁:index、logger、helpers
10
- *
11
- * 数据流:输入 → scanDependencies 处理 → 输出
12
- * 持久化:无持久化(纯计算/内存态)
13
- */
14
- import type { DependencyScanResult } from "../../types/index.js";
15
- /**
16
- * 扫描依赖文件中的已知漏洞 — 根据文件名自动选择解析器。
17
- * 支持格式: package.json (Node.js)、pom.xml (Java/Maven)、build.gradle (Java/Gradle)。
18
- * @param content - 依赖文件内容
19
- * @param filename - 文件名(用于判断解析器类型)
20
- * @returns 扫描结果,包含漏洞列表、未锁定版本和中文摘要
21
- */
22
- export declare function scanDependencies(content: string, filename: string): DependencyScanResult;
23
- //# sourceMappingURL=dependency_scanner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependency_scanner.d.ts","sourceRoot":"","sources":["../../../src/context/engine/dependency_scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAqB,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAuQpF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CA+FxF"}
@@ -1,309 +0,0 @@
1
- /**
2
- * Dependency Scanner — 模块模块。
3
- *
4
- * 职责边界:
5
- * - 负责:scanDependencies 等 模块职责
6
- * - 不负责:不属于本模块的职责由对应模块承担
7
- *
8
- * 被谁调用:上层模块按需调用
9
- * 调用谁:index、logger、helpers
10
- *
11
- * 数据流:输入 → scanDependencies 处理 → 输出
12
- * 持久化:无持久化(纯计算/内存态)
13
- */
14
- import { debug } from "../../shared/logger.js";
15
- import { safeJsonParse } from "../../shared/helpers.js";
16
- /**
17
- * 依赖漏洞扫描器 — 解析 package.json/pom.xml/build.gradle,基于内置漏洞规则库
18
- * 检测已知漏洞和未锁定版本。纯规则驱动,零 AI 依赖,不调用外部 API。
19
- */
20
- /** 内置漏洞规则库: 各语言生态的已知高风险依赖版本(包名 → 最低安全版本 → 漏洞描述) */
21
- // ── 漏洞数据库(硬编码规则库,零 AI 依赖) ──
22
- const VULN_DB = [
23
- // Java 生态
24
- { package: "log4j-core", minSafe: "2.17.0", severity: "critical", issue: "Log4Shell RCE (CVE-2021-44228)" },
25
- { package: "fastjson", minSafe: "1.2.83", severity: "critical", issue: "反序列化远程代码执行" },
26
- { package: "jackson-databind", minSafe: "2.13.0", severity: "critical", issue: "反序列化漏洞" },
27
- { package: "shiro-core", minSafe: "1.10.0", severity: "high", issue: "认证绕过漏洞" },
28
- // Node.js 生态
29
- { package: "lodash", minSafe: "4.17.21", severity: "high", issue: "原型污染 (CVE-2021-23337)" },
30
- { package: "express", minSafe: "4.18.0", severity: "medium", issue: "开放重定向" },
31
- { package: "axios", minSafe: "0.21.1", severity: "high", issue: "SSRF 漏洞" },
32
- { package: "node-fetch", minSafe: "2.6.7", severity: "medium", issue: "信息泄露" },
33
- { package: "jsonwebtoken", minSafe: "9.0.0", severity: "high", issue: "密钥验证绕过" },
34
- { package: "bcrypt", minSafe: "5.0.0", severity: "medium", issue: "轮次限制不足" },
35
- { package: "multer", minSafe: "1.4.4", severity: "medium", issue: "内存耗尽" },
36
- { package: "dompurify", minSafe: "2.3.3", severity: "high", issue: "XSS 绕过" },
37
- { package: "moment", minSafe: "2.29.4", severity: "low", issue: "ReDoS 拒绝服务" },
38
- { package: "yargs-parser", minSafe: "18.1.2", severity: "high", issue: "原型污染" },
39
- { package: "ua-parser-js", minSafe: "0.7.31", severity: "critical", issue: "供应链攻击" },
40
- { package: "event-source", minSafe: "2.0.1", severity: "high", issue: "CRLF 注入" },
41
- ];
42
- /** 未锁定版本的正则匹配模式 — 匹配 "*"、"x"、"X" 或空字符串等无精确版本号的情况 */
43
- // ── 未锁定版本标识 ──
44
- const UNSCOPED_PATTERN = /^\s*[*xX]?\s*$/;
45
- // ── 版本比较 ──
46
- /**
47
- * 比较两个 semver 风格的版本号,判断 a 是否大于 b。
48
- * - 按点号分隔,逐段数值比较
49
- * - 段数不足时以 0 补齐
50
- * - 预发布后缀(如 -beta.1、-rc.2)在比较前被剥离
51
- * @param a - 版本号 a
52
- * @param b - 版本号 b
53
- * @returns 当 a > b 时返回 true
54
- */
55
- function semverGt(a, b) {
56
- const normalize = (v) => v.replace(/-[\w.]+$/, "").split(".").map((seg) => {
57
- const n = parseInt(seg, 10);
58
- return Number.isNaN(n) ? 0 : n;
59
- });
60
- const segsA = normalize(a);
61
- const segsB = normalize(b);
62
- const maxLen = Math.max(segsA.length, segsB.length);
63
- for (let i = 0; i < maxLen; i++) {
64
- const pa = segsA[i] ?? 0;
65
- const pb = segsB[i] ?? 0;
66
- if (pa > pb)
67
- return true;
68
- if (pa < pb)
69
- return false;
70
- }
71
- return false;
72
- }
73
- /**
74
- * 检查版本字符串是否为未锁定版本(如 "*"、"latest"、"x"、空字符串)。
75
- * @param version - 版本字符串
76
- * @returns 未锁定时返回 true
77
- */
78
- function isUnscoped(version) {
79
- const trimmed = version.trim().toLowerCase();
80
- return trimmed === "" || trimmed === "latest" || UNSCOPED_PATTERN.test(trimmed);
81
- }
82
- // ── 版本提取 ──
83
- /**
84
- * 从常见版本说明符中提取版本号 — 支持 ^/~/>=/<=/ 前缀。
85
- * @param versionSpecifier - 版本说明符字符串
86
- * @returns 提取的纯版本号(如 "1.2.3"),URL/git 引用返回 null,无法解析时返回原始值
87
- */
88
- function extractVersion(versionSpecifier) {
89
- const v = versionSpecifier.trim();
90
- // 跳过 URL 引用和 git 引用 — 这些不参与版本扫描
91
- if (/^(https?:|git[:+]|github:|file:|git@|ssh:|\/)/i.test(v)) {
92
- return null;
93
- }
94
- // 跳过 workspace/file/link 等本地协议依赖 — 这些在本地解析,不可扫描
95
- if (/^(workspace|file|link|portal|npm):/i.test(v)) {
96
- return null;
97
- }
98
- // 提取纯数字版本: 剥离前缀修饰符 ^, ~, >=, <=, >, <, =
99
- const match = v.match(/^[\^~>=<\s]*([\d][\d.]*)/);
100
- return match ? match[1] : v;
101
- }
102
- // ── 漏洞匹配 ──
103
- /**
104
- * 检查指定包名和版本是否存在已知漏洞 — 遍历漏洞规则库进行匹配。
105
- * @param pkgName - 包名(如 "lodash")
106
- * @param version - 已安装版本号
107
- * @returns 存在漏洞时返回漏洞详情,否则返回 undefined
108
- */
109
- function checkVulnerability(pkgName, version) {
110
- for (const entry of VULN_DB) {
111
- if (pkgName === entry.package) {
112
- // 已安装版本低于最低安全版本时判定为漏洞
113
- if (!semverGt(version, entry.minSafe)) {
114
- // 预发布版本检查: 标准化版本等于 minSafe 但原始版本含预发布后缀时,
115
- // 按 semver 规范预发布版本 < 正式版本,因此仍视为漏洞
116
- const normalizedVersion = version.replace(/-[\w.]+$/, "");
117
- if (normalizedVersion === entry.minSafe && /-[\w.]+$/.test(version)) {
118
- return {
119
- package: pkgName,
120
- installed_version: version,
121
- severity: entry.severity,
122
- issue: entry.issue,
123
- fixed_in: entry.minSafe,
124
- };
125
- }
126
- return {
127
- package: pkgName,
128
- installed_version: version,
129
- severity: entry.severity,
130
- issue: entry.issue,
131
- fixed_in: entry.minSafe,
132
- };
133
- }
134
- }
135
- }
136
- return undefined;
137
- }
138
- /** 解析 package.json — 提取 dependencies 和 devDependencies 中的包名和版本 */
139
- function parsePackageJson(content) {
140
- const deps = [];
141
- const pkg = safeJsonParse(content);
142
- if (!pkg)
143
- return deps;
144
- const extract = (obj, isDev) => {
145
- if (!obj)
146
- return;
147
- for (const [name, ver] of Object.entries(obj)) {
148
- deps.push({ name, version: ver, isDev });
149
- }
150
- };
151
- extract(pkg.dependencies, false);
152
- extract(pkg.devDependencies, true);
153
- return deps;
154
- }
155
- /** 解析 pom.xml — 匹配 groupId/artifactId/version 三元组,支持多行格式 */
156
- function parsePomXml(content) {
157
- const deps = [];
158
- // 匹配 <groupId>...<artifactId>...<version> 代码块,支持多行内容中的非贪婪匹配
159
- const depPattern = /<groupId>\s*([\w.-]+)\s*<\/groupId>\s*<artifactId>\s*([\w.-]+)\s*<\/artifactId>\s*<version>\s*([\w.${}-]+)\s*<\/version>/g;
160
- let match;
161
- while ((match = depPattern.exec(content)) !== null) {
162
- deps.push({
163
- groupId: match[1],
164
- artifactId: match[2],
165
- version: match[3],
166
- });
167
- }
168
- return deps;
169
- }
170
- /** 解析 build.gradle — 匹配 group:artifact:version 格式(如 'org.apache:log4j-core:2.14.1') */
171
- function parseBuildGradle(content) {
172
- const deps = [];
173
- // 匹配 group:artifact:version 格式(如 'org.apache.logging.log4j:log4j-core:2.14.1')
174
- const depPattern = /['"]([\w.-]+):([\w.-]+):([\d.]+(?:-[a-zA-Z][\w.-]*)?)['"]/g;
175
- let match;
176
- while ((match = depPattern.exec(content)) !== null) {
177
- deps.push({
178
- group: match[1],
179
- artifact: match[2],
180
- version: match[3],
181
- });
182
- }
183
- return deps;
184
- }
185
- // ── 摘要生成 ──
186
- /**
187
- * 构建扫描结果摘要 — 统计漏洞数量和未锁定版本数量,生成中文摘要文本。
188
- * @param total - 扫描的依赖总数
189
- * @param vulnerabilities - 发现的漏洞列表
190
- * @param unscoped - 未锁定版本列表
191
- * @returns 中文格式的扫描摘要
192
- */
193
- function buildSummary(total, vulnerabilities, unscoped) {
194
- if (total === 0) {
195
- return "未发现可解析的依赖项";
196
- }
197
- const criticalCount = vulnerabilities.filter((v) => v.severity === "critical").length;
198
- const highCount = vulnerabilities.filter((v) => v.severity === "high").length;
199
- const vulnParts = [];
200
- if (vulnerabilities.length > 0) {
201
- vulnParts.push(`发现 ${vulnerabilities.length} 个漏洞`);
202
- const severityParts = [];
203
- if (criticalCount > 0)
204
- severityParts.push(`${criticalCount} critical`);
205
- if (highCount > 0)
206
- severityParts.push(`${highCount} high`);
207
- if (severityParts.length > 0) {
208
- vulnParts.push(`(${severityParts.join(", ")})`);
209
- }
210
- }
211
- const unscopedPart = unscoped.length > 0 ? `,${unscoped.length} 个未锁定版本` : "";
212
- if (vulnParts.length > 0) {
213
- return `扫描了 ${total} 个依赖,${vulnParts.join("")}${unscopedPart}`;
214
- }
215
- return `扫描了 ${total} 个依赖,未发现已知漏洞${unscopedPart}`;
216
- }
217
- // ── 主函数 ──
218
- /**
219
- * 扫描依赖文件中的已知漏洞 — 根据文件名自动选择解析器。
220
- * 支持格式: package.json (Node.js)、pom.xml (Java/Maven)、build.gradle (Java/Gradle)。
221
- * @param content - 依赖文件内容
222
- * @param filename - 文件名(用于判断解析器类型)
223
- * @returns 扫描结果,包含漏洞列表、未锁定版本和中文摘要
224
- */
225
- export function scanDependencies(content, filename) {
226
- debug("依赖扫描", `开始扫描 ${filename}`);
227
- const baseName = filename.split("/").pop()?.toLowerCase() ?? "";
228
- // ── 解析 package.json ──
229
- if (baseName === "package.json") {
230
- debug("依赖扫描", "检测到 package.json,使用 Node.js 解析器");
231
- const parsed = parsePackageJson(content);
232
- const vulnerabilities = [];
233
- const unscoped_versions = [];
234
- let scannedCount = 0;
235
- for (const dep of parsed) {
236
- const extracted = extractVersion(dep.version);
237
- if (extracted === null)
238
- continue; // URL / git 引用,跳过
239
- scannedCount++;
240
- if (isUnscoped(extracted)) {
241
- unscoped_versions.push(`${dep.name}: ${dep.version}`);
242
- continue;
243
- }
244
- const vuln = checkVulnerability(dep.name, extracted);
245
- if (vuln) {
246
- vulnerabilities.push(vuln);
247
- }
248
- }
249
- return {
250
- file: filename,
251
- dependencies_scanned: scannedCount,
252
- vulnerabilities,
253
- unscoped_versions,
254
- summary: buildSummary(scannedCount, vulnerabilities, unscoped_versions),
255
- };
256
- }
257
- // ── 解析 pom.xml ──
258
- if (baseName === "pom.xml") {
259
- debug("依赖扫描", "检测到 pom.xml,使用 Maven 解析器");
260
- const parsed = parsePomXml(content);
261
- const vulnerabilities = [];
262
- let scannedCount = 0;
263
- for (const dep of parsed) {
264
- scannedCount++;
265
- const vuln = checkVulnerability(dep.artifactId, dep.version);
266
- if (vuln) {
267
- vulnerabilities.push(vuln);
268
- }
269
- }
270
- return {
271
- file: filename,
272
- dependencies_scanned: scannedCount,
273
- vulnerabilities,
274
- unscoped_versions: [],
275
- summary: buildSummary(scannedCount, vulnerabilities, []),
276
- };
277
- }
278
- // ── 解析 build.gradle ──
279
- if (baseName === "build.gradle" || baseName === "build.gradle.kts") {
280
- debug("依赖扫描", "检测到 build.gradle,使用 Gradle 解析器");
281
- const parsed = parseBuildGradle(content);
282
- const vulnerabilities = [];
283
- let scannedCount = 0;
284
- for (const dep of parsed) {
285
- scannedCount++;
286
- const vuln = checkVulnerability(dep.artifact, dep.version);
287
- if (vuln) {
288
- vulnerabilities.push(vuln);
289
- }
290
- }
291
- return {
292
- file: filename,
293
- dependencies_scanned: scannedCount,
294
- vulnerabilities,
295
- unscoped_versions: [],
296
- summary: buildSummary(scannedCount, vulnerabilities, []),
297
- };
298
- }
299
- // ── 不支持的文件格式,返回空结果 ──
300
- debug("依赖扫描", `不支持的文件格式 ${filename}`);
301
- return {
302
- file: filename,
303
- dependencies_scanned: 0,
304
- vulnerabilities: [],
305
- unscoped_versions: [],
306
- summary: "不支持的依赖文件格式",
307
- };
308
- }
309
- //# sourceMappingURL=dependency_scanner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependency_scanner.js","sourceRoot":"","sources":["../../../src/context/engine/dependency_scanner.ts"],"names":[],"mappings":"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"}
@@ -1,194 +0,0 @@
1
- /**
2
- * Exploration — 模块模块。
3
- *
4
- * 职责边界:
5
- * - 负责:TechSolution 等 模块职责
6
- * - 不负责:不属于本模块的职责由对应模块承担
7
- *
8
- * 被谁调用:上层模块按需调用
9
- * 调用谁:index、index_manager、logger
10
- *
11
- * 数据流:输入 → TechSolution 处理 → 输出
12
- * 持久化:无持久化(纯计算/内存态)
13
- */
14
- import type { ProjectConfig, ClassifyResult } from "../../types/index.js";
15
- import type { KnowledgeIndexManager } from "../knowledge/index_manager.js";
16
- /**
17
- * 自主技术选型与方案证伪引擎 — 当人类陷入"不知道用什么"时,
18
- * 以首席架构师身份主导决策,禁止"复读机"或"模糊脑暴"。
19
- *
20
- * 核心能力:
21
- * 1. 行业基准检索: 从知识库 + 内置行业方案库中检索 3 个标准方案
22
- * 2. 选型权重矩阵: [开发成本/运行性能/扩展上限/维护复杂度] 四维对比
23
- * 3. 最优解宣誓: 基于项目上下文给出架构师推荐 + 规避致命缺点说明
24
- * 4. 方案证伪循环: 逻辑自毁测试 + 方案边界声明
25
- * 5. A/B 决策诱导: 禁止开放式提问,输出两个精确选项
26
- */
27
- /** 技术方案条目 */
28
- export interface TechSolution {
29
- /** 方案名称 */
30
- name: string;
31
- /** 方案来源: industry=行业标准, knowledge=知识库, heuristic=启发式 */
32
- source: "industry" | "knowledge" | "heuristic";
33
- /** 一句话描述 */
34
- description: string;
35
- /** 四维评分 (1-5, 5=最优) */
36
- ratings: SolutionRatings;
37
- /** 致命缺点 */
38
- fatal_weakness: string;
39
- /** 适用场景 */
40
- best_for: string;
41
- /** 不适用场景 */
42
- worst_for: string;
43
- }
44
- /** 四维评分 */
45
- export interface SolutionRatings {
46
- /** 开发成本 (5=低成本, 1=高成本) */
47
- dev_cost: number;
48
- /** 运行性能 (5=高性能, 1=低性能) */
49
- performance: number;
50
- /** 扩展上限 (5=高扩展, 1=低扩展) */
51
- scalability: number;
52
- /** 维护复杂度 (5=易维护, 1=难维护) */
53
- maintainability: number;
54
- }
55
- /** 证伪结果 */
56
- export interface FalsificationResult {
57
- /** 方案名称 */
58
- solution_name: string;
59
- /** 自毁场景列表 */
60
- self_destruct_scenarios: string[];
61
- /** 方案边界声明 */
62
- boundary_declaration: string;
63
- /** 天花板描述 */
64
- ceiling_description: string;
65
- }
66
- /** A/B 决策选项 */
67
- export interface DecisionOption {
68
- /** 标签 (方案 A/B) */
69
- label: string;
70
- /** 方案名称 */
71
- solution_name: string;
72
- /** 理由 */
73
- reason: string;
74
- /** 适合场景 */
75
- suitable_for: string;
76
- }
77
- /** 探索输出 */
78
- export interface ExplorationResult {
79
- /** 探索领域 */
80
- domain: string;
81
- /** 行业基准方案列表 (≥3) */
82
- benchmarks: TechSolution[];
83
- /** 选型权重矩阵 */
84
- comparison_matrix: ComparisonMatrix;
85
- /** 最优解宣誓 */
86
- architect_recommendation: ArchitectRecommendation;
87
- /** 证伪报告 */
88
- falsification_report: FalsificationResult[];
89
- /** A/B 决策选项 */
90
- decision_options: [DecisionOption, DecisionOption];
91
- /** 方案边界声明汇总 */
92
- boundary_summary: string;
93
- /** 时效性信息 */
94
- timeliness?: TimelinessInfo;
95
- /** 契约字段: 当前项目约束和已有栈 */
96
- local_constraints: string;
97
- /** 契约字段: 分层证据列表 */
98
- evidence_sources: EvidenceSource[];
99
- /** 契约字段: 被拒绝方案及原因 */
100
- rejected_options: RejectedOption[];
101
- /** 契约字段: 知识过时/新方案不稳定风险 */
102
- freshness_risk: string;
103
- /** 契约字段: 维护/安全/许可证/迁移退出成本 */
104
- adoption_risk: string;
105
- /** 契约字段: spike/测试/兼容性验证/回滚路径 */
106
- validation_plan: string;
107
- /** 契约字段: 结论何时需重新验证 */
108
- decision_expiry: string;
109
- /** 默认推荐方案,可直接执行 */
110
- recommended_option: string;
111
- /** 为什么选它,结合代码库和约束 */
112
- why_this: string;
113
- /** 被放弃的方案及放弃原因 */
114
- rejected_decision_options: string[];
115
- /** 对备选方案公平强化 */
116
- steelman_alternatives: string;
117
- /** 主动攻击推荐方案,列出失败条件 */
118
- attack_recommended_option: string;
119
- /** 如何证明推荐方案不成立 */
120
- falsification_tests: string;
121
- /** 执行步骤 */
122
- execution_plan: string;
123
- /** 验证命令和成功标准 */
124
- verification_plan: string;
125
- /** 失败后如何撤回 */
126
- rollback_plan: string;
127
- /** 是否需要人工确认 */
128
- human_confirmation_required: boolean;
129
- }
130
- /** 时效性信息 */
131
- export interface TimelinessInfo {
132
- /** 基准数据最后审核日期 */
133
- last_reviewed: string;
134
- /** 距今天数 */
135
- days_since_review: number;
136
- /** 是否需要人工复核(>180 天) */
137
- stale_warning: boolean;
138
- /** 提示信息 */
139
- message: string;
140
- }
141
- /** 证据来源条目 */
142
- export interface EvidenceSource {
143
- /** 来源名称 */
144
- name: string;
145
- /** 证据分层: local_code / official_docs / standards / maintainer_sources / community_practice / trend_signal */
146
- tier: "local_code" | "official_docs" | "standards" | "maintainer_sources" | "community_practice" | "trend_signal";
147
- /** 可信度: high / medium / low */
148
- credibility: "high" | "medium" | "low";
149
- /** 来源描述 */
150
- description: string;
151
- }
152
- /** 被拒绝方案 */
153
- export interface RejectedOption {
154
- /** 方案名称 */
155
- name: string;
156
- /** 拒绝原因 */
157
- reason: string;
158
- /** steelman: 公平强化该方案的优点 */
159
- steelman: string;
160
- }
161
- /** 对比矩阵 */
162
- export interface ComparisonMatrix {
163
- /** 维度列表 */
164
- dimensions: string[];
165
- /** 各方案在各维度的得分 */
166
- rows: Array<{
167
- solution_name: string;
168
- scores: number[];
169
- total: number;
170
- }>;
171
- }
172
- /** 架构师推荐 */
173
- export interface ArchitectRecommendation {
174
- /** 推荐方案 */
175
- recommended: string;
176
- /** 推荐理由 */
177
- reason: string;
178
- /** 如何规避其他方案的致命缺点 */
179
- fatal_weakness_mitigation: string;
180
- /** 前提条件(推荐方案生效的前提) */
181
- prerequisites: string[];
182
- }
183
- /**
184
- * 执行自主技术选型与方案证伪。
185
- * @param params - 输入参数
186
- * @returns 探索结果,包含行业基准、对比矩阵、推荐方案、证伪报告和 A/B 决策
187
- */
188
- export declare function exploreSolutions(params: {
189
- domain_query: string;
190
- projectConfig: ProjectConfig;
191
- classification?: ClassifyResult;
192
- knowledgeIndex?: KnowledgeIndexManager;
193
- }): ExplorationResult;
194
- //# sourceMappingURL=exploration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exploration.d.ts","sourceRoot":"","sources":["../../../src/context/engine/exploration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAG3E;;;;;;;;;;GAUG;AAIH,aAAa;AACb,MAAM,WAAW,YAAY;IAC3B,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;IAC/C,YAAY;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,OAAO,EAAE,eAAe,CAAC;IACzB,WAAW;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,WAAW;AACX,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,WAAW;AACX,MAAM,WAAW,mBAAmB;IAClC,WAAW;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,aAAa;IACb,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY;IACZ,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,eAAe;AACf,MAAM,WAAW,cAAc;IAC7B,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS;IACT,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,WAAW;AACX,MAAM,WAAW,iBAAiB;IAChC,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,aAAa;IACb,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,YAAY;IACZ,wBAAwB,EAAE,uBAAuB,CAAC;IAClD,WAAW;IACX,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,eAAe;IACf,gBAAgB,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IACnD,eAAe;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY;IACZ,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,uBAAuB;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB;IACnB,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,qBAAqB;IACrB,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,0BAA0B;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,6BAA6B;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB;IACtB,eAAe,EAAE,MAAM,CAAC;IAExB,mBAAmB;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,gBAAgB;IAChB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB;IACtB,yBAAyB,EAAE,MAAM,CAAC;IAClC,kBAAkB;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe;IACf,2BAA2B,EAAE,OAAO,CAAC;CACtC;AAED,YAAY;AACZ,MAAM,WAAW,cAAc;IAC7B,iBAAiB;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW;IACX,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,aAAa;AACb,MAAM,WAAW,cAAc;IAC7B,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,4GAA4G;IAC5G,IAAI,EAAE,YAAY,GAAG,eAAe,GAAG,WAAW,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,cAAc,CAAC;IAClH,+BAA+B;IAC/B,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACvC,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,YAAY;AACZ,MAAM,WAAW,cAAc;IAC7B,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,WAAW;AACX,MAAM,WAAW,gBAAgB;IAC/B,WAAW;IACX,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iBAAiB;IACjB,IAAI,EAAE,KAAK,CAAC;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED,YAAY;AACZ,MAAM,WAAW,uBAAuB;IACtC,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,yBAAyB,EAAE,MAAM,CAAC;IAClC,sBAAsB;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAqOD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC,GAAG,iBAAiB,CA6FpB"}