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
@@ -0,0 +1,567 @@
1
+ /**
2
+ * 隐私/机密/数据主权合约 — 扫描与评估
3
+ *
4
+ * 包含敏感信息检测、脱敏处理、外发检查、prompt 注入检查、
5
+ * 治理验证和统一隐私门禁评估等功能。
6
+ */
7
+ import crypto from "node:crypto";
8
+ import { debugLog } from "../core/logger.js";
9
+ import { DEFAULT_HANDLING, CONTEXT_HANDLING, FORBIDDEN_READ_PATTERNS, CONFIRMATION_READ_PATTERNS, TEXT_SECRET_PATTERNS, } from "./privacy_patterns.js";
10
+ import { isGrantValid, isGrantExpired, checkGrantPermission } from "./privacy_grants.js";
11
+ // ── 检测辅助函数 ──
12
+ /**
13
+ * 检测来源的敏感等级。
14
+ * @param sourceRef - 来源引用路径
15
+ * @param contentHints - 内容提示关键词(可选)
16
+ * @returns 数据敏感标签
17
+ */
18
+ export function detectSensitivity(sourceRef, contentHints) {
19
+ debugLog(`隐私契约: 检测敏感等级 — ${sourceRef}`);
20
+ // 优先检查禁止模式
21
+ for (const { pattern, label } of FORBIDDEN_READ_PATTERNS) {
22
+ if (pattern.test(sourceRef)) {
23
+ return {
24
+ label,
25
+ source_ref: sourceRef,
26
+ detected_by: [`pattern: ${pattern.source}`],
27
+ confidence: 0.9,
28
+ handling: "forbidden",
29
+ };
30
+ }
31
+ }
32
+ // 检查确认模式
33
+ for (const { pattern, label } of CONFIRMATION_READ_PATTERNS) {
34
+ if (pattern.test(sourceRef)) {
35
+ return {
36
+ label,
37
+ source_ref: sourceRef,
38
+ detected_by: [`pattern: ${pattern.source}`],
39
+ confidence: 0.7,
40
+ handling: "require_human",
41
+ };
42
+ }
43
+ }
44
+ // 基于内容的检测
45
+ if (contentHints && contentHints.length > 0) {
46
+ const joined = contentHints.join(" ");
47
+ if (/token|api[_-]?key|secret[_-]?key|private[_-]?key/i.test(joined)) {
48
+ return {
49
+ label: "secret",
50
+ source_ref: sourceRef,
51
+ detected_by: ["content_keyword"],
52
+ confidence: 0.6,
53
+ handling: "forbidden",
54
+ };
55
+ }
56
+ if (/\bpassword\b|\bpasswd\b/i.test(joined)) {
57
+ return {
58
+ label: "credential",
59
+ source_ref: sourceRef,
60
+ detected_by: ["content_keyword"],
61
+ confidence: 0.6,
62
+ handling: "forbidden",
63
+ };
64
+ }
65
+ if (/\b\d{11}\b/.test(joined) || /\b[\w.+-]+@[\w-]+\.[\w.]+\b/.test(joined)) {
66
+ return {
67
+ label: "pii",
68
+ source_ref: sourceRef,
69
+ detected_by: ["content_pattern"],
70
+ confidence: 0.5,
71
+ handling: "require_human",
72
+ };
73
+ }
74
+ }
75
+ // 常规代码文件 (.ts, .js, .py, .go, .rs, .java, .tsx, .jsx) 默认为 internal
76
+ const codeExtensions = /\.(ts|tsx|js|jsx|py|go|rs|java|c|cpp|h|rb|php|swift|kt)$/i;
77
+ if (codeExtensions.test(sourceRef)) {
78
+ return {
79
+ label: "internal",
80
+ source_ref: sourceRef,
81
+ detected_by: ["file_extension"],
82
+ confidence: 0.7,
83
+ handling: "allow",
84
+ };
85
+ }
86
+ return {
87
+ label: "unknown",
88
+ source_ref: sourceRef,
89
+ detected_by: ["no_match"],
90
+ confidence: 0.3,
91
+ handling: DEFAULT_HANDLING["unknown"],
92
+ };
93
+ }
94
+ // ── 脱敏处理 ──
95
+ /**
96
+ * 对内容进行脱敏处理。
97
+ * @param content - 原始内容
98
+ * @param label - 敏感标签
99
+ * @param sourceRef - 来源引用(可选)
100
+ * @returns 脱敏结果和脱敏记录
101
+ */
102
+ export function redactContent(content, label, sourceRef) {
103
+ debugLog(`隐私契约: 开始内容脱敏 — 等级: ${label}, 来源: ${sourceRef ?? "未知"}`);
104
+ let redacted = content;
105
+ const fieldsRedacted = [];
106
+ if (label === "secret" || label === "credential") {
107
+ redacted = "***REDACTED***";
108
+ fieldsRedacted.push("all");
109
+ }
110
+ else if (label === "pii") {
111
+ redacted = redactPII(content);
112
+ fieldsRedacted.push("phone", "email", "id_number", "address");
113
+ }
114
+ else if (label === "customer_data" || label === "production_data") {
115
+ redacted = summarizeOnly(content);
116
+ fieldsRedacted.push("raw_data");
117
+ }
118
+ else if (label === "confidential") {
119
+ redacted = summarizeOnly(content);
120
+ fieldsRedacted.push("details");
121
+ }
122
+ return {
123
+ redacted,
124
+ record: {
125
+ source_ref: sourceRef ?? "",
126
+ redaction_type: labelToRedactionType(label),
127
+ after_hash: simpleHash(redacted),
128
+ fields_redacted: fieldsRedacted,
129
+ },
130
+ };
131
+ }
132
+ function redactPII(text) {
133
+ let result = text;
134
+ // 手机号: 138****1234
135
+ result = result.replace(/1[3-9]\d(\d{4})\d{4}/g, (m, last) => m.slice(0, 3) + "****" + last);
136
+ // 邮箱: a***@domain.com
137
+ result = result.replace(/([\w.+-])[\w.+-]*@([\w-]+\.[\w.]+)/g, (_, first, domain) => first + "***@" + domain);
138
+ // 身份证号: 保留后 4 位
139
+ result = result.replace(/\b\d{14}(\d{4})\b/g, "**************$1");
140
+ // Address: keep city-level (省/市 + following district, redact detail)
141
+ result = result.replace(/([一-龥]{2,6}(?:省|市|自治区|特别行政区))([一-龥]{2,6}(?:市|区|县|镇))([一-龥\d]+路?[一-龥\d]+)/g, "$1$2***");
142
+ return result;
143
+ }
144
+ function summarizeOnly(text) {
145
+ if (text.length <= 100)
146
+ return `[摘要] ${text.slice(0, 50)}...`;
147
+ return `[摘要] ${text.slice(0, 80)}... (共 ${text.length} 字符)`;
148
+ }
149
+ function labelToRedactionType(label) {
150
+ const map = {
151
+ secret: "secret_mask",
152
+ credential: "credential_removed",
153
+ pii: "pii_mask",
154
+ customer_data: "customer_data_summary",
155
+ production_data: "production_data_summary",
156
+ confidential: "path_only",
157
+ };
158
+ return map[label] ?? "hash_only";
159
+ }
160
+ function simpleHash(text) {
161
+ return crypto.createHash("sha256").update(text).digest("hex").slice(0, 16);
162
+ }
163
+ // ── 外发检查 ──
164
+ /**
165
+ * 检查内容是否可以外部发送。
166
+ * @param content - 待发送内容
167
+ * @param sensitivity - 敏感标签
168
+ * @param grants - 授权列表
169
+ * @returns 外发检查结果
170
+ */
171
+ export function checkExternalSend(content, sensitivity, grants) {
172
+ debugLog(`隐私契约: 检查外发许可 — 等级: ${sensitivity.label}`);
173
+ const handling = CONTEXT_HANDLING[sensitivity.label].external_send;
174
+ if (handling === "forbidden") {
175
+ debugLog(`隐私契约: 外发拒绝 — 等级 ${sensitivity.label} 禁止外发`);
176
+ return { allowed: false, reason: `敏感等级 ${sensitivity.label} 禁止外发`, requiresRedaction: false };
177
+ }
178
+ if (handling === "allow") {
179
+ return { allowed: true, reason: "", requiresRedaction: false };
180
+ }
181
+ // require_human — 检查授权
182
+ for (const grant of grants) {
183
+ const perm = checkGrantPermission(grant, "external_send", sensitivity.label);
184
+ if (perm.allowed) {
185
+ debugLog(`隐私契约: 外发通过 — 授权 ${grant.grant_id} 允许(已脱敏)`);
186
+ const { redacted } = redactContent(content, sensitivity.label);
187
+ return { allowed: true, reason: `授权 ${grant.grant_id} 允许外发(已脱敏)`, requiresRedaction: true, redactedContent: redacted };
188
+ }
189
+ }
190
+ debugLog(`隐私契约: 外发拒绝 — 等级 ${sensitivity.label} 需要人工授权`);
191
+ return {
192
+ allowed: false,
193
+ reason: `敏感等级 ${sensitivity.label} 需要人工授权才能外发`,
194
+ requiresRedaction: true,
195
+ };
196
+ }
197
+ // ── Prompt 注入检查 ──
198
+ /**
199
+ * 检查数据是否可以注入 prompt。
200
+ * @param sensitivity - 敏感标签
201
+ * @param grants - 授权列表
202
+ * @returns 注入检查结果
203
+ */
204
+ export function checkPromptInjection(sensitivity, grants) {
205
+ debugLog(`隐私契约: 检查 prompt 注入许可 — 等级: ${sensitivity.label}`);
206
+ const handling = CONTEXT_HANDLING[sensitivity.label].prompt_injection;
207
+ if (handling === "forbidden") {
208
+ debugLog(`隐私契约: 注入拒绝 — 等级 ${sensitivity.label} 禁止注入 prompt`);
209
+ return { allowed: false, reason: `敏感等级 ${sensitivity.label} 禁止注入 prompt`, handling };
210
+ }
211
+ if (handling === "allow") {
212
+ return { allowed: true, reason: "", handling };
213
+ }
214
+ // 检查 prompt_inject 授权
215
+ for (const grant of grants) {
216
+ const perm = checkGrantPermission(grant, "prompt_inject", sensitivity.label);
217
+ if (perm.allowed) {
218
+ return { allowed: true, reason: `授权 ${grant.grant_id} 允许注入(${handling})`, handling };
219
+ }
220
+ }
221
+ debugLog(`隐私契约: 注入拒绝 — 等级 ${sensitivity.label} 需要 ${handling} 处理`);
222
+ return { allowed: false, reason: `敏感等级 ${sensitivity.label} 需要 ${handling} 处理`, handling };
223
+ }
224
+ // ── 中文反馈 ──
225
+ /**
226
+ * 构建隐私处理反馈信息。
227
+ * @param options - 反馈选项
228
+ * @returns 格式化的反馈文本
229
+ */
230
+ export function buildPrivacyFeedback(options) {
231
+ debugLog(`隐私契约: 构建隐私反馈 — 未读: ${options.notRead.length}, 脱敏: ${options.redacted.length}, 需授权: ${options.requiresAuth.length}`);
232
+ const lines = [];
233
+ if (options.notRead.length > 0) {
234
+ lines.push(`未读取的内容: ${options.notRead.join(", ")}`);
235
+ }
236
+ if (options.redacted.length > 0) {
237
+ lines.push(`已脱敏的内容: ${options.redacted.join(", ")}`);
238
+ }
239
+ if (options.requiresAuth.length > 0) {
240
+ lines.push(`需要授权的内容: ${options.requiresAuth.join(", ")}`);
241
+ }
242
+ if (options.notInPrompt.length > 0) {
243
+ lines.push(`未进入 prompt 的内容: ${options.notInPrompt.join(", ")}`);
244
+ }
245
+ if (options.blocked) {
246
+ lines.push(`⚠️ 存在敏感信息阻断`);
247
+ }
248
+ if (options.externalRedaction) {
249
+ lines.push(`外发前已完成 redaction check`);
250
+ }
251
+ return lines.join("\n");
252
+ }
253
+ // ── 治理验证 ──
254
+ /**
255
+ * 验证隐私契约合规性。
256
+ * @param options.sensitivities - 敏感标签列表
257
+ * @param options.grants - 授权列表
258
+ * @param options.redactionRecords - 脱敏记录列表
259
+ * @param options.promptInjections - prompt 注入列表
260
+ * @param options.taskContextStores - 任务上下文存储列表
261
+ * @param options.artifactStores - 产物存储列表
262
+ * @param options.externalSends - 外部发送列表
263
+ * @returns 治理发现列表
264
+ */
265
+ export function validatePrivacyContract(options) {
266
+ const findings = [];
267
+ debugLog(`隐私契约: 开始治理验证 — 检查 ${options.sensitivities.length} 个敏感来源`);
268
+ // 规则 1: secret 不得进入 prompt
269
+ for (const inj of options.promptInjections) {
270
+ if (inj.label === "secret" || inj.label === "credential") {
271
+ findings.push({
272
+ severity: "hard_fail",
273
+ rule: "gc-secret-no-prompt",
274
+ source_ref: inj.source_ref,
275
+ message: `secret/credential (${inj.label}) 不得注入 prompt — ${inj.source_ref}`,
276
+ });
277
+ }
278
+ }
279
+ // 规则 2: secret 不得写入 TaskContext
280
+ for (const store of options.taskContextStores) {
281
+ if (store.label === "secret" || store.label === "credential") {
282
+ findings.push({
283
+ severity: "hard_fail",
284
+ rule: "gc-secret-no-taskcontext",
285
+ source_ref: store.source_ref,
286
+ message: `secret/credential (${store.label}) 不得写入 TaskContext — ${store.source_ref}`,
287
+ });
288
+ }
289
+ }
290
+ // 规则 3: secret 不得写入 artifact/report
291
+ for (const art of options.artifactStores) {
292
+ if (art.label === "secret" || art.label === "credential") {
293
+ findings.push({
294
+ severity: "hard_fail",
295
+ rule: "gc-secret-no-artifact",
296
+ source_ref: art.source_ref,
297
+ message: `secret/credential (${art.label}) 不得写入 artifact — ${art.source_ref}`,
298
+ });
299
+ }
300
+ }
301
+ // 规则 4: PII 未脱敏外发
302
+ for (const ext of options.externalSends) {
303
+ if (ext.label === "pii" || ext.label === "customer_data" || ext.label === "production_data") {
304
+ const hasRedaction = options.redactionRecords.some((r) => r.source_ref === ext.source_ref);
305
+ if (!hasRedaction) {
306
+ findings.push({
307
+ severity: "hard_fail",
308
+ rule: "gc-pii-no-unredacted-external",
309
+ source_ref: ext.source_ref,
310
+ message: `${ext.label} 未脱敏不得外发 — ${ext.source_ref}`,
311
+ });
312
+ }
313
+ }
314
+ }
315
+ // 规则 5: secret 外发 hard fail
316
+ for (const ext of options.externalSends) {
317
+ if (ext.label === "secret" || ext.label === "credential") {
318
+ findings.push({
319
+ severity: "hard_fail",
320
+ rule: "gc-secret-no-external",
321
+ source_ref: ext.source_ref,
322
+ message: `secret/credential (${ext.label}) 外发 hard fail — ${ext.source_ref}`,
323
+ });
324
+ }
325
+ }
326
+ // 规则 6: DataAccessGrant 过期后不得使用
327
+ for (const grant of options.grants) {
328
+ if (isGrantExpired(grant)) {
329
+ findings.push({
330
+ severity: "hard_fail",
331
+ rule: "gc-grant-expired",
332
+ source_ref: grant.grant_id,
333
+ message: `授权 ${grant.grant_id} 已过期,不得继续使用`,
334
+ });
335
+ }
336
+ }
337
+ // 规则 7: unknown sensitivity 不能当 public
338
+ for (const s of options.sensitivities) {
339
+ if (s.label === "unknown" && s.handling === "allow") {
340
+ findings.push({
341
+ severity: "hard_fail",
342
+ rule: "gc-unknown-not-public",
343
+ source_ref: s.source_ref,
344
+ message: `unknown sensitivity 不能当做 public 处理 — ${s.source_ref}`,
345
+ });
346
+ }
347
+ }
348
+ // 规则 8: private evidence 不得注入 prompt
349
+ for (const s of options.sensitivities) {
350
+ if (s.label === "secret" || s.label === "credential") {
351
+ const injected = options.promptInjections.some((i) => i.source_ref === s.source_ref);
352
+ if (injected) {
353
+ findings.push({
354
+ severity: "hard_fail",
355
+ rule: "gc-private-no-prompt",
356
+ source_ref: s.source_ref,
357
+ message: `private evidence (${s.label}) 不得注入 prompt — ${s.source_ref}`,
358
+ });
359
+ }
360
+ }
361
+ }
362
+ // 规则 9: 每次脱敏必须有 RedactionRecord
363
+ const redactedSources = new Set(options.redactionRecords.map((r) => r.source_ref));
364
+ for (const s of options.sensitivities) {
365
+ if (s.handling === "redact" && !redactedSources.has(s.source_ref)) {
366
+ findings.push({
367
+ severity: "advisory",
368
+ rule: "gc-redaction-record-missing",
369
+ source_ref: s.source_ref,
370
+ message: `敏感来源 ${s.source_ref} 标记为脱敏但缺少 RedactionRecord`,
371
+ });
372
+ }
373
+ }
374
+ return findings;
375
+ }
376
+ /**
377
+ * 扫描文本中的敏感信息。
378
+ * @param text - 待扫描文本
379
+ * @param sourceRef - 来源引用
380
+ * @returns 检测到的敏感标签列表
381
+ */
382
+ export function scanTextSensitivity(text, sourceRef) {
383
+ debugLog(`隐私契约: 扫描文本敏感信息 — 来源: ${sourceRef}`);
384
+ const labels = [];
385
+ for (const { pattern, label, fields } of TEXT_SECRET_PATTERNS) {
386
+ if (pattern.test(text)) {
387
+ labels.push({
388
+ label,
389
+ source_ref: sourceRef,
390
+ detected_by: [`text_pattern:${fields.join(",")}`],
391
+ confidence: 0.85,
392
+ handling: (label === "pii" || label === "production_data" || label === "customer_data") ? "require_human" : "forbidden",
393
+ });
394
+ }
395
+ }
396
+ return labels;
397
+ }
398
+ /**
399
+ * 扫描来源引用的敏感等级。
400
+ * @param sourceRef - 来源引用路径
401
+ * @returns 数据敏感标签
402
+ */
403
+ export function scanSourceRefSensitivity(sourceRef) {
404
+ debugLog(`隐私契约: 扫描来源敏感等级 — ${sourceRef}`);
405
+ return detectSensitivity(sourceRef);
406
+ }
407
+ /**
408
+ * 对文本中的敏感信息进行脱敏处理。
409
+ * @param text - 原始文本
410
+ * @param sourceRef - 来源引用(可选)
411
+ * @returns 脱敏结果和脱敏记录
412
+ */
413
+ export function redactSensitiveText(text, sourceRef) {
414
+ let result = text;
415
+ const records = [];
416
+ const fieldsRedacted = [];
417
+ debugLog(`隐私契约: 开始文本脱敏 — 来源: ${sourceRef ?? '未知'}`);
418
+ // API 密钥 / 令牌
419
+ if (/sk-[a-zA-Z0-9]{32,}/.test(result)) {
420
+ result = result.replace(/sk-[a-zA-Z0-9]{32,}/g, "sk-****REDACTED****");
421
+ fieldsRedacted.push("api_key");
422
+ }
423
+ // AWS 访问密钥
424
+ if (/AKIA[0-9A-Z]{16}/.test(result)) {
425
+ result = result.replace(/AKIA[0-9A-Z]{16}/g, "AKIA****REDACTED****");
426
+ fieldsRedacted.push("aws_access_key");
427
+ }
428
+ // AWS 秘密访问密钥值
429
+ result = result.replace(/(aws_secret_access_key\s*=\s*['"])[^'"]+(['"])/g, "$1****REDACTED****$2");
430
+ // 密码值
431
+ result = result.replace(/(password\s*=\s*['"])[^'"]{4,}(['"])/gi, "$1****REDACTED****$2");
432
+ // 密钥值
433
+ result = result.replace(/(secret_key\s*=\s*['"])[^'"]+(['"])/gi, "$1****REDACTED****$2");
434
+ // JWT 密钥值
435
+ result = result.replace(/(jwt_secret\s*=\s*['"])[^'"]+(['"])/gi, "$1****REDACTED****$2");
436
+ // 个人身份信息
437
+ const piiResult = redactPII(result);
438
+ if (piiResult !== result) {
439
+ result = piiResult;
440
+ fieldsRedacted.push("phone", "email", "id_number", "address");
441
+ }
442
+ if (fieldsRedacted.length > 0) {
443
+ debugLog(`隐私契约: 文本脱敏完成 — 脱敏字段: ${fieldsRedacted.join(", ")}`);
444
+ records.push({
445
+ source_ref: sourceRef ?? "",
446
+ redaction_type: "secret_mask",
447
+ after_hash: simpleHash(result),
448
+ fields_redacted: [...new Set(fieldsRedacted)],
449
+ });
450
+ }
451
+ return { redacted: result, records };
452
+ }
453
+ /**
454
+ * 评估隐私门禁,决定是否阻断操作。
455
+ * @param options - 门禁评估选项
456
+ * @returns 门禁结果,包含是否通过、阻断源和警告
457
+ */
458
+ export function evaluatePrivacyGate(params) {
459
+ const findings = [];
460
+ const blockedSources = [];
461
+ debugLog(`隐私契约: 开始隐私门禁评估`);
462
+ const allLabels = [];
463
+ const redactionRecords = [];
464
+ let hardFail = false;
465
+ // 扫描意图文本
466
+ if (params.intent) {
467
+ const intentLabels = scanTextSensitivity(params.intent, "intent");
468
+ for (const l of intentLabels) {
469
+ allLabels.push(l);
470
+ if (l.label === "secret" || l.label === "credential") {
471
+ hardFail = true;
472
+ blockedSources.push("intent");
473
+ findings.push({ severity: "hard_fail", rule: "gc-intent-secret", source_ref: "intent", message: `用户意图包含 ${l.label}(${l.detected_by.join(", ")}),禁止执行` });
474
+ }
475
+ }
476
+ }
477
+ // 按来源引用扫描输入材料
478
+ if (params.input_materials) {
479
+ for (const m of params.input_materials) {
480
+ const refLabel = scanSourceRefSensitivity(m.path_or_ref);
481
+ allLabels.push(refLabel);
482
+ if (refLabel.handling === "forbidden") {
483
+ hardFail = true;
484
+ blockedSources.push(m.path_or_ref);
485
+ findings.push({ severity: "hard_fail", rule: "gc-material-forbidden", source_ref: m.path_or_ref, message: `输入材料 ${m.path_or_ref} 匹配禁止模式(${refLabel.label}),禁止读取` });
486
+ }
487
+ else if (refLabel.handling === "require_human") {
488
+ const hasGrant = (params.grants ?? []).some(g => isGrantValid(g) && g.sensitivity_allowed.includes(refLabel.label) && g.allowed_operations.includes("read"));
489
+ if (!hasGrant) {
490
+ blockedSources.push(m.path_or_ref);
491
+ findings.push({ severity: "advisory", rule: "gc-material-requires-confirmation", source_ref: m.path_or_ref, message: `输入材料 ${m.path_or_ref} 标记为 ${refLabel.label},需人工确认后读取` });
492
+ }
493
+ }
494
+ // 如果提供了内容也进行扫描
495
+ if (m.content) {
496
+ const contentLabels = scanTextSensitivity(m.content, m.path_or_ref);
497
+ for (const cl of contentLabels) {
498
+ if (cl.label === "secret" || cl.label === "credential") {
499
+ hardFail = true;
500
+ blockedSources.push(m.path_or_ref);
501
+ findings.push({ severity: "hard_fail", rule: "gc-content-secret", source_ref: m.path_or_ref, message: `输入材料内容包含 ${cl.label}(${cl.detected_by.join(", ")}),禁止执行` });
502
+ }
503
+ allLabels.push(cl);
504
+ }
505
+ }
506
+ }
507
+ }
508
+ // 检查 task_context_stores 是否包含敏感内容
509
+ if (params.task_context_stores) {
510
+ for (const s of params.task_context_stores) {
511
+ if (s.content) {
512
+ const labels = scanTextSensitivity(s.content, s.source_ref);
513
+ for (const l of labels) {
514
+ if (l.label === "secret" || l.label === "credential") {
515
+ hardFail = true;
516
+ findings.push({ severity: "hard_fail", rule: "gc-taskcontext-secret", source_ref: s.source_ref, message: `TaskContext 写入内容包含 ${l.label},禁止保存` });
517
+ }
518
+ }
519
+ }
520
+ }
521
+ }
522
+ // 检查外发内容
523
+ if (params.external_sends) {
524
+ for (const e of params.external_sends) {
525
+ const labels = e.content ? scanTextSensitivity(e.content, e.source_ref) : [];
526
+ const refLabel = scanSourceRefSensitivity(e.source_ref);
527
+ if (refLabel.label === "secret" || refLabel.label === "credential") {
528
+ hardFail = true;
529
+ findings.push({ severity: "hard_fail", rule: "gc-external-secret", source_ref: e.source_ref, message: `外发来源 ${e.source_ref} 标记为 ${refLabel.label},禁止外发` });
530
+ }
531
+ for (const l of labels) {
532
+ if (l.label === "secret" || l.label === "credential") {
533
+ hardFail = true;
534
+ findings.push({ severity: "hard_fail", rule: "gc-external-content-secret", source_ref: e.source_ref, message: `外发内容包含 ${l.label},禁止外发` });
535
+ }
536
+ }
537
+ }
538
+ }
539
+ // 如有需要,脱敏意图文本
540
+ let redactedText;
541
+ if (params.intent) {
542
+ const { redacted, records } = redactSensitiveText(params.intent, "intent");
543
+ if (records.length > 0) {
544
+ redactedText = redacted;
545
+ redactionRecords.push(...records);
546
+ }
547
+ }
548
+ if (hardFail) {
549
+ debugLog(`隐私契约: 隐私门禁阻断 — 发现 ${blockedSources.length} 个阻断源`);
550
+ }
551
+ else if (findings.length > 0) {
552
+ debugLog(`隐私契约: 隐私门禁通过 — 但有 ${findings.length} 个警告`);
553
+ }
554
+ else {
555
+ debugLog(`隐私契约: 隐私门禁通过`);
556
+ }
557
+ return {
558
+ allowed: !hardFail,
559
+ hard_fail: hardFail,
560
+ blocked_sources: [...new Set(blockedSources)],
561
+ findings,
562
+ redacted_text: redactedText,
563
+ redaction_records: redactionRecords,
564
+ labels: allLabels,
565
+ };
566
+ }
567
+ //# sourceMappingURL=privacy_scanning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy_scanning.js","sourceRoot":"","sources":["../../../src/engine/audit/privacy_scanning.ts"],"names":[],"mappings":"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"}