soloforge 1.2.8 → 1.2.9

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
@@ -62,6 +62,7 @@ const BUILTIN_RULES = [
62
62
  * 项目约定优先于内置规则。
63
63
  */
64
64
  export function loadProjectRules(conventionsContent) {
65
+ console.error("[soloForge] Java质量: loadProjectRules() 开始执行");
65
66
  if (!conventionsContent)
66
67
  return [];
67
68
  const rules = [];
@@ -89,11 +90,13 @@ export function loadProjectRules(conventionsContent) {
89
90
  * @returns 质量检查报告
90
91
  */
91
92
  export function checkJavaQuality(filePath, content, projectRules = []) {
93
+ console.error("[soloForge] Java质量: checkJavaQuality() 开始执行,文件:", filePath);
92
94
  const results = [];
93
95
  const lines = content.split("\n");
94
- // Merge rules: project rules first, then built-in (project takes precedence by ID)
96
+ // 合并rules: project rules first, then built-in (project takes precedence by ID)
95
97
  const projectIds = new Set(projectRules.map((r) => r.id));
96
98
  const allRules = [...projectRules, ...BUILTIN_RULES.filter((r) => !projectIds.has(r.id))];
99
+ console.error("[soloForge] Java质量: 合并规则", allRules.length, "条(内置", BUILTIN_RULES.length, "条,自定义", projectRules.length, "条)");
97
100
  for (const rule of allRules) {
98
101
  if (rule.id === "JAVA-Q001") {
99
102
  // Empty catch block (multi-line handling)
@@ -127,6 +130,7 @@ export function checkJavaQuality(filePath, content, projectRules = []) {
127
130
  }
128
131
  const hardGateFailures = results.filter((r) => r.severity === "hard_gate").length;
129
132
  const advisoryWarnings = results.filter((r) => r.severity === "advisory").length;
133
+ console.error("[soloForge] Java质量: 检查完成 — hard_gate:", hardGateFailures, "失败,advisory:", advisoryWarnings, "警告,can_proceed:", hardGateFailures === 0);
130
134
  return {
131
135
  file_path: filePath,
132
136
  total_checks: allRules.length,
@@ -146,7 +150,7 @@ function checkEmptyCatch(filePath, lines, rule, results) {
146
150
  const emptyCatchPat = /catch\s*\([^)]*\)\s*\{\s*\}/g;
147
151
  let match;
148
152
  while ((match = emptyCatchPat.exec(fullContent)) !== null) {
149
- // Find line number from offset
153
+ // 查找line number from offset
150
154
  const offset = match.index;
151
155
  let lineNum = 1;
152
156
  for (let i = 0; i < offset; i++) {
@@ -170,7 +174,7 @@ function checkMethodLength(filePath, lines, rule, results) {
170
174
  let methodName = "";
171
175
  for (let i = 0; i < lines.length; i++) {
172
176
  const line = lines[i].trim();
173
- // Detect method start
177
+ // 检测method start
174
178
  if (methodStart === -1) {
175
179
  const methodMatch = line.match(/\b(public|private|protected|static|\s)+\s+\w+\s+\w+\s*\([^)]*\)\s*\{/);
176
180
  if (methodMatch) {
@@ -209,7 +213,7 @@ function checkMethodLength(filePath, lines, rule, results) {
209
213
  function checkOverrideAnnotation(filePath, lines, rule, results) {
210
214
  for (let i = 0; i < lines.length; i++) {
211
215
  const line = lines[i].trim();
212
- // Check for method that looks like an override (public/protected, has super-type signature)
216
+ // 检查method that looks like an override (public/protected, has super-type signature)
213
217
  if (/\b(public|protected)\s+\w+\s+\w+\s*\([^)]*\)\s*\{/.test(line) &&
214
218
  !lines[Math.max(0, i - 1)].trim().startsWith("@Override") &&
215
219
  !lines[Math.max(0, i - 1)].trim().startsWith("@")) {
@@ -1 +1 @@
1
- {"version":3,"file":"java_quality_guard.js","sourceRoot":"","sources":["../../src/engine/java_quality_guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"java_quality_guard.js","sourceRoot":"","sources":["../../src/engine/java_quality_guard.ts"],"names":[],"mappings":"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"}
@@ -38,35 +38,70 @@ export declare class JobManager {
38
38
  constructor(stateDir: string);
39
39
  /**
40
40
  * 创建新 job,分配 job_id 并写入初始 checkpoint。
41
+ *
42
+ * @param taskId - 任务 ID
43
+ * @param phase - 当前阶段
44
+ * @param initialSummary - 初始摘要
45
+ * @returns 初始 job checkpoint
41
46
  */
42
47
  createJob(taskId: string, phase: string, initialSummary: string): Promise<JobCheckpoint>;
43
48
  /**
44
49
  * 更新 checkpoint — 记录心跳和阶段进展。
50
+ *
51
+ * @param jobId - Job ID
52
+ * @param taskId - 任务 ID
53
+ * @param phase - 当前阶段
54
+ * @param anchor - 认知锚点更新内容
55
+ * @param stateSnapshot - 可选的状态快照
56
+ * @returns 更新后的 checkpoint,未找到则返回 null
45
57
  */
46
58
  updateCheckpoint(jobId: string, taskId: string, phase: string, anchor: Partial<CognitiveAnchor>, stateSnapshot?: Record<string, unknown>): Promise<JobCheckpoint | null>;
47
59
  /**
48
60
  * 心跳 — 只更新 heartbeat_at 时间戳。
61
+ *
62
+ * @param jobId - Job ID
63
+ * @param taskId - 任务 ID
64
+ * @returns 是否成功更新心跳
49
65
  */
50
66
  heartbeat(jobId: string, taskId: string): Promise<boolean>;
51
67
  /**
52
68
  * 查询 job 状态 — 包括是否活跃、距上次心跳时间。
69
+ *
70
+ * @param jobId - Job ID
71
+ * @param taskId - 任务 ID
72
+ * @param maxAgeMs - 最大存活时间(毫秒),默认 5 分钟
73
+ * @returns Job 状态,未找到则返回 null
53
74
  */
54
75
  getJobStatus(jobId: string, taskId: string, maxAgeMs?: number): Promise<JobStatus | null>;
55
76
  /**
56
77
  * 从最新 checkpoint 恢复 — 返回 checkpoint 数据供调用方恢复状态。
78
+ *
79
+ * @param jobId - Job ID
80
+ * @param taskId - 任务 ID
81
+ * @returns 最新的 checkpoint,未找到则返回 null
57
82
  */
58
83
  resumeFromCheckpoint(jobId: string, taskId: string): Promise<JobCheckpoint | null>;
59
84
  /**
60
85
  * 取消 job — 删除所有 checkpoint 文件。
86
+ *
87
+ * @param jobId - Job ID
88
+ * @param taskId - 任务 ID
89
+ * @returns 是否成功删除
61
90
  */
62
91
  cancelJob(jobId: string, taskId: string): Promise<boolean>;
63
92
  /**
64
93
  * 列出所有活跃 job。
94
+ *
95
+ * @param maxAgeMs - 最大存活时间(毫秒),默认 5 分钟
96
+ * @returns 活跃的 job 状态列表
65
97
  */
66
98
  listActiveJobs(maxAgeMs?: number): Promise<JobStatus[]>;
67
99
  /**
68
100
  * 仅凭 job_id 反查 task_id — 扫描 checkpoint 文件,返回最新一条的 task_id。
69
101
  * 用于 sf_status 在不传 task_id 时自动推导。
102
+ *
103
+ * @param jobId - Job ID
104
+ * @returns 对应的 task_id,未找到则返回 null
70
105
  */
71
106
  resolveTaskId(jobId: string): Promise<string | null>;
72
107
  private getJobsDir;
@@ -1 +1 @@
1
- {"version":3,"file":"job_manager.d.ts","sourceRoot":"","sources":["../../src/engine/job_manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,eAAe,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,eAAe,GAAG,IAAI,CAAC;CACvC;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM;IAK5B;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAwB9F;;OAEG;IACG,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,EAChC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACtC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAyBhC;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAShE;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAgB,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAkBtG;;OAEG;IACG,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAIxF;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBhE;;OAEG;IACG,cAAc,CAAC,QAAQ,SAAgB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA2CpE;;;OAGG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsB1D,OAAO,CAAC,UAAU;YAMJ,eAAe;YASf,oBAAoB;CAoBnC"}
1
+ {"version":3,"file":"job_manager.d.ts","sourceRoot":"","sources":["../../src/engine/job_manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,eAAe,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,eAAe,GAAG,IAAI,CAAC;CACvC;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM;IAK5B;;;;;;;OAOG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAyB9F;;;;;;;;;OASG;IACG,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,EAChC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACtC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAyBhC;;;;;;OAMG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAShE;;;;;;;OAOG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAgB,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAkBtG;;;;;;OAMG;IACG,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAUxF;;;;;;OAMG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBhE;;;;;OAKG;IACG,cAAc,CAAC,QAAQ,SAAgB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA2CpE;;;;;;OAMG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsB1D,OAAO,CAAC,UAAU;YAMJ,eAAe;YASf,oBAAoB;CAoBnC"}
@@ -20,6 +20,11 @@ export class JobManager {
20
20
  }
21
21
  /**
22
22
  * 创建新 job,分配 job_id 并写入初始 checkpoint。
23
+ *
24
+ * @param taskId - 任务 ID
25
+ * @param phase - 当前阶段
26
+ * @param initialSummary - 初始摘要
27
+ * @returns 初始 job checkpoint
23
28
  */
24
29
  async createJob(taskId, phase, initialSummary) {
25
30
  const jobId = `job-${crypto.randomUUID().slice(0, 8)}`;
@@ -41,9 +46,17 @@ export class JobManager {
41
46
  };
42
47
  await this.writeCheckpoint(checkpoint);
43
48
  return checkpoint;
49
+ console.error("[soloForge] 任务管理: 创建 job", jobId, "任务:", taskId, "阶段:", phase);
44
50
  }
45
51
  /**
46
52
  * 更新 checkpoint — 记录心跳和阶段进展。
53
+ *
54
+ * @param jobId - Job ID
55
+ * @param taskId - 任务 ID
56
+ * @param phase - 当前阶段
57
+ * @param anchor - 认知锚点更新内容
58
+ * @param stateSnapshot - 可选的状态快照
59
+ * @returns 更新后的 checkpoint,未找到则返回 null
47
60
  */
48
61
  async updateCheckpoint(jobId, taskId, phase, anchor, stateSnapshot) {
49
62
  const existing = await this.loadLatestCheckpoint(jobId, taskId);
@@ -70,6 +83,10 @@ export class JobManager {
70
83
  }
71
84
  /**
72
85
  * 心跳 — 只更新 heartbeat_at 时间戳。
86
+ *
87
+ * @param jobId - Job ID
88
+ * @param taskId - 任务 ID
89
+ * @returns 是否成功更新心跳
73
90
  */
74
91
  async heartbeat(jobId, taskId) {
75
92
  const existing = await this.loadLatestCheckpoint(jobId, taskId);
@@ -81,6 +98,11 @@ export class JobManager {
81
98
  }
82
99
  /**
83
100
  * 查询 job 状态 — 包括是否活跃、距上次心跳时间。
101
+ *
102
+ * @param jobId - Job ID
103
+ * @param taskId - 任务 ID
104
+ * @param maxAgeMs - 最大存活时间(毫秒),默认 5 分钟
105
+ * @returns Job 状态,未找到则返回 null
84
106
  */
85
107
  async getJobStatus(jobId, taskId, maxAgeMs = 5 * 60 * 1000) {
86
108
  const checkpoint = await this.loadLatestCheckpoint(jobId, taskId);
@@ -100,12 +122,27 @@ export class JobManager {
100
122
  }
101
123
  /**
102
124
  * 从最新 checkpoint 恢复 — 返回 checkpoint 数据供调用方恢复状态。
125
+ *
126
+ * @param jobId - Job ID
127
+ * @param taskId - 任务 ID
128
+ * @returns 最新的 checkpoint,未找到则返回 null
103
129
  */
104
130
  async resumeFromCheckpoint(jobId, taskId) {
105
- return this.loadLatestCheckpoint(jobId, taskId);
131
+ const cp = await this.loadLatestCheckpoint(jobId, taskId);
132
+ if (cp) {
133
+ console.error("[soloForge] 任务管理: 从 checkpoint 恢复 job", jobId, "阶段:", cp.phase);
134
+ }
135
+ else {
136
+ console.error("[soloForge] 任务管理: 未找到 job", jobId, "的 checkpoint");
137
+ }
138
+ return cp;
106
139
  }
107
140
  /**
108
141
  * 取消 job — 删除所有 checkpoint 文件。
142
+ *
143
+ * @param jobId - Job ID
144
+ * @param taskId - 任务 ID
145
+ * @returns 是否成功删除
109
146
  */
110
147
  async cancelJob(jobId, taskId) {
111
148
  const pattern = `${jobId}`;
@@ -114,6 +151,7 @@ export class JobManager {
114
151
  return false;
115
152
  const files = await fs.readdir(dir);
116
153
  let removed = false;
154
+ console.error("[soloForge] 任务管理: 取消 job", jobId, "任务:", taskId);
117
155
  for (const f of files) {
118
156
  if (f.includes(pattern) && f.endsWith(".json")) {
119
157
  await fs.unlink(path.join(dir, f));
@@ -124,6 +162,9 @@ export class JobManager {
124
162
  }
125
163
  /**
126
164
  * 列出所有活跃 job。
165
+ *
166
+ * @param maxAgeMs - 最大存活时间(毫秒),默认 5 分钟
167
+ * @returns 活跃的 job 状态列表
127
168
  */
128
169
  async listActiveJobs(maxAgeMs = 5 * 60 * 1000) {
129
170
  const dir = path.join(this.stateDir, "jobs");
@@ -136,11 +177,11 @@ export class JobManager {
136
177
  const data = await fs.readFile(path.join(dir, f), "utf-8");
137
178
  checkpoints.push(JSON.parse(data));
138
179
  }
139
- catch {
140
- // skip corrupt files
180
+ catch (e) {
181
+ console.error("[soloForge] 作业管理器: 读取 checkpoint 文件失败(预期行为: 文件损坏) —", f, e);
141
182
  }
142
183
  }
143
- // Group by job_id, take latest per job
184
+ // job_id 分组,取每个 job 的最新 checkpoint
144
185
  const latest = new Map();
145
186
  for (const cp of checkpoints) {
146
187
  const existing = latest.get(cp.job_id);
@@ -168,6 +209,9 @@ export class JobManager {
168
209
  /**
169
210
  * 仅凭 job_id 反查 task_id — 扫描 checkpoint 文件,返回最新一条的 task_id。
170
211
  * 用于 sf_status 在不传 task_id 时自动推导。
212
+ *
213
+ * @param jobId - Job ID
214
+ * @returns 对应的 task_id,未找到则返回 null
171
215
  */
172
216
  async resolveTaskId(jobId) {
173
217
  const dir = this.getJobsDir();
@@ -181,13 +225,13 @@ export class JobManager {
181
225
  const data = JSON.parse(await fs.readFile(path.join(dir, f), "utf-8"));
182
226
  return data.task_id;
183
227
  }
184
- catch {
185
- // skip corrupt
228
+ catch (e) {
229
+ console.error("[soloForge] 作业管理器: 读取 checkpoint 文件失败(预期行为: 文件损坏) —", f, e);
186
230
  }
187
231
  }
188
232
  return null;
189
233
  }
190
- // ── Internal ──
234
+ // ── 内部方法 ──
191
235
  getJobsDir() {
192
236
  const dir = path.join(this.stateDir, "jobs");
193
237
  fss.mkdirSync(dir, { recursive: true });
@@ -215,8 +259,8 @@ export class JobManager {
215
259
  if (cp.task_id === taskId)
216
260
  return cp;
217
261
  }
218
- catch {
219
- // skip corrupt
262
+ catch (e) {
263
+ console.error("[soloForge] 作业管理器: 读取 checkpoint 文件失败(预期行为: 文件损坏) —", f, e);
220
264
  }
221
265
  }
222
266
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"job_manager.js","sourceRoot":"","sources":["../../src/engine/job_manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"job_manager.js","sourceRoot":"","sources":["../../src/engine/job_manager.ts"],"names":[],"mappings":"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"}
@@ -12,17 +12,28 @@ export declare function loadKnowledgeConfig(relativePath: string, projectPath?:
12
12
  /**
13
13
  * 从知识文件的决策规则中提取指定键的数值。
14
14
  * 格式: - 键名 = 数值(如 "Confidence_Threshold = 0.95")
15
+ * @param body - 知识文件正文内容
16
+ * @param key - 要提取的规则键名
17
+ * @returns 匹配到的数值,未找到时返回 undefined
15
18
  */
16
19
  export declare function extractNumberRule(body: string, key: string): number | undefined;
17
20
  /**
18
21
  * 从知识文件的决策规则中提取指定键的字符串值。
22
+ * @param body - 知识文件正文内容
23
+ * @param key - 要提取的规则键名
24
+ * @returns 匹配到的字符串值,未找到时返回 undefined
19
25
  */
20
26
  export declare function extractStringRule(body: string, key: string): string | undefined;
21
27
  /**
22
28
  * 从知识文件的决策规则中提取列表值。
23
29
  * 格式: - 键名 = 值1 / 值2 / 值3
30
+ * @param body - 知识文件正文内容
31
+ * @param key - 要提取的规则键名
32
+ * @returns 匹配到的字符串列表,未找到时返回空数组
24
33
  */
25
34
  export declare function extractListRule(body: string, key: string): string[];
26
- /** 清除缓存(测试用) */
35
+ /**
36
+ * 清除知识配置缓存(测试用)。
37
+ */
27
38
  export declare function clearConfigCache(): void;
28
39
  //# sourceMappingURL=knowledge_config_loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge_config_loader.d.ts","sourceRoot":"","sources":["../../src/engine/knowledge_config_loader.ts"],"names":[],"mappings":"AAkBA;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAmBxD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI/E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI/E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAInE;AAED,gBAAgB;AAChB,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
1
+ {"version":3,"file":"knowledge_config_loader.d.ts","sourceRoot":"","sources":["../../src/engine/knowledge_config_loader.ts"],"names":[],"mappings":"AA0BA;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAuCxD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI/E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI/E;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAInE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC"}
@@ -1,5 +1,6 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
+ import { fileURLToPath } from "node:url";
3
4
  import matter from "gray-matter";
4
5
  /**
5
6
  * 知识配置读取器 — 从 .md 知识文件中提取决策规则配置。
@@ -7,11 +8,17 @@ import matter from "gray-matter";
7
8
  */
8
9
  /** 知识配置缓存 */
9
10
  const configCache = new Map();
10
- const CACHE_TTL = 5 * 60 * 1000; // 5 分钟
11
- /** 默认知识库根目录 */
11
+ const CACHE_TTL = 5 * 60 * 1000; // 缓存有效期:5 分钟
12
+ /** 项目知识库根目录 */
12
13
  function getKnowledgeRoot(projectPath) {
13
14
  return path.join(projectPath ?? process.cwd(), ".soloforge", "knowledge");
14
15
  }
16
+ /** 包内模板知识库根目录 */
17
+ function getTemplatesRoot() {
18
+ const thisDir = path.dirname(fileURLToPath(import.meta.url));
19
+ // src/engine/ → 项目根 → templates/knowledge(目录层级映射)
20
+ return path.resolve(thisDir, "..", "..", "templates", "knowledge");
21
+ }
15
22
  /**
16
23
  * 从知识库中加载指定 .md 文件的 frontmatter 和 body。
17
24
  * 支持缓存,5 分钟内复用。
@@ -20,27 +27,51 @@ function getKnowledgeRoot(projectPath) {
20
27
  * @returns frontmatter data + body,文件不存在时返回 null
21
28
  */
22
29
  export function loadKnowledgeConfig(relativePath, projectPath) {
23
- const cacheKey = relativePath;
30
+ console.error("[soloForge] KnowledgeConfigLoader: 加载知识配置", relativePath);
31
+ // 缓存 key 必须区分 projectPath,否则不同项目的同名文件会互相污染
32
+ const projectRoot = projectPath ?? process.cwd();
33
+ const cacheKey = `${projectRoot}::${relativePath}`;
34
+ // 优先项目 .soloforge/knowledge,缺失时回退包内 templates/knowledge
35
+ const projectFile = path.join(getKnowledgeRoot(projectPath), relativePath);
36
+ const templateFile = path.join(getTemplatesRoot(), relativePath);
37
+ const useProject = fs.existsSync(projectFile);
38
+ const filePath = useProject ? projectFile : templateFile;
39
+ if (!fs.existsSync(filePath)) {
40
+ console.error("[soloForge] KnowledgeConfigLoader: 知识文件不存在", filePath);
41
+ return null;
42
+ }
43
+ // mtime 检查:项目覆盖文件变更后立即失效,模板文件不可变则用 TTL
44
+ let mtime = 0;
45
+ if (useProject) {
46
+ try {
47
+ mtime = fs.statSync(filePath).mtimeMs;
48
+ }
49
+ catch { /* 忽略 */ }
50
+ }
24
51
  const cached = configCache.get(cacheKey);
25
- if (cached && Date.now() - cached.loadedAt < CACHE_TTL) {
26
- return { data: cached.data, body: cached.body };
52
+ if (cached) {
53
+ const mtimeMatch = !useProject || cached.mtime === mtime;
54
+ if (mtimeMatch && Date.now() - cached.loadedAt < CACHE_TTL) {
55
+ return { data: cached.data, body: cached.body };
56
+ }
27
57
  }
28
- const filePath = path.join(getKnowledgeRoot(projectPath), relativePath);
29
- if (!fs.existsSync(filePath))
30
- return null;
31
58
  try {
32
59
  const raw = fs.readFileSync(filePath, "utf-8");
33
60
  const { data, content: body } = matter(raw);
34
- configCache.set(cacheKey, { data: data, body, loadedAt: Date.now() });
61
+ configCache.set(cacheKey, { data: data, body, mtime, loadedAt: Date.now() });
35
62
  return { data: data, body };
36
63
  }
37
64
  catch {
65
+ console.error("[soloForge] KnowledgeConfigLoader: 读取知识文件失败", filePath);
38
66
  return null;
39
67
  }
40
68
  }
41
69
  /**
42
70
  * 从知识文件的决策规则中提取指定键的数值。
43
71
  * 格式: - 键名 = 数值(如 "Confidence_Threshold = 0.95")
72
+ * @param body - 知识文件正文内容
73
+ * @param key - 要提取的规则键名
74
+ * @returns 匹配到的数值,未找到时返回 undefined
44
75
  */
45
76
  export function extractNumberRule(body, key) {
46
77
  const regex = new RegExp(`${key.replace(/_/g, "[_ ]")}\\s*=\\s*([\\d.]+)`, "i");
@@ -49,6 +80,9 @@ export function extractNumberRule(body, key) {
49
80
  }
50
81
  /**
51
82
  * 从知识文件的决策规则中提取指定键的字符串值。
83
+ * @param body - 知识文件正文内容
84
+ * @param key - 要提取的规则键名
85
+ * @returns 匹配到的字符串值,未找到时返回 undefined
52
86
  */
53
87
  export function extractStringRule(body, key) {
54
88
  const regex = new RegExp(`${key.replace(/_/g, "[_ ]")}\\s*=\\s*([^\\n,]+)`, "i");
@@ -58,6 +92,9 @@ export function extractStringRule(body, key) {
58
92
  /**
59
93
  * 从知识文件的决策规则中提取列表值。
60
94
  * 格式: - 键名 = 值1 / 值2 / 值3
95
+ * @param body - 知识文件正文内容
96
+ * @param key - 要提取的规则键名
97
+ * @returns 匹配到的字符串列表,未找到时返回空数组
61
98
  */
62
99
  export function extractListRule(body, key) {
63
100
  const value = extractStringRule(body, key);
@@ -65,8 +102,11 @@ export function extractListRule(body, key) {
65
102
  return [];
66
103
  return value.split(/[/,,、]/).map((v) => v.trim()).filter(Boolean);
67
104
  }
68
- /** 清除缓存(测试用) */
105
+ /**
106
+ * 清除知识配置缓存(测试用)。
107
+ */
69
108
  export function clearConfigCache() {
109
+ console.error("[soloForge] KnowledgeConfigLoader: 清除配置缓存");
70
110
  configCache.clear();
71
111
  }
72
112
  //# sourceMappingURL=knowledge_config_loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge_config_loader.js","sourceRoot":"","sources":["../../src/engine/knowledge_config_loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge_config_loader.js","sourceRoot":"","sources":["../../src/engine/knowledge_config_loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC;;;GAGG;AAEH,aAAa;AACb,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4F,CAAC;AACxH,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AAE9C,eAAe;AACf,SAAS,gBAAgB,CAAC,WAAoB;IAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AAC5E,CAAC;AAED,iBAAiB;AACjB,SAAS,gBAAgB;IACvB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,kDAAkD;IAClD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAAoB,EACpB,WAAoB;IAEpB,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,YAAY,CAAC,CAAC;IAEzE,2CAA2C;IAC3C,MAAM,WAAW,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,GAAG,WAAW,KAAK,YAAY,EAAE,CAAC;IAEnD,wDAAwD;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,YAAY,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;IACzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,QAAQ,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uCAAuC;IACvC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YAAC,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC;QACzD,IAAI,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,GAAG,SAAS,EAAE,CAAC;YAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5C,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAA+B,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxG,OAAO,EAAE,IAAI,EAAE,IAA+B,EAAE,IAAI,EAAE,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,GAAW;IACzD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IAChF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,GAAW;IACzD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,GAAW;IACvD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC3D,WAAW,CAAC,KAAK,EAAE,CAAC;AACtB,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Knowledge Injection Boundary — 知识注入边界三道门
3
+ *
4
+ * 将"可索引""可注入""注入优先级"拆成三道门,
5
+ * 为每次 expand 生成知识注入报告,说明哪些知识被注入、
6
+ * 哪些只能 advisory、哪些被排除以及排除原因。
7
+ */
8
+ import type { KnowledgeEntry, KnowledgeInjectionReport, KnowledgeConflict, ExclusionReason } from "../types.js";
9
+ import type { IntentRouteDecision } from "./intent_router.js";
10
+ import { type ConsumableAssetRef } from "./consumable_asset_registry.js";
11
+ export interface InjectionGovernanceFinding {
12
+ severity: "hard_fail" | "advisory";
13
+ subject_id: string;
14
+ field: string;
15
+ message: string;
16
+ }
17
+ interface GateResult<T> {
18
+ passed: T[];
19
+ excluded: Array<{
20
+ id: string;
21
+ name: string;
22
+ reason: ExclusionReason;
23
+ }>;
24
+ }
25
+ /** 门1: 过滤可索引的知识条目,排除非 active/pending_review 状态 */
26
+ export declare function filterIndexable(entries: KnowledgeEntry[]): GateResult<KnowledgeEntry>;
27
+ /** 门2: 过滤可注入的知识条目,按消费模式、作用域、产品、路由等条件筛选 */
28
+ export declare function filterInjectable(entries: KnowledgeEntry[], routeDecision: IntentRouteDecision | undefined, scopeFilters: string[], assets: ConsumableAssetRef[], productFilters?: string[]): {
29
+ injectable: KnowledgeEntry[];
30
+ advisory: KnowledgeEntry[];
31
+ excluded: Array<{
32
+ id: string;
33
+ name: string;
34
+ reason: ExclusionReason;
35
+ }>;
36
+ };
37
+ /** 门3: 按优先级排序知识条目,检测冲突,在预算内裁剪 */
38
+ export declare function sortByPriority(entries: KnowledgeEntry[], routeDecision: IntentRouteDecision | undefined, assets: ConsumableAssetRef[], budget: number): {
39
+ sorted: KnowledgeEntry[];
40
+ conflicts: KnowledgeConflict[];
41
+ dropped: Array<{
42
+ id: string;
43
+ name: string;
44
+ reason: ExclusionReason;
45
+ }>;
46
+ };
47
+ /** 知识注入边界主入口,依次执行三道门并生成注入报告 */
48
+ export declare function enforceKnowledgeInjectionBoundary(entries: KnowledgeEntry[], routeDecision: IntentRouteDecision | undefined, scopeFilters: string[], assets: ConsumableAssetRef[] | undefined, budget?: number, productFilters?: string[]): KnowledgeInjectionReport;
49
+ /** 自治理验证知识注入报告的合规性 */
50
+ export declare function validateInjectionReport(report: KnowledgeInjectionReport): InjectionGovernanceFinding[];
51
+ /**
52
+ * Get injected entries from a report, filtering back to original KnowledgeEntry objects.
53
+ */
54
+ export declare function getInjectedEntryIds(report: KnowledgeInjectionReport): string[];
55
+ export {};
56
+ //# sourceMappingURL=knowledge_injection_boundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge_injection_boundary.d.ts","sourceRoot":"","sources":["../../src/engine/knowledge_injection_boundary.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,wBAAwB,EAExB,iBAAiB,EAEjB,eAAe,EAEhB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,gCAAgC,CAAC;AAIxC,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,WAAW,GAAG,UAAU,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,UAAU,CAAC,CAAC;IACpB,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;CACxE;AAoHD,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAmBrF;AAID,0CAA0C;AAC1C,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,cAAc,EAAE,EACzB,aAAa,EAAE,mBAAmB,GAAG,SAAS,EAC9C,YAAY,EAAE,MAAM,EAAE,EACtB,MAAM,EAAE,kBAAkB,EAAE,EAC5B,cAAc,GAAE,MAAM,EAAO,GAC5B;IACD,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;CACxE,CA4DA;AA4CD,iCAAiC;AACjC,wBAAgB,cAAc,CAC5B,OAAO,EAAE,cAAc,EAAE,EACzB,aAAa,EAAE,mBAAmB,GAAG,SAAS,EAC9C,MAAM,EAAE,kBAAkB,EAAE,EAC5B,MAAM,EAAE,MAAM,GACb;IACD,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;CACvE,CAuEA;AAMD,+BAA+B;AAC/B,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,cAAc,EAAE,EACzB,aAAa,EAAE,mBAAmB,GAAG,SAAS,EAC9C,YAAY,EAAE,MAAM,EAAE,EACtB,MAAM,EAAE,kBAAkB,EAAE,GAAG,SAAS,EACxC,MAAM,GAAE,MAAuB,EAC/B,cAAc,GAAE,MAAM,EAAO,GAC5B,wBAAwB,CA8E1B;AAmFD,sBAAsB;AACtB,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,wBAAwB,GAAG,0BAA0B,EAAE,CA2HtG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,EAAE,CAO9E"}