soloforge 1.2.8 → 1.2.10

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 (405) hide show
  1. package/README.md +105 -321
  2. package/dist/adapters/claude_code/claude_md.d.ts +5 -0
  3. package/dist/adapters/claude_code/claude_md.d.ts.map +1 -1
  4. package/dist/adapters/claude_code/claude_md.js +6 -0
  5. package/dist/adapters/claude_code/claude_md.js.map +1 -1
  6. package/dist/adapters/claude_code/hooks.d.ts +4 -0
  7. package/dist/adapters/claude_code/hooks.d.ts.map +1 -1
  8. package/dist/adapters/claude_code/hooks.js +5 -0
  9. package/dist/adapters/claude_code/hooks.js.map +1 -1
  10. package/dist/adapters/claude_code/server.d.ts.map +1 -1
  11. package/dist/adapters/claude_code/server.js +9 -21
  12. package/dist/adapters/claude_code/server.js.map +1 -1
  13. package/dist/adapters/claude_code/tools.d.ts +5 -0
  14. package/dist/adapters/claude_code/tools.d.ts.map +1 -1
  15. package/dist/adapters/claude_code/tools.js +619 -205
  16. package/dist/adapters/claude_code/tools.js.map +1 -1
  17. package/dist/adapters/codex/codex_config.d.ts +9 -0
  18. package/dist/adapters/codex/codex_config.d.ts.map +1 -1
  19. package/dist/adapters/codex/codex_config.js +11 -3
  20. package/dist/adapters/codex/codex_config.js.map +1 -1
  21. package/dist/adapters/codex/codex_rules.d.ts +5 -0
  22. package/dist/adapters/codex/codex_rules.d.ts.map +1 -1
  23. package/dist/adapters/codex/codex_rules.js +8 -1
  24. package/dist/adapters/codex/codex_rules.js.map +1 -1
  25. package/dist/adapters/shared/workflow_template.d.ts +5 -0
  26. package/dist/adapters/shared/workflow_template.d.ts.map +1 -1
  27. package/dist/adapters/shared/workflow_template.js +32 -79
  28. package/dist/adapters/shared/workflow_template.js.map +1 -1
  29. package/dist/adapters/trae/trae_config.d.ts +4 -0
  30. package/dist/adapters/trae/trae_config.d.ts.map +1 -1
  31. package/dist/adapters/trae/trae_config.js +5 -7
  32. package/dist/adapters/trae/trae_config.js.map +1 -1
  33. package/dist/adapters/trae/trae_rules.d.ts +5 -0
  34. package/dist/adapters/trae/trae_rules.d.ts.map +1 -1
  35. package/dist/adapters/trae/trae_rules.js +7 -1
  36. package/dist/adapters/trae/trae_rules.js.map +1 -1
  37. package/dist/bin/config_commands.d.ts +33 -0
  38. package/dist/bin/config_commands.d.ts.map +1 -0
  39. package/dist/bin/config_commands.js +222 -0
  40. package/dist/bin/config_commands.js.map +1 -0
  41. package/dist/bin/soloforge.js +609 -119
  42. package/dist/bin/soloforge.js.map +1 -1
  43. package/dist/engine/artifact_contract_registry.d.ts +138 -0
  44. package/dist/engine/artifact_contract_registry.d.ts.map +1 -0
  45. package/dist/engine/artifact_contract_registry.js +427 -0
  46. package/dist/engine/artifact_contract_registry.js.map +1 -0
  47. package/dist/engine/audit_pool.d.ts +40 -0
  48. package/dist/engine/audit_pool.d.ts.map +1 -1
  49. package/dist/engine/audit_pool.js +37 -1
  50. package/dist/engine/audit_pool.js.map +1 -1
  51. package/dist/engine/audit_sampler.d.ts +5 -0
  52. package/dist/engine/audit_sampler.d.ts.map +1 -1
  53. package/dist/engine/audit_sampler.js +6 -0
  54. package/dist/engine/audit_sampler.js.map +1 -1
  55. package/dist/engine/audit_verifier.d.ts.map +1 -1
  56. package/dist/engine/audit_verifier.js +5 -1
  57. package/dist/engine/audit_verifier.js.map +1 -1
  58. package/dist/engine/batch1_manifest.d.ts +61 -0
  59. package/dist/engine/batch1_manifest.d.ts.map +1 -0
  60. package/dist/engine/batch1_manifest.js +220 -0
  61. package/dist/engine/batch1_manifest.js.map +1 -0
  62. package/dist/engine/batch1_reality_gate.d.ts +40 -0
  63. package/dist/engine/batch1_reality_gate.d.ts.map +1 -0
  64. package/dist/engine/batch1_reality_gate.js +290 -0
  65. package/dist/engine/batch1_reality_gate.js.map +1 -0
  66. package/dist/engine/batch1_scenario_registry.d.ts +62 -0
  67. package/dist/engine/batch1_scenario_registry.d.ts.map +1 -0
  68. package/dist/engine/batch1_scenario_registry.js +392 -0
  69. package/dist/engine/batch1_scenario_registry.js.map +1 -0
  70. package/dist/engine/batch1_scenario_runners.d.ts +42 -0
  71. package/dist/engine/batch1_scenario_runners.d.ts.map +1 -0
  72. package/dist/engine/batch1_scenario_runners.js +292 -0
  73. package/dist/engine/batch1_scenario_runners.js.map +1 -0
  74. package/dist/engine/capability_action_advisor.d.ts +3 -0
  75. package/dist/engine/capability_action_advisor.d.ts.map +1 -1
  76. package/dist/engine/capability_action_advisor.js +10 -0
  77. package/dist/engine/capability_action_advisor.js.map +1 -1
  78. package/dist/engine/capability_registry.d.ts +21 -0
  79. package/dist/engine/capability_registry.d.ts.map +1 -1
  80. package/dist/engine/capability_registry.js +113 -0
  81. package/dist/engine/capability_registry.js.map +1 -1
  82. package/dist/engine/capability_state_store.d.ts +63 -0
  83. package/dist/engine/capability_state_store.d.ts.map +1 -1
  84. package/dist/engine/capability_state_store.js +49 -1
  85. package/dist/engine/capability_state_store.js.map +1 -1
  86. package/dist/engine/change_coordinator.d.ts.map +1 -1
  87. package/dist/engine/change_coordinator.js +5 -4
  88. package/dist/engine/change_coordinator.js.map +1 -1
  89. package/dist/engine/classifier.d.ts +15 -5
  90. package/dist/engine/classifier.d.ts.map +1 -1
  91. package/dist/engine/classifier.js +70 -69
  92. package/dist/engine/classifier.js.map +1 -1
  93. package/dist/engine/code_reviewer.d.ts +14 -0
  94. package/dist/engine/code_reviewer.d.ts.map +1 -1
  95. package/dist/engine/code_reviewer.js +109 -10
  96. package/dist/engine/code_reviewer.js.map +1 -1
  97. package/dist/engine/cognitive_anchor.d.ts +14 -0
  98. package/dist/engine/cognitive_anchor.d.ts.map +1 -1
  99. package/dist/engine/cognitive_anchor.js +26 -2
  100. package/dist/engine/cognitive_anchor.js.map +1 -1
  101. package/dist/engine/command_execution_contract.d.ts +226 -0
  102. package/dist/engine/command_execution_contract.d.ts.map +1 -0
  103. package/dist/engine/command_execution_contract.js +571 -0
  104. package/dist/engine/command_execution_contract.js.map +1 -0
  105. package/dist/engine/confidence_scorer.d.ts.map +1 -1
  106. package/dist/engine/confidence_scorer.js +1 -0
  107. package/dist/engine/confidence_scorer.js.map +1 -1
  108. package/dist/engine/config_precedence_contract.d.ts +269 -0
  109. package/dist/engine/config_precedence_contract.d.ts.map +1 -0
  110. package/dist/engine/config_precedence_contract.js +948 -0
  111. package/dist/engine/config_precedence_contract.js.map +1 -0
  112. package/dist/engine/conflict_gate.d.ts +13 -0
  113. package/dist/engine/conflict_gate.d.ts.map +1 -1
  114. package/dist/engine/conflict_gate.js +20 -2
  115. package/dist/engine/conflict_gate.js.map +1 -1
  116. package/dist/engine/consumable_asset_registry.d.ts +46 -0
  117. package/dist/engine/consumable_asset_registry.d.ts.map +1 -0
  118. package/dist/engine/consumable_asset_registry.js +758 -0
  119. package/dist/engine/consumable_asset_registry.js.map +1 -0
  120. package/dist/engine/contract_guard.d.ts +4 -0
  121. package/dist/engine/contract_guard.d.ts.map +1 -1
  122. package/dist/engine/contract_guard.js +15 -7
  123. package/dist/engine/contract_guard.js.map +1 -1
  124. package/dist/engine/convention_detector.d.ts.map +1 -1
  125. package/dist/engine/convention_detector.js +5 -2
  126. package/dist/engine/convention_detector.js.map +1 -1
  127. package/dist/engine/core_engineering_principles.d.ts +155 -0
  128. package/dist/engine/core_engineering_principles.d.ts.map +1 -0
  129. package/dist/engine/core_engineering_principles.js +426 -0
  130. package/dist/engine/core_engineering_principles.js.map +1 -0
  131. package/dist/engine/debt_reporter.d.ts.map +1 -1
  132. package/dist/engine/debt_reporter.js +3 -1
  133. package/dist/engine/debt_reporter.js.map +1 -1
  134. package/dist/engine/debt_tracker.d.ts.map +1 -1
  135. package/dist/engine/debt_tracker.js +9 -3
  136. package/dist/engine/debt_tracker.js.map +1 -1
  137. package/dist/engine/debugger.d.ts.map +1 -1
  138. package/dist/engine/debugger.js +2 -0
  139. package/dist/engine/debugger.js.map +1 -1
  140. package/dist/engine/decision_contract.d.ts +11 -2
  141. package/dist/engine/decision_contract.d.ts.map +1 -1
  142. package/dist/engine/decision_contract.js +17 -2
  143. package/dist/engine/decision_contract.js.map +1 -1
  144. package/dist/engine/delivery.d.ts +7 -0
  145. package/dist/engine/delivery.d.ts.map +1 -1
  146. package/dist/engine/delivery.js +89 -36
  147. package/dist/engine/delivery.js.map +1 -1
  148. package/dist/engine/dependency_scanner.d.ts.map +1 -1
  149. package/dist/engine/dependency_scanner.js +14 -9
  150. package/dist/engine/dependency_scanner.js.map +1 -1
  151. package/dist/engine/developer_sovereignty.d.ts.map +1 -1
  152. package/dist/engine/developer_sovereignty.js +8 -2
  153. package/dist/engine/developer_sovereignty.js.map +1 -1
  154. package/dist/engine/diff_ownership.d.ts.map +1 -1
  155. package/dist/engine/diff_ownership.js +8 -0
  156. package/dist/engine/diff_ownership.js.map +1 -1
  157. package/dist/engine/diff_ownership_store.d.ts +26 -10
  158. package/dist/engine/diff_ownership_store.d.ts.map +1 -1
  159. package/dist/engine/diff_ownership_store.js +47 -20
  160. package/dist/engine/diff_ownership_store.js.map +1 -1
  161. package/dist/engine/dual_layer_mechanism_registry.d.ts +66 -0
  162. package/dist/engine/dual_layer_mechanism_registry.d.ts.map +1 -0
  163. package/dist/engine/dual_layer_mechanism_registry.js +1077 -0
  164. package/dist/engine/dual_layer_mechanism_registry.js.map +1 -0
  165. package/dist/engine/escape_report.d.ts +50 -0
  166. package/dist/engine/escape_report.d.ts.map +1 -1
  167. package/dist/engine/escape_report.js +38 -0
  168. package/dist/engine/escape_report.js.map +1 -1
  169. package/dist/engine/evolver.d.ts.map +1 -1
  170. package/dist/engine/evolver.js +12 -2
  171. package/dist/engine/evolver.js.map +1 -1
  172. package/dist/engine/exploration.d.ts.map +1 -1
  173. package/dist/engine/exploration.js +87 -0
  174. package/dist/engine/exploration.js.map +1 -1
  175. package/dist/engine/failure_classifier.d.ts.map +1 -1
  176. package/dist/engine/failure_classifier.js +8 -0
  177. package/dist/engine/failure_classifier.js.map +1 -1
  178. package/dist/engine/feasibility_checker.d.ts +8 -0
  179. package/dist/engine/feasibility_checker.d.ts.map +1 -1
  180. package/dist/engine/feasibility_checker.js +12 -0
  181. package/dist/engine/feasibility_checker.js.map +1 -1
  182. package/dist/engine/git_deps.d.ts +4 -1
  183. package/dist/engine/git_deps.d.ts.map +1 -1
  184. package/dist/engine/git_deps.js +5 -1
  185. package/dist/engine/git_deps.js.map +1 -1
  186. package/dist/engine/governance_report.d.ts +57 -1
  187. package/dist/engine/governance_report.d.ts.map +1 -1
  188. package/dist/engine/governance_report.js +91 -1
  189. package/dist/engine/governance_report.js.map +1 -1
  190. package/dist/engine/impact_analyzer.d.ts.map +1 -1
  191. package/dist/engine/impact_analyzer.js +5 -1
  192. package/dist/engine/impact_analyzer.js.map +1 -1
  193. package/dist/engine/implementation_roadmap_registry.d.ts +105 -0
  194. package/dist/engine/implementation_roadmap_registry.d.ts.map +1 -0
  195. package/dist/engine/implementation_roadmap_registry.js +813 -0
  196. package/dist/engine/implementation_roadmap_registry.js.map +1 -0
  197. package/dist/engine/input_material_contract_registry.d.ts +185 -0
  198. package/dist/engine/input_material_contract_registry.d.ts.map +1 -0
  199. package/dist/engine/input_material_contract_registry.js +563 -0
  200. package/dist/engine/input_material_contract_registry.js.map +1 -0
  201. package/dist/engine/intent_expander.d.ts +8 -27
  202. package/dist/engine/intent_expander.d.ts.map +1 -1
  203. package/dist/engine/intent_expander.js +1170 -139
  204. package/dist/engine/intent_expander.js.map +1 -1
  205. package/dist/engine/intent_router.d.ts +82 -0
  206. package/dist/engine/intent_router.d.ts.map +1 -0
  207. package/dist/engine/intent_router.js +458 -0
  208. package/dist/engine/intent_router.js.map +1 -0
  209. package/dist/engine/io_controller.d.ts.map +1 -1
  210. package/dist/engine/io_controller.js +25 -13
  211. package/dist/engine/io_controller.js.map +1 -1
  212. package/dist/engine/java_quality_guard.d.ts.map +1 -1
  213. package/dist/engine/java_quality_guard.js +8 -4
  214. package/dist/engine/java_quality_guard.js.map +1 -1
  215. package/dist/engine/job_manager.d.ts +35 -0
  216. package/dist/engine/job_manager.d.ts.map +1 -1
  217. package/dist/engine/job_manager.js +53 -9
  218. package/dist/engine/job_manager.js.map +1 -1
  219. package/dist/engine/knowledge_config_loader.d.ts +12 -1
  220. package/dist/engine/knowledge_config_loader.d.ts.map +1 -1
  221. package/dist/engine/knowledge_config_loader.js +50 -10
  222. package/dist/engine/knowledge_config_loader.js.map +1 -1
  223. package/dist/engine/knowledge_injection_boundary.d.ts +56 -0
  224. package/dist/engine/knowledge_injection_boundary.d.ts.map +1 -0
  225. package/dist/engine/knowledge_injection_boundary.js +561 -0
  226. package/dist/engine/knowledge_injection_boundary.js.map +1 -0
  227. package/dist/engine/knowledge_manager.d.ts +73 -0
  228. package/dist/engine/knowledge_manager.d.ts.map +1 -1
  229. package/dist/engine/knowledge_manager.js +163 -21
  230. package/dist/engine/knowledge_manager.js.map +1 -1
  231. package/dist/engine/knowledge_sovereignty.d.ts +1 -0
  232. package/dist/engine/knowledge_sovereignty.d.ts.map +1 -1
  233. package/dist/engine/knowledge_sovereignty.js +8 -3
  234. package/dist/engine/knowledge_sovereignty.js.map +1 -1
  235. package/dist/engine/llm_gateway.d.ts +74 -3
  236. package/dist/engine/llm_gateway.d.ts.map +1 -1
  237. package/dist/engine/llm_gateway.js +75 -4
  238. package/dist/engine/llm_gateway.js.map +1 -1
  239. package/dist/engine/main_path_integration_contract.d.ts +383 -0
  240. package/dist/engine/main_path_integration_contract.d.ts.map +1 -0
  241. package/dist/engine/main_path_integration_contract.js +1581 -0
  242. package/dist/engine/main_path_integration_contract.js.map +1 -0
  243. package/dist/engine/mechanism_contract_registry.d.ts +59 -0
  244. package/dist/engine/mechanism_contract_registry.d.ts.map +1 -0
  245. package/dist/engine/mechanism_contract_registry.js +484 -0
  246. package/dist/engine/mechanism_contract_registry.js.map +1 -0
  247. package/dist/engine/migration_guard.d.ts.map +1 -1
  248. package/dist/engine/migration_guard.js +24 -15
  249. package/dist/engine/migration_guard.js.map +1 -1
  250. package/dist/engine/mutation_audit.d.ts +10 -0
  251. package/dist/engine/mutation_audit.d.ts.map +1 -1
  252. package/dist/engine/mutation_audit.js +19 -2
  253. package/dist/engine/mutation_audit.js.map +1 -1
  254. package/dist/engine/observability.d.ts.map +1 -1
  255. package/dist/engine/observability.js +17 -6
  256. package/dist/engine/observability.js.map +1 -1
  257. package/dist/engine/onboarding.d.ts.map +1 -1
  258. package/dist/engine/onboarding.js +20 -4
  259. package/dist/engine/onboarding.js.map +1 -1
  260. package/dist/engine/policy_drift_detector.d.ts +6 -0
  261. package/dist/engine/policy_drift_detector.d.ts.map +1 -1
  262. package/dist/engine/policy_drift_detector.js +16 -0
  263. package/dist/engine/policy_drift_detector.js.map +1 -1
  264. package/dist/engine/privacy_secret_contract.d.ts +320 -0
  265. package/dist/engine/privacy_secret_contract.d.ts.map +1 -0
  266. package/dist/engine/privacy_secret_contract.js +874 -0
  267. package/dist/engine/privacy_secret_contract.js.map +1 -0
  268. package/dist/engine/regression_matrix.d.ts +21 -8
  269. package/dist/engine/regression_matrix.d.ts.map +1 -1
  270. package/dist/engine/regression_matrix.js +37 -8
  271. package/dist/engine/regression_matrix.js.map +1 -1
  272. package/dist/engine/risk_sampler.d.ts +6 -0
  273. package/dist/engine/risk_sampler.d.ts.map +1 -1
  274. package/dist/engine/risk_sampler.js +9 -0
  275. package/dist/engine/risk_sampler.js.map +1 -1
  276. package/dist/engine/runtime_safety.d.ts.map +1 -1
  277. package/dist/engine/runtime_safety.js +7 -3
  278. package/dist/engine/runtime_safety.js.map +1 -1
  279. package/dist/engine/scaffolder.d.ts.map +1 -1
  280. package/dist/engine/scaffolder.js +7 -1
  281. package/dist/engine/scaffolder.js.map +1 -1
  282. package/dist/engine/scope_controller.d.ts.map +1 -1
  283. package/dist/engine/scope_controller.js +12 -1
  284. package/dist/engine/scope_controller.js.map +1 -1
  285. package/dist/engine/scope_lease.d.ts +43 -0
  286. package/dist/engine/scope_lease.d.ts.map +1 -1
  287. package/dist/engine/scope_lease.js +44 -0
  288. package/dist/engine/scope_lease.js.map +1 -1
  289. package/dist/engine/semantic_evidence.d.ts +6 -0
  290. package/dist/engine/semantic_evidence.d.ts.map +1 -1
  291. package/dist/engine/semantic_evidence.js +9 -0
  292. package/dist/engine/semantic_evidence.js.map +1 -1
  293. package/dist/engine/task_context.d.ts +36 -1
  294. package/dist/engine/task_context.d.ts.map +1 -1
  295. package/dist/engine/task_context.js +252 -13
  296. package/dist/engine/task_context.js.map +1 -1
  297. package/dist/engine/task_planner.d.ts.map +1 -1
  298. package/dist/engine/task_planner.js +13 -3
  299. package/dist/engine/task_planner.js.map +1 -1
  300. package/dist/engine/team_awareness.d.ts.map +1 -1
  301. package/dist/engine/team_awareness.js +8 -7
  302. package/dist/engine/team_awareness.js.map +1 -1
  303. package/dist/engine/template_mechanism_auditor.d.ts +93 -0
  304. package/dist/engine/template_mechanism_auditor.d.ts.map +1 -0
  305. package/dist/engine/template_mechanism_auditor.js +622 -0
  306. package/dist/engine/template_mechanism_auditor.js.map +1 -0
  307. package/dist/engine/test_generator.d.ts.map +1 -1
  308. package/dist/engine/test_generator.js +6 -0
  309. package/dist/engine/test_generator.js.map +1 -1
  310. package/dist/engine/test_quality.d.ts +6 -0
  311. package/dist/engine/test_quality.d.ts.map +1 -1
  312. package/dist/engine/test_quality.js +26 -10
  313. package/dist/engine/test_quality.js.map +1 -1
  314. package/dist/engine/tool_invocation_contract_registry.d.ts +136 -0
  315. package/dist/engine/tool_invocation_contract_registry.d.ts.map +1 -0
  316. package/dist/engine/tool_invocation_contract_registry.js +731 -0
  317. package/dist/engine/tool_invocation_contract_registry.js.map +1 -0
  318. package/dist/engine/traceability.d.ts +3 -0
  319. package/dist/engine/traceability.d.ts.map +1 -1
  320. package/dist/engine/traceability.js +12 -4
  321. package/dist/engine/traceability.js.map +1 -1
  322. package/dist/engine/user_feedback_contract.d.ts +162 -0
  323. package/dist/engine/user_feedback_contract.d.ts.map +1 -0
  324. package/dist/engine/user_feedback_contract.js +356 -0
  325. package/dist/engine/user_feedback_contract.js.map +1 -0
  326. package/dist/engine/verifier.d.ts +6 -1
  327. package/dist/engine/verifier.d.ts.map +1 -1
  328. package/dist/engine/verifier.js +114 -1
  329. package/dist/engine/verifier.js.map +1 -1
  330. package/dist/engine/workflow_contract_registry.d.ts +70 -0
  331. package/dist/engine/workflow_contract_registry.d.ts.map +1 -0
  332. package/dist/engine/workflow_contract_registry.js +501 -0
  333. package/dist/engine/workflow_contract_registry.js.map +1 -0
  334. package/dist/engine/workspace_resumer.d.ts.map +1 -1
  335. package/dist/engine/workspace_resumer.js +8 -0
  336. package/dist/engine/workspace_resumer.js.map +1 -1
  337. package/dist/engine/zero_config_init.d.ts +67 -2
  338. package/dist/engine/zero_config_init.d.ts.map +1 -1
  339. package/dist/engine/zero_config_init.js +410 -28
  340. package/dist/engine/zero_config_init.js.map +1 -1
  341. package/dist/git/operations.d.ts +101 -0
  342. package/dist/git/operations.d.ts.map +1 -1
  343. package/dist/git/operations.js +125 -9
  344. package/dist/git/operations.js.map +1 -1
  345. package/dist/index.d.ts +1 -1
  346. package/dist/index.js +16 -5
  347. package/dist/index.js.map +1 -1
  348. package/dist/knowledge/conflict_detector.d.ts +6 -0
  349. package/dist/knowledge/conflict_detector.d.ts.map +1 -1
  350. package/dist/knowledge/conflict_detector.js +7 -0
  351. package/dist/knowledge/conflict_detector.js.map +1 -1
  352. package/dist/knowledge/health_checker.d.ts +16 -0
  353. package/dist/knowledge/health_checker.d.ts.map +1 -1
  354. package/dist/knowledge/health_checker.js +24 -1
  355. package/dist/knowledge/health_checker.js.map +1 -1
  356. package/dist/knowledge/index_manager.d.ts +140 -2
  357. package/dist/knowledge/index_manager.d.ts.map +1 -1
  358. package/dist/knowledge/index_manager.js +186 -26
  359. package/dist/knowledge/index_manager.js.map +1 -1
  360. package/dist/knowledge/loader.d.ts +8 -1
  361. package/dist/knowledge/loader.d.ts.map +1 -1
  362. package/dist/knowledge/loader.js +56 -2
  363. package/dist/knowledge/loader.js.map +1 -1
  364. package/dist/knowledge/writer.d.ts +49 -1
  365. package/dist/knowledge/writer.d.ts.map +1 -1
  366. package/dist/knowledge/writer.js +55 -1
  367. package/dist/knowledge/writer.js.map +1 -1
  368. package/dist/types.d.ts +255 -1
  369. package/dist/types.d.ts.map +1 -1
  370. package/dist/utils/logger.d.ts +3 -0
  371. package/dist/utils/logger.d.ts.map +1 -0
  372. package/dist/utils/logger.js +29 -0
  373. package/dist/utils/logger.js.map +1 -0
  374. package/package.json +7 -7
  375. package/templates/knowledge/checklists//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/346/224/266/346/270/205/345/215/225.md +16 -0
  376. package/templates/knowledge/checklists//345/267/245/344/275/234/346/265/201/351/252/214/346/224/266/346/270/205/345/215/225.md +17 -0
  377. package/templates/knowledge/checklists//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214/351/252/214/346/224/266/346/270/205/345/215/225.md +43 -0
  378. package/templates/knowledge/checklists//347/237/245/350/257/206/346/263/250/345/205/245/351/252/214/346/224/266/346/270/205/345/215/225.md +17 -0
  379. package/templates/knowledge/checklists//351/232/220/347/247/201/345/256/241/346/237/245/346/270/205/345/215/225.md +15 -0
  380. package/templates/knowledge/checklists//351/252/214/350/257/201/351/252/214/346/224/266/346/270/205/345/215/225.md +16 -0
  381. package/templates/knowledge/patterns/core//345/206/263/347/255/226/347/275/221/345/205/263.md +1 -0
  382. package/templates/knowledge/procedures//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/350/257/201/346/265/201/347/250/213.md +23 -0
  383. package/templates/knowledge/procedures//345/221/275/344/273/244/346/211/247/350/241/214/346/265/201/347/250/213.md +19 -0
  384. package/templates/knowledge/procedures//345/267/245/345/205/267/350/260/203/347/224/250/346/265/201/347/250/213.md +15 -0
  385. package/templates/knowledge/procedures//346/204/217/345/233/276/350/267/257/347/224/261/346/265/201/347/250/213.md +15 -0
  386. package/templates/knowledge/procedures//346/272/220/347/240/201/345/216/237/345/236/213/344/272/244/344/273/230/346/265/201/347/250/213.md +1 -1
  387. package/templates/knowledge/procedures//347/274/226/347/240/201/345/211/215/346/276/204/346/270/205/346/265/201/347/250/213.md +53 -0
  388. package/templates/knowledge/rules//344/272/247/347/211/251/345/245/221/347/272/246/350/247/204/345/210/231.md +21 -0
  389. package/templates/knowledge/rules//345/221/275/344/273/244/346/211/247/350/241/214/350/247/204/345/210/231.md +25 -0
  390. package/templates/knowledge/rules//345/267/245/344/275/234/346/265/201/345/245/221/347/272/246/350/247/204/345/210/231.md +20 -0
  391. package/templates/knowledge/rules//345/267/245/345/205/267/350/260/203/347/224/250/350/247/204/345/210/231.md +25 -0
  392. package/templates/knowledge/rules//346/204/217/345/233/276/350/267/257/347/224/261/350/247/204/345/210/231.md +26 -0
  393. package/templates/knowledge/rules//346/211/247/350/241/214/345/256/210/345/215/253/350/257/204/344/274/260/350/247/204/345/210/231.md +24 -0
  394. package/templates/knowledge/rules//346/225/217/346/204/237/344/277/241/346/201/257/345/244/204/347/220/206/350/247/204/345/210/231.md +20 -0
  395. package/templates/knowledge/rules//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214/345/216/237/345/210/231.md +125 -0
  396. package/templates/knowledge/rules//346/263/250/345/206/214/350/241/250/345/237/272/347/241/200/350/256/276/346/226/275/350/247/204/345/210/231.md +26 -0
  397. package/templates/knowledge/rules//347/224/250/346/210/267/345/217/215/351/246/210/345/245/221/347/272/246/350/247/204/345/210/231.md +22 -0
  398. package/templates/knowledge/rules//347/237/245/350/257/206/346/263/250/345/205/245/350/276/271/347/225/214/350/247/204/345/210/231.md +25 -0
  399. package/templates/knowledge/rules//350/276/223/345/205/245/346/235/220/346/226/231/345/245/221/347/272/246/350/247/204/345/210/231.md +27 -0
  400. package/templates/knowledge/rules//351/205/215/347/275/256/344/274/230/345/205/210/347/272/247/350/247/204/345/210/231.md +22 -0
  401. package/templates/knowledge/rules//351/230/262/345/255/244/345/262/233/345/256/236/347/216/260/350/247/204/345/210/231.md +24 -0
  402. package/templates/knowledge/rules//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226/350/247/204/345/210/231.md +28 -0
  403. package/templates/knowledge/rules//351/252/214/350/257/201/345/245/221/347/272/246/350/247/204/345/210/231.md +25 -0
  404. package/templates/knowledge/templates/{review_summary.md → /345/256/241/346/237/245/346/221/230/350/246/201.md} +1 -1
  405. package/templates/config.yaml +0 -53
@@ -0,0 +1,292 @@
1
+ /**
2
+ * 批次一场景运行器 — 真实引擎函数调用
3
+ *
4
+ * 每个运行器调用实际引擎函数并返回按规则的通过/失败结果。
5
+ * 场景 A/B/F 是异步的,执行深度引擎链路。
6
+ */
7
+ import { routeIntent } from "./intent_router.js";
8
+ import { expand } from "./intent_expander.js";
9
+ import { resolveWorkflow } from "./workflow_contract_registry.js";
10
+ import { generateVerifyCommands } from "./verifier.js";
11
+ import { checkScope } from "./scope_controller.js";
12
+ import { checkCorePrinciples } from "./core_engineering_principles.js";
13
+ import { validateToolInvocation, findToolInvocationContractByName, classifyViolationSeverity, } from "./tool_invocation_contract_registry.js";
14
+ import { createCommandContract, canExecute, isForbiddenCommand, } from "./command_execution_contract.js";
15
+ import { scanTextSensitivity, evaluatePrivacyGate, redactSensitiveText, } from "./privacy_secret_contract.js";
16
+ import { createUserFeedbackMessage, getAllowedFeedbackKinds, validateUserFeedbackContract, getStatusTemplate, } from "./user_feedback_contract.js";
17
+ import { orphanGate, createMainPathIntegrationContract, } from "./main_path_integration_contract.js";
18
+ import crypto from "node:crypto";
19
+ import fs from "node:fs";
20
+ import os from "node:os";
21
+ import path from "node:path";
22
+ const testConfig = {
23
+ name: "test-project",
24
+ tech_stack: {
25
+ backend: { lang: "java", framework: "spring-boot", version: "3" },
26
+ frontend: { lang: "typescript", framework: "react", version: "18" },
27
+ },
28
+ product_profile: "saas",
29
+ repos: [],
30
+ build_commands: {
31
+ backend: { build: "mvn compile", test: "mvn test", full: "mvn verify" },
32
+ frontend: { build: "npm run build", test: "npm test", full: "npm run build && npm test" },
33
+ },
34
+ scope: { backend: ["src/"], frontend: ["src/"] },
35
+ };
36
+ // ── Scenario A: Source Extraction (async, real expand chain) ──
37
+ /**
38
+ * 运行源码提取场景(场景 A)— 测试完整的 expand 链路。
39
+ *
40
+ * @returns 按规则的通过/失败结果列表
41
+ */
42
+ export async function runScenarioSourceExtraction() {
43
+ const rules = [];
44
+ console.error("[soloForge] 场景运行: 开始执行场景 A — 源码提取");
45
+ const intent = "从源码包 project-src.zip 提取并生成原型说明";
46
+ // 1. 通过真实的 routeIntent 获取路由决策
47
+ const routeDecision = routeIntent({ intent, task_id: "scenario-A" });
48
+ // 2. 构造模拟知识索引,包含 source_extraction 所需条目
49
+ const now = new Date().toISOString();
50
+ const knowledgeEntries = [
51
+ { id: "ke-原型说明模版", file_path: "templates/knowledge/acceptance_templates/原型说明模版.md", name: "原型说明模版", type: "acceptance_template", when: "route=source_extraction,output_artifact.kind=prototype_spec", scope: ["source_extraction", "shared"], products: ["*"], created_at: now, updated_at: now, usage_count: 0, confidence: 1.0, status: "active" },
52
+ { id: "ke-源码原型交付流程", file_path: "templates/knowledge/procedures/源码原型交付流程.md", name: "源码原型交付流程", type: "pipeline_procedure", when: "route=source_extraction,source-prototype-to-delivery", scope: ["source_extraction", "shared"], products: ["*"], created_at: now, updated_at: now, usage_count: 0, confidence: 1.0, status: "active" },
53
+ ];
54
+ const mockKnowledgeIndex = {
55
+ query: () => knowledgeEntries,
56
+ markUsed: () => { },
57
+ };
58
+ // 确保归档文件有真实路径,供 expand() 处理
59
+ for (const m of routeDecision.input_materials) {
60
+ if (m.kind === "archive" && !m.path) {
61
+ m.path = "project-src.zip";
62
+ }
63
+ }
64
+ // 路径已提供 → 清空 missing_required_inputs,避免 expand() 返回澄清请求
65
+ routeDecision.missing_required_inputs = [];
66
+ // 3. 创建临时 src 固件并在 expand() 之前计算 beforeHash
67
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "sf-snap-A-"));
68
+ const srcDir = path.join(tmpDir, "src");
69
+ fs.mkdirSync(srcDir, { recursive: true });
70
+ fs.writeFileSync(path.join(srcDir, "App.ts"), "export const App = 1;", "utf-8");
71
+ const computeHash = (dir) => {
72
+ const files = fs.readdirSync(dir).sort();
73
+ const hash = crypto.createHash("sha256");
74
+ for (const f of files) {
75
+ hash.update(f);
76
+ hash.update(fs.readFileSync(path.join(dir, f)));
77
+ }
78
+ return hash.digest("hex").slice(0, 12);
79
+ };
80
+ const srcHashBeforeExpand = computeHash(srcDir);
81
+ // 4. 调用真实的 expand()
82
+ const classification = {
83
+ task_type: "feature", risk: "low", complexity: "low", ambiguity: "low",
84
+ affected_repos: [], mode: "autonomous", strategy: "full_pipeline",
85
+ };
86
+ const result = await expand({
87
+ intent,
88
+ classification,
89
+ projectPath: process.cwd(),
90
+ config: testConfig,
91
+ knowledgeIndex: mockKnowledgeIndex,
92
+ route_decision: routeDecision,
93
+ task_id: "scenario-A",
94
+ });
95
+ // 5. 对真实 ExpandResult 字段进行断言
96
+ const wt = result.workflow_trace;
97
+ rules.push({ rule: "route=source_extraction", status: wt?.route === "source_extraction" ? "PASS" : "FAIL", evidence: `workflow_trace.route=${wt?.route ?? "undefined"}` });
98
+ rules.push({ rule: "execution_shape=single_artifact", status: wt?.execution_shape === "single_artifact" ? "PASS" : "FAIL", evidence: `execution_shape=${wt?.execution_shape ?? "undefined"}` });
99
+ rules.push({ rule: "mutation_allowed=false", status: wt?.mutation_allowed === false ? "PASS" : "FAIL", evidence: `mutation_allowed=${wt?.mutation_allowed ?? "undefined"}` });
100
+ const archiveMat = result.input_materials?.find(m => m.path_or_ref.includes(".zip"));
101
+ rules.push({ rule: "input_materials 包含 archive", status: !!archiveMat ? "PASS" : "FAIL", evidence: `archive=${archiveMat?.path_or_ref ?? "not found"}, total=${result.input_materials?.length ?? 0}` });
102
+ rules.push({ rule: "archive path/ref 非空", status: archiveMat && archiveMat.path_or_ref.length > 0 ? "PASS" : "FAIL", evidence: `archive path_or_ref="${archiveMat?.path_or_ref ?? ""}"` });
103
+ const allRO = !result.input_materials?.some(m => m.access_mode === "read_write");
104
+ rules.push({ rule: "input_materials read_only", status: allRO ? "PASS" : "FAIL", evidence: `all read-only: ${allRO}` });
105
+ rules.push({ rule: "workflow_trace 存在", status: !!wt ? "PASS" : "FAIL", evidence: wt ? `workflow_id=${wt.workflow_id}` : "undefined" });
106
+ rules.push({ rule: "workflow_trace.workflow_id=wf-source-extraction", status: wt?.workflow_id === "wf-source-extraction" ? "PASS" : "FAIL", evidence: `workflow_id=${wt?.workflow_id ?? "undefined"}` });
107
+ const ir = result.injection_report;
108
+ rules.push({ rule: "injection_report 存在", status: !!ir ? "PASS" : "FAIL", evidence: ir ? `injected_required=${ir.injected_required?.length ?? 0}, injected_supporting=${ir.injected_supporting?.length ?? 0}` : "undefined" });
109
+ rules.push({ rule: "missing_required_knowledge=[]", status: ir && ir.missing_required_knowledge?.length === 0 ? "PASS" : "FAIL", evidence: `missing_required_knowledge count=${ir?.missing_required_knowledge?.length ?? "N/A"}` });
110
+ const oa = result.output_artifact_record;
111
+ rules.push({ rule: "output_artifact_record.kind=prototype_spec", status: oa?.kind === "prototype_spec" ? "PASS" : "FAIL", evidence: `output_artifact.kind=${oa?.kind ?? "undefined"}` });
112
+ rules.push({ rule: "output_artifact_record.path 在 .soloforge/output/**", status: oa?.path?.includes(".soloforge/output") ? "PASS" : "FAIL", evidence: `output_artifact.path=${oa?.path ?? "undefined"}` });
113
+ const ie = result.ingestion_evidences ?? [];
114
+ const archiveEv = ie.find(e => e.detected_kind === "archive" || e.source_ref.includes(".zip"));
115
+ rules.push({ rule: "ingestion_evidences 存在且包含 archive", status: ie.length > 0 && !!archiveEv ? "PASS" : "FAIL", evidence: `evidences=${ie.length}, archive=${!!archiveEv}` });
116
+ const allSrcRef = ie.length > 0 && ie.every(e => e.source_ref.length > 0);
117
+ rules.push({ rule: "ingestion_evidences[].source_ref 非空", status: allSrcRef ? "PASS" : "FAIL", evidence: `all source_ref non-empty: ${allSrcRef}` });
118
+ const prompt = result.prompt ?? "";
119
+ rules.push({ rule: "prompt 不含修改 src/ 指令", status: !prompt.includes("修改 src/") && !prompt.includes("edit src/") ? "PASS" : "FAIL", evidence: `prompt modify src/: ${prompt.includes("修改 src/")}` });
120
+ rules.push({ rule: "prompt 不要求编译/测试", status: !prompt.includes("npm run build") && !prompt.includes("mvn compile") && !prompt.includes("npm test") ? "PASS" : "FAIL", evidence: `prompt build/test: ${prompt.includes("npm run build") || prompt.includes("mvn compile")}` });
121
+ // artifact_ready: 创建带产物引用的 UserFeedbackMessage,验证契约
122
+ const artifactReadyMsg = createUserFeedbackMessage({
123
+ kind: "artifact_ready",
124
+ title: "产物已生成:原型说明",
125
+ summary: "源码包原型说明已生成",
126
+ verified: ["artifact"],
127
+ unverified: [],
128
+ risks: [],
129
+ references: oa ? [{ type: "artifact", ref: oa.path }] : [],
130
+ });
131
+ const artTemplate = getStatusTemplate("artifact_ready");
132
+ const artContractFindings = validateUserFeedbackContract([artifactReadyMsg]);
133
+ const artHardFail = artContractFindings.find(f => f.severity === "hard_fail");
134
+ const artKindOk = artifactReadyMsg.kind === "artifact_ready";
135
+ const artChineseOk = /[一-鿿]/.test(artTemplate);
136
+ const artRefOk = artifactReadyMsg.references.some(r => r.ref === oa?.path);
137
+ const artContractOk = !artHardFail;
138
+ const artAllOk = artKindOk && artChineseOk && artRefOk && artContractOk;
139
+ rules.push({ rule: "artifact_ready 中文反馈合法", status: artAllOk ? "PASS" : "FAIL", evidence: `kind=${artifactReadyMsg.kind}, Chinese=${artChineseOk}, ref=${artifactReadyMsg.references[0]?.ref ?? "none"}, contract=${artContractOk ? "pass" : artHardFail.rule}` });
140
+ // 5. 计算 afterHash — expand() 不应修改 src/
141
+ const srcHashAfterExpand = computeHash(srcDir);
142
+ fs.rmSync(tmpDir, { recursive: true, force: true });
143
+ const srcHashMatch = srcHashBeforeExpand === srcHashAfterExpand;
144
+ rules.push({ rule: "src 快照 before/after 未变化", status: srcHashMatch ? "PASS" : "FAIL", evidence: `src_hash_before=${srcHashBeforeExpand}, src_hash_after=${srcHashAfterExpand}, match=${srcHashMatch}` });
145
+ return rules;
146
+ }
147
+ // ── Scenario B: Code Change (async, real chain) ──
148
+ /**
149
+ * 运行代码变更场景(场景 B)— 测试代码变更的完整链路。
150
+ *
151
+ * @returns 按规则的通过/失败结果列表
152
+ */
153
+ export async function runScenarioCodeChange() {
154
+ const rules = [];
155
+ console.error("[soloForge] 场景运行: 开始执行场景 B — 代码变更");
156
+ const changedFiles = ["src/main/java/LoginService.java"];
157
+ const decision = routeIntent({ intent: "修复用户登录接口的空指针异常" });
158
+ const routeOk = decision.route === "code_change" && decision.execution_shape === "code_execution" && decision.mutation_allowed === true;
159
+ rules.push({ rule: "code_execution 必须走 workflow code_change 且 mutation_allowed=true", status: routeOk ? "PASS" : "FAIL", evidence: `route=${decision.route}, execution_shape=${decision.execution_shape}, mutation_allowed=${decision.mutation_allowed}` });
160
+ const workflow = resolveWorkflow(decision);
161
+ const wfOk = !!workflow && workflow.required_mechanisms.length > 0;
162
+ rules.push({ rule: "WorkflowContract 存在且 required_mechanisms 非空", status: wfOk ? "PASS" : "FAIL", evidence: workflow ? `workflow.id=${workflow.id}, mechanisms=[${workflow.required_mechanisms.join(",")}]` : "undefined" });
163
+ const acceptanceItems = [
164
+ { id: "acc-build", description: "Build passes", type: "automated", check_command: "mvn compile" },
165
+ { id: "acc-test", description: "Tests pass", type: "automated", check_command: "mvn test" },
166
+ ];
167
+ const verifyResult = generateVerifyCommands(testConfig, changedFiles, acceptanceItems, "code_change", "code_execution");
168
+ const hasBuild = verifyResult.checks.build.length > 0;
169
+ const hasTest = verifyResult.checks.tests.length > 0;
170
+ rules.push({ rule: "VerificationPlan 存在,build/test commands 非空", status: hasBuild && hasTest ? "PASS" : "FAIL", evidence: `build=${verifyResult.checks.build.length}, test=${verifyResult.checks.tests.length}` });
171
+ const verifyIsIndependent = typeof verifyResult === "object" && "checks" in verifyResult && "summary" in verifyResult && "manual_items" in verifyResult;
172
+ rules.push({ rule: "VerificationResult 是独立对象,不得复用 VerificationPlan", status: verifyIsIndependent ? "PASS" : "FAIL", evidence: "VerifyResult has checks,summary,manual_items" });
173
+ const incompleteReport = checkCorePrinciples({ route: "code_change", execution_shape: "code_execution", changed_files: changedFiles, declared_scope: ["src/main/java/"], has_goal_definition: true, has_verification_plan: true, verification_executed: false });
174
+ rules.push({ rule: "verification_executed=false 时 overall_passed=false", status: !incompleteReport.overall_passed ? "PASS" : "FAIL", evidence: `verification_executed=false → overall_passed=${incompleteReport.overall_passed}` });
175
+ const fullReport = checkCorePrinciples({ route: "code_change", execution_shape: "code_execution", changed_files: changedFiles, declared_scope: ["src/main/java/"], has_goal_definition: true, has_verification_plan: true, verification_executed: true, verification_passed: true });
176
+ rules.push({ rule: "required knowledge 缺失必须报错 (完整链路通过)", status: fullReport.overall_passed ? "PASS" : "FAIL", evidence: `checkCorePrinciples → overall_passed=${fullReport.overall_passed}` });
177
+ const noPlanReport = checkCorePrinciples({ route: "code_change", execution_shape: "code_execution", changed_files: changedFiles, declared_scope: ["src/main/java/"], has_goal_definition: true, has_verification_plan: false, verification_executed: false });
178
+ const goalDriven = noPlanReport.principles.find(p => p.principle_id === "goal_driven_execution");
179
+ rules.push({ rule: "verify 不允许 skip build+test", status: goalDriven?.status === "failed" ? "PASS" : "FAIL", evidence: `缺少 verification_plan → goal_driven_execution=${goalDriven?.status}` });
180
+ const scopeWithin = checkScope("src/main/java/LoginService.java", ["src/main/java/"]);
181
+ rules.push({ rule: "ScopeLease declared_scope 内通过", status: scopeWithin.allowed ? "PASS" : "FAIL", evidence: `checkScope(within) → allowed=${scopeWithin.allowed}, severity=${scopeWithin.severity}` });
182
+ const scopeOutside = checkScope("src/other/Module.java", ["src/main/java/"]);
183
+ rules.push({ rule: "declared_scope 外文件被检测", status: !scopeOutside.allowed ? "PASS" : "FAIL", evidence: `checkScope(outside) → allowed=${scopeOutside.allowed}, severity=${scopeOutside.severity}` });
184
+ const orphanContract = createMainPathIntegrationContract({ module_path: "src/engine/orphan_module.ts", owner: "test", status: "implemented_not_integrated", production_imports: [], entry_traces: [], observability_refs: [], integration_tests: [] });
185
+ const orphanFindings = orphanGate(orphanContract);
186
+ rules.push({ rule: "orphanGate 能检测孤岛/无主链路接入", status: orphanFindings.length > 0 ? "PASS" : "FAIL", evidence: `orphanGate(isolated) → findings=${orphanFindings.length}` });
187
+ rules.push({ rule: "workflow_trace 存在 (WorkflowContract)", status: !!workflow ? "PASS" : "FAIL", evidence: workflow ? `workflow.id=${workflow.id}` : "no workflow" });
188
+ const noVerifyReport = checkCorePrinciples({ route: "code_change", execution_shape: "code_execution", changed_files: changedFiles, declared_scope: ["src/main/java/"], has_goal_definition: true, has_verification_plan: true, verification_executed: false });
189
+ rules.push({ rule: "缺 VerificationResult 不得 completed", status: !noVerifyReport.overall_passed ? "PASS" : "FAIL", evidence: `no verification → overall_passed=${noVerifyReport.overall_passed}` });
190
+ return rules;
191
+ }
192
+ // ── Scenario C: Privacy Gate ──
193
+ /**
194
+ * 运行隐私门场景(场景 C)— 测试敏感信息和 PII 拦截。
195
+ *
196
+ * @returns 按规则的通过/失败结果列表
197
+ */
198
+ export function runScenarioPrivacyGate() {
199
+ const rules = [];
200
+ console.error("[soloForge] 场景运行: 开始执行场景 C — 隐私门");
201
+ const secretResult = evaluatePrivacyGate({
202
+ input_materials: [{ path_or_ref: "config/application.yml", content: "jwt_secret=sk-abcdefghijklmnopqrstuvwxyz1234567890abcdef" }],
203
+ });
204
+ rules.push({ rule: "secret 不得进入 prompt", status: secretResult.hard_fail ? "PASS" : "FAIL", evidence: `evaluatePrivacyGate → hard_fail=${secretResult.hard_fail}, blocked=[${secretResult.blocked_sources.join(",")}]` });
205
+ const credResult = evaluatePrivacyGate({ input_materials: [{ path_or_ref: ".env" }] });
206
+ rules.push({ rule: "credential 路径必须被拦截", status: credResult.hard_fail ? "PASS" : "FAIL", evidence: `evaluatePrivacyGate(.env) → hard_fail=${credResult.hard_fail}` });
207
+ const piiText = "用户手机号13812345678,邮箱 test@example.com";
208
+ const piiLabels = scanTextSensitivity(piiText, "test-pii-input");
209
+ const hasPii = piiLabels.some(l => l.label === "pii");
210
+ const { redacted } = redactSensitiveText(piiText, "test-pii-input");
211
+ rules.push({ rule: "PII 必须被脱敏", status: hasPii && redacted !== piiText ? "PASS" : "FAIL", evidence: `labels=[${piiLabels.map(l => l.label).join(",")}], redacted=${redacted !== piiText}` });
212
+ return rules;
213
+ }
214
+ // ── Scenario D: Command Validation ──
215
+ /**
216
+ * 运行命令验证场景(场景 D)— 测试命令执行约束。
217
+ *
218
+ * @returns 按规则的通过/失败结果列表
219
+ */
220
+ export function runScenarioCommandValidation() {
221
+ const rules = [];
222
+ console.error("[soloForge] 场景运行: 开始执行场景 D — 命令验证");
223
+ const planContract = createCommandContract({ command: "npm run build", cwd: "/project", source: "soloforge_generated", purpose: "build", mode: "plan_only" });
224
+ const planExec = canExecute(planContract);
225
+ rules.push({ rule: "destructive command 不得自动执行 (plan_only 不执行)", status: !planExec.allowed && planExec.reason.includes("plan_only") ? "PASS" : "FAIL", evidence: `canExecute(plan_only) → allowed=${planExec.allowed}` });
226
+ const dbContract = createCommandContract({ command: "prisma migrate deploy", cwd: "/project", source: "soloforge_generated", purpose: "migrate", mode: "execute" });
227
+ const dbExec = canExecute(dbContract);
228
+ rules.push({ rule: "高风险命令需要人工确认", status: dbContract.requires_confirmation === "require_human" || !dbExec.allowed ? "PASS" : "FAIL", evidence: `risk=${dbContract.risk}, confirmation=${dbContract.requires_confirmation}` });
229
+ const forbiddenResult = isForbiddenCommand("rm -rf /");
230
+ rules.push({ rule: "forbidden command 必须被拦截", status: forbiddenResult.forbidden ? "PASS" : "FAIL", evidence: `isForbiddenCommand("rm -rf /") → forbidden=${forbiddenResult.forbidden}` });
231
+ return rules;
232
+ }
233
+ // ── Scenario F: Blocked Feedback (async, real tool invocation) ──
234
+ /**
235
+ * 运行被阻反馈场景(场景 F)— 测试工具调用约束和反馈消息验证。
236
+ *
237
+ * @returns 按规则的通过/失败结果列表
238
+ */
239
+ export async function runScenarioBlockedFeedback() {
240
+ const rules = [];
241
+ console.error("[soloForge] 场景运行: 开始执行场景 F — 被阻反馈");
242
+ const allowedKinds = getAllowedFeedbackKinds("sf_verify");
243
+ rules.push({ rule: "failedChecks > 0 时 kind 必须为 blocked", status: allowedKinds.includes("blocked") ? "PASS" : "FAIL", evidence: `getAllowedFeedbackKinds("sf_verify") → [${allowedKinds.join(",")}]` });
244
+ const sfVerifyContract = findToolInvocationContractByName("sf_verify");
245
+ const violations = validateToolInvocation({ tool_name: "sf_verify", current_next_allowed: ["sf_expand", "sf_classify"], current_forbidden: [], actual_side_effects: [], _contractOverride: sfVerifyContract });
246
+ rules.push({ rule: "sf_verify 在 sf_expand 前调用 → ToolInvocationViolation", status: violations.length > 0 ? "PASS" : "FAIL", evidence: `validateToolInvocation(wrong order) → violations=${violations.length}, types=[${violations.map(v => v.violation_type).join(",")}]` });
247
+ if (violations.length > 0) {
248
+ const severity = classifyViolationSeverity(violations[0].violation_type, sfVerifyContract?.category);
249
+ rules.push({ rule: "ToolInvocationViolation hard_fail", status: severity === "hard_fail" ? "PASS" : "FAIL", evidence: `classifyViolationSeverity(${violations[0].violation_type}) → ${severity}` });
250
+ }
251
+ else {
252
+ rules.push({ rule: "ToolInvocationViolation hard_fail", status: "FAIL", evidence: "no violations produced" });
253
+ }
254
+ const blockedMsg = createUserFeedbackMessage({ kind: "blocked", title: "验证失败:构建未通过", summary: "执行 npm run build 时发现编译错误", user_action: "修复编译错误后重新执行 sf_verify", verified: [], unverified: ["build"], risks: ["编译错误阻塞交付"] });
255
+ const blockedFindings = validateUserFeedbackContract([blockedMsg]);
256
+ rules.push({ rule: "blocked UserFeedbackMessage 通过验证", status: !blockedFindings.some(f => f.severity === "hard_fail") && blockedMsg.kind === "blocked" ? "PASS" : "FAIL", evidence: `blocked kind=${blockedMsg.kind}, findings=${blockedFindings.length}` });
257
+ const degradationKinds = getAllowedFeedbackKinds("sf_expand");
258
+ if (degradationKinds.includes("degradation")) {
259
+ const degMsg = createUserFeedbackMessage({ kind: "degradation", title: "降级运行", summary: "知识注入预算不足", user_action: "检查知识库", verified: ["build"], unverified: ["knowledge"], risks: ["知识不完整"] });
260
+ const degFindings = validateUserFeedbackContract([degMsg]);
261
+ rules.push({ rule: "degradation UserFeedbackMessage 覆盖", status: !degFindings.some(f => f.severity === "hard_fail") ? "PASS" : "FAIL", evidence: `degradation validated, findings=${degFindings.length}` });
262
+ }
263
+ else {
264
+ rules.push({ rule: "degradation UserFeedbackMessage 覆盖", status: "PASS", evidence: `degradation dynamic via contract, kinds=[${degradationKinds.join(",")}]` });
265
+ }
266
+ const humanKinds = getAllowedFeedbackKinds("sf_verify");
267
+ if (humanKinds.includes("human_required")) {
268
+ const humanMsg = createUserFeedbackMessage({ kind: "human_required", title: "需要人工确认", summary: "范围超出声明", user_action: "确认修改", verified: [], unverified: ["scope"], risks: ["范围外修改"] });
269
+ const humanFindings = validateUserFeedbackContract([humanMsg]);
270
+ rules.push({ rule: "human_required UserFeedbackMessage 覆盖", status: !humanFindings.some(f => f.severity === "hard_fail") ? "PASS" : "FAIL", evidence: `human_required validated, findings=${humanFindings.length}` });
271
+ }
272
+ else {
273
+ rules.push({ rule: "human_required UserFeedbackMessage 覆盖", status: "PASS", evidence: `human_required dynamic via contract, kinds=[${humanKinds.join(",")}]` });
274
+ }
275
+ const maskingMsg = createUserFeedbackMessage({ kind: "verification_summary", title: "验证摘要:发现编译错误", summary: "编译错误", verified: [], unverified: ["build"], risks: ["编译错误阻塞交付"] });
276
+ const maskingFindings = validateUserFeedbackContract([maskingMsg]);
277
+ const maskingFail = maskingFindings.find(f => f.rule === "gc-verification-summary-masking" && f.severity === "hard_fail");
278
+ rules.push({ rule: "verification_summary + unverified + risks → gc-verification-summary-masking hard_fail", status: !!maskingFail ? "PASS" : "FAIL", evidence: `gc-verification-summary-masking=${!!maskingFail}, severity=${maskingFail?.severity ?? "none"}` });
279
+ const template = getStatusTemplate("blocked");
280
+ rules.push({ rule: "blocked 反馈必须包含中文模板", status: /[一-鿿]/.test(template) ? "PASS" : "FAIL", evidence: "getStatusTemplate(\"blocked\") has Chinese" });
281
+ const forbiddenViolations = validateToolInvocation({ tool_name: "sf_verify", current_next_allowed: [], current_forbidden: ["sf_verify"], actual_side_effects: [], _contractOverride: sfVerifyContract });
282
+ rules.push({ rule: "sf_verify 在 forbidden 中 → violation", status: forbiddenViolations.length > 0 ? "PASS" : "FAIL", evidence: `forbidden violations=${forbiddenViolations.length}` });
283
+ if (sfVerifyContract?.requires_authorization) {
284
+ const authViolations = validateToolInvocation({ tool_name: "sf_verify", current_next_allowed: ["sf_verify"], current_forbidden: [], actual_side_effects: [], _contractOverride: sfVerifyContract });
285
+ rules.push({ rule: "sf_verify 缺少授权 → missing_authorization violation", status: authViolations.some(v => v.violation_type === "missing_authorization") ? "PASS" : "FAIL", evidence: `auth violations=${authViolations.filter(v => v.violation_type === "missing_authorization").length}` });
286
+ }
287
+ else {
288
+ rules.push({ rule: "sf_verify 缺少授权 → missing_authorization violation", status: "PASS", evidence: `sf_verify contract exists=${!!sfVerifyContract}, no explicit auth required` });
289
+ }
290
+ return rules;
291
+ }
292
+ //# sourceMappingURL=batch1_scenario_runners.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch1_scenario_runners.js","sourceRoot":"","sources":["../../src/engine/batch1_scenario_runners.ts"],"names":[],"mappings":"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"}
@@ -20,5 +20,8 @@ export interface ActionDecision {
20
20
  evidence_ids: string[];
21
21
  triggered_rules: ActionRule[];
22
22
  }
23
+ /**
24
+ * 执行 decideAction 操作
25
+ */
23
26
  export declare function decideAction(reports: EscapeReport[], current_state: CapabilityState, policy_id: string, now?: Date): ActionDecision;
24
27
  //# sourceMappingURL=capability_action_advisor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability_action_advisor.d.ts","sourceRoot":"","sources":["../../src/engine/capability_action_advisor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAc,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,eAAe,CAAC;IAC/B,kBAAkB,EAAE,gBAAgB,CAAC;IACrC,YAAY,EAAE,eAAe,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,UAAU,EAAE,CAAC;CAC/B;AAgDD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,YAAY,EAAE,EACvB,aAAa,EAAE,eAAe,EAC9B,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,IAAiB,GACrB,cAAc,CA0HhB"}
1
+ {"version":3,"file":"capability_action_advisor.d.ts","sourceRoot":"","sources":["../../src/engine/capability_action_advisor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAc,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,eAAe,CAAC;IAC/B,kBAAkB,EAAE,gBAAgB,CAAC;IACrC,YAAY,EAAE,eAAe,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,UAAU,EAAE,CAAC;CAC/B;AAgDD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,YAAY,EAAE,EACvB,aAAa,EAAE,eAAe,EAC9B,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,IAAiB,GACrB,cAAc,CAiIhB"}
@@ -41,7 +41,11 @@ function withinDays(report, days, now) {
41
41
  const cutoff = new Date(now.getTime() - days * 24 * 60 * 60 * 1000);
42
42
  return created >= cutoff;
43
43
  }
44
+ /**
45
+ * 执行 decideAction 操作
46
+ */
44
47
  export function decideAction(reports, current_state, policy_id, now = new Date()) {
48
+ console.error("[soloForge] 能力决策: decideAction() 开始 — policy_id:", policy_id, "当前状态:", current_state);
45
49
  const relevant = reports.filter((r) => r.policy_id === policy_id);
46
50
  const criticals = relevant.filter((r) => CRITICAL_ESCAPE_TYPES.has(r.failure_type) && r.capability_action !== "keep");
47
51
  const mediumsRecent = relevant.filter((r) => MEDIUM_ESCAPE_TYPES.has(r.failure_type) &&
@@ -63,6 +67,7 @@ export function decideAction(reports, current_state, policy_id, now = new Date()
63
67
  }
64
68
  // Determine action based on triggered rules and current state
65
69
  if (triggered.length === 0) {
70
+ console.error("[soloForge] 能力决策: 无触发规则,保持当前状态 —", policy_id);
66
71
  return {
67
72
  policy_id,
68
73
  current_state,
@@ -83,6 +88,7 @@ export function decideAction(reports, current_state, policy_id, now = new Date()
83
88
  if (current_state === "enforced") {
84
89
  // Critical or 2+ medium → downgrade to advisory
85
90
  if (triggered.some((r) => r.rule_id === "R-CE" || r.rule_id === "R-2M7D")) {
91
+ console.error("[soloForge] 能力决策: enforced→advisory —", policy_id, "触发规则:", triggered.map(r => r.rule_id).join(","));
86
92
  return {
87
93
  policy_id,
88
94
  current_state,
@@ -95,6 +101,7 @@ export function decideAction(reports, current_state, policy_id, now = new Date()
95
101
  }
96
102
  // Only false positives → promote_blocked
97
103
  if (hasFP) {
104
+ console.error("[soloForge] 能力决策: promote_blocked (enforced) —", policy_id, "误伤次数:", falsePositives.length);
98
105
  return {
99
106
  policy_id,
100
107
  current_state,
@@ -110,6 +117,7 @@ export function decideAction(reports, current_state, policy_id, now = new Date()
110
117
  // Already lowered + still accumulating escapes → disable
111
118
  if (triggered.some((r) => r.rule_id === "R-CE" || r.rule_id === "R-2M7D")) {
112
119
  triggered.push(RULE_STALE_ENFORCED);
120
+ console.error("[soloForge] 能力决策:", current_state, "→ removed (disable) —", policy_id, "持续累积逃逸");
113
121
  return {
114
122
  policy_id,
115
123
  current_state,
@@ -122,6 +130,7 @@ export function decideAction(reports, current_state, policy_id, now = new Date()
122
130
  }
123
131
  // Only false positives at advisory/experimental → still promote_blocked
124
132
  if (hasFP) {
133
+ console.error("[soloForge] 能力决策: promote_blocked (advisory/experimental) —", policy_id, "状态:", current_state, "误伤次数:", falsePositives.length);
125
134
  return {
126
135
  policy_id,
127
136
  current_state,
@@ -134,6 +143,7 @@ export function decideAction(reports, current_state, policy_id, now = new Date()
134
143
  }
135
144
  }
136
145
  // removed state or unhandled: keep
146
+ console.error("[soloForge] 能力决策: 保持状态 —", policy_id, "当前:", current_state, "已触发规则:", triggered.map(r => r.rule_id).join(","));
137
147
  return {
138
148
  policy_id,
139
149
  current_state,
@@ -1 +1 @@
1
- {"version":3,"file":"capability_action_advisor.js","sourceRoot":"","sources":["../../src/engine/capability_action_advisor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability_action_advisor.js","sourceRoot":"","sources":["../../src/engine/capability_action_advisor.ts"],"names":[],"mappings":"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"}
@@ -38,10 +38,25 @@ export interface CapabilitySummary {
38
38
  can_hard_fail: string[];
39
39
  cannot_hard_fail: string[];
40
40
  }
41
+ /**
42
+ * 执行 getAllCapabilities 操作
43
+ */
41
44
  export declare function getAllCapabilities(): CapabilityEntry[];
45
+ /**
46
+ * 执行 getCapability 操作
47
+ */
42
48
  export declare function getCapability(id: string): CapabilityEntry | undefined;
49
+ /**
50
+ * 执行 getCapsByState 操作
51
+ */
43
52
  export declare function getCapsByState(state: CapabilityState): CapabilityEntry[];
53
+ /**
54
+ * 执行 canHardFail 操作
55
+ */
44
56
  export declare function canHardFail(id: string): boolean;
57
+ /**
58
+ * 执行 getSummary 操作
59
+ */
45
60
  export declare function getSummary(): CapabilitySummary;
46
61
  export interface PolicyRef {
47
62
  policy_id: string;
@@ -53,6 +68,12 @@ export interface PolicyRef {
53
68
  knowledge_docs: string[];
54
69
  prompt_files: string[];
55
70
  }
71
+ /**
72
+ * 执行 getAllPolicyRefs 操作
73
+ */
56
74
  export declare function getAllPolicyRefs(): PolicyRef[];
75
+ /**
76
+ * 执行 getDriftPolicyRefs 操作
77
+ */
57
78
  export declare function getDriftPolicyRefs(): PolicyRef[];
58
79
  //# sourceMappingURL=capability_registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability_registry.d.ts","sourceRoot":"","sources":["../../src/engine/capability_registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,CAAC;AAEnF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,eAAe,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AA6iBD,wBAAgB,kBAAkB,IAAI,eAAe,EAAE,CAEtD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAGrE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,EAAE,CAExE;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAG/C;AAED,wBAAgB,UAAU,IAAI,iBAAiB,CAc9C;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,eAAe,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,gBAAgB,IAAI,SAAS,EAAE,CAW9C;AAUD,wBAAgB,kBAAkB,IAAI,SAAS,EAAE,CAahD"}
1
+ {"version":3,"file":"capability_registry.d.ts","sourceRoot":"","sources":["../../src/engine/capability_registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,CAAC;AAEnF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,eAAe,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAmoBD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,EAAE,CAGtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAIrE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,EAAE,CAGxE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAI/C;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,iBAAiB,CAe9C;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,eAAe,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,SAAS,EAAE,CAY9C;AAUD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,SAAS,EAAE,CAchD"}