soloforge 1.1.30 → 1.1.31

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 (804) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +33 -18
  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.map +1 -1
  6. package/dist/adapters/codex/codex_rules.d.ts +2 -1
  7. package/dist/adapters/codex/codex_rules.d.ts.map +1 -1
  8. package/dist/adapters/codex/codex_rules.js.map +1 -1
  9. package/dist/adapters/shared/workflow_template.d.ts.map +1 -1
  10. package/dist/adapters/shared/workflow_template.js +0 -1
  11. package/dist/adapters/shared/workflow_template.js.map +1 -1
  12. package/dist/adapters/trae/trae_config.d.ts +17 -1
  13. package/dist/adapters/trae/trae_config.d.ts.map +1 -1
  14. package/dist/adapters/trae/trae_config.js +2 -2
  15. package/dist/adapters/trae/trae_config.js.map +1 -1
  16. package/dist/adapters/trae/trae_rules.d.ts +2 -1
  17. package/dist/adapters/trae/trae_rules.d.ts.map +1 -1
  18. package/dist/adapters/trae/trae_rules.js.map +1 -1
  19. package/dist/bin/args.d.ts +9 -0
  20. package/dist/bin/args.d.ts.map +1 -1
  21. package/dist/bin/args.js +44 -1
  22. package/dist/bin/args.js.map +1 -1
  23. package/dist/bin/commands/audit.d.ts.map +1 -1
  24. package/dist/bin/commands/audit.js +5 -40
  25. package/dist/bin/commands/audit.js.map +1 -1
  26. package/dist/bin/commands/check_bash.d.ts.map +1 -1
  27. package/dist/bin/commands/check_bash.js +28 -6
  28. package/dist/bin/commands/check_bash.js.map +1 -1
  29. package/dist/bin/commands/check_write.d.ts +2 -1
  30. package/dist/bin/commands/check_write.d.ts.map +1 -1
  31. package/dist/bin/commands/check_write.js +14 -45
  32. package/dist/bin/commands/check_write.js.map +1 -1
  33. package/dist/bin/commands/hooks.d.ts.map +1 -1
  34. package/dist/bin/commands/hooks.js +7 -3
  35. package/dist/bin/commands/hooks.js.map +1 -1
  36. package/dist/bin/commands/init.d.ts +19 -2
  37. package/dist/bin/commands/init.d.ts.map +1 -1
  38. package/dist/bin/commands/init.js +97 -72
  39. package/dist/bin/commands/init.js.map +1 -1
  40. package/dist/bin/commands/status.d.ts.map +1 -1
  41. package/dist/bin/commands/status.js +49 -65
  42. package/dist/bin/commands/status.js.map +1 -1
  43. package/dist/bin/commands/sync.d.ts.map +1 -1
  44. package/dist/bin/commands/sync.js +18 -26
  45. package/dist/bin/commands/sync.js.map +1 -1
  46. package/dist/bin/commands/validate.d.ts +1 -1
  47. package/dist/bin/commands/validate.d.ts.map +1 -1
  48. package/dist/bin/commands/validate.js +47 -58
  49. package/dist/bin/commands/validate.js.map +1 -1
  50. package/dist/bin/config_commands.d.ts +1 -1
  51. package/dist/bin/config_commands.d.ts.map +1 -1
  52. package/dist/bin/config_commands.js +40 -26
  53. package/dist/bin/config_commands.js.map +1 -1
  54. package/dist/bin/soloforge.js +30 -3
  55. package/dist/bin/soloforge.js.map +1 -1
  56. package/dist/engine/audit/audit_pool.d.ts.map +1 -1
  57. package/dist/engine/audit/audit_pool.js +2 -1
  58. package/dist/engine/audit/audit_pool.js.map +1 -1
  59. package/dist/engine/audit/audit_sampler.d.ts +2 -0
  60. package/dist/engine/audit/audit_sampler.d.ts.map +1 -1
  61. package/dist/engine/audit/audit_sampler.js.map +1 -1
  62. package/dist/engine/audit/code_reviewer.d.ts +1 -1
  63. package/dist/engine/audit/code_reviewer.d.ts.map +1 -1
  64. package/dist/engine/audit/code_reviewer.js +9 -21
  65. package/dist/engine/audit/code_reviewer.js.map +1 -1
  66. package/dist/engine/audit/core_experience_principle.js +1 -1
  67. package/dist/engine/audit/core_experience_principle.js.map +1 -1
  68. package/dist/engine/audit/debt_reporter.d.ts +3 -0
  69. package/dist/engine/audit/debt_reporter.d.ts.map +1 -1
  70. package/dist/engine/audit/debt_reporter.js.map +1 -1
  71. package/dist/engine/audit/debt_tracker.d.ts.map +1 -1
  72. package/dist/engine/audit/debt_tracker.js +12 -5
  73. package/dist/engine/audit/debt_tracker.js.map +1 -1
  74. package/dist/engine/audit/debugger.d.ts +3 -0
  75. package/dist/engine/audit/debugger.d.ts.map +1 -1
  76. package/dist/engine/audit/debugger.js.map +1 -1
  77. package/dist/engine/audit/delivery.d.ts +1 -1
  78. package/dist/engine/audit/delivery.d.ts.map +1 -1
  79. package/dist/engine/audit/delivery.js +7 -4
  80. package/dist/engine/audit/delivery.js.map +1 -1
  81. package/dist/engine/audit/delivery_readiness.d.ts +2 -0
  82. package/dist/engine/audit/delivery_readiness.d.ts.map +1 -1
  83. package/dist/engine/audit/delivery_readiness.js +2 -0
  84. package/dist/engine/audit/delivery_readiness.js.map +1 -1
  85. package/dist/engine/audit/developer_sovereignty.d.ts +5 -43
  86. package/dist/engine/audit/developer_sovereignty.d.ts.map +1 -1
  87. package/dist/engine/audit/developer_sovereignty.js +2 -6
  88. package/dist/engine/audit/developer_sovereignty.js.map +1 -1
  89. package/dist/engine/audit/evolver.js +5 -5
  90. package/dist/engine/audit/evolver.js.map +1 -1
  91. package/dist/engine/audit/failure_classifier.d.ts.map +1 -1
  92. package/dist/engine/audit/governance_report.d.ts +1 -1
  93. package/dist/engine/audit/governance_report.d.ts.map +1 -1
  94. package/dist/engine/audit/governance_report.js +1 -1
  95. package/dist/engine/audit/governance_report.js.map +1 -1
  96. package/dist/engine/audit/main_path_integration_contract/gates.d.ts +2 -1
  97. package/dist/engine/audit/main_path_integration_contract/gates.d.ts.map +1 -1
  98. package/dist/engine/audit/main_path_integration_contract/gates.js.map +1 -1
  99. package/dist/engine/audit/main_path_integration_contract/queries.d.ts +2 -2
  100. package/dist/engine/audit/main_path_integration_contract/queries.d.ts.map +1 -1
  101. package/dist/engine/audit/main_path_integration_contract/queries.js +2 -2
  102. package/dist/engine/audit/main_path_integration_contract/queries.js.map +1 -1
  103. package/dist/engine/audit/main_path_integration_contract/scanning.d.ts.map +1 -1
  104. package/dist/engine/audit/main_path_integration_contract/scanning.js +2 -2
  105. package/dist/engine/audit/main_path_integration_contract/scanning.js.map +1 -1
  106. package/dist/engine/audit/main_path_integration_contract/scanning_infra.d.ts.map +1 -1
  107. package/dist/engine/audit/main_path_integration_contract/scanning_infra.js +3 -2
  108. package/dist/engine/audit/main_path_integration_contract/scanning_infra.js.map +1 -1
  109. package/dist/engine/audit/mutation_audit.d.ts +4 -22
  110. package/dist/engine/audit/mutation_audit.d.ts.map +1 -1
  111. package/dist/engine/audit/mutation_audit.js.map +1 -1
  112. package/dist/engine/audit/observability.d.ts.map +1 -1
  113. package/dist/engine/audit/observability.js +4 -2
  114. package/dist/engine/audit/observability.js.map +1 -1
  115. package/dist/engine/audit/privacy_grants.d.ts +108 -0
  116. package/dist/engine/audit/privacy_grants.d.ts.map +1 -0
  117. package/dist/engine/audit/privacy_grants.js +171 -0
  118. package/dist/engine/audit/privacy_grants.js.map +1 -0
  119. package/dist/engine/audit/privacy_patterns.d.ts +24 -0
  120. package/dist/engine/audit/privacy_patterns.d.ts.map +1 -0
  121. package/dist/engine/audit/privacy_patterns.js +143 -0
  122. package/dist/engine/audit/privacy_patterns.js.map +1 -0
  123. package/dist/engine/audit/privacy_scanning.d.ts +153 -0
  124. package/dist/engine/audit/privacy_scanning.d.ts.map +1 -0
  125. package/dist/engine/audit/privacy_scanning.js +567 -0
  126. package/dist/engine/audit/privacy_scanning.js.map +1 -0
  127. package/dist/engine/audit/privacy_secret_contract.d.ts +9 -317
  128. package/dist/engine/audit/privacy_secret_contract.d.ts.map +1 -1
  129. package/dist/engine/audit/privacy_secret_contract.js +12 -873
  130. package/dist/engine/audit/privacy_secret_contract.js.map +1 -1
  131. package/dist/engine/audit/privacy_types.d.ts +48 -0
  132. package/dist/engine/audit/privacy_types.d.ts.map +1 -0
  133. package/dist/engine/audit/privacy_types.js +14 -0
  134. package/dist/engine/audit/privacy_types.js.map +1 -0
  135. package/dist/engine/audit/risk_sampler.d.ts +2 -0
  136. package/dist/engine/audit/risk_sampler.d.ts.map +1 -1
  137. package/dist/engine/audit/risk_sampler.js +2 -0
  138. package/dist/engine/audit/risk_sampler.js.map +1 -1
  139. package/dist/engine/audit/semantic_evidence.d.ts +5 -1
  140. package/dist/engine/audit/semantic_evidence.d.ts.map +1 -1
  141. package/dist/engine/audit/semantic_evidence.js +2 -0
  142. package/dist/engine/audit/semantic_evidence.js.map +1 -1
  143. package/dist/engine/audit/test_generator.d.ts.map +1 -1
  144. package/dist/engine/audit/test_generator.js +4 -1
  145. package/dist/engine/audit/test_generator.js.map +1 -1
  146. package/dist/engine/audit/test_quality.d.ts +3 -0
  147. package/dist/engine/audit/test_quality.d.ts.map +1 -1
  148. package/dist/engine/audit/test_quality.js +1 -71
  149. package/dist/engine/audit/test_quality.js.map +1 -1
  150. package/dist/engine/change_coordinator.d.ts +1 -1
  151. package/dist/engine/change_coordinator.d.ts.map +1 -1
  152. package/dist/engine/change_coordinator.js +30 -27
  153. package/dist/engine/change_coordinator.js.map +1 -1
  154. package/dist/engine/cognitive_anchor.d.ts.map +1 -1
  155. package/dist/engine/cognitive_anchor.js +6 -7
  156. package/dist/engine/cognitive_anchor.js.map +1 -1
  157. package/dist/engine/config/config_auto_repair.d.ts +2 -1
  158. package/dist/engine/config/config_auto_repair.d.ts.map +1 -1
  159. package/dist/engine/config/config_auto_repair.js +18 -13
  160. package/dist/engine/config/config_auto_repair.js.map +1 -1
  161. package/dist/engine/config/config_precedence_contract/field_class.d.ts +11 -0
  162. package/dist/engine/config/config_precedence_contract/field_class.d.ts.map +1 -0
  163. package/dist/engine/config/config_precedence_contract/field_class.js +10 -0
  164. package/dist/engine/config/config_precedence_contract/field_class.js.map +1 -0
  165. package/dist/engine/config/config_precedence_contract/index.d.ts +1 -0
  166. package/dist/engine/config/config_precedence_contract/index.d.ts.map +1 -1
  167. package/dist/engine/config/config_precedence_contract/index.js.map +1 -1
  168. package/dist/engine/config/config_precedence_contract/project_config.d.ts.map +1 -1
  169. package/dist/engine/config/config_precedence_contract/project_config.js +17 -9
  170. package/dist/engine/config/config_precedence_contract/project_config.js.map +1 -1
  171. package/dist/engine/config/config_precedence_contract/resolution.d.ts +1 -1
  172. package/dist/engine/config/config_precedence_contract/resolution.d.ts.map +1 -1
  173. package/dist/engine/config/config_precedence_contract/resolution.js +9 -0
  174. package/dist/engine/config/config_precedence_contract/resolution.js.map +1 -1
  175. package/dist/engine/config/config_precedence_contract/types.d.ts +4 -26
  176. package/dist/engine/config/config_precedence_contract/types.d.ts.map +1 -1
  177. package/dist/engine/config/config_precedence_contract/types.js +2 -0
  178. package/dist/engine/config/config_precedence_contract/types.js.map +1 -1
  179. package/dist/engine/config/config_precedence_contract.d.ts +3 -1
  180. package/dist/engine/config/config_precedence_contract.d.ts.map +1 -1
  181. package/dist/engine/config/config_precedence_contract.js +7 -1
  182. package/dist/engine/config/config_precedence_contract.js.map +1 -1
  183. package/dist/engine/config/config_write_boundary.d.ts.map +1 -1
  184. package/dist/engine/config/config_write_boundary.js +16 -0
  185. package/dist/engine/config/config_write_boundary.js.map +1 -1
  186. package/dist/engine/config/regression_matrix.d.ts.map +1 -1
  187. package/dist/engine/config/regression_matrix.js +3 -3
  188. package/dist/engine/config/regression_matrix.js.map +1 -1
  189. package/dist/engine/config/zero_config_init.d.ts +30 -5
  190. package/dist/engine/config/zero_config_init.d.ts.map +1 -1
  191. package/dist/engine/config/zero_config_init.js +26 -15
  192. package/dist/engine/config/zero_config_init.js.map +1 -1
  193. package/dist/engine/contracts/architecture_design_contract.d.ts.map +1 -1
  194. package/dist/engine/contracts/architecture_design_contract.js.map +1 -1
  195. package/dist/engine/contracts/artifact_contract_registry.d.ts +1 -1
  196. package/dist/engine/contracts/artifact_contract_registry.d.ts.map +1 -1
  197. package/dist/engine/contracts/artifact_contract_registry.js +1 -1
  198. package/dist/engine/contracts/artifact_contract_registry.js.map +1 -1
  199. package/dist/engine/contracts/backend_implementation_contract.js +4 -4
  200. package/dist/engine/contracts/backend_implementation_contract.js.map +1 -1
  201. package/dist/engine/contracts/brainstorm_contract.d.ts +1 -1
  202. package/dist/engine/contracts/brainstorm_contract.d.ts.map +1 -1
  203. package/dist/engine/contracts/brainstorm_contract.js +1 -1
  204. package/dist/engine/contracts/brainstorm_contract.js.map +1 -1
  205. package/dist/engine/contracts/capability_state_store.d.ts +2 -0
  206. package/dist/engine/contracts/capability_state_store.d.ts.map +1 -1
  207. package/dist/engine/contracts/capability_state_store.js +11 -1
  208. package/dist/engine/contracts/capability_state_store.js.map +1 -1
  209. package/dist/engine/contracts/code_maintainability_observability_contract.js +5 -5
  210. package/dist/engine/contracts/code_maintainability_observability_contract.js.map +1 -1
  211. package/dist/engine/contracts/coding_readiness_gate.d.ts +1 -1
  212. package/dist/engine/contracts/coding_readiness_gate.d.ts.map +1 -1
  213. package/dist/engine/contracts/coding_readiness_gate.js +1 -1
  214. package/dist/engine/contracts/coding_readiness_gate.js.map +1 -1
  215. package/dist/engine/contracts/command_execution_contract.d.ts +1 -11
  216. package/dist/engine/contracts/command_execution_contract.d.ts.map +1 -1
  217. package/dist/engine/contracts/command_execution_contract.js +1 -11
  218. package/dist/engine/contracts/command_execution_contract.js.map +1 -1
  219. package/dist/engine/contracts/contract_guard.d.ts +1 -1
  220. package/dist/engine/contracts/contract_guard.d.ts.map +1 -1
  221. package/dist/engine/contracts/contract_registry/registry.d.ts.map +1 -1
  222. package/dist/engine/contracts/contract_registry/registry.js +2 -2
  223. package/dist/engine/contracts/contract_registry/registry.js.map +1 -1
  224. package/dist/engine/contracts/contract_registry/validation.js.map +1 -1
  225. package/dist/engine/contracts/contract_state_store.d.ts +2 -0
  226. package/dist/engine/contracts/contract_state_store.d.ts.map +1 -1
  227. package/dist/engine/contracts/contract_state_store.js +4 -1
  228. package/dist/engine/contracts/contract_state_store.js.map +1 -1
  229. package/dist/engine/contracts/control_plane_contract.d.ts.map +1 -1
  230. package/dist/engine/contracts/control_plane_contract.js +5 -4
  231. package/dist/engine/contracts/control_plane_contract.js.map +1 -1
  232. package/dist/engine/contracts/decision_contract.js +1 -1
  233. package/dist/engine/contracts/decision_contract.js.map +1 -1
  234. package/dist/engine/contracts/decision_workshop.d.ts.map +1 -1
  235. package/dist/engine/contracts/decision_workshop.js.map +1 -1
  236. package/dist/engine/contracts/design_artifact_pack.d.ts +3 -40
  237. package/dist/engine/contracts/design_artifact_pack.d.ts.map +1 -1
  238. package/dist/engine/contracts/design_artifact_pack.js.map +1 -1
  239. package/dist/engine/contracts/detail_discipline.d.ts.map +1 -1
  240. package/dist/engine/contracts/detail_discipline.js.map +1 -1
  241. package/dist/engine/contracts/dual_layer_mechanism_registry/validation.js +1 -1
  242. package/dist/engine/contracts/dual_layer_mechanism_registry/validation.js.map +1 -1
  243. package/dist/engine/contracts/enforcement_guard.d.ts +2 -1
  244. package/dist/engine/contracts/enforcement_guard.d.ts.map +1 -1
  245. package/dist/engine/contracts/enforcement_guard.js +1 -1
  246. package/dist/engine/contracts/enforcement_guard.js.map +1 -1
  247. package/dist/engine/contracts/escape_report.d.ts.map +1 -1
  248. package/dist/engine/contracts/escape_report.js +2 -1
  249. package/dist/engine/contracts/escape_report.js.map +1 -1
  250. package/dist/engine/contracts/evidence_grounding_contract.d.ts +2 -4
  251. package/dist/engine/contracts/evidence_grounding_contract.d.ts.map +1 -1
  252. package/dist/engine/contracts/evidence_grounding_contract.js +3 -9
  253. package/dist/engine/contracts/evidence_grounding_contract.js.map +1 -1
  254. package/dist/engine/contracts/evolution_regression_gate.d.ts +2 -0
  255. package/dist/engine/contracts/evolution_regression_gate.d.ts.map +1 -1
  256. package/dist/engine/contracts/evolution_regression_gate.js +2 -0
  257. package/dist/engine/contracts/evolution_regression_gate.js.map +1 -1
  258. package/dist/engine/contracts/existing_system_analysis.d.ts.map +1 -1
  259. package/dist/engine/contracts/existing_system_analysis.js.map +1 -1
  260. package/dist/engine/contracts/existing_system_analyzer.d.ts +9 -9
  261. package/dist/engine/contracts/existing_system_analyzer.d.ts.map +1 -1
  262. package/dist/engine/contracts/existing_system_analyzer.js +83 -80
  263. package/dist/engine/contracts/existing_system_analyzer.js.map +1 -1
  264. package/dist/engine/contracts/extension_contract.d.ts +2 -2
  265. package/dist/engine/contracts/extension_contract.d.ts.map +1 -1
  266. package/dist/engine/contracts/extension_contract.js +2 -2
  267. package/dist/engine/contracts/extension_contract.js.map +1 -1
  268. package/dist/engine/contracts/extension_scenario_definitions.d.ts +10 -0
  269. package/dist/engine/contracts/extension_scenario_definitions.d.ts.map +1 -0
  270. package/dist/engine/contracts/extension_scenario_definitions.js +112 -0
  271. package/dist/engine/contracts/extension_scenario_definitions.js.map +1 -0
  272. package/dist/engine/contracts/extension_scenario_registry.d.ts +1 -7
  273. package/dist/engine/contracts/extension_scenario_registry.d.ts.map +1 -1
  274. package/dist/engine/contracts/extension_scenario_registry.js +5 -257
  275. package/dist/engine/contracts/extension_scenario_registry.js.map +1 -1
  276. package/dist/engine/contracts/first_principles.d.ts.map +1 -1
  277. package/dist/engine/contracts/first_principles.js.map +1 -1
  278. package/dist/engine/contracts/instruction_contract.d.ts.map +1 -1
  279. package/dist/engine/contracts/instruction_contract.js +0 -6
  280. package/dist/engine/contracts/instruction_contract.js.map +1 -1
  281. package/dist/engine/contracts/local_docker_acceptance.d.ts +1 -1
  282. package/dist/engine/contracts/local_docker_acceptance.d.ts.map +1 -1
  283. package/dist/engine/contracts/local_docker_acceptance.js +4 -4
  284. package/dist/engine/contracts/local_docker_acceptance.js.map +1 -1
  285. package/dist/engine/contracts/mechanism_health_check.d.ts +2 -0
  286. package/dist/engine/contracts/mechanism_health_check.d.ts.map +1 -1
  287. package/dist/engine/contracts/mechanism_health_check.js +2 -0
  288. package/dist/engine/contracts/mechanism_health_check.js.map +1 -1
  289. package/dist/engine/contracts/metric_governance.d.ts.map +1 -1
  290. package/dist/engine/contracts/metric_governance.js.map +1 -1
  291. package/dist/engine/contracts/ood_solid_contract.js +2 -2
  292. package/dist/engine/contracts/ood_solid_contract.js.map +1 -1
  293. package/dist/engine/contracts/platform_context.d.ts +2 -0
  294. package/dist/engine/contracts/platform_context.d.ts.map +1 -1
  295. package/dist/engine/contracts/platform_context.js +2 -0
  296. package/dist/engine/contracts/platform_context.js.map +1 -1
  297. package/dist/engine/contracts/project_knowledge_contract.d.ts.map +1 -1
  298. package/dist/engine/contracts/project_knowledge_contract.js +3 -0
  299. package/dist/engine/contracts/project_knowledge_contract.js.map +1 -1
  300. package/dist/engine/contracts/route_decision_contract_verifier.js +1 -1
  301. package/dist/engine/contracts/route_decision_contract_verifier.js.map +1 -1
  302. package/dist/engine/contracts/technology_decision.d.ts.map +1 -1
  303. package/dist/engine/contracts/technology_decision.js.map +1 -1
  304. package/dist/engine/contracts/tool_invocation_contract_registry.d.ts +3 -62
  305. package/dist/engine/contracts/tool_invocation_contract_registry.d.ts.map +1 -1
  306. package/dist/engine/contracts/tool_invocation_contract_registry.js +2 -0
  307. package/dist/engine/contracts/tool_invocation_contract_registry.js.map +1 -1
  308. package/dist/engine/contracts/traceability.d.ts +2 -1
  309. package/dist/engine/contracts/traceability.d.ts.map +1 -1
  310. package/dist/engine/contracts/traceability.js +5 -5
  311. package/dist/engine/contracts/traceability.js.map +1 -1
  312. package/dist/engine/contracts/user_feedback_contract.js +2 -2
  313. package/dist/engine/contracts/user_feedback_contract.js.map +1 -1
  314. package/dist/engine/contracts/workflow_template_pack.js +1 -1
  315. package/dist/engine/contracts/workflow_template_pack.js.map +1 -1
  316. package/dist/engine/core/config_defaults.d.ts +11 -0
  317. package/dist/engine/core/config_defaults.d.ts.map +1 -0
  318. package/dist/engine/core/config_defaults.js +11 -0
  319. package/dist/engine/core/config_defaults.js.map +1 -0
  320. package/dist/engine/core/env.d.ts +12 -0
  321. package/dist/engine/core/env.d.ts.map +1 -0
  322. package/dist/engine/core/env.js +12 -0
  323. package/dist/engine/core/env.js.map +1 -0
  324. package/dist/engine/core/errors.d.ts +21 -0
  325. package/dist/engine/core/errors.d.ts.map +1 -0
  326. package/dist/engine/core/errors.js +35 -0
  327. package/dist/engine/core/errors.js.map +1 -0
  328. package/dist/engine/core/exit_codes.d.ts +14 -0
  329. package/dist/engine/core/exit_codes.d.ts.map +1 -0
  330. package/dist/engine/core/exit_codes.js +14 -0
  331. package/dist/engine/core/exit_codes.js.map +1 -0
  332. package/dist/engine/core/helpers.d.ts +15 -0
  333. package/dist/engine/core/helpers.d.ts.map +1 -1
  334. package/dist/engine/core/helpers.js +31 -0
  335. package/dist/engine/core/helpers.js.map +1 -1
  336. package/dist/engine/core/index.d.ts +15 -0
  337. package/dist/engine/core/index.d.ts.map +1 -0
  338. package/dist/engine/core/index.js +22 -0
  339. package/dist/engine/core/index.js.map +1 -0
  340. package/dist/engine/core/io_controller.d.ts +1 -0
  341. package/dist/engine/core/io_controller.d.ts.map +1 -1
  342. package/dist/engine/core/io_controller.js +18 -2
  343. package/dist/engine/core/io_controller.js.map +1 -1
  344. package/dist/engine/core/llm_gateway.d.ts +20 -3
  345. package/dist/engine/core/llm_gateway.d.ts.map +1 -1
  346. package/dist/engine/core/llm_gateway.js +95 -13
  347. package/dist/engine/core/llm_gateway.js.map +1 -1
  348. package/dist/engine/core/log_governance.d.ts.map +1 -1
  349. package/dist/engine/core/log_governance.js +4 -9
  350. package/dist/engine/core/log_governance.js.map +1 -1
  351. package/dist/engine/core/logger.d.ts.map +1 -1
  352. package/dist/engine/core/logger.js +5 -2
  353. package/dist/engine/core/logger.js.map +1 -1
  354. package/dist/engine/core/path_scope_utils.d.ts +1 -1
  355. package/dist/engine/core/path_scope_utils.d.ts.map +1 -1
  356. package/dist/engine/core/path_scope_utils.js +1 -1
  357. package/dist/engine/core/path_scope_utils.js.map +1 -1
  358. package/dist/engine/core/paths.d.ts +86 -0
  359. package/dist/engine/core/paths.d.ts.map +1 -0
  360. package/dist/engine/core/paths.js +103 -0
  361. package/dist/engine/core/paths.js.map +1 -0
  362. package/dist/engine/core/write_file_atomic.d.ts +25 -0
  363. package/dist/engine/core/write_file_atomic.d.ts.map +1 -0
  364. package/dist/engine/core/write_file_atomic.js +63 -0
  365. package/dist/engine/core/write_file_atomic.js.map +1 -0
  366. package/dist/engine/dependency_scanner.d.ts.map +1 -1
  367. package/dist/engine/dependency_scanner.js +14 -16
  368. package/dist/engine/dependency_scanner.js.map +1 -1
  369. package/dist/engine/exploration.d.ts.map +1 -1
  370. package/dist/engine/exploration.js +9 -8
  371. package/dist/engine/exploration.js.map +1 -1
  372. package/dist/engine/knowledge/chinese_semantic_priority.d.ts.map +1 -1
  373. package/dist/engine/knowledge/chinese_semantic_priority.js.map +1 -1
  374. package/dist/engine/knowledge/drift_classifier.d.ts +26 -0
  375. package/dist/engine/knowledge/drift_classifier.d.ts.map +1 -0
  376. package/dist/engine/knowledge/drift_classifier.js +82 -0
  377. package/dist/engine/knowledge/drift_classifier.js.map +1 -0
  378. package/dist/engine/knowledge/knowledge_asset_audit.d.ts.map +1 -1
  379. package/dist/engine/knowledge/knowledge_asset_audit.js.map +1 -1
  380. package/dist/engine/knowledge/knowledge_asset_consumer.d.ts.map +1 -1
  381. package/dist/engine/knowledge/knowledge_asset_consumer.js +0 -4
  382. package/dist/engine/knowledge/knowledge_asset_consumer.js.map +1 -1
  383. package/dist/engine/knowledge/knowledge_asset_generation_gate.d.ts.map +1 -1
  384. package/dist/engine/knowledge/knowledge_asset_generation_gate.js.map +1 -1
  385. package/dist/engine/knowledge/knowledge_asset_schema.d.ts.map +1 -1
  386. package/dist/engine/knowledge/knowledge_asset_schema.js +0 -3
  387. package/dist/engine/knowledge/knowledge_asset_schema.js.map +1 -1
  388. package/dist/engine/knowledge/knowledge_evolution.d.ts +1 -17
  389. package/dist/engine/knowledge/knowledge_evolution.d.ts.map +1 -1
  390. package/dist/engine/knowledge/knowledge_evolution.js +2 -74
  391. package/dist/engine/knowledge/knowledge_evolution.js.map +1 -1
  392. package/dist/engine/knowledge/knowledge_health.d.ts +44 -0
  393. package/dist/engine/knowledge/knowledge_health.d.ts.map +1 -0
  394. package/dist/engine/knowledge/knowledge_health.js +303 -0
  395. package/dist/engine/knowledge/knowledge_health.js.map +1 -0
  396. package/dist/engine/knowledge/knowledge_injection_boundary.d.ts +1 -1
  397. package/dist/engine/knowledge/knowledge_injection_boundary.d.ts.map +1 -1
  398. package/dist/engine/knowledge/knowledge_injection_boundary.js +21 -5
  399. package/dist/engine/knowledge/knowledge_injection_boundary.js.map +1 -1
  400. package/dist/engine/knowledge/knowledge_lifecycle.d.ts +4 -2
  401. package/dist/engine/knowledge/knowledge_lifecycle.d.ts.map +1 -1
  402. package/dist/engine/knowledge/knowledge_lifecycle.js +37 -27
  403. package/dist/engine/knowledge/knowledge_lifecycle.js.map +1 -1
  404. package/dist/engine/knowledge/knowledge_manager.d.ts +2 -148
  405. package/dist/engine/knowledge/knowledge_manager.d.ts.map +1 -1
  406. package/dist/engine/knowledge/knowledge_manager.js +4 -933
  407. package/dist/engine/knowledge/knowledge_manager.js.map +1 -1
  408. package/dist/engine/knowledge/knowledge_scenario_registry.d.ts +1 -1
  409. package/dist/engine/knowledge/knowledge_scenario_registry.d.ts.map +1 -1
  410. package/dist/engine/knowledge/knowledge_scenario_registry.js +6 -6
  411. package/dist/engine/knowledge/knowledge_scenario_registry.js.map +1 -1
  412. package/dist/engine/knowledge/knowledge_sovereignty.js +2 -2
  413. package/dist/engine/knowledge/knowledge_sovereignty.js.map +1 -1
  414. package/dist/engine/knowledge/knowledge_writer.d.ts +108 -0
  415. package/dist/engine/knowledge/knowledge_writer.d.ts.map +1 -0
  416. package/dist/engine/knowledge/knowledge_writer.js +637 -0
  417. package/dist/engine/knowledge/knowledge_writer.js.map +1 -0
  418. package/dist/engine/knowledge/language_policy.d.ts +1 -1
  419. package/dist/engine/knowledge/language_policy.js +1 -1
  420. package/dist/engine/knowledge/release_compatibility.d.ts.map +1 -1
  421. package/dist/engine/knowledge/release_compatibility.js.map +1 -1
  422. package/dist/engine/migration_guard.js +4 -4
  423. package/dist/engine/migration_guard.js.map +1 -1
  424. package/dist/engine/onboarding.d.ts +1 -1
  425. package/dist/engine/onboarding.d.ts.map +1 -1
  426. package/dist/engine/onboarding.js +4 -1
  427. package/dist/engine/onboarding.js.map +1 -1
  428. package/dist/engine/pipeline/conflict_gate.js +1 -1
  429. package/dist/engine/pipeline/conflict_gate.js.map +1 -1
  430. package/dist/engine/pipeline/diff_ownership.d.ts.map +1 -1
  431. package/dist/engine/pipeline/diff_ownership.js +7 -0
  432. package/dist/engine/pipeline/diff_ownership.js.map +1 -1
  433. package/dist/engine/pipeline/diff_ownership_store.d.ts.map +1 -1
  434. package/dist/engine/pipeline/diff_ownership_store.js +8 -6
  435. package/dist/engine/pipeline/diff_ownership_store.js.map +1 -1
  436. package/dist/engine/pipeline/expand_pipeline.d.ts +2 -1
  437. package/dist/engine/pipeline/expand_pipeline.d.ts.map +1 -1
  438. package/dist/engine/pipeline/expand_pipeline.js.map +1 -1
  439. package/dist/engine/pipeline/input_material_contract_registry.d.ts +1 -1
  440. package/dist/engine/pipeline/input_material_contract_registry.d.ts.map +1 -1
  441. package/dist/engine/pipeline/input_material_contract_registry.js +44 -43
  442. package/dist/engine/pipeline/input_material_contract_registry.js.map +1 -1
  443. package/dist/engine/pipeline/input_material_extractor.js +3 -3
  444. package/dist/engine/pipeline/input_material_extractor.js.map +1 -1
  445. package/dist/engine/pipeline/intent_expander/expand.d.ts +6 -6
  446. package/dist/engine/pipeline/intent_expander/expand.d.ts.map +1 -1
  447. package/dist/engine/pipeline/intent_expander/expand.js +57 -50
  448. package/dist/engine/pipeline/intent_expander/expand.js.map +1 -1
  449. package/dist/engine/pipeline/intent_expander/helpers.d.ts +6 -4
  450. package/dist/engine/pipeline/intent_expander/helpers.d.ts.map +1 -1
  451. package/dist/engine/pipeline/intent_expander/helpers.js +4 -4
  452. package/dist/engine/pipeline/intent_expander/helpers.js.map +1 -1
  453. package/dist/engine/pipeline/intent_expander/index.d.ts +4 -4
  454. package/dist/engine/pipeline/intent_expander/index.js +8 -8
  455. package/dist/engine/pipeline/intent_expander/index.js.map +1 -1
  456. package/dist/engine/pipeline/intent_expander/knowledge.d.ts.map +1 -1
  457. package/dist/engine/pipeline/intent_expander/knowledge.js.map +1 -1
  458. package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts +12 -9
  459. package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts.map +1 -1
  460. package/dist/engine/pipeline/intent_expander/knowledge_resolution.js +11 -11
  461. package/dist/engine/pipeline/intent_expander/knowledge_resolution.js.map +1 -1
  462. package/dist/engine/pipeline/intent_expander/privacy_gates.d.ts +68 -6
  463. package/dist/engine/pipeline/intent_expander/privacy_gates.d.ts.map +1 -1
  464. package/dist/engine/pipeline/intent_expander/privacy_gates.js +94 -21
  465. package/dist/engine/pipeline/intent_expander/privacy_gates.js.map +1 -1
  466. package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts +37 -3
  467. package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts.map +1 -1
  468. package/dist/engine/pipeline/intent_expander/scope_acceptance.js +1 -1
  469. package/dist/engine/pipeline/intent_expander/scope_acceptance.js.map +1 -1
  470. package/dist/engine/pipeline/intent_expander/templates.d.ts +2 -1
  471. package/dist/engine/pipeline/intent_expander/templates.d.ts.map +1 -1
  472. package/dist/engine/pipeline/intent_expander/templates.js.map +1 -1
  473. package/dist/engine/pipeline/intent_expander/types.d.ts +35 -5
  474. package/dist/engine/pipeline/intent_expander/types.d.ts.map +1 -1
  475. package/dist/engine/pipeline/intent_expander/uncertainty_circuit.d.ts +4 -3
  476. package/dist/engine/pipeline/intent_expander/uncertainty_circuit.d.ts.map +1 -1
  477. package/dist/engine/pipeline/intent_expander/uncertainty_circuit.js +1 -1
  478. package/dist/engine/pipeline/intent_expander/uncertainty_circuit.js.map +1 -1
  479. package/dist/engine/pipeline/intent_expander.d.ts +2 -2
  480. package/dist/engine/pipeline/intent_expander.js +6 -6
  481. package/dist/engine/pipeline/intent_expander.js.map +1 -1
  482. package/dist/engine/pipeline/intent_route_scorer.d.ts +2 -2
  483. package/dist/engine/pipeline/intent_route_scorer.d.ts.map +1 -1
  484. package/dist/engine/pipeline/intent_route_scorer.js +3 -3
  485. package/dist/engine/pipeline/intent_route_scorer.js.map +1 -1
  486. package/dist/engine/pipeline/intent_router.d.ts +4 -5
  487. package/dist/engine/pipeline/intent_router.d.ts.map +1 -1
  488. package/dist/engine/pipeline/intent_router.js +64 -112
  489. package/dist/engine/pipeline/intent_router.js.map +1 -1
  490. package/dist/engine/pipeline/intent_signal_extractor.d.ts +18 -0
  491. package/dist/engine/pipeline/intent_signal_extractor.d.ts.map +1 -1
  492. package/dist/engine/pipeline/intent_signal_extractor.js +8 -8
  493. package/dist/engine/pipeline/intent_signal_extractor.js.map +1 -1
  494. package/dist/engine/pipeline/job_manager.d.ts.map +1 -1
  495. package/dist/engine/pipeline/job_manager.js +18 -4
  496. package/dist/engine/pipeline/job_manager.js.map +1 -1
  497. package/dist/engine/pipeline/plan_proposal_gate.d.ts.map +1 -1
  498. package/dist/engine/pipeline/plan_proposal_gate.js +0 -1
  499. package/dist/engine/pipeline/plan_proposal_gate.js.map +1 -1
  500. package/dist/engine/pipeline/route_types.d.ts +10 -0
  501. package/dist/engine/pipeline/route_types.d.ts.map +1 -0
  502. package/dist/engine/pipeline/route_types.js +9 -0
  503. package/dist/engine/pipeline/route_types.js.map +1 -0
  504. package/dist/engine/pipeline/scope_controller.d.ts +1 -1
  505. package/dist/engine/pipeline/scope_controller.d.ts.map +1 -1
  506. package/dist/engine/pipeline/scope_controller.js +18 -17
  507. package/dist/engine/pipeline/scope_controller.js.map +1 -1
  508. package/dist/engine/pipeline/scope_lease.d.ts.map +1 -1
  509. package/dist/engine/pipeline/scope_lease.js +3 -1
  510. package/dist/engine/pipeline/scope_lease.js.map +1 -1
  511. package/dist/engine/pipeline/slice_executor.d.ts +1 -1
  512. package/dist/engine/pipeline/slice_executor.d.ts.map +1 -1
  513. package/dist/engine/pipeline/slice_executor.js +1 -1
  514. package/dist/engine/pipeline/slice_executor.js.map +1 -1
  515. package/dist/engine/pipeline/stage_gate_engine.d.ts +2 -0
  516. package/dist/engine/pipeline/stage_gate_engine.d.ts.map +1 -1
  517. package/dist/engine/pipeline/stage_gate_engine.js +9 -3
  518. package/dist/engine/pipeline/stage_gate_engine.js.map +1 -1
  519. package/dist/engine/pipeline/stale_current_task_detector.d.ts.map +1 -1
  520. package/dist/engine/pipeline/stale_current_task_detector.js +8 -5
  521. package/dist/engine/pipeline/stale_current_task_detector.js.map +1 -1
  522. package/dist/engine/pipeline/task_context/cleanup.d.ts.map +1 -1
  523. package/dist/engine/pipeline/task_context/cleanup.js +4 -1
  524. package/dist/engine/pipeline/task_context/cleanup.js.map +1 -1
  525. package/dist/engine/pipeline/task_context/expansion_privacy.d.ts +1 -3
  526. package/dist/engine/pipeline/task_context/expansion_privacy.d.ts.map +1 -1
  527. package/dist/engine/pipeline/task_context/expansion_privacy.js +1 -1
  528. package/dist/engine/pipeline/task_context/expansion_privacy.js.map +1 -1
  529. package/dist/engine/pipeline/task_context/manager.d.ts +4 -4
  530. package/dist/engine/pipeline/task_context/manager.d.ts.map +1 -1
  531. package/dist/engine/pipeline/task_context/manager.js +25 -13
  532. package/dist/engine/pipeline/task_context/manager.js.map +1 -1
  533. package/dist/engine/pipeline/task_context/manager_setters.d.ts +3 -3
  534. package/dist/engine/pipeline/task_context/manager_setters.d.ts.map +1 -1
  535. package/dist/engine/pipeline/task_context/manager_setters.js.map +1 -1
  536. package/dist/engine/pipeline/task_context/status_transitions.d.ts.map +1 -1
  537. package/dist/engine/pipeline/task_context/status_transitions.js +4 -3
  538. package/dist/engine/pipeline/task_context/status_transitions.js.map +1 -1
  539. package/dist/engine/pipeline/task_planner.js +3 -4
  540. package/dist/engine/pipeline/task_planner.js.map +1 -1
  541. package/dist/engine/pipeline/workspace_lease.d.ts +10 -1
  542. package/dist/engine/pipeline/workspace_lease.d.ts.map +1 -1
  543. package/dist/engine/pipeline/workspace_lease.js +29 -3
  544. package/dist/engine/pipeline/workspace_lease.js.map +1 -1
  545. package/dist/engine/pipeline/workspace_resumer.d.ts.map +1 -1
  546. package/dist/engine/pipeline/workspace_resumer.js +3 -0
  547. package/dist/engine/pipeline/workspace_resumer.js.map +1 -1
  548. package/dist/engine/release/foundation_scenario_registry.d.ts +1 -1
  549. package/dist/engine/release/foundation_scenario_registry.d.ts.map +1 -1
  550. package/dist/engine/release/foundation_scenario_registry.js +3 -2
  551. package/dist/engine/release/foundation_scenario_registry.js.map +1 -1
  552. package/dist/engine/release/foundation_scenario_runners.d.ts.map +1 -1
  553. package/dist/engine/release/foundation_scenario_runners.js +40 -33
  554. package/dist/engine/release/foundation_scenario_runners.js.map +1 -1
  555. package/dist/engine/release/gate_checks/checkControlPlaneTrust.d.ts +2 -2
  556. package/dist/engine/release/gate_checks/checkControlPlaneTrust.d.ts.map +1 -1
  557. package/dist/engine/release/gate_checks/checkControlPlaneTrust.js +3 -2
  558. package/dist/engine/release/gate_checks/checkControlPlaneTrust.js.map +1 -1
  559. package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.d.ts.map +1 -1
  560. package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.js +3 -3
  561. package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.js.map +1 -1
  562. package/dist/engine/release/gate_checks/checkDependencyAudit.d.ts.map +1 -1
  563. package/dist/engine/release/gate_checks/checkDependencyAudit.js +8 -3
  564. package/dist/engine/release/gate_checks/checkDependencyAudit.js.map +1 -1
  565. package/dist/engine/release/gate_checks/checkDistFreshness.d.ts.map +1 -1
  566. package/dist/engine/release/gate_checks/checkDistFreshness.js +4 -2
  567. package/dist/engine/release/gate_checks/checkDistFreshness.js.map +1 -1
  568. package/dist/engine/release/gate_checks/checkKnowledgeAssetSchemaP0.d.ts +1 -1
  569. package/dist/engine/release/gate_checks/checkKnowledgeAssetSchemaP0.d.ts.map +1 -1
  570. package/dist/engine/release/gate_checks/checkKnowledgeAssetSchemaP0.js +1 -1
  571. package/dist/engine/release/gate_checks/checkKnowledgeAssetSchemaP0.js.map +1 -1
  572. package/dist/engine/release/gate_checks/checkMainlineConsumption.js +2 -2
  573. package/dist/engine/release/gate_checks/checkMainlineConsumption.js.map +1 -1
  574. package/dist/engine/release/gate_checks/{check_npm_pack.d.ts → checkNpmPack.d.ts} +1 -1
  575. package/dist/engine/release/gate_checks/checkNpmPack.d.ts.map +1 -0
  576. package/dist/engine/release/gate_checks/{check_npm_pack.js → checkNpmPack.js} +5 -7
  577. package/dist/engine/release/gate_checks/checkNpmPack.js.map +1 -0
  578. package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.d.ts.map +1 -1
  579. package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.js +4 -3
  580. package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.js.map +1 -1
  581. package/dist/engine/release/gate_checks/checkWorkflowNavigation.d.ts.map +1 -1
  582. package/dist/engine/release/gate_checks/checkWorkflowNavigation.js +58 -4
  583. package/dist/engine/release/gate_checks/checkWorkflowNavigation.js.map +1 -1
  584. package/dist/engine/release/gate_checks/helpers.d.ts.map +1 -1
  585. package/dist/engine/release/gate_checks/helpers.js +2 -1
  586. package/dist/engine/release/gate_checks/helpers.js.map +1 -1
  587. package/dist/engine/release/index.d.ts +6 -0
  588. package/dist/engine/release/index.d.ts.map +1 -0
  589. package/dist/engine/release/index.js +6 -0
  590. package/dist/engine/release/index.js.map +1 -0
  591. package/dist/engine/release/release_gate_scenario_registry.d.ts.map +1 -1
  592. package/dist/engine/release/release_gate_scenario_registry.js.map +1 -1
  593. package/dist/engine/release/release_issue_scenario_registry/registry.d.ts.map +1 -1
  594. package/dist/engine/release/release_issue_scenario_registry/registry.js +4 -1
  595. package/dist/engine/release/release_issue_scenario_registry/registry.js.map +1 -1
  596. package/dist/engine/release/release_issue_scenario_registry/scenarios_architecture_workshop.js +38 -19
  597. package/dist/engine/release/release_issue_scenario_registry/scenarios_architecture_workshop.js.map +1 -1
  598. package/dist/engine/release/release_issue_scenario_registry/scenarios_code_observability.d.ts.map +1 -1
  599. package/dist/engine/release/release_issue_scenario_registry/scenarios_code_observability.js +3 -2
  600. package/dist/engine/release/release_issue_scenario_registry/scenarios_code_observability.js.map +1 -1
  601. package/dist/engine/release/release_issue_scenario_registry/scenarios_decision_workshop.d.ts.map +1 -1
  602. package/dist/engine/release/release_issue_scenario_registry/scenarios_decision_workshop.js +50 -26
  603. package/dist/engine/release/release_issue_scenario_registry/scenarios_decision_workshop.js.map +1 -1
  604. package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.d.ts.map +1 -1
  605. package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.js +12 -6
  606. package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.js.map +1 -1
  607. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.d.ts.map +1 -1
  608. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.js +26 -13
  609. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.js.map +1 -1
  610. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.d.ts.map +1 -1
  611. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js +14 -8
  612. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js.map +1 -1
  613. package/dist/engine/release/release_issue_scenario_registry/scenarios_workflow_navigation.d.ts +12 -0
  614. package/dist/engine/release/release_issue_scenario_registry/scenarios_workflow_navigation.d.ts.map +1 -0
  615. package/dist/engine/release/release_issue_scenario_registry/scenarios_workflow_navigation.js +147 -0
  616. package/dist/engine/release/release_issue_scenario_registry/scenarios_workflow_navigation.js.map +1 -0
  617. package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.d.ts +24 -40
  618. package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.d.ts.map +1 -1
  619. package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.js +12 -6
  620. package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.js.map +1 -1
  621. package/dist/engine/release/release_readiness_gate.d.ts +3 -1
  622. package/dist/engine/release/release_readiness_gate.d.ts.map +1 -1
  623. package/dist/engine/release/release_readiness_gate.js +47 -4
  624. package/dist/engine/release/release_readiness_gate.js.map +1 -1
  625. package/dist/engine/release/release_tool_harness.d.ts +18 -5
  626. package/dist/engine/release/release_tool_harness.d.ts.map +1 -1
  627. package/dist/engine/release/release_tool_harness.js +15 -7
  628. package/dist/engine/release/release_tool_harness.js.map +1 -1
  629. package/dist/engine/release/types.d.ts +81 -0
  630. package/dist/engine/release/types.d.ts.map +1 -0
  631. package/dist/engine/release/types.js +7 -0
  632. package/dist/engine/release/types.js.map +1 -0
  633. package/dist/engine/release/verifier.d.ts.map +1 -1
  634. package/dist/engine/release/verifier.js +1 -1
  635. package/dist/engine/release/verifier.js.map +1 -1
  636. package/dist/engine/team_awareness.d.ts +1 -1
  637. package/dist/engine/team_awareness.d.ts.map +1 -1
  638. package/dist/engine/team_awareness.js.map +1 -1
  639. package/dist/engine/templates/asset_manifest.d.ts +1 -1
  640. package/dist/engine/templates/asset_manifest.d.ts.map +1 -1
  641. package/dist/engine/templates/asset_manifest.js +1 -2
  642. package/dist/engine/templates/asset_manifest.js.map +1 -1
  643. package/dist/engine/templates/consumption_trace_store.d.ts +2 -1
  644. package/dist/engine/templates/consumption_trace_store.d.ts.map +1 -1
  645. package/dist/engine/templates/consumption_trace_store.js +0 -6
  646. package/dist/engine/templates/consumption_trace_store.js.map +1 -1
  647. package/dist/engine/templates/explicit_asset_registry/index.js +14 -14
  648. package/dist/engine/templates/explicit_asset_registry/index.js.map +1 -1
  649. package/dist/engine/templates/observed_consumption.d.ts.map +1 -1
  650. package/dist/engine/templates/observed_consumption.js +1 -1
  651. package/dist/engine/templates/observed_consumption.js.map +1 -1
  652. package/dist/engine/templates/scaffolder.js +2 -2
  653. package/dist/engine/templates/scaffolder.js.map +1 -1
  654. package/dist/engine/templates/standard_asset_coverage.js +1 -1
  655. package/dist/engine/templates/standard_asset_coverage.js.map +1 -1
  656. package/dist/engine/templates/template_asset_contract_registry.d.ts +1 -1
  657. package/dist/engine/templates/template_asset_contract_registry.d.ts.map +1 -1
  658. package/dist/engine/templates/template_asset_contract_registry.js +1 -2
  659. package/dist/engine/templates/template_asset_contract_registry.js.map +1 -1
  660. package/dist/engine/templates/template_asset_visibility.js +0 -17
  661. package/dist/engine/templates/template_asset_visibility.js.map +1 -1
  662. package/dist/engine/templates/template_init_sync.d.ts.map +1 -1
  663. package/dist/engine/templates/template_init_sync.js +9 -11
  664. package/dist/engine/templates/template_init_sync.js.map +1 -1
  665. package/dist/engine/templates/template_manifest_io.d.ts.map +1 -1
  666. package/dist/engine/templates/template_manifest_io.js +3 -2
  667. package/dist/engine/templates/template_manifest_io.js.map +1 -1
  668. package/dist/engine/templates/template_sync.d.ts.map +1 -1
  669. package/dist/engine/templates/template_sync.js.map +1 -1
  670. package/dist/engine/templates/workflow_rule_generator.d.ts +1 -1
  671. package/dist/engine/templates/workflow_rule_generator.d.ts.map +1 -1
  672. package/dist/engine/templates/workflow_rule_generator.js +1 -1
  673. package/dist/engine/templates/workflow_rule_generator.js.map +1 -1
  674. package/dist/engine/workflow/index.d.ts +10 -0
  675. package/dist/engine/workflow/index.d.ts.map +1 -0
  676. package/dist/engine/workflow/index.js +12 -0
  677. package/dist/engine/workflow/index.js.map +1 -0
  678. package/dist/engine/workflow/legacy_type_migration.d.ts +4 -3
  679. package/dist/engine/workflow/legacy_type_migration.d.ts.map +1 -1
  680. package/dist/engine/workflow/legacy_type_migration.js +6 -5
  681. package/dist/engine/workflow/legacy_type_migration.js.map +1 -1
  682. package/dist/engine/workflow/next_action_planner.d.ts +2 -2
  683. package/dist/engine/workflow/next_action_planner.d.ts.map +1 -1
  684. package/dist/engine/workflow/next_action_planner.js +70 -21
  685. package/dist/engine/workflow/next_action_planner.js.map +1 -1
  686. package/dist/engine/workflow/project_stage_detector.d.ts.map +1 -1
  687. package/dist/engine/workflow/project_stage_detector.js +28 -13
  688. package/dist/engine/workflow/project_stage_detector.js.map +1 -1
  689. package/dist/engine/workflow/workflow_navigation_contract.d.ts +8 -1
  690. package/dist/engine/workflow/workflow_navigation_contract.d.ts.map +1 -1
  691. package/dist/engine/workflow/workflow_navigation_contract.js +0 -1
  692. package/dist/engine/workflow/workflow_navigation_contract.js.map +1 -1
  693. package/dist/{engine/core → git}/git_deps.d.ts +3 -1
  694. package/dist/git/git_deps.d.ts.map +1 -0
  695. package/dist/{engine/core → git}/git_deps.js +2 -2
  696. package/dist/git/git_deps.js.map +1 -0
  697. package/dist/index.js +6 -2
  698. package/dist/index.js.map +1 -1
  699. package/dist/knowledge/conflict_detector.d.ts +14 -0
  700. package/dist/knowledge/conflict_detector.d.ts.map +1 -1
  701. package/dist/knowledge/conflict_detector.js +67 -0
  702. package/dist/knowledge/conflict_detector.js.map +1 -1
  703. package/dist/knowledge/health_checker.d.ts.map +1 -1
  704. package/dist/knowledge/health_checker.js +17 -8
  705. package/dist/knowledge/health_checker.js.map +1 -1
  706. package/dist/knowledge/index_manager.d.ts +3 -0
  707. package/dist/knowledge/index_manager.d.ts.map +1 -1
  708. package/dist/knowledge/index_manager.js +82 -40
  709. package/dist/knowledge/index_manager.js.map +1 -1
  710. package/dist/knowledge/loader.d.ts.map +1 -1
  711. package/dist/knowledge/loader.js +14 -5
  712. package/dist/knowledge/loader.js.map +1 -1
  713. package/dist/knowledge/writer.d.ts.map +1 -1
  714. package/dist/knowledge/writer.js +2 -1
  715. package/dist/knowledge/writer.js.map +1 -1
  716. package/dist/server/index.d.ts +2 -2
  717. package/dist/server/index.d.ts.map +1 -1
  718. package/dist/server/index.js +14 -18
  719. package/dist/server/index.js.map +1 -1
  720. package/dist/server/lifecycle.d.ts +4 -2
  721. package/dist/server/lifecycle.d.ts.map +1 -1
  722. package/dist/server/lifecycle.js +6 -11
  723. package/dist/server/lifecycle.js.map +1 -1
  724. package/dist/server/tools/cep_assessment.d.ts.map +1 -1
  725. package/dist/server/tools/cep_assessment.js +6 -6
  726. package/dist/server/tools/cep_assessment.js.map +1 -1
  727. package/dist/server/tools/gate_checks.d.ts +4 -2
  728. package/dist/server/tools/gate_checks.d.ts.map +1 -1
  729. package/dist/server/tools/gate_checks.js.map +1 -1
  730. package/dist/server/tools/index.d.ts.map +1 -1
  731. package/dist/server/tools/index.js +37 -1
  732. package/dist/server/tools/index.js.map +1 -1
  733. package/dist/server/tools/lazy_loaders.d.ts +1 -1
  734. package/dist/server/tools/lazy_loaders.d.ts.map +1 -1
  735. package/dist/server/tools/lazy_loaders.js +2 -2
  736. package/dist/server/tools/lazy_loaders.js.map +1 -1
  737. package/dist/server/tools/middleware.d.ts +22 -2
  738. package/dist/server/tools/middleware.d.ts.map +1 -1
  739. package/dist/server/tools/middleware.js +55 -22
  740. package/dist/server/tools/middleware.js.map +1 -1
  741. package/dist/server/tools/schemas.d.ts +2 -2
  742. package/dist/server/tools/tool_groups/admin.d.ts.map +1 -1
  743. package/dist/server/tools/tool_groups/admin.js +5 -4
  744. package/dist/server/tools/tool_groups/admin.js.map +1 -1
  745. package/dist/server/tools/tool_groups/auxiliary.js +4 -4
  746. package/dist/server/tools/tool_groups/auxiliary.js.map +1 -1
  747. package/dist/server/tools/tool_groups/classify_expand.d.ts.map +1 -1
  748. package/dist/server/tools/tool_groups/classify_expand.js +4 -869
  749. package/dist/server/tools/tool_groups/classify_expand.js.map +1 -1
  750. package/dist/server/tools/tool_groups/classify_handler.d.ts +3 -0
  751. package/dist/server/tools/tool_groups/classify_handler.d.ts.map +1 -0
  752. package/dist/server/tools/tool_groups/classify_handler.js +65 -0
  753. package/dist/server/tools/tool_groups/classify_handler.js.map +1 -0
  754. package/dist/server/tools/tool_groups/expand_handler.d.ts +3 -0
  755. package/dist/server/tools/tool_groups/expand_handler.d.ts.map +1 -0
  756. package/dist/server/tools/tool_groups/expand_handler.js +819 -0
  757. package/dist/server/tools/tool_groups/expand_handler.js.map +1 -0
  758. package/dist/server/tools/tool_groups/knowledge.js +2 -2
  759. package/dist/server/tools/tool_groups/knowledge.js.map +1 -1
  760. package/dist/server/tools/tool_groups/scaffold_accept_deliver.js +1 -1
  761. package/dist/server/tools/tool_groups/scaffold_accept_deliver.js.map +1 -1
  762. package/dist/server/tools/tool_groups/status_plan_analyze_review.js +5 -5
  763. package/dist/server/tools/tool_groups/status_plan_analyze_review.js.map +1 -1
  764. package/dist/server/tools/tool_groups/verify_learn.d.ts.map +1 -1
  765. package/dist/server/tools/tool_groups/verify_learn.js +6 -11
  766. package/dist/server/tools/tool_groups/verify_learn.js.map +1 -1
  767. package/dist/server/tools/tool_names.d.ts +55 -0
  768. package/dist/server/tools/tool_names.d.ts.map +1 -0
  769. package/dist/server/tools/tool_names.js +62 -0
  770. package/dist/server/tools/tool_names.js.map +1 -0
  771. package/dist/server/tools/utils.d.ts.map +1 -1
  772. package/dist/server/tools/utils.js +5 -11
  773. package/dist/server/tools/utils.js.map +1 -1
  774. package/dist/types/base.d.ts +2 -0
  775. package/dist/types/base.d.ts.map +1 -1
  776. package/dist/types/config.d.ts +2 -0
  777. package/dist/types/config.d.ts.map +1 -1
  778. package/dist/types/delivery.d.ts +44 -1
  779. package/dist/types/delivery.d.ts.map +1 -1
  780. package/dist/types/knowledge.d.ts +3 -1
  781. package/dist/types/knowledge.d.ts.map +1 -1
  782. package/dist/types/knowledge.js.map +1 -1
  783. package/dist/types/pipeline.d.ts +151 -14
  784. package/dist/types/pipeline.d.ts.map +1 -1
  785. package/dist/types/task.d.ts +103 -38
  786. package/dist/types/task.d.ts.map +1 -1
  787. package/package.json +7 -3
  788. 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 +11 -1
  789. package/dist/engine/audit/audit_verifier.d.ts +0 -52
  790. package/dist/engine/audit/audit_verifier.d.ts.map +0 -1
  791. package/dist/engine/audit/audit_verifier.js +0 -101
  792. package/dist/engine/audit/audit_verifier.js.map +0 -1
  793. package/dist/engine/contracts/policy_drift_detector.d.ts +0 -72
  794. package/dist/engine/contracts/policy_drift_detector.d.ts.map +0 -1
  795. package/dist/engine/contracts/policy_drift_detector.js +0 -277
  796. package/dist/engine/contracts/policy_drift_detector.js.map +0 -1
  797. package/dist/engine/core/git_deps.d.ts.map +0 -1
  798. package/dist/engine/core/git_deps.js.map +0 -1
  799. package/dist/engine/release/gate_checks/check_npm_pack.d.ts.map +0 -1
  800. package/dist/engine/release/gate_checks/check_npm_pack.js.map +0 -1
  801. package/dist/engine/state_update_bypass.d.ts +0 -19
  802. package/dist/engine/state_update_bypass.d.ts.map +0 -1
  803. package/dist/engine/state_update_bypass.js +0 -17
  804. package/dist/engine/state_update_bypass.js.map +0 -1
@@ -5,6 +5,8 @@
5
5
  * 漂移分类和 AI 推理写入限制。
6
6
  */
7
7
  import { evaluatePromotion } from "./knowledge_lifecycle.js";
8
+ // 从独立模块导入漂移分类器,消除与 knowledge_lifecycle 的循环依赖
9
+ export { classifyDrift } from "./drift_classifier.js";
8
10
  // ── 来源信任级别映射 ──
9
11
  const SOURCE_TRUST_CONFIG = {
10
12
  senior_practice: {
@@ -141,54 +143,6 @@ export function createPromotionReport(candidate, from_status, from_sovereignty,
141
143
  promotion_status,
142
144
  };
143
145
  }
144
- /**
145
- * 分类知识漂移。
146
- * 对比知识内容和代码内容,判断漂移类型。
147
- *
148
- * - knowledge_outdated: 知识描述与当前代码行为不一致
149
- * - code_debt: 代码未按已有知识规范执行
150
- * - ambiguous: 无法确定是知识过时还是代码偏差
151
- */
152
- export function classifyDrift(entry_id, knowledgeContent, codeContent) {
153
- // 提取关键标识:通过简单启发式比较内容差异
154
- const knowledgeLines = knowledgeContent.split("\n").filter((l) => l.trim().length > 0);
155
- const codeLines = codeContent.split("\n").filter((l) => l.trim().length > 0);
156
- // 计算知识中引用的路径/模式在代码中的覆盖率
157
- const knowledgePatterns = extractPatterns(knowledgeContent);
158
- const codePatterns = extractPatterns(codeContent);
159
- const matchedPatterns = knowledgePatterns.filter((p) => codePatterns.some((cp) => cp.includes(p) || p.includes(cp)));
160
- const coverageRatio = knowledgePatterns.length > 0
161
- ? matchedPatterns.length / knowledgePatterns.length
162
- : 0;
163
- let classification;
164
- let description_zh;
165
- let requires_human;
166
- if (coverageRatio < 0.3) {
167
- // 知识中的大部分模式在代码中找不到 — 知识过时
168
- classification = "knowledge_outdated";
169
- description_zh = `知识条目 ${entry_id} 与当前代码严重不一致(覆盖率 ${Math.round(coverageRatio * 100)}%),知识内容可能已过时`;
170
- requires_human = true;
171
- }
172
- else if (coverageRatio > 0.7) {
173
- // 代码中大部分模式在知识中存在 — 但仍有漂移,可能是代码偏差
174
- classification = "code_debt";
175
- description_zh = `知识条目 ${entry_id} 与代码基本一致(覆盖率 ${Math.round(coverageRatio * 100)}%),但存在代码未遵循知识规范的偏差`;
176
- requires_human = false;
177
- }
178
- else {
179
- // 覆盖率在中间 — 无法确定
180
- classification = "ambiguous";
181
- description_zh = `知识条目 ${entry_id} 与代码部分一致(覆盖率 ${Math.round(coverageRatio * 100)}%),无法确定是知识过时还是代码偏差,需人工裁决`;
182
- requires_human = true;
183
- }
184
- return {
185
- id: `drift-${entry_id}-${Date.now()}`,
186
- entry_id,
187
- classification,
188
- description_zh,
189
- requires_human,
190
- };
191
- }
192
146
  /**
193
147
  * 验证 AI 推理写入权限。
194
148
  * 硬规则:AI 推理只能创建 draft/quarantine 级别的知识,不能写入 core 或 active。
@@ -243,30 +197,4 @@ function mapSourceToRequester(source) {
243
197
  return "ai_inference";
244
198
  }
245
199
  }
246
- /**
247
- * 从文本中提取关键模式(路径引用、函数名、类型名)。
248
- * 简单启发式提取,用于漂移检测的内容对比。
249
- */
250
- function extractPatterns(content) {
251
- const patterns = new Set();
252
- // 提取路径引用 (xxx/yyy 形式)
253
- const pathMatches = content.match(/[\w./-]+\/[\w./-]+/g);
254
- if (pathMatches) {
255
- for (const p of pathMatches) {
256
- if (p.length >= 4) {
257
- patterns.add(p);
258
- }
259
- }
260
- }
261
- // 提取驼峰/蛇形标识符 (至少 4 个字符的单词级标识符)
262
- const identMatches = content.match(/\b[a-zA-Z_][\w]{3,}\b/g);
263
- if (identMatches) {
264
- for (const id of identMatches) {
265
- if (id.length >= 5) {
266
- patterns.add(id);
267
- }
268
- }
269
- }
270
- return [...patterns];
271
- }
272
200
  //# sourceMappingURL=knowledge_evolution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge_evolution.js","sourceRoot":"","sources":["../../../src/engine/knowledge/knowledge_evolution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge_evolution.js","sourceRoot":"","sources":["../../../src/engine/knowledge/knowledge_evolution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { KnowledgeIndexManager } from "../../knowledge/index_manager.js";
2
+ import type { ProjectConfig } from "../../types/index.js";
3
+ /** 审计发现项 */
4
+ export interface AuditFinding {
5
+ /** 发现项 ID */
6
+ id: string;
7
+ /** 严重程度 */
8
+ severity: "info" | "warning" | "critical";
9
+ /** 问题类别: stale=陈旧, duplicate=重复, format=格式, coverage=覆盖, completeness=完整度, design_drift=设计漂移 */
10
+ category: "stale" | "duplicate" | "format" | "coverage" | "completeness" | "design_drift";
11
+ /** 关联的知识条目名称 */
12
+ entry_name: string;
13
+ /** 问题描述 */
14
+ message: string;
15
+ /** 修复建议 */
16
+ suggestion: string;
17
+ }
18
+ /** 审计结果 */
19
+ export interface AuditResult {
20
+ /** 非废弃状态的条目总数 */
21
+ total_entries: number;
22
+ /** 审计发现列表 */
23
+ findings: AuditFinding[];
24
+ /** 各类别发现数量统计 */
25
+ summary: {
26
+ stale: number;
27
+ duplicate: number;
28
+ format: number;
29
+ coverage: number;
30
+ completeness: number;
31
+ design_drift: number;
32
+ };
33
+ /** 审计时间 */
34
+ audited_at: string;
35
+ }
36
+ /**
37
+ * 审计知识库健康度。
38
+ * 检查五个维度: 陈旧条目、重复触发词、格式规范、类型覆盖、内容完整度。
39
+ * @param knowledgeIndex - 知识索引管理器
40
+ * @param config - 项目配置
41
+ * @returns 审计结果,包含发现项和统计摘要
42
+ */
43
+ export declare function auditKnowledge(knowledgeIndex: KnowledgeIndexManager, _config: ProjectConfig): Promise<AuditResult>;
44
+ //# sourceMappingURL=knowledge_health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge_health.d.ts","sourceRoot":"","sources":["../../../src/engine/knowledge/knowledge_health.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,sBAAsB,CAAC;AAK1E,YAAY;AACZ,MAAM,WAAW,YAAY;IAC3B,aAAa;IACb,EAAE,EAAE,MAAM,CAAC;IACX,WAAW;IACX,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IAC1C,gGAAgG;IAChG,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,cAAc,GAAG,cAAc,CAAC;IAC1F,gBAAgB;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,WAAW;AACX,MAAM,WAAW,WAAW;IAC1B,iBAAiB;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,gBAAgB;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,WAAW;IACX,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,cAAc,EAAE,qBAAqB,EACrC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,WAAW,CAAC,CAgJtB"}
@@ -0,0 +1,303 @@
1
+ import fs from "node:fs/promises";
2
+ import fss from "node:fs";
3
+ import matter from "gray-matter";
4
+ import { debug } from "../core/logger.js";
5
+ /**
6
+ * 审计知识库健康度。
7
+ * 检查五个维度: 陈旧条目、重复触发词、格式规范、类型覆盖、内容完整度。
8
+ * @param knowledgeIndex - 知识索引管理器
9
+ * @param config - 项目配置
10
+ * @returns 审计结果,包含发现项和统计摘要
11
+ */
12
+ export async function auditKnowledge(knowledgeIndex, _config) {
13
+ debug("知识审计", "开始审计知识库健康度");
14
+ const { global: globalEntries, project: projectEntries } = knowledgeIndex.getAllEntries();
15
+ const all = [...globalEntries, ...projectEntries];
16
+ const findings = [];
17
+ const now = Date.now();
18
+ let findingId = 0;
19
+ // 1. 陈旧条目: 超过 90 天未使用或从未被匹配
20
+ for (const entry of all) {
21
+ if (entry.status === "deprecated")
22
+ continue;
23
+ if (entry.usage_count === 0) {
24
+ findings.push({
25
+ id: `AUD-${String(++findingId).padStart(3, "0")}`,
26
+ severity: "info",
27
+ category: "stale",
28
+ entry_name: entry.name,
29
+ message: `从未被匹配使用: ${entry.name}`,
30
+ suggestion: "检查 when 触发词是否覆盖实际场景,或标记为 deprecated",
31
+ });
32
+ }
33
+ else if (entry.last_used_at) {
34
+ const daysSinceUse = (now - new Date(entry.last_used_at).getTime()) / (1000 * 60 * 60 * 24);
35
+ if (daysSinceUse > 90) {
36
+ findings.push({
37
+ id: `AUD-${String(++findingId).padStart(3, "0")}`,
38
+ severity: "warning",
39
+ category: "stale",
40
+ entry_name: entry.name,
41
+ message: `超过 ${Math.floor(daysSinceUse)} 天未被使用: ${entry.name}`,
42
+ suggestion: "评估是否仍需要,考虑更新触发词或标记为 deprecated",
43
+ });
44
+ }
45
+ }
46
+ }
47
+ // 2. 重复检查: 相似触发词
48
+ for (let i = 0; i < all.length; i++) {
49
+ for (let j = i + 1; j < all.length; j++) {
50
+ if (all[i].type !== all[j].type)
51
+ continue;
52
+ const overlap = keywordOverlap(all[i].when, all[j].when);
53
+ if (overlap >= 0.6) {
54
+ findings.push({
55
+ id: `AUD-${String(++findingId).padStart(3, "0")}`,
56
+ severity: "info",
57
+ category: "duplicate",
58
+ entry_name: `${all[i].name} / ${all[j].name}`,
59
+ message: `触发词高度重叠 (${Math.round(overlap * 100)}%): "${all[i].name}" 和 "${all[j].name}"`,
60
+ suggestion: "考虑合并或区分触发词",
61
+ });
62
+ }
63
+ }
64
+ }
65
+ // 3. 格式检查: 缺失必需的 frontmatter 字段 + Schema 验证
66
+ for (const entry of all) {
67
+ if (entry.status === "deprecated")
68
+ continue;
69
+ const issues = [];
70
+ if (!entry.when || entry.when.trim().length === 0)
71
+ issues.push("when");
72
+ if (!entry.scope || entry.scope.length === 0)
73
+ issues.push("scope");
74
+ if (!entry.products || entry.products.length === 0)
75
+ issues.push("products");
76
+ if (issues.length > 0) {
77
+ findings.push({
78
+ id: `AUD-${String(++findingId).padStart(3, "0")}`,
79
+ severity: "warning",
80
+ category: "format",
81
+ entry_name: entry.name,
82
+ message: `缺少必需字段: ${issues.join(", ")}`,
83
+ suggestion: `补充 ${issues.join("、")} 字段`,
84
+ });
85
+ }
86
+ // 3b. Schema 验证: 读取原始文件进行深度检查
87
+ const schemaIssues = await validateFormatSchema(entry);
88
+ for (const issue of schemaIssues) {
89
+ findings.push({
90
+ id: `AUD-${String(++findingId).padStart(3, "0")}`,
91
+ severity: "info",
92
+ category: "format",
93
+ entry_name: entry.name,
94
+ message: issue.message,
95
+ suggestion: issue.suggestion,
96
+ });
97
+ }
98
+ }
99
+ // 4. 覆盖度检查: 确保各知识类型都有条目
100
+ const requiredTypes = ["pattern", "procedure", "domain", "review_rule"];
101
+ for (const type of requiredTypes) {
102
+ const count = all.filter((e) => e.type === type && e.status !== "deprecated").length;
103
+ if (count === 0) {
104
+ findings.push({
105
+ id: `AUD-${String(++findingId).padStart(3, "0")}`,
106
+ severity: "warning",
107
+ category: "coverage",
108
+ entry_name: `type=${type}`,
109
+ message: `缺少 ${type} 类型的知识条目`,
110
+ suggestion: `新增至少一个 ${type} 条目`,
111
+ });
112
+ }
113
+ }
114
+ // 5. 完整度检查: 检查规则/验收项数量是否达到类型阈值
115
+ for (const entry of all) {
116
+ if (entry.status === "deprecated")
117
+ continue;
118
+ if (!entry.file_path || !fss.existsSync(entry.file_path))
119
+ continue;
120
+ const thresholds = COMPLETENESS_THRESHOLDS[entry.type];
121
+ if (!thresholds)
122
+ continue;
123
+ let raw;
124
+ try {
125
+ raw = await fs.readFile(entry.file_path, "utf-8");
126
+ }
127
+ catch {
128
+ continue;
129
+ }
130
+ const { content: body } = matter(raw);
131
+ for (const check of thresholds) {
132
+ const count = countPattern(body, check.pattern);
133
+ if (count < check.minimum) {
134
+ findings.push({
135
+ id: `AUD-${String(++findingId).padStart(3, "0")}`,
136
+ severity: "info",
137
+ category: "completeness",
138
+ entry_name: entry.name,
139
+ message: `${entry.type} 条目"${entry.name}"的 ${check.field} 不足:实际 ${count} 条,要求 ≥ ${check.minimum} 条`,
140
+ suggestion: `运行 sf_knowledge_update 补充 ${check.field},或调用 sf_knowledge_add 的 auto_enrich 机制自动探索行业最佳实践`,
141
+ });
142
+ }
143
+ }
144
+ }
145
+ const summary = {
146
+ stale: findings.filter((f) => f.category === "stale").length,
147
+ duplicate: findings.filter((f) => f.category === "duplicate").length,
148
+ format: findings.filter((f) => f.category === "format").length,
149
+ coverage: findings.filter((f) => f.category === "coverage").length,
150
+ completeness: findings.filter((f) => f.category === "completeness").length,
151
+ design_drift: 0,
152
+ };
153
+ debug("知识审计", `完成,共 ${findings.length} 项发现`);
154
+ return {
155
+ total_entries: all.filter((e) => e.status !== "deprecated").length,
156
+ findings,
157
+ summary,
158
+ audited_at: new Date().toISOString(),
159
+ };
160
+ }
161
+ // ── 格式 Schema ──
162
+ /** 规范的 frontmatter 字段顺序 */
163
+ const CANONICAL_FM_ORDER = ["name", "type", "when", "scope", "products"];
164
+ /** 各知识类型的格式规范定义 */
165
+ const FORMAT_SCHEMA = {
166
+ pattern: {
167
+ required_headings: ["## 决策规则", "## 验收项"],
168
+ },
169
+ domain: {
170
+ required_headings: ["## 业务规则", "## 约束条件", "## 例外情况", "## 关联模式"],
171
+ },
172
+ procedure: {
173
+ required_headings: ["## 适用场景", "## 步骤", "## 检查点", "## 注意事项"],
174
+ },
175
+ pipeline_procedure: {
176
+ required_headings: [],
177
+ partial_match_headings: ["### 第"],
178
+ },
179
+ review_rule: {
180
+ required_headings: [],
181
+ partial_match_headings: ["pattern:", "severity:", "description:"],
182
+ },
183
+ acceptance_template: {
184
+ required_headings: [],
185
+ },
186
+ };
187
+ /** 各知识类型的完整度阈值(字段名、匹配正则、最小数量) */
188
+ const COMPLETENESS_THRESHOLDS = {
189
+ pattern: [
190
+ { field: "决策规则", pattern: /^- /gm, minimum: 5 },
191
+ { field: "验收项", pattern: /^- \[AC-/gm, minimum: 3 },
192
+ ],
193
+ domain: [
194
+ { field: "业务规则", pattern: /^(?:- |\d+\.)/gm, minimum: 6 },
195
+ ],
196
+ procedure: [
197
+ { field: "步骤", pattern: /^\d+\.\s/gm, minimum: 5 },
198
+ { field: "检查点", pattern: /^- \[ \]/gm, minimum: 3 },
199
+ ],
200
+ pipeline_procedure: [
201
+ { field: "阶段", pattern: /^### 第\d+步/gm, minimum: 3 },
202
+ ],
203
+ review_rule: [
204
+ { field: "规则", pattern: /^## [A-Z]+-\d+/gm, minimum: 5 },
205
+ ],
206
+ };
207
+ /**
208
+ * 统计正则匹配数量。
209
+ * @param body - 文本内容
210
+ * @param pattern - 正则表达式
211
+ * @returns 匹配数量
212
+ */
213
+ function countPattern(body, pattern) {
214
+ return (body.match(pattern) ?? []).length;
215
+ }
216
+ /**
217
+ * 验证知识条目的格式 Schema 规范。
218
+ * 检查 frontmatter 字段顺序、when 字段风格、body 必需标题。
219
+ * @param entry - 知识条目
220
+ * @returns 格式问题列表
221
+ */
222
+ async function validateFormatSchema(entry) {
223
+ const results = [];
224
+ if (!entry.file_path || !fss.existsSync(entry.file_path))
225
+ return results;
226
+ let raw;
227
+ try {
228
+ raw = await fs.readFile(entry.file_path, "utf-8");
229
+ }
230
+ catch {
231
+ return results;
232
+ }
233
+ const { data: fm, content: body } = matter(raw);
234
+ // 检查 frontmatter 字段顺序
235
+ const fmKeys = Object.keys(fm);
236
+ const orderIssues = [];
237
+ for (let i = 0; i < CANONICAL_FM_ORDER.length; i++) {
238
+ const expected = CANONICAL_FM_ORDER[i];
239
+ if (i < fmKeys.length && fmKeys[i] !== expected) {
240
+ orderIssues.push(`期望第 ${i + 1} 个字段为 ${expected},实际为 ${fmKeys[i]}`);
241
+ break;
242
+ }
243
+ }
244
+ if (orderIssues.length > 0) {
245
+ results.push({
246
+ message: `frontmatter 字段顺序不规范: ${orderIssues[0]}`,
247
+ suggestion: `标准顺序: ${CANONICAL_FM_ORDER.join(" → ")}`,
248
+ });
249
+ }
250
+ // 检查 when 字段风格: 第一个逗号分隔段应 ≤ 10 个中文字符
251
+ const whenStr = fm.when ?? "";
252
+ const firstSegment = whenStr.split(/[,\s,]/)[0] ?? "";
253
+ const chineseCharCount = (firstSegment.match(/[一-鿿]/g) ?? []).length;
254
+ if (chineseCharCount > 10 && firstSegment.length > 12) {
255
+ results.push({
256
+ message: `when 字段首个触发词过长(${chineseCharCount} 个中文字符),疑似描述性短语: "${firstSegment}"`,
257
+ suggestion: "when 应为纯关键词逗号分隔,如: 数据导出, CSV, Excel, 批量导出",
258
+ });
259
+ }
260
+ // 检查 body 标题
261
+ const schema = FORMAT_SCHEMA[entry.type];
262
+ if (schema) {
263
+ for (const heading of schema.required_headings) {
264
+ if (!body.includes(heading)) {
265
+ results.push({
266
+ message: `body 缺少必需标题: ${heading}(type=${entry.type})`,
267
+ suggestion: `按格式规约补充 ${heading} 部分`,
268
+ });
269
+ }
270
+ }
271
+ if (schema.partial_match_headings) {
272
+ for (const partial of schema.partial_match_headings) {
273
+ if (!body.includes(partial)) {
274
+ results.push({
275
+ message: `body 缺少必需内容: "${partial}"(type=${entry.type})`,
276
+ suggestion: `按格式规约补充包含 "${partial}" 的内容`,
277
+ });
278
+ }
279
+ }
280
+ }
281
+ }
282
+ return results;
283
+ }
284
+ // ── 辅助函数 ──
285
+ /**
286
+ * 计算两个关键词字符串的重叠度。
287
+ * @param a - 第一个关键词字符串
288
+ * @param b - 第二个关键词字符串
289
+ * @returns 重叠度(0-1),1 表示完全重叠
290
+ */
291
+ function keywordOverlap(a, b) {
292
+ const wordsA = new Set(a.toLowerCase().split(/[,\s,]+/).filter(Boolean));
293
+ const wordsB = new Set(b.toLowerCase().split(/[,\s,]+/).filter(Boolean));
294
+ if (wordsA.size === 0 || wordsB.size === 0)
295
+ return 0;
296
+ let overlap = 0;
297
+ for (const w of wordsA) {
298
+ if (wordsB.has(w))
299
+ overlap++;
300
+ }
301
+ return overlap / Math.min(wordsA.size, wordsB.size);
302
+ }
303
+ //# sourceMappingURL=knowledge_health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge_health.js","sourceRoot":"","sources":["../../../src/engine/knowledge/knowledge_health.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@ export declare function sortByPriority(entries: KnowledgeEntry[], routeDecision:
48
48
  }>;
49
49
  };
50
50
  /** 知识注入边界主入口,依次执行三道门并生成注入报告 */
51
- export declare function enforceKnowledgeInjectionBoundary(entries: KnowledgeEntry[], routeDecision: IntentRouteDecision | undefined, scopeFilters: string[], assets: ConsumableAssetRef[] | undefined, budget?: number, productFilters?: string[], contractRoot?: string): KnowledgeInjectionReport;
51
+ export declare function enforceKnowledgeInjectionBoundary(entries: KnowledgeEntry[], routeDecision: IntentRouteDecision | undefined, scopeFilters: string[], assets: ConsumableAssetRef[] | undefined, budget?: number, productFilters?: string[], contractRoot?: string, maxTokenBudget?: number): KnowledgeInjectionReport;
52
52
  /** 自治理验证知识注入报告的合规性 */
53
53
  export declare function validateInjectionReport(report: KnowledgeInjectionReport): InjectionGovernanceFinding[];
54
54
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge_injection_boundary.d.ts","sourceRoot":"","sources":["../../../src/engine/knowledge/knowledge_injection_boundary.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,wBAAwB,EAExB,iBAAiB,EAEjB,eAAe,EAEhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,2CAA2C,CAAC;AAKnD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,WAAW,GAAG,UAAU,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,UAAU,CAAC,CAAC;IACpB,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;CACxE;AA+FD,uBAAuB;AACvB,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AA+DD,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAmBrF;AAID,0CAA0C;AAC1C,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,cAAc,EAAE,EACzB,aAAa,EAAE,mBAAmB,GAAG,SAAS,EAC9C,YAAY,EAAE,MAAM,EAAE,EACtB,MAAM,EAAE,kBAAkB,EAAE,EAC5B,cAAc,GAAE,MAAM,EAAO,EAC7B,YAAY,CAAC,EAAE,MAAM,GACpB;IACD,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;IACvE,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACnC,CAsEA;AA4CD,iCAAiC;AACjC,wBAAgB,cAAc,CAC5B,OAAO,EAAE,cAAc,EAAE,EACzB,aAAa,EAAE,mBAAmB,GAAG,SAAS,EAC9C,MAAM,EAAE,kBAAkB,EAAE,EAC5B,MAAM,EAAE,MAAM,GACb;IACD,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;CACvE,CAuEA;AAMD,+BAA+B;AAC/B,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,cAAc,EAAE,EACzB,aAAa,EAAE,mBAAmB,GAAG,SAAS,EAC9C,YAAY,EAAE,MAAM,EAAE,EACtB,MAAM,EAAE,kBAAkB,EAAE,GAAG,SAAS,EACxC,MAAM,GAAE,MAAuB,EAC/B,cAAc,GAAE,MAAM,EAAO,EAC7B,YAAY,CAAC,EAAE,MAAM,GACpB,wBAAwB,CAiF1B;AAsFD,sBAAsB;AACtB,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,wBAAwB,GAAG,0BAA0B,EAAE,CA2HtG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,EAAE,CAO9E"}
1
+ {"version":3,"file":"knowledge_injection_boundary.d.ts","sourceRoot":"","sources":["../../../src/engine/knowledge/knowledge_injection_boundary.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,wBAAwB,EAExB,iBAAiB,EAEjB,eAAe,EAEhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,2CAA2C,CAAC;AAKnD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,WAAW,GAAG,UAAU,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,UAAU,CAAC,CAAC;IACpB,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;CACxE;AA+FD,uBAAuB;AACvB,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AA8DD,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAmBrF;AAID,0CAA0C;AAC1C,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,cAAc,EAAE,EACzB,aAAa,EAAE,mBAAmB,GAAG,SAAS,EAC9C,YAAY,EAAE,MAAM,EAAE,EACtB,MAAM,EAAE,kBAAkB,EAAE,EAC5B,cAAc,GAAE,MAAM,EAAO,EAC7B,YAAY,CAAC,EAAE,MAAM,GACpB;IACD,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;IACvE,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACnC,CAsEA;AA4CD,iCAAiC;AACjC,wBAAgB,cAAc,CAC5B,OAAO,EAAE,cAAc,EAAE,EACzB,aAAa,EAAE,mBAAmB,GAAG,SAAS,EAC9C,MAAM,EAAE,kBAAkB,EAAE,EAC5B,MAAM,EAAE,MAAM,GACb;IACD,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;CACvE,CAuEA;AAQD,+BAA+B;AAC/B,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,cAAc,EAAE,EACzB,aAAa,EAAE,mBAAmB,GAAG,SAAS,EAC9C,YAAY,EAAE,MAAM,EAAE,EACtB,MAAM,EAAE,kBAAkB,EAAE,GAAG,SAAS,EACxC,MAAM,GAAE,MAAuB,EAC/B,cAAc,GAAE,MAAM,EAAO,EAC7B,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,GAAE,MAAiC,GAChD,wBAAwB,CAiG1B;AAsFD,sBAAsB;AACtB,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,wBAAwB,GAAG,0BAA0B,EAAE,CA2HtG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,EAAE,CAO9E"}
@@ -138,12 +138,11 @@ function productsMatch(entryProducts, requestProducts) {
138
138
  return true;
139
139
  return entryProducts.some((p) => requestProducts.includes(p));
140
140
  }
141
- function assignPriorityTier(entry, routeDecision, assets) {
141
+ function assignPriorityTier(entry, routeDecision, _assets) {
142
142
  if (isRouteRequired(entry, routeDecision))
143
143
  return "route_required";
144
144
  const isProject = isProjectEntry(entry);
145
145
  const isCore = isCoreEntry(entry);
146
- const cm = getConsumptionMode(entry, assets);
147
146
  // 产品约束条目:仅限非项目级别的 domain/product_profile 条目
148
147
  if (!isProject && (entry.type === "domain" || entry.file_path.includes("product_profiles"))) {
149
148
  return "product_constraints";
@@ -349,8 +348,10 @@ export function sortByPriority(entries, routeDecision, assets, budget) {
349
348
  }
350
349
  // ── 主入口 ──
351
350
  const DEFAULT_BUDGET = 5;
351
+ /** 默认 token 预算 — 按字符/4 估算,限制注入知识总量 */
352
+ const DEFAULT_MAX_TOKEN_BUDGET = 4000;
352
353
  /** 知识注入边界主入口,依次执行三道门并生成注入报告 */
353
- export function enforceKnowledgeInjectionBoundary(entries, routeDecision, scopeFilters, assets, budget = DEFAULT_BUDGET, productFilters = [], contractRoot) {
354
+ export function enforceKnowledgeInjectionBoundary(entries, routeDecision, scopeFilters, assets, budget = DEFAULT_BUDGET, productFilters = [], contractRoot, maxTokenBudget = DEFAULT_MAX_TOKEN_BUDGET) {
354
355
  debugLog("知识注入边界: 主入口开始执行, 总条目数=" + entries.length + ", 预算=" + budget + ", scope过滤=" + scopeFilters.length + ", product过滤=" + productFilters.length);
355
356
  const allAssets = assets ?? listBuiltinConsumableAssets();
356
357
  const allExcluded = [];
@@ -378,10 +379,25 @@ export function enforceKnowledgeInjectionBoundary(entries, routeDecision, scopeF
378
379
  const gate3 = sortByPriority(gate2.injectable, routeDecision, allAssets, budget);
379
380
  allExcluded.push(...gate3.dropped);
380
381
  debugLog("知识注入边界: 门3结果, 排序=" + gate3.sorted.length + ", 冲突=" + gate3.conflicts.length + ", 裁剪=" + gate3.dropped.length);
382
+ // 门3b: Token 预算约束 — 在条目数预算之上额外限制总 token 量
383
+ let tokenUsed = 0;
384
+ const tokenFiltered = gate3.sorted.filter((entry) => {
385
+ const bodyLen = entry.body;
386
+ const estimated = Math.ceil((bodyLen?.length ?? 0) / 4);
387
+ if (tokenUsed + estimated > maxTokenBudget) {
388
+ allExcluded.push({ id: entry.id, name: entry.name, reason: "token_budget_exceeded" });
389
+ return false;
390
+ }
391
+ tokenUsed += estimated;
392
+ return true;
393
+ });
394
+ if (tokenFiltered.length < gate3.sorted.length) {
395
+ debugLog("知识注入边界: Token预算裁剪, 裁剪前=" + gate3.sorted.length + ", 裁剪后=" + tokenFiltered.length + ", token已用=" + tokenUsed);
396
+ }
381
397
  // 从排序结果中分离 required 和 supporting
382
398
  const injectedRequired = [];
383
399
  const injectedSupporting = [];
384
- for (const entry of gate3.sorted) {
400
+ for (const entry of tokenFiltered) {
385
401
  const cm = getConsumptionMode(entry, allAssets);
386
402
  const tier = assignPriorityTier(entry, routeDecision, allAssets);
387
403
  const ref = entryToRef(entry, tier, cm);
@@ -413,7 +429,7 @@ export function enforceKnowledgeInjectionBoundary(entries, routeDecision, scopeF
413
429
  conflicts: gate3.conflicts,
414
430
  budget: {
415
431
  requested: entries.length,
416
- injected: gate3.sorted.length,
432
+ injected: tokenFiltered.length,
417
433
  advisory: gate2.advisory.length,
418
434
  dropped: allExcluded.length,
419
435
  },