soloforge 1.4.16 → 2.0.0

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 (2666) hide show
  1. package/CHANGELOG.md +279 -0
  2. package/README.md +162 -50
  3. package/dist/adapters/claude_code/claude_md.d.ts +2 -1
  4. package/dist/adapters/claude_code/claude_md.d.ts.map +1 -1
  5. package/dist/adapters/claude_code/claude_md.js +6 -6
  6. package/dist/adapters/claude_code/claude_md.js.map +1 -1
  7. package/dist/adapters/claude_code/hooks.d.ts.map +1 -1
  8. package/dist/adapters/claude_code/hooks.js +2 -2
  9. package/dist/adapters/claude_code/hooks.js.map +1 -1
  10. package/dist/adapters/claude_code/tools.d.ts +9 -327
  11. package/dist/adapters/claude_code/tools.d.ts.map +1 -1
  12. package/dist/adapters/claude_code/tools.js +7 -4202
  13. package/dist/adapters/claude_code/tools.js.map +1 -1
  14. package/dist/adapters/codex/codex_config.d.ts.map +1 -1
  15. package/dist/adapters/codex/codex_config.js +2 -2
  16. package/dist/adapters/codex/codex_config.js.map +1 -1
  17. package/dist/adapters/codex/codex_rules.d.ts +2 -1
  18. package/dist/adapters/codex/codex_rules.d.ts.map +1 -1
  19. package/dist/adapters/codex/codex_rules.js +25 -25
  20. package/dist/adapters/codex/codex_rules.js.map +1 -1
  21. package/dist/adapters/shared/hook_command.d.ts +20 -0
  22. package/dist/adapters/shared/hook_command.d.ts.map +1 -0
  23. package/dist/adapters/shared/hook_command.js +80 -0
  24. package/dist/adapters/shared/hook_command.js.map +1 -0
  25. package/dist/adapters/shared/workflow_template.d.ts +8 -12
  26. package/dist/adapters/shared/workflow_template.d.ts.map +1 -1
  27. package/dist/adapters/shared/workflow_template.js +17 -80
  28. package/dist/adapters/shared/workflow_template.js.map +1 -1
  29. package/dist/adapters/trae/trae_config.d.ts +17 -1
  30. package/dist/adapters/trae/trae_config.d.ts.map +1 -1
  31. package/dist/adapters/trae/trae_config.js +3 -3
  32. package/dist/adapters/trae/trae_config.js.map +1 -1
  33. package/dist/adapters/trae/trae_rules.d.ts +2 -1
  34. package/dist/adapters/trae/trae_rules.d.ts.map +1 -1
  35. package/dist/adapters/trae/trae_rules.js +25 -11
  36. package/dist/adapters/trae/trae_rules.js.map +1 -1
  37. package/dist/bin/args.d.ts +13 -0
  38. package/dist/bin/args.d.ts.map +1 -0
  39. package/dist/bin/args.js +52 -0
  40. package/dist/bin/args.js.map +1 -0
  41. package/dist/bin/commands/analyze.d.ts +7 -0
  42. package/dist/bin/commands/analyze.d.ts.map +1 -0
  43. package/dist/bin/commands/analyze.js +52 -0
  44. package/dist/bin/commands/analyze.js.map +1 -0
  45. package/dist/bin/commands/audit.d.ts +11 -0
  46. package/dist/bin/commands/audit.d.ts.map +1 -0
  47. package/dist/bin/commands/audit.js +468 -0
  48. package/dist/bin/commands/audit.js.map +1 -0
  49. package/dist/bin/commands/check_bash.d.ts +15 -0
  50. package/dist/bin/commands/check_bash.d.ts.map +1 -0
  51. package/dist/bin/commands/check_bash.js +264 -0
  52. package/dist/bin/commands/check_bash.js.map +1 -0
  53. package/dist/bin/commands/check_write.d.ts +41 -0
  54. package/dist/bin/commands/check_write.d.ts.map +1 -0
  55. package/dist/bin/commands/check_write.js +437 -0
  56. package/dist/bin/commands/check_write.js.map +1 -0
  57. package/dist/bin/commands/hooks.d.ts +8 -0
  58. package/dist/bin/commands/hooks.d.ts.map +1 -0
  59. package/dist/bin/commands/hooks.js +83 -0
  60. package/dist/bin/commands/hooks.js.map +1 -0
  61. package/dist/bin/commands/init.d.ts +38 -0
  62. package/dist/bin/commands/init.d.ts.map +1 -0
  63. package/dist/bin/commands/init.js +406 -0
  64. package/dist/bin/commands/init.js.map +1 -0
  65. package/dist/bin/commands/modify.d.ts +7 -0
  66. package/dist/bin/commands/modify.d.ts.map +1 -0
  67. package/dist/bin/commands/modify.js +74 -0
  68. package/dist/bin/commands/modify.js.map +1 -0
  69. package/dist/bin/commands/reasoning.d.ts +14 -0
  70. package/dist/bin/commands/reasoning.d.ts.map +1 -0
  71. package/dist/bin/commands/reasoning.js +158 -0
  72. package/dist/bin/commands/reasoning.js.map +1 -0
  73. package/dist/bin/commands/review.d.ts +7 -0
  74. package/dist/bin/commands/review.d.ts.map +1 -0
  75. package/dist/bin/commands/review.js +79 -0
  76. package/dist/bin/commands/review.js.map +1 -0
  77. package/dist/bin/commands/status.d.ts +12 -0
  78. package/dist/bin/commands/status.d.ts.map +1 -0
  79. package/dist/bin/commands/status.js +614 -0
  80. package/dist/bin/commands/status.js.map +1 -0
  81. package/dist/bin/commands/sync.d.ts +11 -0
  82. package/dist/bin/commands/sync.d.ts.map +1 -0
  83. package/dist/bin/commands/sync.js +517 -0
  84. package/dist/bin/commands/sync.js.map +1 -0
  85. package/dist/bin/commands/validate.d.ts +10 -0
  86. package/dist/bin/commands/validate.d.ts.map +1 -0
  87. package/dist/bin/commands/validate.js +504 -0
  88. package/dist/bin/commands/validate.js.map +1 -0
  89. package/dist/bin/config_commands.d.ts +21 -20
  90. package/dist/bin/config_commands.d.ts.map +1 -1
  91. package/dist/bin/config_commands.js +214 -227
  92. package/dist/bin/config_commands.js.map +1 -1
  93. package/dist/bin/soloforge.d.ts +1 -1
  94. package/dist/bin/soloforge.d.ts.map +1 -1
  95. package/dist/bin/soloforge.js +100 -2833
  96. package/dist/bin/soloforge.js.map +1 -1
  97. package/dist/engine/adapter_prompt_contract.d.ts +2 -2
  98. package/dist/engine/adapter_prompt_contract.d.ts.map +1 -1
  99. package/dist/engine/adapter_prompt_contract.js +1 -1
  100. package/dist/engine/adapter_prompt_contract.js.map +1 -1
  101. package/dist/engine/audit/audit_pool.d.ts.map +1 -0
  102. package/dist/engine/audit/audit_pool.js +121 -0
  103. package/dist/engine/audit/audit_pool.js.map +1 -0
  104. package/dist/engine/audit/audit_sampler.d.ts +22 -0
  105. package/dist/engine/audit/audit_sampler.d.ts.map +1 -0
  106. package/dist/engine/audit/audit_sampler.js +29 -0
  107. package/dist/engine/audit/audit_sampler.js.map +1 -0
  108. package/dist/engine/audit/code_reviewer.d.ts +73 -0
  109. package/dist/engine/audit/code_reviewer.d.ts.map +1 -0
  110. package/dist/engine/audit/code_reviewer.js +632 -0
  111. package/dist/engine/audit/code_reviewer.js.map +1 -0
  112. package/dist/engine/audit/confidence_scorer.d.ts +48 -0
  113. package/dist/engine/audit/confidence_scorer.d.ts.map +1 -0
  114. package/dist/engine/audit/confidence_scorer.js +64 -0
  115. package/dist/engine/audit/confidence_scorer.js.map +1 -0
  116. package/dist/engine/audit/core_engineering_principles.d.ts +155 -0
  117. package/dist/engine/audit/core_engineering_principles.d.ts.map +1 -0
  118. package/dist/engine/audit/core_engineering_principles.js +414 -0
  119. package/dist/engine/audit/core_engineering_principles.js.map +1 -0
  120. package/dist/engine/audit/core_experience_principle.d.ts +194 -0
  121. package/dist/engine/audit/core_experience_principle.d.ts.map +1 -0
  122. package/dist/engine/audit/core_experience_principle.js +349 -0
  123. package/dist/engine/audit/core_experience_principle.js.map +1 -0
  124. package/dist/engine/audit/debt_reporter.d.ts +12 -0
  125. package/dist/engine/audit/debt_reporter.d.ts.map +1 -0
  126. package/dist/engine/audit/debt_reporter.js +94 -0
  127. package/dist/engine/audit/debt_reporter.js.map +1 -0
  128. package/dist/engine/audit/debt_tracker.d.ts +72 -0
  129. package/dist/engine/audit/debt_tracker.d.ts.map +1 -0
  130. package/dist/engine/audit/debt_tracker.js +231 -0
  131. package/dist/engine/audit/debt_tracker.js.map +1 -0
  132. package/dist/engine/audit/debugger.d.ts +15 -0
  133. package/dist/engine/audit/debugger.d.ts.map +1 -0
  134. package/dist/engine/audit/debugger.js +415 -0
  135. package/dist/engine/audit/debugger.js.map +1 -0
  136. package/dist/engine/audit/degradation.d.ts.map +1 -0
  137. package/dist/engine/audit/degradation.js.map +1 -0
  138. package/dist/engine/audit/delivery.d.ts +49 -0
  139. package/dist/engine/audit/delivery.d.ts.map +1 -0
  140. package/dist/engine/audit/delivery.js +405 -0
  141. package/dist/engine/audit/delivery.js.map +1 -0
  142. package/dist/engine/audit/delivery_readiness.d.ts +72 -0
  143. package/dist/engine/audit/delivery_readiness.d.ts.map +1 -0
  144. package/dist/engine/audit/delivery_readiness.js +200 -0
  145. package/dist/engine/audit/delivery_readiness.js.map +1 -0
  146. package/dist/engine/audit/developer_sovereignty.d.ts +24 -0
  147. package/dist/engine/audit/developer_sovereignty.d.ts.map +1 -0
  148. package/dist/engine/audit/developer_sovereignty.js +137 -0
  149. package/dist/engine/audit/developer_sovereignty.js.map +1 -0
  150. package/dist/engine/audit/diagnostic_registry.d.ts.map +1 -0
  151. package/dist/engine/audit/diagnostic_registry.js +288 -0
  152. package/dist/engine/audit/diagnostic_registry.js.map +1 -0
  153. package/dist/engine/audit/evolver.d.ts +78 -0
  154. package/dist/engine/audit/evolver.d.ts.map +1 -0
  155. package/dist/engine/audit/evolver.js +402 -0
  156. package/dist/engine/audit/evolver.js.map +1 -0
  157. package/dist/engine/audit/failure_classifier.d.ts +39 -0
  158. package/dist/engine/audit/failure_classifier.d.ts.map +1 -0
  159. package/dist/engine/audit/failure_classifier.js +175 -0
  160. package/dist/engine/audit/failure_classifier.js.map +1 -0
  161. package/dist/engine/audit/failure_report.d.ts.map +1 -0
  162. package/dist/engine/audit/failure_report.js.map +1 -0
  163. package/dist/engine/audit/governance_report.d.ts +101 -0
  164. package/dist/engine/audit/governance_report.d.ts.map +1 -0
  165. package/dist/engine/audit/governance_report.js +185 -0
  166. package/dist/engine/audit/governance_report.js.map +1 -0
  167. package/dist/engine/audit/java_quality_guard.d.ts.map +1 -0
  168. package/dist/engine/audit/java_quality_guard.js +228 -0
  169. package/dist/engine/audit/java_quality_guard.js.map +1 -0
  170. package/dist/engine/audit/main_path_integration_contract/constants.d.ts +27 -0
  171. package/dist/engine/audit/main_path_integration_contract/constants.d.ts.map +1 -0
  172. package/dist/engine/audit/main_path_integration_contract/constants.js +71 -0
  173. package/dist/engine/audit/main_path_integration_contract/constants.js.map +1 -0
  174. package/dist/engine/audit/main_path_integration_contract/factories.d.ts +35 -0
  175. package/dist/engine/audit/main_path_integration_contract/factories.d.ts.map +1 -0
  176. package/dist/engine/audit/main_path_integration_contract/factories.js +62 -0
  177. package/dist/engine/audit/main_path_integration_contract/factories.js.map +1 -0
  178. package/dist/engine/audit/main_path_integration_contract/gates.d.ts +25 -0
  179. package/dist/engine/audit/main_path_integration_contract/gates.d.ts.map +1 -0
  180. package/dist/engine/audit/main_path_integration_contract/gates.js +307 -0
  181. package/dist/engine/audit/main_path_integration_contract/gates.js.map +1 -0
  182. package/dist/engine/audit/main_path_integration_contract/index.d.ts +17 -0
  183. package/dist/engine/audit/main_path_integration_contract/index.d.ts.map +1 -0
  184. package/dist/engine/audit/main_path_integration_contract/index.js +21 -0
  185. package/dist/engine/audit/main_path_integration_contract/index.js.map +1 -0
  186. package/dist/engine/audit/main_path_integration_contract/queries.d.ts +46 -0
  187. package/dist/engine/audit/main_path_integration_contract/queries.d.ts.map +1 -0
  188. package/dist/engine/audit/main_path_integration_contract/queries.js +91 -0
  189. package/dist/engine/audit/main_path_integration_contract/queries.js.map +1 -0
  190. package/dist/engine/audit/main_path_integration_contract/scanning.d.ts +13 -0
  191. package/dist/engine/audit/main_path_integration_contract/scanning.d.ts.map +1 -0
  192. package/dist/engine/audit/main_path_integration_contract/scanning.js +476 -0
  193. package/dist/engine/audit/main_path_integration_contract/scanning.js.map +1 -0
  194. package/dist/engine/audit/main_path_integration_contract/scanning_infra.d.ts +35 -0
  195. package/dist/engine/audit/main_path_integration_contract/scanning_infra.d.ts.map +1 -0
  196. package/dist/engine/audit/main_path_integration_contract/scanning_infra.js +343 -0
  197. package/dist/engine/audit/main_path_integration_contract/scanning_infra.js.map +1 -0
  198. package/dist/engine/audit/main_path_integration_contract/types.d.ts +87 -0
  199. package/dist/engine/audit/main_path_integration_contract/types.d.ts.map +1 -0
  200. package/dist/engine/audit/main_path_integration_contract/types.js +5 -0
  201. package/dist/engine/audit/main_path_integration_contract/types.js.map +1 -0
  202. package/dist/engine/audit/main_path_integration_contract.d.ts +13 -0
  203. package/dist/engine/audit/main_path_integration_contract.d.ts.map +1 -0
  204. package/dist/engine/audit/main_path_integration_contract.js +17 -0
  205. package/dist/engine/audit/main_path_integration_contract.js.map +1 -0
  206. package/dist/engine/audit/mutation_audit.d.ts +39 -0
  207. package/dist/engine/audit/mutation_audit.d.ts.map +1 -0
  208. package/dist/engine/audit/mutation_audit.js +153 -0
  209. package/dist/engine/audit/mutation_audit.js.map +1 -0
  210. package/dist/engine/audit/observability.d.ts +68 -0
  211. package/dist/engine/audit/observability.d.ts.map +1 -0
  212. package/dist/engine/audit/observability.js +437 -0
  213. package/dist/engine/audit/observability.js.map +1 -0
  214. package/dist/engine/audit/privacy_grants.d.ts +108 -0
  215. package/dist/engine/audit/privacy_grants.d.ts.map +1 -0
  216. package/dist/engine/audit/privacy_grants.js +171 -0
  217. package/dist/engine/audit/privacy_grants.js.map +1 -0
  218. package/dist/engine/audit/privacy_patterns.d.ts +24 -0
  219. package/dist/engine/audit/privacy_patterns.d.ts.map +1 -0
  220. package/dist/engine/audit/privacy_patterns.js +143 -0
  221. package/dist/engine/audit/privacy_patterns.js.map +1 -0
  222. package/dist/engine/audit/privacy_scanning.d.ts +153 -0
  223. package/dist/engine/audit/privacy_scanning.d.ts.map +1 -0
  224. package/dist/engine/audit/privacy_scanning.js +567 -0
  225. package/dist/engine/audit/privacy_scanning.js.map +1 -0
  226. package/dist/engine/audit/privacy_secret_contract.d.ts +12 -0
  227. package/dist/engine/audit/privacy_secret_contract.d.ts.map +1 -0
  228. package/dist/engine/audit/privacy_secret_contract.js +14 -0
  229. package/dist/engine/audit/privacy_secret_contract.js.map +1 -0
  230. package/dist/engine/audit/privacy_types.d.ts +48 -0
  231. package/dist/engine/audit/privacy_types.d.ts.map +1 -0
  232. package/dist/engine/audit/privacy_types.js +14 -0
  233. package/dist/engine/audit/privacy_types.js.map +1 -0
  234. package/dist/engine/audit/risk_sampler.d.ts +45 -0
  235. package/dist/engine/audit/risk_sampler.d.ts.map +1 -0
  236. package/dist/engine/audit/risk_sampler.js +81 -0
  237. package/dist/engine/audit/risk_sampler.js.map +1 -0
  238. package/dist/engine/audit/runtime_safety.d.ts.map +1 -0
  239. package/dist/engine/audit/runtime_safety.js +200 -0
  240. package/dist/engine/audit/runtime_safety.js.map +1 -0
  241. package/dist/engine/audit/semantic_evidence.d.ts +33 -0
  242. package/dist/engine/audit/semantic_evidence.d.ts.map +1 -0
  243. package/dist/engine/audit/semantic_evidence.js +93 -0
  244. package/dist/engine/audit/semantic_evidence.js.map +1 -0
  245. package/dist/engine/audit/test_generator.d.ts +10 -0
  246. package/dist/engine/audit/test_generator.d.ts.map +1 -0
  247. package/dist/engine/audit/test_generator.js +268 -0
  248. package/dist/engine/audit/test_generator.js.map +1 -0
  249. package/dist/engine/audit/test_quality.d.ts +39 -0
  250. package/dist/engine/audit/test_quality.d.ts.map +1 -0
  251. package/dist/engine/audit/test_quality.js +642 -0
  252. package/dist/engine/audit/test_quality.js.map +1 -0
  253. package/dist/engine/audit/test_strategy.d.ts.map +1 -0
  254. package/dist/engine/audit/test_strategy.js.map +1 -0
  255. package/dist/engine/change_coordinator.d.ts +2 -2
  256. package/dist/engine/change_coordinator.d.ts.map +1 -1
  257. package/dist/engine/change_coordinator.js +33 -33
  258. package/dist/engine/change_coordinator.js.map +1 -1
  259. package/dist/engine/cognitive_anchor.d.ts.map +1 -1
  260. package/dist/engine/cognitive_anchor.js +7 -8
  261. package/dist/engine/cognitive_anchor.js.map +1 -1
  262. package/dist/engine/config/config_write_boundary.d.ts.map +1 -0
  263. package/dist/engine/config/config_write_boundary.js +85 -0
  264. package/dist/engine/config/config_write_boundary.js.map +1 -0
  265. package/dist/engine/config/conflicts.d.ts +39 -0
  266. package/dist/engine/config/conflicts.d.ts.map +1 -0
  267. package/dist/engine/config/conflicts.js +79 -0
  268. package/dist/engine/config/conflicts.js.map +1 -0
  269. package/dist/engine/config/detector/blueprint.d.ts +25 -0
  270. package/dist/engine/config/detector/blueprint.d.ts.map +1 -0
  271. package/dist/engine/config/detector/blueprint.js +47 -0
  272. package/dist/engine/config/detector/blueprint.js.map +1 -0
  273. package/dist/engine/config/detector/fingerprint.d.ts +67 -0
  274. package/dist/engine/config/detector/fingerprint.d.ts.map +1 -0
  275. package/dist/engine/config/detector/fingerprint.js +160 -0
  276. package/dist/engine/config/detector/fingerprint.js.map +1 -0
  277. package/dist/engine/config/detector/framework_map.d.ts +89 -0
  278. package/dist/engine/config/detector/framework_map.d.ts.map +1 -0
  279. package/dist/engine/config/detector/framework_map.js +406 -0
  280. package/dist/engine/config/detector/framework_map.js.map +1 -0
  281. package/dist/engine/config/detector/index.d.ts +12 -0
  282. package/dist/engine/config/detector/index.d.ts.map +1 -0
  283. package/dist/engine/config/detector/index.js +12 -0
  284. package/dist/engine/config/detector/index.js.map +1 -0
  285. package/dist/engine/config/detector/verify.d.ts +32 -0
  286. package/dist/engine/config/detector/verify.d.ts.map +1 -0
  287. package/dist/engine/config/detector/verify.js +107 -0
  288. package/dist/engine/config/detector/verify.js.map +1 -0
  289. package/dist/engine/config/intent.d.ts +26 -0
  290. package/dist/engine/config/intent.d.ts.map +1 -0
  291. package/dist/engine/config/intent.js +81 -0
  292. package/dist/engine/config/intent.js.map +1 -0
  293. package/dist/engine/config/intent_schema.d.ts +873 -0
  294. package/dist/engine/config/intent_schema.d.ts.map +1 -0
  295. package/dist/engine/config/intent_schema.js +98 -0
  296. package/dist/engine/config/intent_schema.js.map +1 -0
  297. package/dist/engine/config/regression_matrix.d.ts.map +1 -0
  298. package/dist/engine/config/regression_matrix.js +389 -0
  299. package/dist/engine/config/regression_matrix.js.map +1 -0
  300. package/dist/engine/config/resolver.d.ts +136 -0
  301. package/dist/engine/config/resolver.d.ts.map +1 -0
  302. package/dist/engine/config/resolver.js +251 -0
  303. package/dist/engine/config/resolver.js.map +1 -0
  304. package/dist/engine/context_engine/bootstrap.d.ts +12 -0
  305. package/dist/engine/context_engine/bootstrap.d.ts.map +1 -0
  306. package/dist/engine/context_engine/bootstrap.js +28 -0
  307. package/dist/engine/context_engine/bootstrap.js.map +1 -0
  308. package/dist/engine/context_engine/companion_injector.d.ts +49 -0
  309. package/dist/engine/context_engine/companion_injector.d.ts.map +1 -0
  310. package/dist/engine/context_engine/companion_injector.js +157 -0
  311. package/dist/engine/context_engine/companion_injector.js.map +1 -0
  312. package/dist/engine/context_engine/context_resolver.d.ts +46 -0
  313. package/dist/engine/context_engine/context_resolver.d.ts.map +1 -0
  314. package/dist/engine/context_engine/context_resolver.js +139 -0
  315. package/dist/engine/context_engine/context_resolver.js.map +1 -0
  316. package/dist/engine/context_engine/index.d.ts +25 -0
  317. package/dist/engine/context_engine/index.d.ts.map +1 -0
  318. package/dist/engine/context_engine/index.js +25 -0
  319. package/dist/engine/context_engine/index.js.map +1 -0
  320. package/dist/engine/context_engine/view_registry.d.ts +45 -0
  321. package/dist/engine/context_engine/view_registry.d.ts.map +1 -0
  322. package/dist/engine/context_engine/view_registry.js +36 -0
  323. package/dist/engine/context_engine/view_registry.js.map +1 -0
  324. package/dist/engine/context_engine/views/change_impact.d.ts +34 -0
  325. package/dist/engine/context_engine/views/change_impact.d.ts.map +1 -0
  326. package/dist/engine/context_engine/views/change_impact.js +288 -0
  327. package/dist/engine/context_engine/views/change_impact.js.map +1 -0
  328. package/dist/engine/context_engine/views/coverage_gap.d.ts +45 -0
  329. package/dist/engine/context_engine/views/coverage_gap.d.ts.map +1 -0
  330. package/dist/engine/context_engine/views/coverage_gap.js +238 -0
  331. package/dist/engine/context_engine/views/coverage_gap.js.map +1 -0
  332. package/dist/engine/context_engine/views/dependency_graph.d.ts +45 -0
  333. package/dist/engine/context_engine/views/dependency_graph.d.ts.map +1 -0
  334. package/dist/engine/context_engine/views/dependency_graph.js +358 -0
  335. package/dist/engine/context_engine/views/dependency_graph.js.map +1 -0
  336. package/dist/engine/context_engine/views/file_impact.d.ts +46 -0
  337. package/dist/engine/context_engine/views/file_impact.d.ts.map +1 -0
  338. package/dist/engine/context_engine/views/file_impact.js +181 -0
  339. package/dist/engine/context_engine/views/file_impact.js.map +1 -0
  340. package/dist/engine/context_engine/views/knowledge_ref.d.ts +37 -0
  341. package/dist/engine/context_engine/views/knowledge_ref.d.ts.map +1 -0
  342. package/dist/engine/context_engine/views/knowledge_ref.js +264 -0
  343. package/dist/engine/context_engine/views/knowledge_ref.js.map +1 -0
  344. package/dist/engine/context_engine/views/reference_trace.d.ts +49 -0
  345. package/dist/engine/context_engine/views/reference_trace.d.ts.map +1 -0
  346. package/dist/engine/context_engine/views/reference_trace.js +227 -0
  347. package/dist/engine/context_engine/views/reference_trace.js.map +1 -0
  348. package/dist/engine/contracts/architecture_decision_workshop.d.ts +63 -0
  349. package/dist/engine/contracts/architecture_decision_workshop.d.ts.map +1 -0
  350. package/dist/engine/contracts/architecture_decision_workshop.js +122 -0
  351. package/dist/engine/contracts/architecture_decision_workshop.js.map +1 -0
  352. package/dist/engine/contracts/architecture_design_contract.d.ts.map +1 -0
  353. package/dist/engine/contracts/architecture_design_contract.js.map +1 -0
  354. package/dist/engine/contracts/artifact_contract_registry.d.ts +138 -0
  355. package/dist/engine/contracts/artifact_contract_registry.d.ts.map +1 -0
  356. package/dist/engine/contracts/artifact_contract_registry.js +420 -0
  357. package/dist/engine/contracts/artifact_contract_registry.js.map +1 -0
  358. package/dist/engine/contracts/artifact_process_rules.d.ts +46 -0
  359. package/dist/engine/contracts/artifact_process_rules.d.ts.map +1 -0
  360. package/dist/engine/contracts/artifact_process_rules.js +396 -0
  361. package/dist/engine/contracts/artifact_process_rules.js.map +1 -0
  362. package/dist/engine/contracts/artifact_schema_registry.d.ts +139 -0
  363. package/dist/engine/contracts/artifact_schema_registry.d.ts.map +1 -0
  364. package/dist/engine/contracts/artifact_schema_registry.js +803 -0
  365. package/dist/engine/contracts/artifact_schema_registry.js.map +1 -0
  366. package/dist/engine/contracts/backend_implementation_contract.d.ts.map +1 -0
  367. package/dist/engine/contracts/backend_implementation_contract.js +164 -0
  368. package/dist/engine/contracts/backend_implementation_contract.js.map +1 -0
  369. package/dist/engine/contracts/behavior_coverage_verifier.d.ts +35 -0
  370. package/dist/engine/contracts/behavior_coverage_verifier.d.ts.map +1 -0
  371. package/dist/engine/contracts/behavior_coverage_verifier.js +220 -0
  372. package/dist/engine/contracts/behavior_coverage_verifier.js.map +1 -0
  373. package/dist/engine/contracts/brainstorm_contract.d.ts +48 -0
  374. package/dist/engine/contracts/brainstorm_contract.d.ts.map +1 -0
  375. package/dist/engine/contracts/brainstorm_contract.js +146 -0
  376. package/dist/engine/contracts/brainstorm_contract.js.map +1 -0
  377. package/dist/engine/contracts/capability_action_advisor.d.ts.map +1 -0
  378. package/dist/engine/contracts/capability_action_advisor.js +158 -0
  379. package/dist/engine/contracts/capability_action_advisor.js.map +1 -0
  380. package/dist/engine/contracts/capability_registry.d.ts.map +1 -0
  381. package/dist/engine/contracts/capability_registry.js +778 -0
  382. package/dist/engine/contracts/capability_registry.js.map +1 -0
  383. package/dist/engine/contracts/capability_state_store.d.ts +115 -0
  384. package/dist/engine/contracts/capability_state_store.d.ts.map +1 -0
  385. package/dist/engine/contracts/capability_state_store.js +182 -0
  386. package/dist/engine/contracts/capability_state_store.js.map +1 -0
  387. package/dist/engine/contracts/code_maintainability_observability_contract.d.ts.map +1 -0
  388. package/dist/engine/contracts/code_maintainability_observability_contract.js +711 -0
  389. package/dist/engine/contracts/code_maintainability_observability_contract.js.map +1 -0
  390. package/dist/engine/contracts/coding_readiness_gate.d.ts +46 -0
  391. package/dist/engine/contracts/coding_readiness_gate.d.ts.map +1 -0
  392. package/dist/engine/contracts/coding_readiness_gate.js +175 -0
  393. package/dist/engine/contracts/coding_readiness_gate.js.map +1 -0
  394. package/dist/engine/contracts/command_execution_contract.d.ts +216 -0
  395. package/dist/engine/contracts/command_execution_contract.d.ts.map +1 -0
  396. package/dist/engine/contracts/command_execution_contract.js +562 -0
  397. package/dist/engine/contracts/command_execution_contract.js.map +1 -0
  398. package/dist/engine/contracts/contract_guard.d.ts +37 -0
  399. package/dist/engine/contracts/contract_guard.d.ts.map +1 -0
  400. package/dist/engine/contracts/contract_guard.js +598 -0
  401. package/dist/engine/contracts/contract_guard.js.map +1 -0
  402. package/dist/engine/contracts/contract_registry/builtin_contracts_core.d.ts +10 -0
  403. package/dist/engine/contracts/contract_registry/builtin_contracts_core.d.ts.map +1 -0
  404. package/dist/engine/contracts/contract_registry/builtin_contracts_core.js +300 -0
  405. package/dist/engine/contracts/contract_registry/builtin_contracts_core.js.map +1 -0
  406. package/dist/engine/contracts/contract_registry/builtin_contracts_core_2.d.ts +10 -0
  407. package/dist/engine/contracts/contract_registry/builtin_contracts_core_2.d.ts.map +1 -0
  408. package/dist/engine/contracts/contract_registry/builtin_contracts_core_2.js +298 -0
  409. package/dist/engine/contracts/contract_registry/builtin_contracts_core_2.js.map +1 -0
  410. package/dist/engine/contracts/contract_registry/builtin_contracts_extended.d.ts +13 -0
  411. package/dist/engine/contracts/contract_registry/builtin_contracts_extended.d.ts.map +1 -0
  412. package/dist/engine/contracts/contract_registry/builtin_contracts_extended.js +494 -0
  413. package/dist/engine/contracts/contract_registry/builtin_contracts_extended.js.map +1 -0
  414. package/dist/engine/contracts/contract_registry/index.d.ts +8 -0
  415. package/dist/engine/contracts/contract_registry/index.d.ts.map +1 -0
  416. package/dist/engine/contracts/contract_registry/index.js +7 -0
  417. package/dist/engine/contracts/contract_registry/index.js.map +1 -0
  418. package/dist/engine/contracts/contract_registry/registry.d.ts +61 -0
  419. package/dist/engine/contracts/contract_registry/registry.d.ts.map +1 -0
  420. package/dist/engine/contracts/contract_registry/registry.js +191 -0
  421. package/dist/engine/contracts/contract_registry/registry.js.map +1 -0
  422. package/dist/engine/contracts/contract_registry/registry_internal.d.ts +12 -0
  423. package/dist/engine/contracts/contract_registry/registry_internal.d.ts.map +1 -0
  424. package/dist/engine/contracts/contract_registry/registry_internal.js +47 -0
  425. package/dist/engine/contracts/contract_registry/registry_internal.js.map +1 -0
  426. package/dist/engine/contracts/contract_registry/types.d.ts +47 -0
  427. package/dist/engine/contracts/contract_registry/types.d.ts.map +1 -0
  428. package/dist/engine/contracts/contract_registry/types.js +5 -0
  429. package/dist/engine/contracts/contract_registry/types.js.map +1 -0
  430. package/dist/engine/contracts/contract_registry/validation.d.ts +18 -0
  431. package/dist/engine/contracts/contract_registry/validation.d.ts.map +1 -0
  432. package/dist/engine/contracts/contract_registry/validation.js +339 -0
  433. package/dist/engine/contracts/contract_registry/validation.js.map +1 -0
  434. package/dist/engine/contracts/contract_registry.d.ts +9 -0
  435. package/dist/engine/contracts/contract_registry.d.ts.map +1 -0
  436. package/dist/engine/contracts/contract_registry.js +8 -0
  437. package/dist/engine/contracts/contract_registry.js.map +1 -0
  438. package/dist/engine/contracts/contract_state_store.d.ts +69 -0
  439. package/dist/engine/contracts/contract_state_store.d.ts.map +1 -0
  440. package/dist/engine/contracts/contract_state_store.js +170 -0
  441. package/dist/engine/contracts/contract_state_store.js.map +1 -0
  442. package/dist/engine/contracts/control_plane_contract.d.ts.map +1 -0
  443. package/dist/engine/contracts/control_plane_contract.js +266 -0
  444. package/dist/engine/contracts/control_plane_contract.js.map +1 -0
  445. package/dist/engine/contracts/decision_contract.d.ts +38 -0
  446. package/dist/engine/contracts/decision_contract.d.ts.map +1 -0
  447. package/dist/engine/contracts/decision_contract.js +57 -0
  448. package/dist/engine/contracts/decision_contract.js.map +1 -0
  449. package/dist/engine/contracts/decision_workshop.d.ts +166 -0
  450. package/dist/engine/contracts/decision_workshop.d.ts.map +1 -0
  451. package/dist/engine/contracts/decision_workshop.js.map +1 -0
  452. package/dist/engine/contracts/design_artifact_pack.d.ts +13 -0
  453. package/dist/engine/contracts/design_artifact_pack.d.ts.map +1 -0
  454. package/dist/engine/contracts/design_artifact_pack.js.map +1 -0
  455. package/dist/engine/contracts/design_lifecycle_contract.d.ts +60 -0
  456. package/dist/engine/contracts/design_lifecycle_contract.d.ts.map +1 -0
  457. package/dist/engine/contracts/design_lifecycle_contract.js +505 -0
  458. package/dist/engine/contracts/design_lifecycle_contract.js.map +1 -0
  459. package/dist/engine/contracts/detail_discipline.d.ts.map +1 -0
  460. package/dist/engine/contracts/detail_discipline.js.map +1 -0
  461. package/dist/engine/contracts/dual_layer_mechanism_registry/index.d.ts +9 -0
  462. package/dist/engine/contracts/dual_layer_mechanism_registry/index.d.ts.map +1 -0
  463. package/dist/engine/contracts/dual_layer_mechanism_registry/index.js +8 -0
  464. package/dist/engine/contracts/dual_layer_mechanism_registry/index.js.map +1 -0
  465. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit.d.ts +7 -0
  466. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit.d.ts.map +1 -0
  467. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit.js +414 -0
  468. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit.js.map +1 -0
  469. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit_tail.d.ts +7 -0
  470. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit_tail.d.ts.map +1 -0
  471. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit_tail.js +81 -0
  472. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit_tail.js.map +1 -0
  473. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_core.d.ts +7 -0
  474. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_core.d.ts.map +1 -0
  475. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_core.js +448 -0
  476. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_core.js.map +1 -0
  477. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_extension.d.ts +7 -0
  478. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_extension.d.ts.map +1 -0
  479. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_extension.js +445 -0
  480. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_extension.js.map +1 -0
  481. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_governance.d.ts +7 -0
  482. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_governance.d.ts.map +1 -0
  483. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_governance.js +274 -0
  484. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_governance.js.map +1 -0
  485. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_infra.d.ts +7 -0
  486. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_infra.d.ts.map +1 -0
  487. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_infra.js +247 -0
  488. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_infra.js.map +1 -0
  489. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.d.ts +7 -0
  490. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.d.ts.map +1 -0
  491. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.js +470 -0
  492. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.js.map +1 -0
  493. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_release.d.ts +7 -0
  494. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_release.d.ts.map +1 -0
  495. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_release.js +320 -0
  496. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_release.js.map +1 -0
  497. package/dist/engine/contracts/dual_layer_mechanism_registry/shared.d.ts +8 -0
  498. package/dist/engine/contracts/dual_layer_mechanism_registry/shared.d.ts.map +1 -0
  499. package/dist/engine/contracts/dual_layer_mechanism_registry/shared.js +60 -0
  500. package/dist/engine/contracts/dual_layer_mechanism_registry/shared.js.map +1 -0
  501. package/dist/engine/contracts/dual_layer_mechanism_registry/validation.d.ts +68 -0
  502. package/dist/engine/contracts/dual_layer_mechanism_registry/validation.d.ts.map +1 -0
  503. package/dist/engine/contracts/dual_layer_mechanism_registry/validation.js +354 -0
  504. package/dist/engine/contracts/dual_layer_mechanism_registry/validation.js.map +1 -0
  505. package/dist/engine/contracts/dual_layer_mechanism_registry.d.ts +9 -0
  506. package/dist/engine/contracts/dual_layer_mechanism_registry.d.ts.map +1 -0
  507. package/dist/engine/contracts/dual_layer_mechanism_registry.js +8 -0
  508. package/dist/engine/contracts/dual_layer_mechanism_registry.js.map +1 -0
  509. package/dist/engine/contracts/enforcement_guard.d.ts +110 -0
  510. package/dist/engine/contracts/enforcement_guard.d.ts.map +1 -0
  511. package/dist/engine/contracts/enforcement_guard.js +473 -0
  512. package/dist/engine/contracts/enforcement_guard.js.map +1 -0
  513. package/dist/engine/contracts/error_path_verifier.d.ts +36 -0
  514. package/dist/engine/contracts/error_path_verifier.d.ts.map +1 -0
  515. package/dist/engine/contracts/error_path_verifier.js +131 -0
  516. package/dist/engine/contracts/error_path_verifier.js.map +1 -0
  517. package/dist/engine/contracts/escape_report.d.ts.map +1 -0
  518. package/dist/engine/contracts/escape_report.js +137 -0
  519. package/dist/engine/contracts/escape_report.js.map +1 -0
  520. package/dist/engine/contracts/evidence_grounding_contract.d.ts +135 -0
  521. package/dist/engine/contracts/evidence_grounding_contract.d.ts.map +1 -0
  522. package/dist/engine/contracts/evidence_grounding_contract.js +404 -0
  523. package/dist/engine/contracts/evidence_grounding_contract.js.map +1 -0
  524. package/dist/engine/contracts/evolution_regression_gate.d.ts +44 -0
  525. package/dist/engine/contracts/evolution_regression_gate.d.ts.map +1 -0
  526. package/dist/engine/contracts/evolution_regression_gate.js +161 -0
  527. package/dist/engine/contracts/evolution_regression_gate.js.map +1 -0
  528. package/dist/engine/contracts/existing_system_analysis.d.ts.map +1 -0
  529. package/dist/engine/contracts/existing_system_analysis.js.map +1 -0
  530. package/dist/engine/contracts/existing_system_analyzer.d.ts +153 -0
  531. package/dist/engine/contracts/existing_system_analyzer.d.ts.map +1 -0
  532. package/dist/engine/contracts/existing_system_analyzer.js +615 -0
  533. package/dist/engine/contracts/existing_system_analyzer.js.map +1 -0
  534. package/dist/engine/contracts/extension_contract.d.ts +50 -0
  535. package/dist/engine/contracts/extension_contract.d.ts.map +1 -0
  536. package/dist/engine/contracts/extension_contract.js +158 -0
  537. package/dist/engine/contracts/extension_contract.js.map +1 -0
  538. package/dist/engine/contracts/extension_platform_contracts.d.ts +716 -0
  539. package/dist/engine/contracts/extension_platform_contracts.d.ts.map +1 -0
  540. package/dist/engine/contracts/extension_platform_contracts.js +41 -0
  541. package/dist/engine/contracts/extension_platform_contracts.js.map +1 -0
  542. package/dist/engine/contracts/extension_scenario_definitions.d.ts +10 -0
  543. package/dist/engine/contracts/extension_scenario_definitions.d.ts.map +1 -0
  544. package/dist/engine/contracts/extension_scenario_definitions.js +112 -0
  545. package/dist/engine/contracts/extension_scenario_definitions.js.map +1 -0
  546. package/dist/engine/contracts/extension_scenario_registry.d.ts +24 -0
  547. package/dist/engine/contracts/extension_scenario_registry.d.ts.map +1 -0
  548. package/dist/engine/contracts/extension_scenario_registry.js +711 -0
  549. package/dist/engine/contracts/extension_scenario_registry.js.map +1 -0
  550. package/dist/engine/contracts/first_principles.d.ts +84 -0
  551. package/dist/engine/contracts/first_principles.d.ts.map +1 -0
  552. package/dist/engine/contracts/first_principles.js +197 -0
  553. package/dist/engine/contracts/first_principles.js.map +1 -0
  554. package/dist/engine/contracts/instruction_contract.d.ts +81 -0
  555. package/dist/engine/contracts/instruction_contract.d.ts.map +1 -0
  556. package/dist/engine/contracts/instruction_contract.js +178 -0
  557. package/dist/engine/contracts/instruction_contract.js.map +1 -0
  558. package/dist/engine/contracts/lazy_pattern_detector.d.ts +43 -0
  559. package/dist/engine/contracts/lazy_pattern_detector.d.ts.map +1 -0
  560. package/dist/engine/contracts/lazy_pattern_detector.js +164 -0
  561. package/dist/engine/contracts/lazy_pattern_detector.js.map +1 -0
  562. package/dist/engine/contracts/lifecycle_knowledge_contract.d.ts +59 -0
  563. package/dist/engine/contracts/lifecycle_knowledge_contract.d.ts.map +1 -0
  564. package/dist/engine/contracts/lifecycle_knowledge_contract.js +203 -0
  565. package/dist/engine/contracts/lifecycle_knowledge_contract.js.map +1 -0
  566. package/dist/engine/contracts/local_docker_acceptance.d.ts +94 -0
  567. package/dist/engine/contracts/local_docker_acceptance.d.ts.map +1 -0
  568. package/dist/engine/contracts/local_docker_acceptance.js +312 -0
  569. package/dist/engine/contracts/local_docker_acceptance.js.map +1 -0
  570. package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.d.ts +13 -0
  571. package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.d.ts.map +1 -0
  572. package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.js +422 -0
  573. package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.js.map +1 -0
  574. package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.d.ts +14 -0
  575. package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.d.ts.map +1 -0
  576. package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.js +444 -0
  577. package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.js.map +1 -0
  578. package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.d.ts +11 -0
  579. package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.d.ts.map +1 -0
  580. package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.js +246 -0
  581. package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.js.map +1 -0
  582. package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.d.ts +15 -0
  583. package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.d.ts.map +1 -0
  584. package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.js +378 -0
  585. package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.js.map +1 -0
  586. package/dist/engine/contracts/mechanism_contract_registry/index.d.ts +19 -0
  587. package/dist/engine/contracts/mechanism_contract_registry/index.d.ts.map +1 -0
  588. package/dist/engine/contracts/mechanism_contract_registry/index.js +21 -0
  589. package/dist/engine/contracts/mechanism_contract_registry/index.js.map +1 -0
  590. package/dist/engine/contracts/mechanism_contract_registry/types.d.ts +33 -0
  591. package/dist/engine/contracts/mechanism_contract_registry/types.d.ts.map +1 -0
  592. package/dist/engine/contracts/mechanism_contract_registry/types.js +5 -0
  593. package/dist/engine/contracts/mechanism_contract_registry/types.js.map +1 -0
  594. package/dist/engine/contracts/mechanism_contract_registry/validation.d.ts +28 -0
  595. package/dist/engine/contracts/mechanism_contract_registry/validation.d.ts.map +1 -0
  596. package/dist/engine/contracts/mechanism_contract_registry/validation.js +124 -0
  597. package/dist/engine/contracts/mechanism_contract_registry/validation.js.map +1 -0
  598. package/dist/engine/contracts/mechanism_contract_registry.d.ts +8 -0
  599. package/dist/engine/contracts/mechanism_contract_registry.d.ts.map +1 -0
  600. package/dist/engine/contracts/mechanism_contract_registry.js +7 -0
  601. package/dist/engine/contracts/mechanism_contract_registry.js.map +1 -0
  602. package/dist/engine/contracts/mechanism_health_check.d.ts +25 -0
  603. package/dist/engine/contracts/mechanism_health_check.d.ts.map +1 -0
  604. package/dist/engine/contracts/mechanism_health_check.js +143 -0
  605. package/dist/engine/contracts/mechanism_health_check.js.map +1 -0
  606. package/dist/engine/contracts/metric_governance.d.ts.map +1 -0
  607. package/dist/engine/contracts/metric_governance.js.map +1 -0
  608. package/dist/engine/contracts/omission_scanner.d.ts +83 -0
  609. package/dist/engine/contracts/omission_scanner.d.ts.map +1 -0
  610. package/dist/engine/contracts/omission_scanner.js +191 -0
  611. package/dist/engine/contracts/omission_scanner.js.map +1 -0
  612. package/dist/engine/contracts/ood_solid_contract.d.ts.map +1 -0
  613. package/dist/engine/contracts/ood_solid_contract.js +115 -0
  614. package/dist/engine/contracts/ood_solid_contract.js.map +1 -0
  615. package/dist/engine/contracts/platform_context.d.ts +46 -0
  616. package/dist/engine/contracts/platform_context.d.ts.map +1 -0
  617. package/dist/engine/contracts/platform_context.js +171 -0
  618. package/dist/engine/contracts/platform_context.js.map +1 -0
  619. package/dist/engine/contracts/project_knowledge_contract.d.ts +133 -0
  620. package/dist/engine/contracts/project_knowledge_contract.d.ts.map +1 -0
  621. package/dist/engine/contracts/project_knowledge_contract.js +559 -0
  622. package/dist/engine/contracts/project_knowledge_contract.js.map +1 -0
  623. package/dist/engine/contracts/slice_fix_loop.d.ts +86 -0
  624. package/dist/engine/contracts/slice_fix_loop.d.ts.map +1 -0
  625. package/dist/engine/contracts/slice_fix_loop.js +98 -0
  626. package/dist/engine/contracts/slice_fix_loop.js.map +1 -0
  627. package/dist/engine/contracts/state_machine_contracts.d.ts +17 -0
  628. package/dist/engine/contracts/state_machine_contracts.d.ts.map +1 -0
  629. package/dist/engine/contracts/state_machine_contracts.js +97 -0
  630. package/dist/engine/contracts/state_machine_contracts.js.map +1 -0
  631. package/dist/engine/contracts/technology_decision.d.ts +58 -0
  632. package/dist/engine/contracts/technology_decision.d.ts.map +1 -0
  633. package/dist/engine/contracts/technology_decision.js +175 -0
  634. package/dist/engine/contracts/technology_decision.js.map +1 -0
  635. package/dist/engine/contracts/template_schema_loader.d.ts +79 -0
  636. package/dist/engine/contracts/template_schema_loader.d.ts.map +1 -0
  637. package/dist/engine/contracts/template_schema_loader.js +301 -0
  638. package/dist/engine/contracts/template_schema_loader.js.map +1 -0
  639. package/dist/engine/contracts/tool_invocation_contract_registry.d.ts +76 -0
  640. package/dist/engine/contracts/tool_invocation_contract_registry.d.ts.map +1 -0
  641. package/dist/engine/contracts/tool_invocation_contract_registry.js +782 -0
  642. package/dist/engine/contracts/tool_invocation_contract_registry.js.map +1 -0
  643. package/dist/engine/contracts/traceability.d.ts +49 -0
  644. package/dist/engine/contracts/traceability.d.ts.map +1 -0
  645. package/dist/engine/contracts/traceability.js +470 -0
  646. package/dist/engine/contracts/traceability.js.map +1 -0
  647. package/dist/engine/contracts/user_feedback_contract.d.ts +162 -0
  648. package/dist/engine/contracts/user_feedback_contract.d.ts.map +1 -0
  649. package/dist/engine/contracts/user_feedback_contract.js +415 -0
  650. package/dist/engine/contracts/user_feedback_contract.js.map +1 -0
  651. package/dist/engine/contracts/user_promise.d.ts +67 -0
  652. package/dist/engine/contracts/user_promise.d.ts.map +1 -0
  653. package/dist/engine/contracts/user_promise.js +436 -0
  654. package/dist/engine/contracts/user_promise.js.map +1 -0
  655. package/dist/engine/contracts/verification_contract.d.ts.map +1 -0
  656. package/dist/engine/contracts/verification_contract.js.map +1 -0
  657. package/dist/engine/contracts/workflow_template_pack.d.ts +71 -0
  658. package/dist/engine/contracts/workflow_template_pack.d.ts.map +1 -0
  659. package/dist/engine/contracts/workflow_template_pack.js +246 -0
  660. package/dist/engine/contracts/workflow_template_pack.js.map +1 -0
  661. package/dist/engine/convention_detector.js +1 -1
  662. package/dist/engine/convention_detector.js.map +1 -1
  663. package/dist/engine/core/config_defaults.d.ts +11 -0
  664. package/dist/engine/core/config_defaults.d.ts.map +1 -0
  665. package/dist/engine/core/config_defaults.js +11 -0
  666. package/dist/engine/core/config_defaults.js.map +1 -0
  667. package/dist/engine/core/debug_log.d.ts +5 -0
  668. package/dist/engine/core/debug_log.d.ts.map +1 -0
  669. package/dist/engine/core/debug_log.js +5 -0
  670. package/dist/engine/core/debug_log.js.map +1 -0
  671. package/dist/engine/core/denied_paths.d.ts +25 -0
  672. package/dist/engine/core/denied_paths.d.ts.map +1 -0
  673. package/dist/engine/core/denied_paths.js +57 -0
  674. package/dist/engine/core/denied_paths.js.map +1 -0
  675. package/dist/engine/core/env.d.ts +12 -0
  676. package/dist/engine/core/env.d.ts.map +1 -0
  677. package/dist/engine/core/env.js +12 -0
  678. package/dist/engine/core/env.js.map +1 -0
  679. package/dist/engine/core/errors.d.ts +21 -0
  680. package/dist/engine/core/errors.d.ts.map +1 -0
  681. package/dist/engine/core/errors.js +35 -0
  682. package/dist/engine/core/errors.js.map +1 -0
  683. package/dist/engine/core/exit_codes.d.ts +14 -0
  684. package/dist/engine/core/exit_codes.d.ts.map +1 -0
  685. package/dist/engine/core/exit_codes.js +14 -0
  686. package/dist/engine/core/exit_codes.js.map +1 -0
  687. package/dist/engine/core/fail_closed.d.ts +39 -0
  688. package/dist/engine/core/fail_closed.d.ts.map +1 -0
  689. package/dist/engine/core/fail_closed.js +38 -0
  690. package/dist/engine/core/fail_closed.js.map +1 -0
  691. package/dist/engine/core/helpers.d.ts +24 -0
  692. package/dist/engine/core/helpers.d.ts.map +1 -0
  693. package/dist/engine/core/helpers.js +44 -0
  694. package/dist/engine/core/helpers.js.map +1 -0
  695. package/dist/engine/core/index.d.ts +17 -0
  696. package/dist/engine/core/index.d.ts.map +1 -0
  697. package/dist/engine/core/index.js +24 -0
  698. package/dist/engine/core/index.js.map +1 -0
  699. package/dist/engine/core/io_controller.d.ts +88 -0
  700. package/dist/engine/core/io_controller.d.ts.map +1 -0
  701. package/dist/engine/core/io_controller.js +219 -0
  702. package/dist/engine/core/io_controller.js.map +1 -0
  703. package/dist/engine/core/knowledge_config_loader.d.ts +28 -0
  704. package/dist/engine/core/knowledge_config_loader.d.ts.map +1 -0
  705. package/dist/engine/core/knowledge_config_loader.js +102 -0
  706. package/dist/engine/core/knowledge_config_loader.js.map +1 -0
  707. package/dist/engine/core/llm_gateway.d.ts +184 -0
  708. package/dist/engine/core/llm_gateway.d.ts.map +1 -0
  709. package/dist/engine/core/llm_gateway.js +374 -0
  710. package/dist/engine/core/llm_gateway.js.map +1 -0
  711. package/dist/engine/core/log_governance.d.ts.map +1 -0
  712. package/dist/engine/core/log_governance.js +71 -0
  713. package/dist/engine/core/log_governance.js.map +1 -0
  714. package/dist/engine/core/logger.d.ts.map +1 -0
  715. package/dist/engine/core/logger.js +118 -0
  716. package/dist/engine/core/logger.js.map +1 -0
  717. package/dist/engine/core/path_scope_utils.d.ts +21 -0
  718. package/dist/engine/core/path_scope_utils.d.ts.map +1 -0
  719. package/dist/engine/core/path_scope_utils.js +126 -0
  720. package/dist/engine/core/path_scope_utils.js.map +1 -0
  721. package/dist/engine/core/paths.d.ts +90 -0
  722. package/dist/engine/core/paths.d.ts.map +1 -0
  723. package/dist/engine/core/paths.js +109 -0
  724. package/dist/engine/core/paths.js.map +1 -0
  725. package/dist/engine/core/write_file_atomic.d.ts +25 -0
  726. package/dist/engine/core/write_file_atomic.d.ts.map +1 -0
  727. package/dist/engine/core/write_file_atomic.js +63 -0
  728. package/dist/engine/core/write_file_atomic.js.map +1 -0
  729. package/dist/engine/dependency_scanner.d.ts +1 -1
  730. package/dist/engine/dependency_scanner.d.ts.map +1 -1
  731. package/dist/engine/dependency_scanner.js +16 -18
  732. package/dist/engine/dependency_scanner.js.map +1 -1
  733. package/dist/engine/exploration.d.ts +1 -1
  734. package/dist/engine/exploration.d.ts.map +1 -1
  735. package/dist/engine/exploration.js +11 -10
  736. package/dist/engine/exploration.js.map +1 -1
  737. package/dist/engine/feasibility_checker.d.ts +1 -1
  738. package/dist/engine/feasibility_checker.d.ts.map +1 -1
  739. package/dist/engine/feasibility_checker.js +2 -2
  740. package/dist/engine/feasibility_checker.js.map +1 -1
  741. package/dist/engine/impact_analyzer.d.ts +1 -1
  742. package/dist/engine/impact_analyzer.d.ts.map +1 -1
  743. package/dist/engine/impact_analyzer.js +3 -3
  744. package/dist/engine/impact_analyzer.js.map +1 -1
  745. package/dist/engine/knowledge/chinese_semantic_priority.d.ts.map +1 -0
  746. package/dist/engine/knowledge/chinese_semantic_priority.js.map +1 -0
  747. package/dist/engine/knowledge/documentation_governance.d.ts.map +1 -0
  748. package/dist/engine/knowledge/documentation_governance.js.map +1 -0
  749. package/dist/engine/knowledge/drift_classifier.d.ts +26 -0
  750. package/dist/engine/knowledge/drift_classifier.d.ts.map +1 -0
  751. package/dist/engine/knowledge/drift_classifier.js +82 -0
  752. package/dist/engine/knowledge/drift_classifier.js.map +1 -0
  753. package/dist/engine/knowledge/knowledge_acceptance_registry.d.ts.map +1 -0
  754. package/dist/engine/knowledge/knowledge_acceptance_registry.js +261 -0
  755. package/dist/engine/knowledge/knowledge_acceptance_registry.js.map +1 -0
  756. package/dist/engine/knowledge/knowledge_asset_audit.d.ts.map +1 -0
  757. package/dist/engine/knowledge/knowledge_asset_audit.js +231 -0
  758. package/dist/engine/knowledge/knowledge_asset_audit.js.map +1 -0
  759. package/dist/engine/knowledge/knowledge_asset_consumer.d.ts +157 -0
  760. package/dist/engine/knowledge/knowledge_asset_consumer.d.ts.map +1 -0
  761. package/dist/engine/knowledge/knowledge_asset_consumer.js +288 -0
  762. package/dist/engine/knowledge/knowledge_asset_consumer.js.map +1 -0
  763. package/dist/engine/knowledge/knowledge_asset_generation_gate.d.ts.map +1 -0
  764. package/dist/engine/knowledge/knowledge_asset_generation_gate.js.map +1 -0
  765. package/dist/engine/knowledge/knowledge_asset_migration.d.ts.map +1 -0
  766. package/dist/engine/knowledge/knowledge_asset_migration.js +204 -0
  767. package/dist/engine/knowledge/knowledge_asset_migration.js.map +1 -0
  768. package/dist/engine/knowledge/knowledge_asset_schema.d.ts +102 -0
  769. package/dist/engine/knowledge/knowledge_asset_schema.d.ts.map +1 -0
  770. package/dist/engine/knowledge/knowledge_asset_schema.js +427 -0
  771. package/dist/engine/knowledge/knowledge_asset_schema.js.map +1 -0
  772. package/dist/engine/knowledge/knowledge_config_loader.d.ts.map +1 -0
  773. package/dist/engine/knowledge/knowledge_config_loader.js +144 -0
  774. package/dist/engine/knowledge/knowledge_config_loader.js.map +1 -0
  775. package/dist/engine/knowledge/knowledge_consumption_snapshot.d.ts +91 -0
  776. package/dist/engine/knowledge/knowledge_consumption_snapshot.d.ts.map +1 -0
  777. package/dist/engine/knowledge/knowledge_consumption_snapshot.js +113 -0
  778. package/dist/engine/knowledge/knowledge_consumption_snapshot.js.map +1 -0
  779. package/dist/engine/knowledge/knowledge_evolution.d.ts +66 -0
  780. package/dist/engine/knowledge/knowledge_evolution.d.ts.map +1 -0
  781. package/dist/engine/knowledge/knowledge_evolution.js +200 -0
  782. package/dist/engine/knowledge/knowledge_evolution.js.map +1 -0
  783. package/dist/engine/knowledge/knowledge_governance_gate.d.ts +41 -0
  784. package/dist/engine/knowledge/knowledge_governance_gate.d.ts.map +1 -0
  785. package/dist/engine/knowledge/knowledge_governance_gate.js +123 -0
  786. package/dist/engine/knowledge/knowledge_governance_gate.js.map +1 -0
  787. package/dist/engine/knowledge/knowledge_health.d.ts +44 -0
  788. package/dist/engine/knowledge/knowledge_health.d.ts.map +1 -0
  789. package/dist/engine/knowledge/knowledge_health.js +305 -0
  790. package/dist/engine/knowledge/knowledge_health.js.map +1 -0
  791. package/dist/engine/knowledge/knowledge_injection_boundary.d.ts +108 -0
  792. package/dist/engine/knowledge/knowledge_injection_boundary.d.ts.map +1 -0
  793. package/dist/engine/knowledge/knowledge_injection_boundary.js +760 -0
  794. package/dist/engine/knowledge/knowledge_injection_boundary.js.map +1 -0
  795. package/dist/engine/knowledge/knowledge_lifecycle.d.ts +97 -0
  796. package/dist/engine/knowledge/knowledge_lifecycle.d.ts.map +1 -0
  797. package/dist/engine/knowledge/knowledge_lifecycle.js +299 -0
  798. package/dist/engine/knowledge/knowledge_lifecycle.js.map +1 -0
  799. package/dist/engine/knowledge/knowledge_manager.d.ts +3 -0
  800. package/dist/engine/knowledge/knowledge_manager.d.ts.map +1 -0
  801. package/dist/engine/knowledge/knowledge_manager.js +5 -0
  802. package/dist/engine/knowledge/knowledge_manager.js.map +1 -0
  803. package/dist/engine/knowledge/knowledge_scenario_registry.d.ts +21 -0
  804. package/dist/engine/knowledge/knowledge_scenario_registry.d.ts.map +1 -0
  805. package/dist/engine/knowledge/knowledge_scenario_registry.js +329 -0
  806. package/dist/engine/knowledge/knowledge_scenario_registry.js.map +1 -0
  807. package/dist/engine/knowledge/knowledge_sovereignty.d.ts.map +1 -0
  808. package/dist/engine/knowledge/knowledge_sovereignty.js +196 -0
  809. package/dist/engine/knowledge/knowledge_sovereignty.js.map +1 -0
  810. package/dist/engine/knowledge/knowledge_template_contracts.d.ts +243 -0
  811. package/dist/engine/knowledge/knowledge_template_contracts.d.ts.map +1 -0
  812. package/dist/engine/knowledge/knowledge_template_contracts.js.map +1 -0
  813. package/dist/engine/knowledge/knowledge_writer.d.ts +108 -0
  814. package/dist/engine/knowledge/knowledge_writer.d.ts.map +1 -0
  815. package/dist/engine/knowledge/knowledge_writer.js +637 -0
  816. package/dist/engine/knowledge/knowledge_writer.js.map +1 -0
  817. package/dist/engine/knowledge/language_policy.d.ts +78 -0
  818. package/dist/engine/knowledge/language_policy.d.ts.map +1 -0
  819. package/dist/engine/knowledge/language_policy.js +139 -0
  820. package/dist/engine/knowledge/language_policy.js.map +1 -0
  821. package/dist/engine/knowledge/language_policy_contract.d.ts.map +1 -0
  822. package/dist/engine/knowledge/language_policy_contract.js.map +1 -0
  823. package/dist/engine/knowledge/release_compatibility.d.ts.map +1 -0
  824. package/dist/engine/knowledge/release_compatibility.js.map +1 -0
  825. package/dist/engine/migration_guard.d.ts +1 -1
  826. package/dist/engine/migration_guard.d.ts.map +1 -1
  827. package/dist/engine/migration_guard.js +5 -5
  828. package/dist/engine/migration_guard.js.map +1 -1
  829. package/dist/engine/onboarding.d.ts +3 -3
  830. package/dist/engine/onboarding.d.ts.map +1 -1
  831. package/dist/engine/onboarding.js +8 -5
  832. package/dist/engine/onboarding.js.map +1 -1
  833. package/dist/engine/pipeline/artifact_aliases.d.ts +19 -0
  834. package/dist/engine/pipeline/artifact_aliases.d.ts.map +1 -0
  835. package/dist/engine/pipeline/artifact_aliases.js +39 -0
  836. package/dist/engine/pipeline/artifact_aliases.js.map +1 -0
  837. package/dist/engine/pipeline/conflict_gate.d.ts.map +1 -0
  838. package/dist/engine/pipeline/conflict_gate.js +92 -0
  839. package/dist/engine/pipeline/conflict_gate.js.map +1 -0
  840. package/dist/engine/pipeline/diff_ownership.d.ts.map +1 -0
  841. package/dist/engine/pipeline/diff_ownership.js +159 -0
  842. package/dist/engine/pipeline/diff_ownership.js.map +1 -0
  843. package/dist/engine/pipeline/diff_ownership_store.d.ts.map +1 -0
  844. package/dist/engine/pipeline/diff_ownership_store.js +293 -0
  845. package/dist/engine/pipeline/diff_ownership_store.js.map +1 -0
  846. package/dist/engine/pipeline/input_material_contract_registry.d.ts +185 -0
  847. package/dist/engine/pipeline/input_material_contract_registry.d.ts.map +1 -0
  848. package/dist/engine/pipeline/input_material_contract_registry.js +565 -0
  849. package/dist/engine/pipeline/input_material_contract_registry.js.map +1 -0
  850. package/dist/engine/pipeline/input_material_extractor.d.ts +47 -0
  851. package/dist/engine/pipeline/input_material_extractor.d.ts.map +1 -0
  852. package/dist/engine/pipeline/input_material_extractor.js +156 -0
  853. package/dist/engine/pipeline/input_material_extractor.js.map +1 -0
  854. package/dist/engine/pipeline/intent_expander/helpers.d.ts +44 -0
  855. package/dist/engine/pipeline/intent_expander/helpers.d.ts.map +1 -0
  856. package/dist/engine/pipeline/intent_expander/helpers.js +158 -0
  857. package/dist/engine/pipeline/intent_expander/helpers.js.map +1 -0
  858. package/dist/engine/pipeline/intent_expander/index.d.ts +12 -0
  859. package/dist/engine/pipeline/intent_expander/index.d.ts.map +1 -0
  860. package/dist/engine/pipeline/intent_expander/index.js +14 -0
  861. package/dist/engine/pipeline/intent_expander/index.js.map +1 -0
  862. package/dist/engine/pipeline/intent_expander/knowledge.d.ts +16 -0
  863. package/dist/engine/pipeline/intent_expander/knowledge.d.ts.map +1 -0
  864. package/dist/engine/pipeline/intent_expander/knowledge.js +154 -0
  865. package/dist/engine/pipeline/intent_expander/knowledge.js.map +1 -0
  866. package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts +47 -0
  867. package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts.map +1 -0
  868. package/dist/engine/pipeline/intent_expander/knowledge_resolution.js +301 -0
  869. package/dist/engine/pipeline/intent_expander/knowledge_resolution.js.map +1 -0
  870. package/dist/engine/pipeline/intent_expander/privacy_gates.d.ts +33 -0
  871. package/dist/engine/pipeline/intent_expander/privacy_gates.d.ts.map +1 -0
  872. package/dist/engine/pipeline/intent_expander/privacy_gates.js +66 -0
  873. package/dist/engine/pipeline/intent_expander/privacy_gates.js.map +1 -0
  874. package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts +80 -0
  875. package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts.map +1 -0
  876. package/dist/engine/pipeline/intent_expander/scope_acceptance.js +219 -0
  877. package/dist/engine/pipeline/intent_expander/scope_acceptance.js.map +1 -0
  878. package/dist/engine/pipeline/intent_expander/templates.d.ts +28 -0
  879. package/dist/engine/pipeline/intent_expander/templates.d.ts.map +1 -0
  880. package/dist/engine/pipeline/intent_expander/templates.js +662 -0
  881. package/dist/engine/pipeline/intent_expander/templates.js.map +1 -0
  882. package/dist/engine/pipeline/intent_expander/types.d.ts +101 -0
  883. package/dist/engine/pipeline/intent_expander/types.d.ts.map +1 -0
  884. package/dist/engine/pipeline/intent_expander/types.js +8 -0
  885. package/dist/engine/pipeline/intent_expander/types.js.map +1 -0
  886. package/dist/engine/pipeline/intent_expander/uncertainty_circuit.d.ts +33 -0
  887. package/dist/engine/pipeline/intent_expander/uncertainty_circuit.d.ts.map +1 -0
  888. package/dist/engine/pipeline/intent_expander/uncertainty_circuit.js +187 -0
  889. package/dist/engine/pipeline/intent_expander/uncertainty_circuit.js.map +1 -0
  890. package/dist/engine/pipeline/intent_expander.d.ts +12 -0
  891. package/dist/engine/pipeline/intent_expander.d.ts.map +1 -0
  892. package/dist/engine/pipeline/intent_expander.js +14 -0
  893. package/dist/engine/pipeline/intent_expander.js.map +1 -0
  894. package/dist/engine/pipeline/job_manager.d.ts +111 -0
  895. package/dist/engine/pipeline/job_manager.d.ts.map +1 -0
  896. package/dist/engine/pipeline/job_manager.js +284 -0
  897. package/dist/engine/pipeline/job_manager.js.map +1 -0
  898. package/dist/engine/pipeline/plan_proposal_gate.d.ts.map +1 -0
  899. package/dist/engine/pipeline/plan_proposal_gate.js +340 -0
  900. package/dist/engine/pipeline/plan_proposal_gate.js.map +1 -0
  901. package/dist/engine/pipeline/prompt_template_resolver.d.ts +13 -0
  902. package/dist/engine/pipeline/prompt_template_resolver.d.ts.map +1 -0
  903. package/dist/engine/pipeline/prompt_template_resolver.js +25 -0
  904. package/dist/engine/pipeline/prompt_template_resolver.js.map +1 -0
  905. package/dist/engine/pipeline/rollback_router.d.ts +35 -0
  906. package/dist/engine/pipeline/rollback_router.d.ts.map +1 -0
  907. package/dist/engine/pipeline/rollback_router.js +57 -0
  908. package/dist/engine/pipeline/rollback_router.js.map +1 -0
  909. package/dist/engine/pipeline/scope_controller.d.ts +17 -0
  910. package/dist/engine/pipeline/scope_controller.d.ts.map +1 -0
  911. package/dist/engine/pipeline/scope_controller.js +224 -0
  912. package/dist/engine/pipeline/scope_controller.js.map +1 -0
  913. package/dist/engine/pipeline/scope_lease.d.ts +92 -0
  914. package/dist/engine/pipeline/scope_lease.d.ts.map +1 -0
  915. package/dist/engine/pipeline/scope_lease.js +178 -0
  916. package/dist/engine/pipeline/scope_lease.js.map +1 -0
  917. package/dist/engine/pipeline/scope_resolver.d.ts +18 -0
  918. package/dist/engine/pipeline/scope_resolver.d.ts.map +1 -0
  919. package/dist/engine/pipeline/scope_resolver.js +533 -0
  920. package/dist/engine/pipeline/scope_resolver.js.map +1 -0
  921. package/dist/engine/pipeline/slice_executor.d.ts +83 -0
  922. package/dist/engine/pipeline/slice_executor.d.ts.map +1 -0
  923. package/dist/engine/pipeline/slice_executor.js +103 -0
  924. package/dist/engine/pipeline/slice_executor.js.map +1 -0
  925. package/dist/engine/pipeline/stale_current_task_detector.d.ts +30 -0
  926. package/dist/engine/pipeline/stale_current_task_detector.d.ts.map +1 -0
  927. package/dist/engine/pipeline/stale_current_task_detector.js +171 -0
  928. package/dist/engine/pipeline/stale_current_task_detector.js.map +1 -0
  929. package/dist/engine/pipeline/state_machine/audit_logger.d.ts +42 -0
  930. package/dist/engine/pipeline/state_machine/audit_logger.d.ts.map +1 -0
  931. package/dist/engine/pipeline/state_machine/audit_logger.js +71 -0
  932. package/dist/engine/pipeline/state_machine/audit_logger.js.map +1 -0
  933. package/dist/engine/pipeline/state_machine/capability_safety_valve.d.ts +51 -0
  934. package/dist/engine/pipeline/state_machine/capability_safety_valve.d.ts.map +1 -0
  935. package/dist/engine/pipeline/state_machine/capability_safety_valve.js +131 -0
  936. package/dist/engine/pipeline/state_machine/capability_safety_valve.js.map +1 -0
  937. package/dist/engine/pipeline/state_machine/certainty_gate.d.ts +92 -0
  938. package/dist/engine/pipeline/state_machine/certainty_gate.d.ts.map +1 -0
  939. package/dist/engine/pipeline/state_machine/certainty_gate.js +391 -0
  940. package/dist/engine/pipeline/state_machine/certainty_gate.js.map +1 -0
  941. package/dist/engine/pipeline/state_machine/command_state_verifier.d.ts +50 -0
  942. package/dist/engine/pipeline/state_machine/command_state_verifier.d.ts.map +1 -0
  943. package/dist/engine/pipeline/state_machine/command_state_verifier.js +160 -0
  944. package/dist/engine/pipeline/state_machine/command_state_verifier.js.map +1 -0
  945. package/dist/engine/pipeline/state_machine/hook_classifier.d.ts +71 -0
  946. package/dist/engine/pipeline/state_machine/hook_classifier.d.ts.map +1 -0
  947. package/dist/engine/pipeline/state_machine/hook_classifier.js +146 -0
  948. package/dist/engine/pipeline/state_machine/hook_classifier.js.map +1 -0
  949. package/dist/engine/pipeline/state_machine/human_uncertainty_detector.d.ts +33 -0
  950. package/dist/engine/pipeline/state_machine/human_uncertainty_detector.d.ts.map +1 -0
  951. package/dist/engine/pipeline/state_machine/human_uncertainty_detector.js +72 -0
  952. package/dist/engine/pipeline/state_machine/human_uncertainty_detector.js.map +1 -0
  953. package/dist/engine/pipeline/state_machine/knowledge_stage_query.d.ts +21 -0
  954. package/dist/engine/pipeline/state_machine/knowledge_stage_query.d.ts.map +1 -0
  955. package/dist/engine/pipeline/state_machine/knowledge_stage_query.js +33 -0
  956. package/dist/engine/pipeline/state_machine/knowledge_stage_query.js.map +1 -0
  957. package/dist/engine/pipeline/state_machine/pipeline_state_machine.d.ts +158 -0
  958. package/dist/engine/pipeline/state_machine/pipeline_state_machine.d.ts.map +1 -0
  959. package/dist/engine/pipeline/state_machine/pipeline_state_machine.js +1197 -0
  960. package/dist/engine/pipeline/state_machine/pipeline_state_machine.js.map +1 -0
  961. package/dist/engine/pipeline/state_machine/risk_pattern_scanner.d.ts +34 -0
  962. package/dist/engine/pipeline/state_machine/risk_pattern_scanner.d.ts.map +1 -0
  963. package/dist/engine/pipeline/state_machine/risk_pattern_scanner.js +152 -0
  964. package/dist/engine/pipeline/state_machine/risk_pattern_scanner.js.map +1 -0
  965. package/dist/engine/pipeline/state_machine/route_usage_stats.d.ts +28 -0
  966. package/dist/engine/pipeline/state_machine/route_usage_stats.d.ts.map +1 -0
  967. package/dist/engine/pipeline/state_machine/route_usage_stats.js +76 -0
  968. package/dist/engine/pipeline/state_machine/route_usage_stats.js.map +1 -0
  969. package/dist/engine/pipeline/state_machine/sf_command_parser.d.ts +22 -0
  970. package/dist/engine/pipeline/state_machine/sf_command_parser.d.ts.map +1 -0
  971. package/dist/engine/pipeline/state_machine/sf_command_parser.js +171 -0
  972. package/dist/engine/pipeline/state_machine/sf_command_parser.js.map +1 -0
  973. package/dist/engine/pipeline/state_machine/stage_command_registry.d.ts +38 -0
  974. package/dist/engine/pipeline/state_machine/stage_command_registry.d.ts.map +1 -0
  975. package/dist/engine/pipeline/state_machine/stage_command_registry.js +218 -0
  976. package/dist/engine/pipeline/state_machine/stage_command_registry.js.map +1 -0
  977. package/dist/engine/pipeline/state_machine/stage_executor.d.ts +37 -0
  978. package/dist/engine/pipeline/state_machine/stage_executor.d.ts.map +1 -0
  979. package/dist/engine/pipeline/state_machine/stage_executor.js +67 -0
  980. package/dist/engine/pipeline/state_machine/stage_executor.js.map +1 -0
  981. package/dist/engine/pipeline/state_machine/state_migrator.d.ts +21 -0
  982. package/dist/engine/pipeline/state_machine/state_migrator.d.ts.map +1 -0
  983. package/dist/engine/pipeline/state_machine/state_migrator.js +130 -0
  984. package/dist/engine/pipeline/state_machine/state_migrator.js.map +1 -0
  985. package/dist/engine/pipeline/state_machine/state_self_diagnostic.d.ts +48 -0
  986. package/dist/engine/pipeline/state_machine/state_self_diagnostic.d.ts.map +1 -0
  987. package/dist/engine/pipeline/state_machine/state_self_diagnostic.js +566 -0
  988. package/dist/engine/pipeline/state_machine/state_self_diagnostic.js.map +1 -0
  989. package/dist/engine/pipeline/state_machine/static_route_table.d.ts +36 -0
  990. package/dist/engine/pipeline/state_machine/static_route_table.d.ts.map +1 -0
  991. package/dist/engine/pipeline/state_machine/static_route_table.js +112 -0
  992. package/dist/engine/pipeline/state_machine/static_route_table.js.map +1 -0
  993. package/dist/engine/pipeline/state_machine/strong_confirmation.d.ts +45 -0
  994. package/dist/engine/pipeline/state_machine/strong_confirmation.d.ts.map +1 -0
  995. package/dist/engine/pipeline/state_machine/strong_confirmation.js +57 -0
  996. package/dist/engine/pipeline/state_machine/strong_confirmation.js.map +1 -0
  997. package/dist/engine/pipeline/state_machine/uncertainty_bridge.d.ts +55 -0
  998. package/dist/engine/pipeline/state_machine/uncertainty_bridge.d.ts.map +1 -0
  999. package/dist/engine/pipeline/state_machine/uncertainty_bridge.js +48 -0
  1000. package/dist/engine/pipeline/state_machine/uncertainty_bridge.js.map +1 -0
  1001. package/dist/engine/pipeline/task_context/cleanup.d.ts +13 -0
  1002. package/dist/engine/pipeline/task_context/cleanup.d.ts.map +1 -0
  1003. package/dist/engine/pipeline/task_context/cleanup.js +68 -0
  1004. package/dist/engine/pipeline/task_context/cleanup.js.map +1 -0
  1005. package/dist/engine/pipeline/task_context/constants.d.ts +9 -0
  1006. package/dist/engine/pipeline/task_context/constants.d.ts.map +1 -0
  1007. package/dist/engine/pipeline/task_context/constants.js +20 -0
  1008. package/dist/engine/pipeline/task_context/constants.js.map +1 -0
  1009. package/dist/engine/pipeline/task_context/expansion_privacy.d.ts +18 -0
  1010. package/dist/engine/pipeline/task_context/expansion_privacy.d.ts.map +1 -0
  1011. package/dist/engine/pipeline/task_context/expansion_privacy.js +82 -0
  1012. package/dist/engine/pipeline/task_context/expansion_privacy.js.map +1 -0
  1013. package/dist/engine/pipeline/task_context/index.d.ts +19 -0
  1014. package/dist/engine/pipeline/task_context/index.d.ts.map +1 -0
  1015. package/dist/engine/pipeline/task_context/index.js +19 -0
  1016. package/dist/engine/pipeline/task_context/index.js.map +1 -0
  1017. package/dist/engine/pipeline/task_context/manager.d.ts +200 -0
  1018. package/dist/engine/pipeline/task_context/manager.d.ts.map +1 -0
  1019. package/dist/engine/pipeline/task_context/manager.js +758 -0
  1020. package/dist/engine/pipeline/task_context/manager.js.map +1 -0
  1021. package/dist/engine/pipeline/task_context/manager_setters.d.ts +65 -0
  1022. package/dist/engine/pipeline/task_context/manager_setters.d.ts.map +1 -0
  1023. package/dist/engine/pipeline/task_context/manager_setters.js +288 -0
  1024. package/dist/engine/pipeline/task_context/manager_setters.js.map +1 -0
  1025. package/dist/engine/pipeline/task_context/phase_directive.d.ts +10 -0
  1026. package/dist/engine/pipeline/task_context/phase_directive.d.ts.map +1 -0
  1027. package/dist/engine/pipeline/task_context/phase_directive.js +75 -0
  1028. package/dist/engine/pipeline/task_context/phase_directive.js.map +1 -0
  1029. package/dist/engine/pipeline/task_context/status_transitions.d.ts +17 -0
  1030. package/dist/engine/pipeline/task_context/status_transitions.d.ts.map +1 -0
  1031. package/dist/engine/pipeline/task_context/status_transitions.js +76 -0
  1032. package/dist/engine/pipeline/task_context/status_transitions.js.map +1 -0
  1033. package/dist/engine/pipeline/task_context.d.ts +15 -0
  1034. package/dist/engine/pipeline/task_context.d.ts.map +1 -0
  1035. package/dist/engine/pipeline/task_context.js +15 -0
  1036. package/dist/engine/pipeline/task_context.js.map +1 -0
  1037. package/dist/engine/pipeline/task_planner.d.ts +30 -0
  1038. package/dist/engine/pipeline/task_planner.d.ts.map +1 -0
  1039. package/dist/engine/pipeline/task_planner.js +334 -0
  1040. package/dist/engine/pipeline/task_planner.js.map +1 -0
  1041. package/dist/engine/pipeline/task_stage_detector.d.ts +27 -0
  1042. package/dist/engine/pipeline/task_stage_detector.d.ts.map +1 -0
  1043. package/dist/engine/pipeline/task_stage_detector.js +191 -0
  1044. package/dist/engine/pipeline/task_stage_detector.js.map +1 -0
  1045. package/dist/engine/pipeline/workspace_lease.d.ts +78 -0
  1046. package/dist/engine/pipeline/workspace_lease.d.ts.map +1 -0
  1047. package/dist/engine/pipeline/workspace_lease.js +180 -0
  1048. package/dist/engine/pipeline/workspace_lease.js.map +1 -0
  1049. package/dist/engine/pipeline/workspace_resumer.d.ts.map +1 -0
  1050. package/dist/engine/pipeline/workspace_resumer.js +210 -0
  1051. package/dist/engine/pipeline/workspace_resumer.js.map +1 -0
  1052. package/dist/engine/release/foundation_scenario_registry.d.ts +44 -0
  1053. package/dist/engine/release/foundation_scenario_registry.d.ts.map +1 -0
  1054. package/dist/engine/release/foundation_scenario_registry.js +281 -0
  1055. package/dist/engine/release/foundation_scenario_registry.js.map +1 -0
  1056. package/dist/engine/release/foundation_scenario_runners.d.ts +54 -0
  1057. package/dist/engine/release/foundation_scenario_runners.d.ts.map +1 -0
  1058. package/dist/engine/release/foundation_scenario_runners.js +151 -0
  1059. package/dist/engine/release/foundation_scenario_runners.js.map +1 -0
  1060. package/dist/engine/release/gate_checks/checkControlPlaneTrust.d.ts +9 -0
  1061. package/dist/engine/release/gate_checks/checkControlPlaneTrust.d.ts.map +1 -0
  1062. package/dist/engine/release/gate_checks/checkControlPlaneTrust.js +121 -0
  1063. package/dist/engine/release/gate_checks/checkControlPlaneTrust.js.map +1 -0
  1064. package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.d.ts +6 -0
  1065. package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.d.ts.map +1 -0
  1066. package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.js +498 -0
  1067. package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.js.map +1 -0
  1068. package/dist/engine/release/gate_checks/checkDependencyAudit.d.ts +6 -0
  1069. package/dist/engine/release/gate_checks/checkDependencyAudit.d.ts.map +1 -0
  1070. package/dist/engine/release/gate_checks/checkDependencyAudit.js +45 -0
  1071. package/dist/engine/release/gate_checks/checkDependencyAudit.js.map +1 -0
  1072. package/dist/engine/release/gate_checks/checkDistFreshness.d.ts +6 -0
  1073. package/dist/engine/release/gate_checks/checkDistFreshness.d.ts.map +1 -0
  1074. package/dist/engine/release/gate_checks/checkDistFreshness.js +59 -0
  1075. package/dist/engine/release/gate_checks/checkDistFreshness.js.map +1 -0
  1076. package/dist/engine/release/gate_checks/checkKnowledgeAssetSchemaP0.d.ts +6 -0
  1077. package/dist/engine/release/gate_checks/checkKnowledgeAssetSchemaP0.d.ts.map +1 -0
  1078. package/dist/engine/release/gate_checks/checkKnowledgeAssetSchemaP0.js +30 -0
  1079. package/dist/engine/release/gate_checks/checkKnowledgeAssetSchemaP0.js.map +1 -0
  1080. package/dist/engine/release/gate_checks/checkMainlineConsumption.d.ts +6 -0
  1081. package/dist/engine/release/gate_checks/checkMainlineConsumption.d.ts.map +1 -0
  1082. package/dist/engine/release/gate_checks/checkMainlineConsumption.js +356 -0
  1083. package/dist/engine/release/gate_checks/checkMainlineConsumption.js.map +1 -0
  1084. package/dist/engine/release/gate_checks/checkNpmPack.d.ts +10 -0
  1085. package/dist/engine/release/gate_checks/checkNpmPack.d.ts.map +1 -0
  1086. package/dist/engine/release/gate_checks/checkNpmPack.js +69 -0
  1087. package/dist/engine/release/gate_checks/checkNpmPack.js.map +1 -0
  1088. package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.d.ts +10 -0
  1089. package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.d.ts.map +1 -0
  1090. package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.js +267 -0
  1091. package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.js.map +1 -0
  1092. package/dist/engine/release/gate_checks/checkWorkflowNavigation.d.ts +6 -0
  1093. package/dist/engine/release/gate_checks/checkWorkflowNavigation.d.ts.map +1 -0
  1094. package/dist/engine/release/gate_checks/checkWorkflowNavigation.js +189 -0
  1095. package/dist/engine/release/gate_checks/checkWorkflowNavigation.js.map +1 -0
  1096. package/dist/engine/release/gate_checks/helpers.d.ts +28 -0
  1097. package/dist/engine/release/gate_checks/helpers.d.ts.map +1 -0
  1098. package/dist/engine/release/gate_checks/helpers.js +92 -0
  1099. package/dist/engine/release/gate_checks/helpers.js.map +1 -0
  1100. package/dist/engine/release/gate_checks/types.d.ts +38 -0
  1101. package/dist/engine/release/gate_checks/types.d.ts.map +1 -0
  1102. package/dist/engine/release/gate_checks/types.js +5 -0
  1103. package/dist/engine/release/gate_checks/types.js.map +1 -0
  1104. package/dist/engine/release/index.d.ts +6 -0
  1105. package/dist/engine/release/index.d.ts.map +1 -0
  1106. package/dist/engine/release/index.js +6 -0
  1107. package/dist/engine/release/index.js.map +1 -0
  1108. package/dist/engine/release/release_gate_scenario_registry.d.ts.map +1 -0
  1109. package/dist/engine/release/release_gate_scenario_registry.js +717 -0
  1110. package/dist/engine/release/release_gate_scenario_registry.js.map +1 -0
  1111. package/dist/engine/release/release_issue_scenario_registry/fixtures.d.ts +8 -0
  1112. package/dist/engine/release/release_issue_scenario_registry/fixtures.d.ts.map +1 -0
  1113. package/dist/engine/release/release_issue_scenario_registry/fixtures.js +54 -0
  1114. package/dist/engine/release/release_issue_scenario_registry/fixtures.js.map +1 -0
  1115. package/dist/engine/release/release_issue_scenario_registry/index.d.ts +8 -0
  1116. package/dist/engine/release/release_issue_scenario_registry/index.d.ts.map +1 -0
  1117. package/dist/engine/release/release_issue_scenario_registry/index.js +7 -0
  1118. package/dist/engine/release/release_issue_scenario_registry/index.js.map +1 -0
  1119. package/dist/engine/release/release_issue_scenario_registry/registry.d.ts +26 -0
  1120. package/dist/engine/release/release_issue_scenario_registry/registry.d.ts.map +1 -0
  1121. package/dist/engine/release/release_issue_scenario_registry/registry.js +83 -0
  1122. package/dist/engine/release/release_issue_scenario_registry/registry.js.map +1 -0
  1123. package/dist/engine/release/release_issue_scenario_registry/scenarios_architecture_workshop.d.ts +6 -0
  1124. package/dist/engine/release/release_issue_scenario_registry/scenarios_architecture_workshop.d.ts.map +1 -0
  1125. package/dist/engine/release/release_issue_scenario_registry/scenarios_architecture_workshop.js +284 -0
  1126. package/dist/engine/release/release_issue_scenario_registry/scenarios_architecture_workshop.js.map +1 -0
  1127. package/dist/engine/release/release_issue_scenario_registry/scenarios_code_observability.d.ts +6 -0
  1128. package/dist/engine/release/release_issue_scenario_registry/scenarios_code_observability.d.ts.map +1 -0
  1129. package/dist/engine/release/release_issue_scenario_registry/scenarios_code_observability.js +214 -0
  1130. package/dist/engine/release/release_issue_scenario_registry/scenarios_code_observability.js.map +1 -0
  1131. package/dist/engine/release/release_issue_scenario_registry/scenarios_decision_workshop.d.ts +6 -0
  1132. package/dist/engine/release/release_issue_scenario_registry/scenarios_decision_workshop.d.ts.map +1 -0
  1133. package/dist/engine/release/release_issue_scenario_registry/scenarios_decision_workshop.js +356 -0
  1134. package/dist/engine/release/release_issue_scenario_registry/scenarios_decision_workshop.js.map +1 -0
  1135. package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.d.ts +6 -0
  1136. package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.d.ts.map +1 -0
  1137. package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.js +232 -0
  1138. package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.js.map +1 -0
  1139. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.d.ts +6 -0
  1140. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.d.ts.map +1 -0
  1141. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.js +358 -0
  1142. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.js.map +1 -0
  1143. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.d.ts +6 -0
  1144. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.d.ts.map +1 -0
  1145. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js +292 -0
  1146. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js.map +1 -0
  1147. package/dist/engine/release/release_issue_scenario_registry/scenarios_workflow_navigation.d.ts +12 -0
  1148. package/dist/engine/release/release_issue_scenario_registry/scenarios_workflow_navigation.d.ts.map +1 -0
  1149. package/dist/engine/release/release_issue_scenario_registry/scenarios_workflow_navigation.js +147 -0
  1150. package/dist/engine/release/release_issue_scenario_registry/scenarios_workflow_navigation.js.map +1 -0
  1151. package/dist/engine/release/release_issue_scenario_registry/types.d.ts +37 -0
  1152. package/dist/engine/release/release_issue_scenario_registry/types.d.ts.map +1 -0
  1153. package/dist/engine/release/release_issue_scenario_registry/types.js +5 -0
  1154. package/dist/engine/release/release_issue_scenario_registry/types.js.map +1 -0
  1155. package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.d.ts +35 -0
  1156. package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.d.ts.map +1 -0
  1157. package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.js +78 -0
  1158. package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.js.map +1 -0
  1159. package/dist/engine/release/release_issue_scenario_registry.d.ts +9 -0
  1160. package/dist/engine/release/release_issue_scenario_registry.d.ts.map +1 -0
  1161. package/dist/engine/release/release_issue_scenario_registry.js +8 -0
  1162. package/dist/engine/release/release_issue_scenario_registry.js.map +1 -0
  1163. package/dist/engine/release/release_readiness_gate.d.ts +26 -0
  1164. package/dist/engine/release/release_readiness_gate.d.ts.map +1 -0
  1165. package/dist/engine/release/release_readiness_gate.js +209 -0
  1166. package/dist/engine/release/release_readiness_gate.js.map +1 -0
  1167. package/dist/engine/release/release_tool_harness.d.ts +84 -0
  1168. package/dist/engine/release/release_tool_harness.d.ts.map +1 -0
  1169. package/dist/engine/release/release_tool_harness.js +169 -0
  1170. package/dist/engine/release/release_tool_harness.js.map +1 -0
  1171. package/dist/engine/release/types.d.ts +81 -0
  1172. package/dist/engine/release/types.d.ts.map +1 -0
  1173. package/dist/engine/release/types.js +7 -0
  1174. package/dist/engine/release/types.js.map +1 -0
  1175. package/dist/engine/release/verifier.d.ts +45 -0
  1176. package/dist/engine/release/verifier.d.ts.map +1 -0
  1177. package/dist/engine/release/verifier.js +629 -0
  1178. package/dist/engine/release/verifier.js.map +1 -0
  1179. package/dist/engine/retention_policy.js +1 -1
  1180. package/dist/engine/retention_policy.js.map +1 -1
  1181. package/dist/engine/source_code_matcher.js +1 -1
  1182. package/dist/engine/source_code_matcher.js.map +1 -1
  1183. package/dist/engine/state_fact_classifier.d.ts +3 -3
  1184. package/dist/engine/state_fact_classifier.js +4 -4
  1185. package/dist/engine/state_fact_classifier.js.map +1 -1
  1186. package/dist/engine/team_awareness.d.ts +2 -2
  1187. package/dist/engine/team_awareness.d.ts.map +1 -1
  1188. package/dist/engine/team_awareness.js +1 -1
  1189. package/dist/engine/team_awareness.js.map +1 -1
  1190. package/dist/engine/templates/asset_manifest.d.ts +67 -0
  1191. package/dist/engine/templates/asset_manifest.d.ts.map +1 -0
  1192. package/dist/engine/templates/asset_manifest.js +316 -0
  1193. package/dist/engine/templates/asset_manifest.js.map +1 -0
  1194. package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.d.ts +8 -0
  1195. package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.d.ts.map +1 -0
  1196. package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.js +326 -0
  1197. package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.js.map +1 -0
  1198. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.d.ts +7 -0
  1199. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.d.ts.map +1 -0
  1200. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.js +310 -0
  1201. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.js.map +1 -0
  1202. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.d.ts +7 -0
  1203. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.d.ts.map +1 -0
  1204. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.js +255 -0
  1205. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.js.map +1 -0
  1206. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.d.ts +8 -0
  1207. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.d.ts.map +1 -0
  1208. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.js +281 -0
  1209. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.js.map +1 -0
  1210. package/dist/engine/templates/consumable_asset_registry/builtin_assets_pipeline.d.ts +7 -0
  1211. package/dist/engine/templates/consumable_asset_registry/builtin_assets_pipeline.d.ts.map +1 -0
  1212. package/dist/engine/templates/consumable_asset_registry/builtin_assets_pipeline.js +60 -0
  1213. package/dist/engine/templates/consumable_asset_registry/builtin_assets_pipeline.js.map +1 -0
  1214. package/dist/engine/templates/consumable_asset_registry/index.d.ts +9 -0
  1215. package/dist/engine/templates/consumable_asset_registry/index.d.ts.map +1 -0
  1216. package/dist/engine/templates/consumable_asset_registry/index.js +9 -0
  1217. package/dist/engine/templates/consumable_asset_registry/index.js.map +1 -0
  1218. package/dist/engine/templates/consumable_asset_registry/registry.d.ts +33 -0
  1219. package/dist/engine/templates/consumable_asset_registry/registry.d.ts.map +1 -0
  1220. package/dist/engine/templates/consumable_asset_registry/registry.js +55 -0
  1221. package/dist/engine/templates/consumable_asset_registry/registry.js.map +1 -0
  1222. package/dist/engine/templates/consumable_asset_registry/types.d.ts +55 -0
  1223. package/dist/engine/templates/consumable_asset_registry/types.d.ts.map +1 -0
  1224. package/dist/engine/templates/consumable_asset_registry/types.js +246 -0
  1225. package/dist/engine/templates/consumable_asset_registry/types.js.map +1 -0
  1226. package/dist/engine/templates/consumable_asset_registry.d.ts +11 -0
  1227. package/dist/engine/templates/consumable_asset_registry.d.ts.map +1 -0
  1228. package/dist/engine/templates/consumable_asset_registry.js +10 -0
  1229. package/dist/engine/templates/consumable_asset_registry.js.map +1 -0
  1230. package/dist/engine/templates/consumption_trace_store.d.ts +93 -0
  1231. package/dist/engine/templates/consumption_trace_store.d.ts.map +1 -0
  1232. package/dist/engine/templates/consumption_trace_store.js +128 -0
  1233. package/dist/engine/templates/consumption_trace_store.js.map +1 -0
  1234. package/dist/engine/templates/explicit_asset_registry/adapters.d.ts +3 -0
  1235. package/dist/engine/templates/explicit_asset_registry/adapters.d.ts.map +1 -0
  1236. package/dist/engine/templates/explicit_asset_registry/adapters.js +67 -0
  1237. package/dist/engine/templates/explicit_asset_registry/adapters.js.map +1 -0
  1238. package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.d.ts +3 -0
  1239. package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.d.ts.map +1 -0
  1240. package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.js +163 -0
  1241. package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.js.map +1 -0
  1242. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.d.ts +3 -0
  1243. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.d.ts.map +1 -0
  1244. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.js +403 -0
  1245. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.js.map +1 -0
  1246. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.d.ts +3 -0
  1247. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.d.ts.map +1 -0
  1248. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.js +83 -0
  1249. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.js.map +1 -0
  1250. package/dist/engine/templates/explicit_asset_registry/checklists.d.ts +3 -0
  1251. package/dist/engine/templates/explicit_asset_registry/checklists.d.ts.map +1 -0
  1252. package/dist/engine/templates/explicit_asset_registry/checklists.js +115 -0
  1253. package/dist/engine/templates/explicit_asset_registry/checklists.js.map +1 -0
  1254. package/dist/engine/templates/explicit_asset_registry/contributing.d.ts +3 -0
  1255. package/dist/engine/templates/explicit_asset_registry/contributing.d.ts.map +1 -0
  1256. package/dist/engine/templates/explicit_asset_registry/contributing.js +19 -0
  1257. package/dist/engine/templates/explicit_asset_registry/contributing.js.map +1 -0
  1258. package/dist/engine/templates/explicit_asset_registry/domain.d.ts +3 -0
  1259. package/dist/engine/templates/explicit_asset_registry/domain.d.ts.map +1 -0
  1260. package/dist/engine/templates/explicit_asset_registry/domain.js +147 -0
  1261. package/dist/engine/templates/explicit_asset_registry/domain.js.map +1 -0
  1262. package/dist/engine/templates/explicit_asset_registry/gates.d.ts +3 -0
  1263. package/dist/engine/templates/explicit_asset_registry/gates.d.ts.map +1 -0
  1264. package/dist/engine/templates/explicit_asset_registry/gates.js +374 -0
  1265. package/dist/engine/templates/explicit_asset_registry/gates.js.map +1 -0
  1266. package/dist/engine/templates/explicit_asset_registry/index.d.ts +4 -0
  1267. package/dist/engine/templates/explicit_asset_registry/index.d.ts.map +1 -0
  1268. package/dist/engine/templates/explicit_asset_registry/index.js +58 -0
  1269. package/dist/engine/templates/explicit_asset_registry/index.js.map +1 -0
  1270. package/dist/engine/templates/explicit_asset_registry/internal_patterns.d.ts +3 -0
  1271. package/dist/engine/templates/explicit_asset_registry/internal_patterns.d.ts.map +1 -0
  1272. package/dist/engine/templates/explicit_asset_registry/internal_patterns.js +435 -0
  1273. package/dist/engine/templates/explicit_asset_registry/internal_patterns.js.map +1 -0
  1274. package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.d.ts +3 -0
  1275. package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.d.ts.map +1 -0
  1276. package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.js +419 -0
  1277. package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.js.map +1 -0
  1278. package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.d.ts +3 -0
  1279. package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.d.ts.map +1 -0
  1280. package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.js +323 -0
  1281. package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.js.map +1 -0
  1282. package/dist/engine/templates/explicit_asset_registry/patterns_part1.d.ts +3 -0
  1283. package/dist/engine/templates/explicit_asset_registry/patterns_part1.d.ts.map +1 -0
  1284. package/dist/engine/templates/explicit_asset_registry/patterns_part1.js +403 -0
  1285. package/dist/engine/templates/explicit_asset_registry/patterns_part1.js.map +1 -0
  1286. package/dist/engine/templates/explicit_asset_registry/patterns_part2.d.ts +3 -0
  1287. package/dist/engine/templates/explicit_asset_registry/patterns_part2.d.ts.map +1 -0
  1288. package/dist/engine/templates/explicit_asset_registry/patterns_part2.js +403 -0
  1289. package/dist/engine/templates/explicit_asset_registry/patterns_part2.js.map +1 -0
  1290. package/dist/engine/templates/explicit_asset_registry/patterns_part3.d.ts +3 -0
  1291. package/dist/engine/templates/explicit_asset_registry/patterns_part3.d.ts.map +1 -0
  1292. package/dist/engine/templates/explicit_asset_registry/patterns_part3.js +35 -0
  1293. package/dist/engine/templates/explicit_asset_registry/patterns_part3.js.map +1 -0
  1294. package/dist/engine/templates/explicit_asset_registry/procedures_part1.d.ts +3 -0
  1295. package/dist/engine/templates/explicit_asset_registry/procedures_part1.d.ts.map +1 -0
  1296. package/dist/engine/templates/explicit_asset_registry/procedures_part1.js +435 -0
  1297. package/dist/engine/templates/explicit_asset_registry/procedures_part1.js.map +1 -0
  1298. package/dist/engine/templates/explicit_asset_registry/procedures_part2.d.ts +3 -0
  1299. package/dist/engine/templates/explicit_asset_registry/procedures_part2.d.ts.map +1 -0
  1300. package/dist/engine/templates/explicit_asset_registry/procedures_part2.js +230 -0
  1301. package/dist/engine/templates/explicit_asset_registry/procedures_part2.js.map +1 -0
  1302. package/dist/engine/templates/explicit_asset_registry/profiles.d.ts +3 -0
  1303. package/dist/engine/templates/explicit_asset_registry/profiles.d.ts.map +1 -0
  1304. package/dist/engine/templates/explicit_asset_registry/profiles.js +51 -0
  1305. package/dist/engine/templates/explicit_asset_registry/profiles.js.map +1 -0
  1306. package/dist/engine/templates/explicit_asset_registry/rules_pipeline.d.ts +3 -0
  1307. package/dist/engine/templates/explicit_asset_registry/rules_pipeline.d.ts.map +1 -0
  1308. package/dist/engine/templates/explicit_asset_registry/rules_pipeline.js +163 -0
  1309. package/dist/engine/templates/explicit_asset_registry/rules_pipeline.js.map +1 -0
  1310. package/dist/engine/templates/explicit_asset_registry/rules_shared.d.ts +3 -0
  1311. package/dist/engine/templates/explicit_asset_registry/rules_shared.d.ts.map +1 -0
  1312. package/dist/engine/templates/explicit_asset_registry/rules_shared.js +622 -0
  1313. package/dist/engine/templates/explicit_asset_registry/rules_shared.js.map +1 -0
  1314. package/dist/engine/templates/explicit_asset_registry/scaffolds.d.ts +3 -0
  1315. package/dist/engine/templates/explicit_asset_registry/scaffolds.d.ts.map +1 -0
  1316. package/dist/engine/templates/explicit_asset_registry/scaffolds.js +378 -0
  1317. package/dist/engine/templates/explicit_asset_registry/scaffolds.js.map +1 -0
  1318. package/dist/engine/templates/explicit_asset_registry/types.d.ts +29 -0
  1319. package/dist/engine/templates/explicit_asset_registry/types.d.ts.map +1 -0
  1320. package/dist/engine/templates/explicit_asset_registry/types.js +7 -0
  1321. package/dist/engine/templates/explicit_asset_registry/types.js.map +1 -0
  1322. package/dist/engine/templates/explicit_asset_registry.d.ts +9 -0
  1323. package/dist/engine/templates/explicit_asset_registry.d.ts.map +1 -0
  1324. package/dist/engine/templates/explicit_asset_registry.js +9 -0
  1325. package/dist/engine/templates/explicit_asset_registry.js.map +1 -0
  1326. package/dist/engine/templates/observed_consumption.d.ts +54 -0
  1327. package/dist/engine/templates/observed_consumption.d.ts.map +1 -0
  1328. package/dist/engine/templates/observed_consumption.js +364 -0
  1329. package/dist/engine/templates/observed_consumption.js.map +1 -0
  1330. package/dist/engine/templates/scaffolder.d.ts +19 -0
  1331. package/dist/engine/templates/scaffolder.d.ts.map +1 -0
  1332. package/dist/engine/templates/scaffolder.js +412 -0
  1333. package/dist/engine/templates/scaffolder.js.map +1 -0
  1334. package/dist/engine/templates/standard_asset_contract.d.ts +105 -0
  1335. package/dist/engine/templates/standard_asset_contract.d.ts.map +1 -0
  1336. package/dist/engine/templates/standard_asset_contract.js +540 -0
  1337. package/dist/engine/templates/standard_asset_contract.js.map +1 -0
  1338. package/dist/engine/templates/standard_asset_coverage.d.ts.map +1 -0
  1339. package/dist/engine/templates/standard_asset_coverage.js +220 -0
  1340. package/dist/engine/templates/standard_asset_coverage.js.map +1 -0
  1341. package/dist/engine/templates/template_asset_contract_registry.d.ts +162 -0
  1342. package/dist/engine/templates/template_asset_contract_registry.d.ts.map +1 -0
  1343. package/dist/engine/templates/template_asset_contract_registry.js +662 -0
  1344. package/dist/engine/templates/template_asset_contract_registry.js.map +1 -0
  1345. package/dist/engine/templates/template_asset_visibility.d.ts +109 -0
  1346. package/dist/engine/templates/template_asset_visibility.d.ts.map +1 -0
  1347. package/dist/engine/templates/template_asset_visibility.js +304 -0
  1348. package/dist/engine/templates/template_asset_visibility.js.map +1 -0
  1349. package/dist/engine/templates/template_init_sync.d.ts +103 -0
  1350. package/dist/engine/templates/template_init_sync.d.ts.map +1 -0
  1351. package/dist/engine/templates/template_init_sync.js +447 -0
  1352. package/dist/engine/templates/template_init_sync.js.map +1 -0
  1353. package/dist/engine/templates/template_manifest_io.d.ts +57 -0
  1354. package/dist/engine/templates/template_manifest_io.d.ts.map +1 -0
  1355. package/dist/engine/templates/template_manifest_io.js +189 -0
  1356. package/dist/engine/templates/template_manifest_io.js.map +1 -0
  1357. package/dist/engine/templates/template_mechanism_auditor.d.ts +95 -0
  1358. package/dist/engine/templates/template_mechanism_auditor.d.ts.map +1 -0
  1359. package/dist/engine/templates/template_mechanism_auditor.js +627 -0
  1360. package/dist/engine/templates/template_mechanism_auditor.js.map +1 -0
  1361. package/dist/engine/templates/template_sync.d.ts +98 -0
  1362. package/dist/engine/templates/template_sync.d.ts.map +1 -0
  1363. package/dist/engine/templates/template_sync.js.map +1 -0
  1364. package/dist/engine/templates/workflow_rule_generator.d.ts +22 -0
  1365. package/dist/engine/templates/workflow_rule_generator.d.ts.map +1 -0
  1366. package/dist/engine/templates/workflow_rule_generator.js +81 -0
  1367. package/dist/engine/templates/workflow_rule_generator.js.map +1 -0
  1368. package/dist/engine/workflow/index.d.ts +10 -0
  1369. package/dist/engine/workflow/index.d.ts.map +1 -0
  1370. package/dist/engine/workflow/index.js +12 -0
  1371. package/dist/engine/workflow/index.js.map +1 -0
  1372. package/dist/engine/workflow/next_action_planner.d.ts +32 -0
  1373. package/dist/engine/workflow/next_action_planner.d.ts.map +1 -0
  1374. package/dist/engine/workflow/next_action_planner.js +868 -0
  1375. package/dist/engine/workflow/next_action_planner.js.map +1 -0
  1376. package/dist/engine/workflow/project_stage_detector.d.ts.map +1 -0
  1377. package/dist/engine/workflow/project_stage_detector.js +253 -0
  1378. package/dist/engine/workflow/project_stage_detector.js.map +1 -0
  1379. package/dist/engine/workflow/workflow_contract_registry.d.ts +126 -0
  1380. package/dist/engine/workflow/workflow_contract_registry.d.ts.map +1 -0
  1381. package/dist/engine/workflow/workflow_contract_registry.js +271 -0
  1382. package/dist/engine/workflow/workflow_contract_registry.js.map +1 -0
  1383. package/dist/engine/workflow/workflow_navigation_contract.d.ts +178 -0
  1384. package/dist/engine/workflow/workflow_navigation_contract.d.ts.map +1 -0
  1385. package/dist/engine/workflow/workflow_navigation_contract.js +30 -0
  1386. package/dist/engine/workflow/workflow_navigation_contract.js.map +1 -0
  1387. package/dist/git/git_deps.d.ts +72 -0
  1388. package/dist/git/git_deps.d.ts.map +1 -0
  1389. package/dist/git/git_deps.js +9 -0
  1390. package/dist/git/git_deps.js.map +1 -0
  1391. package/dist/git/operations.d.ts +1 -0
  1392. package/dist/git/operations.d.ts.map +1 -1
  1393. package/dist/git/operations.js +3 -1
  1394. package/dist/git/operations.js.map +1 -1
  1395. package/dist/index.d.ts +2 -2
  1396. package/dist/index.js +61 -20
  1397. package/dist/index.js.map +1 -1
  1398. package/dist/knowledge/conflict_detector.d.ts +15 -1
  1399. package/dist/knowledge/conflict_detector.d.ts.map +1 -1
  1400. package/dist/knowledge/conflict_detector.js +83 -4
  1401. package/dist/knowledge/conflict_detector.js.map +1 -1
  1402. package/dist/knowledge/health_checker.d.ts +1 -1
  1403. package/dist/knowledge/health_checker.d.ts.map +1 -1
  1404. package/dist/knowledge/health_checker.js +19 -8
  1405. package/dist/knowledge/health_checker.js.map +1 -1
  1406. package/dist/knowledge/index_manager.d.ts +26 -2
  1407. package/dist/knowledge/index_manager.d.ts.map +1 -1
  1408. package/dist/knowledge/index_manager.js +361 -113
  1409. package/dist/knowledge/index_manager.js.map +1 -1
  1410. package/dist/knowledge/loader.d.ts +9 -5
  1411. package/dist/knowledge/loader.d.ts.map +1 -1
  1412. package/dist/knowledge/loader.js +211 -45
  1413. package/dist/knowledge/loader.js.map +1 -1
  1414. package/dist/knowledge/writer.d.ts +11 -1
  1415. package/dist/knowledge/writer.d.ts.map +1 -1
  1416. package/dist/knowledge/writer.js +44 -3
  1417. package/dist/knowledge/writer.js.map +1 -1
  1418. package/dist/server/index.d.ts +26 -0
  1419. package/dist/server/index.d.ts.map +1 -0
  1420. package/dist/server/index.js +55 -0
  1421. package/dist/server/index.js.map +1 -0
  1422. package/dist/server/lifecycle.d.ts +25 -0
  1423. package/dist/server/lifecycle.d.ts.map +1 -0
  1424. package/dist/server/lifecycle.js +66 -0
  1425. package/dist/server/lifecycle.js.map +1 -0
  1426. package/dist/server/tools/cep_assessment.d.ts +172 -0
  1427. package/dist/server/tools/cep_assessment.d.ts.map +1 -0
  1428. package/dist/server/tools/cep_assessment.js +397 -0
  1429. package/dist/server/tools/cep_assessment.js.map +1 -0
  1430. package/dist/server/tools/gate_checks.d.ts +123 -0
  1431. package/dist/server/tools/gate_checks.d.ts.map +1 -0
  1432. package/dist/server/tools/gate_checks.js +267 -0
  1433. package/dist/server/tools/gate_checks.js.map +1 -0
  1434. package/dist/server/tools/index.d.ts +12 -0
  1435. package/dist/server/tools/index.d.ts.map +1 -0
  1436. package/dist/server/tools/index.js +62 -0
  1437. package/dist/server/tools/index.js.map +1 -0
  1438. package/dist/server/tools/lazy_loaders.d.ts +66 -0
  1439. package/dist/server/tools/lazy_loaders.d.ts.map +1 -0
  1440. package/dist/server/tools/lazy_loaders.js +78 -0
  1441. package/dist/server/tools/lazy_loaders.js.map +1 -0
  1442. package/dist/server/tools/middleware.d.ts +52 -0
  1443. package/dist/server/tools/middleware.d.ts.map +1 -0
  1444. package/dist/server/tools/middleware.js +648 -0
  1445. package/dist/server/tools/middleware.js.map +1 -0
  1446. package/dist/server/tools/schemas.d.ts +220 -0
  1447. package/dist/server/tools/schemas.d.ts.map +1 -0
  1448. package/dist/server/tools/schemas.js +162 -0
  1449. package/dist/server/tools/schemas.js.map +1 -0
  1450. package/dist/server/tools/tool_groups/admin.d.ts +3 -0
  1451. package/dist/server/tools/tool_groups/admin.d.ts.map +1 -0
  1452. package/dist/server/tools/tool_groups/admin.js +162 -0
  1453. package/dist/server/tools/tool_groups/admin.js.map +1 -0
  1454. package/dist/server/tools/tool_groups/auxiliary.d.ts +3 -0
  1455. package/dist/server/tools/tool_groups/auxiliary.d.ts.map +1 -0
  1456. package/dist/server/tools/tool_groups/auxiliary.js +144 -0
  1457. package/dist/server/tools/tool_groups/auxiliary.js.map +1 -0
  1458. package/dist/server/tools/tool_groups/knowledge.d.ts +3 -0
  1459. package/dist/server/tools/tool_groups/knowledge.d.ts.map +1 -0
  1460. package/dist/server/tools/tool_groups/knowledge.js +71 -0
  1461. package/dist/server/tools/tool_groups/knowledge.js.map +1 -0
  1462. package/dist/server/tools/tool_groups/product_operations.d.ts +9 -0
  1463. package/dist/server/tools/tool_groups/product_operations.d.ts.map +1 -0
  1464. package/dist/server/tools/tool_groups/product_operations.js +143 -0
  1465. package/dist/server/tools/tool_groups/product_operations.js.map +1 -0
  1466. package/dist/server/tools/tool_groups/scaffold_accept_deliver.d.ts +3 -0
  1467. package/dist/server/tools/tool_groups/scaffold_accept_deliver.d.ts.map +1 -0
  1468. package/dist/server/tools/tool_groups/scaffold_accept_deliver.js +37 -0
  1469. package/dist/server/tools/tool_groups/scaffold_accept_deliver.js.map +1 -0
  1470. package/dist/server/tools/tool_groups/state_machine.d.ts +13 -0
  1471. package/dist/server/tools/tool_groups/state_machine.d.ts.map +1 -0
  1472. package/dist/server/tools/tool_groups/state_machine.js +606 -0
  1473. package/dist/server/tools/tool_groups/state_machine.js.map +1 -0
  1474. package/dist/server/tools/tool_names.d.ts +59 -0
  1475. package/dist/server/tools/tool_names.d.ts.map +1 -0
  1476. package/dist/server/tools/tool_names.js +67 -0
  1477. package/dist/server/tools/tool_names.js.map +1 -0
  1478. package/dist/server/tools/types.d.ts +14 -0
  1479. package/dist/server/tools/types.d.ts.map +1 -0
  1480. package/dist/server/tools/types.js +2 -0
  1481. package/dist/server/tools/types.js.map +1 -0
  1482. package/dist/server/tools/utils.d.ts +17 -0
  1483. package/dist/server/tools/utils.d.ts.map +1 -0
  1484. package/dist/server/tools/utils.js +65 -0
  1485. package/dist/server/tools/utils.js.map +1 -0
  1486. package/dist/types/analysis.d.ts +358 -0
  1487. package/dist/types/analysis.d.ts.map +1 -0
  1488. package/dist/types/analysis.js +2 -0
  1489. package/dist/types/analysis.js.map +1 -0
  1490. package/dist/types/base.d.ts +13 -0
  1491. package/dist/types/base.d.ts.map +1 -0
  1492. package/dist/types/base.js +3 -0
  1493. package/dist/types/base.js.map +1 -0
  1494. package/dist/types/config.d.ts +130 -0
  1495. package/dist/types/config.d.ts.map +1 -0
  1496. package/dist/types/config.js +2 -0
  1497. package/dist/types/config.js.map +1 -0
  1498. package/dist/types/delivery.d.ts +304 -0
  1499. package/dist/types/delivery.d.ts.map +1 -0
  1500. package/dist/types/delivery.js +2 -0
  1501. package/dist/types/delivery.js.map +1 -0
  1502. package/dist/types/dual_layer.d.ts +97 -0
  1503. package/dist/types/dual_layer.d.ts.map +1 -0
  1504. package/dist/types/dual_layer.js +3 -0
  1505. package/dist/types/dual_layer.js.map +1 -0
  1506. package/dist/types/evidence.d.ts +41 -0
  1507. package/dist/types/evidence.d.ts.map +1 -0
  1508. package/dist/types/evidence.js +3 -0
  1509. package/dist/types/evidence.js.map +1 -0
  1510. package/dist/types/execution.d.ts +31 -0
  1511. package/dist/types/execution.d.ts.map +1 -0
  1512. package/dist/types/execution.js +3 -0
  1513. package/dist/types/execution.js.map +1 -0
  1514. package/dist/types/index.d.ts +14 -0
  1515. package/dist/types/index.d.ts.map +1 -0
  1516. package/dist/types/index.js +14 -0
  1517. package/dist/types/index.js.map +1 -0
  1518. package/dist/types/knowledge.d.ts +116 -0
  1519. package/dist/types/knowledge.d.ts.map +1 -0
  1520. package/dist/types/knowledge.js +5 -0
  1521. package/dist/types/knowledge.js.map +1 -0
  1522. package/dist/types/phase.d.ts +50 -0
  1523. package/dist/types/phase.d.ts.map +1 -0
  1524. package/dist/types/phase.js +3 -0
  1525. package/dist/types/phase.js.map +1 -0
  1526. package/dist/types/pipeline.d.ts +538 -0
  1527. package/dist/types/pipeline.d.ts.map +1 -0
  1528. package/dist/types/pipeline.js +6 -0
  1529. package/dist/types/pipeline.js.map +1 -0
  1530. package/dist/types/review.d.ts +149 -0
  1531. package/dist/types/review.d.ts.map +1 -0
  1532. package/dist/types/review.js +2 -0
  1533. package/dist/types/review.js.map +1 -0
  1534. package/dist/types/state_machine.d.ts +353 -0
  1535. package/dist/types/state_machine.d.ts.map +1 -0
  1536. package/dist/types/state_machine.js +47 -0
  1537. package/dist/types/state_machine.js.map +1 -0
  1538. package/dist/types/task.d.ts +314 -0
  1539. package/dist/types/task.d.ts.map +1 -0
  1540. package/dist/types/task.js +2 -0
  1541. package/dist/types/task.js.map +1 -0
  1542. package/package.json +29 -16
  1543. package/templates/artifacts/existing-system//344/270/200/351/224/256/345/274/200/345/205/263/351/205/215/347/275/256/346/250/241/347/211/210.json +45 -0
  1544. package/templates/artifacts/existing-system//345/216/206/345/217/262/346/225/260/346/215/256/346/270/205/346/264/227/350/204/232/346/234/254/346/250/241/347/211/210.md +52 -0
  1545. package/templates/artifacts/existing-system//345/216/206/345/217/262/351/201/227/347/225/231/351/233/267/345/214/272/346/270/205/345/215/225/346/250/241/347/211/210.md +47 -0
  1546. package/templates/artifacts/existing-system//345/220/221/345/220/216/345/205/274/345/256/271/346/200/247/345/220/210/350/247/204/346/212/245/345/221/212/346/250/241/347/211/210.md +49 -0
  1547. package/templates/artifacts/existing-system//345/242/236/351/207/217/350/276/271/347/225/214/347/225/214/345/256/232/346/226/207/346/241/243/346/250/241/347/211/210.md +45 -0
  1548. package/templates/artifacts/existing-system//346/224/271/351/200/240/345/275/261/345/223/215/350/214/203/345/233/264/350/257/204/344/274/260/346/250/241/347/211/210.md +53 -0
  1549. package/templates/artifacts/existing-system//346/225/260/346/215/256/350/241/200/347/274/230/345/233/276/346/250/241/347/211/210.md +47 -0
  1550. package/templates/artifacts/existing-system//346/226/260/350/200/201/351/200/273/350/276/221/346/257/224/345/257/271/346/227/245/345/277/227/346/250/241/347/211/210.md +34 -0
  1551. package/templates/artifacts/existing-system//347/264/247/346/200/245/345/233/236/346/273/232/346/211/213/345/206/214/346/250/241/347/211/210.md +75 -0
  1552. package/templates/artifacts/existing-system//351/232/224/347/246/273/351/200/202/351/205/215/345/231/250/346/226/271/346/241/210/346/250/241/347/211/210.md +42 -0
  1553. package/templates/artifacts/shared/ADR/346/250/241/347/211/210.md +54 -0
  1554. package/templates/artifacts/shared/API/346/216/245/345/217/243/350/247/204/346/240/274/346/226/207/346/241/243/346/250/241/347/211/210.md +105 -0
  1555. package/templates/artifacts/shared/Bug/345/210/206/346/236/220/346/250/241/347/211/210.md +60 -0
  1556. package/templates/artifacts/shared/OOD/350/256/276/350/256/241/346/221/230/350/246/201/346/250/241/347/211/210.md +51 -0
  1557. package/templates/artifacts/shared/POC/347/273/223/350/256/272/346/250/241/347/211/210.md +54 -0
  1558. package/templates/artifacts/shared//344/273/243/347/240/201/345/256/241/346/237/245/346/212/245/345/221/212/346/250/241/347/211/210.md +71 -0
  1559. package/templates/artifacts/shared//344/273/243/347/240/201/346/263/250/351/207/212/344/270/216/346/227/245/345/277/227/351/252/214/346/224/266/346/250/241/347/211/210.md +68 -0
  1560. package/templates/artifacts/shared//345/210/207/347/211/207/350/256/241/345/210/222/346/250/241/347/211/210.md +150 -0
  1561. package/templates/artifacts/shared//345/211/215/347/253/257/351/241/265/351/235/242/351/252/214/346/224/266/346/270/205/345/215/225.md +41 -0
  1562. package/templates/artifacts/shared//345/216/237/345/236/213/350/257/264/346/230/216/346/250/241/347/211/210.md +203 -0
  1563. package/templates/artifacts/shared//345/220/216/347/253/257API/351/252/214/346/224/266/346/270/205/345/215/225.md +40 -0
  1564. package/templates/artifacts/shared//345/220/216/347/253/257/345/256/236/347/216/260/351/252/214/346/224/266/346/270/205/345/215/225.md +44 -0
  1565. package/templates/artifacts/shared//345/256/211/345/205/250/345/256/241/350/256/241/346/250/241/347/211/210.md +49 -0
  1566. package/templates/artifacts/shared//345/256/241/346/237/245/346/221/230/350/246/201.md +58 -0
  1567. package/templates/artifacts/shared//346/200/247/350/203/275/345/210/206/346/236/220/346/250/241/347/211/210.md +60 -0
  1568. package/templates/artifacts/shared//346/212/200/346/234/257/351/200/211/345/236/213/351/252/214/346/224/266/346/270/205/345/215/225.md +34 -0
  1569. package/templates/artifacts/shared//346/216/245/345/217/243/345/257/271/346/216/245/346/226/271/346/241/210/346/250/241/347/211/210.md +101 -0
  1570. package/templates/artifacts/shared//346/225/205/351/232/234/345/244/215/347/233/230/346/250/241/347/211/210.md +68 -0
  1571. package/templates/artifacts/shared//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/346/226/271/346/241/210/346/250/241/347/211/210.md +79 -0
  1572. package/templates/artifacts/shared//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/351/252/214/346/224/266/346/270/205/345/215/225.md +38 -0
  1573. package/templates/artifacts/shared//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/346/226/207/346/241/243/346/250/241/347/211/210.md +164 -0
  1574. package/templates/artifacts/shared//346/236/266/346/236/204/350/256/276/350/256/241/346/250/241/347/211/210.md +177 -0
  1575. package/templates/artifacts/shared//346/265/213/350/257/225/350/256/241/345/210/222/346/250/241/347/211/210.md +71 -0
  1576. package/templates/artifacts/shared//350/256/276/350/256/241/344/270/200/350/207/264/346/200/247/351/252/214/346/224/266/346/212/245/345/221/212/346/250/241/347/211/210.md +42 -0
  1577. package/templates/artifacts/shared//350/257/246/347/273/206/350/256/276/350/256/241/346/250/241/347/211/210.md +115 -0
  1578. package/templates/artifacts/shared//350/277/201/347/247/273/350/257/204/344/274/260/346/250/241/347/211/210.md +68 -0
  1579. package/templates/artifacts/shared//351/200/232/347/224/250/350/264/250/351/207/217/351/252/214/346/224/266/346/270/205/345/215/225.md +177 -0
  1580. package/templates/artifacts/shared//351/207/215/346/236/204/346/226/271/346/241/210/346/250/241/347/211/210.md +62 -0
  1581. package/templates/artifacts/shared//351/234/200/346/261/202/345/210/206/346/236/220/346/250/241/347/211/210.md +126 -0
  1582. package/templates/artifacts/shared//351/234/200/346/261/202/345/216/237/345/236/213/350/256/276/350/256/241/345/256/236/347/216/260/350/277/275/350/270/252/347/237/251/351/230/265/346/250/241/347/211/210.md +91 -0
  1583. package/templates/checklists//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/346/224/266/346/270/205/345/215/225.md +35 -0
  1584. package/templates/checklists//344/274/232/350/257/235/346/201/242/345/244/215.md +42 -0
  1585. package/templates/checklists//345/267/245/344/275/234/346/265/201/351/252/214/346/224/266/346/270/205/345/215/225.md +36 -0
  1586. package/templates/checklists//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214/351/252/214/346/224/266/346/270/205/345/215/225.md +62 -0
  1587. package/templates/checklists//347/237/245/350/257/206/346/263/250/345/205/245/351/252/214/346/224/266/346/270/205/345/215/225.md +36 -0
  1588. package/templates/checklists//351/232/220/347/247/201/345/256/241/346/237/245/346/270/205/345/215/225.md +34 -0
  1589. package/templates/checklists//351/252/214/350/257/201/351/252/214/346/224/266/346/270/205/345/215/225.md +35 -0
  1590. package/templates/domain//345/244/232/347/247/237/346/210/267.md +47 -0
  1591. package/templates/domain//345/256/241/350/256/241/346/227/245/345/277/227.md +45 -0
  1592. package/templates/domain//345/257/274/345/205/245/345/257/274/345/207/272/350/247/204/345/210/231.md +50 -0
  1593. package/templates/domain//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +49 -0
  1594. package/templates/domain//346/212/245/350/241/250/347/273/237/350/256/241.md +49 -0
  1595. package/templates/domain//346/224/257/344/273/230/350/247/204/345/210/231.md +50 -0
  1596. package/templates/domain//346/225/260/346/215/256/346/235/203/351/231/220.md +46 -0
  1597. package/templates/domain//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +46 -0
  1598. package/templates/domain//351/200/232/347/237/245/350/247/204/345/210/231.md +49 -0
  1599. package/templates/gates/existing-system/gate-/346/236/266/346/236/204/350/256/276/350/256/241.yaml +26 -0
  1600. package/templates/gates/existing-system/gate-/347/216/260/346/234/211/347/263/273/347/273/237/345/210/206/346/236/220.yaml +61 -0
  1601. package/templates/gates/existing-system/gate-/347/274/226/347/240/201/344/270/216/345/215/225/345/205/203/346/265/213/350/257/225.yaml +52 -0
  1602. package/templates/gates/existing-system/gate-/350/257/225/350/277/220/350/241/214.yaml +39 -0
  1603. package/templates/gates/existing-system/gate-/350/257/246/347/273/206/350/256/276/350/256/241.yaml +33 -0
  1604. package/templates/gates/shared/gate-/344/272/244/344/273/230.yaml +32 -0
  1605. package/templates/gates/shared/gate-/344/273/243/347/240/201/345/256/241/346/237/245.yaml +53 -0
  1606. package/templates/gates/shared/gate-/344/273/273/345/212/241/350/247/204/345/210/222.yaml +144 -0
  1607. package/templates/gates/shared/gate-/344/274/232/350/257/235/345/220/257/345/212/250.yaml +14 -0
  1608. package/templates/gates/shared/gate-/345/206/263/347/255/226/347/240/224/350/256/250.yaml +14 -0
  1609. package/templates/gates/shared/gate-/345/210/207/347/211/207/345/256/241/346/237/245.yaml +50 -0
  1610. package/templates/gates/shared/gate-/345/210/207/347/211/207/346/211/247/350/241/214.yaml +51 -0
  1611. package/templates/gates/shared/gate-/345/217/221/345/270/203/345/220/216/350/247/202/345/257/237.yaml +46 -0
  1612. package/templates/gates/shared/gate-/345/256/211/345/205/250/345/256/241/350/256/241.yaml +77 -0
  1613. package/templates/gates/shared/gate-/346/234/254/345/234/260/351/252/214/346/224/266.yaml +14 -0
  1614. package/templates/gates/shared/gate-/346/236/266/346/236/204/350/256/276/350/256/241.yaml +145 -0
  1615. package/templates/gates/shared/gate-/347/274/226/347/240/201/344/270/216/345/215/225/345/205/203/346/265/213/350/257/225.yaml +40 -0
  1616. package/templates/gates/shared/gate-/347/274/226/347/240/201/345/207/206/345/244/207.yaml +50 -0
  1617. package/templates/gates/shared/gate-/347/274/226/347/240/201/345/256/236/347/216/260.yaml +52 -0
  1618. package/templates/gates/shared/gate-/347/274/226/347/240/201/351/252/214/350/257/201.yaml +47 -0
  1619. package/templates/gates/shared/gate-/350/201/224/350/260/203/351/252/214/350/257/201.yaml +53 -0
  1620. package/templates/gates/shared/gate-/350/257/246/347/273/206/350/256/276/350/256/241.yaml +123 -0
  1621. package/templates/gates/shared/gate-/351/234/200/346/261/202/345/210/206/346/236/220.yaml +164 -0
  1622. package/templates/internal/patterns/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +53 -0
  1623. package/templates/internal/patterns/Hook/345/261/202/344/272/247/347/211/251/347/273/223/346/236/204/346/240/241/351/252/214.md +55 -0
  1624. package/templates/internal/patterns/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +52 -0
  1625. package/templates/internal/patterns/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +52 -0
  1626. package/templates/internal/patterns//344/272/247/347/211/251Schema/346/263/250/345/206/214/344/270/255/345/277/203.md +55 -0
  1627. package/templates/internal/patterns//344/273/273/345/212/241/344/270/212/344/270/213/346/226/207/347/224/237/345/221/275/345/221/250/346/234/237.md +53 -0
  1628. package/templates/internal/patterns//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +53 -0
  1629. package/templates/internal/patterns//344/275/234/347/224/250/345/237/237/344/270/216/345/257/206/351/222/245/346/213/246/346/210/252.md +52 -0
  1630. package/templates/internal/patterns//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +53 -0
  1631. package/templates/internal/patterns//345/206/262/347/252/201/351/227/250/347/246/201.md +53 -0
  1632. package/templates/internal/patterns//345/206/263/347/255/226/347/275/221/345/205/263.md +59 -0
  1633. package/templates/internal/patterns//345/210/206/345/234/272/346/231/257/350/277/207/347/250/213/350/247/204/345/210/231.md +55 -0
  1634. package/templates/internal/patterns//345/217/230/345/274/202/345/256/241/350/256/241.md +56 -0
  1635. package/templates/internal/patterns//345/233/236/345/275/222/347/237/251/351/230/265.md +52 -0
  1636. package/templates/internal/patterns//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +50 -0
  1637. package/templates/internal/patterns//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +52 -0
  1638. package/templates/internal/patterns//345/271/266/345/217/221/351/224/201.md +55 -0
  1639. package/templates/internal/patterns//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +65 -0
  1640. package/templates/internal/patterns//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +51 -0
  1641. package/templates/internal/patterns//346/250/241/347/211/210Frontmatter/350/247/243/346/236/220.md +55 -0
  1642. package/templates/internal/patterns//346/262/273/347/220/206/350/277/220/350/241/214/346/227/266/345/276/252/347/216/257.md +54 -0
  1643. package/templates/internal/patterns//346/265/201/345/274/217/345/277/203/350/267/263.md +62 -0
  1644. package/templates/internal/patterns//347/237/245/350/257/206/344/270/273/346/235/203.md +64 -0
  1645. package/templates/internal/patterns//350/257/255/344/271/211/350/257/201/346/215/256.md +53 -0
  1646. package/templates/internal/patterns//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +56 -0
  1647. package/templates/internal/patterns//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +53 -0
  1648. package/templates/internal/rules/OOD/344/270/216SOLID/350/256/276/350/256/241/350/247/204/345/210/231.md +47 -0
  1649. package/templates/internal/rules//344/272/247/347/211/251/345/245/221/347/272/246/350/247/204/345/210/231.md +48 -0
  1650. package/templates/internal/rules//344/273/243/347/240/201/346/263/250/351/207/212/344/270/216/346/227/245/345/277/227/345/245/221/347/272/246/350/247/204/345/210/231.md +122 -0
  1651. package/templates/internal/rules//344/273/273/345/212/241/344/270/212/344/270/213/346/226/207/347/224/237/345/221/275/345/221/250/346/234/237/350/247/204/345/210/231.md +56 -0
  1652. package/templates/internal/rules//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/245/221/347/272/246/350/247/204/345/210/231.md +40 -0
  1653. package/templates/internal/rules//345/221/275/344/273/244/346/211/247/350/241/214/350/247/204/345/210/231.md +52 -0
  1654. package/templates/internal/rules//345/221/275/344/273/244/350/267/257/347/224/261/350/247/204/345/210/231.md +30 -0
  1655. package/templates/internal/rules//345/267/245/344/275/234/346/265/201/345/245/221/347/272/246/350/247/204/345/210/231.md +47 -0
  1656. package/templates/internal/rules//345/267/245/344/275/234/346/265/201/345/257/274/350/210/252/345/245/221/347/272/246/350/247/204/345/210/231.md +131 -0
  1657. package/templates/internal/rules//345/267/245/344/275/234/346/265/201/346/250/241/347/211/210/345/214/205/350/247/204/345/210/231.md +40 -0
  1658. package/templates/internal/rules//345/267/245/345/205/267/350/260/203/347/224/250/350/247/204/345/210/231.md +52 -0
  1659. package/templates/internal/rules//346/204/217/345/233/276/350/267/257/347/224/261/350/247/204/345/210/231.md +55 -0
  1660. package/templates/internal/rules//346/211/247/350/241/214/345/256/210/345/215/253/350/257/204/344/274/260/350/247/204/345/210/231.md +51 -0
  1661. package/templates/internal/rules//346/211/251/345/261/225/347/224/237/345/221/275/345/221/250/346/234/237/350/247/204/345/210/231.md +40 -0
  1662. package/templates/internal/rules//346/212/200/346/234/257/345/206/263/347/255/226/344/270/273/346/235/203/350/247/204/345/210/231.md +54 -0
  1663. package/templates/internal/rules//346/225/217/346/204/237/344/277/241/346/201/257/345/244/204/347/220/206/350/247/204/345/210/231.md +75 -0
  1664. package/templates/internal/rules//346/226/275/345/267/245/346/214/207/344/273/244/345/245/221/347/272/246/350/247/204/345/210/231.md +69 -0
  1665. package/templates/internal/rules//346/227/245/345/277/227/346/262/273/347/220/206/350/247/204/345/210/231.md +36 -0
  1666. package/templates/internal/rules//346/234/272/345/210/266/350/207/252/346/262/273/347/220/206/350/247/204/345/210/231.md +35 -0
  1667. package/templates/internal/rules//346/236/266/346/236/204/345/206/263/347/255/226/347/240/224/350/256/250/350/247/204/345/210/231.md +44 -0
  1668. package/templates/internal/rules//346/240/207/345/207/206/350/265/204/344/272/247/350/246/206/347/233/226/350/247/204/345/210/231.md +59 -0
  1669. package/templates/internal/rules//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +38 -0
  1670. package/templates/internal/rules//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214/345/216/237/345/210/231.md +151 -0
  1671. package/templates/internal/rules//346/250/241/347/211/210Frontmatter/350/247/204/350/214/203.md +301 -0
  1672. package/templates/internal/rules//346/250/241/347/211/210/350/265/204/344/272/247/345/217/257/350/247/201/346/200/247/350/247/204/345/210/231.md +57 -0
  1673. package/templates/internal/rules//346/263/250/345/206/214/350/241/250/345/237/272/347/241/200/350/256/276/346/226/275/350/247/204/345/210/231.md +53 -0
  1674. package/templates/internal/rules//346/274/224/350/277/233/345/233/236/345/275/222/351/227/250/346/216/247/350/247/204/345/210/231.md +63 -0
  1675. package/templates/internal/rules//347/224/250/346/210/267/345/217/215/351/246/210/345/245/221/347/272/246/350/247/204/345/210/231.md +99 -0
  1676. package/templates/internal/rules//347/237/245/350/257/206/346/262/273/347/220/206/350/247/204/345/210/231.md +36 -0
  1677. package/templates/internal/rules//347/237/245/350/257/206/346/263/250/345/205/245/350/276/271/347/225/214/350/247/204/345/210/231.md +52 -0
  1678. package/templates/internal/rules//347/237/245/350/257/206/350/265/204/344/272/247/346/262/273/347/220/206/350/247/204/345/210/231.md +45 -0
  1679. package/templates/internal/rules//347/254/254/344/270/200/346/200/247/345/216/237/347/220/206/346/216/250/347/220/206/350/247/204/345/210/231.md +63 -0
  1680. package/templates/internal/rules//347/273/206/350/212/202/347/272/252/345/276/213/350/247/204/345/210/231.md +57 -0
  1681. package/templates/internal/rules//350/204/221/346/232/264/344/270/216/346/226/271/346/241/210/346/216/242/347/264/242/350/247/204/345/210/231.md +56 -0
  1682. package/templates/internal/rules//350/256/241/345/210/222/345/211/215/347/275/256/351/227/250/350/247/204/345/210/231.md +41 -0
  1683. package/templates/internal/rules//350/256/276/350/256/241/344/272/247/347/211/251/345/214/205/350/247/204/345/210/231.md +66 -0
  1684. package/templates/internal/rules//350/257/201/346/215/256/351/251/261/345/212/250/344/270/216/345/217/215/345/271/273/350/247/211/350/247/204/345/210/231.md +63 -0
  1685. package/templates/internal/rules//350/267/250/345/271/263/345/217/260/350/267/257/345/276/204/345/256/211/345/205/250/350/247/204/345/210/231.md +40 -0
  1686. package/templates/internal/rules//350/276/223/345/205/245/346/235/220/346/226/231/345/245/221/347/272/246/350/247/204/345/210/231.md +54 -0
  1687. package/templates/internal/rules//351/200/232/347/224/250/345/206/263/347/255/226/347/240/224/350/256/250/350/247/204/345/210/231.md +59 -0
  1688. package/templates/internal/rules//351/205/215/347/275/256/344/274/230/345/205/210/347/272/247/350/247/204/345/210/231.md +68 -0
  1689. package/templates/internal/rules//351/205/215/347/275/256/350/220/275/347/233/230/350/276/271/347/225/214/350/247/204/345/210/231.md +37 -0
  1690. package/templates/internal/rules//351/230/262/345/255/244/345/262/233/345/256/236/347/216/260/350/247/204/345/210/231.md +51 -0
  1691. package/templates/internal/rules//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226/350/247/204/345/210/231.md +58 -0
  1692. package/templates/internal/rules//351/252/214/346/224/266/346/250/241/347/211/210/350/276/223/345/207/272/345/245/221/347/272/246/350/247/204/345/210/231.md +80 -0
  1693. package/templates/internal/rules//351/252/214/350/257/201/345/245/221/347/272/246/350/247/204/345/210/231.md +52 -0
  1694. package/templates/patterns/API/350/256/276/350/256/241/350/247/204/350/214/203.md +5 -20
  1695. package/templates/patterns/Docker/351/203/250/347/275/262/350/247/204/350/214/203.md +5 -18
  1696. package/templates/patterns/Git/346/223/215/344/275/234/350/247/204/350/214/203.md +5 -22
  1697. package/templates/patterns/N/345/212/2401/346/237/245/350/257/242/350/247/204/350/214/203.md +5 -21
  1698. package/templates/patterns/React/345/210/227/350/241/250/350/241/250/346/240/274/350/247/204/350/214/203.md +6 -21
  1699. package/templates/patterns/React/346/216/245/345/217/243/351/233/206/346/210/220/350/247/204/350/214/203.md +5 -21
  1700. package/templates/patterns/React/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +5 -21
  1701. package/templates/patterns/React/347/273/204/344/273/266/350/247/204/350/214/203.md +5 -20
  1702. package/templates/patterns/React/350/241/250/345/215/225/350/247/204/350/214/203.md +5 -20
  1703. package/templates/patterns/React/350/267/257/347/224/261/350/247/204/350/214/203.md +5 -21
  1704. package/templates/patterns/SOLID/350/256/276/350/256/241/350/247/204/350/214/203.md +4 -13
  1705. package/templates/patterns/Schema/345/205/274/345/256/271/350/247/204/350/214/203.md +5 -20
  1706. package/templates/patterns/Vue/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +5 -19
  1707. package/templates/patterns/Vue/347/273/204/344/273/266/350/247/204/350/214/203.md +5 -23
  1708. package/templates/patterns/Vue/350/267/257/347/224/261/350/247/204/350/214/203.md +5 -18
  1709. package/templates/patterns//344/272/213/344/273/266/351/251/261/345/212/250/350/247/204/350/214/203.md +5 -22
  1710. package/templates/patterns//344/272/213/345/212/241/346/250/241/345/274/217/350/247/204/350/214/203.md +5 -21
  1711. package/templates/patterns//344/274/230/351/233/205/345/201/234/346/234/272/350/247/204/350/214/203.md +5 -21
  1712. package/templates/patterns//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +5 -19
  1713. package/templates/patterns//345/210/206/351/241/265/346/237/245/350/257/242/350/247/204/350/214/203.md +5 -24
  1714. package/templates/patterns//345/211/215/347/253/257/346/200/247/350/203/275/350/247/204/350/214/203.md +5 -22
  1715. package/templates/patterns//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/350/247/204/350/214/203.md +4 -13
  1716. package/templates/patterns//345/221/275/345/220/215/350/247/204/350/214/203.md +5 -19
  1717. package/templates/patterns//345/233/275/351/231/205/345/214/226/350/247/204/350/214/203.md +6 -22
  1718. package/templates/patterns//345/242/236/345/210/240/346/224/271/346/237/245/350/247/204/350/214/203.md +5 -21
  1719. package/templates/patterns//345/244/226/351/203/250/344/276/235/350/265/226/350/247/204/350/214/203.md +5 -21
  1720. package/templates/patterns//345/245/221/347/272/246/345/205/274/345/256/271/350/247/204/350/214/203.md +5 -18
  1721. package/templates/patterns//345/256/232/346/227/266/344/273/273/345/212/241/350/247/204/350/214/203.md +5 -22
  1722. package/templates/patterns//345/256/236/346/227/266/346/216/250/351/200/201/350/247/204/350/214/203.md +5 -20
  1723. package/templates/patterns//345/267/245/347/250/213/347/272/252/345/276/213.md +5 -19
  1724. package/templates/patterns//345/271/266/345/217/221/346/216/247/345/210/266/350/247/204/350/214/203.md +5 -24
  1725. package/templates/patterns//345/274/202/346/255/245/345/257/274/345/207/272/350/247/204/350/214/203.md +5 -21
  1726. package/templates/patterns//346/216/245/345/217/243/345/245/221/347/272/246/350/247/204/350/214/203.md +5 -19
  1727. package/templates/patterns//346/220/234/347/264/242/346/250/241/345/274/217/350/247/204/350/214/203.md +5 -22
  1728. package/templates/patterns//346/225/260/346/215/256/351/232/220/347/247/201/350/247/204/350/214/203.md +6 -24
  1729. package/templates/patterns//346/226/207/344/273/266/344/270/212/344/274/240/350/247/204/350/214/203.md +5 -20
  1730. package/templates/patterns//346/227/240/351/232/234/347/242/215/350/247/204/350/214/203.md +5 -20
  1731. package/templates/patterns//346/227/245/345/277/227/350/247/204/350/214/203.md +5 -21
  1732. package/templates/patterns//346/235/203/351/231/220/350/256/244/350/257/201/350/247/204/350/214/203.md +5 -24
  1733. package/templates/patterns//346/236/266/346/236/204/347/272/242/347/272/277.md +5 -18
  1734. package/templates/patterns//346/265/213/350/257/225/350/264/250/351/207/217/350/247/204/350/214/203.md +5 -19
  1735. package/templates/patterns//347/206/224/346/226/255/351/231/215/347/272/247/350/247/204/350/214/203.md +5 -22
  1736. package/templates/patterns//347/212/266/346/200/201/346/265/201/350/275/254/350/247/204/350/214/203.md +5 -19
  1737. package/templates/patterns//347/272/246/346/235/237/345/256/236/347/216/260/350/247/204/350/214/203.md +5 -21
  1738. package/templates/patterns//347/274/223/345/255/230/347/255/226/347/225/245/350/247/204/350/214/203.md +5 -21
  1739. package/templates/patterns//347/274/226/347/240/201/350/264/250/351/207/217/350/247/204/350/214/203.md +5 -19
  1740. package/templates/patterns//347/274/272/351/231/267/347/256/241/347/220/206/350/247/204/350/214/203.md +6 -19
  1741. package/templates/patterns//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +5 -19
  1742. package/templates/patterns//350/276/223/345/205/245/346/240/241/351/252/214/350/247/204/350/214/203.md +5 -21
  1743. package/templates/patterns//351/224/231/350/257/257/345/244/204/347/220/206/350/247/204/350/214/203.md +5 -21
  1744. package/templates/patterns//351/224/231/350/257/257/350/276/271/347/225/214/350/247/204/350/214/203.md +5 -23
  1745. package/templates/patterns//351/242/206/345/237/237/351/251/261/345/212/250/350/256/276/350/256/241/350/247/204/350/214/203.md +5 -20
  1746. package/templates/procedures/OOD/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +71 -0
  1747. package/templates/procedures/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +46 -0
  1748. package/templates/procedures//344/270/215/347/241/256/345/256/232/346/227/266/345/244/264/350/204/221/351/243/216/346/232/264/346/265/201/347/250/213.md +92 -0
  1749. package/templates/procedures//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/350/257/201/346/265/201/347/250/213.md +52 -0
  1750. package/templates/procedures//344/273/243/347/240/201/351/227/250/347/246/201/346/265/201/347/250/213.md +51 -0
  1751. package/templates/procedures//344/273/273/345/212/241/346/213/206/350/247/243/346/265/201/347/250/213.md +56 -0
  1752. package/templates/procedures//344/273/273/345/212/241/350/247/204/345/210/222/345/267/245/344/275/234/346/265/201.md +83 -0
  1753. package/templates/procedures//344/274/232/350/257/235/346/201/242/345/244/215/346/265/201/347/250/213.md +74 -0
  1754. package/templates/procedures//345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201/345/257/274/350/210/252.md +114 -0
  1755. package/templates/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +59 -0
  1756. package/templates/procedures//345/220/216/347/253/257/346/216/245/345/217/243/345/256/236/347/216/260/345/267/245/344/275/234/346/265/201.md +40 -0
  1757. package/templates/procedures//345/221/275/344/273/244/346/211/247/350/241/214/346/265/201/347/250/213.md +45 -0
  1758. package/templates/procedures//345/221/275/344/273/244/350/267/257/347/224/261/346/265/201/347/250/213.md +32 -0
  1759. package/templates/procedures//345/256/211/345/205/250/345/212/240/345/233/272/346/265/201/346/260/264/347/272/277.md +62 -0
  1760. package/templates/procedures//345/267/245/345/205/267/350/260/203/347/224/250/346/265/201/347/250/213.md +41 -0
  1761. package/templates/procedures//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +46 -0
  1762. package/templates/procedures//346/204/217/345/233/276/350/267/257/347/224/261/346/265/201/347/250/213.md +42 -0
  1763. package/templates/procedures//346/216/245/345/217/243/351/233/206/346/210/220/346/265/201/346/260/264/347/272/277.md +71 -0
  1764. package/templates/procedures//346/225/260/346/215/256/345/272/223/350/277/201/347/247/273/346/265/201/347/250/213.md +56 -0
  1765. package/templates/procedures//346/234/254/345/234/260/346/265/217/350/247/210/345/231/250/351/252/214/346/224/266/345/267/245/344/275/234/346/265/201.md +90 -0
  1766. package/templates/procedures//346/236/266/346/236/204/345/206/263/347/255/226/347/240/224/350/256/250/345/267/245/344/275/234/346/265/201.md +50 -0
  1767. package/templates/procedures//346/236/266/346/236/204/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +115 -0
  1768. package/templates/procedures//346/246/202/345/277/265/351/252/214/350/257/201/346/265/201/346/260/264/347/272/277.md +45 -0
  1769. package/templates/procedures//346/265/213/350/257/225/344/274/230/345/205/210/347/274/226/347/240/201/345/267/245/344/275/234/346/265/201.md +96 -0
  1770. package/templates/procedures//346/272/220/347/240/201/345/216/237/345/236/213/344/272/244/344/273/230/346/265/201/347/250/213.md +56 -0
  1771. package/templates/procedures//347/216/260/346/234/211/347/263/273/347/273/237/345/267/256/350/267/235/345/210/206/346/236/220/345/267/245/344/275/234/346/265/201.md +116 -0
  1772. package/templates/procedures//347/237/245/350/257/206/347/273/264/346/212/244/346/265/201/346/260/264/347/272/277.md +58 -0
  1773. package/templates/procedures//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +64 -0
  1774. package/templates/procedures//347/274/226/347/240/201/345/211/215/346/276/204/346/270/205/346/265/201/347/250/213.md +83 -0
  1775. package/templates/procedures//347/274/226/347/240/201/351/230/266/346/256/265/346/211/247/350/241/214/345/267/245/344/275/234/346/265/201.md +101 -0
  1776. package/templates/procedures//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md +53 -0
  1777. package/templates/procedures//350/256/276/350/256/241/344/272/247/347/211/251/347/224/237/346/210/220/344/270/216/345/244/215/351/252/214/345/267/245/344/275/234/346/265/201.md +62 -0
  1778. package/templates/procedures//350/256/276/350/256/241/345/256/241/350/256/241/346/265/201/347/250/213.md +180 -0
  1779. package/templates/procedures//350/257/246/347/273/206/350/256/276/350/256/241/346/265/201/347/250/213.md +135 -0
  1780. package/templates/procedures//350/260/203/350/257/225/346/216/222/346/237/245/346/265/201/347/250/213.md +90 -0
  1781. package/templates/procedures//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +46 -0
  1782. package/templates/procedures//351/203/250/347/275/262/345/217/221/345/270/203/346/265/201/347/250/213.md +95 -0
  1783. package/templates/procedures//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +46 -0
  1784. package/templates/procedures//351/233/206/346/210/220/351/252/214/350/257/201/346/265/201/347/250/213.md +60 -0
  1785. package/templates/procedures//351/234/200/346/261/202/346/276/204/346/270/205/346/265/201/347/250/213.md +63 -0
  1786. package/templates/procedures//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +63 -0
  1787. package/templates/rules/existing-system//345/205/274/345/256/271/346/200/247/346/243/200/346/237/245/350/247/204/345/210/231.md +77 -0
  1788. package/templates/rules/existing-system//350/200/201/347/263/273/347/273/237/345/210/207/347/211/207/350/247/204/345/210/222/350/247/204/345/210/231.md +35 -0
  1789. package/templates/rules/existing-system//350/200/246/345/220/210/346/243/200/346/265/213/350/247/204/345/210/231.md +73 -0
  1790. package/templates/rules/existing-system//350/257/225/350/277/220/350/241/214/347/206/224/346/226/255/350/247/204/345/210/231.md +65 -0
  1791. package/templates/rules/existing-system//351/230/262/345/276/241/346/200/247/347/274/226/347/240/201/350/247/204/345/210/231.md +81 -0
  1792. package/templates/rules/existing-system//351/233/267/345/214/272/345/217/215/346/250/241/345/274/217/346/270/205/345/215/225.md +121 -0
  1793. package/templates/rules/new-system//350/201/224/350/260/203/350/256/276/350/256/241/347/274/272/351/231/267/345/210/244/345/256/232/350/247/204/345/210/231.md +58 -0
  1794. package/templates/rules/shared/SOLID/344/273/243/347/240/201/345/256/241/346/237/245/350/247/204/345/210/231.md +67 -0
  1795. package/templates/rules/shared//344/270/200/350/207/264/346/200/247/346/240/241/351/252/214/350/247/204/345/210/231.md +96 -0
  1796. package/templates/rules/shared//344/270/212/346/270/270/344/272/244/345/217/211/351/252/214/350/257/201/350/247/204/345/210/231.md +56 -0
  1797. package/templates/rules/shared//344/270/212/346/270/270/350/256/276/350/256/241/344/272/244/345/217/211/351/252/214/350/257/201/345/256/241/346/237/245/350/247/204/345/210/231.md +67 -0
  1798. package/templates/rules/shared//344/272/244/344/273/230/345/256/214/345/244/207/346/200/247/345/256/241/346/237/245/350/247/204/345/210/231.md +106 -0
  1799. package/templates/rules/shared//344/273/243/347/240/201/345/217/257/347/273/264/346/212/244/346/200/247/344/270/216/345/217/257/350/247/202/346/265/213/346/200/247/345/256/241/346/237/245.md +66 -0
  1800. package/templates/rules/shared//345/206/263/347/255/226/345/256/214/346/225/264/346/200/247/345/256/241/346/237/245/350/247/204/345/210/231.md +63 -0
  1801. package/templates/rules/shared//345/210/207/347/211/207/346/211/247/350/241/214/347/272/252/345/276/213/350/247/204/345/210/231.md +96 -0
  1802. package/templates/rules/shared//345/210/207/347/211/207/350/247/204/345/210/222/350/247/204/345/210/231.md +64 -0
  1803. package/templates/rules/shared//345/216/237/345/236/213/346/272/220/347/240/201/346/217/220/345/217/226/350/247/204/345/210/231.md +67 -0
  1804. package/templates/rules/shared//345/216/237/345/236/213/350/257/264/346/230/216/345/256/241/346/237/245/350/247/204/345/210/231.md +73 -0
  1805. package/templates/rules/shared//345/217/221/345/270/203/345/220/216/345/256/241/346/237/245/350/247/204/345/210/231.md +65 -0
  1806. package/templates/rules/shared//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/256/241/346/237/245/350/247/204/345/210/231.md +63 -0
  1807. package/templates/rules/shared//345/256/211/345/205/250/345/256/241/346/237/245/350/247/204/345/210/231.md +132 -0
  1808. package/templates/rules/shared//345/271/266/345/217/221/345/256/241/346/237/245/350/247/204/345/210/231.md +112 -0
  1809. package/templates/rules/shared//346/200/247/350/203/275/345/256/241/346/237/245/350/247/204/345/210/231.md +100 -0
  1810. package/templates/rules/shared//346/216/245/345/217/243/345/245/221/347/272/246/345/256/241/346/237/245/350/247/204/345/210/231.md +112 -0
  1811. package/templates/rules/shared//346/236/266/346/236/204/345/256/241/346/237/245/350/247/204/345/210/231.md +99 -0
  1812. package/templates/rules/shared//346/236/266/346/236/204/350/256/276/350/256/241/345/256/241/346/237/245/350/247/204/345/210/231.md +102 -0
  1813. package/templates/rules/shared//346/236/266/346/236/204/350/256/276/350/256/241/350/247/204/345/210/231.md +64 -0
  1814. package/templates/rules/shared//347/213/254/347/253/213/345/256/241/346/237/245/350/247/204/345/210/231.md +33 -0
  1815. package/templates/rules/shared//347/254/254/344/270/200/346/200/247/345/216/237/347/220/206/346/216/250/347/220/206/350/247/204/345/210/231.md +171 -0
  1816. package/templates/rules/shared//347/274/226/347/240/201/345/260/261/347/273/252/345/256/241/346/237/245/350/247/204/345/210/231.md +52 -0
  1817. package/templates/rules/shared//350/201/224/350/260/203/351/252/214/350/257/201/346/270/205/345/215/225.md +76 -0
  1818. package/templates/rules/shared//350/246/206/347/233/226/347/216/207/346/240/207/345/207/206.md +27 -0
  1819. package/templates/rules/shared//350/257/246/347/273/206/350/256/276/350/256/241/345/256/241/346/237/245/350/247/204/345/210/231.md +82 -0
  1820. package/templates/rules/shared//350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +102 -0
  1821. package/templates/rules/shared//350/277/275/350/270/252/347/237/251/351/230/265ID/350/247/204/345/210/231.md +48 -0
  1822. package/templates/rules/shared//350/277/275/350/270/252/347/237/251/351/230/265/345/256/241/346/237/245/350/247/204/345/210/231.md +51 -0
  1823. package/templates/rules/shared//351/234/200/346/261/202/350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +80 -0
  1824. package/templates/rules/shared//351/252/214/346/224/266/346/240/207/345/207/206/345/256/241/346/237/245/350/247/204/345/210/231.md +56 -0
  1825. package/templates/scaffolds/react/ErrorBoundary.tsx.hbs +49 -0
  1826. package/templates/scaffolds/react/Layout.tsx.hbs +20 -0
  1827. package/templates/scaffolds/spring-boot/ControllerTest.java.hbs +36 -0
  1828. package/templates/scaffolds/spring-boot/Mapper.xml.hbs +29 -0
  1829. package/templates//346/250/241/347/211/210/350/264/241/347/214/256/346/214/207/345/215/227.md +147 -0
  1830. package/dist/adapters/claude_code/pre_prompt_contract.d.ts +0 -64
  1831. package/dist/adapters/claude_code/pre_prompt_contract.d.ts.map +0 -1
  1832. package/dist/adapters/claude_code/pre_prompt_contract.js +0 -116
  1833. package/dist/adapters/claude_code/pre_prompt_contract.js.map +0 -1
  1834. package/dist/adapters/claude_code/server.d.ts +0 -26
  1835. package/dist/adapters/claude_code/server.d.ts.map +0 -1
  1836. package/dist/adapters/claude_code/server.js +0 -59
  1837. package/dist/adapters/claude_code/server.js.map +0 -1
  1838. package/dist/engine/architecture_decision_workshop.d.ts +0 -58
  1839. package/dist/engine/architecture_decision_workshop.d.ts.map +0 -1
  1840. package/dist/engine/architecture_decision_workshop.js +0 -118
  1841. package/dist/engine/architecture_decision_workshop.js.map +0 -1
  1842. package/dist/engine/architecture_design_contract.d.ts.map +0 -1
  1843. package/dist/engine/architecture_design_contract.js.map +0 -1
  1844. package/dist/engine/artifact_contract_registry.d.ts +0 -138
  1845. package/dist/engine/artifact_contract_registry.d.ts.map +0 -1
  1846. package/dist/engine/artifact_contract_registry.js +0 -420
  1847. package/dist/engine/artifact_contract_registry.js.map +0 -1
  1848. package/dist/engine/asset_manifest.d.ts +0 -67
  1849. package/dist/engine/asset_manifest.d.ts.map +0 -1
  1850. package/dist/engine/asset_manifest.js +0 -301
  1851. package/dist/engine/asset_manifest.js.map +0 -1
  1852. package/dist/engine/audit_pool.d.ts.map +0 -1
  1853. package/dist/engine/audit_pool.js +0 -120
  1854. package/dist/engine/audit_pool.js.map +0 -1
  1855. package/dist/engine/audit_sampler.d.ts +0 -20
  1856. package/dist/engine/audit_sampler.d.ts.map +0 -1
  1857. package/dist/engine/audit_sampler.js +0 -29
  1858. package/dist/engine/audit_sampler.js.map +0 -1
  1859. package/dist/engine/audit_verifier.d.ts +0 -52
  1860. package/dist/engine/audit_verifier.d.ts.map +0 -1
  1861. package/dist/engine/audit_verifier.js +0 -101
  1862. package/dist/engine/audit_verifier.js.map +0 -1
  1863. package/dist/engine/backend_implementation_contract.d.ts.map +0 -1
  1864. package/dist/engine/backend_implementation_contract.js +0 -164
  1865. package/dist/engine/backend_implementation_contract.js.map +0 -1
  1866. package/dist/engine/brainstorm_contract.d.ts +0 -48
  1867. package/dist/engine/brainstorm_contract.d.ts.map +0 -1
  1868. package/dist/engine/brainstorm_contract.js +0 -146
  1869. package/dist/engine/brainstorm_contract.js.map +0 -1
  1870. package/dist/engine/capability_action_advisor.d.ts.map +0 -1
  1871. package/dist/engine/capability_action_advisor.js +0 -158
  1872. package/dist/engine/capability_action_advisor.js.map +0 -1
  1873. package/dist/engine/capability_registry.d.ts.map +0 -1
  1874. package/dist/engine/capability_registry.js +0 -731
  1875. package/dist/engine/capability_registry.js.map +0 -1
  1876. package/dist/engine/capability_state_store.d.ts +0 -113
  1877. package/dist/engine/capability_state_store.d.ts.map +0 -1
  1878. package/dist/engine/capability_state_store.js +0 -172
  1879. package/dist/engine/capability_state_store.js.map +0 -1
  1880. package/dist/engine/chinese_semantic_priority.d.ts.map +0 -1
  1881. package/dist/engine/chinese_semantic_priority.js.map +0 -1
  1882. package/dist/engine/classifier.d.ts +0 -24
  1883. package/dist/engine/classifier.d.ts.map +0 -1
  1884. package/dist/engine/classifier.js +0 -209
  1885. package/dist/engine/classifier.js.map +0 -1
  1886. package/dist/engine/code_maintainability_observability_contract.d.ts.map +0 -1
  1887. package/dist/engine/code_maintainability_observability_contract.js +0 -711
  1888. package/dist/engine/code_maintainability_observability_contract.js.map +0 -1
  1889. package/dist/engine/code_reviewer.d.ts +0 -71
  1890. package/dist/engine/code_reviewer.d.ts.map +0 -1
  1891. package/dist/engine/code_reviewer.js +0 -643
  1892. package/dist/engine/code_reviewer.js.map +0 -1
  1893. package/dist/engine/coding_readiness_gate.d.ts +0 -46
  1894. package/dist/engine/coding_readiness_gate.d.ts.map +0 -1
  1895. package/dist/engine/coding_readiness_gate.js +0 -175
  1896. package/dist/engine/coding_readiness_gate.js.map +0 -1
  1897. package/dist/engine/command_execution_contract.d.ts +0 -226
  1898. package/dist/engine/command_execution_contract.d.ts.map +0 -1
  1899. package/dist/engine/command_execution_contract.js +0 -572
  1900. package/dist/engine/command_execution_contract.js.map +0 -1
  1901. package/dist/engine/confidence_scorer.d.ts +0 -32
  1902. package/dist/engine/confidence_scorer.d.ts.map +0 -1
  1903. package/dist/engine/confidence_scorer.js +0 -45
  1904. package/dist/engine/confidence_scorer.js.map +0 -1
  1905. package/dist/engine/config_auto_repair.d.ts +0 -29
  1906. package/dist/engine/config_auto_repair.d.ts.map +0 -1
  1907. package/dist/engine/config_auto_repair.js +0 -254
  1908. package/dist/engine/config_auto_repair.js.map +0 -1
  1909. package/dist/engine/config_precedence_contract.d.ts +0 -269
  1910. package/dist/engine/config_precedence_contract.d.ts.map +0 -1
  1911. package/dist/engine/config_precedence_contract.js +0 -949
  1912. package/dist/engine/config_precedence_contract.js.map +0 -1
  1913. package/dist/engine/config_write_boundary.d.ts.map +0 -1
  1914. package/dist/engine/config_write_boundary.js +0 -69
  1915. package/dist/engine/config_write_boundary.js.map +0 -1
  1916. package/dist/engine/conflict_gate.d.ts.map +0 -1
  1917. package/dist/engine/conflict_gate.js +0 -92
  1918. package/dist/engine/conflict_gate.js.map +0 -1
  1919. package/dist/engine/consumable_asset_registry.d.ts +0 -50
  1920. package/dist/engine/consumable_asset_registry.d.ts.map +0 -1
  1921. package/dist/engine/consumable_asset_registry.js +0 -1336
  1922. package/dist/engine/consumable_asset_registry.js.map +0 -1
  1923. package/dist/engine/consumption_trace_store.d.ts +0 -58
  1924. package/dist/engine/consumption_trace_store.d.ts.map +0 -1
  1925. package/dist/engine/consumption_trace_store.js +0 -91
  1926. package/dist/engine/consumption_trace_store.js.map +0 -1
  1927. package/dist/engine/contract_guard.d.ts +0 -37
  1928. package/dist/engine/contract_guard.d.ts.map +0 -1
  1929. package/dist/engine/contract_guard.js +0 -589
  1930. package/dist/engine/contract_guard.js.map +0 -1
  1931. package/dist/engine/contract_registry.d.ts +0 -113
  1932. package/dist/engine/contract_registry.d.ts.map +0 -1
  1933. package/dist/engine/contract_registry.js +0 -1632
  1934. package/dist/engine/contract_registry.js.map +0 -1
  1935. package/dist/engine/contract_state_store.d.ts +0 -67
  1936. package/dist/engine/contract_state_store.d.ts.map +0 -1
  1937. package/dist/engine/contract_state_store.js +0 -167
  1938. package/dist/engine/contract_state_store.js.map +0 -1
  1939. package/dist/engine/control_plane_contract.d.ts.map +0 -1
  1940. package/dist/engine/control_plane_contract.js +0 -247
  1941. package/dist/engine/control_plane_contract.js.map +0 -1
  1942. package/dist/engine/core_engineering_principles.d.ts +0 -155
  1943. package/dist/engine/core_engineering_principles.d.ts.map +0 -1
  1944. package/dist/engine/core_engineering_principles.js +0 -417
  1945. package/dist/engine/core_engineering_principles.js.map +0 -1
  1946. package/dist/engine/core_experience_principle.d.ts +0 -194
  1947. package/dist/engine/core_experience_principle.d.ts.map +0 -1
  1948. package/dist/engine/core_experience_principle.js +0 -349
  1949. package/dist/engine/core_experience_principle.js.map +0 -1
  1950. package/dist/engine/debt_reporter.d.ts +0 -9
  1951. package/dist/engine/debt_reporter.d.ts.map +0 -1
  1952. package/dist/engine/debt_reporter.js +0 -94
  1953. package/dist/engine/debt_reporter.js.map +0 -1
  1954. package/dist/engine/debt_tracker.d.ts +0 -72
  1955. package/dist/engine/debt_tracker.d.ts.map +0 -1
  1956. package/dist/engine/debt_tracker.js +0 -224
  1957. package/dist/engine/debt_tracker.js.map +0 -1
  1958. package/dist/engine/debug_log.d.ts +0 -5
  1959. package/dist/engine/debug_log.d.ts.map +0 -1
  1960. package/dist/engine/debug_log.js +0 -5
  1961. package/dist/engine/debug_log.js.map +0 -1
  1962. package/dist/engine/debugger.d.ts +0 -12
  1963. package/dist/engine/debugger.d.ts.map +0 -1
  1964. package/dist/engine/debugger.js +0 -415
  1965. package/dist/engine/debugger.js.map +0 -1
  1966. package/dist/engine/decision_contract.d.ts +0 -38
  1967. package/dist/engine/decision_contract.d.ts.map +0 -1
  1968. package/dist/engine/decision_contract.js +0 -57
  1969. package/dist/engine/decision_contract.js.map +0 -1
  1970. package/dist/engine/decision_workshop.d.ts +0 -168
  1971. package/dist/engine/decision_workshop.d.ts.map +0 -1
  1972. package/dist/engine/decision_workshop.js.map +0 -1
  1973. package/dist/engine/degradation.d.ts.map +0 -1
  1974. package/dist/engine/degradation.js.map +0 -1
  1975. package/dist/engine/delivery.d.ts +0 -49
  1976. package/dist/engine/delivery.d.ts.map +0 -1
  1977. package/dist/engine/delivery.js +0 -373
  1978. package/dist/engine/delivery.js.map +0 -1
  1979. package/dist/engine/delivery_readiness.d.ts +0 -70
  1980. package/dist/engine/delivery_readiness.d.ts.map +0 -1
  1981. package/dist/engine/delivery_readiness.js +0 -198
  1982. package/dist/engine/delivery_readiness.js.map +0 -1
  1983. package/dist/engine/deprecated_contract.d.ts +0 -21
  1984. package/dist/engine/deprecated_contract.d.ts.map +0 -1
  1985. package/dist/engine/deprecated_contract.js +0 -14
  1986. package/dist/engine/deprecated_contract.js.map +0 -1
  1987. package/dist/engine/design_artifact_pack.d.ts +0 -50
  1988. package/dist/engine/design_artifact_pack.d.ts.map +0 -1
  1989. package/dist/engine/design_artifact_pack.js.map +0 -1
  1990. package/dist/engine/design_lifecycle_contract.d.ts +0 -60
  1991. package/dist/engine/design_lifecycle_contract.d.ts.map +0 -1
  1992. package/dist/engine/design_lifecycle_contract.js +0 -499
  1993. package/dist/engine/design_lifecycle_contract.js.map +0 -1
  1994. package/dist/engine/detail_discipline.d.ts.map +0 -1
  1995. package/dist/engine/detail_discipline.js.map +0 -1
  1996. package/dist/engine/developer_sovereignty.d.ts +0 -62
  1997. package/dist/engine/developer_sovereignty.d.ts.map +0 -1
  1998. package/dist/engine/developer_sovereignty.js +0 -141
  1999. package/dist/engine/developer_sovereignty.js.map +0 -1
  2000. package/dist/engine/diagnostic_registry.d.ts.map +0 -1
  2001. package/dist/engine/diagnostic_registry.js +0 -268
  2002. package/dist/engine/diagnostic_registry.js.map +0 -1
  2003. package/dist/engine/diff_ownership.d.ts.map +0 -1
  2004. package/dist/engine/diff_ownership.js +0 -152
  2005. package/dist/engine/diff_ownership.js.map +0 -1
  2006. package/dist/engine/diff_ownership_store.d.ts.map +0 -1
  2007. package/dist/engine/diff_ownership_store.js +0 -291
  2008. package/dist/engine/diff_ownership_store.js.map +0 -1
  2009. package/dist/engine/documentation_governance.d.ts.map +0 -1
  2010. package/dist/engine/documentation_governance.js.map +0 -1
  2011. package/dist/engine/dual_layer_mechanism_registry.d.ts +0 -68
  2012. package/dist/engine/dual_layer_mechanism_registry.d.ts.map +0 -1
  2013. package/dist/engine/dual_layer_mechanism_registry.js +0 -2408
  2014. package/dist/engine/dual_layer_mechanism_registry.js.map +0 -1
  2015. package/dist/engine/enforcement_guard.d.ts +0 -84
  2016. package/dist/engine/enforcement_guard.d.ts.map +0 -1
  2017. package/dist/engine/enforcement_guard.js +0 -320
  2018. package/dist/engine/enforcement_guard.js.map +0 -1
  2019. package/dist/engine/escape_report.d.ts.map +0 -1
  2020. package/dist/engine/escape_report.js +0 -136
  2021. package/dist/engine/escape_report.js.map +0 -1
  2022. package/dist/engine/evidence_grounding_contract.d.ts +0 -137
  2023. package/dist/engine/evidence_grounding_contract.d.ts.map +0 -1
  2024. package/dist/engine/evidence_grounding_contract.js +0 -410
  2025. package/dist/engine/evidence_grounding_contract.js.map +0 -1
  2026. package/dist/engine/evolution_regression_gate.d.ts +0 -42
  2027. package/dist/engine/evolution_regression_gate.d.ts.map +0 -1
  2028. package/dist/engine/evolution_regression_gate.js +0 -159
  2029. package/dist/engine/evolution_regression_gate.js.map +0 -1
  2030. package/dist/engine/evolver.d.ts +0 -78
  2031. package/dist/engine/evolver.d.ts.map +0 -1
  2032. package/dist/engine/evolver.js +0 -377
  2033. package/dist/engine/evolver.js.map +0 -1
  2034. package/dist/engine/existing_system_analysis.d.ts.map +0 -1
  2035. package/dist/engine/existing_system_analysis.js.map +0 -1
  2036. package/dist/engine/expand_pipeline.d.ts +0 -121
  2037. package/dist/engine/expand_pipeline.d.ts.map +0 -1
  2038. package/dist/engine/expand_pipeline.js +0 -141
  2039. package/dist/engine/expand_pipeline.js.map +0 -1
  2040. package/dist/engine/explicit_asset_registry.d.ts +0 -30
  2041. package/dist/engine/explicit_asset_registry.d.ts.map +0 -1
  2042. package/dist/engine/explicit_asset_registry.js +0 -3862
  2043. package/dist/engine/explicit_asset_registry.js.map +0 -1
  2044. package/dist/engine/extension_contract.d.ts +0 -50
  2045. package/dist/engine/extension_contract.d.ts.map +0 -1
  2046. package/dist/engine/extension_contract.js +0 -158
  2047. package/dist/engine/extension_contract.js.map +0 -1
  2048. package/dist/engine/extension_platform_contracts.d.ts +0 -718
  2049. package/dist/engine/extension_platform_contracts.d.ts.map +0 -1
  2050. package/dist/engine/extension_platform_contracts.js +0 -42
  2051. package/dist/engine/extension_platform_contracts.js.map +0 -1
  2052. package/dist/engine/extension_scenario_registry.d.ts +0 -30
  2053. package/dist/engine/extension_scenario_registry.d.ts.map +0 -1
  2054. package/dist/engine/extension_scenario_registry.js +0 -976
  2055. package/dist/engine/extension_scenario_registry.js.map +0 -1
  2056. package/dist/engine/failure_classifier.d.ts +0 -39
  2057. package/dist/engine/failure_classifier.d.ts.map +0 -1
  2058. package/dist/engine/failure_classifier.js +0 -175
  2059. package/dist/engine/failure_classifier.js.map +0 -1
  2060. package/dist/engine/failure_report.d.ts.map +0 -1
  2061. package/dist/engine/failure_report.js.map +0 -1
  2062. package/dist/engine/first_principles.d.ts +0 -37
  2063. package/dist/engine/first_principles.d.ts.map +0 -1
  2064. package/dist/engine/first_principles.js +0 -141
  2065. package/dist/engine/first_principles.js.map +0 -1
  2066. package/dist/engine/foundation_scenario_registry.d.ts +0 -76
  2067. package/dist/engine/foundation_scenario_registry.d.ts.map +0 -1
  2068. package/dist/engine/foundation_scenario_registry.js +0 -457
  2069. package/dist/engine/foundation_scenario_registry.js.map +0 -1
  2070. package/dist/engine/foundation_scenario_runners.d.ts +0 -54
  2071. package/dist/engine/foundation_scenario_runners.d.ts.map +0 -1
  2072. package/dist/engine/foundation_scenario_runners.js +0 -602
  2073. package/dist/engine/foundation_scenario_runners.js.map +0 -1
  2074. package/dist/engine/git_deps.d.ts +0 -69
  2075. package/dist/engine/git_deps.d.ts.map +0 -1
  2076. package/dist/engine/git_deps.js +0 -9
  2077. package/dist/engine/git_deps.js.map +0 -1
  2078. package/dist/engine/governance_report.d.ts +0 -100
  2079. package/dist/engine/governance_report.d.ts.map +0 -1
  2080. package/dist/engine/governance_report.js +0 -184
  2081. package/dist/engine/governance_report.js.map +0 -1
  2082. package/dist/engine/historical_issue_mechanization_matrix.d.ts +0 -28
  2083. package/dist/engine/historical_issue_mechanization_matrix.d.ts.map +0 -1
  2084. package/dist/engine/historical_issue_mechanization_matrix.js +0 -134
  2085. package/dist/engine/historical_issue_mechanization_matrix.js.map +0 -1
  2086. package/dist/engine/implementation_roadmap_registry.d.ts +0 -105
  2087. package/dist/engine/implementation_roadmap_registry.d.ts.map +0 -1
  2088. package/dist/engine/implementation_roadmap_registry.js +0 -1340
  2089. package/dist/engine/implementation_roadmap_registry.js.map +0 -1
  2090. package/dist/engine/input_material_contract_registry.d.ts +0 -185
  2091. package/dist/engine/input_material_contract_registry.d.ts.map +0 -1
  2092. package/dist/engine/input_material_contract_registry.js +0 -564
  2093. package/dist/engine/input_material_contract_registry.js.map +0 -1
  2094. package/dist/engine/input_material_extractor.d.ts +0 -47
  2095. package/dist/engine/input_material_extractor.d.ts.map +0 -1
  2096. package/dist/engine/input_material_extractor.js +0 -155
  2097. package/dist/engine/input_material_extractor.js.map +0 -1
  2098. package/dist/engine/instruction_contract.d.ts +0 -75
  2099. package/dist/engine/instruction_contract.d.ts.map +0 -1
  2100. package/dist/engine/instruction_contract.js +0 -185
  2101. package/dist/engine/instruction_contract.js.map +0 -1
  2102. package/dist/engine/intent_expander.d.ts +0 -59
  2103. package/dist/engine/intent_expander.d.ts.map +0 -1
  2104. package/dist/engine/intent_expander.js +0 -2150
  2105. package/dist/engine/intent_expander.js.map +0 -1
  2106. package/dist/engine/intent_route_scorer.d.ts +0 -45
  2107. package/dist/engine/intent_route_scorer.d.ts.map +0 -1
  2108. package/dist/engine/intent_route_scorer.js +0 -341
  2109. package/dist/engine/intent_route_scorer.js.map +0 -1
  2110. package/dist/engine/intent_router.d.ts +0 -128
  2111. package/dist/engine/intent_router.d.ts.map +0 -1
  2112. package/dist/engine/intent_router.js +0 -628
  2113. package/dist/engine/intent_router.js.map +0 -1
  2114. package/dist/engine/intent_signal_extractor.d.ts +0 -73
  2115. package/dist/engine/intent_signal_extractor.d.ts.map +0 -1
  2116. package/dist/engine/intent_signal_extractor.js +0 -296
  2117. package/dist/engine/intent_signal_extractor.js.map +0 -1
  2118. package/dist/engine/io_controller.d.ts +0 -87
  2119. package/dist/engine/io_controller.d.ts.map +0 -1
  2120. package/dist/engine/io_controller.js +0 -203
  2121. package/dist/engine/io_controller.js.map +0 -1
  2122. package/dist/engine/java_quality_guard.d.ts.map +0 -1
  2123. package/dist/engine/java_quality_guard.js +0 -228
  2124. package/dist/engine/java_quality_guard.js.map +0 -1
  2125. package/dist/engine/job_manager.d.ts +0 -111
  2126. package/dist/engine/job_manager.d.ts.map +0 -1
  2127. package/dist/engine/job_manager.js +0 -270
  2128. package/dist/engine/job_manager.js.map +0 -1
  2129. package/dist/engine/knowledge_acceptance_registry.d.ts.map +0 -1
  2130. package/dist/engine/knowledge_acceptance_registry.js +0 -271
  2131. package/dist/engine/knowledge_acceptance_registry.js.map +0 -1
  2132. package/dist/engine/knowledge_asset_audit.d.ts.map +0 -1
  2133. package/dist/engine/knowledge_asset_audit.js +0 -230
  2134. package/dist/engine/knowledge_asset_audit.js.map +0 -1
  2135. package/dist/engine/knowledge_asset_consumer.d.ts +0 -150
  2136. package/dist/engine/knowledge_asset_consumer.d.ts.map +0 -1
  2137. package/dist/engine/knowledge_asset_consumer.js +0 -287
  2138. package/dist/engine/knowledge_asset_consumer.js.map +0 -1
  2139. package/dist/engine/knowledge_asset_generation_gate.d.ts.map +0 -1
  2140. package/dist/engine/knowledge_asset_generation_gate.js.map +0 -1
  2141. package/dist/engine/knowledge_asset_migration.d.ts.map +0 -1
  2142. package/dist/engine/knowledge_asset_migration.js +0 -204
  2143. package/dist/engine/knowledge_asset_migration.js.map +0 -1
  2144. package/dist/engine/knowledge_asset_schema.d.ts +0 -97
  2145. package/dist/engine/knowledge_asset_schema.d.ts.map +0 -1
  2146. package/dist/engine/knowledge_asset_schema.js +0 -413
  2147. package/dist/engine/knowledge_asset_schema.js.map +0 -1
  2148. package/dist/engine/knowledge_config_loader.d.ts.map +0 -1
  2149. package/dist/engine/knowledge_config_loader.js +0 -113
  2150. package/dist/engine/knowledge_config_loader.js.map +0 -1
  2151. package/dist/engine/knowledge_consumption_snapshot.d.ts +0 -91
  2152. package/dist/engine/knowledge_consumption_snapshot.d.ts.map +0 -1
  2153. package/dist/engine/knowledge_consumption_snapshot.js +0 -113
  2154. package/dist/engine/knowledge_consumption_snapshot.js.map +0 -1
  2155. package/dist/engine/knowledge_evolution.d.ts +0 -82
  2156. package/dist/engine/knowledge_evolution.d.ts.map +0 -1
  2157. package/dist/engine/knowledge_evolution.js +0 -272
  2158. package/dist/engine/knowledge_evolution.js.map +0 -1
  2159. package/dist/engine/knowledge_governance_gate.d.ts +0 -38
  2160. package/dist/engine/knowledge_governance_gate.d.ts.map +0 -1
  2161. package/dist/engine/knowledge_governance_gate.js +0 -123
  2162. package/dist/engine/knowledge_governance_gate.js.map +0 -1
  2163. package/dist/engine/knowledge_injection_boundary.d.ts +0 -59
  2164. package/dist/engine/knowledge_injection_boundary.d.ts.map +0 -1
  2165. package/dist/engine/knowledge_injection_boundary.js +0 -617
  2166. package/dist/engine/knowledge_injection_boundary.js.map +0 -1
  2167. package/dist/engine/knowledge_lifecycle.d.ts +0 -83
  2168. package/dist/engine/knowledge_lifecycle.d.ts.map +0 -1
  2169. package/dist/engine/knowledge_lifecycle.js +0 -247
  2170. package/dist/engine/knowledge_lifecycle.js.map +0 -1
  2171. package/dist/engine/knowledge_manager.d.ts +0 -149
  2172. package/dist/engine/knowledge_manager.d.ts.map +0 -1
  2173. package/dist/engine/knowledge_manager.js +0 -934
  2174. package/dist/engine/knowledge_manager.js.map +0 -1
  2175. package/dist/engine/knowledge_scenario_registry.d.ts +0 -21
  2176. package/dist/engine/knowledge_scenario_registry.d.ts.map +0 -1
  2177. package/dist/engine/knowledge_scenario_registry.js +0 -337
  2178. package/dist/engine/knowledge_scenario_registry.js.map +0 -1
  2179. package/dist/engine/knowledge_sovereignty.d.ts.map +0 -1
  2180. package/dist/engine/knowledge_sovereignty.js +0 -196
  2181. package/dist/engine/knowledge_sovereignty.js.map +0 -1
  2182. package/dist/engine/knowledge_template_contracts.d.ts +0 -244
  2183. package/dist/engine/knowledge_template_contracts.d.ts.map +0 -1
  2184. package/dist/engine/knowledge_template_contracts.js.map +0 -1
  2185. package/dist/engine/language_policy.d.ts +0 -78
  2186. package/dist/engine/language_policy.d.ts.map +0 -1
  2187. package/dist/engine/language_policy.js +0 -139
  2188. package/dist/engine/language_policy.js.map +0 -1
  2189. package/dist/engine/language_policy_contract.d.ts.map +0 -1
  2190. package/dist/engine/language_policy_contract.js.map +0 -1
  2191. package/dist/engine/lifecycle_knowledge_contract.d.ts +0 -59
  2192. package/dist/engine/lifecycle_knowledge_contract.d.ts.map +0 -1
  2193. package/dist/engine/lifecycle_knowledge_contract.js +0 -203
  2194. package/dist/engine/lifecycle_knowledge_contract.js.map +0 -1
  2195. package/dist/engine/llm_gateway.d.ts +0 -167
  2196. package/dist/engine/llm_gateway.d.ts.map +0 -1
  2197. package/dist/engine/llm_gateway.js +0 -292
  2198. package/dist/engine/llm_gateway.js.map +0 -1
  2199. package/dist/engine/local_docker_acceptance.d.ts +0 -94
  2200. package/dist/engine/local_docker_acceptance.d.ts.map +0 -1
  2201. package/dist/engine/local_docker_acceptance.js +0 -312
  2202. package/dist/engine/local_docker_acceptance.js.map +0 -1
  2203. package/dist/engine/log_governance.d.ts.map +0 -1
  2204. package/dist/engine/log_governance.js +0 -76
  2205. package/dist/engine/log_governance.js.map +0 -1
  2206. package/dist/engine/logger.d.ts.map +0 -1
  2207. package/dist/engine/logger.js +0 -115
  2208. package/dist/engine/logger.js.map +0 -1
  2209. package/dist/engine/main_path_integration_contract.d.ts +0 -383
  2210. package/dist/engine/main_path_integration_contract.d.ts.map +0 -1
  2211. package/dist/engine/main_path_integration_contract.js +0 -1582
  2212. package/dist/engine/main_path_integration_contract.js.map +0 -1
  2213. package/dist/engine/mechanism_contract_registry.d.ts +0 -59
  2214. package/dist/engine/mechanism_contract_registry.d.ts.map +0 -1
  2215. package/dist/engine/mechanism_contract_registry.js +0 -1224
  2216. package/dist/engine/mechanism_contract_registry.js.map +0 -1
  2217. package/dist/engine/mechanism_family_registry.d.ts +0 -48
  2218. package/dist/engine/mechanism_family_registry.d.ts.map +0 -1
  2219. package/dist/engine/mechanism_family_registry.js +0 -197
  2220. package/dist/engine/mechanism_family_registry.js.map +0 -1
  2221. package/dist/engine/mechanism_health_check.d.ts +0 -23
  2222. package/dist/engine/mechanism_health_check.d.ts.map +0 -1
  2223. package/dist/engine/mechanism_health_check.js +0 -140
  2224. package/dist/engine/mechanism_health_check.js.map +0 -1
  2225. package/dist/engine/metric_governance.d.ts.map +0 -1
  2226. package/dist/engine/metric_governance.js.map +0 -1
  2227. package/dist/engine/mutation_audit.d.ts +0 -53
  2228. package/dist/engine/mutation_audit.d.ts.map +0 -1
  2229. package/dist/engine/mutation_audit.js +0 -136
  2230. package/dist/engine/mutation_audit.js.map +0 -1
  2231. package/dist/engine/next_action_planner.d.ts +0 -32
  2232. package/dist/engine/next_action_planner.d.ts.map +0 -1
  2233. package/dist/engine/next_action_planner.js +0 -827
  2234. package/dist/engine/next_action_planner.js.map +0 -1
  2235. package/dist/engine/observability.d.ts +0 -68
  2236. package/dist/engine/observability.d.ts.map +0 -1
  2237. package/dist/engine/observability.js +0 -435
  2238. package/dist/engine/observability.js.map +0 -1
  2239. package/dist/engine/observed_consumption.d.ts +0 -54
  2240. package/dist/engine/observed_consumption.d.ts.map +0 -1
  2241. package/dist/engine/observed_consumption.js +0 -378
  2242. package/dist/engine/observed_consumption.js.map +0 -1
  2243. package/dist/engine/ood_solid_contract.d.ts.map +0 -1
  2244. package/dist/engine/ood_solid_contract.js +0 -115
  2245. package/dist/engine/ood_solid_contract.js.map +0 -1
  2246. package/dist/engine/path_scope_utils.d.ts +0 -21
  2247. package/dist/engine/path_scope_utils.d.ts.map +0 -1
  2248. package/dist/engine/path_scope_utils.js +0 -126
  2249. package/dist/engine/path_scope_utils.js.map +0 -1
  2250. package/dist/engine/plan_proposal_gate.d.ts.map +0 -1
  2251. package/dist/engine/plan_proposal_gate.js +0 -341
  2252. package/dist/engine/plan_proposal_gate.js.map +0 -1
  2253. package/dist/engine/platform_context.d.ts +0 -44
  2254. package/dist/engine/platform_context.d.ts.map +0 -1
  2255. package/dist/engine/platform_context.js +0 -169
  2256. package/dist/engine/platform_context.js.map +0 -1
  2257. package/dist/engine/policy_drift_detector.d.ts +0 -72
  2258. package/dist/engine/policy_drift_detector.d.ts.map +0 -1
  2259. package/dist/engine/policy_drift_detector.js +0 -277
  2260. package/dist/engine/policy_drift_detector.js.map +0 -1
  2261. package/dist/engine/privacy_secret_contract.d.ts +0 -320
  2262. package/dist/engine/privacy_secret_contract.d.ts.map +0 -1
  2263. package/dist/engine/privacy_secret_contract.js +0 -875
  2264. package/dist/engine/privacy_secret_contract.js.map +0 -1
  2265. package/dist/engine/project_knowledge_contract.d.ts +0 -132
  2266. package/dist/engine/project_knowledge_contract.d.ts.map +0 -1
  2267. package/dist/engine/project_knowledge_contract.js +0 -554
  2268. package/dist/engine/project_knowledge_contract.js.map +0 -1
  2269. package/dist/engine/project_knowledge_system_regression_matrix.d.ts +0 -27
  2270. package/dist/engine/project_knowledge_system_regression_matrix.d.ts.map +0 -1
  2271. package/dist/engine/project_knowledge_system_regression_matrix.js +0 -295
  2272. package/dist/engine/project_knowledge_system_regression_matrix.js.map +0 -1
  2273. package/dist/engine/project_stage_detector.d.ts.map +0 -1
  2274. package/dist/engine/project_stage_detector.js +0 -185
  2275. package/dist/engine/project_stage_detector.js.map +0 -1
  2276. package/dist/engine/regression_matrix.d.ts.map +0 -1
  2277. package/dist/engine/regression_matrix.js +0 -410
  2278. package/dist/engine/regression_matrix.js.map +0 -1
  2279. package/dist/engine/release_compatibility.d.ts.map +0 -1
  2280. package/dist/engine/release_compatibility.js.map +0 -1
  2281. package/dist/engine/release_gate.d.ts +0 -29
  2282. package/dist/engine/release_gate.d.ts.map +0 -1
  2283. package/dist/engine/release_gate.js +0 -675
  2284. package/dist/engine/release_gate.js.map +0 -1
  2285. package/dist/engine/release_gate_scenario_registry.d.ts.map +0 -1
  2286. package/dist/engine/release_gate_scenario_registry.js +0 -717
  2287. package/dist/engine/release_gate_scenario_registry.js.map +0 -1
  2288. package/dist/engine/release_issue_scenario_registry.d.ts +0 -64
  2289. package/dist/engine/release_issue_scenario_registry.d.ts.map +0 -1
  2290. package/dist/engine/release_issue_scenario_registry.js +0 -1790
  2291. package/dist/engine/release_issue_scenario_registry.js.map +0 -1
  2292. package/dist/engine/release_readiness_gate.d.ts +0 -49
  2293. package/dist/engine/release_readiness_gate.d.ts.map +0 -1
  2294. package/dist/engine/release_readiness_gate.js +0 -3382
  2295. package/dist/engine/release_readiness_gate.js.map +0 -1
  2296. package/dist/engine/release_tool_harness.d.ts +0 -71
  2297. package/dist/engine/release_tool_harness.d.ts.map +0 -1
  2298. package/dist/engine/release_tool_harness.js +0 -161
  2299. package/dist/engine/release_tool_harness.js.map +0 -1
  2300. package/dist/engine/risk_sampler.d.ts +0 -43
  2301. package/dist/engine/risk_sampler.d.ts.map +0 -1
  2302. package/dist/engine/risk_sampler.js +0 -79
  2303. package/dist/engine/risk_sampler.js.map +0 -1
  2304. package/dist/engine/route_decision_contract_verifier.d.ts +0 -44
  2305. package/dist/engine/route_decision_contract_verifier.d.ts.map +0 -1
  2306. package/dist/engine/route_decision_contract_verifier.js +0 -154
  2307. package/dist/engine/route_decision_contract_verifier.js.map +0 -1
  2308. package/dist/engine/runtime_safety.d.ts.map +0 -1
  2309. package/dist/engine/runtime_safety.js +0 -200
  2310. package/dist/engine/runtime_safety.js.map +0 -1
  2311. package/dist/engine/scaffolder.d.ts +0 -19
  2312. package/dist/engine/scaffolder.d.ts.map +0 -1
  2313. package/dist/engine/scaffolder.js +0 -411
  2314. package/dist/engine/scaffolder.js.map +0 -1
  2315. package/dist/engine/scope_controller.d.ts +0 -16
  2316. package/dist/engine/scope_controller.d.ts.map +0 -1
  2317. package/dist/engine/scope_controller.js +0 -195
  2318. package/dist/engine/scope_controller.js.map +0 -1
  2319. package/dist/engine/scope_lease.d.ts +0 -88
  2320. package/dist/engine/scope_lease.d.ts.map +0 -1
  2321. package/dist/engine/scope_lease.js +0 -166
  2322. package/dist/engine/scope_lease.js.map +0 -1
  2323. package/dist/engine/scope_resolver.d.ts +0 -11
  2324. package/dist/engine/scope_resolver.d.ts.map +0 -1
  2325. package/dist/engine/scope_resolver.js +0 -526
  2326. package/dist/engine/scope_resolver.js.map +0 -1
  2327. package/dist/engine/semantic_evidence.d.ts +0 -29
  2328. package/dist/engine/semantic_evidence.d.ts.map +0 -1
  2329. package/dist/engine/semantic_evidence.js +0 -91
  2330. package/dist/engine/semantic_evidence.js.map +0 -1
  2331. package/dist/engine/stale_current_task_detector.d.ts +0 -30
  2332. package/dist/engine/stale_current_task_detector.d.ts.map +0 -1
  2333. package/dist/engine/stale_current_task_detector.js +0 -168
  2334. package/dist/engine/stale_current_task_detector.js.map +0 -1
  2335. package/dist/engine/standard_asset_contract.d.ts +0 -75
  2336. package/dist/engine/standard_asset_contract.d.ts.map +0 -1
  2337. package/dist/engine/standard_asset_contract.js +0 -388
  2338. package/dist/engine/standard_asset_contract.js.map +0 -1
  2339. package/dist/engine/standard_asset_coverage.d.ts.map +0 -1
  2340. package/dist/engine/standard_asset_coverage.js +0 -220
  2341. package/dist/engine/standard_asset_coverage.js.map +0 -1
  2342. package/dist/engine/state_update_bypass.d.ts +0 -19
  2343. package/dist/engine/state_update_bypass.d.ts.map +0 -1
  2344. package/dist/engine/state_update_bypass.js +0 -17
  2345. package/dist/engine/state_update_bypass.js.map +0 -1
  2346. package/dist/engine/task_context.d.ts +0 -249
  2347. package/dist/engine/task_context.d.ts.map +0 -1
  2348. package/dist/engine/task_context.js +0 -981
  2349. package/dist/engine/task_context.js.map +0 -1
  2350. package/dist/engine/task_planner.d.ts +0 -28
  2351. package/dist/engine/task_planner.d.ts.map +0 -1
  2352. package/dist/engine/task_planner.js +0 -325
  2353. package/dist/engine/task_planner.js.map +0 -1
  2354. package/dist/engine/task_stage_detector.d.ts +0 -19
  2355. package/dist/engine/task_stage_detector.d.ts.map +0 -1
  2356. package/dist/engine/task_stage_detector.js +0 -201
  2357. package/dist/engine/task_stage_detector.js.map +0 -1
  2358. package/dist/engine/technology_decision.d.ts +0 -40
  2359. package/dist/engine/technology_decision.d.ts.map +0 -1
  2360. package/dist/engine/technology_decision.js +0 -137
  2361. package/dist/engine/technology_decision.js.map +0 -1
  2362. package/dist/engine/template_asset_contract_registry.d.ts +0 -162
  2363. package/dist/engine/template_asset_contract_registry.d.ts.map +0 -1
  2364. package/dist/engine/template_asset_contract_registry.js +0 -599
  2365. package/dist/engine/template_asset_contract_registry.js.map +0 -1
  2366. package/dist/engine/template_asset_visibility.d.ts +0 -109
  2367. package/dist/engine/template_asset_visibility.d.ts.map +0 -1
  2368. package/dist/engine/template_asset_visibility.js +0 -321
  2369. package/dist/engine/template_asset_visibility.js.map +0 -1
  2370. package/dist/engine/template_init_sync.d.ts +0 -68
  2371. package/dist/engine/template_init_sync.d.ts.map +0 -1
  2372. package/dist/engine/template_init_sync.js +0 -218
  2373. package/dist/engine/template_init_sync.js.map +0 -1
  2374. package/dist/engine/template_manifest_io.d.ts +0 -57
  2375. package/dist/engine/template_manifest_io.d.ts.map +0 -1
  2376. package/dist/engine/template_manifest_io.js +0 -184
  2377. package/dist/engine/template_manifest_io.js.map +0 -1
  2378. package/dist/engine/template_mechanism_auditor.d.ts +0 -95
  2379. package/dist/engine/template_mechanism_auditor.d.ts.map +0 -1
  2380. package/dist/engine/template_mechanism_auditor.js +0 -626
  2381. package/dist/engine/template_mechanism_auditor.js.map +0 -1
  2382. package/dist/engine/template_sync.d.ts +0 -98
  2383. package/dist/engine/template_sync.d.ts.map +0 -1
  2384. package/dist/engine/template_sync.js.map +0 -1
  2385. package/dist/engine/test_generator.d.ts +0 -10
  2386. package/dist/engine/test_generator.d.ts.map +0 -1
  2387. package/dist/engine/test_generator.js +0 -265
  2388. package/dist/engine/test_generator.js.map +0 -1
  2389. package/dist/engine/test_quality.d.ts +0 -36
  2390. package/dist/engine/test_quality.d.ts.map +0 -1
  2391. package/dist/engine/test_quality.js +0 -642
  2392. package/dist/engine/test_quality.js.map +0 -1
  2393. package/dist/engine/test_strategy.d.ts.map +0 -1
  2394. package/dist/engine/test_strategy.js.map +0 -1
  2395. package/dist/engine/tool_invocation_contract_registry.d.ts +0 -136
  2396. package/dist/engine/tool_invocation_contract_registry.d.ts.map +0 -1
  2397. package/dist/engine/tool_invocation_contract_registry.js +0 -762
  2398. package/dist/engine/tool_invocation_contract_registry.js.map +0 -1
  2399. package/dist/engine/traceability.d.ts +0 -48
  2400. package/dist/engine/traceability.d.ts.map +0 -1
  2401. package/dist/engine/traceability.js +0 -470
  2402. package/dist/engine/traceability.js.map +0 -1
  2403. package/dist/engine/user_feedback_contract.d.ts +0 -162
  2404. package/dist/engine/user_feedback_contract.d.ts.map +0 -1
  2405. package/dist/engine/user_feedback_contract.js +0 -418
  2406. package/dist/engine/user_feedback_contract.js.map +0 -1
  2407. package/dist/engine/user_promise.d.ts +0 -67
  2408. package/dist/engine/user_promise.d.ts.map +0 -1
  2409. package/dist/engine/user_promise.js +0 -436
  2410. package/dist/engine/user_promise.js.map +0 -1
  2411. package/dist/engine/verification_contract.d.ts.map +0 -1
  2412. package/dist/engine/verification_contract.js.map +0 -1
  2413. package/dist/engine/verifier.d.ts +0 -45
  2414. package/dist/engine/verifier.d.ts.map +0 -1
  2415. package/dist/engine/verifier.js +0 -629
  2416. package/dist/engine/verifier.js.map +0 -1
  2417. package/dist/engine/workflow_contract_registry.d.ts +0 -70
  2418. package/dist/engine/workflow_contract_registry.d.ts.map +0 -1
  2419. package/dist/engine/workflow_contract_registry.js +0 -643
  2420. package/dist/engine/workflow_contract_registry.js.map +0 -1
  2421. package/dist/engine/workflow_navigation_contract.d.ts +0 -157
  2422. package/dist/engine/workflow_navigation_contract.d.ts.map +0 -1
  2423. package/dist/engine/workflow_navigation_contract.js +0 -39
  2424. package/dist/engine/workflow_navigation_contract.js.map +0 -1
  2425. package/dist/engine/workflow_template_pack.d.ts +0 -71
  2426. package/dist/engine/workflow_template_pack.d.ts.map +0 -1
  2427. package/dist/engine/workflow_template_pack.js +0 -246
  2428. package/dist/engine/workflow_template_pack.js.map +0 -1
  2429. package/dist/engine/workspace_lease.d.ts +0 -69
  2430. package/dist/engine/workspace_lease.d.ts.map +0 -1
  2431. package/dist/engine/workspace_lease.js +0 -154
  2432. package/dist/engine/workspace_lease.js.map +0 -1
  2433. package/dist/engine/workspace_resumer.d.ts.map +0 -1
  2434. package/dist/engine/workspace_resumer.js +0 -207
  2435. package/dist/engine/workspace_resumer.js.map +0 -1
  2436. package/dist/engine/zero_config_init.d.ts +0 -152
  2437. package/dist/engine/zero_config_init.d.ts.map +0 -1
  2438. package/dist/engine/zero_config_init.js +0 -810
  2439. package/dist/engine/zero_config_init.js.map +0 -1
  2440. package/dist/types.d.ts +0 -1737
  2441. package/dist/types.d.ts.map +0 -1
  2442. package/dist/types.js +0 -3
  2443. package/dist/types.js.map +0 -1
  2444. package/templates/knowledge/acceptance_templates/API/346/216/245/345/217/243/350/247/204/346/240/274/346/226/207/346/241/243/346/250/241/347/211/210.md +0 -74
  2445. package/templates/knowledge/acceptance_templates/Bug/345/210/206/346/236/220/346/250/241/347/211/210.md +0 -69
  2446. package/templates/knowledge/acceptance_templates/OOD/350/256/276/350/256/241/346/221/230/350/246/201/346/250/241/347/211/210.md +0 -60
  2447. package/templates/knowledge/acceptance_templates/POC/347/273/223/350/256/272/346/250/241/347/211/210.md +0 -63
  2448. package/templates/knowledge/acceptance_templates//344/273/243/347/240/201/346/263/250/351/207/212/344/270/216/346/227/245/345/277/227/351/252/214/346/224/266/346/250/241/346/235/277.md +0 -78
  2449. package/templates/knowledge/acceptance_templates//345/211/215/347/253/257/351/241/265/351/235/242/351/252/214/346/224/266/346/270/205/345/215/225.md +0 -54
  2450. package/templates/knowledge/acceptance_templates//345/216/237/345/236/213/350/257/264/346/230/216/346/250/241/347/211/210.md +0 -236
  2451. package/templates/knowledge/acceptance_templates//345/220/216/347/253/257API/351/252/214/346/224/266/346/270/205/345/215/225.md +0 -52
  2452. package/templates/knowledge/acceptance_templates//345/220/216/347/253/257/345/256/236/347/216/260/351/252/214/346/224/266/346/270/205/345/215/225.md +0 -46
  2453. package/templates/knowledge/acceptance_templates//345/256/211/345/205/250/345/256/241/350/256/241/346/250/241/347/211/210.md +0 -75
  2454. package/templates/knowledge/acceptance_templates//346/200/247/350/203/275/345/210/206/346/236/220/346/250/241/347/211/210.md +0 -69
  2455. package/templates/knowledge/acceptance_templates//346/212/200/346/234/257/351/200/211/345/236/213/351/252/214/346/224/266/346/270/205/345/215/225.md +0 -46
  2456. package/templates/knowledge/acceptance_templates//346/216/245/345/217/243/345/257/271/346/216/245/346/226/271/346/241/210/346/250/241/347/211/210.md +0 -68
  2457. package/templates/knowledge/acceptance_templates//346/216/245/345/217/243/350/256/276/350/256/241/346/250/241/347/211/210.md +0 -82
  2458. package/templates/knowledge/acceptance_templates//346/225/205/351/232/234/345/244/215/347/233/230/346/250/241/347/211/210.md +0 -78
  2459. package/templates/knowledge/acceptance_templates//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/346/226/271/346/241/210/346/250/241/347/211/210.md +0 -68
  2460. package/templates/knowledge/acceptance_templates//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/351/252/214/346/224/266/346/270/205/345/215/225.md +0 -52
  2461. package/templates/knowledge/acceptance_templates//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/346/226/207/346/241/243/346/250/241/347/211/210.md +0 -59
  2462. package/templates/knowledge/acceptance_templates//346/236/266/346/236/204/350/256/276/350/256/241/346/250/241/347/211/210.md +0 -86
  2463. package/templates/knowledge/acceptance_templates//346/265/213/350/257/225/350/256/241/345/210/222/346/250/241/347/211/210.md +0 -63
  2464. package/templates/knowledge/acceptance_templates//350/256/276/350/256/241/344/270/200/350/207/264/346/200/247/351/252/214/346/224/266/346/212/245/345/221/212/346/250/241/347/211/210.md +0 -47
  2465. package/templates/knowledge/acceptance_templates//350/257/246/347/273/206/350/256/276/350/256/241/346/250/241/347/211/210.md +0 -63
  2466. package/templates/knowledge/acceptance_templates//350/277/201/347/247/273/350/257/204/344/274/260/346/250/241/347/211/210.md +0 -66
  2467. package/templates/knowledge/acceptance_templates//351/200/232/347/224/250/350/264/250/351/207/217/351/252/214/346/224/266/346/270/205/345/215/225.md +0 -57
  2468. package/templates/knowledge/acceptance_templates//351/207/215/346/236/204/346/226/271/346/241/210/346/250/241/347/211/210.md +0 -71
  2469. package/templates/knowledge/acceptance_templates//351/234/200/346/261/202/345/210/206/346/236/220/346/250/241/347/211/210.md +0 -68
  2470. package/templates/knowledge/acceptance_templates//351/234/200/346/261/202/345/216/237/345/236/213/350/256/276/350/256/241/345/256/236/347/216/260/350/277/275/350/270/252/347/237/251/351/230/265/346/250/241/347/211/210.md +0 -103
  2471. package/templates/knowledge/checklists//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/346/224/266/346/270/205/345/215/225.md +0 -45
  2472. package/templates/knowledge/checklists//344/274/232/350/257/235/346/201/242/345/244/215.md +0 -59
  2473. package/templates/knowledge/checklists//345/267/245/344/275/234/346/265/201/351/252/214/346/224/266/346/270/205/345/215/225.md +0 -47
  2474. package/templates/knowledge/checklists//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214/351/252/214/346/224/266/346/270/205/345/215/225.md +0 -72
  2475. package/templates/knowledge/checklists//347/237/245/350/257/206/346/263/250/345/205/245/351/252/214/346/224/266/346/270/205/345/215/225.md +0 -47
  2476. package/templates/knowledge/checklists//351/232/220/347/247/201/345/256/241/346/237/245/346/270/205/345/215/225.md +0 -44
  2477. package/templates/knowledge/checklists//351/252/214/350/257/201/351/252/214/346/224/266/346/270/205/345/215/225.md +0 -45
  2478. package/templates/knowledge/domain//345/244/232/347/247/237/346/210/267.md +0 -60
  2479. package/templates/knowledge/domain//345/256/241/350/256/241/346/227/245/345/277/227.md +0 -57
  2480. package/templates/knowledge/domain//345/257/274/345/205/245/345/257/274/345/207/272/350/247/204/345/210/231.md +0 -64
  2481. package/templates/knowledge/domain//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +0 -66
  2482. package/templates/knowledge/domain//346/212/245/350/241/250/347/273/237/350/256/241.md +0 -64
  2483. package/templates/knowledge/domain//346/224/257/344/273/230/350/247/204/345/210/231.md +0 -66
  2484. package/templates/knowledge/domain//346/225/260/346/215/256/346/235/203/351/231/220.md +0 -59
  2485. package/templates/knowledge/domain//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +0 -61
  2486. package/templates/knowledge/domain//351/200/232/347/237/245/350/247/204/345/210/231.md +0 -64
  2487. package/templates/knowledge/patterns/core/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +0 -64
  2488. package/templates/knowledge/patterns/core/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +0 -64
  2489. package/templates/knowledge/patterns/core/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +0 -63
  2490. package/templates/knowledge/patterns/core//344/273/273/345/212/241/344/270/212/344/270/213/346/226/207/347/224/237/345/221/275/345/221/250/346/234/237.md +0 -64
  2491. package/templates/knowledge/patterns/core//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +0 -65
  2492. package/templates/knowledge/patterns/core//344/275/234/347/224/250/345/237/237/344/270/216/345/257/206/351/222/245/346/213/246/346/210/252.md +0 -63
  2493. package/templates/knowledge/patterns/core//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +0 -65
  2494. package/templates/knowledge/patterns/core//345/206/262/347/252/201/351/227/250/347/246/201.md +0 -64
  2495. package/templates/knowledge/patterns/core//345/206/263/347/255/226/347/275/221/345/205/263.md +0 -72
  2496. package/templates/knowledge/patterns/core//345/217/230/345/274/202/345/256/241/350/256/241.md +0 -68
  2497. package/templates/knowledge/patterns/core//345/233/236/345/275/222/347/237/251/351/230/265.md +0 -63
  2498. package/templates/knowledge/patterns/core//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +0 -61
  2499. package/templates/knowledge/patterns/core//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +0 -63
  2500. package/templates/knowledge/patterns/core//345/271/266/345/217/221/351/224/201.md +0 -68
  2501. package/templates/knowledge/patterns/core//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +0 -78
  2502. package/templates/knowledge/patterns/core//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +0 -62
  2503. package/templates/knowledge/patterns/core//346/262/273/347/220/206/350/277/220/350/241/214/346/227/266/345/276/252/347/216/257.md +0 -66
  2504. package/templates/knowledge/patterns/core//346/265/201/345/274/217/345/277/203/350/267/263.md +0 -74
  2505. package/templates/knowledge/patterns/core//347/237/245/350/257/206/344/270/273/346/235/203.md +0 -76
  2506. package/templates/knowledge/patterns/core//350/257/255/344/271/211/350/257/201/346/215/256.md +0 -64
  2507. package/templates/knowledge/patterns/core//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +0 -68
  2508. package/templates/knowledge/patterns/core//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +0 -64
  2509. package/templates/knowledge/patterns/core//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +0 -63
  2510. package/templates/knowledge/procedures/OOD/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +0 -50
  2511. package/templates/knowledge/procedures/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +0 -54
  2512. package/templates/knowledge/procedures//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/350/257/201/346/265/201/347/250/213.md +0 -56
  2513. package/templates/knowledge/procedures//344/273/243/347/240/201/351/227/250/347/246/201/346/265/201/347/250/213.md +0 -60
  2514. package/templates/knowledge/procedures//344/273/273/345/212/241/346/213/206/350/247/243/346/265/201/347/250/213.md +0 -58
  2515. package/templates/knowledge/procedures//345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201/345/257/274/350/210/252.md +0 -126
  2516. package/templates/knowledge/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +0 -67
  2517. package/templates/knowledge/procedures//345/220/216/347/253/257/346/216/245/345/217/243/345/256/236/347/216/260/345/267/245/344/275/234/346/265/201.md +0 -50
  2518. package/templates/knowledge/procedures//345/221/275/344/273/244/346/211/247/350/241/214/346/265/201/347/250/213.md +0 -53
  2519. package/templates/knowledge/procedures//345/256/211/345/205/250/345/212/240/345/233/272/346/265/201/346/260/264/347/272/277.md +0 -70
  2520. package/templates/knowledge/procedures//345/267/245/345/205/267/350/260/203/347/224/250/346/265/201/347/250/213.md +0 -49
  2521. package/templates/knowledge/procedures//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +0 -54
  2522. package/templates/knowledge/procedures//346/204/217/345/233/276/350/267/257/347/224/261/346/265/201/347/250/213.md +0 -49
  2523. package/templates/knowledge/procedures//346/216/245/345/217/243/351/233/206/346/210/220/346/265/201/346/260/264/347/272/277.md +0 -73
  2524. package/templates/knowledge/procedures//346/225/260/346/215/256/345/272/223/350/277/201/347/247/273/346/265/201/347/250/213.md +0 -64
  2525. package/templates/knowledge/procedures//346/234/254/345/234/260/346/265/217/350/247/210/345/231/250/351/252/214/346/224/266/345/267/245/344/275/234/346/265/201.md +0 -99
  2526. package/templates/knowledge/procedures//346/236/266/346/236/204/345/206/263/347/255/226/347/240/224/350/256/250/345/267/245/344/275/234/346/265/201.md +0 -51
  2527. package/templates/knowledge/procedures//346/236/266/346/236/204/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +0 -104
  2528. package/templates/knowledge/procedures//346/236/266/346/236/204/350/256/276/350/256/241/346/265/201/347/250/213.md +0 -57
  2529. package/templates/knowledge/procedures//346/246/202/345/277/265/351/252/214/350/257/201/346/265/201/346/260/264/347/272/277.md +0 -51
  2530. package/templates/knowledge/procedures//346/265/213/350/257/225/344/274/230/345/205/210/347/274/226/347/240/201/345/267/245/344/275/234/346/265/201.md +0 -91
  2531. package/templates/knowledge/procedures//346/272/220/347/240/201/345/216/237/345/236/213/344/272/244/344/273/230/346/265/201/347/250/213.md +0 -65
  2532. package/templates/knowledge/procedures//347/216/260/346/234/211/347/263/273/347/273/237/345/267/256/350/267/235/345/210/206/346/236/220/345/267/245/344/275/234/346/265/201.md +0 -97
  2533. package/templates/knowledge/procedures//347/237/245/350/257/206/347/273/264/346/212/244/346/265/201/346/260/264/347/272/277.md +0 -67
  2534. package/templates/knowledge/procedures//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +0 -72
  2535. package/templates/knowledge/procedures//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/347/250/213.md +0 -60
  2536. package/templates/knowledge/procedures//347/274/226/347/240/201/345/211/215/346/276/204/346/270/205/346/265/201/347/250/213.md +0 -86
  2537. package/templates/knowledge/procedures//347/274/272/351/231/267/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +0 -55
  2538. package/templates/knowledge/procedures//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md +0 -61
  2539. package/templates/knowledge/procedures//350/256/276/350/256/241/344/272/247/347/211/251/347/224/237/346/210/220/344/270/216/345/244/215/351/252/214/345/267/245/344/275/234/346/265/201.md +0 -45
  2540. package/templates/knowledge/procedures//350/257/246/347/273/206/350/256/276/350/256/241/346/265/201/347/250/213.md +0 -69
  2541. package/templates/knowledge/procedures//350/260/203/350/257/225/346/216/222/346/237/245/346/265/201/347/250/213.md +0 -70
  2542. package/templates/knowledge/procedures//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +0 -54
  2543. package/templates/knowledge/procedures//351/203/250/347/275/262/345/217/221/345/270/203/346/265/201/347/250/213.md +0 -72
  2544. package/templates/knowledge/procedures//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +0 -54
  2545. package/templates/knowledge/procedures//351/233/206/346/210/220/351/252/214/350/257/201/346/265/201/347/250/213.md +0 -63
  2546. package/templates/knowledge/procedures//351/234/200/346/261/202/346/276/204/346/270/205/346/265/201/347/250/213.md +0 -59
  2547. package/templates/knowledge/procedures//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +0 -67
  2548. package/templates/knowledge/procedures//351/252/214/350/257/201/350/256/241/345/210/222/346/265/201/347/250/213.md +0 -59
  2549. package/templates/knowledge/review//344/273/243/347/240/201/345/217/257/347/273/264/346/212/244/346/200/247/344/270/216/345/217/257/350/247/202/346/265/213/346/200/247/345/256/241/346/237/245.md +0 -81
  2550. package/templates/knowledge/review_rules/SOLID/344/273/243/347/240/201/345/256/241/346/237/245/350/247/204/345/210/231.md +0 -40
  2551. package/templates/knowledge/review_rules//344/272/244/344/273/230/345/256/214/345/244/207/346/200/247/345/256/241/346/237/245/350/247/204/345/210/231.md +0 -87
  2552. package/templates/knowledge/review_rules//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/256/241/346/237/245/350/247/204/345/210/231.md +0 -38
  2553. package/templates/knowledge/review_rules//345/256/211/345/205/250/345/256/241/346/237/245/350/247/204/345/210/231.md +0 -100
  2554. package/templates/knowledge/review_rules//345/271/266/345/217/221/345/256/241/346/237/245/350/247/204/345/210/231.md +0 -87
  2555. package/templates/knowledge/review_rules//346/200/247/350/203/275/345/256/241/346/237/245/350/247/204/345/210/231.md +0 -82
  2556. package/templates/knowledge/review_rules//346/216/245/345/217/243/345/245/221/347/272/246/345/256/241/346/237/245/350/247/204/345/210/231.md +0 -87
  2557. package/templates/knowledge/review_rules//346/236/266/346/236/204/345/256/241/346/237/245/350/247/204/345/210/231.md +0 -83
  2558. package/templates/knowledge/review_rules//350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +0 -101
  2559. package/templates/knowledge/rules/OOD/344/270/216SOLID/350/256/276/350/256/241/350/247/204/345/210/231.md +0 -62
  2560. package/templates/knowledge/rules//344/272/247/347/211/251/345/245/221/347/272/246/350/247/204/345/210/231.md +0 -57
  2561. package/templates/knowledge/rules//344/273/243/347/240/201/346/263/250/351/207/212/344/270/216/346/227/245/345/277/227/345/245/221/347/272/246/350/247/204/345/210/231.md +0 -150
  2562. package/templates/knowledge/rules//344/273/273/345/212/241/344/270/212/344/270/213/346/226/207/347/224/237/345/221/275/345/221/250/346/234/237/350/247/204/345/210/231.md +0 -65
  2563. package/templates/knowledge/rules//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/245/221/347/272/246/350/247/204/345/210/231.md +0 -55
  2564. package/templates/knowledge/rules//345/221/275/344/273/244/346/211/247/350/241/214/350/247/204/345/210/231.md +0 -61
  2565. package/templates/knowledge/rules//345/267/245/344/275/234/346/265/201/345/245/221/347/272/246/350/247/204/345/210/231.md +0 -56
  2566. package/templates/knowledge/rules//345/267/245/344/275/234/346/265/201/345/257/274/350/210/252/345/245/221/347/272/246/350/247/204/345/210/231.md +0 -144
  2567. package/templates/knowledge/rules//345/267/245/344/275/234/346/265/201/346/250/241/346/235/277/345/214/205/350/247/204/345/210/231.md +0 -48
  2568. package/templates/knowledge/rules//345/267/245/345/205/267/350/260/203/347/224/250/350/247/204/345/210/231.md +0 -61
  2569. package/templates/knowledge/rules//346/204/217/345/233/276/350/267/257/347/224/261/350/247/204/345/210/231.md +0 -62
  2570. package/templates/knowledge/rules//346/211/247/350/241/214/345/256/210/345/215/253/350/257/204/344/274/260/350/247/204/345/210/231.md +0 -60
  2571. package/templates/knowledge/rules//346/211/251/345/261/225/347/224/237/345/221/275/345/221/250/346/234/237/350/247/204/345/210/231.md +0 -48
  2572. package/templates/knowledge/rules//346/212/200/346/234/257/345/206/263/347/255/226/344/270/273/346/235/203/350/247/204/345/210/231.md +0 -64
  2573. package/templates/knowledge/rules//346/225/217/346/204/237/344/277/241/346/201/257/345/244/204/347/220/206/350/247/204/345/210/231.md +0 -56
  2574. package/templates/knowledge/rules//346/225/217/346/204/237/344/277/241/346/201/257/346/227/245/345/277/227/350/247/204/345/210/231.md +0 -69
  2575. package/templates/knowledge/rules//346/226/275/345/267/245/346/214/207/344/273/244/345/245/221/347/272/246/350/247/204/345/210/231.md +0 -78
  2576. package/templates/knowledge/rules//346/227/245/345/277/227/346/262/273/347/220/206/350/247/204/345/210/231.md +0 -49
  2577. package/templates/knowledge/rules//346/234/272/345/210/266/350/207/252/346/262/273/347/220/206/350/247/204/345/210/231.md +0 -48
  2578. package/templates/knowledge/rules//346/236/266/346/236/204/345/206/263/347/255/226/347/240/224/350/256/250/350/247/204/345/210/231.md +0 -49
  2579. package/templates/knowledge/rules//346/240/207/345/207/206/350/265/204/344/272/247/350/246/206/347/233/226/350/247/204/345/210/231.md +0 -72
  2580. package/templates/knowledge/rules//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +0 -50
  2581. package/templates/knowledge/rules//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214/345/216/237/345/210/231.md +0 -160
  2582. package/templates/knowledge/rules//346/250/241/346/235/277/350/265/204/344/272/247/345/217/257/350/247/201/346/200/247/350/247/204/345/210/231.md +0 -71
  2583. package/templates/knowledge/rules//346/263/250/345/206/214/350/241/250/345/237/272/347/241/200/350/256/276/346/226/275/350/247/204/345/210/231.md +0 -62
  2584. package/templates/knowledge/rules//346/274/224/350/277/233/345/233/236/345/275/222/350/247/204/345/210/231.md +0 -51
  2585. package/templates/knowledge/rules//346/274/224/350/277/233/345/233/236/345/275/222/351/227/250/346/216/247/350/247/204/345/210/231.md +0 -74
  2586. package/templates/knowledge/rules//347/224/250/346/210/267/345/217/215/351/246/210/345/245/221/347/272/246/350/247/204/345/210/231.md +0 -118
  2587. package/templates/knowledge/rules//347/237/245/350/257/206/346/262/273/347/220/206/350/247/204/345/210/231.md +0 -50
  2588. package/templates/knowledge/rules//347/237/245/350/257/206/346/263/250/345/205/245/350/276/271/347/225/214/350/247/204/345/210/231.md +0 -61
  2589. package/templates/knowledge/rules//347/237/245/350/257/206/350/265/204/344/272/247/346/262/273/347/220/206/350/247/204/345/210/231.md +0 -61
  2590. package/templates/knowledge/rules//347/254/254/344/270/200/346/200/247/345/216/237/347/220/206/346/216/250/347/220/206/350/247/204/345/210/231.md +0 -73
  2591. package/templates/knowledge/rules//347/273/206/350/212/202/347/272/252/345/276/213/350/247/204/345/210/231.md +0 -67
  2592. package/templates/knowledge/rules//350/204/221/346/232/264/344/270/216/346/226/271/346/241/210/346/216/242/347/264/242/350/247/204/345/210/231.md +0 -66
  2593. package/templates/knowledge/rules//350/256/241/345/210/222/345/211/215/347/275/256/351/227/250/350/247/204/345/210/231.md +0 -59
  2594. package/templates/knowledge/rules//350/256/276/350/256/241/344/272/247/347/211/251/345/214/205/350/247/204/345/210/231.md +0 -71
  2595. package/templates/knowledge/rules//350/257/201/346/215/256/351/251/261/345/212/250/344/270/216/345/217/215/345/271/273/350/247/211/350/247/204/345/210/231.md +0 -75
  2596. package/templates/knowledge/rules//350/267/250/345/271/263/345/217/260/350/267/257/345/276/204/345/256/211/345/205/250/350/247/204/345/210/231.md +0 -48
  2597. package/templates/knowledge/rules//350/276/223/345/205/245/346/235/220/346/226/231/345/245/221/347/272/246/350/247/204/345/210/231.md +0 -63
  2598. package/templates/knowledge/rules//351/200/232/347/224/250/345/206/263/347/255/226/347/240/224/350/256/250/350/247/204/345/210/231.md +0 -77
  2599. package/templates/knowledge/rules//351/205/215/347/275/256/344/274/230/345/205/210/347/272/247/350/247/204/345/210/231.md +0 -57
  2600. package/templates/knowledge/rules//351/205/215/347/275/256/350/220/275/347/233/230/350/276/271/347/225/214/350/247/204/345/210/231.md +0 -47
  2601. package/templates/knowledge/rules//351/230/262/345/255/244/345/262/233/345/256/236/347/216/260/350/247/204/345/210/231.md +0 -60
  2602. package/templates/knowledge/rules//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226/350/247/204/345/210/231.md +0 -64
  2603. package/templates/knowledge/rules//351/252/214/346/224/266/346/250/241/346/235/277/350/276/223/345/207/272/345/245/221/347/272/246/350/247/204/345/210/231.md +0 -96
  2604. package/templates/knowledge/rules//351/252/214/350/257/201/345/245/221/347/272/246/350/247/204/345/210/231.md +0 -61
  2605. package/templates/knowledge/templates//345/256/241/346/237/245/346/221/230/350/246/201.md +0 -65
  2606. /package/dist/engine/{audit_pool.d.ts → audit/audit_pool.d.ts} +0 -0
  2607. /package/dist/engine/{degradation.d.ts → audit/degradation.d.ts} +0 -0
  2608. /package/dist/engine/{degradation.js → audit/degradation.js} +0 -0
  2609. /package/dist/engine/{diagnostic_registry.d.ts → audit/diagnostic_registry.d.ts} +0 -0
  2610. /package/dist/engine/{failure_report.d.ts → audit/failure_report.d.ts} +0 -0
  2611. /package/dist/engine/{failure_report.js → audit/failure_report.js} +0 -0
  2612. /package/dist/engine/{java_quality_guard.d.ts → audit/java_quality_guard.d.ts} +0 -0
  2613. /package/dist/engine/{runtime_safety.d.ts → audit/runtime_safety.d.ts} +0 -0
  2614. /package/dist/engine/{test_strategy.d.ts → audit/test_strategy.d.ts} +0 -0
  2615. /package/dist/engine/{test_strategy.js → audit/test_strategy.js} +0 -0
  2616. /package/dist/engine/{config_write_boundary.d.ts → config/config_write_boundary.d.ts} +0 -0
  2617. /package/dist/engine/{regression_matrix.d.ts → config/regression_matrix.d.ts} +0 -0
  2618. /package/dist/engine/{architecture_design_contract.d.ts → contracts/architecture_design_contract.d.ts} +0 -0
  2619. /package/dist/engine/{architecture_design_contract.js → contracts/architecture_design_contract.js} +0 -0
  2620. /package/dist/engine/{backend_implementation_contract.d.ts → contracts/backend_implementation_contract.d.ts} +0 -0
  2621. /package/dist/engine/{capability_action_advisor.d.ts → contracts/capability_action_advisor.d.ts} +0 -0
  2622. /package/dist/engine/{capability_registry.d.ts → contracts/capability_registry.d.ts} +0 -0
  2623. /package/dist/engine/{code_maintainability_observability_contract.d.ts → contracts/code_maintainability_observability_contract.d.ts} +0 -0
  2624. /package/dist/engine/{control_plane_contract.d.ts → contracts/control_plane_contract.d.ts} +0 -0
  2625. /package/dist/engine/{decision_workshop.js → contracts/decision_workshop.js} +0 -0
  2626. /package/dist/engine/{design_artifact_pack.js → contracts/design_artifact_pack.js} +0 -0
  2627. /package/dist/engine/{detail_discipline.d.ts → contracts/detail_discipline.d.ts} +0 -0
  2628. /package/dist/engine/{detail_discipline.js → contracts/detail_discipline.js} +0 -0
  2629. /package/dist/engine/{escape_report.d.ts → contracts/escape_report.d.ts} +0 -0
  2630. /package/dist/engine/{existing_system_analysis.d.ts → contracts/existing_system_analysis.d.ts} +0 -0
  2631. /package/dist/engine/{existing_system_analysis.js → contracts/existing_system_analysis.js} +0 -0
  2632. /package/dist/engine/{metric_governance.d.ts → contracts/metric_governance.d.ts} +0 -0
  2633. /package/dist/engine/{metric_governance.js → contracts/metric_governance.js} +0 -0
  2634. /package/dist/engine/{ood_solid_contract.d.ts → contracts/ood_solid_contract.d.ts} +0 -0
  2635. /package/dist/engine/{verification_contract.d.ts → contracts/verification_contract.d.ts} +0 -0
  2636. /package/dist/engine/{verification_contract.js → contracts/verification_contract.js} +0 -0
  2637. /package/dist/engine/{log_governance.d.ts → core/log_governance.d.ts} +0 -0
  2638. /package/dist/engine/{logger.d.ts → core/logger.d.ts} +0 -0
  2639. /package/dist/engine/{chinese_semantic_priority.d.ts → knowledge/chinese_semantic_priority.d.ts} +0 -0
  2640. /package/dist/engine/{chinese_semantic_priority.js → knowledge/chinese_semantic_priority.js} +0 -0
  2641. /package/dist/engine/{documentation_governance.d.ts → knowledge/documentation_governance.d.ts} +0 -0
  2642. /package/dist/engine/{documentation_governance.js → knowledge/documentation_governance.js} +0 -0
  2643. /package/dist/engine/{knowledge_acceptance_registry.d.ts → knowledge/knowledge_acceptance_registry.d.ts} +0 -0
  2644. /package/dist/engine/{knowledge_asset_audit.d.ts → knowledge/knowledge_asset_audit.d.ts} +0 -0
  2645. /package/dist/engine/{knowledge_asset_generation_gate.d.ts → knowledge/knowledge_asset_generation_gate.d.ts} +0 -0
  2646. /package/dist/engine/{knowledge_asset_generation_gate.js → knowledge/knowledge_asset_generation_gate.js} +0 -0
  2647. /package/dist/engine/{knowledge_asset_migration.d.ts → knowledge/knowledge_asset_migration.d.ts} +0 -0
  2648. /package/dist/engine/{knowledge_config_loader.d.ts → knowledge/knowledge_config_loader.d.ts} +0 -0
  2649. /package/dist/engine/{knowledge_sovereignty.d.ts → knowledge/knowledge_sovereignty.d.ts} +0 -0
  2650. /package/dist/engine/{knowledge_template_contracts.js → knowledge/knowledge_template_contracts.js} +0 -0
  2651. /package/dist/engine/{language_policy_contract.d.ts → knowledge/language_policy_contract.d.ts} +0 -0
  2652. /package/dist/engine/{language_policy_contract.js → knowledge/language_policy_contract.js} +0 -0
  2653. /package/dist/engine/{release_compatibility.d.ts → knowledge/release_compatibility.d.ts} +0 -0
  2654. /package/dist/engine/{release_compatibility.js → knowledge/release_compatibility.js} +0 -0
  2655. /package/dist/engine/{conflict_gate.d.ts → pipeline/conflict_gate.d.ts} +0 -0
  2656. /package/dist/engine/{diff_ownership.d.ts → pipeline/diff_ownership.d.ts} +0 -0
  2657. /package/dist/engine/{diff_ownership_store.d.ts → pipeline/diff_ownership_store.d.ts} +0 -0
  2658. /package/dist/engine/{plan_proposal_gate.d.ts → pipeline/plan_proposal_gate.d.ts} +0 -0
  2659. /package/dist/engine/{workspace_resumer.d.ts → pipeline/workspace_resumer.d.ts} +0 -0
  2660. /package/dist/engine/{release_gate_scenario_registry.d.ts → release/release_gate_scenario_registry.d.ts} +0 -0
  2661. /package/dist/engine/{standard_asset_coverage.d.ts → templates/standard_asset_coverage.d.ts} +0 -0
  2662. /package/dist/engine/{template_sync.js → templates/template_sync.js} +0 -0
  2663. /package/dist/engine/{project_stage_detector.d.ts → workflow/project_stage_detector.d.ts} +0 -0
  2664. /package/templates/{knowledge/product_profiles → profiles}/b2b-internal.yaml +0 -0
  2665. /package/templates/{knowledge/product_profiles → profiles}/b2c.yaml +0 -0
  2666. /package/templates/{knowledge/product_profiles → profiles}/saas.yaml +0 -0
@@ -1,4205 +1,10 @@
1
- import { debug, internalWarn } from "../../engine/logger.js";
2
- import { z } from "zod";
3
- import path from "node:path";
4
- import fss from "node:fs";
5
- import crypto from "node:crypto";
6
- import { normalizePathCandidate } from "../../engine/input_material_extractor.js";
7
- import { archiveStaleCurrentPointer, detectStaleCurrentTask } from "../../engine/stale_current_task_detector.js";
8
- import { verifyArtifact } from "../../engine/artifact_contract_registry.js";
9
- import { verifyRouteDecisionContract } from "../../engine/route_decision_contract_verifier.js";
10
- import { isSameOrDescendantPath } from "../../engine/path_scope_utils.js";
11
- import { findToolInvocationContractByName, createToolTrace, validateToolInvocation, hasWriteSideEffect, } from "../../engine/tool_invocation_contract_registry.js";
12
- import { TOOL_DIAGNOSTIC_CODES } from "../../engine/diagnostic_registry.js";
13
- function createLazy(loader) {
14
- let mod = { loaded: null, promise: null };
15
- return () => {
16
- if (mod.loaded)
17
- return Promise.resolve(mod.loaded);
18
- if (!mod.promise)
19
- mod.promise = loader().then(m => { mod.loaded = m; return m; });
20
- return mod.promise;
21
- };
22
- }
23
- const lazyClassifier = createLazy(() => import("../../engine/classifier.js"));
24
- const lazyIntentRouter = createLazy(() => import("../../engine/intent_router.js"));
25
- const lazyExpander = createLazy(() => import("../../engine/intent_expander.js"));
26
- const lazyVerifier = createLazy(() => import("../../engine/verifier.js"));
27
- const lazyEvolver = createLazy(() => import("../../engine/evolver.js"));
28
- const lazyPlanner = createLazy(() => import("../../engine/task_planner.js"));
29
- const lazyImpact = createLazy(() => import("../../engine/impact_analyzer.js"));
30
- const lazyReviewer = createLazy(() => import("../../engine/code_reviewer.js"));
31
- const lazyDebt = createLazy(() => import("../../engine/debt_tracker.js"));
32
- const lazyScaffolder = createLazy(() => import("../../engine/scaffolder.js"));
33
- const lazyDelivery = createLazy(() => import("../../engine/delivery.js"));
34
- const lazyChangeCoord = createLazy(() => import("../../engine/change_coordinator.js"));
35
- const lazyTeam = createLazy(() => import("../../engine/team_awareness.js"));
36
- const lazyContractGuard = createLazy(() => import("../../engine/contract_guard.js"));
37
- const lazyOnboarding = createLazy(() => import("../../engine/onboarding.js"));
38
- const lazyGitDeps = createLazy(() => import("../../engine/git_deps.js"));
39
- const lazyKnowledge = createLazy(() => import("../../engine/knowledge_manager.js"));
40
- const lazyFeasibility = createLazy(() => import("../../engine/feasibility_checker.js"));
41
- const lazyDebugger = createLazy(() => import("../../engine/debugger.js"));
42
- const lazyObservability = createLazy(() => import("../../engine/observability.js"));
43
- const lazyGovernance = createLazy(() => import("../../engine/governance_report.js"));
44
- const lazyMigration = createLazy(() => import("../../engine/migration_guard.js"));
45
- const lazyTestGen = createLazy(() => import("../../engine/test_generator.js"));
46
- const lazyTestQuality = createLazy(() => import("../../engine/test_quality.js"));
47
- const lazyDepScan = createLazy(() => import("../../engine/dependency_scanner.js"));
48
- const lazyDebtReport = createLazy(() => import("../../engine/debt_reporter.js"));
49
- const lazyExploration = createLazy(() => import("../../engine/exploration.js"));
50
- const lazyWorkspaceResumer = createLazy(() => import("../../engine/workspace_resumer.js"));
51
- const lazyLLM = createLazy(() => import("../../engine/llm_gateway.js"));
52
- const lazyIO = createLazy(() => import("../../engine/io_controller.js"));
53
- const lazyCapability = createLazy(() => import("../../engine/capability_registry.js"));
54
- const lazyDecision = createLazy(() => import("../../engine/decision_contract.js"));
55
- const lazyAnchor = createLazy(() => import("../../engine/cognitive_anchor.js"));
56
- const lazyJob = createLazy(() => import("../../engine/job_manager.js"));
57
- const lazyAuditPool = createLazy(() => import("../../engine/audit_pool.js"));
58
- const lazyEscape = createLazy(() => import("../../engine/escape_report.js"));
59
- const lazyAuditSampler = createLazy(() => import("../../engine/audit_sampler.js"));
60
- const lazyCapAdvisor = createLazy(() => import("../../engine/capability_action_advisor.js"));
61
- const lazyCapState = createLazy(() => import("../../engine/capability_state_store.js"));
62
- const lazyMainPath = createLazy(() => import("../../engine/main_path_integration_contract.js"));
63
- const lazyDualLayer = createLazy(() => import("../../engine/dual_layer_mechanism_registry.js"));
64
- const lazyInputMaterial = createLazy(() => import("../../engine/input_material_contract_registry.js"));
65
- const lazyConfigPrecedence = createLazy(() => import("../../engine/config_precedence_contract.js"));
66
- const lazyEnforcementGuard = createLazy(() => import("../../engine/enforcement_guard.js"));
67
- const lazyWorkspaceLease = createLazy(() => import("../../engine/workspace_lease.js"));
68
- const lazyDeliveryReadiness = createLazy(() => import("../../engine/delivery_readiness.js"));
69
- const lazyVerificationContract = createLazy(() => import("../../engine/verification_contract.js"));
70
- const lazyFailureReport = createLazy(() => import("../../engine/failure_report.js"));
71
- const lazyDegradation = createLazy(() => import("../../engine/degradation.js"));
72
- const lazyArchitectureDesign = createLazy(() => import("../../engine/architecture_design_contract.js"));
73
- const lazyExistingSystemAnalysis = createLazy(() => import("../../engine/existing_system_analysis.js"));
74
- const lazyCodingReadiness = createLazy(() => import("../../engine/coding_readiness_gate.js"));
75
- const lazyLocalAcceptance = createLazy(() => import("../../engine/local_docker_acceptance.js"));
76
- const lazyInstructionContract = createLazy(() => import("../../engine/instruction_contract.js"));
77
- const lazyTechnologyDecision = createLazy(() => import("../../engine/technology_decision.js"));
78
- const lazyDetailDiscipline = createLazy(() => import("../../engine/detail_discipline.js"));
79
- const lazyFirstPrinciples = createLazy(() => import("../../engine/first_principles.js"));
80
- const lazyBrainstormContract = createLazy(() => import("../../engine/brainstorm_contract.js"));
81
- const lazyArchitectureWorkshop = createLazy(() => import("../../engine/architecture_decision_workshop.js"));
82
- const lazyDesignArtifactPack = createLazy(() => import("../../engine/design_artifact_pack.js"));
83
- const lazyStandardAssetContract = createLazy(() => import("../../engine/standard_asset_contract.js"));
84
- const lazyDecisionWorkshop = createLazy(() => import("../../engine/decision_workshop.js"));
85
- const lazyNavigation = createLazy(() => import("../../engine/next_action_planner.js"));
86
- const lazyOodSolid = createLazy(() => import("../../engine/ood_solid_contract.js"));
87
- const lazyBackendImplementation = createLazy(() => import("../../engine/backend_implementation_contract.js"));
88
- const lazyCodeObservability = createLazy(() => import("../../engine/code_maintainability_observability_contract.js"));
89
- const lazyTraceability = createLazy(() => import("../../engine/traceability.js"));
90
- const ARCHITECTURE_CONTEXT_PATTERN = /架构|architecture|系统设计|技术方案|现有系统|差距分析|gap.?analysis/i;
91
- function stripPathLikeReferences(text) {
92
- return text.replace(/(^|[\s"'((])(?:~\/|\.{1,2}\/|\/|[A-Za-z0-9_.-]+\/)[^\s"',。;,;::))]+/g, "$1 ");
93
- }
94
- function hasArchitectureIntentSignal(intent) {
95
- return ARCHITECTURE_CONTEXT_PATTERN.test(stripPathLikeReferences(intent ?? ""));
96
- }
97
- function decodeIndexedJsonString(value) {
98
- if (!value || typeof value !== "object" || Array.isArray(value))
99
- return value;
100
- const entries = Object.entries(value);
101
- if (entries.length === 0)
102
- return value;
103
- const isIndexedChars = entries.every(([key, entryValue]) => /^\d+$/.test(key) && typeof entryValue === "string" && entryValue.length <= 1);
104
- if (!isIndexedChars)
105
- return value;
106
- const serialized = entries
107
- .sort(([a], [b]) => Number(a) - Number(b))
108
- .map(([, entryValue]) => entryValue)
109
- .join("")
110
- .trim();
111
- if (!serialized.startsWith("{"))
112
- return value;
113
- try {
114
- return JSON.parse(serialized);
115
- }
116
- catch {
117
- return value;
118
- }
119
- }
120
1
  /**
121
- * 解析 MCP 输入中的契约对象。
122
- * @description 部分 MCP 客户端会把 z.unknown() 对象参数序列化为 JSON 字符串;
123
- * 入口层必须兼容字符串对象,避免后续机制访问数组字段时触发 JS 运行时错误。
2
+ * Backward-compatible re-export shim for tools.
3
+ *
4
+ * The MCP Server tools were extracted from this location to `src/server/tools/`.
5
+ * This shim preserves backward compatibility for any external consumers
6
+ * that imported from the old path.
124
7
  */
125
- function parseContractObject(value, fieldName) {
126
- if (value === undefined || value === null)
127
- return {};
128
- // 字符串 → 尝试 JSON 解析(可能被 MCP 客户端序列化为 JSON 字符串)
129
- let parsed;
130
- if (typeof value === "string") {
131
- try {
132
- parsed = JSON.parse(value);
133
- }
134
- catch (parseErr) {
135
- return { error: `${fieldName} 的 JSON 解析失败: ${parseErr.message}。请检查 JSON 格式是否正确` };
136
- }
137
- }
138
- else {
139
- parsed = value;
140
- }
141
- const candidate = decodeIndexedJsonString(parsed);
142
- if (!candidate || typeof candidate !== "object" || Array.isArray(candidate)) {
143
- return { error: `${fieldName} 必须是 JSON 对象(当前类型: ${Array.isArray(candidate) ? "array" : typeof candidate})。期望格式请参考 expected_schema` };
144
- }
145
- return { value: candidate };
146
- }
147
- /** 需要通过 parseContractObject 校验的契约字段列表 */
148
- const CONTRACT_OBJECT_FIELDS = [
149
- "architecture_decision_workshop", "decision_workshop",
150
- "technology_decision_contract", "technology_decision_record",
151
- "detail_discipline_contract", "provided_details",
152
- "first_principles_frame", "brainstorm_session",
153
- "design_artifact_pack", "ood_solid_summary",
154
- "backend_implementation_work_package", "code_observability_work_package",
155
- ];
156
- /** 需要规范化的字段 */
157
- const NORMALIZED_FIELDS = {
158
- decision_workshop: "decision_workshop",
159
- };
160
- // ── Zod Schema 定义 ──
161
- const ClassifySchema = {
162
- intent: z.string().describe("开发者意图描述"),
163
- project_path: z.string().optional().describe("项目路径(默认当前目录)"),
164
- };
165
- const ExpandSchema = {
166
- task_id: z.string().describe("sf_classify 返回的任务 ID"),
167
- clarification_answers: z.array(z.string()).optional().describe("对澄清问题的回答"),
168
- input_material_confirmations: z.array(z.string()).optional().describe("已确认安全的输入材料路径列表"),
169
- architecture_decision_workshop: z.record(z.unknown()).optional().describe("架构设计前六域决策记录。示例 {domains:[{domain:'backend',options:[{id:'opt-a',title:'...'}],recommended_option_id:'opt-a',user_confirmation_ref:'confirm:...'}],status:'confirmed'}"),
170
- decision_workshop: z.record(z.unknown()).optional().describe("通用决策研讨合同。示例 {activated_packs:['delivery_validation'],domains:[{domain:'delivery_validation',options:[{id:'opt-a',title:'...'}],recommended_option_id:'opt-a',user_confirmation_ref:'confirm:...'}],status:'confirmed'}"),
171
- technology_decision_contract: z.record(z.unknown()).optional().describe("技术决策主权契约。示例 {decision_id:'TECH-001',decision_scope:'architecture',options:[{option_id:'opt-a',title:'A',description:'...'}],recommended_option:'opt-a',rejected_options:[{option:'opt-b',reason:'...'}],evidence:[{claim:'...',supporting_facts:['...']}],falsification:['...'],failure_conditions:['...'],validation_plan:['...'],rollback_or_exit_plan:['...'],human_gate_required:true,human_gate_evidence:'confirm:...',executable_without_human:false}"),
172
- technology_decision_record: z.record(z.unknown()).optional().describe("技术决策执行记录。示例 {decision_id:'TECH-001',selected_option:'opt-a',status:'approved',approved_by:'user',evidence_refs:['confirm:...']}"),
173
- detail_discipline_contract: z.record(z.unknown()).optional().describe("细节纪律契约。示例 {contract_id:'detail-001',required_dimensions:['boundary','failure_path','rollback'],blocking_dimensions:['boundary'],status:'ready'}"),
174
- provided_details: z.record(z.unknown()).optional().describe("细节纪律已提供证据。示例 {boundary:['只检查 readiness,不改代码'],failure_path:['unknown 时标记证据不足'],rollback:['无写入,无需回滚']}"),
175
- first_principles_frame: z.record(z.unknown()).optional().describe("高影响任务第一性原理框架。示例 {fundamental_need:'...',known_facts:['...'],assumptions:['...'],candidate_solutions:[{solution_id:'s1',description:'...',complexity:'low'}],simplest_viable_solution:'s1',chosen_solution:'s1',falsification_questions:['...'],why_not_legacy_path:'...'}"),
176
- brainstorm_session: z.record(z.unknown()).optional().describe("不确定项/方案选择会话。示例 {trigger:'uncertainty',options:[{option_id:'opt-a',title:'...',description:'...',pros:['...'],cons:['...']}],recommended_option_id:'opt-a',rejected_option_ids:['opt-b'],failure_conditions:['...'],brainstorm_status:'options_ready'}"),
177
- design_artifact_pack: z.record(z.unknown()).optional().describe("设计产物包路径映射或复验状态。示例 {status:'implementation_ready',paths:{architecture_document:'docs/architecture/01-架构设计文档.md'},verification_refs:['verification:...']}"),
178
- ood_solid_summary: z.record(z.unknown()).optional().describe("复杂编码任务 OOD/SOLID 摘要。示例 {status:'confirmed',responsibilities:['...'],interfaces:['...'],risks:['...'],evidence_refs:['...']}"),
179
- backend_implementation_work_package: z.record(z.unknown()).optional().describe("后端接口实现工程工作包。示例 {status:'confirmed',api_boundary:['...'],transaction_boundary:['...'],error_contract:['...'],evidence_refs:['...']}"),
180
- code_observability_work_package: z.record(z.unknown()).optional().describe("代码可维护性与可观测性工作包。示例 {status:'confirmed',logging_plan:['...'],comment_plan:['...'],sensitive_logging_policy:'redact',evidence_refs:['...']}"),
181
- };
182
- const VerifySchema = {
183
- task_id: z.string().describe("任务 ID"),
184
- changed_files: z.array(z.string()).describe("本次修改的文件列表"),
185
- };
186
- const LearnSchema = {
187
- task_id: z.string().describe("任务 ID"),
188
- result: z.enum(["success", "failure"]).describe("执行结果"),
189
- failure_type: z.enum(["deterministic", "fixable", "scope_insufficient"]).optional().describe("失败类型"),
190
- verify_output: z.object({
191
- build_passed: z.boolean(),
192
- tests_passed: z.boolean(),
193
- acceptance_results: z.record(z.string(), z.boolean()).optional(),
194
- }).optional().describe("验证输出"),
195
- confirm: z.boolean().optional().describe("确认执行学习(写入状态)"),
196
- authorized: z.boolean().optional().describe("confirm 的兼容别名"),
197
- };
198
- const StatusSchema = {
199
- task_id: z.string().optional().describe("任务 ID(不传则查当前任务)"),
200
- action: z.enum(["current", "recent", "resume", "cancel", "archive_stale", "retry_expand"]).optional().describe("操作类型"),
201
- confirm: z.boolean().optional().describe("确认执行会写入状态的操作,例如 cancel/archive_stale/job_cancel"),
202
- authorized: z.boolean().optional().describe("confirm 的兼容别名"),
203
- job_id: z.string().optional().describe("Job ID(用于 job_status / job_resume / job_cancel)"),
204
- job_action: z.enum(["job_status", "job_resume", "job_cancel"]).optional().describe("Job 操作: 查询状态、从 checkpoint 恢复、取消 job(advisory)"),
205
- };
206
- const PlanSchema = {
207
- task_id: z.string().describe("sf_classify 返回的任务 ID"),
208
- };
209
- const AnalyzeSchema = {
210
- task_id: z.string().describe("sf_expand 返回的任务 ID(需要先执行 expand)"),
211
- };
212
- const ReviewSchema = {
213
- task_id: z.string().describe("任务 ID"),
214
- changed_files: z.array(z.string()).describe("本次修改的文件列表"),
215
- file_contents: z.record(z.string(), z.string()).optional().describe("变更文件的当前内容(key=文件路径,value=文件内容),不传则自动读取"),
216
- };
217
- const ScaffoldSchema = {
218
- task_id: z.string().describe("sf_classify 返回的任务 ID(task_type 应为 scaffold)"),
219
- };
220
- const RecordVerificationExecutionSchema = {
221
- task_id: z.string().describe("任务 ID"),
222
- plan_id: z.string().describe("关联的 VerificationPlan ID"),
223
- execution_records: z.array(z.object({
224
- command: z.string().describe("执行的验证命令"),
225
- exit_code: z.number().describe("命令退出码,0 表示通过"),
226
- stdout_hash: z.string().describe("stdout 的 SHA256 hash"),
227
- stderr_hash: z.string().describe("stderr 的 SHA256 hash"),
228
- started_at: z.string().describe("命令开始时间 ISO 8601"),
229
- finished_at: z.string().describe("命令结束时间 ISO 8601"),
230
- evidence_id: z.string().describe("执行证据 ID"),
231
- })).describe("真实执行记录列表"),
232
- };
233
- const AcceptSchema = {
234
- task_id: z.string().describe("任务 ID"),
235
- confirm: z.boolean().describe("用户显式确认验收结果,必须为 true"),
236
- confirmed_by: z.string().describe("执行确认的用户或审批者标识"),
237
- confirmation_ref: z.string().describe("可审计的用户确认引用"),
238
- acceptance_notes: z.string().describe("验收备注或不适用理由"),
239
- run_mode: z.enum(["manual_review", "not_applicable"]).describe("验收模式"),
240
- final_access: z.object({
241
- frontend_urls: z.array(z.string()),
242
- backend_urls: z.array(z.string()),
243
- docs_or_swagger_urls: z.array(z.string()),
244
- start_commands: z.array(z.string()),
245
- stop_commands: z.array(z.string()),
246
- running_status: z.string(),
247
- manual_review_steps_zh: z.array(z.string()),
248
- known_limits_zh: z.array(z.string()),
249
- }).optional().describe("manual_review 模式下的真实本地访问证据"),
250
- };
251
- const DeliverSchema = {
252
- task_id: z.string().describe("任务 ID"),
253
- changed_files: z.array(z.string()).optional().describe("变更文件列表(不传则使用任务记录中的文件)"),
254
- skip_push: z.boolean().optional().describe("跳过推送"),
255
- skip_pr: z.boolean().optional().describe("跳过 PR 创建"),
256
- confirm: z.boolean().optional().describe("确认执行交付(破坏性操作)"),
257
- authorized: z.boolean().optional().describe("confirm 的兼容别名"),
258
- };
259
- const CoordCheckSchema = {
260
- task_id: z.string().optional().describe("任务 ID(用于获取变更文件列表)"),
261
- branch: z.string().optional().describe("指定分支(不传则使用当前分支)"),
262
- };
263
- const TeamStatusSchema = {
264
- since: z.string().optional().describe("起始日期(ISO 格式,默认 7 天前)"),
265
- include_knowledge: z.boolean().optional().describe("包含知识库更新信息"),
266
- };
267
- const ContractCheckSchema = {
268
- task_id: z.string().describe("任务 ID"),
269
- changed_files: z.array(z.string()).optional().describe("变更文件列表(不传则从任务记录获取)"),
270
- };
271
- const OnboardSchema = {
272
- step: z.enum(["project_overview", "code_tour", "knowledge_review", "first_task"]).optional().describe("当前引导步骤"),
273
- reset: z.boolean().optional().describe("重置引导会话"),
274
- };
275
- const FeasibilityCheckSchema = {
276
- task_id: z.string().describe("任务 ID(需要已完成 classify)"),
277
- };
278
- const DebugSchema = {
279
- error_output: z.string().describe("错误输出文本"),
280
- task_id: z.string().optional().describe("关联任务 ID"),
281
- };
282
- const ObservabilitySchema = {
283
- period_days: z.number().optional().describe("报告周期天数(默认 30)"),
284
- };
285
- const MigrationCheckSchema = {
286
- content: z.string().describe("迁移文件内容(SQL/DDL)"),
287
- filename: z.string().describe("文件名(如 V001__create_users.sql)"),
288
- };
289
- const TestGuideSchema = {
290
- changed_files: z.array(z.string()).describe("变更文件列表"),
291
- };
292
- const TestQualitySchema = {
293
- content: z.string().describe("测试文件内容"),
294
- filename: z.string().describe("测试文件名"),
295
- };
296
- const DependencyScanSchema = {
297
- content: z.string().describe("依赖声明文件内容(package.json / pom.xml / build.gradle)"),
298
- filename: z.string().describe("文件名"),
299
- };
300
- const ExploreSchema = {
301
- domain_query: z.string().describe("技术选型领域关键词(如:分布式锁、流式处理、复杂表单状态管理、缓存策略)"),
302
- task_id: z.string().optional().describe("关联任务 ID(可选,用于关联项目上下文)"),
303
- };
304
- // ── 工具注册 ──
305
- /**
306
- * 注册所有 SoloForge MCP 工具。
307
- * @description 核心注册函数,将全部 MCP 工具注册到指定的 McpServer 实例。
308
- * 包含:sf_classify、sf_expand、sf_verify、sf_learn、sf_status、
309
- * sf_plan、sf_plan_advance、sf_analyze、sf_review、sf_scaffold、
310
- * sf_deliver、sf_coord_check、sf_team_status、sf_contract_check、
311
- * sf_onboard、sf_feasibility_check、sf_debug、sf_observability、
312
- * sf_migration_check、sf_test_guide、sf_test_quality、sf_dependency_scan、
313
- * sf_debt_report、sf_explore、sf_knowledge_audit/add/update、sf_resume_workspace。
314
- * @param server - MCP 服务器实例
315
- * @param deps - SoloForge 核心依赖项
316
- */
317
- /**
318
- * Plan Gate 写工具拦截 — 从 registerSafeTool 中间件提取的纯函数。
319
- * gate 和外部测试可直接调用,无需 MCP server mock。
320
- */
321
- export function checkWriteToolPlanGate(params) {
322
- if (!hasWriteSideEffect(params.sideEffects))
323
- return { allowed: true };
324
- if (!params.ctx || !params.ctx.plan_proposal_gate) {
325
- return {
326
- allowed: false,
327
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.planGate,
328
- violation_type: "guard_blocked",
329
- reason: `工具 ${params.toolName} 执行前缺少 Plan Proposal Gate`,
330
- };
331
- }
332
- return { allowed: true };
333
- }
334
- /**
335
- * 施工指令契约门 — 写操作前检查施工指令完整性。
336
- * 通过引擎模块函数真实消费。
337
- * 调用链 1: registerInstructionIssueCandidate(无契约时创建候选 draft)
338
- * 调用链 2: enforceInstructionBeforeImplementation → checkInstructionCompleteness → validateInstructionContract
339
- */
340
- export async function checkInstructionContractGate(params) {
341
- if (!hasWriteSideEffect(params.sideEffects))
342
- return { allowed: true };
343
- if (!params.ctx)
344
- return { allowed: true };
345
- let instruction = params.ctx.instruction_contract;
346
- const instrModule = await lazyInstructionContract();
347
- // 无契约时消费 registerInstructionIssueCandidate — 创建 draft 候选并保存
348
- if (!instruction && params.task_id) {
349
- instruction = instrModule.registerInstructionIssueCandidate({
350
- task_id: params.task_id,
351
- description: params.toolName,
352
- source: "auto_detected",
353
- suggested_fields: {},
354
- });
355
- params.ctx.instruction_contract = instruction;
356
- if (params.taskContextMgr) {
357
- await params.taskContextMgr.save(params.ctx);
358
- }
359
- }
360
- if (!instruction)
361
- return { allowed: true };
362
- // 消费 enforceInstructionBeforeImplementation(链式消费 checkInstructionCompleteness + validateInstructionContract)
363
- const result = await instrModule.enforceInstructionBeforeImplementation(instruction, params.toolName);
364
- // Draft 状态不阻断 — 仅在 confirmed/executing/blocked 状态时强制
365
- if (instruction.status === "draft") {
366
- return { allowed: true, findings: result.allowed ? [] : [result.reason_zh] };
367
- }
368
- if (!result.allowed) {
369
- return {
370
- allowed: false,
371
- diagnostic_code: result.diagnostic_code,
372
- violation_type: "guard_blocked",
373
- reason: result.reason_zh,
374
- };
375
- }
376
- return { allowed: true };
377
- }
378
- /**
379
- * 设计产物编码门 — 依赖设计包的任务,在真实复验完成前不得写入业务实现。
380
- * 仅阻断文件/配置/外部交付写入;任务状态、设计文档复验和讨论本身仍可推进。
381
- */
382
- export function checkDesignArtifactWriteGate(params) {
383
- const implementationWrite = params.sideEffects.some((effect) => ["file_write", "config_write", "external_write", "git_commit", "git_push", "pr_create"].includes(effect));
384
- if (!implementationWrite || !params.ctx?.design_artifact_pack)
385
- return { allowed: true };
386
- if (params.ctx.design_artifact_pack.status === "implementation_ready")
387
- return { allowed: true };
388
- return {
389
- allowed: false,
390
- diagnostic_code: "SF-DESIGN-PACK-NOT-READY",
391
- reason: `工具 ${params.toolName} 依赖的设计产物包状态为 ${params.ctx.design_artifact_pack.status},未完成真实复验,不得写入实现或交付`,
392
- };
393
- }
394
- /**
395
- * 架构设计门 — 架构设计类任务膨胀前执行 reviewArchitectureDesign。
396
- * Architecture Design Contract enforcement。
397
- */
398
- export async function checkArchitectureDesignGate(params) {
399
- const route = params.route;
400
- if (route !== "artifact_generation" && route !== "analysis")
401
- return { allowed: true };
402
- if (!params.ctx)
403
- return { allowed: true };
404
- const expansion = params.ctx.expansion;
405
- if (!expansion)
406
- return { allowed: true };
407
- const archModule = await lazyArchitectureDesign();
408
- const contract = expansion.architecture_contract;
409
- if (contract) {
410
- const result = archModule.reviewArchitectureDesign(contract);
411
- if (!result.passed) {
412
- return {
413
- allowed: false,
414
- reason_zh: "架构设计审查未通过",
415
- findings: result.review.missing_sections ?? ["架构设计审查失败"],
416
- };
417
- }
418
- }
419
- return { allowed: true };
420
- }
421
- /**
422
- * 架构决策研讨门 — 正式架构设计前六域决策必须闭合。
423
- * 与是否存在施工指令契约无关,架构设计路由必经此门。
424
- */
425
- export async function checkArchitectureDecisionWorkshopGate(params) {
426
- const workshopModule = await lazyArchitectureWorkshop();
427
- if (!workshopModule.requiresArchitectureDecisionWorkshop(params.workflowIntent, params.ctx.intent)) {
428
- return { allowed: true };
429
- }
430
- const existing = params.ctx.architecture_decision_workshop;
431
- const contract = existing ?? workshopModule.createArchitectureDecisionWorkshop(params.ctx.task_id, params.projectContext ?? "new_system");
432
- if (params.projectContext === "existing_system" && contract.project_context !== "existing_system") {
433
- contract.project_context = "existing_system";
434
- }
435
- const evaluatedContract = workshopModule.applyArchitectureWorkshopGate(contract) ?? contract;
436
- const gate = workshopModule.evaluateArchitectureDecisionWorkshop(evaluatedContract);
437
- params.ctx.architecture_decision_workshop = evaluatedContract;
438
- return {
439
- allowed: gate.allowed,
440
- findings: gate.blocking_findings,
441
- next_domain: gate.next_domain,
442
- contract: evaluatedContract,
443
- };
444
- }
445
- /**
446
- * 现有系统分析门 — 现有项目编码前必须先做分析。
447
- * Existing System Analysis Contract enforcement。
448
- */
449
- export async function checkExistingSystemAnalysisGate(params) {
450
- const archModule = await lazyExistingSystemAnalysis();
451
- const context = archModule.detectProjectContext(params.hasExistingCode, params.hasPackageJson, params.hasSrcDir);
452
- const gateResult = archModule.checkAnalysisGate(context, params.hasAnalysis, params.hasGapAnalysis);
453
- if (!gateResult.allowed) {
454
- return {
455
- allowed: false,
456
- reason_zh: gateResult.reason,
457
- missing_analysis: gateResult.missing_analysis,
458
- };
459
- }
460
- return { allowed: true };
461
- }
462
- /**
463
- * 编码就绪门 — 编码前必须有测试计划 + 验收标准。
464
- * Coding Readiness / Test-First enforcement。
465
- */
466
- export async function checkCodingReadinessGate(params) {
467
- if (!params.ctx)
468
- return { allowed: true };
469
- const readinessModule = await lazyCodingReadiness();
470
- const contract = params.ctx.coding_readiness_contract;
471
- if (!contract) {
472
- return {
473
- allowed: true,
474
- reason_zh: "无编码就绪契约(非编码任务),放行",
475
- };
476
- }
477
- const result = readinessModule.evaluateCodingReadiness(contract, false, false, false);
478
- if (!result.allowed) {
479
- return {
480
- allowed: false,
481
- reason_zh: result.reason,
482
- missing_preconditions: result.missing_preconditions,
483
- };
484
- }
485
- return { allowed: true };
486
- }
487
- /**
488
- * 本地验收门 — 前端/全栈交付前必须有本地访问证据。
489
- * Local Docker / Browser Acceptance enforcement。
490
- */
491
- export async function checkLocalAcceptanceGate(params) {
492
- const acceptanceModule = await lazyLocalAcceptance();
493
- const requirement = acceptanceModule.requiresLocalAcceptance(params.hasFrontend, params.hasBackend, params.hasDockerCompose, params.hasDockerfile);
494
- if (!requirement.required)
495
- return { allowed: true };
496
- if (!params.ctx) {
497
- return {
498
- allowed: false,
499
- reason_zh: "需要本地验收但无任务上下文",
500
- required_but_missing: ["local_acceptance_evidence"],
501
- };
502
- }
503
- const evidence = params.ctx.local_acceptance_evidence;
504
- if (!evidence) {
505
- return {
506
- allowed: false,
507
- reason_zh: `项目需要本地验收(模式: ${requirement.run_mode})但缺少验收证据`,
508
- required_but_missing: ["local_acceptance_evidence", "final_access_url"],
509
- };
510
- }
511
- if (evidence.run_mode === "not_applicable") {
512
- return {
513
- allowed: false,
514
- reason_zh: "该项目需要本地验收,不得以 not_applicable 代替真实访问证据",
515
- required_but_missing: ["manual_review", "final_access_url"],
516
- };
517
- }
518
- const finalAccessResult = acceptanceModule.validateFinalAccess(evidence.final_access, requirement.run_mode);
519
- if (!finalAccessResult.passed) {
520
- return {
521
- allowed: false,
522
- reason_zh: `本地验收证据不完整: ${finalAccessResult.blocking_reasons.join("; ")}`,
523
- required_but_missing: ["validated_final_access"],
524
- };
525
- }
526
- return { allowed: true };
527
- }
528
- // ── S4 触发判定函数 ──
529
- // 不依赖 hasInstructionContract,基于 route + intent 风险信号判断是否需要 enforcement。
530
- // 关键设计: 不是所有 code_change 都触发,只有 intent 含高风险/复杂信号时才触发。
531
- // 低风险场景(skip_chat / direct_answer / 无风险信号的 code_change)不触发。
532
- const HIGH_IMPACT_KEYWORDS = /架构|技术选型|数据库|框架|多端|跨模块|高影响|高风险|migration|技术路线|选型|rework/i;
533
- const UNCERTAINTY_KEYWORDS = /不确定|方案选择|多选项|权衡|脑暴|brainstorm|多方案|选型|比较/i;
534
- const DETAIL_INTENSIVE_KEYWORDS = /多步骤|复杂|跨模块|高风险|多端|分布式|微服务/i;
535
- const LOW_RISK_ROUTES = new Set(["skip_chat", "direct_answer", "operation", "planning", "review", "source_extraction", "acceptance"]);
536
- /** 技术选型/架构/数据库/框架/高影响决策 → 需 decision sovereignty gate */
537
- export function requiresDecisionSovereignty(ctx, route) {
538
- if (!ctx)
539
- return false;
540
- const routeVal = route ?? ctx.classification?.route_decision?.route ?? ctx.route_decision?.route;
541
- if (!routeVal || LOW_RISK_ROUTES.has(routeVal))
542
- return false;
543
- // 所有路由都要求 intent 含高影响信号
544
- const hasHighImpact = ctx.intent && HIGH_IMPACT_KEYWORDS.test(ctx.intent);
545
- if (!hasHighImpact) {
546
- // instruction_contract 的 risk/high_impact 也可作为信号
547
- const ic = ctx.instruction_contract;
548
- if (!ic || (!ic.risk && !ic.high_impact))
549
- return false;
550
- if (ic.risk !== "high" && !ic.high_impact)
551
- return false;
552
- }
553
- // artifact_generation / analysis / code_change + 高影响 intent → 触发
554
- return true;
555
- }
556
- /** 多步骤/不确定/高风险任务 → 需 detail discipline gate */
557
- export function requiresDetailDiscipline(ctx, route) {
558
- if (!ctx)
559
- return false;
560
- const routeVal = route ?? ctx.classification?.route_decision?.route ?? ctx.route_decision?.route;
561
- if (!routeVal || LOW_RISK_ROUTES.has(routeVal))
562
- return false;
563
- // 复杂 intent 触发
564
- const hasComplexSignals = ctx.intent && DETAIL_INTENSIVE_KEYWORDS.test(ctx.intent);
565
- if (!hasComplexSignals) {
566
- const ic = ctx.instruction_contract;
567
- if (!ic || (!ic.risk && !ic.high_impact))
568
- return false;
569
- if (ic.risk !== "high" && !ic.high_impact)
570
- return false;
571
- }
572
- return true;
573
- }
574
- /** 高影响任务/架构设计/复杂编码/跨模块变更 → 需 first principles gate */
575
- export function requiresFirstPrinciples(ctx, route) {
576
- if (!ctx)
577
- return false;
578
- const routeVal = route ?? ctx.classification?.route_decision?.route ?? ctx.route_decision?.route;
579
- if (!routeVal || LOW_RISK_ROUTES.has(routeVal))
580
- return false;
581
- // 所有路由都要求 intent 含高影响信号
582
- const hasHighImpact = ctx.intent && HIGH_IMPACT_KEYWORDS.test(ctx.intent);
583
- if (!hasHighImpact) {
584
- const ic = ctx.instruction_contract;
585
- if (!ic || (!ic.risk && !ic.high_impact))
586
- return false;
587
- if (ic.risk !== "high" && !ic.high_impact)
588
- return false;
589
- }
590
- return true;
591
- }
592
- /** 不确定项/方案选择/多选项 → 需 brainstorm gate */
593
- export function requiresBrainstorm(ctx, route) {
594
- if (!ctx)
595
- return false;
596
- const routeVal = route ?? ctx.classification?.route_decision?.route ?? ctx.route_decision?.route;
597
- if (!routeVal || LOW_RISK_ROUTES.has(routeVal))
598
- return false;
599
- // 仅当 intent 含不确定性信号时才触发
600
- const hasUncertainty = ctx.intent && UNCERTAINTY_KEYWORDS.test(ctx.intent);
601
- if (!hasUncertainty)
602
- return false;
603
- if (routeVal === "analysis" || routeVal === "artifact_generation")
604
- return true;
605
- if (routeVal === "code_change")
606
- return true;
607
- const ic = ctx.instruction_contract;
608
- if (ic && ic.uncertainty)
609
- return true;
610
- return false;
611
- }
612
- /**
613
- * 技术选型决策门 — 高影响技术决策需用户确认。
614
- * Decision Sovereignty enforcement。
615
- * 不依赖 hasInstructionContract — 触发由 requiresDecisionSovereignty 判定。
616
- */
617
- export async function checkDecisionSovereigntyGate(params) {
618
- if (!params.ctx)
619
- return { allowed: true, not_applicable_with_reason: "无任务上下文" };
620
- const triggered = requiresDecisionSovereignty(params.ctx, params.route);
621
- if (!triggered) {
622
- return { allowed: true, not_applicable_with_reason: "非高影响技术决策场景,跳过 decision sovereignty gate" };
623
- }
624
- const decisionContract = params.ctx.technology_decision_contract;
625
- if (!decisionContract) {
626
- return { allowed: false, reason_zh: "高影响技术决策场景缺 technology_decision_contract,无法执行决策主权校验" };
627
- }
628
- const decisionModule = await lazyTechnologyDecision();
629
- const validation = decisionModule.validateTechnologyDecision(decisionContract);
630
- if (!validation.valid) {
631
- return { allowed: false, reason_zh: `技术选型决策校验失败: ${validation.violations.join("; ")}`, expected_schema: validation.expected_schema };
632
- }
633
- // 有决策记录时评估执行状态
634
- const decisionRecord = params.ctx.technology_decision_record;
635
- if (decisionRecord) {
636
- const evaluation = decisionModule.evaluateDecisionExecution(decisionContract, decisionRecord);
637
- if (evaluation.requires_human_gate && !decisionContract.human_gate_evidence) {
638
- return { allowed: false, reason_zh: "高影响技术决策需用户确认(human gate),请提供确认证据", requires_human_gate: true };
639
- }
640
- if (!evaluation.allowed) {
641
- return { allowed: false, reason_zh: evaluation.reason };
642
- }
643
- }
644
- else {
645
- // 无决策记录: 契约已验证通过,但需 human_gate_evidence 确认(如有高范围决策)
646
- if (decisionContract.human_gate_required && !decisionContract.human_gate_evidence) {
647
- return { allowed: false, reason_zh: "高影响技术决策需用户确认(human gate),请提供确认证据", requires_human_gate: true };
648
- }
649
- }
650
- return { allowed: true };
651
- }
652
- /**
653
- * 细节纪律门 — 复杂任务缺关键细节维度时阻断。
654
- * Detail Discipline enforcement。
655
- * 不依赖 hasInstructionContract — 触发由 requiresDetailDiscipline 判定。
656
- */
657
- export async function checkDetailDisciplineGate(params) {
658
- if (!params.ctx)
659
- return { allowed: true, not_applicable_with_reason: "无任务上下文" };
660
- const triggered = requiresDetailDiscipline(params.ctx, params.route);
661
- if (!triggered) {
662
- return { allowed: true, not_applicable_with_reason: "非复杂/多步骤任务场景,跳过 detail discipline gate" };
663
- }
664
- const detailContract = params.ctx.detail_discipline_contract;
665
- if (!detailContract) {
666
- return { allowed: false, reason_zh: "多步骤/复杂任务缺 detail_discipline_contract,无法执行细节纪律校验" };
667
- }
668
- const detailModule = await lazyDetailDiscipline();
669
- const check = detailModule.performDetailCheck(detailContract, detailContract.contract_id ?? "unknown", "implementation", params.ctx.provided_details ?? {});
670
- if (check.blocking) {
671
- const riskItems = detailModule.generateRiskItems(check);
672
- const blockingLabels = riskItems.filter(r => r.severity === "blocking").map(r => r.dimension ?? r.description);
673
- return { allowed: false, reason_zh: `任务方案缺关键细节: ${blockingLabels.join("; ")}`, missing_details: blockingLabels };
674
- }
675
- return { allowed: true };
676
- }
677
- /**
678
- * 第一性原理门 — 高影响任务需目标/约束/本质问题/权衡。
679
- * First Principles enforcement。
680
- * 不依赖 hasInstructionContract — 触发由 requiresFirstPrinciples 判定。
681
- */
682
- export async function checkFirstPrinciplesGate(params) {
683
- if (!params.ctx)
684
- return { allowed: true, not_applicable_with_reason: "无任务上下文" };
685
- const triggered = requiresFirstPrinciples(params.ctx, params.route);
686
- if (!triggered) {
687
- return { allowed: true, not_applicable_with_reason: "非高影响任务场景,跳过 first principles gate" };
688
- }
689
- const fpFrame = params.ctx.first_principles_frame;
690
- if (!fpFrame) {
691
- return { allowed: false, reason_zh: "高影响任务缺 first_principles_frame,无法执行第一性原理校验" };
692
- }
693
- const fpModule = await lazyFirstPrinciples();
694
- const validation = fpModule.validateFirstPrinciplesForHighImpact(fpFrame);
695
- if (!validation.passed) {
696
- return { allowed: false, reason_zh: `高影响任务缺第一性原理推理: ${validation.violations.join("; ")}`, failures: validation.violations, expected_schema: validation.expected_schema };
697
- }
698
- return { allowed: true };
699
- }
700
- /**
701
- * 脑暴/方案探索门 — 不确定项需多方案+推荐理由+用户确认。
702
- * Brainstorm Contract enforcement。
703
- * 不依赖 hasInstructionContract — 触发由 requiresBrainstorm 判定。
704
- */
705
- export async function checkBrainstormGate(params) {
706
- if (!params.ctx)
707
- return { allowed: true, not_applicable_with_reason: "无任务上下文" };
708
- const triggered = requiresBrainstorm(params.ctx, params.route);
709
- if (!triggered) {
710
- return { allowed: true, not_applicable_with_reason: "非不确定/方案选择场景,跳过 brainstorm gate" };
711
- }
712
- const brainstormSession = params.ctx.brainstorm_session;
713
- if (!brainstormSession) {
714
- return { allowed: false, reason_zh: "不确定项/方案选择缺 brainstorm_session,无法执行方案探索校验" };
715
- }
716
- const brainstormModule = await lazyBrainstormContract();
717
- const validation = brainstormModule.validateBrainstormSession(brainstormSession);
718
- if (!validation.valid) {
719
- return { allowed: false, reason_zh: `方案探索不完整: ${validation.violations.join("; ")}`, violations: validation.violations, expected_schema: validation.expected_schema };
720
- }
721
- // 脑暴推荐永远不能自动执行 — 需 Decision Sovereignty human gate
722
- const canAutoExec = brainstormModule.canBrainstormAutoExecute(brainstormSession);
723
- if (canAutoExec) {
724
- return { allowed: false, reason_zh: "脑暴推荐不能绕过用户确认,需通过 Decision Sovereignty human gate" };
725
- }
726
- return { allowed: true };
727
- }
728
- /**
729
- */
730
- export async function assessCepAfterVerification(params) {
731
- const cepModule = await import("../../engine/core_experience_principle.js");
732
- const result = cepModule.evaluateCoreExperiencePrinciple({
733
- task_id: params.task_id,
734
- workflow_id: "sf_verify",
735
- has_mainline_hooks: true,
736
- has_owner_contracts: true,
737
- natural_language_entry: true,
738
- requires_internal_contract_knowledge: false,
739
- user_path_steps: 3,
740
- has_failures: params.has_failures ?? false,
741
- hard_fail_downgraded: params.hard_fail_downgraded ?? false,
742
- forced_heavy_process: false,
743
- has_sufficient_evidence: params.has_verification_evidence,
744
- output_too_long_no_summary: false,
745
- report_only_no_repair: false,
746
- failed_but_marked_done: params.failed_but_marked_done ?? false,
747
- auto_repair_overreach: false,
748
- repair_reverified: false,
749
- outputs_raw_noise: false,
750
- });
751
- return {
752
- passed: result.passed,
753
- violations: result.violations.map((v) => ({
754
- principle: v.principle,
755
- severity: v.severity,
756
- reason_zh: v.reason_zh ?? "",
757
- required_action: v.required_action,
758
- })),
759
- evaluated_principles: result.evaluated_principles,
760
- };
761
- }
762
- /**
763
- * CEP 集成: 交付前 false completion 检查 — 从 sf_deliver handler 提取的真实主链路函数。
764
- * 返回 CEP 决策(blocked/repair_reverify/allowed),由 handler 和 gate 共用。
765
- */
766
- export async function assessCepBeforeDelivery(params) {
767
- const cepModule = await import("../../engine/core_experience_principle.js");
768
- const nfcResult = cepModule.evaluateNoFalseCompletion({
769
- verification_passed: params.verification_passed,
770
- build_passed: params.build_passed,
771
- browser_acceptance_passed: params.browser_acceptance_passed,
772
- guard_passed: params.guard_passed,
773
- evidence_sufficient: params.evidence_sufficient,
774
- current_status: params.current_status,
775
- });
776
- return {
777
- decision: nfcResult.decision,
778
- reason_zh: nfcResult.reason_zh ?? "",
779
- passed: nfcResult.decision === "completed",
780
- };
781
- }
782
- /**
783
- * CEP 集成: 工作流解析后评估 — 检查机制是否接入真实主链路、用户路径是否过短。
784
- */
785
- export async function assessCepAfterWorkflowResolve(params) {
786
- const cepModule = await import("../../engine/core_experience_principle.js");
787
- const result = cepModule.evaluateCoreExperiencePrinciple({
788
- task_id: params.task_id,
789
- workflow_id: "workflow_resolve",
790
- has_mainline_hooks: params.workflow_resolved,
791
- has_owner_contracts: params.workflow_resolved,
792
- natural_language_entry: true,
793
- requires_internal_contract_knowledge: false,
794
- user_path_steps: 3,
795
- has_failures: !params.workflow_resolved,
796
- hard_fail_downgraded: false,
797
- forced_heavy_process: false,
798
- has_sufficient_evidence: params.workflow_resolved,
799
- output_too_long_no_summary: false,
800
- report_only_no_repair: false,
801
- failed_but_marked_done: false,
802
- auto_repair_overreach: false,
803
- repair_reverified: false,
804
- outputs_raw_noise: false,
805
- });
806
- return {
807
- passed: result.passed,
808
- violations: result.violations.map((v) => ({
809
- principle: v.principle,
810
- severity: v.severity,
811
- reason_zh: v.reason_zh ?? "",
812
- })),
813
- evaluated_principles: result.evaluated_principles,
814
- };
815
- }
816
- /**
817
- * CEP 集成: 护栏评估后检查 — 硬规则是否被降级、低风险是否过重。
818
- */
819
- export async function assessCepAfterGuardEvaluation(params) {
820
- const cepModule = await import("../../engine/core_experience_principle.js");
821
- const result = cepModule.evaluateCoreExperiencePrinciple({
822
- task_id: params.task_id,
823
- workflow_id: "guard_evaluation",
824
- has_mainline_hooks: true,
825
- has_owner_contracts: true,
826
- natural_language_entry: true,
827
- requires_internal_contract_knowledge: false,
828
- user_path_steps: 3,
829
- has_failures: !params.guard_passed,
830
- hard_fail_downgraded: params.hard_fail_downgraded,
831
- forced_heavy_process: params.is_low_risk && !params.guard_passed,
832
- has_sufficient_evidence: params.guard_passed,
833
- output_too_long_no_summary: false,
834
- report_only_no_repair: false,
835
- failed_but_marked_done: false,
836
- auto_repair_overreach: false,
837
- repair_reverified: false,
838
- outputs_raw_noise: false,
839
- });
840
- return {
841
- passed: result.passed,
842
- violations: result.violations.map((v) => ({
843
- principle: v.principle,
844
- severity: v.severity,
845
- reason_zh: v.reason_zh ?? "",
846
- })),
847
- evaluated_principles: result.evaluated_principles,
848
- };
849
- }
850
- /**
851
- * CEP 集成: 修复重验证决策 — 检查是否假完成、是否进入正确修复路径。
852
- */
853
- export async function assessCepForRepairReverify(params) {
854
- const cepModule = await import("../../engine/core_experience_principle.js");
855
- const nfcResult = cepModule.evaluateNoFalseCompletion({
856
- verification_passed: params.verification_passed,
857
- build_passed: params.build_passed,
858
- browser_acceptance_passed: true,
859
- guard_passed: true,
860
- evidence_sufficient: params.evidence_sufficient,
861
- current_status: params.current_status,
862
- });
863
- return {
864
- decision: nfcResult.decision,
865
- reason_zh: nfcResult.reason_zh ?? "",
866
- passed: nfcResult.decision === "completed",
867
- };
868
- }
869
- /**
870
- * CEP 集成: 用户反馈输出质量 — 检查结论优先、摘要清晰、不隐藏失败、中文语义。
871
- */
872
- export async function assessCepForUserFeedback(params) {
873
- const cepModule = await import("../../engine/core_experience_principle.js");
874
- const cep = cepModule.evaluateUserVisibleOutput({
875
- has_conclusion_first: params.has_conclusion_first,
876
- has_clear_summary: params.has_clear_summary,
877
- has_actionable_next_step: params.has_actionable_next_step,
878
- exposes_internal_noise: params.exposes_internal_noise,
879
- hides_critical_failure: params.hides_critical_failure,
880
- chinese_semantic_first: params.chinese_semantic_first,
881
- });
882
- const logGov = await import("../../engine/log_governance.js");
883
- const logReport = logGov.evaluateFeedbackOutputQuality({
884
- output: [
885
- params.has_conclusion_first ? "结论优先" : "缺少结论",
886
- params.has_clear_summary ? "摘要清晰" : "摘要不足",
887
- params.has_actionable_next_step ? "下一步明确" : "下一步缺失",
888
- ].join(";"),
889
- critical_failure_hidden: params.hides_critical_failure,
890
- });
891
- return {
892
- passed: cep.passed && logReport.passed,
893
- issues_zh: [
894
- ...cep.issues_zh,
895
- ...logReport.findings.map((f) => f.message_zh),
896
- ],
897
- };
898
- }
899
- /**
900
- * 注册所有 MCP 工具到服务器实例。
901
- * @param server - McpServer 实例
902
- * @param deps - 工具依赖项(配置、知识索引、任务上下文)
903
- */
904
- export async function registerTools(server, deps) {
905
- debug("工具注册", "开始注册 MCP 工具...");
906
- const { config, knowledgeIndex, taskContext } = deps;
907
- const projectPath = config._projectPath || process.cwd();
908
- // H1: LLM Gateway — Token 预算熔断,防止单任务 Token 超支
909
- const gateway = deps.gateway ?? new (await lazyLLM()).LLMGateway();
910
- // H4: IO Controller — 工作区互斥锁,防止外部修改导致的静默覆盖
911
- const ioController = new (await lazyIO()).IOController(projectPath);
912
- // ── 统一网关 : 唯一工具调用边界 ──
913
- /** 计算 sf_status cancel 的动态 category */
914
- function computeEffectiveCategory(toolName, args, contract) {
915
- if (toolName === "sf_status" && (args.action === "cancel" || args.action === "archive_stale" || args.job_action === "job_cancel")) {
916
- return "normal_controlled";
917
- }
918
- return contract.category;
919
- }
920
- /** 计算 sf_status cancel 的动态 side_effects */
921
- function computeEffectiveSideEffects(toolName, args, contract) {
922
- if (toolName === "sf_status" && (args.action === "cancel" || args.action === "archive_stale" || args.job_action === "job_cancel")) {
923
- return ["task_context_write"];
924
- }
925
- return contract.side_effects;
926
- }
927
- /** State precheck: validate task status before contract guard */
928
- const STATE_PRECHECKS = {
929
- sf_accept: ["executing", "verifying", "retrying"],
930
- sf_verify: ["executing", "retrying"],
931
- sf_record_verification_execution: ["verifying", "executing"],
932
- sf_learn: ["verifying", "executing"],
933
- sf_expand: ["classifying", "expanding", "clarifying"],
934
- };
935
- const STATE_ERROR_LABELS = {
936
- sf_accept: "不可验收",
937
- sf_verify: "不可验证",
938
- sf_record_verification_execution: "不可录入验证结果",
939
- sf_learn: "不可学习",
940
- sf_expand: "不可膨胀",
941
- };
942
- /** 授权模型: explicit > dynamic write gate > destructive gate > workflow gate > category default */
943
- function checkAuth(toolName, args, contract, ctx, effectiveCategory) {
944
- // 1. 显式确认
945
- if (args.confirm === true || args.authorized === true || args.authorization_token) {
946
- return { required: true, granted: true, reason: "explicit confirmation" };
947
- }
948
- // 1b. sf_status 的写入型动作必须显式确认,即便普通查询本身允许自动维护状态。
949
- if (toolName === "sf_status" && (args.action === "cancel" || args.action === "archive_stale" || args.job_action === "job_cancel")) {
950
- return { required: true, granted: false, reason: "dynamic write upgrade requires explicit confirmation" };
951
- }
952
- // 2. 动态写入升级: cancel/job_cancel 从 read_only 变为 write → 必须确认
953
- if (effectiveCategory && effectiveCategory !== contract.category && effectiveCategory !== "read_only_bypass") {
954
- return { required: true, granted: false, reason: "dynamic write upgrade requires explicit confirmation" };
955
- }
956
- // 3. 破坏性副作用始终需要显式确认
957
- const destructive = ["git_commit", "git_push", "pr_create", "external_write"];
958
- if (contract.side_effects.some((e) => destructive.includes(e))) {
959
- return { required: true, granted: false, reason: "destructive side effects require explicit confirmation" };
960
- }
961
- // 4. 独立严格工具(无 workflow 要求,无 task context)→ 由 handler 自行检查
962
- if (contract.category === "strict_controlled" && !ctx && !contract.requires_workflow) {
963
- if (contract.requires_authorization) {
964
- return { required: true, granted: false, reason: "standalone strict tool requires explicit confirmation" };
965
- }
966
- return { required: false, granted: true, reason: "standalone strict tool" };
967
- }
968
- // 5. strict_controlled 的 workflow 合同门控
969
- if (contract.category === "strict_controlled" && ctx?.last_tool_trace) {
970
- const allowed = ctx.last_tool_trace.next_allowed_tools ?? [];
971
- if (allowed.includes(toolName)) {
972
- return { required: true, granted: true, reason: "workflow contract gate" };
973
- }
974
- }
975
- // 5b. 基于状态的回退: 严格工具且任务处于有效状态但无 tool_trace
976
- if (contract.category === "strict_controlled" && ctx && !ctx.last_tool_trace && contract.requires_workflow) {
977
- const validStates = STATE_PRECHECKS[toolName];
978
- if (validStates && validStates.includes(ctx.status)) {
979
- return { required: true, granted: true, reason: "task in valid state for tool" };
980
- }
981
- }
982
- // 5c. 非严格工具: 自动授权,除非 requires_authorization
983
- if (contract.category === "read_only_bypass" || contract.category === "normal_controlled") {
984
- if (contract.requires_authorization) {
985
- return { required: true, granted: false, reason: "tool requires explicit authorization" };
986
- }
987
- return { required: false, granted: true, reason: "non-strict category" };
988
- }
989
- return { required: true, granted: false, reason: "no authorization source" };
990
- }
991
- function registerSafeTool(name, desc, schema, handler) {
992
- server.tool(name, desc, schema, async (args) => {
993
- const invocationId = `inv-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
994
- const taskId = args.task_id;
995
- const contract = findToolInvocationContractByName(name);
996
- // 无合同 → hard fail
997
- if (!contract) {
998
- return {
999
- content: [{ type: "text", text: JSON.stringify({ error: `工具 ${name} 未注册契约` }) }],
1000
- isError: true,
1001
- };
1002
- }
1003
- const effectiveCategory = computeEffectiveCategory(name, args, contract);
1004
- const effectiveSideEffects = computeEffectiveSideEffects(name, args, contract);
1005
- // 加载 TaskContext
1006
- let ctx = null;
1007
- if (taskId) {
1008
- ctx = await taskContext.load(taskId);
1009
- }
1010
- // 状态预检: 在合同守卫之前验证任务状态
1011
- if (taskId && STATE_PRECHECKS[name] && ctx) {
1012
- const validStates = STATE_PRECHECKS[name];
1013
- if (!validStates.includes(ctx.status)) {
1014
- const label = STATE_ERROR_LABELS[name] ?? "状态不正确";
1015
- return {
1016
- content: [{ type: "text", text: JSON.stringify({
1017
- error: `任务状态 ${ctx.status} ${label},需要 ${validStates.join(" 或 ")}`,
1018
- status: ctx.status,
1019
- }) }],
1020
- isError: true,
1021
- };
1022
- }
1023
- }
1024
- // 严格受控但缺少 task_id
1025
- const isStandaloneStrict = !contract.requires_workflow;
1026
- if (contract.category === "strict_controlled" && !taskId && !isStandaloneStrict) {
1027
- return {
1028
- content: [{ type: "text", text: JSON.stringify({ error: `strict controlled 工具 ${name} 需要 task_id` }) }],
1029
- isError: true,
1030
- };
1031
- }
1032
- // 授权检查
1033
- const authorization = checkAuth(name, args, contract, ctx ?? undefined, effectiveCategory);
1034
- // 授权拒绝 → 仅对网关级拒绝执行 hard fail
1035
- // (动态写入升级、破坏性操作、无授权源的 strict_controlled)
1036
- // Handler 级授权(如 sf_capability_update confirm)由 handler 自行处理
1037
- const gatewayDenial = !authorization.granted &&
1038
- authorization.reason !== "tool requires explicit authorization";
1039
- if (gatewayDenial) {
1040
- const blockedTrace = createToolTrace({
1041
- tool_name: name, invocation_id: invocationId, task_id: taskId,
1042
- actual_side_effects: effectiveSideEffects,
1043
- next_allowed_tools: contract.default_next_tools,
1044
- forbidden_tools: contract.forbidden_next_tools,
1045
- authorization, bypass: undefined,
1046
- });
1047
- const authViolation = {
1048
- invocation_id: invocationId, tool_name: name,
1049
- violation_type: "missing_authorization", severity: "hard_fail",
1050
- reason: authorization.reason ?? "authorization denied",
1051
- recovery: "提供 confirm=true / authorized=true / authorization_token",
1052
- };
1053
- if (taskId && ctx) {
1054
- await taskContext.setToolTrace(taskId, blockedTrace, [authViolation]);
1055
- }
1056
- return {
1057
- content: [{ type: "text", text: JSON.stringify({
1058
- error: authViolation.reason, violation: authViolation,
1059
- tool_trace: blockedTrace,
1060
- next_allowed_tools: contract.default_next_tools,
1061
- forbidden_tools: contract.forbidden_next_tools,
1062
- }) }],
1063
- isError: true,
1064
- };
1065
- }
1066
- // read_only_bypass 的旁路处理
1067
- const bypass = effectiveCategory === "read_only_bypass"
1068
- ? { allowed: true, reason: "read_only" } : undefined;
1069
- // 计划前置门: 在合同验证之前检查 — 写工具必须有 plan_proposal_gate
1070
- const hasWriteEffect = hasWriteSideEffect(effectiveSideEffects);
1071
- if (hasWriteEffect && taskId) {
1072
- const pgResult = checkWriteToolPlanGate({ ctx, toolName: name, sideEffects: effectiveSideEffects });
1073
- if (!pgResult.allowed) {
1074
- const planViolation = {
1075
- invocation_id: invocationId, tool_name: name,
1076
- violation_type: "guard_blocked", severity: "hard_fail",
1077
- reason: pgResult.reason ?? "执行前缺少 Plan Proposal Gate",
1078
- recovery: "先调用 sf_classify → sf_expand → 设置 plan_proposal_gate 后再执行此工具",
1079
- };
1080
- const blockedTrace = createToolTrace({
1081
- tool_name: name, invocation_id: invocationId, task_id: taskId,
1082
- actual_side_effects: effectiveSideEffects,
1083
- next_allowed_tools: contract.default_next_tools,
1084
- forbidden_tools: contract.forbidden_next_tools,
1085
- authorization, bypass,
1086
- });
1087
- await taskContext.setToolTrace(taskId, blockedTrace, [planViolation]);
1088
- return {
1089
- content: [{ type: "text", text: JSON.stringify({
1090
- error: planViolation.reason,
1091
- violation: planViolation,
1092
- diagnostic_code: pgResult.diagnostic_code ?? TOOL_DIAGNOSTIC_CODES.planGate,
1093
- recovery: planViolation.recovery,
1094
- }) }],
1095
- isError: true,
1096
- };
1097
- }
1098
- const planGateCheck = taskContext.checkPlanGateBeforeWrite(ctx);
1099
- if (!planGateCheck.allowed) {
1100
- const planViolation = {
1101
- invocation_id: invocationId, tool_name: name,
1102
- violation_type: "guard_blocked", severity: "hard_fail",
1103
- reason: planGateCheck.reason_zh,
1104
- recovery: "请先通过 PlanProposalFirstGate 生成并确认执行计划",
1105
- };
1106
- const blockedTrace = createToolTrace({
1107
- tool_name: name, invocation_id: invocationId, task_id: taskId,
1108
- actual_side_effects: effectiveSideEffects,
1109
- next_allowed_tools: contract.default_next_tools,
1110
- forbidden_tools: contract.forbidden_next_tools,
1111
- authorization, bypass,
1112
- });
1113
- await taskContext.setToolTrace(taskId, blockedTrace, [planViolation]);
1114
- return {
1115
- content: [{ type: "text", text: JSON.stringify({
1116
- error: planViolation.reason,
1117
- violation: planViolation,
1118
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.planGate,
1119
- recovery: planViolation.recovery,
1120
- }) }],
1121
- isError: true,
1122
- };
1123
- }
1124
- }
1125
- // 施工指令契约门: 写操作前检查 instruction_contract 状态
1126
- if (hasWriteEffect && taskId) {
1127
- const instrResult = await checkInstructionContractGate({ ctx, toolName: name, sideEffects: effectiveSideEffects, task_id: taskId, taskContextMgr: taskContext });
1128
- if (!instrResult.allowed) {
1129
- const instrViolation = {
1130
- invocation_id: invocationId, tool_name: name,
1131
- violation_type: "guard_blocked", severity: "hard_fail",
1132
- reason: instrResult.reason ?? "施工指令未就绪",
1133
- recovery: "请先完善施工指令(目标、范围、非目标、落点、验收标准、禁止绕过项)",
1134
- };
1135
- const instrTrace = createToolTrace({
1136
- tool_name: name, invocation_id: invocationId, task_id: taskId,
1137
- actual_side_effects: effectiveSideEffects,
1138
- next_allowed_tools: contract.default_next_tools,
1139
- forbidden_tools: contract.forbidden_next_tools,
1140
- authorization, bypass,
1141
- });
1142
- await taskContext.setToolTrace(taskId, instrTrace, [instrViolation]);
1143
- return {
1144
- content: [{ type: "text", text: JSON.stringify({
1145
- error: instrViolation.reason,
1146
- violation: instrViolation,
1147
- diagnostic_code: instrResult.diagnostic_code ?? TOOL_DIAGNOSTIC_CODES.instructionContract,
1148
- recovery: instrViolation.recovery,
1149
- }) }],
1150
- isError: true,
1151
- };
1152
- }
1153
- }
1154
- // 问题六十二: MCP 写入路径同样必须消费设计产物包状态,不能绕开 CLI hook。
1155
- if (hasWriteEffect && taskId) {
1156
- const designWriteGate = checkDesignArtifactWriteGate({ ctx, toolName: name, sideEffects: effectiveSideEffects });
1157
- if (!designWriteGate.allowed) {
1158
- const designViolation = {
1159
- invocation_id: invocationId, tool_name: name,
1160
- violation_type: "guard_blocked", severity: "hard_fail",
1161
- reason: designWriteGate.reason ?? "设计产物包未达到实现就绪状态",
1162
- recovery: "仅可继续补充设计资产并执行 sf_verify 真实复验;通过前不得写入业务实现",
1163
- };
1164
- const designTrace = createToolTrace({
1165
- tool_name: name, invocation_id: invocationId, task_id: taskId,
1166
- actual_side_effects: effectiveSideEffects,
1167
- next_allowed_tools: contract.default_next_tools,
1168
- forbidden_tools: contract.forbidden_next_tools,
1169
- authorization, bypass,
1170
- });
1171
- await taskContext.setToolTrace(taskId, designTrace, [designViolation]);
1172
- return {
1173
- content: [{ type: "text", text: JSON.stringify({
1174
- error: designViolation.reason,
1175
- violation: designViolation,
1176
- diagnostic_code: designWriteGate.diagnostic_code,
1177
- recovery: designViolation.recovery,
1178
- }) }],
1179
- isError: true,
1180
- };
1181
- }
1182
- }
1183
- // 用户项目知识门禁: review/verify/deliver 不能绕过不可消费的项目 hard rule。
1184
- if (["sf_review", "sf_verify", "sf_deliver"].includes(name)) {
1185
- const { evaluateLifecycleKnowledgeDecision } = await import("../../engine/lifecycle_knowledge_contract.js");
1186
- const lifecycleStage = name === "sf_review" ? "implementation" : name === "sf_verify" ? "testing" : "delivery";
1187
- const lifecycleDecision = evaluateLifecycleKnowledgeDecision({
1188
- projectPath,
1189
- consumer: name,
1190
- intent: ctx?.intent ?? name,
1191
- route: name === "sf_review" ? "review" : name === "sf_verify" ? "verification" : "delivery",
1192
- lifecycle_stage: lifecycleStage,
1193
- changed_files: Array.isArray(args.changed_files) ? args.changed_files : ctx?.execution?.changed_files ?? [],
1194
- verified_files: Array.isArray(args.changed_files) ? args.changed_files : ctx?.execution?.changed_files ?? [],
1195
- traceability_ids: [
1196
- ...(ctx?.traceability_binding?.requirement_ids ?? []),
1197
- ...(ctx?.traceability_binding?.prototype_ids ?? []),
1198
- ...(ctx?.traceability_binding?.architecture_ids ?? []),
1199
- ...(ctx?.traceability_binding?.detail_design_ids ?? []),
1200
- ...(ctx?.traceability_binding?.phase_ids ?? []),
1201
- ...(ctx?.traceability_binding?.slice_ids ?? []),
1202
- ...(ctx?.traceability_binding?.acceptance_ids ?? []),
1203
- ],
1204
- config,
1205
- task_id: taskId,
1206
- require_design_audit: false,
1207
- enforce_control_plane: name !== "sf_review",
1208
- generation_traces: [
1209
- ...(ctx?.classification ? [{ tool_name: "sf_classify", task_id: taskId, status: "passed", evidence_kind: "result" }] : []),
1210
- ...(ctx?.expansion ? [{ tool_name: "sf_expand", task_id: taskId, status: "passed", evidence_kind: "result" }] : []),
1211
- ...(name === "sf_verify" ? [{ tool_name: "sf_verify", task_id: taskId, status: "blocked", evidence_kind: "plan" }] : []),
1212
- ],
1213
- selection_limit: 8,
1214
- });
1215
- if (lifecycleDecision.hard_fail_count > 0) {
1216
- const hardFindings = lifecycleDecision.findings
1217
- .filter((finding) => finding.severity === "hard_fail")
1218
- .map((finding) => `[${finding.code}] ${finding.message_zh}`);
1219
- const pkViolation = {
1220
- invocation_id: invocationId,
1221
- tool_name: name,
1222
- violation_type: "guard_blocked",
1223
- severity: "hard_fail",
1224
- reason: lifecycleDecision.decision_summary_zh,
1225
- recovery: lifecycleDecision.recovery_commands.join(";") || "运行 soloforge next 查看统一生命周期知识合同阻断项",
1226
- };
1227
- const pkTrace = createToolTrace({
1228
- tool_name: name, invocation_id: invocationId, task_id: taskId,
1229
- actual_side_effects: effectiveSideEffects,
1230
- next_allowed_tools: ["sf_expand", "sf_status"],
1231
- forbidden_tools: ["sf_review", "sf_verify", "sf_deliver"],
1232
- authorization, bypass,
1233
- });
1234
- if (taskId && ctx)
1235
- await taskContext.setToolTrace(taskId, pkTrace, [pkViolation]);
1236
- return {
1237
- content: [{ type: "text", text: JSON.stringify({
1238
- error: pkViolation.reason,
1239
- violation: pkViolation,
1240
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.projectKnowledgeBlocked,
1241
- findings: hardFindings,
1242
- lifecycle_knowledge_decision: {
1243
- contract_id: lifecycleDecision.contract_id,
1244
- lifecycle_stage: lifecycleDecision.lifecycle_stage,
1245
- authoritative_paths: lifecycleDecision.authoritative_paths,
1246
- recovery_commands: lifecycleDecision.recovery_commands,
1247
- },
1248
- recovery: pkViolation.recovery,
1249
- }) }],
1250
- isError: true,
1251
- };
1252
- }
1253
- }
1254
- // 合同验证
1255
- const lastTrace = ctx?.last_tool_trace;
1256
- // 为动态工具构建有效的合同覆盖(如 sf_status cancel)
1257
- let contractOverride;
1258
- if (effectiveCategory !== contract.category || effectiveSideEffects !== contract.side_effects) {
1259
- contractOverride = { ...contract, category: effectiveCategory, side_effects: effectiveSideEffects };
1260
- }
1261
- // Workflow ID: 仅来自真实的 expansion trace
1262
- const explicitWorkflowId = ctx?.expansion?.workflow_trace?.workflow_id;
1263
- const violations = validateToolInvocation({
1264
- tool_name: name,
1265
- current_next_allowed: lastTrace?.next_allowed_tools ?? [],
1266
- current_forbidden: lastTrace?.forbidden_tools ?? [],
1267
- authorization,
1268
- bypass,
1269
- actual_side_effects: effectiveSideEffects,
1270
- workflow_id: explicitWorkflowId,
1271
- _contractOverride: contractOverride,
1272
- });
1273
- // 基于状态的回退: 将 contract_state_mismatch 从 hard_fail 降级为 require_human
1274
- if (authorization.reason === "task in valid state for tool") {
1275
- for (const v of violations) {
1276
- if (v.violation_type === "contract_state_mismatch" && v.severity === "hard_fail") {
1277
- v.severity = "require_human";
1278
- v.reason += " (state-based fallback: no real workflow_id)";
1279
- }
1280
- }
1281
- }
1282
- // Hard-fail 违规 → 阻止
1283
- const hardFail = violations.find(v => v.severity === "hard_fail");
1284
- if (hardFail) {
1285
- const blockedTrace = createToolTrace({
1286
- tool_name: name, invocation_id: invocationId, task_id: taskId,
1287
- actual_side_effects: effectiveSideEffects,
1288
- next_allowed_tools: contract.default_next_tools,
1289
- forbidden_tools: contract.forbidden_next_tools,
1290
- authorization, bypass,
1291
- });
1292
- if (taskId && ctx) {
1293
- await taskContext.setToolTrace(taskId, blockedTrace, violations);
1294
- }
1295
- return {
1296
- content: [{ type: "text", text: JSON.stringify({
1297
- error: hardFail.reason, violation: hardFail,
1298
- tool_trace: blockedTrace,
1299
- next_allowed_tools: contract.default_next_tools,
1300
- forbidden_tools: contract.forbidden_next_tools,
1301
- }) }],
1302
- isError: true,
1303
- };
1304
- }
1305
- // 执行 handler
1306
- try {
1307
- const raw = await handler(args);
1308
- // 如果 handler 直接返回 { content } 则透传
1309
- if (raw && typeof raw === "object" && "content" in raw && Array.isArray(raw.content)) {
1310
- return raw;
1311
- }
1312
- // 从 { result } 模式中提取数据
1313
- const data = raw?.result !== undefined ? raw.result : raw;
1314
- const hasError = !!(data && typeof data === "object" && "error" in data);
1315
- const recoveryNextTools = hasError && Array.isArray(data.recovery_next_tools)
1316
- ? data.recovery_next_tools
1317
- : contract.default_next_tools;
1318
- const recoveryForbiddenTools = hasError && Array.isArray(data.recovery_forbidden_tools)
1319
- ? data.recovery_forbidden_tools
1320
- : contract.forbidden_next_tools;
1321
- // 构建 trace;失败处理器可显式开放修复重验路径
1322
- const trace = createToolTrace({
1323
- tool_name: name, invocation_id: invocationId, task_id: taskId,
1324
- workflow_id: ctx?.expansion?.workflow_trace?.workflow_id,
1325
- actual_side_effects: effectiveSideEffects,
1326
- next_allowed_tools: recoveryNextTools,
1327
- forbidden_tools: recoveryForbiddenTools,
1328
- authorization, bypass,
1329
- });
1330
- // 将 trace 写入 TaskContext
1331
- if (taskId) {
1332
- await taskContext.setToolTrace(taskId, trace, violations.length > 0 ? violations : undefined);
1333
- }
1334
- // 用 trace + next/forbidden 装饰响应
1335
- const response = {
1336
- ...data,
1337
- tool_trace: trace,
1338
- next_allowed_tools: recoveryNextTools,
1339
- forbidden_tools: recoveryForbiddenTools,
1340
- };
1341
- // 基于状态的回退: 在响应中暴露降级 workflow
1342
- if (authorization.reason === "task in valid state for tool") {
1343
- response.degraded_workflow = true;
1344
- response.workflow_source = "state-based-fallback";
1345
- }
1346
- return {
1347
- content: [{ type: "text", text: JSON.stringify(response, null, 2) }],
1348
- isError: hasError ? true : undefined,
1349
- };
1350
- }
1351
- catch (err) {
1352
- const errorNextTools = name === "sf_expand"
1353
- ? ["sf_expand", "sf_status", "sf_debug", "sf_governance_report"]
1354
- : contract.default_next_tools;
1355
- const errorForbiddenTools = name === "sf_expand"
1356
- ? ["sf_verify", "sf_review", "sf_deliver", "sf_scaffold"]
1357
- : contract.forbidden_next_tools;
1358
- if (name === "sf_expand" && taskId) {
1359
- try {
1360
- await taskContext.updateStatus(taskId, "failed");
1361
- }
1362
- catch { /* best effort */ }
1363
- }
1364
- const errorTrace = createToolTrace({
1365
- tool_name: name, invocation_id: invocationId, task_id: taskId,
1366
- actual_side_effects: effectiveSideEffects,
1367
- next_allowed_tools: errorNextTools,
1368
- forbidden_tools: errorForbiddenTools,
1369
- authorization, bypass,
1370
- });
1371
- if (taskId) {
1372
- try {
1373
- await taskContext.setToolTrace(taskId, errorTrace);
1374
- }
1375
- catch { /* best effort */ }
1376
- }
1377
- return {
1378
- content: [{ type: "text", text: JSON.stringify({
1379
- error: err instanceof Error ? err.message : String(err),
1380
- tool_trace: errorTrace,
1381
- next_allowed_tools: errorNextTools,
1382
- forbidden_tools: errorForbiddenTools,
1383
- }) }],
1384
- isError: true,
1385
- };
1386
- }
1387
- });
1388
- }
1389
- // 加载认知锚点上下文 — 必须提供相关性参数,禁止全量加载
1390
- async function loadRelevantAnchors(query) {
1391
- debug("工具注册", "加载认知锚点");
1392
- return _loadRelevantAnchorsInner(query);
1393
- }
1394
- async function _loadRelevantAnchorsInner(query) {
1395
- const stateDir = taskContext.getStateDir();
1396
- const mapPath = path.join(stateDir, "cognitive.map.json");
1397
- const mapData = (await lazyAnchor()).readMapJson(mapPath);
1398
- if (!mapData || mapData.anchors.length === 0)
1399
- return undefined;
1400
- const existingFiles = new Set();
1401
- try {
1402
- for (const anchor of mapData.anchors) {
1403
- for (const ref of anchor.source_refs) {
1404
- if (ref.type === "file" && fss.existsSync(path.join(projectPath, ref.ref))) {
1405
- existingFiles.add(ref.ref);
1406
- }
1407
- }
1408
- }
1409
- }
1410
- catch { /* ignore */ }
1411
- const checked = (await lazyAnchor()).checkAnchorStaleness(mapData.anchors, existingFiles);
1412
- // 必须有 module 或 file_paths,否则不返回任何锚点(禁止全量加载)
1413
- if (!query.module && (!query.file_paths || query.file_paths.length === 0))
1414
- return undefined;
1415
- // 收集与任意提供的 file_paths 或 module 匹配的锚点
1416
- const seen = new Set();
1417
- const relevant = [];
1418
- if (query.module) {
1419
- for (const a of (await lazyAnchor()).filterRelevantAnchors(checked, { module: query.module })) {
1420
- if (!seen.has(a.anchor_id)) {
1421
- seen.add(a.anchor_id);
1422
- relevant.push(a);
1423
- }
1424
- }
1425
- }
1426
- if (query.file_paths) {
1427
- for (const fp of query.file_paths) {
1428
- for (const a of (await lazyAnchor()).filterRelevantAnchors(checked, { file_path: fp })) {
1429
- if (!seen.has(a.anchor_id)) {
1430
- seen.add(a.anchor_id);
1431
- relevant.push(a);
1432
- }
1433
- }
1434
- }
1435
- }
1436
- if (relevant.length === 0)
1437
- return undefined;
1438
- return relevant.map((a) => ({
1439
- anchor_id: a.anchor_id,
1440
- module: a.module,
1441
- summary: a.core_contracts.slice(0, 3).join("; "),
1442
- stale_anchor: a.stale_anchor,
1443
- }));
1444
- }
1445
- debug("工具注册", "批量注册核心/辅助/知识维护工具...");
1446
- // ── sf_classify: 意图分类入口,创建任务上下文并返回分类结果 ──
1447
- registerSafeTool("sf_classify", "分析开发者意图,返回任务类型、风险、复杂度和执行策略", ClassifySchema, async (args) => {
1448
- const asksForNavigation = /(?:下一步|继续(?:做|执行|开发)?|现在(?:可以|能)(?:开始)?(?:写代码|编码|开发|测试|交付)|接下来(?:做什么|该做什么)|该(?:做什么|怎么继续))/i.test(args.intent);
1449
- if (asksForNavigation) {
1450
- const navigation = await (await lazyNavigation()).planNextAction(projectPath);
1451
- return {
1452
- result: {
1453
- status: "navigation_required",
1454
- reason_zh: "检测到阶段推进意图,必须先依据 SoloForge 状态规划下一步",
1455
- navigation,
1456
- },
1457
- };
1458
- }
1459
- // 检查是否存在进行中的任务
1460
- const existing = await taskContext.getCurrentTask();
1461
- if (existing && !["done", "failed"].includes(existing.status)) {
1462
- const navigation = await (await lazyNavigation()).planNextAction(projectPath);
1463
- if (navigation.stale_task?.is_stale) {
1464
- return {
1465
- result: {
1466
- status: "stale_task_requires_resolution",
1467
- error: "存在陈旧任务指针,必须先选择恢复、归档或开始新任务",
1468
- existing_task_id: existing.task_id,
1469
- existing_status: existing.status,
1470
- navigation,
1471
- hint: "先调用 sf_navigation 查看可执行处理步骤,不得绕过 SoloForge 状态直接分析或编码",
1472
- },
1473
- };
1474
- }
1475
- return {
1476
- result: {
1477
- error: "存在未完成的任务",
1478
- warning: "存在未完成的任务",
1479
- existing_task_id: existing.task_id,
1480
- existing_status: existing.status,
1481
- existing_intent: existing.intent,
1482
- hint: "调用 sf_status action=cancel 取消旧任务,或继续完成它",
1483
- },
1484
- };
1485
- }
1486
- // 创建任务上下文
1487
- const ctx = await taskContext.create(args.intent, config.product_profile);
1488
- const input = { intent: args.intent, project_path: projectPath, task_id: ctx.task_id };
1489
- const classification = (await lazyClassifier()).classify(input);
1490
- // 存储分类结果
1491
- await taskContext.setClassification(ctx.task_id, classification);
1492
- if (!(await lazyIntentRouter()).shouldEnterSoloForge(classification.route_decision)) {
1493
- await taskContext.updateStatus(ctx.task_id, "done");
1494
- }
1495
- return {
1496
- result: {
1497
- task_id: ctx.task_id,
1498
- ...classification,
1499
- },
1500
- };
1501
- });
1502
- // ── sf_expand: 意图膨胀,生成结构化 prompt 并注入计划上下文 ──
1503
- registerSafeTool("sf_expand", "将意图膨胀为结构化 prompt,包含 scope、验收标准和知识匹配。当存在计划时自动注入当前阶段上下文和输出模板", ExpandSchema, async (args) => {
1504
- const ctx = await taskContext.load(args.task_id);
1505
- if (!ctx || !ctx.classification) {
1506
- return { result: { error: "任务不存在或尚未分类,请先调用 sf_classify" } };
1507
- }
1508
- // 合并校验 + 应用:ctx 已存储值 → args 覆盖值,统一解析和规范化
1509
- let needsSave = false;
1510
- for (const field of CONTRACT_OBJECT_FIELDS) {
1511
- // args 优先,其次 ctx 已存储值
1512
- const raw = args[field] ?? ctx[field];
1513
- if (!raw)
1514
- continue;
1515
- const parsed = parseContractObject(raw, field);
1516
- if (parsed.error)
1517
- return { result: { error: parsed.error, status: "invalid_input" } };
1518
- if (parsed.value) {
1519
- ctx[field] = field === "decision_workshop"
1520
- ? ((await lazyDecisionWorkshop()).normalizeDecisionWorkshopContract(parsed.value, args.task_id) ?? parsed.value)
1521
- : parsed.value;
1522
- needsSave = true;
1523
- }
1524
- }
1525
- if (needsSave)
1526
- await taskContext.save(ctx);
1527
- // 状态守卫:classifying/expanding/clarifying/failed → expanding
1528
- if (ctx.status === "classifying" || ctx.status === "clarifying" || ctx.status === "failed") {
1529
- await taskContext.updateStatus(args.task_id, "expanding");
1530
- ctx.status = "expanding";
1531
- }
1532
- else if (ctx.status !== "expanding") {
1533
- return {
1534
- result: { error: `任务状态 ${ctx.status} 不可膨胀,需要 classifying 或 expanding`, status: ctx.status },
1535
- };
1536
- }
1537
- // 构建计划上下文(如果存在计划)
1538
- let planContext;
1539
- if (ctx.planning && ctx.planning.sub_tasks.length > 0 && ctx.planning.current_step_index < ctx.planning.sub_tasks.length) {
1540
- const currentStep = ctx.planning.sub_tasks[ctx.planning.current_step_index];
1541
- const previousOutputs = {};
1542
- // 读取前序步骤的产出文件(P3: 产物系统)
1543
- for (let i = 0; i < ctx.planning.current_step_index; i++) {
1544
- const step = ctx.planning.sub_tasks[i];
1545
- if (step.output_path) {
1546
- try {
1547
- const fs = await import("node:fs/promises");
1548
- const content = await fs.readFile(step.output_path, "utf-8");
1549
- previousOutputs[step.title] = content;
1550
- }
1551
- catch {
1552
- // 文件不存在则跳过
1553
- }
1554
- }
1555
- }
1556
- planContext = { current_step: currentStep, previous_outputs: previousOutputs };
1557
- }
1558
- // H1: Token 预算检查 — advisory 模式,仅警告不阻断
1559
- gateway.beginTask(args.task_id);
1560
- let h1Warning;
1561
- try {
1562
- const gateResult = gateway.request("solution_brainstorm");
1563
- if (!gateResult.allowed) {
1564
- h1Warning = { warning: `H1 advisory: ${gateResult.reason}`, budget_remaining: gateResult.remaining_budget };
1565
- }
1566
- }
1567
- catch (e) {
1568
- h1Warning = { warning: `H1 advisory: ${e.message}`, budget_remaining: 0 };
1569
- }
1570
- // H4: advisory-only — 不获取持久锁,仅检查当前锁定状态
1571
- let h4LockWarning;
1572
- const lockStatus = await ioController.isLocked();
1573
- if (lockStatus.locked && lockStatus.task_id !== args.task_id) {
1574
- h4LockWarning = `H4 advisory: 工作区已被任务 ${lockStatus.task_id} 锁定(${lockStatus.reason ?? "未知"}),当前 H4 未进入强制层`;
1575
- }
1576
- let expansion;
1577
- try {
1578
- expansion = await (await lazyExpander()).expand({
1579
- intent: ctx.intent,
1580
- classification: ctx.classification,
1581
- projectPath,
1582
- config,
1583
- knowledgeIndex,
1584
- clarificationAnswers: args.clarification_answers,
1585
- route_decision: ctx.classification?.route_decision,
1586
- plan_context: planContext,
1587
- input_material_confirmations: args.input_material_confirmations,
1588
- task_id: args.task_id,
1589
- brainstorm_session: ctx.brainstorm_session ?? undefined,
1590
- });
1591
- }
1592
- catch (expandErr) {
1593
- // 尝试回退到 failed 状态,避免任务停留在 expanding
1594
- try {
1595
- await taskContext.updateStatus(args.task_id, "failed");
1596
- }
1597
- catch {
1598
- // 状态转换非法(如已非 expanding),忽略
1599
- }
1600
- throw expandErr;
1601
- }
1602
- finally {
1603
- if (!h1Warning)
1604
- gateway.completeOperation();
1605
- gateway.endTask();
1606
- }
1607
- expansion.task_id = args.task_id;
1608
- const projectRoot = fss.realpathSync(projectPath);
1609
- const referencedMaterialPaths = new Set((expansion.input_materials ?? [])
1610
- .map((material) => material.path_or_ref)
1611
- .filter((materialPath) => typeof materialPath === "string" && materialPath.length > 0)
1612
- .map((materialPath) => path.resolve(projectRoot, normalizePathCandidate(materialPath))));
1613
- const confirmedProjectSourcePaths = (args.input_material_confirmations ?? [])
1614
- .map((materialPath) => path.resolve(projectRoot, normalizePathCandidate(materialPath)))
1615
- .filter((absolutePath) => isSameOrDescendantPath(absolutePath, projectRoot, { caseSensitive: false }))
1616
- .filter((absolutePath) => referencedMaterialPaths.has(absolutePath))
1617
- .filter((absolutePath) => {
1618
- try {
1619
- return fss.statSync(absolutePath).isFile()
1620
- && fss.realpathSync(absolutePath).startsWith(`${projectRoot}${path.sep}`);
1621
- }
1622
- catch {
1623
- return false;
1624
- }
1625
- });
1626
- const registerConfirmedProjectSources = (registry) => {
1627
- for (const absolutePath of confirmedProjectSourcePaths) {
1628
- const sourceRef = path.relative(projectRoot, absolutePath);
1629
- registry.register({
1630
- source_type: "project_file",
1631
- evidence_role: "project_source_file",
1632
- authority: "authoritative",
1633
- freshness: "current",
1634
- permission: "allowed",
1635
- scope: "confirmed_input_material",
1636
- description: `已确认项目输入材料: ${sourceRef}`,
1637
- source_ref: sourceRef,
1638
- });
1639
- }
1640
- };
1641
- const workflowIntent = ctx.route_decision?.workflow_intent ?? ctx.classification.route_decision?.workflow_intent;
1642
- // 问题六十: 高风险项目事实声明先过证据门,避免后续架构研讨门遮蔽无证据问题。
1643
- {
1644
- const evRoute = ctx.route_decision?.route ?? ctx.classification?.route_decision?.route;
1645
- const evWorkflowIntent = ctx.route_decision?.workflow_intent ?? ctx.classification?.route_decision?.workflow_intent;
1646
- const evRisk = (await import("../../engine/evidence_grounding_contract.js")).assessTaskRisk(ctx.classification?.task_type, evRoute, ctx.intent);
1647
- const isArchitectureContext = evWorkflowIntent === "architecture_design"
1648
- || evWorkflowIntent === "existing_system_gap_analysis"
1649
- || evRoute === "artifact_generation"
1650
- || hasArchitectureIntentSignal(ctx.intent);
1651
- if (isArchitectureContext && (evRisk === "high" || evRisk === "critical")) {
1652
- const { createEvidenceGroundingSystem } = await import("../../engine/evidence_grounding_contract.js");
1653
- const evg = createEvidenceGroundingSystem();
1654
- evg.registry.register({
1655
- source_type: "task_context",
1656
- evidence_role: "classification",
1657
- authority: "authoritative",
1658
- freshness: "current",
1659
- permission: "allowed",
1660
- scope: "classification",
1661
- description: "任务分类结果",
1662
- source_ref: `task:${args.task_id}`,
1663
- });
1664
- if (knowledgeIndex) {
1665
- const { project } = knowledgeIndex.getAllEntries();
1666
- for (const entry of project) {
1667
- if (entry.status !== "active")
1668
- continue;
1669
- evg.registry.register({
1670
- source_type: "knowledge_asset",
1671
- evidence_role: "template_guidance",
1672
- authority: "trusted",
1673
- freshness: "current",
1674
- permission: "allowed",
1675
- scope: entry.scope?.join(",") ?? "knowledge",
1676
- description: entry.name,
1677
- source_ref: entry.file_path,
1678
- });
1679
- }
1680
- }
1681
- const tdc = ctx.technology_decision_contract;
1682
- if (tdc?.human_gate_evidence) {
1683
- evg.registry.register({
1684
- source_type: "user_confirmation",
1685
- evidence_role: "user_confirmation",
1686
- authority: "authoritative",
1687
- freshness: "current",
1688
- permission: "allowed",
1689
- scope: "technology_decision",
1690
- description: `技术决策确认: ${tdc.decision_scope ?? "general"}`,
1691
- source_ref: `decision:${tdc.decision_id ?? args.task_id}`,
1692
- });
1693
- }
1694
- registerConfirmedProjectSources(evg.registry);
1695
- const evClaims = [
1696
- {
1697
- id: "claim-expand-0",
1698
- category: "user_confirmation",
1699
- claim_text: "任务路由和执行范围已确认",
1700
- evidence_ids: evg.registry.query({ source_type: "task_context" }).map((e) => e.id),
1701
- is_uncertain: false,
1702
- risk_level: evRisk,
1703
- },
1704
- {
1705
- id: "claim-expand-1",
1706
- category: "architecture",
1707
- claim_text: "技术方案基于现有系统分析",
1708
- evidence_ids: evg.registry.query({}).filter((e) => e.evidence_role && e.evidence_role !== "template_guidance" && e.evidence_role !== "classification").map((e) => e.id),
1709
- is_uncertain: false,
1710
- risk_level: evRisk,
1711
- },
1712
- ];
1713
- const evMatrix = evg.builder.buildContext(evClaims, {
1714
- target_claims: evClaims.map((c) => c.claim_text),
1715
- source_types: [],
1716
- keywords: [],
1717
- max_results: 10,
1718
- });
1719
- evMatrix.task_id = args.task_id;
1720
- const evGate = evg.gate.evaluate(evMatrix, evRisk);
1721
- await taskContext.setEvidenceGroundingResult(args.task_id, {
1722
- evidence_matrix: evMatrix,
1723
- evidence_gate_result: evGate,
1724
- unsupported_claims: evGate.unsupported_claims,
1725
- conflict_resolutions: evMatrix.conflicts,
1726
- });
1727
- if (!evGate.allowed) {
1728
- return {
1729
- result: {
1730
- error: `证据驱动门禁阻断: ${evGate.reason_zh}`,
1731
- diagnostic_code: evGate.diagnostic_code,
1732
- reason_zh: evGate.reason_zh,
1733
- unsupported_claims: evGate.unsupported_claims,
1734
- missing_evidence: evGate.missing_evidence,
1735
- status: "blocked",
1736
- recovery: "请提供项目文件、命令输出或其他权威证据支撑关键声明后重新 sf_expand",
1737
- },
1738
- };
1739
- }
1740
- }
1741
- }
1742
- // 问题六十一: 架构设计前的六域研讨门独立执行,不得被施工指令契约有无绕过。
1743
- const existingSourceRoot = ["src", "backend", "frontend", "apps", "services"].some((candidate) => fss.existsSync(path.join(projectPath, candidate)));
1744
- const existingManifest = ["package.json", "pom.xml", "build.gradle", "settings.gradle"].some((candidate) => fss.existsSync(path.join(projectPath, candidate)));
1745
- const detectedArchitectureContext = existingSourceRoot && existingManifest
1746
- ? "existing_system"
1747
- : (!existingSourceRoot && !existingManifest ? "empty_project" : "new_system");
1748
- const workshopGate = await checkArchitectureDecisionWorkshopGate({
1749
- ctx,
1750
- workflowIntent,
1751
- projectContext: detectedArchitectureContext,
1752
- });
1753
- await taskContext.save(ctx);
1754
- if (!workshopGate.allowed) {
1755
- return {
1756
- result: {
1757
- error: "架构设计前必须先完成六类架构决策研讨与用户确认",
1758
- status: "awaiting_confirmation",
1759
- architecture_decision_workshop: workshopGate.contract,
1760
- blocking_findings: workshopGate.findings,
1761
- next_domain: workshopGate.next_domain,
1762
- recovery: "请从当前待讨论域开始,提供候选方案、推荐理由、风险和用户确认后重新调用 sf_expand",
1763
- },
1764
- };
1765
- }
1766
- // 六域决策闭合后创建设计产物生命周期;正式设计与后续实现必须以其复验结果为准。
1767
- if (workflowIntent === "architecture_design" && !ctx.design_artifact_pack) {
1768
- const designModule = await lazyDesignArtifactPack();
1769
- ctx.design_artifact_pack = designModule.createDesignArtifactPack(args.task_id);
1770
- ctx.design_artifact_pack.status = "awaiting_decisions";
1771
- ctx.design_artifact_pack.decision_workshop_ref = `task:${args.task_id}:architecture_decision_workshop`;
1772
- ctx.design_artifact_pack.user_confirmation_ref = ctx.architecture_decision_workshop?.document_output_confirmation_ref;
1773
- await taskContext.save(ctx);
1774
- }
1775
- // 问题六十一(通用): 可组合决策包门禁
1776
- const dwModule = await lazyDecisionWorkshop();
1777
- const packMatch = dwModule.matchDecisionPacks({
1778
- workflow_intent: workflowIntent,
1779
- intent: ctx.intent,
1780
- task_type: ctx.classification?.task_type,
1781
- });
1782
- // 过滤掉架构(架构由上面的专用子包处理)
1783
- const nonArchPacks = packMatch.packs.filter((p) => p !== "architecture");
1784
- if (nonArchPacks.length > 0) {
1785
- const dwContract = ctx.decision_workshop ?? dwModule.createDecisionWorkshop(args.task_id, nonArchPacks, detectedArchitectureContext, packMatch.reasons.join(";"));
1786
- const dwGate = dwModule.evaluateDecisionWorkshop(dwContract);
1787
- ctx.decision_workshop = dwModule.applyDecisionWorkshopGate(dwContract);
1788
- await taskContext.save(ctx);
1789
- if (!dwGate.allowed) {
1790
- return {
1791
- result: {
1792
- error: `${packMatch.reasons.join(";")},必须先完成决策研讨与用户确认`,
1793
- status: "awaiting_confirmation",
1794
- decision_workshop: ctx.decision_workshop,
1795
- blocking_findings: dwGate.blocking_findings,
1796
- next_domain: dwGate.next_domain,
1797
- activated_packs: nonArchPacks,
1798
- recovery: "请从当前待讨论域开始,提供候选方案、推荐理由、风险和用户确认后重新调用 sf_expand",
1799
- },
1800
- };
1801
- }
1802
- }
1803
- // 问题四十九/五十: 已有架构合同或现有系统证据的进一步审查。
1804
- const expansionRoute = expansion.workflow_trace
1805
- ? expansion.workflow_trace?.route
1806
- : undefined;
1807
- const hasInstructionContract = !!ctx?.instruction_contract;
1808
- if (hasInstructionContract) {
1809
- if (expansionRoute === "artifact_generation" || expansionRoute === "analysis") {
1810
- const archGate = await checkArchitectureDesignGate({ ctx, route: expansionRoute });
1811
- if (!archGate.allowed) {
1812
- return {
1813
- result: {
1814
- error: archGate.reason_zh,
1815
- architecture_gate_findings: archGate.findings,
1816
- status: "blocked",
1817
- recovery: "架构设计审查未通过,请补充缺失项后重新 sf_expand",
1818
- },
1819
- };
1820
- }
1821
- }
1822
- if (expansionRoute === "code_change" || expansionRoute === "artifact_generation") {
1823
- const analysisGate = await checkExistingSystemAnalysisGate({
1824
- hasExistingCode: !!config?.tech_stack,
1825
- hasPackageJson: !!projectPath,
1826
- hasSrcDir: true,
1827
- hasAnalysis: !!ctx.existing_system_analysis,
1828
- hasGapAnalysis: !!ctx.requirement_gap_analysis,
1829
- });
1830
- if (!analysisGate.allowed) {
1831
- return {
1832
- result: {
1833
- error: `现有系统分析门禁未通过: ${analysisGate.reason_zh}`,
1834
- missing_analysis: analysisGate.missing_analysis,
1835
- status: "blocked",
1836
- recovery: "请先对现有项目执行系统分析和差距分析,再继续架构设计或编码",
1837
- },
1838
- };
1839
- }
1840
- }
1841
- }
1842
- // ── S4 gates: 轻量路径(acceptance/review/read_only)整体跳过 ──
1843
- const isLightweightRoute = expansionRoute === "acceptance" || expansionRoute === "review"
1844
- || expansionRoute === "direct_answer" || expansionRoute === "analysis";
1845
- if (!isLightweightRoute) {
1846
- // ── S4 gates: 独立于 hasInstructionContract,由 requires* 触发判定 ──
1847
- // 问题十六: 技术选型决策主权 gate — 高影响技术决策缺证据时 blocked
1848
- {
1849
- const decisionGate = await checkDecisionSovereigntyGate({ ctx, route: expansionRoute });
1850
- if (!decisionGate.allowed) {
1851
- return {
1852
- result: {
1853
- error: decisionGate.reason_zh,
1854
- status: "blocked",
1855
- expected_schema: decisionGate.expected_schema,
1856
- recovery: decisionGate.requires_human_gate ? "请提供技术决策确认证据(human_gate_evidence)" : "技术选型决策校验失败,请按照 expected_schema 格式提供 technology_decision_contract",
1857
- },
1858
- };
1859
- }
1860
- }
1861
- // 问题二十六: 细节纪律 gate — 复杂任务缺关键细节时 blocked
1862
- {
1863
- const detailGate = await checkDetailDisciplineGate({ ctx, route: expansionRoute });
1864
- if (!detailGate.allowed) {
1865
- return {
1866
- result: {
1867
- error: detailGate.reason_zh,
1868
- missing_details: detailGate.missing_details,
1869
- status: "blocked",
1870
- recovery: "多步骤/复杂任务缺 detail_discipline_contract,请提供后重新 sf_expand",
1871
- },
1872
- };
1873
- }
1874
- }
1875
- // 问题二十七: 第一性原理 gate — 高影响任务缺推理时 blocked
1876
- {
1877
- const fpGate = await checkFirstPrinciplesGate({ ctx, route: expansionRoute });
1878
- if (!fpGate.allowed) {
1879
- return {
1880
- result: {
1881
- error: fpGate.reason_zh,
1882
- failures: fpGate.failures,
1883
- expected_schema: fpGate.expected_schema,
1884
- status: "blocked",
1885
- recovery: "高影响任务缺 first_principles_frame,请按照 expected_schema 格式提供后重新 sf_expand",
1886
- },
1887
- };
1888
- }
1889
- }
1890
- // 问题四十二(brainstorm): 脑暴契约 gate — 不确定项缺方案探索时 blocked
1891
- {
1892
- const brainstormGate = await checkBrainstormGate({ ctx, route: expansionRoute });
1893
- if (!brainstormGate.allowed) {
1894
- return {
1895
- result: {
1896
- error: brainstormGate.reason_zh,
1897
- violations: brainstormGate.violations,
1898
- expected_schema: brainstormGate.expected_schema,
1899
- status: "blocked",
1900
- recovery: "不确定项/方案选择缺 brainstorm_session,请按照 expected_schema 格式提供后重新 sf_expand",
1901
- },
1902
- };
1903
- }
1904
- }
1905
- // 问题六十六/六十七/六十八: 编码前工程约束必须聚合返回。
1906
- // 不能让 OOD 或后端工程门禁抢先返回,遮蔽用户项目的注释/日志契约。
1907
- {
1908
- const preImplementationBlocks = [];
1909
- const preImplementationPayload = {};
1910
- const artifactDesignIntent = expansionRoute === "artifact_generation"
1911
- || ["architecture_design", "database_design", "api_design", "detailed_design"].includes(String(workflowIntent))
1912
- || /(?:架构|数据库|API|接口|OpenAPI).{0,12}(?:设计|规格|文档)|(?:设计|规格|文档).{0,12}(?:API|接口|OpenAPI)/i.test(ctx.intent);
1913
- const isImplementationRoute = !artifactDesignIntent && (expansionRoute === "code_change"
1914
- || String(workflowIntent) === "backend_api_implementation"
1915
- || String(workflowIntent) === "frontend_business_logic"
1916
- || /编码|实现|开发|controller|service|component/i.test(ctx.intent));
1917
- const traceabilityModule = await lazyTraceability();
1918
- const traceReport = isImplementationRoute
1919
- ? traceabilityModule.auditDesignImplementationTraceability(projectPath)
1920
- : {
1921
- passed: true,
1922
- matrix_exists: false,
1923
- findings: [],
1924
- checked_files: [],
1925
- matrix_path: traceabilityModule.DEFAULT_DESIGN_IMPLEMENTATION_TRACEABILITY_PATH,
1926
- };
1927
- if (isImplementationRoute && !traceReport.passed) {
1928
- ctx.traceability_binding = {
1929
- requirement_ids: [],
1930
- prototype_ids: [],
1931
- architecture_ids: [],
1932
- detail_design_ids: [],
1933
- phase_ids: [],
1934
- slice_ids: [],
1935
- acceptance_ids: [],
1936
- status: "needs_backfill",
1937
- findings: traceReport.findings.map((finding) => `${finding.code}: ${finding.message_zh}`),
1938
- };
1939
- await taskContext.save(ctx);
1940
- return {
1941
- result: {
1942
- error: "需求/原型/设计/切片/验收追踪链路未闭合,不得进入编码实现",
1943
- status: "blocked",
1944
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.traceabilityMissing,
1945
- traceability_findings: traceReport.findings,
1946
- checked_files: traceReport.checked_files,
1947
- matrix_path: traceReport.matrix_path,
1948
- template_path: traceabilityModule.DESIGN_IMPLEMENTATION_TRACEABILITY_TEMPLATE_PATH,
1949
- recovery_command: traceabilityModule.DESIGN_IMPLEMENTATION_TRACEABILITY_RECOVERY_COMMAND,
1950
- recovery: `${traceabilityModule.DESIGN_IMPLEMENTATION_TRACEABILITY_RECOVERY_GUIDANCE}。不得取消任务后直接写代码,不得改用 Bash 绕过追踪矩阵。`,
1951
- },
1952
- };
1953
- }
1954
- const traceBindingIds = traceabilityModule.extractTraceabilityBindingIds(ctx);
1955
- if (traceReport.matrix_exists && isImplementationRoute) {
1956
- const missingPrefixes = ["PHASE", "SLICE", "DD", "AC"].filter((prefix) => !traceBindingIds.some((id) => id.startsWith(`${prefix}-`)));
1957
- if (missingPrefixes.length > 0) {
1958
- ctx.traceability_binding = {
1959
- requirement_ids: traceBindingIds.filter((id) => id.startsWith("REQ-")),
1960
- prototype_ids: traceBindingIds.filter((id) => id.startsWith("PROTO-")),
1961
- architecture_ids: traceBindingIds.filter((id) => id.startsWith("ARCH-")),
1962
- detail_design_ids: traceBindingIds.filter((id) => id.startsWith("DD-")),
1963
- phase_ids: traceBindingIds.filter((id) => id.startsWith("PHASE-")),
1964
- slice_ids: traceBindingIds.filter((id) => id.startsWith("SLICE-")),
1965
- acceptance_ids: traceBindingIds.filter((id) => id.startsWith("AC-")),
1966
- status: "missing",
1967
- findings: missingPrefixes.map((prefix) => `编码前缺少 ${prefix}-* 绑定`),
1968
- };
1969
- await taskContext.save(ctx);
1970
- return {
1971
- result: {
1972
- error: "编码任务必须先绑定阶段、切片、详细设计和验收 ID",
1973
- status: "awaiting_traceability_binding",
1974
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.traceabilityBindingMissing,
1975
- missing_prefixes: missingPrefixes,
1976
- matrix_path: traceReport.matrix_path,
1977
- template_path: traceabilityModule.DESIGN_IMPLEMENTATION_TRACEABILITY_TEMPLATE_PATH,
1978
- recovery_command: "sf_expand",
1979
- recovery: "在任务上下文或指令中明确本次实现对应的 PHASE-*、SLICE-*、DD-*、AC-*,再重新调用 sf_expand;不得脱离已确认设计直接编码,不得取消任务后改用 Bash/Edit/Write 直接实现",
1980
- },
1981
- };
1982
- }
1983
- ctx.traceability_binding = {
1984
- requirement_ids: traceBindingIds.filter((id) => id.startsWith("REQ-")),
1985
- prototype_ids: traceBindingIds.filter((id) => id.startsWith("PROTO-")),
1986
- architecture_ids: traceBindingIds.filter((id) => id.startsWith("ARCH-")),
1987
- detail_design_ids: traceBindingIds.filter((id) => id.startsWith("DD-")),
1988
- phase_ids: traceBindingIds.filter((id) => id.startsWith("PHASE-")),
1989
- slice_ids: traceBindingIds.filter((id) => id.startsWith("SLICE-")),
1990
- acceptance_ids: traceBindingIds.filter((id) => id.startsWith("AC-")),
1991
- status: "bound",
1992
- findings: [],
1993
- };
1994
- preImplementationPayload.traceability_binding = ctx.traceability_binding;
1995
- }
1996
- const oodModule = await lazyOodSolid();
1997
- const oodGate = oodModule.evaluateOodDesignGate({
1998
- task_id: args.task_id,
1999
- intent: ctx.intent,
2000
- route: expansionRoute,
2001
- summary: ctx.ood_solid_summary,
2002
- });
2003
- if (oodGate.applicable) {
2004
- ctx.ood_solid_summary = oodGate.required_summary;
2005
- preImplementationPayload.ood_solid_summary = oodGate.required_summary;
2006
- }
2007
- if (!oodGate.allowed) {
2008
- preImplementationBlocks.push({
2009
- code: TOOL_DIAGNOSTIC_CODES.oodMissingSummary,
2010
- reason_zh: oodGate.reason_zh,
2011
- });
2012
- }
2013
- const backendModule = await lazyBackendImplementation();
2014
- const backendGate = backendModule.evaluateBackendImplementationGate({
2015
- task_id: args.task_id,
2016
- intent: ctx.intent,
2017
- route: expansionRoute,
2018
- work_package: ctx.backend_implementation_work_package,
2019
- });
2020
- if (backendGate.applicable) {
2021
- ctx.backend_implementation_work_package = backendGate.work_package;
2022
- preImplementationPayload.backend_implementation_work_package = backendGate.work_package;
2023
- }
2024
- if (!backendGate.allowed) {
2025
- preImplementationBlocks.push({
2026
- code: TOOL_DIAGNOSTIC_CODES.backendMissingSummary,
2027
- reason_zh: backendGate.reason_zh,
2028
- });
2029
- }
2030
- if (ctx.classification.task_type !== "scaffold") {
2031
- const obsModule = await lazyCodeObservability();
2032
- const obsGate = obsModule.evaluateCodeObservabilityGate({
2033
- task_id: args.task_id,
2034
- intent: ctx.intent,
2035
- route: expansionRoute,
2036
- changed_files: ctx.execution?.changed_files,
2037
- work_package: ctx.code_observability_work_package,
2038
- });
2039
- if (obsGate.applicable) {
2040
- ctx.code_observability_work_package = obsGate.work_package;
2041
- preImplementationPayload.code_observability_work_package = obsGate.work_package;
2042
- }
2043
- if (!obsGate.allowed) {
2044
- preImplementationBlocks.push({
2045
- code: TOOL_DIAGNOSTIC_CODES.codeObservabilityWorkPackage,
2046
- reason_zh: obsGate.reason_zh,
2047
- });
2048
- }
2049
- }
2050
- if (Object.keys(preImplementationPayload).length > 0) {
2051
- await taskContext.save(ctx);
2052
- }
2053
- if (preImplementationBlocks.length > 0) {
2054
- return {
2055
- result: {
2056
- error: "编码前工程契约未全部确认,不得开始实现",
2057
- status: "awaiting_implementation_contracts",
2058
- diagnostic_codes: preImplementationBlocks.map((b) => b.code),
2059
- blocking_findings: preImplementationBlocks,
2060
- ...preImplementationPayload,
2061
- recovery: "请同时确认 OOD/SOLID、后端工程边界、代码注释与日志契约后重新调用 sf_expand",
2062
- },
2063
- };
2064
- }
2065
- }
2066
- } // end if (!isLightweightRoute) — 轻量路径跳过 S4 gates + 编码前工程约束
2067
- // Input Material Contract: 处理 hard-blocking 结果
2068
- // Privacy Gate: 隐私/敏感信息策略阻断
2069
- const isBlocked = expansion.prompt.startsWith("## 阻塞:输入材料禁止读取")
2070
- || expansion.prompt.startsWith("## 阻塞:隐私/敏感信息策略");
2071
- let isMaterialClarification = false;
2072
- if (expansion.prompt.startsWith("## 澄清请求") && expansion.input_materials) {
2073
- for (const m of expansion.input_materials) {
2074
- if (m.access_mode !== "forbidden" && (await lazyInputMaterial()).classifyIngestionStatus(m.path_or_ref) === "requires_confirmation") {
2075
- isMaterialClarification = true;
2076
- break;
2077
- }
2078
- }
2079
- }
2080
- // 注入 H1/H4 advisory warnings
2081
- const advisories = {};
2082
- if (h1Warning)
2083
- advisories.h1_advisory = h1Warning;
2084
- if (h4LockWarning)
2085
- advisories.h4_advisory = h4LockWarning;
2086
- // 问题六十:证据驱动门禁 — 高风险任务必须阻断无证据声明
2087
- const _evRoute = ctx.route_decision?.route ?? ctx.classification?.route_decision?.route;
2088
- const _evRisk = (await import("../../engine/evidence_grounding_contract.js")).assessTaskRisk(ctx.classification?.task_type, _evRoute, ctx.intent);
2089
- if (_evRisk === "high" || _evRisk === "critical") {
2090
- const { createEvidenceGroundingSystem } = await import("../../engine/evidence_grounding_contract.js");
2091
- const _evg = createEvidenceGroundingSystem();
2092
- if (ctx.classification) {
2093
- _evg.registry.register({
2094
- source_type: "task_context",
2095
- evidence_role: "classification",
2096
- authority: "authoritative",
2097
- freshness: "current",
2098
- permission: "allowed",
2099
- scope: "classification",
2100
- description: "任务分类结果",
2101
- source_ref: `task:${args.task_id}`,
2102
- });
2103
- }
2104
- // 注册知识索引中的项目知识作为证据(仅项目级,不含全局通用规则)
2105
- // 所有知识索引条目都是 template_guidance 角色,不得支撑项目事实声明
2106
- if (knowledgeIndex) {
2107
- const { project } = knowledgeIndex.getAllEntries();
2108
- for (const entry of project) {
2109
- if (entry.status !== "active")
2110
- continue;
2111
- _evg.registry.register({
2112
- source_type: "knowledge_asset",
2113
- evidence_role: "template_guidance",
2114
- authority: "trusted",
2115
- freshness: "current",
2116
- permission: "allowed",
2117
- scope: entry.scope?.join(",") ?? "knowledge",
2118
- description: entry.name,
2119
- source_ref: entry.file_path,
2120
- });
2121
- }
2122
- }
2123
- // 技术决策契约含 human_gate_evidence → 注册为 user_confirmation(真实项目证据)
2124
- const _tdc = ctx.technology_decision_contract;
2125
- if (_tdc?.human_gate_evidence) {
2126
- _evg.registry.register({
2127
- source_type: "user_confirmation",
2128
- evidence_role: "user_confirmation",
2129
- authority: "authoritative",
2130
- freshness: "current",
2131
- permission: "allowed",
2132
- scope: "technology_decision",
2133
- description: `技术决策确认: ${_tdc.decision_scope ?? "general"}`,
2134
- source_ref: `decision:${_tdc.decision_id ?? args.task_id}`,
2135
- });
2136
- }
2137
- registerConfirmedProjectSources(_evg.registry);
2138
- const _evClaims = [
2139
- {
2140
- id: "claim-expand-0",
2141
- category: "user_confirmation",
2142
- claim_text: "任务路由和执行范围已确认",
2143
- evidence_ids: _evg.registry.query({ source_type: "task_context" }).map((e) => e.id),
2144
- is_uncertain: false,
2145
- risk_level: _evRisk,
2146
- },
2147
- ];
2148
- // 只在架构设计/现有系统分析场景生成 architecture claim
2149
- const _evWorkflowIntent = ctx.route_decision?.workflow_intent ?? ctx.classification?.route_decision?.workflow_intent;
2150
- const _isArchitectureContext = _evWorkflowIntent === "architecture_design"
2151
- || _evWorkflowIntent === "existing_system_gap_analysis"
2152
- || _evRoute === "artifact_generation"
2153
- || hasArchitectureIntentSignal(ctx.intent);
2154
- if (_isArchitectureContext) {
2155
- _evClaims.push({
2156
- id: "claim-expand-1",
2157
- category: "architecture",
2158
- claim_text: "技术方案基于现有系统分析",
2159
- evidence_ids: _evg.registry.query({}).filter((e) => e.evidence_role && e.evidence_role !== "template_guidance" && e.evidence_role !== "classification").map((e) => e.id),
2160
- is_uncertain: false,
2161
- risk_level: _evRisk,
2162
- });
2163
- }
2164
- const _evVerify = _evg.verifier.verify(_evClaims, _evRisk);
2165
- const _evMatrix = _evg.builder.buildContext(_evClaims, {
2166
- target_claims: _evClaims.map((c) => c.claim_text),
2167
- source_types: [], keywords: [], max_results: 10,
2168
- });
2169
- _evMatrix.task_id = args.task_id;
2170
- const _evGate = _evg.gate.evaluate(_evMatrix, _evRisk);
2171
- // 写回 TaskContext(blocked 也保存)
2172
- await taskContext.setEvidenceGroundingResult(args.task_id, {
2173
- evidence_matrix: _evMatrix,
2174
- evidence_gate_result: _evGate,
2175
- unsupported_claims: _evGate.unsupported_claims,
2176
- conflict_resolutions: _evMatrix.conflicts,
2177
- });
2178
- if (!_evGate.allowed) {
2179
- return {
2180
- result: {
2181
- error: `证据驱动门禁阻断: ${_evGate.reason_zh}`,
2182
- diagnostic_code: _evGate.diagnostic_code,
2183
- reason_zh: _evGate.reason_zh,
2184
- unsupported_claims: _evGate.unsupported_claims,
2185
- missing_evidence: _evGate.missing_evidence,
2186
- status: "blocked",
2187
- recovery: "请提供项目文件、命令输出或其他权威证据支撑关键声明后重新 sf_expand",
2188
- },
2189
- };
2190
- }
2191
- if (_evGate.requires_user_confirmation.length > 0) {
2192
- advisories.evidence_advisory = {
2193
- level: "requires_confirmation",
2194
- items: _evGate.requires_user_confirmation,
2195
- diagnostic_code: _evGate.diagnostic_code,
2196
- };
2197
- }
2198
- }
2199
- else {
2200
- // 低风险通用问答:标注为通用建议
2201
- advisories.evidence_advisory = "通用建议,非项目事实;证据驱动门禁低风险放行";
2202
- }
2203
- // 配置优先级警告
2204
- if (expansion.config_resolution_reports && expansion.config_resolution_reports.length > 0) {
2205
- const configWarnings = expansion.config_resolution_reports
2206
- .filter(r => r.conflicts.length > 0)
2207
- .map(r => r.conflicts.map(c => `${c.reason}`).join("; "));
2208
- if (configWarnings.length > 0) {
2209
- advisories.config_precedence_warnings = configWarnings;
2210
- }
2211
- }
2212
- // 决策契约 advisory: 校验 expand 输出是否包含默认决策字段
2213
- const decisionContract = (await lazyDecision()).validateDecisionOutput(expansion);
2214
- if (!decisionContract.passed) {
2215
- advisories.decision_contract_advisory = decisionContract.advisory;
2216
- }
2217
- // 统一持久化:load 一次,所有修改共享同一个 ctx,最后 save 一次
2218
- // 避免 setExpansion/updateStatus/setPlanProposalGate 各自 load-save 互相覆盖
2219
- try {
2220
- const freshCtx = await taskContext.load(args.task_id);
2221
- if (freshCtx) {
2222
- // 1. 写入 expansion
2223
- await taskContext.setExpansion(args.task_id, expansion, freshCtx);
2224
- // 2. 写入 artifact(共享同一 ctx,不会重新 load)
2225
- if (expansion.output_artifact_record) {
2226
- await taskContext.setArtifact(args.task_id, expansion.output_artifact_record, freshCtx);
2227
- }
2228
- // 3. 状态转换(共享 ctx,校验通过后 save)
2229
- const nextStatus = isBlocked ? "failed"
2230
- : expansion.prompt.startsWith("## 澄清请求") ? "clarifying"
2231
- : "executing";
2232
- await taskContext.updateStatus(args.task_id, nextStatus, freshCtx);
2233
- // 4. 设置 plan_proposal_gate(共享 ctx,最后一次 save)
2234
- {
2235
- const { evaluatePlanProposalGate, inferPlanGateTaskType } = await import("../../engine/plan_proposal_gate.js");
2236
- const routeForGate = expansion.workflow_trace?.route ?? expansionRoute ?? "code_change";
2237
- const taskTypeForGate = inferPlanGateTaskType(ctx.intent);
2238
- const isLightweight = routeForGate === "acceptance" || routeForGate === "review"
2239
- || routeForGate === "direct_answer" || routeForGate === "analysis"
2240
- || taskTypeForGate === "local_acceptance";
2241
- if (isLightweight) {
2242
- await taskContext.setPlanProposalGate(args.task_id, {
2243
- passed: true,
2244
- plan_gate_status: "passed",
2245
- required_level: "brief_plan",
2246
- reason_zh: "轻量路径自动通过",
2247
- violations: [],
2248
- evidence_refs: [],
2249
- blocked_actions: [],
2250
- }, freshCtx);
2251
- }
2252
- else {
2253
- const gateResult = evaluatePlanProposalGate({
2254
- task_id: args.task_id,
2255
- task_type: taskTypeForGate,
2256
- user_intent: ctx.intent,
2257
- plan_level: "execution_plan",
2258
- plan_summary_zh: ctx.intent.slice(0, 200),
2259
- proposed_steps: [expansionRoute ?? "execute"],
2260
- verification_plan: (expansion.acceptance?.automated ?? []).map((a) => a.description ?? String(a)),
2261
- risks: [],
2262
- evidence_refs: expansion.matched_knowledge ?? [],
2263
- });
2264
- await taskContext.setPlanProposalGate(args.task_id, gateResult, freshCtx);
2265
- }
2266
- }
2267
- }
2268
- }
2269
- catch (persistErr) {
2270
- try {
2271
- await taskContext.updateStatus(args.task_id, "failed");
2272
- }
2273
- catch {
2274
- // 状态转换非法,忽略
2275
- }
2276
- throw persistErr;
2277
- }
2278
- const expandPayload = Object.keys(advisories).length > 0
2279
- ? { ...expansion, advisories }
2280
- : expansion;
2281
- return {
2282
- result: expandPayload,
2283
- };
2284
- });
2285
- // ── sf_verify: 生成验证命令(构建、测试、验收检查) ──
2286
- registerSafeTool("sf_verify", "根据变更文件生成验证命令(构建、测试、验收检查),由 Claude Code Bash 执行", VerifySchema, async (args) => {
2287
- const ctx = await taskContext.load(args.task_id);
2288
- if (!ctx) {
2289
- return {
2290
- result: { error: "任务不存在" },
2291
- };
2292
- }
2293
- const implementationFiles = args.changed_files.filter((file) => /\.(?:ts|tsx|js|jsx|java|kt|cs|go|py)$/.test(file)
2294
- && !/(?:^|\/)tests?\//.test(file));
2295
- if (implementationFiles.length > 0) {
2296
- const implementationContents = {};
2297
- for (const changedFile of implementationFiles) {
2298
- const absoluteFile = path.resolve(projectPath, changedFile);
2299
- try {
2300
- if (isSameOrDescendantPath(absoluteFile, path.resolve(projectPath), { caseSensitive: false }) && fss.statSync(absoluteFile).isFile()) {
2301
- implementationContents[changedFile] = fss.readFileSync(absoluteFile, "utf-8");
2302
- }
2303
- }
2304
- catch {
2305
- // 文件缺失会由验证命令或现有产物检查报告。
2306
- }
2307
- }
2308
- const traceabilityModule = await lazyTraceability();
2309
- const traceVerification = traceabilityModule.verifyChangedFilesAgainstDesignTraceability(projectPath, implementationFiles, ctx);
2310
- if (!traceVerification.passed) {
2311
- ctx.traceability_binding = {
2312
- requirement_ids: traceVerification.binding_ids.filter((id) => id.startsWith("REQ-")),
2313
- prototype_ids: traceVerification.binding_ids.filter((id) => id.startsWith("PROTO-")),
2314
- architecture_ids: traceVerification.binding_ids.filter((id) => id.startsWith("ARCH-")),
2315
- detail_design_ids: traceVerification.binding_ids.filter((id) => id.startsWith("DD-")),
2316
- phase_ids: traceVerification.binding_ids.filter((id) => id.startsWith("PHASE-")),
2317
- slice_ids: traceVerification.binding_ids.filter((id) => id.startsWith("SLICE-")),
2318
- acceptance_ids: traceVerification.binding_ids.filter((id) => id.startsWith("AC-")),
2319
- status: "missing",
2320
- findings: traceVerification.findings.map((finding) => `${finding.code}: ${finding.message_zh}`),
2321
- };
2322
- await taskContext.save(ctx);
2323
- return {
2324
- result: {
2325
- error: "编码变更未绑定需求/原型/设计/切片/验收追踪链路,需修复后重验",
2326
- status: "blocked",
2327
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.traceabilityVerifyFailed,
2328
- traceability_findings: traceVerification.findings,
2329
- recovery: "补齐追踪矩阵并在任务中绑定 PHASE-*、SLICE-*、DD-*、AC-* 后重新执行 sf_verify",
2330
- },
2331
- };
2332
- }
2333
- const oodModule = await lazyOodSolid();
2334
- const oodGate = oodModule.evaluateOodDesignGate({
2335
- task_id: args.task_id,
2336
- intent: ctx.intent,
2337
- route: ctx.expansion?.workflow_trace?.route,
2338
- changed_files: implementationFiles,
2339
- summary: ctx.ood_solid_summary,
2340
- });
2341
- if (!oodGate.allowed) {
2342
- return {
2343
- result: {
2344
- error: oodGate.reason_zh,
2345
- status: "blocked",
2346
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.oodMissingSummary,
2347
- ood_solid_summary: oodGate.required_summary,
2348
- recovery: "完成 OOD/SOLID 摘要后重新执行 sf_expand 与 sf_verify",
2349
- },
2350
- };
2351
- }
2352
- const backendModule = await lazyBackendImplementation();
2353
- const backendGate = backendModule.evaluateBackendImplementationGate({
2354
- task_id: args.task_id,
2355
- intent: ctx.intent,
2356
- route: ctx.expansion?.workflow_trace?.route,
2357
- changed_files: implementationFiles,
2358
- work_package: ctx.backend_implementation_work_package,
2359
- });
2360
- if (!backendGate.allowed) {
2361
- return {
2362
- result: {
2363
- error: backendGate.reason_zh,
2364
- status: "blocked",
2365
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.backendMissingSummary,
2366
- backend_implementation_work_package: backendGate.work_package,
2367
- recovery: "完成后端工程工作包后重新执行 sf_expand 与 sf_verify",
2368
- },
2369
- };
2370
- }
2371
- const solidFindings = oodGate.applicable ? oodModule.reviewSolidCode(implementationContents) : [];
2372
- const backendFindings = backendGate.applicable ? backendModule.reviewBackendImplementationFiles(implementationContents) : [];
2373
- if (backendGate.applicable) {
2374
- const openApiPath = path.join(projectPath, "docs", "api", "openapi.yaml");
2375
- const apiMarkdownPath = path.join(projectPath, "docs", "architecture", "03-API接口规格文档.md");
2376
- const migrationDirectory = path.join(projectPath, "db", "migrations");
2377
- const openapiText = fss.existsSync(openApiPath) ? fss.readFileSync(openApiPath, "utf-8") : undefined;
2378
- const apiDocumentText = fss.existsSync(apiMarkdownPath) ? fss.readFileSync(apiMarkdownPath, "utf-8") : undefined;
2379
- const migrationText = fss.existsSync(migrationDirectory)
2380
- ? fss.readdirSync(migrationDirectory).filter((name) => /\.sql$/i.test(name))
2381
- .map((name) => fss.readFileSync(path.join(migrationDirectory, name), "utf-8")).join("\n")
2382
- : undefined;
2383
- backendFindings.push(...backendModule.verifyBackendArtifactAlignment({
2384
- openapiText,
2385
- apiDocumentText,
2386
- migrationText,
2387
- sourceFiles: implementationContents,
2388
- }));
2389
- }
2390
- ctx.ood_solid_findings = solidFindings;
2391
- ctx.backend_implementation_findings = backendFindings;
2392
- await taskContext.save(ctx);
2393
- if (oodModule.hasBlockingSolidFindings(solidFindings)) {
2394
- return {
2395
- result: {
2396
- error: "OOD/SOLID 代码复验发现阻断项,需修复后重验",
2397
- status: "blocked",
2398
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.oodDeliveryBlock,
2399
- ood_solid_findings: solidFindings,
2400
- },
2401
- };
2402
- }
2403
- if (backendModule.hasBlockingBackendFindings(backendFindings)) {
2404
- return {
2405
- result: {
2406
- error: "后端实现工程复验发现阻断项,需修复后重验",
2407
- status: "blocked",
2408
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.backendDeliveryBlock,
2409
- backend_implementation_findings: backendFindings,
2410
- },
2411
- };
2412
- }
2413
- // 问题六十八: 代码可维护性与可观测性契约
2414
- const codeObsModule = await lazyCodeObservability();
2415
- const obsFindings = codeObsModule.verifyChangedFilesObservability({
2416
- changed_files: implementationFiles,
2417
- file_contents: implementationContents,
2418
- intent: ctx.intent,
2419
- });
2420
- ctx.code_observability_findings = obsFindings;
2421
- await taskContext.save(ctx);
2422
- if (codeObsModule.hasBlockingObservabilityFindings(obsFindings)) {
2423
- return {
2424
- result: {
2425
- error: "代码可维护性/可观测性复验发现阻断项,需修复后重验",
2426
- status: "blocked",
2427
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.codeObservabilityFinding,
2428
- code_observability_findings: obsFindings,
2429
- },
2430
- };
2431
- }
2432
- }
2433
- // 问题六十二: 设计产物验证必须读取用户项目真实文件,不接受占位合同自证通过。
2434
- const verifyWorkflowIntent = ctx.route_decision?.workflow_intent ?? ctx.classification?.route_decision?.workflow_intent;
2435
- const touchesDesignArtifacts = args.changed_files.some((file) => /docs\/architecture\/|docs\/api\/|openapi|db\/(?:migrations|schema)|架构设计|数据库设计|API接口规格/i.test(file));
2436
- if (verifyWorkflowIntent === "architecture_design" || touchesDesignArtifacts) {
2437
- const designModule = await lazyDesignArtifactPack();
2438
- const designPack = ctx.design_artifact_pack ?? designModule.createDesignArtifactPack(args.task_id);
2439
- const designVerification = designModule.verifyDesignArtifactPack(projectPath, designPack);
2440
- ctx.design_artifact_pack = {
2441
- ...designPack,
2442
- status: designVerification.status,
2443
- findings: designVerification.findings,
2444
- baseline_hashes: designVerification.hashes,
2445
- verified_at: new Date().toISOString(),
2446
- };
2447
- await taskContext.save(ctx);
2448
- if (!designVerification.passed) {
2449
- return {
2450
- result: {
2451
- error: "设计产物包复验未通过,不得继续生成编码或交付结论",
2452
- status: "blocked",
2453
- diagnostic_code: "SF-DESIGN-PACK-VERIFY-FAILED",
2454
- design_artifact_findings: designVerification.findings,
2455
- checked_files: designVerification.checked_files,
2456
- recovery: "修复设计产物、补充用户确认并重新执行 sf_verify;不得只提交报告绕过缺口",
2457
- },
2458
- };
2459
- }
2460
- }
2461
- // 问题六十三: 模板契约验证 — 按文件逐一匹配契约并校验
2462
- const sacModule = await lazyStandardAssetContract();
2463
- const formalArtifactContract = sacModule.matchTemplateContract({
2464
- output_artifact_kind: ctx.artifact_output?.kind,
2465
- workflow_intent: verifyWorkflowIntent,
2466
- route_decision: ctx.route_decision?.workflow_intent,
2467
- });
2468
- if (formalArtifactContract || !sacModule.isLowRiskTask({
2469
- route_decision: verifyWorkflowIntent ?? ctx.classification?.route_decision?.workflow_intent,
2470
- workflow_intent: verifyWorkflowIntent,
2471
- changed_files: args.changed_files,
2472
- })) {
2473
- for (const changedFile of args.changed_files) {
2474
- const absFile = path.join(projectPath, changedFile);
2475
- if (!fss.existsSync(absFile) || !/\.md$/.test(changedFile))
2476
- continue;
2477
- // 按实际文件路径匹配契约(不再使用 changed_files[0] 的契约校验全部文件)
2478
- const perFileContract = sacModule.matchTemplateContract({
2479
- output_artifact_kind: ctx.artifact_output?.kind,
2480
- workflow_intent: verifyWorkflowIntent,
2481
- route_decision: ctx.route_decision?.workflow_intent,
2482
- file_path: changedFile,
2483
- });
2484
- if (!perFileContract)
2485
- continue;
2486
- const content = fss.readFileSync(absFile, "utf-8");
2487
- // 草稿阻断下游消费 — 不再静默跳过
2488
- if (sacModule.isDraftDocument(content)) {
2489
- ctx.repair_reverify_directive = {
2490
- contract_id: perFileContract.asset_id,
2491
- file_path: changedFile,
2492
- status: "draft_blocked",
2493
- repair_suggestion: `文件 ${changedFile} 仍为草稿状态,草稿不可用于实现。请完善内容后重新验证。`,
2494
- blocked: true,
2495
- };
2496
- await taskContext.save(ctx);
2497
- return {
2498
- result: {
2499
- error: `草稿文件 ${changedFile} 不可用于实现,需完善后重新验证`,
2500
- status: "blocked",
2501
- diagnostic_code: "SF-CONTRACT-DRAFT",
2502
- template_contract_id: perFileContract.asset_id,
2503
- recovery: "完善草稿内容后重新执行 sf_verify",
2504
- },
2505
- };
2506
- }
2507
- const contractResult = sacModule.verifyOutputAgainstContract(perFileContract, content, projectPath);
2508
- if (!contractResult.passed) {
2509
- const repairDirective = sacModule.createRepairReverifyDirective(perFileContract, contractResult);
2510
- ctx.repair_reverify_directive = {
2511
- contract_id: perFileContract.asset_id,
2512
- file_path: changedFile,
2513
- status: "repair_required",
2514
- repair_suggestion: repairDirective.repair_suggestion,
2515
- blocked: true,
2516
- };
2517
- await taskContext.save(ctx);
2518
- return {
2519
- result: {
2520
- error: `文件 ${changedFile} 模板契约验证未通过,进入修复重验闭环`,
2521
- status: "blocked",
2522
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.contractDraft,
2523
- template_contract_id: perFileContract.asset_id,
2524
- missing_fields: contractResult.missing_fields,
2525
- messages: contractResult.messages,
2526
- repair_suggestion: repairDirective.repair_suggestion,
2527
- recovery: "修复文档缺口后重新执行 sf_verify;不得只报告不修复",
2528
- },
2529
- };
2530
- }
2531
- }
2532
- // 全部契约验证通过 — 清零修复重验指令
2533
- if (ctx.repair_reverify_directive) {
2534
- delete ctx.repair_reverify_directive;
2535
- await taskContext.save(ctx);
2536
- }
2537
- }
2538
- // RouteDecision 合同验证 — 无条件,在状态预检之前
2539
- const rdFromCtx = ctx.route_decision ?? ctx.classification?.route_decision ?? null;
2540
- const wtFromCtx = ctx.workflow_trace ?? ctx.expansion?.workflow_trace ?? null;
2541
- const rdContractInput = {
2542
- route_decision: rdFromCtx,
2543
- workflow_trace: wtFromCtx,
2544
- expansion_input_materials: ctx.expansion?.input_materials?.map((m) => ({ path_or_ref: m.path_or_ref })),
2545
- expansion_output_artifact: ctx.artifact_output ? { kind: ctx.artifact_output.kind, path: ctx.artifact_output.path } : null,
2546
- expansion_constraints: ctx.expansion?.contract?.constraints,
2547
- };
2548
- const rdFindings = verifyRouteDecisionContract(rdContractInput);
2549
- const hasHardFail = rdFindings.some(f => f.severity === "hard_fail" || f.severity === "blocked");
2550
- if (hasHardFail) {
2551
- return {
2552
- result: {
2553
- error: "RouteDecision 合同检查失败",
2554
- route_decision_contract_findings: rdFindings,
2555
- status: "blocked",
2556
- },
2557
- };
2558
- }
2559
- const VALID_VERIFY_STATES = ["executing", "retrying"];
2560
- if (!VALID_VERIFY_STATES.includes(ctx.status)) {
2561
- return {
2562
- result: { error: `任务状态 ${ctx.status} 不可验证,需要 executing 或 retrying`, status: ctx.status },
2563
- };
2564
- }
2565
- const acceptanceItems = ctx.expansion
2566
- ? [...ctx.expansion.acceptance.automated, ...ctx.expansion.acceptance.manual]
2567
- : [];
2568
- // H4: 工作区完整性检查 — advisory 模式,仅警告不阻断
2569
- const integrity = await ioController.verify();
2570
- const h4Warning = !integrity.clean
2571
- ? { warning: `H4 advisory: ${integrity.message}`, dirty_files: integrity.dirty_files }
2572
- : undefined;
2573
- const verifyResult = (await lazyVerifier()).generateVerifyCommands(config, args.changed_files, acceptanceItems, ctx?.expansion?.workflow_trace?.route);
2574
- verifyResult.task_id = args.task_id;
2575
- // 创建 VerificationPlan(plan_only,非执行结果)
2576
- const vcModule = await lazyVerificationContract();
2577
- const allCommands = [
2578
- ...(verifyResult.checks?.build ?? []),
2579
- ...(verifyResult.checks?.tests ?? []),
2580
- ].map((c) => c.command);
2581
- const vPlan = vcModule.createVerificationPlan(args.task_id, allCommands, acceptanceItems.map((a) => a.description));
2582
- // sf_verify 仅生成计划,不执行命令 — 始终保存 not_executed
2583
- // 真实执行结果必须通过 recordVerificationExecution 单独录入
2584
- const vResult = vcModule.createNotExecutedResult(args.task_id, vPlan.plan_id, "sf_verify 生成命令,等待执行");
2585
- // 存储验证契约到任务上下文
2586
- const ctxForV = await taskContext.load(args.task_id);
2587
- if (ctxForV) {
2588
- ctxForV.verification_plan = vPlan;
2589
- ctxForV.verification_result = vResult;
2590
- await taskContext.save(ctxForV);
2591
- }
2592
- // 产物生命周期检查: draft → verified 需要 ArtifactVerificationResult.passed
2593
- let artifactVerificationResult;
2594
- let artifactFileMissing = false;
2595
- if (ctx.artifact_output && ctx.artifact_output.status === "draft") {
2596
- // 验证前解析产物文件并计算 hash
2597
- const artifact = ctx.artifact_output;
2598
- const fullPath = path.join(projectPath, artifact.path);
2599
- if (fss.existsSync(fullPath)) {
2600
- const fileContent = fss.readFileSync(fullPath);
2601
- const hash = crypto.createHash("sha256").update(fileContent).digest("hex");
2602
- artifact.hash = `sha256:${hash}`;
2603
- if (!artifact.evidence_refs.some(r => r.startsWith("file:artifact:"))) {
2604
- artifact.evidence_refs.push(`file:artifact:path=${artifact.path} hash=sha256:${hash}`);
2605
- }
2606
- // 保存更新后的产物(含 hash)
2607
- const ctxForHash = await taskContext.load(args.task_id);
2608
- if (ctxForHash?.artifact_output) {
2609
- ctxForHash.artifact_output.hash = artifact.hash;
2610
- if (!ctxForHash.artifact_output.evidence_refs.some(r => r.startsWith("file:artifact:"))) {
2611
- ctxForHash.artifact_output.evidence_refs.push(`file:artifact:path=${artifact.path} hash=sha256:${hash}`);
2612
- }
2613
- await taskContext.save(ctxForHash);
2614
- }
2615
- }
2616
- else {
2617
- artifactFileMissing = true;
2618
- }
2619
- artifactVerificationResult = verifyArtifact(artifact.kind, artifact);
2620
- }
2621
- // 记录变更文件
2622
- // 写入护栏 — 检查变更文件是否在允许范围
2623
- if (args.changed_files.length > 0) {
2624
- const guardModule = await lazyEnforcementGuard();
2625
- const scopePaths = ctx.expansion?.scope?.allowed_paths ?? [];
2626
- for (const cf of args.changed_files) {
2627
- const writeFindings = guardModule.evaluateWriteGuard(ctx.classification?.route_decision?.route ?? "code_execution", cf, scopePaths, "command_execution_contract");
2628
- if (writeFindings.some((f) => f.blocked)) {
2629
- return {
2630
- result: {
2631
- error: `写入护栏阻断: ${writeFindings[0].reason_zh}`,
2632
- blocked_file: cf,
2633
- guard_id: writeFindings[0].guard_id,
2634
- },
2635
- };
2636
- }
2637
- }
2638
- }
2639
- await taskContext.setExecution(args.task_id, args.changed_files);
2640
- // 无实际文件变更但存在产物时标记 no_change_artifact
2641
- if (args.changed_files.length === 0 && ctx.artifact_output) {
2642
- const execCtx = await taskContext.load(args.task_id);
2643
- if (execCtx?.execution) {
2644
- execCtx.execution.no_change_artifact = true;
2645
- await taskContext.save(execCtx);
2646
- }
2647
- }
2648
- // 生成验证命令成功后再转换状态,避免操作失败导致任务卡在 verifying
2649
- if (ctx.status === "retrying") {
2650
- await taskContext.updateStatus(args.task_id, "executing");
2651
- }
2652
- await taskContext.updateStatus(args.task_id, "verifying");
2653
- // 存储验证结果
2654
- await taskContext.setVerification(args.task_id, verifyResult);
2655
- // 产物生命周期转换: draft → verified 仅在 ArtifactVerificationResult.passed 时
2656
- if (ctx.artifact_output && ctx.artifact_output.status === "draft" && artifactVerificationResult?.passed) {
2657
- const evidenceRef = `verification:${ctx.task_id}:checks=${artifactVerificationResult.checks.length}:summary=${artifactVerificationResult.summary.slice(0, 60)}`;
2658
- try {
2659
- await taskContext.updateArtifactStatus(args.task_id, {
2660
- status: "verified",
2661
- evidenceRef,
2662
- hasVerification: true,
2663
- });
2664
- }
2665
- catch {
2666
- // 转换被阻止 — 产物保持 draft,流水线继续
2667
- }
2668
- }
2669
- // 认知锚点上下文回放(按变更文件相关性)
2670
- const verifyAnchors = await loadRelevantAnchors({ file_paths: args.changed_files });
2671
- const verifyExtras = {};
2672
- if (h4Warning)
2673
- verifyExtras.h4_advisory = h4Warning;
2674
- if (verifyAnchors && verifyAnchors.length > 0)
2675
- verifyExtras.cognitive_anchors = verifyAnchors;
2676
- if (ctx.artifact_output && ctx.artifact_output.status === "draft" && artifactVerificationResult && !artifactVerificationResult.passed) {
2677
- const reason = artifactFileMissing
2678
- ? `产物文件不存在 (${ctx.artifact_output.path}),无法计算 hash`
2679
- : artifactVerificationResult.summary;
2680
- verifyExtras.artifact_warning = `产物验收检查未通过: ${reason}`;
2681
- verifyExtras.artifact_verification = artifactVerificationResult;
2682
- }
2683
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2684
- const verifyPayload = Object.keys(verifyExtras).length > 0
2685
- ? { ...verifyResult, ...verifyExtras }
2686
- : { ...verifyResult };
2687
- // 附加验证契约引用到返回结果
2688
- verifyPayload.verification_plan = vPlan;
2689
- verifyPayload.verification_result = vResult;
2690
- // 问题六十:验证结论必须经过 FactClaimVerifier,不得把计划当结果
2691
- {
2692
- const { createEvidenceGroundingSystem, assessTaskRisk } = await import("../../engine/evidence_grounding_contract.js");
2693
- const _vRoute = ctx.route_decision?.route ?? ctx.classification?.route_decision?.route;
2694
- const _vRisk = assessTaskRisk(ctx.classification?.task_type, _vRoute, ctx.intent);
2695
- if (_vRisk !== "low") {
2696
- const _veg = createEvidenceGroundingSystem();
2697
- // 只有真实执行结果才能作为 validation_result 证据
2698
- const _hasRealPassed = ctx.verification_result && ctx.verification_result.status === "passed";
2699
- if (_hasRealPassed) {
2700
- _veg.registry.register({
2701
- source_type: "validation_result",
2702
- authority: "authoritative",
2703
- freshness: "current",
2704
- permission: "allowed",
2705
- scope: "verification",
2706
- description: `验证状态: ${ctx.verification_result.status}`,
2707
- source_ref: `verification:${args.task_id}`,
2708
- });
2709
- }
2710
- // 验证计划注册为 task_context,不冒充 validation_result
2711
- _veg.registry.register({
2712
- source_type: "task_context",
2713
- authority: "supporting",
2714
- freshness: "current",
2715
- permission: "allowed",
2716
- scope: "verification_plan",
2717
- description: `验证计划: ${vPlan ? "已生成" : "未生成"}`,
2718
- source_ref: `verification-plan:${args.task_id}`,
2719
- });
2720
- if (args.changed_files.length > 0) {
2721
- _veg.registry.register({
2722
- source_type: "project_file",
2723
- authority: "authoritative",
2724
- freshness: "current",
2725
- permission: "allowed",
2726
- scope: "changed_files",
2727
- description: `变更文件: ${args.changed_files.join(", ")}`,
2728
- source_ref: `files:${args.changed_files.join(",")}`,
2729
- });
2730
- }
2731
- const _vClaims = [{
2732
- id: "claim-verify-1",
2733
- category: "validation_result",
2734
- claim_text: "验证结果基于真实命令执行",
2735
- evidence_ids: _veg.registry.query({ source_type: "validation_result" }).map((e) => e.id),
2736
- is_uncertain: false,
2737
- risk_level: _vRisk,
2738
- }];
2739
- const _vVerResult = _veg.verifier.verify(_vClaims, _vRisk);
2740
- const _vMatrix = _veg.builder.buildContext(_vClaims, {
2741
- target_claims: _vClaims.map((c) => c.claim_text),
2742
- source_types: [], keywords: [], max_results: 10,
2743
- });
2744
- _vMatrix.task_id = args.task_id;
2745
- const _vGate = _veg.gate.evaluate(_vMatrix, _vRisk);
2746
- // 写回 TaskContext
2747
- await taskContext.setEvidenceGroundingResult(args.task_id, {
2748
- evidence_matrix: _vMatrix,
2749
- evidence_gate_result: _vGate,
2750
- unsupported_claims: _vGate.unsupported_claims,
2751
- conflict_resolutions: _vMatrix.conflicts,
2752
- });
2753
- if (_vVerResult.unsupported.length > 0) {
2754
- // 高风险:只有 plan 无 result → 写入 payload(不用 verifyExtras)
2755
- verifyPayload._evidence_status = "not_verified";
2756
- verifyPayload._evidence_reason = "验证结论需真实命令执行结果支撑,验证计划不能当作验证结果。请通过 sf_record_verification_execution 录入真实验证结果。";
2757
- if (_vRisk === "high" || _vRisk === "critical") {
2758
- verifyPayload._evidence_blocked = true;
2759
- }
2760
- else {
2761
- verifyPayload._evidence_advisory = "验证结论需真实命令执行结果支撑,验证计划不能当作验证结果";
2762
- }
2763
- }
2764
- }
2765
- }
2766
- // 验证后核心体验评估
2767
- try {
2768
- const hasVerificationEvidence = (verifyResult.checks?.build?.length ?? 0) > 0 || (verifyResult.checks?.tests?.length ?? 0) > 0;
2769
- const cepEvalResult = await assessCepAfterVerification({
2770
- task_id: args.task_id,
2771
- has_verification_evidence: hasVerificationEvidence,
2772
- });
2773
- // 将完整 CEP 结果写入 TaskContext
2774
- const cepModule = await import("../../engine/core_experience_principle.js");
2775
- const fullCepEval = cepModule.evaluateCoreExperiencePrinciple({
2776
- task_id: args.task_id, workflow_id: "sf_verify",
2777
- has_mainline_hooks: true, has_owner_contracts: true, natural_language_entry: true,
2778
- requires_internal_contract_knowledge: false, user_path_steps: 3,
2779
- has_failures: false, hard_fail_downgraded: false, forced_heavy_process: false,
2780
- has_sufficient_evidence: hasVerificationEvidence,
2781
- output_too_long_no_summary: false, report_only_no_repair: false,
2782
- failed_but_marked_done: false, auto_repair_overreach: false,
2783
- repair_reverified: false, outputs_raw_noise: false,
2784
- });
2785
- const ctxForCep = await taskContext.load(args.task_id);
2786
- if (ctxForCep) {
2787
- ctxForCep.core_experience_evaluation = fullCepEval;
2788
- await taskContext.save(ctxForCep);
2789
- }
2790
- }
2791
- catch (cepErr) {
2792
- internalWarn("CEP评估", "评估异常 (task=" + args.task_id + "):", cepErr?.message ?? cepErr);
2793
- }
2794
- return {
2795
- result: verifyPayload,
2796
- };
2797
- });
2798
- // ── sf_record_verification_execution: 录入真实验证执行结果(唯一 passed 入口) ──
2799
- registerSafeTool("sf_record_verification_execution", "录入真实验证执行结果,VerificationResult.status=passed 的唯一合法入口", RecordVerificationExecutionSchema, async (args) => {
2800
- const ctx = await taskContext.load(args.task_id);
2801
- if (!ctx) {
2802
- return { result: { error: "任务不存在" } };
2803
- }
2804
- // 必须有 VerificationPlan
2805
- const currentPlan = ctx.verification_plan ?? ctx.batch2_verification_plan;
2806
- if (!currentPlan) {
2807
- return { result: { error: "任务无 VerificationPlan,先执行 sf_verify 生成计划" } };
2808
- }
2809
- // plan_id 必须与 TaskContext 中当前 plan 一致
2810
- if (args.plan_id !== currentPlan.plan_id) {
2811
- return {
2812
- result: {
2813
- error: `plan_id 不匹配: 请求 "${args.plan_id}",当前任务计划 "${currentPlan.plan_id}" [${TOOL_DIAGNOSTIC_CODES.verifyPlanMismatch}]`,
2814
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.verifyPlanMismatch,
2815
- },
2816
- };
2817
- }
2818
- const vcModule = await lazyVerificationContract();
2819
- const result = vcModule.recordVerificationExecution(args.task_id, args.plan_id, args.execution_records, currentPlan);
2820
- // 持久化到 TaskContext
2821
- const ctxForSave = await taskContext.load(args.task_id);
2822
- if (ctxForSave) {
2823
- ctxForSave.verification_result = result;
2824
- await taskContext.save(ctxForSave);
2825
- }
2826
- return { result };
2827
- });
2828
- // ── sf_learn: 从执行结果中提取知识,支持重试循环控制 ──
2829
- registerSafeTool("sf_learn", "从任务执行结果中提取知识,低置信度暂存,高置信度直接入库", LearnSchema, async (args) => {
2830
- const ctx = await taskContext.load(args.task_id);
2831
- if (!ctx) {
2832
- return {
2833
- result: { error: "任务不存在" },
2834
- };
2835
- }
2836
- const VALID_LEARN_STATES = ["verifying", "executing"];
2837
- if (!VALID_LEARN_STATES.includes(ctx.status)) {
2838
- return {
2839
- result: { error: `任务状态 ${ctx.status} 不可学习,需要 verifying 或 executing`, status: ctx.status },
2840
- };
2841
- }
2842
- // 如适用,记录失败
2843
- if (args.result === "failure" && args.failure_type) {
2844
- await taskContext.setExecution(args.task_id, [], {
2845
- attempt: (ctx.execution?.attempt_count ?? 0) + 1,
2846
- type: args.failure_type,
2847
- message: args.verify_output
2848
- ? `build=${args.verify_output.build_passed} tests=${args.verify_output.tests_passed}`
2849
- : "unknown failure",
2850
- timestamp: new Date().toISOString(),
2851
- });
2852
- // 创建 FailureReport(脱敏,非 raw error_output)
2853
- const frModule = await lazyFailureReport();
2854
- const failureClass = args.failure_type;
2855
- const errorOutput = args.verify_output
2856
- ? `build=${args.verify_output.build_passed} tests=${args.verify_output.tests_passed}`
2857
- : "unknown failure";
2858
- const retryCount = (ctx.execution?.attempt_count ?? 0) + 1;
2859
- const policy = frModule.getRecoveryPolicy(failureClass);
2860
- const failureReport = frModule.createFailureReport(args.task_id, failureClass, errorOutput, retryCount, policy?.max_retries ?? 0);
2861
- // 存储 FailureReport 到任务上下文
2862
- const ctxForFailure = await taskContext.load(args.task_id);
2863
- if (ctxForFailure) {
2864
- ctxForFailure.failure_report = failureReport;
2865
- await taskContext.save(ctxForFailure);
2866
- }
2867
- // verifier 不可用时创建 DegradationEvent
2868
- if (!args.verify_output) {
2869
- const degModule = await lazyDegradation();
2870
- const degradationEvent = degModule.createDegradationEvent(args.task_id, "verifier", "full", "验证器输出不可用,无法判断 build/test 结果", ["verification_execution"]);
2871
- if (degradationEvent) {
2872
- const ctxForDeg = await taskContext.load(args.task_id);
2873
- if (ctxForDeg) {
2874
- ctxForDeg.degradation_event = degradationEvent;
2875
- await taskContext.save(ctxForDeg);
2876
- }
2877
- }
2878
- }
2879
- }
2880
- // 转换到学习阶段
2881
- await taskContext.updateStatus(args.task_id, "learning");
2882
- const learnResult = await (await lazyEvolver()).evolve({
2883
- taskContext: ctx,
2884
- result: args.result,
2885
- verifyOutput: args.verify_output,
2886
- failureType: args.failure_type,
2887
- retryCount: ctx.execution?.attempt_count ?? 0,
2888
- }, projectPath);
2889
- // 确定最终状态: 重试或完成
2890
- const attemptCount = (ctx.execution?.attempt_count ?? 0) + (args.result === "failure" ? 1 : 0);
2891
- const maxAttempts = ctx.execution?.max_attempts ?? 3;
2892
- if (args.result === "failure" && attemptCount < maxAttempts && args.failure_type !== "deterministic") {
2893
- // 可重试: 转换到重试阶段
2894
- await taskContext.updateStatus(args.task_id, "retrying");
2895
- learnResult.retry_hint = `第 ${attemptCount}/${maxAttempts} 次尝试失败,${args.failure_type === "scope_insufficient" ? "需要扩大范围" : "请修复后重试"}`;
2896
- }
2897
- else {
2898
- // 检查主链路集成 — 即使 build/test 全绿,孤岛仍阻断 done
2899
- const integrationBlocked = ctx.verification?.main_path_integration
2900
- && !ctx.verification.main_path_integration.passed;
2901
- // 核心工程执行原则门禁 — required 原则失败不能进入 completed
2902
- const principlesBlocked = ctx.verification?.core_principles
2903
- && !ctx.verification.core_principles.overall_passed;
2904
- const finalStatus = args.result === "failure"
2905
- ? "failed"
2906
- : (integrationBlocked || principlesBlocked) ? "retrying" : "done";
2907
- await taskContext.updateStatus(args.task_id, finalStatus);
2908
- if (integrationBlocked && finalStatus === "retrying") {
2909
- learnResult.retry_hint = "主链路集成检查失败: 存在孤岛模块,请接入主链路后重试";
2910
- }
2911
- if (principlesBlocked && finalStatus === "retrying") {
2912
- const failedPrinciples = ctx.verification.core_principles.principles
2913
- .filter((p) => p.status === "failed")
2914
- .map((p) => p.principle_id);
2915
- learnResult.retry_hint = `核心工程执行原则检查失败: ${failedPrinciples.join(", ")},请修复后重试`;
2916
- }
2917
- }
2918
- return {
2919
- result: learnResult,
2920
- };
2921
- });
2922
- // ── sf_status: 任务状态查询(current/recent/resume/cancel) ──
2923
- registerSafeTool("sf_status", "查询当前任务状态、列出近期任务、恢复中断任务或取消任务", StatusSchema, async (args) => {
2924
- const action = args.action || "current";
2925
- // Job 操作 — advisory,独立于任务操作
2926
- if (args.job_action) {
2927
- if (!args.job_id) {
2928
- return {
2929
- result: { error: "job 操作需要 job_id" },
2930
- };
2931
- }
2932
- const jm = new (await lazyJob()).JobManager(taskContext.getStateDir());
2933
- const taskId = args.task_id ?? await jm.resolveTaskId(args.job_id) ?? "";
2934
- if (args.job_action === "job_status") {
2935
- const status = await jm.getJobStatus(args.job_id, taskId);
2936
- if (!status) {
2937
- return {
2938
- result: { error: `job ${args.job_id} 不存在或已过期` },
2939
- };
2940
- }
2941
- return {
2942
- result: { job: status },
2943
- };
2944
- }
2945
- if (args.job_action === "job_resume") {
2946
- const checkpoint = await jm.resumeFromCheckpoint(args.job_id, taskId);
2947
- if (!checkpoint) {
2948
- return {
2949
- result: { error: `job ${args.job_id} 无可恢复的 checkpoint` },
2950
- };
2951
- }
2952
- return {
2953
- result: {
2954
- advisory: "job 恢复为 advisory 操作,需确认 checkpoint 数据与当前状态一致",
2955
- job_id: checkpoint.job_id,
2956
- task_id: checkpoint.task_id,
2957
- phase: checkpoint.phase,
2958
- checkpoint_number: checkpoint.checkpoint_number,
2959
- cognitive_anchor: checkpoint.cognitive_anchor,
2960
- },
2961
- };
2962
- }
2963
- if (args.job_action === "job_cancel") {
2964
- const removed = await jm.cancelJob(args.job_id, taskId);
2965
- return {
2966
- result: {
2967
- advisory: "job 取消为 advisory 操作",
2968
- job_id: args.job_id,
2969
- cancelled: removed,
2970
- },
2971
- };
2972
- }
2973
- }
2974
- // 读取前自动将过期非终态任务标记为失败
2975
- try {
2976
- await taskContext.autoFailStale();
2977
- }
2978
- catch (e) {
2979
- internalWarn("autoFailStale", "出错:", e);
2980
- }
2981
- switch (action) {
2982
- case "current": {
2983
- const ctx = args.task_id
2984
- ? await taskContext.load(args.task_id)
2985
- : await taskContext.getCurrentTask();
2986
- if (!ctx) {
2987
- return {
2988
- result: { message: "当前无活跃任务" },
2989
- };
2990
- }
2991
- const resumable = taskContext.isResumable(ctx);
2992
- const result = {
2993
- task_id: ctx.task_id,
2994
- intent: ctx.intent,
2995
- status: ctx.status,
2996
- created_at: ctx.created_at,
2997
- resumable,
2998
- };
2999
- if (resumable) {
3000
- result.resume_hint = taskContext.getResumeHint(ctx);
3001
- }
3002
- if (ctx.classification) {
3003
- result.task_type = ctx.classification.task_type;
3004
- result.risk = ctx.classification.risk;
3005
- result.strategy = ctx.classification.strategy;
3006
- }
3007
- if (ctx.execution) {
3008
- result.changed_files = ctx.execution.changed_files;
3009
- result.attempt_count = ctx.execution.attempt_count;
3010
- }
3011
- // JobManager advisory: 查询关联 job 状态
3012
- try {
3013
- const jm = new (await lazyJob()).JobManager(taskContext.getStateDir());
3014
- const activeJobs = await jm.listActiveJobs();
3015
- const relatedJob = activeJobs.find((j) => j.task_id === ctx.task_id);
3016
- if (relatedJob) {
3017
- result.job = {
3018
- job_id: relatedJob.job_id,
3019
- phase: relatedJob.current_phase,
3020
- checkpoint_count: relatedJob.checkpoint_count,
3021
- is_alive: relatedJob.is_alive,
3022
- latest_anchor_summary: relatedJob.latest_anchor?.summary,
3023
- };
3024
- }
3025
- }
3026
- catch {
3027
- // JobManager advisory — 忽略错误
3028
- }
3029
- return {
3030
- result: result,
3031
- };
3032
- }
3033
- case "recent": {
3034
- const recent = await taskContext.listRecent(10);
3035
- return {
3036
- result: { tasks: recent },
3037
- };
3038
- }
3039
- case "resume": {
3040
- if (!args.task_id) {
3041
- return {
3042
- result: { error: "恢复任务需要 task_id" },
3043
- };
3044
- }
3045
- const ctx = await taskContext.load(args.task_id);
3046
- if (!ctx) {
3047
- return {
3048
- result: { error: "任务不存在" },
3049
- };
3050
- }
3051
- if (!taskContext.isResumable(ctx)) {
3052
- return {
3053
- result: { error: `任务状态 ${ctx.status} 不可恢复`, status: ctx.status },
3054
- };
3055
- }
3056
- const resumeResult = {
3057
- task_id: ctx.task_id,
3058
- intent: ctx.intent,
3059
- status: ctx.status,
3060
- resume_hint: taskContext.getResumeHint(ctx),
3061
- };
3062
- if (ctx.execution)
3063
- resumeResult.execution = ctx.execution;
3064
- const resumeAnchors = ctx.execution?.changed_files
3065
- ? await loadRelevantAnchors({ file_paths: ctx.execution.changed_files })
3066
- : undefined;
3067
- if (resumeAnchors && resumeAnchors.length > 0)
3068
- resumeResult.cognitive_anchors = resumeAnchors;
3069
- return { result: resumeResult };
3070
- }
3071
- case "cancel": {
3072
- if (!args.task_id) {
3073
- return {
3074
- result: { error: "取消任务需要 task_id" },
3075
- };
3076
- }
3077
- const cancelled = await taskContext.cancel(args.task_id);
3078
- return {
3079
- result: { task_id: args.task_id, cancelled },
3080
- };
3081
- }
3082
- case "retry_expand": {
3083
- if (!args.task_id) {
3084
- return {
3085
- result: { error: "重试 expand 需要 task_id" },
3086
- };
3087
- }
3088
- const retried = await taskContext.retryExpand(args.task_id);
3089
- if (!retried) {
3090
- return {
3091
- result: { error: "任务不存在、非 failed 状态或缺少 classification,无法重试 expand", task_id: args.task_id },
3092
- };
3093
- }
3094
- return {
3095
- result: { task_id: args.task_id, retried: true, hint: "任务已恢复到 expanding 状态,可重新调用 sf_expand" },
3096
- };
3097
- }
3098
- case "archive_stale": {
3099
- const stale = await detectStaleCurrentTask(taskContext.getStateDir());
3100
- const taskId = args.task_id ?? stale.task_id;
3101
- if (!taskId) {
3102
- return {
3103
- result: { error: "归档陈旧任务指针需要 task_id,且当前未检测到陈旧任务" },
3104
- };
3105
- }
3106
- if (!stale.is_stale || stale.task_id !== taskId) {
3107
- return {
3108
- result: {
3109
- error: "当前任务指针未被判定为陈旧,不执行归档",
3110
- task_id: taskId,
3111
- stale_task: stale.is_stale ? stale : null,
3112
- },
3113
- };
3114
- }
3115
- const archived = await archiveStaleCurrentPointer(taskContext.getStateDir(), taskId);
3116
- return {
3117
- result: {
3118
- task_id: taskId,
3119
- archived,
3120
- archived_pointer_only: true,
3121
- task_file_preserved: true,
3122
- },
3123
- };
3124
- }
3125
- default:
3126
- return {
3127
- result: { error: `未知操作: ${action}` },
3128
- };
3129
- }
3130
- });
3131
- // ── sf_plan: 复杂意图任务拆解为子任务列表 ──
3132
- registerSafeTool("sf_plan", "将复杂意图拆解为子任务列表。支持知识驱动的 pipeline_procedure 流程(自动绑定模板)和仓库边界拆分两种策略。仅在 complexity=high 时有效", PlanSchema, async (args) => {
3133
- const ctx = await taskContext.load(args.task_id);
3134
- if (!ctx?.classification) {
3135
- return {
3136
- result: { error: "任务不存在或尚未分类" },
3137
- };
3138
- }
3139
- const result = (await lazyPlanner()).planTask({
3140
- intent: ctx.intent,
3141
- classification: ctx.classification,
3142
- config,
3143
- knowledgeIndex,
3144
- });
3145
- result.task_id = args.task_id;
3146
- await taskContext.setPlanning(args.task_id, result);
3147
- return {
3148
- result: result,
3149
- };
3150
- });
3151
- // ── sf_plan_advance: 推进多阶段计划到下一步 ──
3152
- registerSafeTool("sf_plan_advance", "将多阶段计划推进到下一步。完成当前阶段后调用,自动更新 current_step_index 并返回下一阶段信息", PlanSchema, async (args) => {
3153
- const ctx = await taskContext.load(args.task_id);
3154
- if (!ctx?.planning || ctx.planning.sub_tasks.length === 0) {
3155
- return {
3156
- result: { error: "任务没有多阶段计划,请先调用 sf_plan" },
3157
- };
3158
- }
3159
- const plan = ctx.planning;
3160
- const previousStep = plan.sub_tasks[plan.current_step_index];
3161
- const previousStepTitle = previousStep?.title ?? "未知";
3162
- const nextIndex = plan.current_step_index + 1;
3163
- if (nextIndex >= plan.sub_tasks.length) {
3164
- return { result: {
3165
- task_id: args.task_id,
3166
- previous_step: previousStepTitle,
3167
- current_step_index: plan.current_step_index,
3168
- total_steps: plan.sub_tasks.length,
3169
- is_completed: true,
3170
- message: `所有 ${plan.sub_tasks.length} 个阶段已完成`,
3171
- } };
3172
- }
3173
- // 推进阶段索引
3174
- plan.current_step_index = nextIndex;
3175
- await taskContext.setPlanning(args.task_id, plan);
3176
- const nextStep = plan.sub_tasks[nextIndex];
3177
- return {
3178
- result: {
3179
- task_id: args.task_id,
3180
- previous_step: previousStepTitle,
3181
- current_step_index: nextIndex,
3182
- current_step: {
3183
- id: nextStep.id,
3184
- title: nextStep.title,
3185
- output_path: nextStep.output_path,
3186
- },
3187
- total_steps: plan.sub_tasks.length,
3188
- is_completed: false,
3189
- message: `阶段推进: ${previousStepTitle} → ${nextStep.title}`,
3190
- },
3191
- };
3192
- });
3193
- // ── sf_analyze: 影响范围分析,建议是否扩大作用域 ──
3194
- registerSafeTool("sf_analyze", "分析意图的影响范围,对比声明范围,提示是否需要扩大作用域。建议性,不强制", AnalyzeSchema, async (args) => {
3195
- const ctx = await taskContext.load(args.task_id);
3196
- if (!ctx?.expansion) {
3197
- return {
3198
- result: { error: "任务尚未膨胀,请先调用 sf_expand" },
3199
- };
3200
- }
3201
- const result = await (await lazyImpact()).analyzeImpact({
3202
- intent: ctx.intent,
3203
- classification: ctx.classification,
3204
- expansion: ctx.expansion,
3205
- config,
3206
- projectPath,
3207
- });
3208
- result.task_id = args.task_id;
3209
- // 决策契约 advisory: 校验 analyze 输出
3210
- const decisionContract = (await lazyDecision()).validateDecisionOutput(result);
3211
- const advisoryExtras = {};
3212
- if (!decisionContract.passed) {
3213
- advisoryExtras.decision_contract_advisory = decisionContract.advisory;
3214
- }
3215
- return { result: Object.keys(advisoryExtras).length > 0 ? { ...result, ...advisoryExtras } : result };
3216
- });
3217
- // ── sf_review: 代码审查(质量、安全、性能、技术债务) ──
3218
- registerSafeTool("sf_review", "审查代码变更的质量、安全、性能和技术债务。hotfix 场景可跳过。建议性,不强制修复", ReviewSchema, async (args) => {
3219
- const ctx = await taskContext.load(args.task_id);
3220
- if (!ctx) {
3221
- return {
3222
- result: { error: "任务不存在" },
3223
- };
3224
- }
3225
- const tracker = new (await lazyDebt()).DebtTracker(projectPath);
3226
- const result = await (await lazyReviewer()).reviewCode({
3227
- changedFiles: args.changed_files,
3228
- projectPath,
3229
- config,
3230
- classification: ctx.classification,
3231
- fileContents: args.file_contents,
3232
- knowledgeIndex,
3233
- uncertainty_triggers: ctx.expansion?.uncertainty_triggers,
3234
- }, tracker);
3235
- result.task_id = args.task_id;
3236
- await taskContext.setCodeReview(args.task_id, result);
3237
- const contractContents = { ...(args.file_contents ?? {}) };
3238
- for (const changedFile of args.changed_files) {
3239
- if (contractContents[changedFile] !== undefined)
3240
- continue;
3241
- const absoluteFile = path.resolve(projectPath, changedFile);
3242
- try {
3243
- if (isSameOrDescendantPath(absoluteFile, path.resolve(projectPath), { caseSensitive: false }) && fss.statSync(absoluteFile).isFile()) {
3244
- contractContents[changedFile] = fss.readFileSync(absoluteFile, "utf-8");
3245
- }
3246
- }
3247
- catch {
3248
- // 无法读取的文件留给现有 reviewer 报告,不制造假结论。
3249
- }
3250
- }
3251
- const oodModule = await lazyOodSolid();
3252
- const solidFindings = oodModule.requiresOodSolidContract(ctx.intent, ctx.expansion?.workflow_trace?.route, args.changed_files)
3253
- || ctx.ood_solid_summary
3254
- ? [
3255
- ...oodModule.reviewSolidCode(contractContents),
3256
- ...oodModule.evaluateOverdesignRisk(ctx.intent, ctx.ood_solid_summary),
3257
- ]
3258
- : [];
3259
- const backendModule = await lazyBackendImplementation();
3260
- const backendFindings = backendModule.requiresBackendImplementationContract(ctx.intent, ctx.expansion?.workflow_trace?.route, args.changed_files)
3261
- || ctx.backend_implementation_work_package
3262
- ? backendModule.reviewBackendImplementationFiles(contractContents)
3263
- : [];
3264
- // 问题六十八: 代码可维护性与可观测性审查
3265
- const obsModule = await lazyCodeObservability();
3266
- const obsFindings = obsModule.requiresCodeObservabilityContract(ctx.intent, ctx.expansion?.workflow_trace?.route, args.changed_files)
3267
- || ctx.code_observability_work_package
3268
- ? obsModule.reviewCodeObservability(contractContents)
3269
- : [];
3270
- if (solidFindings.length > 0 || backendFindings.length > 0 || obsFindings.length > 0) {
3271
- const updatedCtx = await taskContext.load(args.task_id);
3272
- if (updatedCtx) {
3273
- updatedCtx.ood_solid_findings = solidFindings;
3274
- updatedCtx.backend_implementation_findings = backendFindings;
3275
- updatedCtx.code_observability_findings = obsFindings;
3276
- await taskContext.save(updatedCtx);
3277
- }
3278
- }
3279
- // 决策契约 advisory: 校验 review 输出
3280
- const decisionContract = (await lazyDecision()).validateDecisionOutput(result);
3281
- const reviewExtras = {};
3282
- if (!decisionContract.passed) {
3283
- reviewExtras.decision_contract_advisory = decisionContract.advisory;
3284
- }
3285
- if (solidFindings.length > 0)
3286
- reviewExtras.ood_solid_findings = solidFindings;
3287
- if (backendFindings.length > 0)
3288
- reviewExtras.backend_implementation_findings = backendFindings;
3289
- if (obsFindings.length > 0)
3290
- reviewExtras.code_observability_findings = obsFindings;
3291
- if (oodModule.hasBlockingSolidFindings(solidFindings) || backendModule.hasBlockingBackendFindings(backendFindings) || obsModule.hasBlockingObservabilityFindings(obsFindings)) {
3292
- reviewExtras.delivery_blocked = true;
3293
- reviewExtras.diagnostic_code = "SF-IMPLEMENTATION-CONTRACT-REVIEW-BLOCKED";
3294
- }
3295
- return { result: Object.keys(reviewExtras).length > 0 ? { ...result, ...reviewExtras } : result };
3296
- });
3297
- // ── sf_scaffold: 生成标准化代码骨架 ──
3298
- registerSafeTool("sf_scaffold", "根据项目模板生成标准化代码骨架(Controller/Service/DTO/测试等)。仅在 task_type=scaffold 时使用", ScaffoldSchema, async (args) => {
3299
- const ctx = await taskContext.load(args.task_id);
3300
- if (!ctx?.classification) {
3301
- return {
3302
- result: { error: "任务不存在或尚未分类" },
3303
- };
3304
- }
3305
- if (ctx.classification.task_type !== "scaffold") {
3306
- return {
3307
- result: {
3308
- error: "sf_scaffold 仅适用于 scaffold 类型任务",
3309
- current_type: ctx.classification.task_type,
3310
- },
3311
- };
3312
- }
3313
- const result = await (await lazyScaffolder()).generateScaffold({
3314
- intent: ctx.intent,
3315
- classification: ctx.classification,
3316
- config,
3317
- projectPath,
3318
- });
3319
- result.task_id = args.task_id;
3320
- return {
3321
- result: result,
3322
- };
3323
- });
3324
- // ── sf_deliver: 自动提交、推送、创建 PR ──
3325
- // ── sf_accept: 记录任务验收证据(本地验收 + 产物确认) ──
3326
- registerSafeTool("sf_accept", "记录任务验收证据,解除 sf_deliver 的本地验收门和产物确认门", AcceptSchema, async (args) => {
3327
- const ctx = await taskContext.load(args.task_id);
3328
- if (!ctx) {
3329
- return { result: { error: "任务不存在" } };
3330
- }
3331
- const runMode = args.run_mode;
3332
- const notes = String(args.acceptance_notes ?? "").trim();
3333
- const confirmedBy = String(args.confirmed_by ?? "").trim();
3334
- const confirmationRef = String(args.confirmation_ref ?? "").trim();
3335
- if (args.confirm !== true || !confirmedBy || !confirmationRef || !notes) {
3336
- return {
3337
- result: {
3338
- error: "验收必须包含显式确认、确认者、可审计确认引用和验收说明",
3339
- diagnostic_code: "SF-ACCEPT-CONFIRMATION-REQUIRED",
3340
- recovery_next_tools: ["sf_accept", "sf_status"],
3341
- recovery_forbidden_tools: ["sf_deliver", "sf_scaffold", "sf_classify", "sf_expand"],
3342
- },
3343
- };
3344
- }
3345
- const currentVerification = ctx.verification_result ?? ctx.batch2_verification_result;
3346
- if (currentVerification?.status !== "passed") {
3347
- return {
3348
- result: {
3349
- error: "验收前必须已有真实执行并通过的 verification_result",
3350
- diagnostic_code: "SF-ACCEPT-VERIFICATION-REQUIRED",
3351
- recovery_next_tools: ["sf_verify", "sf_record_verification_execution", "sf_status"],
3352
- recovery_forbidden_tools: ["sf_deliver", "sf_scaffold", "sf_classify", "sf_expand"],
3353
- },
3354
- };
3355
- }
3356
- const evidenceRef = `acceptance:user_confirmation:${confirmationRef}`;
3357
- if (runMode === "manual_review") {
3358
- const acceptanceModule = await lazyLocalAcceptance();
3359
- if (!args.final_access) {
3360
- return {
3361
- result: {
3362
- error: "manual_review 验收缺少 final_access 真实访问证据",
3363
- diagnostic_code: "SF-ACCEPT-FINAL-ACCESS-REQUIRED",
3364
- recovery_next_tools: ["sf_accept", "sf_status"],
3365
- recovery_forbidden_tools: ["sf_deliver", "sf_scaffold", "sf_classify", "sf_expand"],
3366
- },
3367
- };
3368
- }
3369
- const finalAccessResult = acceptanceModule.validateFinalAccess(args.final_access, "local_dev_server");
3370
- if (!finalAccessResult.passed) {
3371
- return {
3372
- result: {
3373
- error: `manual_review 验收证据不完整: ${finalAccessResult.blocking_reasons.join("; ")}`,
3374
- diagnostic_code: "SF-ACCEPT-FINAL-ACCESS-INVALID",
3375
- recovery_next_tools: ["sf_accept", "sf_status"],
3376
- recovery_forbidden_tools: ["sf_deliver", "sf_scaffold", "sf_classify", "sf_expand"],
3377
- },
3378
- };
3379
- }
3380
- }
3381
- // 设置本地验收证据
3382
- ctx.local_acceptance_evidence = {
3383
- status: runMode === "manual_review" ? "passed" : "not_applicable",
3384
- run_mode: runMode,
3385
- confirmed_by: confirmedBy,
3386
- confirmation_ref: confirmationRef,
3387
- final_access: args.final_access ?? {
3388
- frontend_urls: [],
3389
- backend_urls: [],
3390
- docs_or_swagger_urls: [],
3391
- start_commands: [],
3392
- stop_commands: [],
3393
- running_status: "not_started",
3394
- manual_review_steps_zh: [notes],
3395
- known_limits_zh: [],
3396
- },
3397
- evidence_refs: [evidenceRef],
3398
- };
3399
- await taskContext.save(ctx);
3400
- let updatedCtx = ctx;
3401
- // 产物确认必须经过统一生命周期校验,不直接改写 status。
3402
- if (ctx.artifact_output && ctx.artifact_output.status === "verified") {
3403
- updatedCtx = await taskContext.updateArtifactStatus(args.task_id, {
3404
- status: "accepted",
3405
- evidenceRef,
3406
- hasAcceptance: true,
3407
- }) ?? ctx;
3408
- }
3409
- return {
3410
- result: {
3411
- task_id: args.task_id,
3412
- acceptance_status: "passed",
3413
- run_mode: runMode,
3414
- evidence_ref: evidenceRef,
3415
- artifact_transition: updatedCtx.artifact_output
3416
- ? `${updatedCtx.artifact_output.status}`
3417
- : "no_artifact",
3418
- },
3419
- };
3420
- });
3421
- // ── sf_deliver: 自动提交、推送、创建 PR ──
3422
- registerSafeTool("sf_deliver", "验收后自动提交代码、推送、创建 PR 和生成变更日志", DeliverSchema, async (args) => {
3423
- const ctx = await taskContext.load(args.task_id);
3424
- if (!ctx) {
3425
- return {
3426
- result: { error: "任务不存在" },
3427
- };
3428
- }
3429
- // H4: 交付前工作区完整性检查 — advisory 模式,仅警告不阻断
3430
- const deliverIntegrity = await ioController.verify();
3431
- const h4DeliverWarning = !deliverIntegrity.clean
3432
- ? { warning: `H4 advisory: ${deliverIntegrity.message}`, dirty_files: deliverIntegrity.dirty_files }
3433
- : undefined;
3434
- // 模板契约修复指令优先于通用产物状态提示,确保客户端获得可执行的修复重验路径。
3435
- if (ctx.repair_reverify_directive) {
3436
- return {
3437
- result: {
3438
- error: "存在未清零的模板契约修复指令,需完成修复重验后才能交付",
3439
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.contractDraft,
3440
- repair_directive: ctx.repair_reverify_directive,
3441
- recovery: "修复文档缺口后重新执行 sf_verify,验证通过后 repair_reverify_directive 自动清零",
3442
- recovery_next_tools: ["sf_learn", "sf_verify", "sf_status"],
3443
- recovery_forbidden_tools: ["sf_deliver", "sf_scaffold", "sf_classify", "sf_expand"],
3444
- },
3445
- };
3446
- }
3447
- // 问题六十六/六十七: 审查或验证阶段产生的工程硬失败不得进入交付。
3448
- const oodModule = await lazyOodSolid();
3449
- if (oodModule.hasBlockingSolidFindings(ctx.ood_solid_findings ?? [])) {
3450
- return {
3451
- result: {
3452
- error: "OOD/SOLID 契约仍存在硬失败,不得交付",
3453
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.oodDeliveryBlock,
3454
- findings: ctx.ood_solid_findings,
3455
- recovery: "按 finding 修复职责或依赖边界,并重新执行 sf_review 与 sf_verify",
3456
- },
3457
- };
3458
- }
3459
- const backendModule = await lazyBackendImplementation();
3460
- if (backendModule.hasBlockingBackendFindings(ctx.backend_implementation_findings ?? [])) {
3461
- return {
3462
- result: {
3463
- error: "后端实现工程契约仍存在硬失败,不得交付",
3464
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.backendDeliveryBlock,
3465
- findings: ctx.backend_implementation_findings,
3466
- recovery: "按 finding 修复后端边界、安全或一致性问题,并重新执行 sf_review 与 sf_verify",
3467
- },
3468
- };
3469
- }
3470
- // 问题六十八: 代码可维护性与可观测性 P0 阻断交付。
3471
- const obsModule = await lazyCodeObservability();
3472
- const obsDeliveryBlock = obsModule.evaluateDeliveryBlock(ctx.code_observability_findings ?? []);
3473
- if (obsDeliveryBlock.blocked) {
3474
- return {
3475
- result: {
3476
- error: `代码可维护性/可观测性存在阻断: ${obsDeliveryBlock.reason_zh}`,
3477
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.codeObservabilityFinding,
3478
- findings: obsDeliveryBlock.blocking_findings,
3479
- recovery: "按 finding 修复敏感信息泄漏、缺失日志或吞异常问题,并重新执行 sf_review 与 sf_verify",
3480
- },
3481
- };
3482
- }
3483
- // 产物状态门控: deliver 需要产物状态为 accepted 且有证据
3484
- if (ctx.artifact_output) {
3485
- const status = ctx.artifact_output.status;
3486
- if (status === "draft") {
3487
- return {
3488
- result: {
3489
- error: `产物状态为 ${status},需先通过验证 (verified) 并确认 (accepted) 才能交付`,
3490
- artifact_id: ctx.artifact_output.artifact_id,
3491
- current_status: status,
3492
- },
3493
- };
3494
- }
3495
- if (status === "verified") {
3496
- return {
3497
- result: {
3498
- error: `产物状态为 ${status},需人工确认或后续 workflow 采用后变为 accepted 才能交付`,
3499
- artifact_id: ctx.artifact_output.artifact_id,
3500
- current_status: status,
3501
- },
3502
- };
3503
- }
3504
- // accepted 必须有确认证据
3505
- if (status === "accepted") {
3506
- const hasAcceptanceEvidence = ctx.artifact_output.evidence_refs.some((r) => r.includes("acceptance") || r.includes("workflow_adoption"));
3507
- if (!hasAcceptanceEvidence) {
3508
- return {
3509
- result: {
3510
- error: `产物状态为 accepted 但缺少确认证据 (acceptance/workflow_adoption evidence_ref)`,
3511
- artifact_id: ctx.artifact_output.artifact_id,
3512
- current_status: status,
3513
- },
3514
- };
3515
- }
3516
- }
3517
- }
3518
- // 问题六十二: 依赖设计产物的任务只有 implementation_ready 后才可交付。
3519
- if (ctx.design_artifact_pack && ctx.design_artifact_pack.status !== "implementation_ready") {
3520
- return {
3521
- result: {
3522
- error: `设计产物包状态为 ${ctx.design_artifact_pack.status},未达到 implementation_ready,不得交付`,
3523
- diagnostic_code: "SF-DESIGN-PACK-NOT-READY",
3524
- findings: ctx.design_artifact_pack.findings,
3525
- recovery: "请完成设计产物真实复验并修复所有阻断项后重新交付",
3526
- },
3527
- };
3528
- }
3529
- if (ctx.traceability_binding && ctx.traceability_binding.status !== "bound") {
3530
- return {
3531
- result: {
3532
- error: "追踪绑定未闭合,不得交付编码结果",
3533
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.traceabilityDeliveryBlocked,
3534
- traceability_binding: ctx.traceability_binding,
3535
- recovery: "补齐需求/原型/设计/切片/验收追踪矩阵并重新 sf_expand → sf_verify,通过后再 sf_deliver",
3536
- },
3537
- };
3538
- }
3539
- // 交付 lease 互斥检查
3540
- const leaseModule = await lazyWorkspaceLease();
3541
- const deliverLease = leaseModule.acquireLease(args.task_id, "delivery", [projectPath]);
3542
- if (deliverLease.lease?.status === "conflicted" || deliverLease.conflicts.length > 0) {
3543
- return {
3544
- result: {
3545
- error: `交付 lease 冲突: ${deliverLease.conflicts.map((c) => `${c.conflict_type}: ${c.conflict_path}`).join(", ")}`,
3546
- conflicts: deliverLease.conflicts,
3547
- },
3548
- };
3549
- }
3550
- // 交付就绪评估 — delivery_allowed=false 必须阻断交付
3551
- const drModule = await lazyDeliveryReadiness();
3552
- const guardModule = await lazyEnforcementGuard();
3553
- const currentVResult = ctx.verification_result ?? ctx.batch2_verification_result;
3554
- const currentVPlan = ctx.verification_plan ?? ctx.batch2_verification_plan;
3555
- const guardFindings = guardModule.evaluateDeliveryReadinessGuard(currentVResult, currentVPlan);
3556
- // 问题五十一: 编码就绪门 — 交付前检查 coding readiness
3557
- const codingGate = await checkCodingReadinessGate({ ctx });
3558
- if (!codingGate.allowed) {
3559
- if (deliverLease.lease) {
3560
- leaseModule.releaseLease(deliverLease.lease.lease_id);
3561
- }
3562
- return {
3563
- result: {
3564
- error: `编码就绪检查未通过: ${codingGate.reason_zh}`,
3565
- missing_preconditions: codingGate.missing_preconditions,
3566
- status: "blocked",
3567
- recovery: "请先满足编码就绪条件(测试计划、验收标准、主链路入口)",
3568
- },
3569
- };
3570
- }
3571
- const metricsData = await (await lazyObservability()).collectDeliveryMetricSamples(taskContext.getStateDir());
3572
- // acceptanceConfig: 从项目配置推断 project_run_mode
3573
- const projectHasFrontend = config.tech_stack.frontend.lang && config.tech_stack.frontend.lang !== "none";
3574
- const projectHasBackend = config.tech_stack.backend.lang && config.tech_stack.backend.lang !== "none";
3575
- const readinessReport = drModule.evaluateDeliveryReadiness(args.task_id, currentVResult, guardFindings, true, // scope_check — 已在 sf_verify 写入护栏中检查
3576
- deliverLease.conflicts.length === 0, // lease_check — 无冲突即通过
3577
- true, // privacy_check — 已在任务创建时脱敏
3578
- true, // artifact_acceptance — 上面已检查产物状态
3579
- metricsData, projectHasFrontend ? { final_access: { frontend_urls: [], backend_urls: [], docs_or_swagger_urls: [], start_commands: [], stop_commands: [], running_status: "not_started", manual_review_steps_zh: [], known_limits_zh: [] }, project_run_mode: "local_dev_server" } : undefined);
3580
- // 保存就绪报告到任务上下文
3581
- const ctxForReadiness = await taskContext.load(args.task_id);
3582
- if (ctxForReadiness) {
3583
- ctxForReadiness.delivery_readiness = readinessReport;
3584
- await taskContext.save(ctxForReadiness);
3585
- }
3586
- if (!readinessReport.delivery_allowed) {
3587
- // 释放 lease 并阻断交付
3588
- if (deliverLease.lease) {
3589
- leaseModule.releaseLease(deliverLease.lease.lease_id);
3590
- }
3591
- return {
3592
- result: {
3593
- error: `交付就绪检查未通过: ${readinessReport.blocking_findings.map((f) => f.message_zh).join("; ")}`,
3594
- delivery_readiness: readinessReport,
3595
- },
3596
- };
3597
- }
3598
- // 问题五十二: 本地验收门 — 前端/全栈交付前必须有本地访问证据(仅在有施工指令契约时强制)
3599
- const hasInstructionContract = !!ctx?.instruction_contract;
3600
- if (hasInstructionContract) {
3601
- const localAcceptanceGate = await checkLocalAcceptanceGate({
3602
- ctx,
3603
- hasFrontend: !!projectHasFrontend,
3604
- hasBackend: !!projectHasBackend,
3605
- hasDockerCompose: false,
3606
- hasDockerfile: false,
3607
- });
3608
- if (!localAcceptanceGate.allowed) {
3609
- if (deliverLease.lease) {
3610
- leaseModule.releaseLease(deliverLease.lease.lease_id);
3611
- }
3612
- return {
3613
- result: {
3614
- error: `本地验收检查未通过: ${localAcceptanceGate.reason_zh}`,
3615
- required_but_missing: localAcceptanceGate.required_but_missing,
3616
- status: "blocked",
3617
- recovery: "请提供本地运行证据或说明 not_applicable 原因(如纯后端 API 项目)",
3618
- },
3619
- };
3620
- }
3621
- }
3622
- // 问题六十:交付结论必须经过 UnsupportedClaimGate
3623
- {
3624
- const { createEvidenceGroundingSystem, assessTaskRisk } = await import("../../engine/evidence_grounding_contract.js");
3625
- const _dRoute = ctx.route_decision?.route ?? ctx.classification?.route_decision?.route;
3626
- const _dRisk = assessTaskRisk(ctx.classification?.task_type, _dRoute, ctx.intent);
3627
- if (_dRisk !== "low") {
3628
- const _deg = createEvidenceGroundingSystem();
3629
- // 注册验证结果和交付上下文
3630
- if (currentVResult) {
3631
- _deg.registry.register({
3632
- source_type: "validation_result",
3633
- authority: "authoritative",
3634
- freshness: "current",
3635
- permission: "allowed",
3636
- scope: "verification",
3637
- description: `验证状态: ${currentVResult.status}`,
3638
- source_ref: `verification:${args.task_id}`,
3639
- });
3640
- }
3641
- _deg.registry.register({
3642
- source_type: "task_context",
3643
- authority: "authoritative",
3644
- freshness: "current",
3645
- permission: "allowed",
3646
- scope: "delivery",
3647
- description: "交付上下文",
3648
- source_ref: `task:${args.task_id}`,
3649
- });
3650
- const _dClaims = [
3651
- {
3652
- id: "claim-deliver-1",
3653
- category: "release_status",
3654
- claim_text: "交付基于真实验证结果",
3655
- evidence_ids: _deg.registry.query({ source_type: "validation_result" }).map((e) => e.id),
3656
- is_uncertain: false,
3657
- risk_level: _dRisk,
3658
- },
3659
- ];
3660
- const _dMatrix = _deg.builder.buildContext(_dClaims, { target_claims: ["交付验证"], source_types: ["validation_result", "task_context"], keywords: ["验证", "交付"], max_results: 10 });
3661
- _dMatrix.task_id = args.task_id;
3662
- const _dGateResult = _deg.gate.evaluate(_dMatrix, _dRisk);
3663
- // 写回 TaskContext(blocked 也保存)
3664
- await taskContext.setEvidenceGroundingResult(args.task_id, {
3665
- evidence_matrix: _dMatrix,
3666
- evidence_gate_result: _dGateResult,
3667
- unsupported_claims: _dGateResult.unsupported_claims,
3668
- conflict_resolutions: _dMatrix.conflicts,
3669
- });
3670
- if (!_dGateResult.allowed) {
3671
- if (deliverLease.lease) {
3672
- leaseModule.releaseLease(deliverLease.lease.lease_id);
3673
- }
3674
- return {
3675
- result: {
3676
- error: `证据驱动门禁未通过: ${_dGateResult.reason_zh}`,
3677
- diagnostic_code: _dGateResult.diagnostic_code,
3678
- unsupported_claims: _dGateResult.unsupported_claims,
3679
- },
3680
- };
3681
- }
3682
- }
3683
- }
3684
- // 交付前检查 false completion(通过提取的主链路函数)
3685
- const cepNfcResult = await assessCepBeforeDelivery({
3686
- task_id: args.task_id,
3687
- verification_passed: currentVResult?.status === "passed",
3688
- build_passed: (currentVResult?.passed_commands ?? 0) > 0,
3689
- browser_acceptance_passed: ctx.artifact_output?.status === "accepted" || ctx.artifact_output === undefined,
3690
- guard_passed: guardFindings.length === 0 || guardFindings.every((f) => f.severity !== "hard_fail"),
3691
- evidence_sufficient: (currentVResult?.evidence_ids?.length ?? 0) > 0,
3692
- current_status: ctx.status === "done" ? "completed" : ctx.status,
3693
- });
3694
- if (cepNfcResult.decision === "blocked" || cepNfcResult.decision === "repair_reverify") {
3695
- if (deliverLease.lease) {
3696
- leaseModule.releaseLease(deliverLease.lease.lease_id);
3697
- }
3698
- const ctxForCep = await taskContext.load(args.task_id);
3699
- if (ctxForCep) {
3700
- ctxForCep.core_experience_evaluation = {
3701
- task_id: args.task_id,
3702
- workflow_id: "sf_deliver",
3703
- evaluated_principles: ["auto_repair_no_fake_completion"],
3704
- violations: [{
3705
- principle: "auto_repair_no_fake_completion",
3706
- severity: "blocking",
3707
- reason_zh: cepNfcResult.reason_zh,
3708
- evidence_refs: [],
3709
- required_action: cepNfcResult.decision === "blocked" ? "block_delivery" : "repair_reverify",
3710
- }],
3711
- user_facing_summary_zh: `CEP 检查未通过: ${cepNfcResult.reason_zh}`,
3712
- internal_trace_refs: [],
3713
- passed: false,
3714
- };
3715
- await taskContext.save(ctxForCep);
3716
- }
3717
- return {
3718
- result: {
3719
- error: `CEP false completion 检查未通过: ${cepNfcResult.reason_zh}`,
3720
- cep_decision: cepNfcResult.decision,
3721
- },
3722
- };
3723
- }
3724
- const result = await (await lazyDelivery()).deliver({
3725
- taskContext: ctx,
3726
- config,
3727
- knowledgeIndex,
3728
- projectPath,
3729
- gitOps: (await lazyGitDeps()).realGitOps,
3730
- skipPush: args.skip_push,
3731
- skipPr: args.skip_pr,
3732
- });
3733
- await taskContext.setDelivery(args.task_id, result);
3734
- // 交付完成后释放 lease
3735
- if (deliverLease.lease) {
3736
- leaseModule.releaseLease(deliverLease.lease.lease_id);
3737
- }
3738
- return {
3739
- result: h4DeliverWarning ? { ...result, h4_advisory: h4DeliverWarning } : result,
3740
- };
3741
- });
3742
- // ── sf_coord_check: 预测性冲突检测和跨仓库协调 ──
3743
- registerSafeTool("sf_coord_check", "预测性冲突检测和跨仓库协调提示,检查分支状态、本地变更和潜在冲突", CoordCheckSchema, async (args) => {
3744
- const result = await (await lazyChangeCoord()).checkConflicts({
3745
- projectPath,
3746
- config,
3747
- branch: args.branch,
3748
- gitOps: (await lazyGitDeps()).realGitOps,
3749
- });
3750
- return {
3751
- result: result,
3752
- };
3753
- });
3754
- // ── sf_team_status: 团队活动流和工作负载查询 ──
3755
- registerSafeTool("sf_team_status", "查询团队活动流、成员工作负载、过期分支和知识库更新状态", TeamStatusSchema, async (args) => {
3756
- const result = await (await lazyTeam()).getTeamStatus({
3757
- projectPath,
3758
- config,
3759
- since: args.since,
3760
- gitOps: (await lazyGitDeps()).realGitOps,
3761
- knowledgeIndex: args.include_knowledge ? knowledgeIndex : undefined,
3762
- });
3763
- return {
3764
- result: result,
3765
- };
3766
- });
3767
- // ── sf_contract_check: API 契约变更检测 ──
3768
- registerSafeTool("sf_contract_check", "检测 API 契约变更(路由、DTO 字段等),评估破坏性影响和跨服务依赖", ContractCheckSchema, async (args) => {
3769
- let changedFiles = args.changed_files;
3770
- if (!changedFiles) {
3771
- const ctx = await taskContext.load(args.task_id);
3772
- changedFiles = ctx?.execution?.changed_files ?? [];
3773
- }
3774
- const result = await (await lazyContractGuard()).checkContractChanges({
3775
- changedFiles,
3776
- projectPath,
3777
- config,
3778
- gitOps: (await lazyGitDeps()).realGitOps,
3779
- });
3780
- return {
3781
- result: result,
3782
- };
3783
- });
3784
- // ── sf_onboard: 新人分步引导 ──
3785
- registerSafeTool("sf_onboard", "新人分步引导:项目概览 → 代码导览 → 知识回顾 → 首个任务建议", OnboardSchema, async (args) => {
3786
- const result = await (await lazyOnboarding()).onboard({
3787
- config,
3788
- projectPath,
3789
- knowledgeIndex,
3790
- gitOps: (await lazyGitDeps()).realGitOps,
3791
- currentStep: args.step,
3792
- reset: args.reset,
3793
- });
3794
- return {
3795
- result: result,
3796
- };
3797
- });
3798
- // ── sf_feasibility_check: 任务可行性评估 ──
3799
- registerSafeTool("sf_feasibility_check", "分析任务可行性:可行/风险/不可行三档评估,纯建议不阻断流程", FeasibilityCheckSchema, async (args) => {
3800
- const ctx = await taskContext.load(args.task_id);
3801
- if (!ctx?.classification) {
3802
- return {
3803
- result: { error: "任务不存在或未完成分类,请先调用 sf_classify" },
3804
- };
3805
- }
3806
- const result = (await lazyFeasibility()).checkFeasibility(ctx.classification, config);
3807
- return {
3808
- result: result,
3809
- };
3810
- });
3811
- // ── sf_debug: 智能排障(解析错误 → 根因分析 → 修复方案) ──
3812
- registerSafeTool("sf_debug", "智能排障:解析错误 → 追踪调用链 → 根因分析 → 修复方案 → 测试建议", DebugSchema, async (args) => {
3813
- const projectScope = [
3814
- ...config.scope.backend,
3815
- ...config.scope.frontend,
3816
- ];
3817
- const result = (await lazyDebugger()).debugError(args.error_output, args.task_id || `debug-${Date.now()}`, projectScope);
3818
- return {
3819
- result: result,
3820
- };
3821
- });
3822
- // ── sf_observability: 系统可观测和运行报告 ──
3823
- registerSafeTool("sf_observability", "系统可观测:运行指标、成本估算、告警检测、能力状态、周期报告", ObservabilitySchema, async (args) => {
3824
- const stateDir = taskContext.getStateDir();
3825
- const result = await (await lazyObservability()).generateReport(stateDir, args.period_days);
3826
- const capability = (await lazyCapability()).getSummary();
3827
- const output = { ...result, capability };
3828
- return {
3829
- result: output,
3830
- };
3831
- });
3832
- // ── sf_migration_check: 数据库迁移安全性分析 ──
3833
- registerSafeTool("sf_migration_check", "分析数据库迁移文件安全性:检测破坏性操作(DROP/DELETE/TRUNCATE)并生成回滚建议", MigrationCheckSchema, async (args) => {
3834
- const result = (await lazyMigration()).analyzeMigration(args.content, args.filename);
3835
- return {
3836
- result: result,
3837
- };
3838
- });
3839
- // ── sf_test_guide: 基于变更文件生成测试指引 ──
3840
- registerSafeTool("sf_test_guide", "根据变更文件类型生成测试指引:推荐测试类型、场景、Mock 点和断言模板", TestGuideSchema, async (args) => {
3841
- const result = (await lazyTestGen()).generateTestGuide(args.changed_files, [], config);
3842
- return {
3843
- result: result,
3844
- };
3845
- });
3846
- // ── sf_test_quality: 测试文件质量五维评分 ──
3847
- registerSafeTool("sf_test_quality", "评估测试文件质量:断言密度、边界覆盖、命名、重复率、场景覆盖五维评分", TestQualitySchema, async (args) => {
3848
- const result = (await lazyTestQuality()).analyzeTestQuality(args.content, args.filename);
3849
- return {
3850
- result: result,
3851
- };
3852
- });
3853
- // ── sf_dependency_scan: 依赖漏洞扫描 ──
3854
- registerSafeTool("sf_dependency_scan", "扫描依赖声明文件漏洞:已知 CVE 规则匹配、未锁定版本检测、支持 npm/maven/gradle", DependencyScanSchema, async (args) => {
3855
- const result = (await lazyDepScan()).scanDependencies(args.content, args.filename);
3856
- return {
3857
- result: result,
3858
- };
3859
- });
3860
- // ── sf_debt_report: 技术债务报告生成 ──
3861
- registerSafeTool("sf_debt_report", "生成技术债务报告:按分类/严重度聚合、30 天趋势、优先级排序 Top 5", {}, async () => {
3862
- const tracker = new (await lazyDebt()).DebtTracker(projectPath);
3863
- const result = await (await lazyDebtReport()).generateDebtReport(tracker);
3864
- return {
3865
- result: result,
3866
- };
3867
- });
3868
- // ── sf_explore: 自主技术选型与方案证伪 ──
3869
- registerSafeTool("sf_explore", "自主技术选型引擎:行业基准对比 + 四维权重矩阵 + 最优解宣誓 + 方案证伪 + A/B 决策诱导。禁止凭空捏造,必须基于行业标准", ExploreSchema, async (args) => {
3870
- let classification;
3871
- if (args.task_id) {
3872
- const ctx = await taskContext.load(args.task_id);
3873
- classification = ctx?.classification;
3874
- }
3875
- const result = (await lazyExploration()).exploreSolutions({
3876
- domain_query: args.domain_query,
3877
- projectConfig: config,
3878
- classification,
3879
- knowledgeIndex,
3880
- });
3881
- // 决策契约 advisory: sf_explore 应始终通过(10 字段已内置)
3882
- const decisionContract = (await lazyDecision()).validateDecisionOutput(result);
3883
- const exploreExtras = {};
3884
- if (!decisionContract.passed) {
3885
- exploreExtras.decision_contract_advisory = decisionContract.advisory;
3886
- }
3887
- return { result: Object.keys(exploreExtras).length > 0 ? { ...result, ...exploreExtras } : result };
3888
- });
3889
- // ── sf_knowledge_audit: 知识库健康审计 ──
3890
- registerSafeTool("sf_knowledge_audit", "审计知识库:识别过时条目、重复触发词、格式缺失、覆盖缺口。定期执行或手动触发", {}, async () => {
3891
- const result = await (await lazyKnowledge()).auditKnowledge(knowledgeIndex, config);
3892
- return {
3893
- result: result,
3894
- };
3895
- });
3896
- // ── sf_knowledge_add: 新增知识条目(默认保存为草稿) ──
3897
- const KnowledgeAddSchema = {
3898
- title: z.string().describe("知识条目标题(英文 kebab-case,如 payment-rules)"),
3899
- type: z.enum(["pattern", "procedure", "pipeline_procedure", "domain", "acceptance_template", "review_rule"]).describe("知识类型"),
3900
- scope: z.array(z.string()).describe("适用范围(如 [backend]、[frontend]、[backend, frontend])"),
3901
- when_triggers: z.string().describe("触发关键词(逗号分隔)"),
3902
- decision_rules: z.string().optional().describe("决策规则(每行一条)"),
3903
- save_to_drafts: z.boolean().optional().describe("是否保存为草稿(默认 true,需人工 review 后移入正式目录)"),
3904
- auto_enrich: z.boolean().optional().describe("是否返回行业最佳实践探索指引(默认 true,宿主 AI 将自动执行探索并填充内容)"),
3905
- confirm: z.boolean().optional().describe("显式确认写入知识库,必须为 true"),
3906
- authorized: z.boolean().optional().describe("confirm 的兼容别名"),
3907
- };
3908
- registerSafeTool("sf_knowledge_add", "新增知识条目。默认保存为草稿到 .soloforge/knowledge/drafts/,人工确认后移入正式目录", KnowledgeAddSchema, async (args) => {
3909
- const result = await (await lazyKnowledge()).addKnowledge({
3910
- title: args.title,
3911
- type: args.type,
3912
- scope: args.scope,
3913
- when_triggers: args.when_triggers,
3914
- decision_rules: args.decision_rules,
3915
- save_to_drafts: args.save_to_drafts,
3916
- auto_enrich: args.auto_enrich,
3917
- }, config);
3918
- return {
3919
- result: result,
3920
- };
3921
- });
3922
- // ── sf_knowledge_update: 更新已有知识条目(自动创建备份) ──
3923
- const KnowledgeUpdateSchema = {
3924
- entry_name: z.string().describe("要更新的知识条目名称(如 payment-rules)"),
3925
- when_triggers: z.string().optional().describe("新的触发关键词(替换现有)"),
3926
- add_decision_rules: z.array(z.string()).optional().describe("追加的决策规则"),
3927
- add_acceptance_criteria: z.array(z.string()).optional().describe("追加的验收项"),
3928
- status: z.enum(["active", "deprecated"]).optional().describe("更新条目状态"),
3929
- confirm: z.boolean().optional().describe("显式确认写入知识库,必须为 true"),
3930
- authorized: z.boolean().optional().describe("confirm 的兼容别名"),
3931
- };
3932
- registerSafeTool("sf_knowledge_update", "更新已有知识条目:追加规则、更新触发词、标记废弃。自动创建备份", KnowledgeUpdateSchema, async (args) => {
3933
- const result = await (await lazyKnowledge()).updateKnowledge({
3934
- entry_name: args.entry_name,
3935
- updates: {
3936
- when_triggers: args.when_triggers,
3937
- add_decision_rules: args.add_decision_rules,
3938
- add_acceptance_criteria: args.add_acceptance_criteria,
3939
- status: args.status,
3940
- },
3941
- }, knowledgeIndex, config);
3942
- // 重载知识索引
3943
- if (result.success) {
3944
- await knowledgeIndex.reload();
3945
- }
3946
- return {
3947
- result: result,
3948
- };
3949
- });
3950
- // ── sf_resume_workspace: 工作区状态唤醒(解决前端刷新导致UUID丢失) ──
3951
- registerSafeTool("sf_resume_workspace", "扫描 .soloforge/state/ 目录,恢复中断工单并播报当前进度。新会话启动时必须优先调用", {}, async () => {
3952
- const result = await (await lazyWorkspaceResumer()).scanAndResume(taskContext);
3953
- // 认知锚点:按恢复任务的 changed_files 相关性加载,禁止全量
3954
- if (result.task) {
3955
- const ctx = await taskContext.load(result.task.task_id);
3956
- const changedFiles = ctx?.execution?.changed_files;
3957
- if (changedFiles && changedFiles.length > 0) {
3958
- const anchors = await loadRelevantAnchors({ file_paths: changedFiles });
3959
- if (anchors && anchors.length > 0) {
3960
- result.cognitive_anchors = anchors;
3961
- }
3962
- }
3963
- }
3964
- // JobManager advisory: 查询活跃 jobs
3965
- try {
3966
- const jm = new (await lazyJob()).JobManager(taskContext.getStateDir());
3967
- const activeJobs = await jm.listActiveJobs();
3968
- if (activeJobs.length > 0) {
3969
- result.active_jobs = activeJobs.map((j) => ({
3970
- job_id: j.job_id,
3971
- task_id: j.task_id,
3972
- phase: j.current_phase,
3973
- is_alive: j.is_alive,
3974
- latest_anchor_summary: j.latest_anchor?.summary,
3975
- checkpoint_count: j.checkpoint_count,
3976
- }));
3977
- }
3978
- }
3979
- catch {
3980
- // JobManager advisory — 忽略错误
3981
- }
3982
- return {
3983
- result: result,
3984
- };
3985
- });
3986
- // ── sf_audit_sample: 从审计池按风险加权抽样生成抽检清单 ──
3987
- const AuditSampleSchema = {
3988
- seed: z.number().optional().describe("抽样种子(默认 0,同种子可复现)"),
3989
- };
3990
- registerSafeTool("sf_audit_sample", "从审计池按风险加权抽样,生成抽检清单(SamplingDecision 列表)。只读,不落盘,不生成逃逸报告,不改能力状态", AuditSampleSchema, async (args) => {
3991
- const stateDir = taskContext.getStateDir();
3992
- const pool = new (await lazyAuditPool()).AuditPool(stateDir);
3993
- const items = pool.list();
3994
- const seed = args.seed ?? 0;
3995
- const result = (await lazyAuditSampler()).sampleAuditItems(items, seed);
3996
- return {
3997
- result: result,
3998
- };
3999
- });
4000
- // ── sf_escape_report: 记录逃逸/误伤/工具故障报告 ──
4001
- const EscapeReportSchema = {
4002
- escape_id: z.string().describe("逃逸报告唯一 ID"),
4003
- task_id: z.string().describe("关联任务 ID"),
4004
- policy_id: z.string().describe("关联能力 policy ID"),
4005
- failure_type: z.enum(["rule_gap", "weak_test", "bad_evidence", "ai_escape", "human_miss", "tool_bug", "false_positive"]).describe("失败类型"),
4006
- expected_guard: z.string().describe("期望的守卫行为"),
4007
- actual_escape: z.string().describe("实际的逃逸行为"),
4008
- evidence: z.string().describe("证据"),
4009
- root_cause: z.string().describe("根因分析"),
4010
- fix_required: z.string().describe("修复要求"),
4011
- owner: z.string().describe("负责人"),
4012
- due_date: z.string().describe("修复截止日期"),
4013
- capability_action: z.enum(["keep", "downgrade", "disable", "promote_blocked"]).describe("建议的能力动作"),
4014
- created_at: z.string().optional().describe("报告时间(ISO,默认当前时间)"),
4015
- };
4016
- registerSafeTool("sf_escape_report", "记录逃逸、误伤或工具故障报告。只落盘记录,不自动降级,不改能力状态", EscapeReportSchema, async (args) => {
4017
- const stateDir = taskContext.getStateDir();
4018
- const store = new (await lazyEscape()).EscapeReportStore(stateDir);
4019
- const report = {
4020
- escape_id: args.escape_id,
4021
- task_id: args.task_id,
4022
- policy_id: args.policy_id,
4023
- failure_type: args.failure_type,
4024
- expected_guard: args.expected_guard,
4025
- actual_escape: args.actual_escape,
4026
- evidence: args.evidence,
4027
- root_cause: args.root_cause,
4028
- fix_required: args.fix_required,
4029
- owner: args.owner,
4030
- due_date: args.due_date,
4031
- capability_action: args.capability_action,
4032
- created_at: args.created_at ?? new Date().toISOString(),
4033
- };
4034
- store.append(report);
4035
- return {
4036
- result: { recorded: true, escape_id: report.escape_id },
4037
- };
4038
- });
4039
- // ── sf_capability_update: 根据复盘结果更新 Capability Registry ──
4040
- const CapabilityUpdateSchema = {
4041
- policy_id: z.string().describe("要更新的 policy ID(如 CAP-003)"),
4042
- target_state: z.enum(["enforced", "advisory", "experimental", "removed"]).describe("目标状态"),
4043
- reason: z.string().describe("变更原因"),
4044
- evidence_ids: z.array(z.string()).describe("支撑此变更的 escape report ID 列表"),
4045
- confirmed_by: z.string().describe("人工确认者标识(如操作者名字)"),
4046
- dry_run: z.boolean().optional().describe("dry_run 模式:只校验不持久化(默认 false)"),
4047
- confirm: z.boolean().describe("人工确认标志,必须为 true 才能执行变更"),
4048
- };
4049
- registerSafeTool("sf_capability_update", "根据复盘结果更新 Capability Registry 状态。支持 dry_run 校验、证据校验、人工确认。不会自动触发,必须显式调用", CapabilityUpdateSchema, async (args) => {
4050
- const stateDir = taskContext.getStateDir();
4051
- const escapeStore = new (await lazyEscape()).EscapeReportStore(stateDir);
4052
- const stateStore = new (await lazyCapState()).CapabilityStateStore(stateDir);
4053
- const escapeReports = escapeStore.list();
4054
- const capabilities = (await lazyCapability()).getAllCapabilities();
4055
- const cap = capabilities.find((c) => c.policy_id === args.policy_id);
4056
- const currentState = stateStore.getEffectiveState(args.policy_id, cap?.state ?? "experimental");
4057
- const result = stateStore.apply({
4058
- policy_id: args.policy_id,
4059
- target_state: args.target_state,
4060
- reason: args.reason,
4061
- evidence_ids: args.evidence_ids,
4062
- confirmed_by: args.confirmed_by,
4063
- dry_run: args.dry_run ?? false,
4064
- confirm: args.confirm,
4065
- }, currentState, cap?.id ?? null, escapeReports);
4066
- return {
4067
- result: result,
4068
- };
4069
- });
4070
- // ── sf_governance_report: 治理健康报告 ──
4071
- const GovernanceReportSchema = {
4072
- seed: z.number().optional().describe("抽样种子(用于计算 sampled_count,默认 0)"),
4073
- };
4074
- registerSafeTool("sf_governance_report", "生成治理健康报告:汇总审计池、逃逸报告、能力动作决策。只读,不改状态", GovernanceReportSchema, async (args) => {
4075
- const stateDir = taskContext.getStateDir();
4076
- const seed = args.seed ?? 0;
4077
- const pool = new (await lazyAuditPool()).AuditPool(stateDir);
4078
- const escapeStore = new (await lazyEscape()).EscapeReportStore(stateDir);
4079
- const auditItems = pool.list();
4080
- const auditStats = pool.stats();
4081
- const escapeReports = escapeStore.list();
4082
- const escapeStats = escapeStore.stats();
4083
- // 为所有能力生成动作决策(使用有效状态)
4084
- const capabilities = (await lazyCapability()).getAllCapabilities();
4085
- const stateStore = new (await lazyCapState()).CapabilityStateStore(stateDir);
4086
- const decisions = await Promise.all(capabilities.map(async (cap) => {
4087
- const effectiveState = stateStore.getEffectiveState(cap.policy_id, cap.state);
4088
- return (await lazyCapAdvisor()).decideAction(escapeReports, effectiveState, cap.policy_id);
4089
- }));
4090
- // 为 sampled_count 生成抽样决策
4091
- const sampleResult = (await lazyAuditSampler()).sampleAuditItems(auditItems, seed);
4092
- // 双层机制发现
4093
- const dlFindings = (await lazyDualLayer()).validateMechanismLayerMaps();
4094
- const dlMechanismCount = (await lazyDualLayer()).listMechanismLayerMaps().length;
4095
- // 收集近期任务的产物记录
4096
- const recentTasks = await taskContext.listRecent(20);
4097
- const artifacts = [];
4098
- for (const t of recentTasks) {
4099
- const tCtx = await taskContext.load(t.task_id);
4100
- if (tCtx?.artifact_output)
4101
- artifacts.push(tCtx.artifact_output);
4102
- }
4103
- // 收集配置解析报告 — 使用共享函数获取真实数据
4104
- let configReports = [];
4105
- let configEntries = [];
4106
- try {
4107
- const resolved = await (await lazyConfigPrecedence()).resolveCurrentProjectConfigReports(projectPath);
4108
- configReports = resolved.reports;
4109
- configEntries = resolved.entries;
4110
- }
4111
- catch (e) {
4112
- internalWarn("配置报告", "解析失败:", e instanceof Error ? e.message : String(e));
4113
- }
4114
- // 同时包含近期任务上下文中的报告
4115
- for (const t of recentTasks) {
4116
- const tCtx = await taskContext.load(t.task_id);
4117
- if (tCtx?.expansion?.config_resolution_reports) {
4118
- configReports.push(...tCtx.expansion.config_resolution_reports);
4119
- }
4120
- }
4121
- const report = (await lazyGovernance()).generateReport(auditStats, auditItems, escapeReports, escapeStats, decisions, new Date(), sampleResult.decisions, dlFindings, dlMechanismCount, artifacts.length > 0 ? artifacts : undefined, configReports.length > 0 ? configReports : undefined, configEntries.length > 0 ? configEntries : undefined);
4122
- return {
4123
- result: report,
4124
- };
4125
- });
4126
- // ── sf_audit_integration: 主链路集成审计 ──
4127
- const AuditIntegrationSchema = {
4128
- changed_files: z.array(z.string()).optional().describe("只审计指定的变更文件列表"),
4129
- json_output: z.boolean().optional().describe("以 JSON 格式输出(默认为人类可读文本)"),
4130
- };
4131
- registerSafeTool("sf_audit_integration", "审计生产代码的主链路集成状态,检测孤岛模块(只被测试导入、无生产代码调用的模块)", AuditIntegrationSchema, async (args) => {
4132
- const projectPath = config._projectPath || process.cwd();
4133
- // 使用作用域感知的生产文件收集(支持多仓库、多语言)
4134
- const { collectAllProductionFiles } = await import("../../engine/main_path_integration_contract.js");
4135
- const allProdFiles = collectAllProductionFiles(projectPath, config);
4136
- if (allProdFiles.length === 0) {
4137
- return {
4138
- result: { error: "未找到生产源文件" },
4139
- };
4140
- }
4141
- const targetFiles = args.changed_files
4142
- ? allProdFiles.filter((rel) => args.changed_files.some((cf) => rel === cf || rel.startsWith(cf.replace(/\.(ts|tsx|js|jsx|java|kt|go|py)$/, ""))))
4143
- : allProdFiles;
4144
- const contracts = (await lazyMainPath()).buildMainPathIntegrationContracts(projectPath, targetFiles, config);
4145
- const report = (await lazyMainPath()).auditIntegration(contracts);
4146
- if (args.json_output) {
4147
- return {
4148
- result: report,
4149
- };
4150
- }
4151
- const lines = [];
4152
- lines.push("主链路集成审计报告");
4153
- lines.push(`受检模块: ${targetFiles.length} | 孤岛: ${report.orphan_modules.length} | 仅测试: ${report.test_only_modules.length} | 仅注册: ${report.registry_only_modules.length}`);
4154
- lines.push("");
4155
- for (const finding of report.findings) {
4156
- const icon = finding.severity === "hard_fail" ? "X" : finding.severity === "warning" ? "~" : "i";
4157
- lines.push(`${icon} ${finding.module_path}: ${finding.reason}`);
4158
- if (finding.recommended_action) {
4159
- lines.push(` -> ${finding.recommended_action}`);
4160
- }
4161
- }
4162
- if (report.findings.length === 0) {
4163
- lines.push("所有受检模块已通过集成检查。");
4164
- }
4165
- return {
4166
- result: { text: lines.join("\n") },
4167
- };
4168
- });
4169
- // ── sf_navigation: 工作流导航 — 问题六十五 ──
4170
- const NavigationSchema = {
4171
- project_path: z.string().optional().describe("项目路径(可选,默认当前目录)"),
4172
- };
4173
- registerSafeTool("sf_navigation", "查询工作流导航: 当前项目阶段、任务阶段、下一步操作和禁止操作。用于\"下一步\"\"继续\"\"现在能写代码吗\"等模糊推进意图。不得靠模型经验回答,必须调用此工具获取真实导航状态", NavigationSchema, async (args) => {
4174
- const projectPath = args.project_path || config._projectPath || process.cwd();
4175
- const { planNextAction } = await import("../../engine/next_action_planner.js");
4176
- const plan = await planNextAction(projectPath);
4177
- return {
4178
- result: {
4179
- project_stage: plan.project_stage,
4180
- task_stage: plan.task_stage,
4181
- current_task_id: plan.current_task_id,
4182
- confidence: plan.confidence,
4183
- stage_evidence: plan.stage_evidence,
4184
- blocking_reasons: plan.blocking_reasons,
4185
- stale_task: plan.stale_task,
4186
- confirmation_decisions: plan.confirmation_decisions,
4187
- work_package: plan.work_package ? {
4188
- id: plan.work_package.id,
4189
- goal_zh: plan.work_package.goal_zh,
4190
- description_zh: plan.work_package.description_zh,
4191
- action: plan.work_package.action,
4192
- tool_name: plan.work_package.tool_name,
4193
- must_read: plan.work_package.must_read,
4194
- forbidden_changes: plan.work_package.forbidden_changes,
4195
- expected_outputs: plan.work_package.expected_outputs,
4196
- acceptance_commands: plan.work_package.acceptance_commands,
4197
- } : null,
4198
- disallowed_actions: plan.disallowed_actions,
4199
- recommended_commands: plan.recommended_commands,
4200
- recommended_prompt_zh: plan.recommended_prompt_zh,
4201
- },
4202
- };
4203
- });
4204
- }
8
+ export { registerTools } from "../../server/tools/index.js";
9
+ export { createToolRegistrar } from "../../server/tools/middleware.js";
4205
10
  //# sourceMappingURL=tools.js.map