soloforge 1.2.19 → 1.3.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 (719) hide show
  1. package/README.md +140 -3
  2. package/dist/adapters/claude_code/claude_md.d.ts +1 -2
  3. package/dist/adapters/claude_code/claude_md.d.ts.map +1 -1
  4. package/dist/adapters/claude_code/claude_md.js +47 -4
  5. package/dist/adapters/claude_code/claude_md.js.map +1 -1
  6. package/dist/adapters/claude_code/hooks.d.ts.map +1 -1
  7. package/dist/adapters/claude_code/hooks.js +2 -1
  8. package/dist/adapters/claude_code/hooks.js.map +1 -1
  9. package/dist/adapters/claude_code/server.js +4 -3
  10. package/dist/adapters/claude_code/server.js.map +1 -1
  11. package/dist/adapters/claude_code/tools.d.ts +255 -1
  12. package/dist/adapters/claude_code/tools.d.ts.map +1 -1
  13. package/dist/adapters/claude_code/tools.js +981 -7
  14. package/dist/adapters/claude_code/tools.js.map +1 -1
  15. package/dist/adapters/codex/codex_config.d.ts.map +1 -1
  16. package/dist/adapters/codex/codex_config.js +3 -2
  17. package/dist/adapters/codex/codex_config.js.map +1 -1
  18. package/dist/adapters/codex/codex_rules.d.ts.map +1 -1
  19. package/dist/adapters/codex/codex_rules.js +2 -1
  20. package/dist/adapters/codex/codex_rules.js.map +1 -1
  21. package/dist/adapters/shared/workflow_template.d.ts.map +1 -1
  22. package/dist/adapters/shared/workflow_template.js +2 -1
  23. package/dist/adapters/shared/workflow_template.js.map +1 -1
  24. package/dist/adapters/trae/trae_config.d.ts +1 -6
  25. package/dist/adapters/trae/trae_config.d.ts.map +1 -1
  26. package/dist/adapters/trae/trae_config.js +3 -2
  27. package/dist/adapters/trae/trae_config.js.map +1 -1
  28. package/dist/adapters/trae/trae_rules.d.ts.map +1 -1
  29. package/dist/adapters/trae/trae_rules.js +2 -1
  30. package/dist/adapters/trae/trae_rules.js.map +1 -1
  31. package/dist/bin/config_commands.d.ts.map +1 -1
  32. package/dist/bin/config_commands.js +34 -33
  33. package/dist/bin/config_commands.js.map +1 -1
  34. package/dist/bin/soloforge.d.ts.map +1 -1
  35. package/dist/bin/soloforge.js +1110 -157
  36. package/dist/bin/soloforge.js.map +1 -1
  37. package/dist/engine/adapter_prompt_contract.d.ts +60 -0
  38. package/dist/engine/adapter_prompt_contract.d.ts.map +1 -0
  39. package/dist/engine/adapter_prompt_contract.js +163 -0
  40. package/dist/engine/adapter_prompt_contract.js.map +1 -0
  41. package/dist/engine/architecture_design_contract.d.ts +49 -0
  42. package/dist/engine/architecture_design_contract.d.ts.map +1 -0
  43. package/dist/engine/architecture_design_contract.js +169 -0
  44. package/dist/engine/architecture_design_contract.js.map +1 -0
  45. package/dist/engine/artifact_contract_registry.d.ts.map +1 -1
  46. package/dist/engine/artifact_contract_registry.js +7 -14
  47. package/dist/engine/artifact_contract_registry.js.map +1 -1
  48. package/dist/engine/{batch1_manifest.d.ts → asset_manifest.d.ts} +8 -8
  49. package/dist/engine/asset_manifest.d.ts.map +1 -0
  50. package/dist/engine/{batch1_manifest.js → asset_manifest.js} +52 -9
  51. package/dist/engine/asset_manifest.js.map +1 -0
  52. package/dist/engine/audit_pool.d.ts.map +1 -1
  53. package/dist/engine/audit_pool.js +6 -4
  54. package/dist/engine/audit_pool.js.map +1 -1
  55. package/dist/engine/audit_sampler.d.ts.map +1 -1
  56. package/dist/engine/audit_sampler.js +2 -1
  57. package/dist/engine/audit_sampler.js.map +1 -1
  58. package/dist/engine/audit_verifier.d.ts.map +1 -1
  59. package/dist/engine/audit_verifier.js +5 -4
  60. package/dist/engine/audit_verifier.js.map +1 -1
  61. package/dist/engine/brainstorm_contract.d.ts +46 -0
  62. package/dist/engine/brainstorm_contract.d.ts.map +1 -0
  63. package/dist/engine/brainstorm_contract.js +136 -0
  64. package/dist/engine/brainstorm_contract.js.map +1 -0
  65. package/dist/engine/capability_action_advisor.d.ts.map +1 -1
  66. package/dist/engine/capability_action_advisor.js +8 -7
  67. package/dist/engine/capability_action_advisor.js.map +1 -1
  68. package/dist/engine/capability_registry.d.ts.map +1 -1
  69. package/dist/engine/capability_registry.js +0 -7
  70. package/dist/engine/capability_registry.js.map +1 -1
  71. package/dist/engine/capability_state_store.d.ts.map +1 -1
  72. package/dist/engine/capability_state_store.js +7 -6
  73. package/dist/engine/capability_state_store.js.map +1 -1
  74. package/dist/engine/change_coordinator.d.ts.map +1 -1
  75. package/dist/engine/change_coordinator.js +4 -3
  76. package/dist/engine/change_coordinator.js.map +1 -1
  77. package/dist/engine/chinese_semantic_priority.d.ts +62 -0
  78. package/dist/engine/chinese_semantic_priority.d.ts.map +1 -0
  79. package/dist/engine/chinese_semantic_priority.js +153 -0
  80. package/dist/engine/chinese_semantic_priority.js.map +1 -0
  81. package/dist/engine/coding_readiness_gate.d.ts +46 -0
  82. package/dist/engine/coding_readiness_gate.d.ts.map +1 -0
  83. package/dist/engine/coding_readiness_gate.js +175 -0
  84. package/dist/engine/coding_readiness_gate.js.map +1 -0
  85. package/dist/engine/cognitive_anchor.d.ts.map +1 -1
  86. package/dist/engine/cognitive_anchor.js +7 -6
  87. package/dist/engine/cognitive_anchor.js.map +1 -1
  88. package/dist/engine/command_execution_contract.d.ts.map +1 -1
  89. package/dist/engine/command_execution_contract.js +13 -12
  90. package/dist/engine/command_execution_contract.js.map +1 -1
  91. package/dist/engine/confidence_scorer.d.ts.map +1 -1
  92. package/dist/engine/confidence_scorer.js +2 -1
  93. package/dist/engine/confidence_scorer.js.map +1 -1
  94. package/dist/engine/config_precedence_contract.d.ts.map +1 -1
  95. package/dist/engine/config_precedence_contract.js +9 -8
  96. package/dist/engine/config_precedence_contract.js.map +1 -1
  97. package/dist/engine/conflict_gate.d.ts.map +1 -1
  98. package/dist/engine/conflict_gate.js +4 -3
  99. package/dist/engine/conflict_gate.js.map +1 -1
  100. package/dist/engine/consumable_asset_registry.d.ts +4 -0
  101. package/dist/engine/consumable_asset_registry.d.ts.map +1 -1
  102. package/dist/engine/consumable_asset_registry.js +307 -0
  103. package/dist/engine/consumable_asset_registry.js.map +1 -1
  104. package/dist/engine/consumption_trace_store.d.ts +50 -0
  105. package/dist/engine/consumption_trace_store.d.ts.map +1 -0
  106. package/dist/engine/consumption_trace_store.js +84 -0
  107. package/dist/engine/consumption_trace_store.js.map +1 -0
  108. package/dist/engine/contract_guard.d.ts.map +1 -1
  109. package/dist/engine/contract_guard.js +7 -6
  110. package/dist/engine/contract_guard.js.map +1 -1
  111. package/dist/engine/contract_registry.d.ts +113 -0
  112. package/dist/engine/contract_registry.d.ts.map +1 -0
  113. package/dist/engine/contract_registry.js +1632 -0
  114. package/dist/engine/contract_registry.js.map +1 -0
  115. package/dist/engine/contract_state_store.d.ts +67 -0
  116. package/dist/engine/contract_state_store.d.ts.map +1 -0
  117. package/dist/engine/contract_state_store.js +167 -0
  118. package/dist/engine/contract_state_store.js.map +1 -0
  119. package/dist/engine/convention_detector.d.ts.map +1 -1
  120. package/dist/engine/convention_detector.js +4 -3
  121. package/dist/engine/convention_detector.js.map +1 -1
  122. package/dist/engine/core_engineering_principles.d.ts.map +1 -1
  123. package/dist/engine/core_engineering_principles.js +4 -14
  124. package/dist/engine/core_engineering_principles.js.map +1 -1
  125. package/dist/engine/core_experience_principle.d.ts +194 -0
  126. package/dist/engine/core_experience_principle.d.ts.map +1 -0
  127. package/dist/engine/core_experience_principle.js +349 -0
  128. package/dist/engine/core_experience_principle.js.map +1 -0
  129. package/dist/engine/debt_reporter.d.ts.map +1 -1
  130. package/dist/engine/debt_reporter.js +3 -2
  131. package/dist/engine/debt_reporter.js.map +1 -1
  132. package/dist/engine/debt_tracker.d.ts.map +1 -1
  133. package/dist/engine/debt_tracker.js +8 -7
  134. package/dist/engine/debt_tracker.js.map +1 -1
  135. package/dist/engine/debug_log.d.ts +4 -1
  136. package/dist/engine/debug_log.d.ts.map +1 -1
  137. package/dist/engine/debug_log.js +4 -6
  138. package/dist/engine/debug_log.js.map +1 -1
  139. package/dist/engine/debugger.d.ts.map +1 -1
  140. package/dist/engine/debugger.js +33 -3
  141. package/dist/engine/debugger.js.map +1 -1
  142. package/dist/engine/decision_contract.d.ts.map +1 -1
  143. package/dist/engine/decision_contract.js +4 -3
  144. package/dist/engine/decision_contract.js.map +1 -1
  145. package/dist/engine/degradation.d.ts +58 -0
  146. package/dist/engine/degradation.d.ts.map +1 -0
  147. package/dist/engine/degradation.js +74 -0
  148. package/dist/engine/degradation.js.map +1 -0
  149. package/dist/engine/delivery.d.ts.map +1 -1
  150. package/dist/engine/delivery.js +16 -15
  151. package/dist/engine/delivery.js.map +1 -1
  152. package/dist/engine/delivery_readiness.d.ts +70 -0
  153. package/dist/engine/delivery_readiness.d.ts.map +1 -0
  154. package/dist/engine/delivery_readiness.js +198 -0
  155. package/dist/engine/delivery_readiness.js.map +1 -0
  156. package/dist/engine/dependency_scanner.d.ts.map +1 -1
  157. package/dist/engine/dependency_scanner.js +6 -5
  158. package/dist/engine/dependency_scanner.js.map +1 -1
  159. package/dist/engine/deprecated_contract.d.ts +21 -0
  160. package/dist/engine/deprecated_contract.d.ts.map +1 -0
  161. package/dist/engine/deprecated_contract.js +14 -0
  162. package/dist/engine/deprecated_contract.js.map +1 -0
  163. package/dist/engine/detail_discipline.d.ts +40 -0
  164. package/dist/engine/detail_discipline.d.ts.map +1 -0
  165. package/dist/engine/detail_discipline.js +107 -0
  166. package/dist/engine/detail_discipline.js.map +1 -0
  167. package/dist/engine/developer_sovereignty.d.ts.map +1 -1
  168. package/dist/engine/developer_sovereignty.js +6 -5
  169. package/dist/engine/developer_sovereignty.js.map +1 -1
  170. package/dist/engine/diagnostic_registry.d.ts +64 -0
  171. package/dist/engine/diagnostic_registry.d.ts.map +1 -0
  172. package/dist/engine/diagnostic_registry.js +176 -0
  173. package/dist/engine/diagnostic_registry.js.map +1 -0
  174. package/dist/engine/diff_ownership.d.ts.map +1 -1
  175. package/dist/engine/diff_ownership.js +9 -8
  176. package/dist/engine/diff_ownership.js.map +1 -1
  177. package/dist/engine/diff_ownership_store.d.ts.map +1 -1
  178. package/dist/engine/diff_ownership_store.js +8 -7
  179. package/dist/engine/diff_ownership_store.js.map +1 -1
  180. package/dist/engine/documentation_governance.d.ts +55 -0
  181. package/dist/engine/documentation_governance.d.ts.map +1 -0
  182. package/dist/engine/documentation_governance.js +249 -0
  183. package/dist/engine/documentation_governance.js.map +1 -0
  184. package/dist/engine/dual_layer_mechanism_registry.d.ts +6 -4
  185. package/dist/engine/dual_layer_mechanism_registry.d.ts.map +1 -1
  186. package/dist/engine/dual_layer_mechanism_registry.js +731 -11
  187. package/dist/engine/dual_layer_mechanism_registry.js.map +1 -1
  188. package/dist/engine/enforcement_guard.d.ts +84 -0
  189. package/dist/engine/enforcement_guard.d.ts.map +1 -0
  190. package/dist/engine/enforcement_guard.js +319 -0
  191. package/dist/engine/enforcement_guard.js.map +1 -0
  192. package/dist/engine/escape_report.d.ts.map +1 -1
  193. package/dist/engine/escape_report.js +4 -3
  194. package/dist/engine/escape_report.js.map +1 -1
  195. package/dist/engine/evolution_regression_gate.d.ts +42 -0
  196. package/dist/engine/evolution_regression_gate.d.ts.map +1 -0
  197. package/dist/engine/evolution_regression_gate.js +159 -0
  198. package/dist/engine/evolution_regression_gate.js.map +1 -0
  199. package/dist/engine/existing_system_analysis.d.ts +37 -0
  200. package/dist/engine/existing_system_analysis.d.ts.map +1 -0
  201. package/dist/engine/existing_system_analysis.js +151 -0
  202. package/dist/engine/existing_system_analysis.js.map +1 -0
  203. package/dist/engine/exploration.d.ts.map +1 -1
  204. package/dist/engine/exploration.js +7 -6
  205. package/dist/engine/exploration.js.map +1 -1
  206. package/dist/engine/extension_contract.d.ts +50 -0
  207. package/dist/engine/extension_contract.d.ts.map +1 -0
  208. package/dist/engine/extension_contract.js +158 -0
  209. package/dist/engine/extension_contract.js.map +1 -0
  210. package/dist/engine/extension_platform_contracts.d.ts +712 -0
  211. package/dist/engine/extension_platform_contracts.d.ts.map +1 -0
  212. package/dist/engine/extension_platform_contracts.js +42 -0
  213. package/dist/engine/extension_platform_contracts.js.map +1 -0
  214. package/dist/engine/extension_scenario_registry.d.ts +30 -0
  215. package/dist/engine/extension_scenario_registry.d.ts.map +1 -0
  216. package/dist/engine/extension_scenario_registry.js +976 -0
  217. package/dist/engine/extension_scenario_registry.js.map +1 -0
  218. package/dist/engine/failure_classifier.d.ts.map +1 -1
  219. package/dist/engine/failure_classifier.js +9 -8
  220. package/dist/engine/failure_classifier.js.map +1 -1
  221. package/dist/engine/failure_report.d.ts +74 -0
  222. package/dist/engine/failure_report.d.ts.map +1 -0
  223. package/dist/engine/failure_report.js +143 -0
  224. package/dist/engine/failure_report.js.map +1 -0
  225. package/dist/engine/feasibility_checker.d.ts.map +1 -1
  226. package/dist/engine/feasibility_checker.js +5 -4
  227. package/dist/engine/feasibility_checker.js.map +1 -1
  228. package/dist/engine/first_principles.d.ts +35 -0
  229. package/dist/engine/first_principles.d.ts.map +1 -0
  230. package/dist/engine/first_principles.js +128 -0
  231. package/dist/engine/first_principles.js.map +1 -0
  232. package/dist/engine/{batch1_scenario_registry.d.ts → foundation_scenario_registry.d.ts} +15 -15
  233. package/dist/engine/foundation_scenario_registry.d.ts.map +1 -0
  234. package/dist/engine/{batch1_scenario_registry.js → foundation_scenario_registry.js} +22 -25
  235. package/dist/engine/foundation_scenario_registry.js.map +1 -0
  236. package/dist/engine/{batch1_scenario_runners.d.ts → foundation_scenario_runners.d.ts} +1 -1
  237. package/dist/engine/foundation_scenario_runners.d.ts.map +1 -0
  238. package/dist/engine/{batch1_scenario_runners.js → foundation_scenario_runners.js} +8 -7
  239. package/dist/engine/foundation_scenario_runners.js.map +1 -0
  240. package/dist/engine/git_deps.d.ts.map +1 -1
  241. package/dist/engine/git_deps.js +2 -1
  242. package/dist/engine/git_deps.js.map +1 -1
  243. package/dist/engine/governance_report.d.ts +9 -1
  244. package/dist/engine/governance_report.d.ts.map +1 -1
  245. package/dist/engine/governance_report.js +25 -10
  246. package/dist/engine/governance_report.js.map +1 -1
  247. package/dist/engine/impact_analyzer.d.ts.map +1 -1
  248. package/dist/engine/impact_analyzer.js +5 -4
  249. package/dist/engine/impact_analyzer.js.map +1 -1
  250. package/dist/engine/implementation_roadmap_registry.d.ts +1 -1
  251. package/dist/engine/implementation_roadmap_registry.d.ts.map +1 -1
  252. package/dist/engine/implementation_roadmap_registry.js +237 -92
  253. package/dist/engine/implementation_roadmap_registry.js.map +1 -1
  254. package/dist/engine/input_material_contract_registry.d.ts.map +1 -1
  255. package/dist/engine/input_material_contract_registry.js +4 -3
  256. package/dist/engine/input_material_contract_registry.js.map +1 -1
  257. package/dist/engine/instruction_contract.d.ts +68 -0
  258. package/dist/engine/instruction_contract.d.ts.map +1 -0
  259. package/dist/engine/instruction_contract.js +123 -0
  260. package/dist/engine/instruction_contract.js.map +1 -0
  261. package/dist/engine/intent_expander.d.ts.map +1 -1
  262. package/dist/engine/intent_expander.js +339 -1
  263. package/dist/engine/intent_expander.js.map +1 -1
  264. package/dist/engine/intent_router.d.ts +11 -2
  265. package/dist/engine/intent_router.d.ts.map +1 -1
  266. package/dist/engine/intent_router.js +121 -1
  267. package/dist/engine/intent_router.js.map +1 -1
  268. package/dist/engine/intent_signal_extractor.d.ts +3 -0
  269. package/dist/engine/intent_signal_extractor.d.ts.map +1 -1
  270. package/dist/engine/intent_signal_extractor.js +49 -0
  271. package/dist/engine/intent_signal_extractor.js.map +1 -1
  272. package/dist/engine/io_controller.d.ts.map +1 -1
  273. package/dist/engine/io_controller.js +8 -7
  274. package/dist/engine/io_controller.js.map +1 -1
  275. package/dist/engine/java_quality_guard.d.ts.map +1 -1
  276. package/dist/engine/java_quality_guard.js +5 -18
  277. package/dist/engine/java_quality_guard.js.map +1 -1
  278. package/dist/engine/job_manager.d.ts.map +1 -1
  279. package/dist/engine/job_manager.js +8 -7
  280. package/dist/engine/job_manager.js.map +1 -1
  281. package/dist/engine/knowledge_acceptance_registry.d.ts +35 -0
  282. package/dist/engine/knowledge_acceptance_registry.d.ts.map +1 -0
  283. package/dist/engine/knowledge_acceptance_registry.js +271 -0
  284. package/dist/engine/knowledge_acceptance_registry.js.map +1 -0
  285. package/dist/engine/knowledge_asset_audit.d.ts +65 -0
  286. package/dist/engine/knowledge_asset_audit.d.ts.map +1 -0
  287. package/dist/engine/knowledge_asset_audit.js +230 -0
  288. package/dist/engine/knowledge_asset_audit.js.map +1 -0
  289. package/dist/engine/knowledge_asset_consumer.d.ts +150 -0
  290. package/dist/engine/knowledge_asset_consumer.d.ts.map +1 -0
  291. package/dist/engine/knowledge_asset_consumer.js +279 -0
  292. package/dist/engine/knowledge_asset_consumer.js.map +1 -0
  293. package/dist/engine/knowledge_asset_generation_gate.d.ts +38 -0
  294. package/dist/engine/knowledge_asset_generation_gate.d.ts.map +1 -0
  295. package/dist/engine/knowledge_asset_generation_gate.js +131 -0
  296. package/dist/engine/knowledge_asset_generation_gate.js.map +1 -0
  297. package/dist/engine/knowledge_asset_migration.d.ts +117 -0
  298. package/dist/engine/knowledge_asset_migration.d.ts.map +1 -0
  299. package/dist/engine/knowledge_asset_migration.js +204 -0
  300. package/dist/engine/knowledge_asset_migration.js.map +1 -0
  301. package/dist/engine/knowledge_asset_schema.d.ts +97 -0
  302. package/dist/engine/knowledge_asset_schema.d.ts.map +1 -0
  303. package/dist/engine/knowledge_asset_schema.js +413 -0
  304. package/dist/engine/knowledge_asset_schema.js.map +1 -0
  305. package/dist/engine/knowledge_config_loader.d.ts.map +1 -1
  306. package/dist/engine/knowledge_config_loader.js +5 -4
  307. package/dist/engine/knowledge_config_loader.js.map +1 -1
  308. package/dist/engine/knowledge_consumption_snapshot.d.ts +91 -0
  309. package/dist/engine/knowledge_consumption_snapshot.d.ts.map +1 -0
  310. package/dist/engine/knowledge_consumption_snapshot.js +113 -0
  311. package/dist/engine/knowledge_consumption_snapshot.js.map +1 -0
  312. package/dist/engine/knowledge_evolution.d.ts +82 -0
  313. package/dist/engine/knowledge_evolution.d.ts.map +1 -0
  314. package/dist/engine/knowledge_evolution.js +272 -0
  315. package/dist/engine/knowledge_evolution.js.map +1 -0
  316. package/dist/engine/knowledge_lifecycle.d.ts +83 -0
  317. package/dist/engine/knowledge_lifecycle.d.ts.map +1 -0
  318. package/dist/engine/knowledge_lifecycle.js +247 -0
  319. package/dist/engine/knowledge_lifecycle.js.map +1 -0
  320. package/dist/engine/knowledge_manager.d.ts.map +1 -1
  321. package/dist/engine/knowledge_manager.js +9 -8
  322. package/dist/engine/knowledge_manager.js.map +1 -1
  323. package/dist/engine/knowledge_scenario_registry.d.ts +21 -0
  324. package/dist/engine/knowledge_scenario_registry.d.ts.map +1 -0
  325. package/dist/engine/knowledge_scenario_registry.js +337 -0
  326. package/dist/engine/knowledge_scenario_registry.js.map +1 -0
  327. package/dist/engine/knowledge_sovereignty.d.ts.map +1 -1
  328. package/dist/engine/knowledge_sovereignty.js +5 -4
  329. package/dist/engine/knowledge_sovereignty.js.map +1 -1
  330. package/dist/engine/knowledge_template_contracts.d.ts +244 -0
  331. package/dist/engine/knowledge_template_contracts.d.ts.map +1 -0
  332. package/dist/engine/knowledge_template_contracts.js +26 -0
  333. package/dist/engine/knowledge_template_contracts.js.map +1 -0
  334. package/dist/engine/language_policy.d.ts +78 -0
  335. package/dist/engine/language_policy.d.ts.map +1 -0
  336. package/dist/engine/language_policy.js +139 -0
  337. package/dist/engine/language_policy.js.map +1 -0
  338. package/dist/engine/language_policy_contract.d.ts +52 -0
  339. package/dist/engine/language_policy_contract.d.ts.map +1 -0
  340. package/dist/engine/language_policy_contract.js +78 -0
  341. package/dist/engine/language_policy_contract.js.map +1 -0
  342. package/dist/engine/llm_gateway.d.ts.map +1 -1
  343. package/dist/engine/llm_gateway.js +10 -9
  344. package/dist/engine/llm_gateway.js.map +1 -1
  345. package/dist/engine/local_docker_acceptance.d.ts +94 -0
  346. package/dist/engine/local_docker_acceptance.d.ts.map +1 -0
  347. package/dist/engine/local_docker_acceptance.js +312 -0
  348. package/dist/engine/local_docker_acceptance.js.map +1 -0
  349. package/dist/engine/logger.d.ts +64 -0
  350. package/dist/engine/logger.d.ts.map +1 -0
  351. package/dist/engine/logger.js +115 -0
  352. package/dist/engine/logger.js.map +1 -0
  353. package/dist/engine/main_path_integration_contract.d.ts.map +1 -1
  354. package/dist/engine/main_path_integration_contract.js +43 -42
  355. package/dist/engine/main_path_integration_contract.js.map +1 -1
  356. package/dist/engine/mechanism_contract_registry.d.ts.map +1 -1
  357. package/dist/engine/mechanism_contract_registry.js +448 -17
  358. package/dist/engine/mechanism_contract_registry.js.map +1 -1
  359. package/dist/engine/mechanism_family_registry.d.ts +48 -0
  360. package/dist/engine/mechanism_family_registry.d.ts.map +1 -0
  361. package/dist/engine/mechanism_family_registry.js +197 -0
  362. package/dist/engine/mechanism_family_registry.js.map +1 -0
  363. package/dist/engine/metric_governance.d.ts +51 -0
  364. package/dist/engine/metric_governance.d.ts.map +1 -0
  365. package/dist/engine/metric_governance.js +138 -0
  366. package/dist/engine/metric_governance.js.map +1 -0
  367. package/dist/engine/migration_guard.d.ts.map +1 -1
  368. package/dist/engine/migration_guard.js +6 -5
  369. package/dist/engine/migration_guard.js.map +1 -1
  370. package/dist/engine/mutation_audit.d.ts.map +1 -1
  371. package/dist/engine/mutation_audit.js +6 -5
  372. package/dist/engine/mutation_audit.js.map +1 -1
  373. package/dist/engine/observability.d.ts +11 -0
  374. package/dist/engine/observability.d.ts.map +1 -1
  375. package/dist/engine/observability.js +60 -8
  376. package/dist/engine/observability.js.map +1 -1
  377. package/dist/engine/onboarding.d.ts.map +1 -1
  378. package/dist/engine/onboarding.js +17 -16
  379. package/dist/engine/onboarding.js.map +1 -1
  380. package/dist/engine/plan_proposal_gate.d.ts +131 -0
  381. package/dist/engine/plan_proposal_gate.d.ts.map +1 -0
  382. package/dist/engine/plan_proposal_gate.js +340 -0
  383. package/dist/engine/plan_proposal_gate.js.map +1 -0
  384. package/dist/engine/platform_context.d.ts +44 -0
  385. package/dist/engine/platform_context.d.ts.map +1 -0
  386. package/dist/engine/platform_context.js +165 -0
  387. package/dist/engine/platform_context.js.map +1 -0
  388. package/dist/engine/policy_drift_detector.d.ts +20 -0
  389. package/dist/engine/policy_drift_detector.d.ts.map +1 -1
  390. package/dist/engine/policy_drift_detector.js +85 -5
  391. package/dist/engine/policy_drift_detector.js.map +1 -1
  392. package/dist/engine/regression_matrix.d.ts.map +1 -1
  393. package/dist/engine/regression_matrix.js +15 -14
  394. package/dist/engine/regression_matrix.js.map +1 -1
  395. package/dist/engine/release_compatibility.d.ts +62 -0
  396. package/dist/engine/release_compatibility.d.ts.map +1 -0
  397. package/dist/engine/release_compatibility.js +145 -0
  398. package/dist/engine/release_compatibility.js.map +1 -0
  399. package/dist/engine/release_gate.d.ts +29 -0
  400. package/dist/engine/release_gate.d.ts.map +1 -0
  401. package/dist/engine/release_gate.js +675 -0
  402. package/dist/engine/release_gate.js.map +1 -0
  403. package/dist/engine/release_gate_scenario_registry.d.ts +50 -0
  404. package/dist/engine/release_gate_scenario_registry.d.ts.map +1 -0
  405. package/dist/engine/release_gate_scenario_registry.js +514 -0
  406. package/dist/engine/release_gate_scenario_registry.js.map +1 -0
  407. package/dist/engine/release_readiness_gate.d.ts +36 -0
  408. package/dist/engine/release_readiness_gate.d.ts.map +1 -0
  409. package/dist/engine/release_readiness_gate.js +1050 -0
  410. package/dist/engine/release_readiness_gate.js.map +1 -0
  411. package/dist/engine/retention_policy.d.ts +46 -0
  412. package/dist/engine/retention_policy.d.ts.map +1 -0
  413. package/dist/engine/retention_policy.js +124 -0
  414. package/dist/engine/retention_policy.js.map +1 -0
  415. package/dist/engine/risk_sampler.d.ts.map +1 -1
  416. package/dist/engine/risk_sampler.js +4 -3
  417. package/dist/engine/risk_sampler.js.map +1 -1
  418. package/dist/engine/runtime_safety.d.ts.map +1 -1
  419. package/dist/engine/runtime_safety.js +18 -17
  420. package/dist/engine/runtime_safety.js.map +1 -1
  421. package/dist/engine/scaffolder.d.ts.map +1 -1
  422. package/dist/engine/scaffolder.js +4 -3
  423. package/dist/engine/scaffolder.js.map +1 -1
  424. package/dist/engine/scope_lease.d.ts.map +1 -1
  425. package/dist/engine/scope_lease.js +4 -3
  426. package/dist/engine/scope_lease.js.map +1 -1
  427. package/dist/engine/semantic_evidence.d.ts.map +1 -1
  428. package/dist/engine/semantic_evidence.js +4 -3
  429. package/dist/engine/semantic_evidence.js.map +1 -1
  430. package/dist/engine/state_fact_classifier.d.ts +47 -0
  431. package/dist/engine/state_fact_classifier.d.ts.map +1 -0
  432. package/dist/engine/state_fact_classifier.js +158 -0
  433. package/dist/engine/state_fact_classifier.js.map +1 -0
  434. package/dist/engine/state_update_bypass.d.ts +19 -0
  435. package/dist/engine/state_update_bypass.d.ts.map +1 -0
  436. package/dist/engine/state_update_bypass.js +17 -0
  437. package/dist/engine/state_update_bypass.js.map +1 -0
  438. package/dist/engine/task_context.d.ts +25 -3
  439. package/dist/engine/task_context.d.ts.map +1 -1
  440. package/dist/engine/task_context.js +132 -35
  441. package/dist/engine/task_context.js.map +1 -1
  442. package/dist/engine/task_planner.d.ts.map +1 -1
  443. package/dist/engine/task_planner.js +6 -5
  444. package/dist/engine/task_planner.js.map +1 -1
  445. package/dist/engine/team_awareness.d.ts.map +1 -1
  446. package/dist/engine/team_awareness.js +2 -1
  447. package/dist/engine/team_awareness.js.map +1 -1
  448. package/dist/engine/technology_decision.d.ts +38 -0
  449. package/dist/engine/technology_decision.d.ts.map +1 -0
  450. package/dist/engine/technology_decision.js +120 -0
  451. package/dist/engine/technology_decision.js.map +1 -0
  452. package/dist/engine/template_manifest_io.d.ts +47 -0
  453. package/dist/engine/template_manifest_io.d.ts.map +1 -0
  454. package/dist/engine/template_manifest_io.js +151 -0
  455. package/dist/engine/template_manifest_io.js.map +1 -0
  456. package/dist/engine/template_mechanism_auditor.d.ts.map +1 -1
  457. package/dist/engine/template_mechanism_auditor.js +5 -4
  458. package/dist/engine/template_mechanism_auditor.js.map +1 -1
  459. package/dist/engine/template_sync.d.ts +98 -0
  460. package/dist/engine/template_sync.d.ts.map +1 -0
  461. package/dist/engine/template_sync.js +355 -0
  462. package/dist/engine/template_sync.js.map +1 -0
  463. package/dist/engine/test_generator.d.ts.map +1 -1
  464. package/dist/engine/test_generator.js +5 -4
  465. package/dist/engine/test_generator.js.map +1 -1
  466. package/dist/engine/test_quality.d.ts.map +1 -1
  467. package/dist/engine/test_quality.js +5 -4
  468. package/dist/engine/test_quality.js.map +1 -1
  469. package/dist/engine/test_strategy.d.ts +58 -0
  470. package/dist/engine/test_strategy.d.ts.map +1 -0
  471. package/dist/engine/test_strategy.js +93 -0
  472. package/dist/engine/test_strategy.js.map +1 -0
  473. package/dist/engine/tool_invocation_contract_registry.d.ts.map +1 -1
  474. package/dist/engine/tool_invocation_contract_registry.js +43 -32
  475. package/dist/engine/tool_invocation_contract_registry.js.map +1 -1
  476. package/dist/engine/traceability.d.ts.map +1 -1
  477. package/dist/engine/traceability.js +6 -5
  478. package/dist/engine/traceability.js.map +1 -1
  479. package/dist/engine/user_feedback_contract.d.ts.map +1 -1
  480. package/dist/engine/user_feedback_contract.js +81 -19
  481. package/dist/engine/user_feedback_contract.js.map +1 -1
  482. package/dist/engine/user_promise.d.ts +67 -0
  483. package/dist/engine/user_promise.d.ts.map +1 -0
  484. package/dist/engine/user_promise.js +436 -0
  485. package/dist/engine/user_promise.js.map +1 -0
  486. package/dist/engine/verification_contract.d.ts +132 -0
  487. package/dist/engine/verification_contract.d.ts.map +1 -0
  488. package/dist/engine/verification_contract.js +296 -0
  489. package/dist/engine/verification_contract.js.map +1 -0
  490. package/dist/engine/verifier.d.ts +6 -10
  491. package/dist/engine/verifier.d.ts.map +1 -1
  492. package/dist/engine/verifier.js +149 -1
  493. package/dist/engine/verifier.js.map +1 -1
  494. package/dist/engine/workflow_contract_registry.d.ts.map +1 -1
  495. package/dist/engine/workflow_contract_registry.js +127 -10
  496. package/dist/engine/workflow_contract_registry.js.map +1 -1
  497. package/dist/engine/workflow_template_pack.d.ts +71 -0
  498. package/dist/engine/workflow_template_pack.d.ts.map +1 -0
  499. package/dist/engine/workflow_template_pack.js +246 -0
  500. package/dist/engine/workflow_template_pack.js.map +1 -0
  501. package/dist/engine/workspace_lease.d.ts +69 -0
  502. package/dist/engine/workspace_lease.d.ts.map +1 -0
  503. package/dist/engine/workspace_lease.js +153 -0
  504. package/dist/engine/workspace_lease.js.map +1 -0
  505. package/dist/engine/workspace_resumer.d.ts.map +1 -1
  506. package/dist/engine/workspace_resumer.js +9 -8
  507. package/dist/engine/workspace_resumer.js.map +1 -1
  508. package/dist/engine/zero_config_init.d.ts.map +1 -1
  509. package/dist/engine/zero_config_init.js +16 -15
  510. package/dist/engine/zero_config_init.js.map +1 -1
  511. package/dist/git/operations.d.ts.map +1 -1
  512. package/dist/git/operations.js +18 -17
  513. package/dist/git/operations.js.map +1 -1
  514. package/dist/index.js +10 -9
  515. package/dist/index.js.map +1 -1
  516. package/dist/knowledge/conflict_detector.d.ts.map +1 -1
  517. package/dist/knowledge/conflict_detector.js +2 -1
  518. package/dist/knowledge/conflict_detector.js.map +1 -1
  519. package/dist/knowledge/health_checker.d.ts.map +1 -1
  520. package/dist/knowledge/health_checker.js +5 -4
  521. package/dist/knowledge/health_checker.js.map +1 -1
  522. package/dist/knowledge/index_manager.js +4 -4
  523. package/dist/knowledge/index_manager.js.map +1 -1
  524. package/dist/knowledge/loader.d.ts.map +1 -1
  525. package/dist/knowledge/loader.js +20 -14
  526. package/dist/knowledge/loader.js.map +1 -1
  527. package/dist/knowledge/writer.d.ts.map +1 -1
  528. package/dist/knowledge/writer.js +7 -6
  529. package/dist/knowledge/writer.js.map +1 -1
  530. package/dist/types.d.ts +34 -2
  531. package/dist/types.d.ts.map +1 -1
  532. package/package.json +13 -4
  533. package/templates/knowledge/acceptance_templates/Bug/345/210/206/346/236/220/346/250/241/347/211/210.md +27 -3
  534. package/templates/knowledge/acceptance_templates/POC/347/273/223/350/256/272/346/250/241/347/211/210.md +27 -3
  535. 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 +30 -3
  536. package/templates/knowledge/acceptance_templates//345/216/237/345/236/213/350/257/264/346/230/216/346/250/241/347/211/210.md +31 -3
  537. package/templates/knowledge/acceptance_templates//345/220/216/347/253/257API/351/252/214/346/224/266/346/270/205/345/215/225.md +29 -3
  538. package/templates/knowledge/acceptance_templates//345/256/211/345/205/250/345/256/241/350/256/241/346/250/241/347/211/210.md +27 -3
  539. package/templates/knowledge/acceptance_templates//346/200/247/350/203/275/345/210/206/346/236/220/346/250/241/347/211/210.md +27 -3
  540. 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 +30 -3
  541. 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 +26 -3
  542. package/templates/knowledge/acceptance_templates//346/216/245/345/217/243/350/256/276/350/256/241/346/250/241/347/211/210.md +27 -3
  543. package/templates/knowledge/acceptance_templates//346/225/205/351/232/234/345/244/215/347/233/230/346/250/241/347/211/210.md +28 -3
  544. 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 +26 -3
  545. 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 +31 -3
  546. package/templates/knowledge/acceptance_templates//346/236/266/346/236/204/350/256/276/350/256/241/346/250/241/347/211/210.md +27 -3
  547. package/templates/knowledge/acceptance_templates//346/265/213/350/257/225/350/256/241/345/210/222/346/250/241/347/211/210.md +27 -3
  548. package/templates/knowledge/acceptance_templates//350/257/246/347/273/206/350/256/276/350/256/241/346/250/241/347/211/210.md +26 -3
  549. package/templates/knowledge/acceptance_templates//350/277/201/347/247/273/350/257/204/344/274/260/346/250/241/347/211/210.md +27 -3
  550. 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 +30 -3
  551. package/templates/knowledge/acceptance_templates//351/207/215/346/236/204/346/226/271/346/241/210/346/250/241/347/211/210.md +27 -3
  552. package/templates/knowledge/acceptance_templates//351/234/200/346/261/202/345/210/206/346/236/220/346/250/241/347/211/210.md +27 -3
  553. 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 +29 -0
  554. package/templates/knowledge/checklists//344/274/232/350/257/235/346/201/242/345/244/215.md +30 -8
  555. 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 +30 -0
  556. 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 +29 -0
  557. 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 +30 -0
  558. package/templates/knowledge/checklists//351/232/220/347/247/201/345/256/241/346/237/245/346/270/205/345/215/225.md +29 -0
  559. package/templates/knowledge/checklists//351/252/214/350/257/201/351/252/214/346/224/266/346/270/205/345/215/225.md +29 -0
  560. package/templates/knowledge/domain//345/244/232/347/247/237/346/210/267.md +28 -3
  561. package/templates/knowledge/domain//345/256/241/350/256/241/346/227/245/345/277/227.md +27 -3
  562. package/templates/knowledge/domain//345/257/274/345/205/245/345/257/274/345/207/272/350/247/204/345/210/231.md +30 -3
  563. package/templates/knowledge/domain//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +32 -3
  564. package/templates/knowledge/domain//346/212/245/350/241/250/347/273/237/350/256/241.md +31 -3
  565. package/templates/knowledge/domain//346/224/257/344/273/230/350/247/204/345/210/231.md +31 -3
  566. package/templates/knowledge/domain//346/225/260/346/215/256/346/235/203/351/231/220.md +28 -3
  567. package/templates/knowledge/domain//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +30 -3
  568. package/templates/knowledge/domain//351/200/232/347/237/245/350/247/204/345/210/231.md +31 -3
  569. package/templates/knowledge/patterns/core/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +24 -7
  570. package/templates/knowledge/patterns/core/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +25 -7
  571. package/templates/knowledge/patterns/core/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +24 -7
  572. 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 +24 -7
  573. package/templates/knowledge/patterns/core//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +25 -7
  574. 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 +24 -7
  575. package/templates/knowledge/patterns/core//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +25 -7
  576. package/templates/knowledge/patterns/core//345/206/262/347/252/201/351/227/250/347/246/201.md +24 -7
  577. package/templates/knowledge/patterns/core//345/206/263/347/255/226/347/275/221/345/205/263.md +26 -7
  578. package/templates/knowledge/patterns/core//345/217/230/345/274/202/345/256/241/350/256/241.md +25 -7
  579. package/templates/knowledge/patterns/core//345/233/236/345/275/222/347/237/251/351/230/265.md +24 -7
  580. package/templates/knowledge/patterns/core//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +24 -7
  581. package/templates/knowledge/patterns/core//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +24 -7
  582. package/templates/knowledge/patterns/core//345/271/266/345/217/221/351/224/201.md +26 -7
  583. package/templates/knowledge/patterns/core//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +26 -7
  584. package/templates/knowledge/patterns/core//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +24 -7
  585. 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 +25 -7
  586. package/templates/knowledge/patterns/core//346/265/201/345/274/217/345/277/203/350/267/263.md +25 -7
  587. package/templates/knowledge/patterns/core//347/237/245/350/257/206/344/270/273/346/235/203.md +25 -7
  588. package/templates/knowledge/patterns/core//350/257/255/344/271/211/350/257/201/346/215/256.md +24 -7
  589. package/templates/knowledge/patterns/core//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +25 -7
  590. package/templates/knowledge/patterns/core//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +24 -7
  591. package/templates/knowledge/patterns/core//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +24 -7
  592. package/templates/knowledge/procedures/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +29 -3
  593. 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 +33 -0
  594. package/templates/knowledge/procedures//344/273/243/347/240/201/351/227/250/347/246/201/346/265/201/347/250/213.md +30 -3
  595. package/templates/knowledge/procedures//344/273/273/345/212/241/346/213/206/350/247/243/346/265/201/347/250/213.md +30 -3
  596. package/templates/knowledge/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +30 -3
  597. package/templates/knowledge/procedures//345/221/275/344/273/244/346/211/247/350/241/214/346/265/201/347/250/213.md +34 -0
  598. 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 +30 -3
  599. package/templates/knowledge/procedures//345/267/245/345/205/267/350/260/203/347/224/250/346/265/201/347/250/213.md +34 -0
  600. package/templates/knowledge/procedures//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +30 -3
  601. package/templates/knowledge/procedures//346/204/217/345/233/276/350/267/257/347/224/261/346/265/201/347/250/213.md +34 -0
  602. 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 +30 -3
  603. 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 +29 -3
  604. 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 +99 -0
  605. 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 +95 -0
  606. package/templates/knowledge/procedures//346/236/266/346/236/204/350/256/276/350/256/241/346/265/201/347/250/213.md +30 -3
  607. 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 +30 -3
  608. 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 +91 -0
  609. 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 +30 -3
  610. 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 +97 -0
  611. 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 +30 -3
  612. 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 +30 -3
  613. package/templates/knowledge/procedures//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/347/250/213.md +30 -3
  614. 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 +33 -0
  615. 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 +30 -3
  616. package/templates/knowledge/procedures//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md +30 -3
  617. package/templates/knowledge/procedures//350/257/246/347/273/206/350/256/276/350/256/241/346/265/201/347/250/213.md +30 -3
  618. package/templates/knowledge/procedures//350/260/203/350/257/225/346/216/222/346/237/245/346/265/201/347/250/213.md +30 -3
  619. package/templates/knowledge/procedures//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +30 -3
  620. package/templates/knowledge/procedures//351/203/250/347/275/262/345/217/221/345/270/203/346/265/201/347/250/213.md +30 -3
  621. package/templates/knowledge/procedures//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +30 -3
  622. package/templates/knowledge/procedures//351/233/206/346/210/220/351/252/214/350/257/201/346/265/201/347/250/213.md +30 -3
  623. package/templates/knowledge/procedures//351/234/200/346/261/202/346/276/204/346/270/205/346/265/201/347/250/213.md +30 -3
  624. package/templates/knowledge/procedures//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +30 -3
  625. package/templates/knowledge/procedures//351/252/214/350/257/201/350/256/241/345/210/222/346/265/201/347/250/213.md +30 -3
  626. 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 +24 -3
  627. package/templates/knowledge/review_rules//345/256/211/345/205/250/345/256/241/346/237/245/350/247/204/345/210/231.md +24 -3
  628. package/templates/knowledge/review_rules//345/271/266/345/217/221/345/256/241/346/237/245/350/247/204/345/210/231.md +23 -3
  629. package/templates/knowledge/review_rules//346/200/247/350/203/275/345/256/241/346/237/245/350/247/204/345/210/231.md +24 -3
  630. 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 +23 -3
  631. package/templates/knowledge/review_rules//346/236/266/346/236/204/345/256/241/346/237/245/350/247/204/345/210/231.md +24 -3
  632. package/templates/knowledge/review_rules//350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +24 -3
  633. package/templates/knowledge/rules//344/272/247/347/211/251/345/245/221/347/272/246/350/247/204/345/210/231.md +36 -0
  634. 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 +65 -0
  635. package/templates/knowledge/rules//345/221/275/344/273/244/346/211/247/350/241/214/350/247/204/345/210/231.md +36 -0
  636. 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 +36 -0
  637. 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 +38 -0
  638. package/templates/knowledge/rules//345/267/245/345/205/267/350/260/203/347/224/250/350/247/204/345/210/231.md +36 -0
  639. package/templates/knowledge/rules//346/204/217/345/233/276/350/267/257/347/224/261/350/247/204/345/210/231.md +36 -0
  640. 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 +36 -0
  641. 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 +38 -0
  642. 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 +64 -0
  643. 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 +36 -0
  644. 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 +49 -0
  645. package/templates/knowledge/rules//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +50 -0
  646. 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 +35 -0
  647. 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 +36 -0
  648. package/templates/knowledge/rules//346/274/224/350/277/233/345/233/236/345/275/222/350/247/204/345/210/231.md +51 -0
  649. 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 +74 -0
  650. 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 +35 -0
  651. 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 +36 -0
  652. 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 +61 -0
  653. 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 +73 -0
  654. package/templates/knowledge/rules//347/273/206/350/212/202/347/272/252/345/276/213/350/247/204/345/210/231.md +67 -0
  655. 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 +66 -0
  656. 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 +59 -0
  657. 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 +38 -0
  658. 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 +36 -0
  659. 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 +35 -0
  660. 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 +36 -0
  661. 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 +36 -0
  662. package/templates/knowledge/rules//351/252/214/350/257/201/345/245/221/347/272/246/350/247/204/345/210/231.md +36 -0
  663. package/templates/knowledge/templates//345/256/241/346/237/245/346/221/230/350/246/201.md +26 -7
  664. package/templates/patterns/API/350/256/276/350/256/241/350/247/204/350/214/203.md +30 -3
  665. package/templates/patterns/Docker/351/203/250/347/275/262/350/247/204/350/214/203.md +29 -3
  666. package/templates/patterns/Git/346/223/215/344/275/234/350/247/204/350/214/203.md +33 -3
  667. package/templates/patterns/N/345/212/2401/346/237/245/350/257/242/350/247/204/350/214/203.md +31 -3
  668. package/templates/patterns/React/345/210/227/350/241/250/350/241/250/346/240/274/350/247/204/350/214/203.md +30 -3
  669. package/templates/patterns/React/346/216/245/345/217/243/351/233/206/346/210/220/350/247/204/350/214/203.md +31 -3
  670. package/templates/patterns/React/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +31 -3
  671. package/templates/patterns/React/347/273/204/344/273/266/350/247/204/350/214/203.md +30 -3
  672. package/templates/patterns/React/350/241/250/345/215/225/350/247/204/350/214/203.md +30 -3
  673. package/templates/patterns/React/350/267/257/347/224/261/350/247/204/350/214/203.md +31 -3
  674. package/templates/patterns/Schema/345/205/274/345/256/271/350/247/204/350/214/203.md +30 -3
  675. package/templates/patterns/Vue/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +29 -3
  676. package/templates/patterns/Vue/347/273/204/344/273/266/350/247/204/350/214/203.md +33 -3
  677. package/templates/patterns/Vue/350/267/257/347/224/261/350/247/204/350/214/203.md +28 -3
  678. package/templates/patterns//344/272/213/344/273/266/351/251/261/345/212/250/350/247/204/350/214/203.md +32 -3
  679. package/templates/patterns//344/272/213/345/212/241/346/250/241/345/274/217/350/247/204/350/214/203.md +31 -3
  680. package/templates/patterns//344/274/230/351/233/205/345/201/234/346/234/272/350/247/204/350/214/203.md +31 -3
  681. package/templates/patterns//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +30 -3
  682. package/templates/patterns//345/210/206/351/241/265/346/237/245/350/257/242/350/247/204/350/214/203.md +34 -3
  683. package/templates/patterns//345/211/215/347/253/257/346/200/247/350/203/275/350/247/204/350/214/203.md +32 -3
  684. package/templates/patterns//345/221/275/345/220/215/350/247/204/350/214/203.md +30 -3
  685. package/templates/patterns//345/233/275/351/231/205/345/214/226/350/247/204/350/214/203.md +31 -3
  686. package/templates/patterns//345/242/236/345/210/240/346/224/271/346/237/245/350/247/204/350/214/203.md +31 -3
  687. package/templates/patterns//345/244/226/351/203/250/344/276/235/350/265/226/350/247/204/350/214/203.md +31 -3
  688. package/templates/patterns//345/245/221/347/272/246/345/205/274/345/256/271/350/247/204/350/214/203.md +28 -3
  689. package/templates/patterns//345/256/232/346/227/266/344/273/273/345/212/241/350/247/204/350/214/203.md +32 -3
  690. package/templates/patterns//345/256/236/346/227/266/346/216/250/351/200/201/350/247/204/350/214/203.md +31 -3
  691. package/templates/patterns//345/267/245/347/250/213/347/272/252/345/276/213.md +30 -3
  692. package/templates/patterns//345/271/266/345/217/221/346/216/247/345/210/266/350/247/204/350/214/203.md +34 -3
  693. package/templates/patterns//345/274/202/346/255/245/345/257/274/345/207/272/350/247/204/350/214/203.md +31 -3
  694. package/templates/patterns//346/216/245/345/217/243/345/245/221/347/272/246/350/247/204/350/214/203.md +29 -3
  695. package/templates/patterns//346/220/234/347/264/242/346/250/241/345/274/217/350/247/204/350/214/203.md +33 -3
  696. package/templates/patterns//346/225/260/346/215/256/351/232/220/347/247/201/350/247/204/350/214/203.md +34 -3
  697. package/templates/patterns//346/226/207/344/273/266/344/270/212/344/274/240/350/247/204/350/214/203.md +30 -3
  698. package/templates/patterns//346/227/240/351/232/234/347/242/215/350/247/204/350/214/203.md +30 -3
  699. package/templates/patterns//346/227/245/345/277/227/350/247/204/350/214/203.md +31 -3
  700. package/templates/patterns//346/235/203/351/231/220/350/256/244/350/257/201/350/247/204/350/214/203.md +34 -3
  701. package/templates/patterns//346/236/266/346/236/204/347/272/242/347/272/277.md +28 -3
  702. package/templates/patterns//346/265/213/350/257/225/350/264/250/351/207/217/350/247/204/350/214/203.md +30 -3
  703. package/templates/patterns//347/206/224/346/226/255/351/231/215/347/272/247/350/247/204/350/214/203.md +32 -3
  704. package/templates/patterns//347/212/266/346/200/201/346/265/201/350/275/254/350/247/204/350/214/203.md +29 -3
  705. package/templates/patterns//347/272/246/346/235/237/345/256/236/347/216/260/350/247/204/350/214/203.md +32 -3
  706. package/templates/patterns//347/274/223/345/255/230/347/255/226/347/225/245/350/247/204/350/214/203.md +31 -3
  707. package/templates/patterns//347/274/226/347/240/201/350/264/250/351/207/217/350/247/204/350/214/203.md +30 -3
  708. package/templates/patterns//347/274/272/351/231/267/347/256/241/347/220/206/350/247/204/350/214/203.md +29 -3
  709. package/templates/patterns//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +30 -3
  710. package/templates/patterns//350/276/223/345/205/245/346/240/241/351/252/214/350/247/204/350/214/203.md +31 -3
  711. package/templates/patterns//351/224/231/350/257/257/345/244/204/347/220/206/350/247/204/350/214/203.md +31 -3
  712. package/templates/patterns//351/224/231/350/257/257/350/276/271/347/225/214/350/247/204/350/214/203.md +33 -3
  713. 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 +30 -3
  714. package/dist/engine/batch1_manifest.d.ts.map +0 -1
  715. package/dist/engine/batch1_manifest.js.map +0 -1
  716. package/dist/engine/batch1_scenario_registry.d.ts.map +0 -1
  717. package/dist/engine/batch1_scenario_registry.js.map +0 -1
  718. package/dist/engine/batch1_scenario_runners.d.ts.map +0 -1
  719. package/dist/engine/batch1_scenario_runners.js.map +0 -1
@@ -0,0 +1,69 @@
1
+ /**
2
+ * 工作区隔离 — 问题二十八 (Workspace Isolation / Concurrency Contract)。
3
+ *
4
+ * 核心规则:
5
+ * - 同 scope code_write 冲突必须 blocked 或 require_human
6
+ * - delivery 必须互斥
7
+ * - lease active/conflicted 不得交付
8
+ * - out-of-scope write 必须 blocked
9
+ */
10
+ import { type DiagnosticEvent } from "./diagnostic_registry.js";
11
+ export type LeaseType = "code_write" | "delivery" | "output_artifact";
12
+ export type LeaseStatus = "active" | "released" | "expired" | "conflicted";
13
+ export interface WorkspaceLease {
14
+ lease_id: string;
15
+ task_id: string;
16
+ lease_type: LeaseType;
17
+ scope_paths: string[];
18
+ status: LeaseStatus;
19
+ acquired_at: string;
20
+ expires_at?: string;
21
+ diagnostic_event: DiagnosticEvent | null;
22
+ }
23
+ export interface WorkspaceIsolationReport {
24
+ report_id: string;
25
+ task_id: string;
26
+ active_leases: WorkspaceLease[];
27
+ conflicts: LeaseConflict[];
28
+ out_of_scope_writes: Array<{
29
+ path: string;
30
+ allowed_paths: string[];
31
+ }>;
32
+ delivery_blocked: boolean;
33
+ evaluated_at: string;
34
+ }
35
+ export interface LeaseConflict {
36
+ lease_a_id: string;
37
+ lease_b_id: string;
38
+ conflict_path: string;
39
+ conflict_type: "scope_overlap" | "delivery_overlap";
40
+ resolved: boolean;
41
+ }
42
+ /** 获取 lease */
43
+ export declare function getLease(leaseId: string): WorkspaceLease | undefined;
44
+ /** 列出所有活跃 lease */
45
+ export declare function listActiveLeases(): WorkspaceLease[];
46
+ /**
47
+ * 尝试获取 lease。
48
+ * 如果同 scope 有冲突,返回冲突信息。
49
+ */
50
+ export declare function acquireLease(taskId: string, leaseType: LeaseType, scopePaths: string[]): {
51
+ lease: WorkspaceLease | null;
52
+ conflicts: LeaseConflict[];
53
+ };
54
+ /** 释放 lease */
55
+ export declare function releaseLease(leaseId: string): boolean;
56
+ /**
57
+ * 检查是否超出 scope 写入。
58
+ */
59
+ export declare function checkOutOfScopeWrite(taskId: string, targetPath: string, allowedPaths: string[]): {
60
+ allowed: boolean;
61
+ reason?: string;
62
+ };
63
+ /**
64
+ * 生成工作区隔离报告。
65
+ */
66
+ export declare function generateIsolationReport(taskId: string): WorkspaceIsolationReport;
67
+ /** 重置 lease 存储(测试用) */
68
+ export declare function resetLeaseStore(): void;
69
+ //# sourceMappingURL=workspace_lease.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace_lease.d.ts","sourceRoot":"","sources":["../../src/engine/workspace_lease.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEvF,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,iBAAiB,CAAC;AACtE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,YAAY,CAAC;AAE3E,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,SAAS,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,eAAe,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,mBAAmB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACtE,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,eAAe,GAAG,kBAAkB,CAAC;IACpD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAKD,eAAe;AACf,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEpE;AAED,mBAAmB;AACnB,wBAAgB,gBAAgB,IAAI,cAAc,EAAE,CAEnD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAAE,GACnB;IAAE,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,aAAa,EAAE,CAAA;CAAE,CAqE9D;AAED,eAAe;AACf,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CASrD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EAAE,GACrB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CASvC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB,CAyChF;AAED,uBAAuB;AACvB,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * 工作区隔离 — 问题二十八 (Workspace Isolation / Concurrency Contract)。
3
+ *
4
+ * 核心规则:
5
+ * - 同 scope code_write 冲突必须 blocked 或 require_human
6
+ * - delivery 必须互斥
7
+ * - lease active/conflicted 不得交付
8
+ * - out-of-scope write 必须 blocked
9
+ */
10
+ import { createDiagnosticEvent } from "./diagnostic_registry.js";
11
+ /** 内存存储 */
12
+ const leaseStore = new Map();
13
+ /** 获取 lease */
14
+ export function getLease(leaseId) {
15
+ return leaseStore.get(leaseId);
16
+ }
17
+ /** 列出所有活跃 lease */
18
+ export function listActiveLeases() {
19
+ return [...leaseStore.values()].filter((l) => l.status === "active");
20
+ }
21
+ /**
22
+ * 尝试获取 lease。
23
+ * 如果同 scope 有冲突,返回冲突信息。
24
+ */
25
+ export function acquireLease(taskId, leaseType, scopePaths) {
26
+ const conflicts = [];
27
+ const leaseId = `wl-${taskId}-${Date.now()}`;
28
+ // 检查冲突
29
+ const activeLeases = listActiveLeases();
30
+ for (const existing of activeLeases) {
31
+ if (existing.task_id === taskId)
32
+ continue;
33
+ // 同 scope 重叠检查
34
+ const overlap = existing.scope_paths.some((p) => scopePaths.some((sp) => p === sp || p.startsWith(sp + "/") || sp.startsWith(p + "/")));
35
+ if (overlap) {
36
+ if (leaseType === "delivery" || existing.lease_type === "delivery") {
37
+ // delivery 必须互斥
38
+ conflicts.push({
39
+ lease_a_id: existing.lease_id,
40
+ lease_b_id: leaseId,
41
+ conflict_path: existing.scope_paths.find((p) => scopePaths.some((sp) => p === sp || p.startsWith(sp + "/"))) ?? "unknown",
42
+ conflict_type: "delivery_overlap",
43
+ resolved: false,
44
+ });
45
+ }
46
+ else if (leaseType === "code_write" && existing.lease_type === "code_write") {
47
+ // code_write 同文件冲突
48
+ conflicts.push({
49
+ lease_a_id: existing.lease_id,
50
+ lease_b_id: leaseId,
51
+ conflict_path: existing.scope_paths.find((p) => scopePaths.some((sp) => p === sp)) ?? "unknown",
52
+ conflict_type: "scope_overlap",
53
+ resolved: false,
54
+ });
55
+ }
56
+ }
57
+ }
58
+ if (conflicts.length > 0) {
59
+ // 创建冲突 lease
60
+ const diagEvent = createDiagnosticEvent("SF-WORKSPACE-0001", { taskId, leaseType });
61
+ const lease = {
62
+ lease_id: leaseId,
63
+ task_id: taskId,
64
+ lease_type: leaseType,
65
+ scope_paths: scopePaths,
66
+ status: "conflicted",
67
+ acquired_at: new Date().toISOString(),
68
+ diagnostic_event: diagEvent,
69
+ };
70
+ leaseStore.set(leaseId, lease);
71
+ return { lease, conflicts };
72
+ }
73
+ // 无冲突,创建活跃 lease
74
+ const lease = {
75
+ lease_id: leaseId,
76
+ task_id: taskId,
77
+ lease_type: leaseType,
78
+ scope_paths: scopePaths,
79
+ status: "active",
80
+ acquired_at: new Date().toISOString(),
81
+ diagnostic_event: null,
82
+ };
83
+ leaseStore.set(leaseId, lease);
84
+ return { lease, conflicts: [] };
85
+ }
86
+ /** 释放 lease */
87
+ export function releaseLease(leaseId) {
88
+ const lease = leaseStore.get(leaseId);
89
+ if (!lease)
90
+ return false;
91
+ if (lease.status === "conflicted") {
92
+ // conflicted lease 不得标记 released
93
+ return false;
94
+ }
95
+ lease.status = "released";
96
+ return true;
97
+ }
98
+ /**
99
+ * 检查是否超出 scope 写入。
100
+ */
101
+ export function checkOutOfScopeWrite(taskId, targetPath, allowedPaths) {
102
+ const inScope = allowedPaths.some((p) => targetPath === p || targetPath.startsWith(p + "/"));
103
+ if (!inScope) {
104
+ return {
105
+ allowed: false,
106
+ reason: `写入 ${targetPath} 超出允许范围`,
107
+ };
108
+ }
109
+ return { allowed: true };
110
+ }
111
+ /**
112
+ * 生成工作区隔离报告。
113
+ */
114
+ export function generateIsolationReport(taskId) {
115
+ const activeLeases = listActiveLeases();
116
+ const conflicts = [];
117
+ // 检测冲突
118
+ for (let i = 0; i < activeLeases.length; i++) {
119
+ for (let j = i + 1; j < activeLeases.length; j++) {
120
+ const a = activeLeases[i];
121
+ const b = activeLeases[j];
122
+ if (a.task_id === b.task_id)
123
+ continue;
124
+ const overlap = a.scope_paths.some((p) => b.scope_paths.some((bp) => p === bp || p.startsWith(bp + "/") || bp.startsWith(p + "/")));
125
+ if (overlap) {
126
+ conflicts.push({
127
+ lease_a_id: a.lease_id,
128
+ lease_b_id: b.lease_id,
129
+ conflict_path: a.scope_paths[0],
130
+ conflict_type: "scope_overlap",
131
+ resolved: false,
132
+ });
133
+ }
134
+ }
135
+ }
136
+ const taskLeases = activeLeases.filter((l) => l.task_id === taskId);
137
+ const hasDeliveryLease = taskLeases.some((l) => l.lease_type === "delivery" && l.status === "active");
138
+ const hasConflict = conflicts.some((c) => taskLeases.some((l) => l.lease_id === c.lease_a_id || l.lease_id === c.lease_b_id));
139
+ return {
140
+ report_id: `wir-${taskId}-${Date.now()}`,
141
+ task_id: taskId,
142
+ active_leases: taskLeases,
143
+ conflicts,
144
+ out_of_scope_writes: [],
145
+ delivery_blocked: hasConflict || !hasDeliveryLease,
146
+ evaluated_at: new Date().toISOString(),
147
+ };
148
+ }
149
+ /** 重置 lease 存储(测试用) */
150
+ export function resetLeaseStore() {
151
+ leaseStore.clear();
152
+ }
153
+ //# sourceMappingURL=workspace_lease.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace_lease.js","sourceRoot":"","sources":["../../src/engine/workspace_lease.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace_resumer.d.ts","sourceRoot":"","sources":["../../src/engine/workspace_resumer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D;;;;;;;;;;GAUG;AAEH,aAAa;AACb,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC;AAElF,WAAW;AACX,MAAM,WAAW,YAAY;IAC3B,iBAAiB;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc;IACd,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,OAAO,CAAC;QACrB,oBAAoB,CAAC,EAAE,mBAAmB,CAAC;KAC5C,CAAC;IACF,kBAAkB;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,6CAA6C;IAC7C,iBAAiB,CAAC,EAAE,KAAK,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,gBAAgB;IAChB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAaD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,kBAAkB,GAC9B,OAAO,CAAC,YAAY,CAAC,CA6IvB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,kBAAkB,EAC/B,QAAQ,SAA0B,GACjC,OAAO,CAAC,aAAa,CAAC,CA8BxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"workspace_resumer.d.ts","sourceRoot":"","sources":["../../src/engine/workspace_resumer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAI5D;;;;;;;;;;GAUG;AAEH,aAAa;AACb,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC;AAElF,WAAW;AACX,MAAM,WAAW,YAAY;IAC3B,iBAAiB;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc;IACd,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,OAAO,CAAC;QACrB,oBAAoB,CAAC,EAAE,mBAAmB,CAAC;KAC5C,CAAC;IACF,kBAAkB;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,6CAA6C;IAC7C,iBAAiB,CAAC,EAAE,KAAK,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,gBAAgB;IAChB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAaD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,kBAAkB,GAC9B,OAAO,CAAC,YAAY,CAAC,CA6IvB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,kBAAkB,EAC/B,QAAQ,SAA0B,GACjC,OAAO,CAAC,aAAa,CAAC,CA8BxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB"}
@@ -1,6 +1,7 @@
1
1
  import fs from "node:fs/promises";
2
2
  import fss from "node:fs";
3
3
  import path from "node:path";
4
+ import { debug } from "./logger.js";
4
5
  /** 活跃状态集合(classifying 纳入扫描但标记为不可恢复) */
5
6
  const ACTIVE_STATUSES = [
6
7
  "classifying",
@@ -23,13 +24,13 @@ const ACTIVE_STATUSES = [
23
24
  * @returns 唤醒结果
24
25
  */
25
26
  export async function scanAndResume(taskContext) {
26
- console.error("[soloForge] 工作区恢复: scanAndResume() 开始执行");
27
+ debug("工作区恢复", "scanAndResume() 开始执行");
27
28
  // 清理孤儿租约
28
29
  const orphanCleaned = cleanupOrphanLeases(taskContext);
29
30
  const recent = await taskContext.listRecent(100);
30
31
  const activeTasks = recent.filter((t) => ACTIVE_STATUSES.includes(t.status));
31
32
  if (activeTasks.length === 0) {
32
- console.error("[soloForge] 工作区恢复: 无活跃工单, total=${recent.length}");
33
+ debug("工作区恢复", "无活跃工单, total=${recent.length}");
33
34
  return {
34
35
  resumed: false,
35
36
  broadcast: "工作区干净,无中断工单。可以开始新任务",
@@ -41,7 +42,7 @@ export async function scanAndResume(taskContext) {
41
42
  }
42
43
  // 多个活跃工单 → 需要人工选择
43
44
  if (activeTasks.length > 1) {
44
- console.error("[soloForge] 工作区恢复: 发现 ${activeTasks.length} 个活跃工单,需人工选择");
45
+ debug("工作区恢复", "发现 ${activeTasks.length} 个活跃工单,需人工选择");
45
46
  const candidates = [];
46
47
  for (const t of activeTasks) {
47
48
  const ctx = await taskContext.load(t.task_id);
@@ -69,7 +70,7 @@ export async function scanAndResume(taskContext) {
69
70
  const latestActive = activeTasks[0];
70
71
  const ctx = await taskContext.load(latestActive.task_id);
71
72
  if (!ctx) {
72
- console.error("[soloForge] 工作区恢复: 工单 ${latestActive.task_id} 无法加载上下文");
73
+ debug("工作区恢复", "工单 ${latestActive.task_id} 无法加载上下文");
73
74
  return {
74
75
  resumed: false,
75
76
  broadcast: `发现活跃工单 ${latestActive.task_id},但无法加载(可能文件损坏)`,
@@ -83,7 +84,7 @@ export async function scanAndResume(taskContext) {
83
84
  const { recoverable, reason } = checkRecoverable(ctx);
84
85
  const phaseHint = taskContext.getResumeHint(ctx);
85
86
  if (!recoverable) {
86
- console.error("[soloForge] 工作区恢复: 工单 ${ctx.task_id} 不可恢复, reason=${reason}");
87
+ debug("工作区恢复", "工单 ${ctx.task_id} 不可恢复, reason=${reason}");
87
88
  return {
88
89
  resumed: false,
89
90
  task: {
@@ -102,7 +103,7 @@ export async function scanAndResume(taskContext) {
102
103
  orphan_leases_cleaned: orphanCleaned,
103
104
  };
104
105
  }
105
- console.error("[soloForge] 工作区恢复: 工单 ${ctx.task_id} (${ctx.intent}) 可恢复, status=${ctx.status}");
106
+ debug("工作区恢复", "工单 ${ctx.task_id} (${ctx.intent}) 可恢复, status=${ctx.status}");
106
107
  // 构造播报消息
107
108
  const changedFiles = ctx.execution?.changed_files?.length ?? 0;
108
109
  const attemptCount = ctx.execution?.attempt_count ?? 0;
@@ -154,7 +155,7 @@ export async function scanAndResume(taskContext) {
154
155
  * @returns 清理报告(不执行任何状态变更)
155
156
  */
156
157
  export async function cleanupStaleTasks(taskContext, maxAgeMs = 7 * 24 * 60 * 60 * 1000) {
157
- console.error("[soloForge] 工作区恢复: cleanupStaleTasks() 开始, maxAge=${Math.round(maxAgeMs / 3600000)}h");
158
+ debug("工作区恢复", "cleanupStaleTasks() 开始, maxAge=${Math.round(maxAgeMs / 3600000)}h");
158
159
  const recent = await taskContext.listRecent(100);
159
160
  const now = Date.now();
160
161
  const stale = [];
@@ -173,7 +174,7 @@ export async function cleanupStaleTasks(taskContext, maxAgeMs = 7 * 24 * 60 * 60
173
174
  });
174
175
  }
175
176
  }
176
- console.error("[soloForge] 工作区恢复: cleanupStaleTasks 完成, stale=${stale.length}");
177
+ debug("工作区恢复", "cleanupStaleTasks 完成, stale=${stale.length}");
177
178
  return {
178
179
  stale_tasks: stale,
179
180
  stale_count: stale.length,
@@ -1 +1 @@
1
- {"version":3,"file":"workspace_resumer.js","sourceRoot":"","sources":["../../src/engine/workspace_resumer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace_resumer.js","sourceRoot":"","sources":["../../src/engine/workspace_resumer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"zero_config_init.d.ts","sourceRoot":"","sources":["../../src/engine/zero_config_init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zero_config_init.d.ts","sourceRoot":"","sources":["../../src/engine/zero_config_init.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ import fss from "node:fs";
13
13
  import path from "node:path";
14
14
  import crypto from "node:crypto";
15
15
  import { canAutoWriteField, getConfigFieldClass } from "./config_precedence_contract.js";
16
+ import { debug } from "./logger.js";
16
17
  const FIELD_CLASS = {
17
18
  "name": "A",
18
19
  "tech_stack.backend": "A",
@@ -28,7 +29,7 @@ const FIELD_CLASS = {
28
29
  };
29
30
  /** 获取配置字段分类(A/B/C 类) */
30
31
  export function getFieldClass(field) {
31
- console.error("[soloForge] 零配置初始化: 获取字段分类", field);
32
+ debug("零配置初始化", "获取字段分类", field);
32
33
  if (field in FIELD_CLASS)
33
34
  return FIELD_CLASS[field];
34
35
  return getConfigFieldClass(field);
@@ -129,7 +130,7 @@ const BUILD_TOOLS = [
129
130
  * 探测项目指纹 — 纯确定性,无 LLM 参与。
130
131
  */
131
132
  export async function detectFingerprint(projectRoot) {
132
- console.error("[soloForge] 零配置初始化: 探测项目指纹", projectRoot);
133
+ debug("零配置初始化", "探测项目指纹", projectRoot);
133
134
  const advisory = [];
134
135
  const configFiles = [];
135
136
  const directories = [];
@@ -144,7 +145,7 @@ export async function detectFingerprint(projectRoot) {
144
145
  }
145
146
  }
146
147
  catch (e) {
147
- console.error("[soloForge] 零配置初始化: 读取项目根目录失败", e);
148
+ debug("零配置初始化", "读取项目根目录失败", e);
148
149
  advisory.push("无法读取项目根目录");
149
150
  }
150
151
  // 一次性读取 package.json(避免重复读取 4 次)
@@ -188,7 +189,7 @@ export async function detectFingerprint(projectRoot) {
188
189
  ].join(",");
189
190
  const hash = crypto.createHash("sha256").update(hashInput).digest("hex").slice(0, 16);
190
191
  if (!backend && !frontend) {
191
- console.error("[soloForge] 零配置初始化: 未检测到前后端框架,将使用默认配置");
192
+ debug("零配置初始化", "未检测到前后端框架,将使用默认配置");
192
193
  advisory.push("未检测到后端或前端框架 — 配置将使用默认值");
193
194
  }
194
195
  return {
@@ -211,7 +212,7 @@ export async function detectFingerprint(projectRoot) {
211
212
  * LLM 不直接生成配置,只做 advisory 解释。
212
213
  */
213
214
  export function generateConfigDraft(fingerprint) {
214
- console.error("[soloForge] 零配置初始化: 生成配置草案", fingerprint.hash);
215
+ debug("零配置初始化", "生成配置草案", fingerprint.hash);
215
216
  const backendLang = fingerprint.backend?.lang ?? "unknown";
216
217
  const backendFramework = fingerprint.backend?.framework ?? "unknown";
217
218
  const backendVersion = fingerprint.backend?.version ?? "unknown";
@@ -236,7 +237,7 @@ export function generateConfigDraft(fingerprint) {
236
237
  ? "medium"
237
238
  : "low";
238
239
  if (confidence === "low") {
239
- console.error("[soloForge] 零配置初始化: 置信度低,建议手动审查");
240
+ debug("零配置初始化", "置信度低,建议手动审查");
240
241
  advisoryNotes.push("低置信度: 未检测到框架,所有值为默认值 — 建议手动审查");
241
242
  }
242
243
  return {
@@ -490,11 +491,11 @@ function isConfigFile(name) {
490
491
  * 确保核心字段存在且格式正确。缺失字段标记为 warning。
491
492
  */
492
493
  export function validateConfigDraft(draft) {
493
- console.error("[soloForge] 零配置初始化: 校验配置草案");
494
+ debug("零配置初始化", "校验配置草案");
494
495
  const errors = [];
495
496
  const warnings = [];
496
497
  if (!draft.tech_stack) {
497
- console.error("[soloForge] 零配置初始化: tech_stack 缺失");
498
+ debug("零配置初始化", "tech_stack 缺失");
498
499
  errors.push("tech_stack 为必填项");
499
500
  }
500
501
  else {
@@ -506,11 +507,11 @@ export function validateConfigDraft(draft) {
506
507
  warnings.push("项目名称为空,将使用目录名");
507
508
  }
508
509
  if (!draft.scope || (draft.scope.backend.length === 0 && draft.scope.frontend.length === 0)) {
509
- console.error("[soloForge] 零配置初始化: 作用域为空,所有文件都将纳入范围");
510
+ debug("零配置初始化", "作用域为空,所有文件都将纳入范围");
510
511
  warnings.push("作用域为空,所有文件都将纳入范围");
511
512
  }
512
513
  if (draft.confidence === "low") {
513
- console.error("[soloForge] 零配置初始化: 整体置信度低,建议手动初始化或使用 --interactive");
514
+ debug("零配置初始化", "整体置信度低,建议手动初始化或使用 --interactive");
514
515
  warnings.push("整体置信度低 — 建议手动初始化或使用 --interactive");
515
516
  }
516
517
  return {
@@ -524,7 +525,7 @@ export function validateConfigDraft(draft) {
524
525
  * 基于 fingerprint + draft 生成字段级证据。
525
526
  */
526
527
  export function generateConfigEvidence(fp, draft, mode) {
527
- console.error("[soloForge] 零配置初始化: 生成字段级证据", mode);
528
+ debug("零配置初始化", "生成字段级证据", mode);
528
529
  const fields = {};
529
530
  // name — 目录名是确定性检测结果
530
531
  fields["name"] = {
@@ -639,7 +640,7 @@ export function generateConfigEvidence(fp, draft, mode) {
639
640
  * 所有 REQUIRED_FIELDS 对应的字段必须 high confidence + detected/user_declared/confirmed。
640
641
  */
641
642
  export function canAutoWrite(evidence) {
642
- console.error("[soloForge] 零配置初始化: 检查 --auto 写入权限");
643
+ debug("零配置初始化", "检查 --auto 写入权限");
643
644
  const blocked = [];
644
645
  for (const req of REQUIRED_FIELDS) {
645
646
  // 对于复合字段(如 "tech_stack"),检查子字段
@@ -717,7 +718,7 @@ const PROFILE_PATTERNS = [
717
718
  * 规则解析蓝图文本(不调用 LLM)。
718
719
  */
719
720
  export function parseBlueprint(text) {
720
- console.error("[soloForge] 零配置初始化: 解析蓝图文本");
721
+ debug("零配置初始化", "解析蓝图文本");
721
722
  let backend = null;
722
723
  let frontend = null;
723
724
  for (const bp of BLUEPRINT_PATTERNS) {
@@ -737,7 +738,7 @@ export function parseBlueprint(text) {
737
738
  }
738
739
  }
739
740
  if (!productProfile) {
740
- console.error("[soloForge] 零配置初始化: 蓝图无明确产品画像,根据技术栈推断");
741
+ debug("零配置初始化", "蓝图无明确产品画像,根据技术栈推断");
741
742
  if (backend && frontend)
742
743
  productProfile = "fullstack";
743
744
  else if (backend)
@@ -752,7 +753,7 @@ export function parseBlueprint(text) {
752
753
  * 从蓝图生成 evidence(所有字段 confidence_source = user_declared)。
753
754
  */
754
755
  export function generateBlueprintEvidence(blueprintText, config, projectRoot) {
755
- console.error("[soloForge] 零配置初始化: 生成蓝图证据", blueprintText);
756
+ debug("零配置初始化", "生成蓝图证据", blueprintText);
756
757
  const fields = {};
757
758
  const src = "user_declared";
758
759
  fields["name"] = { value: config.name, confidence: "high", confidence_source: src, evidence: ["--blueprint"] };