soloforge 1.1.45 → 1.1.47

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 (608) hide show
  1. package/README.md +15 -3
  2. package/dist/context/adapters/shared/integration_guide.js +3 -1
  3. package/dist/context/adapters/shared/integration_guide.js.map +1 -1
  4. package/dist/context/contracts/lifecycle_knowledge_contract.d.ts.map +1 -1
  5. package/dist/context/contracts/lifecycle_knowledge_contract.js +2 -2
  6. package/dist/context/contracts/lifecycle_knowledge_contract.js.map +1 -1
  7. package/dist/core/gate_record_store.d.ts +11 -7
  8. package/dist/core/gate_record_store.d.ts.map +1 -1
  9. package/dist/core/gate_record_store.js +31 -17
  10. package/dist/core/gate_record_store.js.map +1 -1
  11. package/dist/core/observer.d.ts.map +1 -1
  12. package/dist/core/observer.js +7 -4
  13. package/dist/core/observer.js.map +1 -1
  14. package/dist/core/task_context/manager.d.ts +0 -8
  15. package/dist/core/task_context/manager.d.ts.map +1 -1
  16. package/dist/core/task_context/manager.js +1 -19
  17. package/dist/core/task_context/manager.js.map +1 -1
  18. package/dist/core/task_context/state_fact_classifier.d.ts +0 -8
  19. package/dist/core/task_context/state_fact_classifier.d.ts.map +1 -1
  20. package/dist/core/task_context/state_fact_classifier.js +0 -36
  21. package/dist/core/task_context/state_fact_classifier.js.map +1 -1
  22. package/dist/domain/asset_registry/derived_registry.d.ts.map +1 -1
  23. package/dist/domain/asset_registry/derived_registry.js +20 -5
  24. package/dist/domain/asset_registry/derived_registry.js.map +1 -1
  25. package/dist/domain/asset_registry/derived_types.d.ts +5 -1
  26. package/dist/domain/asset_registry/derived_types.d.ts.map +1 -1
  27. package/dist/domain/build/contract.d.ts.map +1 -1
  28. package/dist/domain/build/contract.js +3 -8
  29. package/dist/domain/build/contract.js.map +1 -1
  30. package/dist/domain/build/engine.d.ts +3 -2
  31. package/dist/domain/build/engine.d.ts.map +1 -1
  32. package/dist/domain/build/engine.js +5 -2
  33. package/dist/domain/build/engine.js.map +1 -1
  34. package/dist/domain/contracts/design_artifact_pack.d.ts +0 -1
  35. package/dist/domain/contracts/design_artifact_pack.d.ts.map +1 -1
  36. package/dist/domain/contracts/design_artifact_pack.js +1 -4
  37. package/dist/domain/contracts/design_artifact_pack.js.map +1 -1
  38. package/dist/domain/design/contract.d.ts.map +1 -1
  39. package/dist/domain/design/contract.js +2 -31
  40. package/dist/domain/design/contract.js.map +1 -1
  41. package/dist/domain/design/engine.d.ts +3 -2
  42. package/dist/domain/design/engine.d.ts.map +1 -1
  43. package/dist/domain/design/engine.js +5 -2
  44. package/dist/domain/design/engine.js.map +1 -1
  45. package/dist/domain/engine_helpers.d.ts +18 -2
  46. package/dist/domain/engine_helpers.d.ts.map +1 -1
  47. package/dist/domain/engine_helpers.js +87 -8
  48. package/dist/domain/engine_helpers.js.map +1 -1
  49. package/dist/domain/index.d.ts +1 -1
  50. package/dist/domain/index.d.ts.map +1 -1
  51. package/dist/domain/operate/contract.js +1 -1
  52. package/dist/domain/operate/contract.js.map +1 -1
  53. package/dist/domain/operate/engine.d.ts +3 -2
  54. package/dist/domain/operate/engine.d.ts.map +1 -1
  55. package/dist/domain/operate/engine.js +5 -2
  56. package/dist/domain/operate/engine.js.map +1 -1
  57. package/dist/domain/registry.d.ts +2 -2
  58. package/dist/domain/registry.d.ts.map +1 -1
  59. package/dist/domain/types.d.ts +1 -12
  60. package/dist/domain/types.d.ts.map +1 -1
  61. package/dist/domain/types.js +3 -0
  62. package/dist/domain/types.js.map +1 -1
  63. package/dist/domain/verify/engine.d.ts +3 -2
  64. package/dist/domain/verify/engine.d.ts.map +1 -1
  65. package/dist/domain/verify/engine.js +5 -2
  66. package/dist/domain/verify/engine.js.map +1 -1
  67. package/dist/gate/contracts/capability_registry.d.ts.map +1 -1
  68. package/dist/gate/contracts/capability_registry.js +0 -26
  69. package/dist/gate/contracts/capability_registry.js.map +1 -1
  70. package/dist/gate/contracts/control_plane_contract.d.ts +1 -1
  71. package/dist/gate/contracts/control_plane_contract.d.ts.map +1 -1
  72. package/dist/gate/contracts/control_plane_contract.js +1 -10
  73. package/dist/gate/contracts/control_plane_contract.js.map +1 -1
  74. package/dist/gate/contracts/tool_invocation_contract_registry.d.ts +1 -0
  75. package/dist/gate/contracts/tool_invocation_contract_registry.d.ts.map +1 -1
  76. package/dist/gate/contracts/tool_invocation_contract_registry.js +1 -1
  77. package/dist/gate/contracts/tool_invocation_contract_registry.js.map +1 -1
  78. package/dist/gate/executors/executors_artifact.d.ts.map +1 -1
  79. package/dist/gate/executors/executors_artifact.js +8 -5
  80. package/dist/gate/executors/executors_artifact.js.map +1 -1
  81. package/dist/gate/executors/executors_prerequisite.d.ts.map +1 -1
  82. package/dist/gate/executors/executors_prerequisite.js +26 -6
  83. package/dist/gate/executors/executors_prerequisite.js.map +1 -1
  84. package/dist/gate/executors/executors_regex_scan.js +2 -2
  85. package/dist/gate/executors/executors_regex_scan.js.map +1 -1
  86. package/dist/gate/executors/executors_trace.d.ts.map +1 -1
  87. package/dist/gate/executors/executors_trace.js +2 -0
  88. package/dist/gate/executors/executors_trace.js.map +1 -1
  89. package/dist/gate/gate_registry_bridge.d.ts +7 -6
  90. package/dist/gate/gate_registry_bridge.d.ts.map +1 -1
  91. package/dist/gate/gate_registry_bridge.js +51 -13
  92. package/dist/gate/gate_registry_bridge.js.map +1 -1
  93. package/dist/gate/index.d.ts +0 -2
  94. package/dist/gate/index.d.ts.map +1 -1
  95. package/dist/gate/index.js +0 -1
  96. package/dist/gate/index.js.map +1 -1
  97. package/dist/server/tools/index.d.ts.map +1 -1
  98. package/dist/server/tools/index.js +1 -3
  99. package/dist/server/tools/index.js.map +1 -1
  100. package/dist/server/tools/lazy_loaders.d.ts +0 -23
  101. package/dist/server/tools/lazy_loaders.d.ts.map +1 -1
  102. package/dist/server/tools/lazy_loaders.js +2 -33
  103. package/dist/server/tools/lazy_loaders.js.map +1 -1
  104. package/dist/server/tools/middleware.d.ts +2 -5
  105. package/dist/server/tools/middleware.d.ts.map +1 -1
  106. package/dist/server/tools/middleware.js +3 -33
  107. package/dist/server/tools/middleware.js.map +1 -1
  108. package/dist/server/tools/sf_doctor.d.ts +1 -0
  109. package/dist/server/tools/sf_doctor.d.ts.map +1 -1
  110. package/dist/server/tools/sf_doctor.js +15 -1
  111. package/dist/server/tools/sf_doctor.js.map +1 -1
  112. package/dist/server/tools/sf_gate.d.ts +1 -1
  113. package/dist/server/tools/sf_gate.js +2 -2
  114. package/dist/server/tools/sf_gate.js.map +1 -1
  115. package/dist/server/tools/sf_task.js +2 -7
  116. package/dist/server/tools/sf_task.js.map +1 -1
  117. package/dist/server/tools/sf_work.d.ts.map +1 -1
  118. package/dist/server/tools/sf_work.js +18 -6
  119. package/dist/server/tools/sf_work.js.map +1 -1
  120. package/dist/server/tools/types.d.ts +0 -2
  121. package/dist/server/tools/types.d.ts.map +1 -1
  122. package/dist/types/pipeline_types.d.ts +1 -9
  123. package/dist/types/pipeline_types.d.ts.map +1 -1
  124. package/dist/verify/audit/verifier.d.ts.map +1 -1
  125. package/dist/verify/audit/verifier.js +0 -33
  126. package/dist/verify/audit/verifier.js.map +1 -1
  127. package/dist/verify/index.d.ts +1 -4
  128. package/dist/verify/index.d.ts.map +1 -1
  129. package/dist/verify/index.js +0 -3
  130. package/dist/verify/index.js.map +1 -1
  131. package/dist/verify/types.d.ts +0 -21
  132. package/dist/verify/types.d.ts.map +1 -1
  133. package/package.json +2 -1
  134. package/templates/build/enforced.md +73 -0
  135. package/templates/build//344/270/223/351/241/271/345/256/236/347/216/260.md +75 -0
  136. package/templates/build//345/256/211/345/205/250/345/212/240/345/233/272.md +75 -0
  137. package/templates/build//346/265/213/350/257/225/344/274/230/345/205/210/347/274/226/347/240/201.md +50 -79
  138. package/templates/build//346/265/213/350/257/225/350/256/241/345/210/222.md +26 -24
  139. package/templates/build//347/274/226/347/240/201/347/272/252/345/276/213.md +75 -0
  140. package/templates/build//350/260/203/350/257/225/346/216/222/346/237/245.md +44 -75
  141. package/templates/build//351/207/215/346/236/204/346/226/271/346/263/225.md +68 -0
  142. package/templates/design/API/346/216/245/345/217/243/350/247/204/346/240/274/346/226/207/346/241/243.md +31 -28
  143. package/templates/design/enforced.md +47 -77
  144. package/templates/design//345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201/345/257/274/350/210/252.md +1 -0
  145. package/templates/design//345/205/274/345/256/271/346/200/247/344/270/216/350/277/201/347/247/273/350/257/204/344/274/260.md +71 -0
  146. package/templates/design//345/206/263/347/255/226/344/270/216/351/200/211/345/236/213.md +70 -0
  147. package/templates/design//345/210/207/347/211/207/350/247/204/345/210/222.md +49 -55
  148. package/templates/design//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/346/226/207/346/241/243.md +33 -47
  149. package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241.md +41 -83
  150. package/templates/design//351/234/200/346/261/202/345/210/206/346/236/220.md +31 -59
  151. package/templates/operate/enforced.md +11 -0
  152. package/templates/operate//344/270/212/347/272/277/350/247/202/345/257/237.md +53 -32
  153. package/templates/operate//345/217/221/345/270/203/350/257/264/346/230/216.md +3 -0
  154. package/templates/operate//351/203/250/347/275/262/351/205/215/347/275/256.md +83 -0
  155. package/templates/shared/enforced.md +46 -5
  156. package/templates/shared//345/217/215/351/246/210/344/277/256/345/244/215/351/227/255/347/216/257.md +86 -0
  157. package/templates/shared//345/267/245/347/250/213/346/211/247/350/241/214/346/200/273/347/272/262.md +148 -0
  158. package/templates/shared//345/267/245/347/250/213/347/272/252/345/276/213.md +71 -0
  159. package/templates/shared//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +48 -43
  160. package/templates/shared//346/234/272/345/210/266/350/257/264/346/230/216.md +67 -0
  161. package/templates/shared//350/257/201/346/215/256/351/251/261/345/212/250/344/270/216/345/217/215/345/271/273/350/247/211.md +27 -17
  162. package/templates/shared//350/264/241/347/214/256/350/247/204/350/214/203.md +78 -0
  163. package/templates/verify/enforced.md +3 -0
  164. package/templates/verify//344/272/244/344/273/230/345/256/214/345/244/207/346/200/247/345/256/241/346/237/245.md +45 -87
  165. package/templates/verify//344/273/243/347/240/201/345/256/241/346/237/245/346/212/245/345/221/212.md +7 -0
  166. package/templates/verify//345/256/241/346/237/245/346/270/205/345/215/225.md +79 -0
  167. package/templates/verify//351/252/214/350/257/201/346/226/271/346/263/225.md +72 -0
  168. package/dist/context/engine/dependency_scanner.d.ts +0 -23
  169. package/dist/context/engine/dependency_scanner.d.ts.map +0 -1
  170. package/dist/context/engine/dependency_scanner.js +0 -309
  171. package/dist/context/engine/dependency_scanner.js.map +0 -1
  172. package/dist/context/engine/exploration.d.ts +0 -194
  173. package/dist/context/engine/exploration.d.ts.map +0 -1
  174. package/dist/context/engine/exploration.js +0 -712
  175. package/dist/context/engine/exploration.js.map +0 -1
  176. package/dist/context/knowledge/knowledge_acceptance_registry.d.ts +0 -42
  177. package/dist/context/knowledge/knowledge_acceptance_registry.d.ts.map +0 -1
  178. package/dist/context/knowledge/knowledge_acceptance_registry.js +0 -249
  179. package/dist/context/knowledge/knowledge_acceptance_registry.js.map +0 -1
  180. package/dist/context/knowledge/knowledge_scenario_registry.d.ts +0 -26
  181. package/dist/context/knowledge/knowledge_scenario_registry.d.ts.map +0 -1
  182. package/dist/context/knowledge/knowledge_scenario_registry.js +0 -267
  183. package/dist/context/knowledge/knowledge_scenario_registry.js.map +0 -1
  184. package/dist/context/knowledge/knowledge_sovereignty.d.ts +0 -65
  185. package/dist/context/knowledge/knowledge_sovereignty.d.ts.map +0 -1
  186. package/dist/context/knowledge/knowledge_sovereignty.js +0 -199
  187. package/dist/context/knowledge/knowledge_sovereignty.js.map +0 -1
  188. package/dist/context/team_awareness.d.ts +0 -42
  189. package/dist/context/team_awareness.d.ts.map +0 -1
  190. package/dist/context/team_awareness.js +0 -154
  191. package/dist/context/team_awareness.js.map +0 -1
  192. package/dist/context/templates/template_asset_visibility.d.ts +0 -116
  193. package/dist/context/templates/template_asset_visibility.d.ts.map +0 -1
  194. package/dist/context/templates/template_asset_visibility.js +0 -310
  195. package/dist/context/templates/template_asset_visibility.js.map +0 -1
  196. package/dist/gate/conflict_gate.d.ts +0 -53
  197. package/dist/gate/conflict_gate.d.ts.map +0 -1
  198. package/dist/gate/conflict_gate.js +0 -96
  199. package/dist/gate/conflict_gate.js.map +0 -1
  200. package/dist/gate/contracts/capability_action_advisor.d.ts +0 -34
  201. package/dist/gate/contracts/capability_action_advisor.d.ts.map +0 -1
  202. package/dist/gate/contracts/capability_action_advisor.js +0 -165
  203. package/dist/gate/contracts/capability_action_advisor.js.map +0 -1
  204. package/dist/gate/contracts/capability_state_store.d.ts +0 -121
  205. package/dist/gate/contracts/capability_state_store.d.ts.map +0 -1
  206. package/dist/gate/contracts/capability_state_store.js +0 -188
  207. package/dist/gate/contracts/capability_state_store.js.map +0 -1
  208. package/dist/gate/contracts/contract_guard.d.ts +0 -50
  209. package/dist/gate/contracts/contract_guard.d.ts.map +0 -1
  210. package/dist/gate/contracts/contract_guard.js +0 -611
  211. package/dist/gate/contracts/contract_guard.js.map +0 -1
  212. package/dist/gate/contracts/escape_report.d.ts +0 -103
  213. package/dist/gate/contracts/escape_report.d.ts.map +0 -1
  214. package/dist/gate/contracts/escape_report.js +0 -145
  215. package/dist/gate/contracts/escape_report.js.map +0 -1
  216. package/dist/gate/feasibility_checker.d.ts +0 -27
  217. package/dist/gate/feasibility_checker.d.ts.map +0 -1
  218. package/dist/gate/feasibility_checker.js +0 -114
  219. package/dist/gate/feasibility_checker.js.map +0 -1
  220. package/dist/gate/migration_guard.d.ts +0 -22
  221. package/dist/gate/migration_guard.d.ts.map +0 -1
  222. package/dist/gate/migration_guard.js +0 -277
  223. package/dist/gate/migration_guard.js.map +0 -1
  224. package/dist/gate/scope_lease.d.ts +0 -94
  225. package/dist/gate/scope_lease.d.ts.map +0 -1
  226. package/dist/gate/scope_lease.js +0 -180
  227. package/dist/gate/scope_lease.js.map +0 -1
  228. package/dist/git/git_deps.d.ts +0 -85
  229. package/dist/git/git_deps.d.ts.map +0 -1
  230. package/dist/git/git_deps.js +0 -22
  231. package/dist/git/git_deps.js.map +0 -1
  232. package/dist/git/operations.d.ts +0 -173
  233. package/dist/git/operations.d.ts.map +0 -1
  234. package/dist/git/operations.js +0 -350
  235. package/dist/git/operations.js.map +0 -1
  236. package/dist/server/tools/gate_engine.d.ts +0 -17
  237. package/dist/server/tools/gate_engine.d.ts.map +0 -1
  238. package/dist/server/tools/gate_engine.js +0 -17
  239. package/dist/server/tools/gate_engine.js.map +0 -1
  240. package/dist/server/tools/middleware/budget_check.d.ts +0 -35
  241. package/dist/server/tools/middleware/budget_check.d.ts.map +0 -1
  242. package/dist/server/tools/middleware/budget_check.js +0 -69
  243. package/dist/server/tools/middleware/budget_check.js.map +0 -1
  244. package/dist/shared/contracts/contract_registry/builtin_contracts_core.d.ts +0 -16
  245. package/dist/shared/contracts/contract_registry/builtin_contracts_core.d.ts.map +0 -1
  246. package/dist/shared/contracts/contract_registry/builtin_contracts_core.js +0 -306
  247. package/dist/shared/contracts/contract_registry/builtin_contracts_core.js.map +0 -1
  248. package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.d.ts +0 -16
  249. package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.d.ts.map +0 -1
  250. package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.js +0 -304
  251. package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.js.map +0 -1
  252. package/dist/shared/contracts/contract_registry/builtin_contracts_extended.d.ts +0 -16
  253. package/dist/shared/contracts/contract_registry/builtin_contracts_extended.d.ts.map +0 -1
  254. package/dist/shared/contracts/contract_registry/builtin_contracts_extended.js +0 -434
  255. package/dist/shared/contracts/contract_registry/builtin_contracts_extended.js.map +0 -1
  256. package/dist/shared/contracts/contract_registry/index.d.ts +0 -8
  257. package/dist/shared/contracts/contract_registry/index.d.ts.map +0 -1
  258. package/dist/shared/contracts/contract_registry/index.js +0 -7
  259. package/dist/shared/contracts/contract_registry/index.js.map +0 -1
  260. package/dist/shared/contracts/contract_registry/registry.d.ts +0 -62
  261. package/dist/shared/contracts/contract_registry/registry.d.ts.map +0 -1
  262. package/dist/shared/contracts/contract_registry/registry.js +0 -191
  263. package/dist/shared/contracts/contract_registry/registry.js.map +0 -1
  264. package/dist/shared/contracts/contract_registry/registry_internal.d.ts +0 -19
  265. package/dist/shared/contracts/contract_registry/registry_internal.d.ts.map +0 -1
  266. package/dist/shared/contracts/contract_registry/registry_internal.js +0 -54
  267. package/dist/shared/contracts/contract_registry/registry_internal.js.map +0 -1
  268. package/dist/shared/contracts/contract_registry/types.d.ts +0 -47
  269. package/dist/shared/contracts/contract_registry/types.d.ts.map +0 -1
  270. package/dist/shared/contracts/contract_registry/types.js +0 -5
  271. package/dist/shared/contracts/contract_registry/types.js.map +0 -1
  272. package/dist/shared/contracts/contract_registry/validation.d.ts +0 -25
  273. package/dist/shared/contracts/contract_registry/validation.d.ts.map +0 -1
  274. package/dist/shared/contracts/contract_registry/validation.js +0 -363
  275. package/dist/shared/contracts/contract_registry/validation.js.map +0 -1
  276. package/dist/shared/llm_gateway.d.ts +0 -186
  277. package/dist/shared/llm_gateway.d.ts.map +0 -1
  278. package/dist/shared/llm_gateway.js +0 -393
  279. package/dist/shared/llm_gateway.js.map +0 -1
  280. package/dist/verify/audit/audit_sampler.d.ts +0 -29
  281. package/dist/verify/audit/audit_sampler.d.ts.map +0 -1
  282. package/dist/verify/audit/audit_sampler.js +0 -42
  283. package/dist/verify/audit/audit_sampler.js.map +0 -1
  284. package/dist/verify/audit/debt_reporter.d.ts +0 -22
  285. package/dist/verify/audit/debt_reporter.d.ts.map +0 -1
  286. package/dist/verify/audit/debt_reporter.js +0 -107
  287. package/dist/verify/audit/debt_reporter.js.map +0 -1
  288. package/dist/verify/audit/debugger.d.ts +0 -25
  289. package/dist/verify/audit/debugger.d.ts.map +0 -1
  290. package/dist/verify/audit/debugger.js +0 -429
  291. package/dist/verify/audit/debugger.js.map +0 -1
  292. package/dist/verify/audit/degradation.d.ts +0 -62
  293. package/dist/verify/audit/degradation.d.ts.map +0 -1
  294. package/dist/verify/audit/degradation.js +0 -78
  295. package/dist/verify/audit/degradation.js.map +0 -1
  296. package/dist/verify/audit/developer_sovereignty.d.ts +0 -29
  297. package/dist/verify/audit/developer_sovereignty.d.ts.map +0 -1
  298. package/dist/verify/audit/developer_sovereignty.js +0 -137
  299. package/dist/verify/audit/developer_sovereignty.js.map +0 -1
  300. package/dist/verify/audit/failure_report.d.ts +0 -76
  301. package/dist/verify/audit/failure_report.d.ts.map +0 -1
  302. package/dist/verify/audit/failure_report.js +0 -145
  303. package/dist/verify/audit/failure_report.js.map +0 -1
  304. package/dist/verify/audit/governance_report.d.ts +0 -110
  305. package/dist/verify/audit/governance_report.d.ts.map +0 -1
  306. package/dist/verify/audit/governance_report.js +0 -194
  307. package/dist/verify/audit/governance_report.js.map +0 -1
  308. package/dist/verify/audit/mutation_audit.d.ts +0 -40
  309. package/dist/verify/audit/mutation_audit.d.ts.map +0 -1
  310. package/dist/verify/audit/mutation_audit.js +0 -154
  311. package/dist/verify/audit/mutation_audit.js.map +0 -1
  312. package/dist/verify/audit/risk_sampler.d.ts +0 -44
  313. package/dist/verify/audit/risk_sampler.d.ts.map +0 -1
  314. package/dist/verify/audit/risk_sampler.js +0 -80
  315. package/dist/verify/audit/risk_sampler.js.map +0 -1
  316. package/dist/verify/audit/runtime_safety.d.ts +0 -89
  317. package/dist/verify/audit/runtime_safety.d.ts.map +0 -1
  318. package/dist/verify/audit/runtime_safety.js +0 -209
  319. package/dist/verify/audit/runtime_safety.js.map +0 -1
  320. package/dist/verify/audit/semantic_evidence.d.ts +0 -36
  321. package/dist/verify/audit/semantic_evidence.d.ts.map +0 -1
  322. package/dist/verify/audit/semantic_evidence.js +0 -90
  323. package/dist/verify/audit/semantic_evidence.js.map +0 -1
  324. package/dist/verify/audit/test_generator.d.ts +0 -23
  325. package/dist/verify/audit/test_generator.d.ts.map +0 -1
  326. package/dist/verify/audit/test_generator.js +0 -278
  327. package/dist/verify/audit/test_generator.js.map +0 -1
  328. package/dist/verify/audit/test_quality.d.ts +0 -49
  329. package/dist/verify/audit/test_quality.d.ts.map +0 -1
  330. package/dist/verify/audit/test_quality.js +0 -684
  331. package/dist/verify/audit/test_quality.js.map +0 -1
  332. package/dist/verify/change_coordinator.d.ts +0 -45
  333. package/dist/verify/change_coordinator.d.ts.map +0 -1
  334. package/dist/verify/change_coordinator.js +0 -168
  335. package/dist/verify/change_coordinator.js.map +0 -1
  336. package/dist/verify/contracts/decision_contract.d.ts +0 -51
  337. package/dist/verify/contracts/decision_contract.d.ts.map +0 -1
  338. package/dist/verify/contracts/decision_contract.js +0 -70
  339. package/dist/verify/contracts/decision_contract.js.map +0 -1
  340. package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.d.ts +0 -17
  341. package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.d.ts.map +0 -1
  342. package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.js +0 -428
  343. package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.js.map +0 -1
  344. package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.d.ts +0 -17
  345. package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.d.ts.map +0 -1
  346. package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.js +0 -429
  347. package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.js.map +0 -1
  348. package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.d.ts +0 -17
  349. package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.d.ts.map +0 -1
  350. package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.js +0 -194
  351. package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.js.map +0 -1
  352. package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.d.ts +0 -17
  353. package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.d.ts.map +0 -1
  354. package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.js +0 -365
  355. package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.js.map +0 -1
  356. package/dist/verify/contracts/mechanism_contract_registry/index.d.ts +0 -19
  357. package/dist/verify/contracts/mechanism_contract_registry/index.d.ts.map +0 -1
  358. package/dist/verify/contracts/mechanism_contract_registry/index.js +0 -21
  359. package/dist/verify/contracts/mechanism_contract_registry/index.js.map +0 -1
  360. package/dist/verify/contracts/mechanism_contract_registry/types.d.ts +0 -33
  361. package/dist/verify/contracts/mechanism_contract_registry/types.d.ts.map +0 -1
  362. package/dist/verify/contracts/mechanism_contract_registry/types.js +0 -5
  363. package/dist/verify/contracts/mechanism_contract_registry/types.js.map +0 -1
  364. package/dist/verify/contracts/mechanism_contract_registry/validation.d.ts +0 -38
  365. package/dist/verify/contracts/mechanism_contract_registry/validation.d.ts.map +0 -1
  366. package/dist/verify/contracts/mechanism_contract_registry/validation.js +0 -136
  367. package/dist/verify/contracts/mechanism_contract_registry/validation.js.map +0 -1
  368. package/templates/build/Bug/345/210/206/346/236/220.md +0 -59
  369. package/templates/build/Git/346/223/215/344/275/234.md +0 -48
  370. package/templates/build/OOD/350/256/276/350/256/241/346/221/230/350/246/201.md +0 -46
  371. package/templates/build/React/346/216/245/345/217/243/351/233/206/346/210/220.md +0 -42
  372. package/templates/build/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +0 -52
  373. package/templates/build/TS/350/264/250/351/207/217/345/256/241/346/237/245.md +0 -78
  374. package/templates/build//344/270/212/346/270/270/344/272/244/345/217/211/351/252/214/350/257/201.md +0 -68
  375. package/templates/build//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/350/257/201.md +0 -56
  376. package/templates/build//344/273/243/347/240/201/351/227/250/347/246/201.md +0 -58
  377. package/templates/build//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +0 -48
  378. package/templates/build//345/210/207/347/211/207/346/211/247/350/241/214/347/272/252/345/276/213.md +0 -108
  379. package/templates/build//345/210/207/347/211/207/347/253/257/345/210/260/347/253/257/351/252/214/350/257/201.md +0 -221
  380. package/templates/build//345/212/237/350/203/275/345/274/200/345/217/221.md +0 -66
  381. package/templates/build//345/220/216/347/253/257/345/256/236/347/216/260.md +0 -39
  382. package/templates/build//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213.md +0 -33
  383. package/templates/build//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/256/241/346/237/245.md +0 -70
  384. package/templates/build//345/220/216/347/253/257/346/216/245/345/217/243/345/256/236/347/216/260.md +0 -43
  385. package/templates/build//345/233/275/351/231/205/345/214/226.md +0 -45
  386. package/templates/build//345/256/211/345/205/250/345/212/240/345/233/272/346/265/201/346/260/264/347/272/277.md +0 -68
  387. package/templates/build//345/256/211/345/205/250/345/256/241/346/237/245.md +0 -154
  388. package/templates/build//345/256/211/345/205/250/345/256/241/350/256/241.md +0 -47
  389. package/templates/build//345/267/245/347/250/213/347/272/252/345/276/213.md +0 -56
  390. package/templates/build//346/200/247/350/203/275/345/210/206/346/236/220.md +0 -59
  391. package/templates/build//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +0 -53
  392. package/templates/build//346/216/245/345/217/243/351/233/206/346/210/220/346/265/201/346/260/264/347/272/277.md +0 -76
  393. package/templates/build//346/225/260/346/215/256/345/272/223/350/277/201/347/247/273.md +0 -63
  394. package/templates/build//346/226/260/350/200/201/351/200/273/350/276/221/346/257/224/345/257/271/346/227/245/345/277/227.md +0 -39
  395. package/templates/build//346/235/203/351/231/220/350/256/244/350/257/201.md +0 -49
  396. package/templates/build//346/265/213/350/257/225/350/264/250/351/207/217.md +0 -45
  397. package/templates/build//347/206/224/346/226/255/351/231/215/347/272/247.md +0 -49
  398. package/templates/build//347/212/266/346/200/201/346/265/201/350/275/254.md +0 -43
  399. package/templates/build//347/213/254/347/253/213/345/256/241/346/237/245.md +0 -45
  400. package/templates/build//347/272/246/346/235/237/345/256/236/347/216/260.md +0 -47
  401. package/templates/build//347/274/226/347/240/201/345/260/261/347/273/252/345/256/241/346/237/245.md +0 -60
  402. package/templates/build//347/274/226/347/240/201/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -22
  403. package/templates/build//347/274/226/347/240/201/350/264/250/351/207/217.md +0 -46
  404. package/templates/build//347/274/226/347/240/201/351/230/266/346/256/265/346/211/247/350/241/214.md +0 -105
  405. package/templates/build//347/274/272/351/231/267/347/256/241/347/220/206.md +0 -47
  406. package/templates/build//350/200/246/345/220/210/346/243/200/346/265/213.md +0 -86
  407. package/templates/build//350/246/206/347/233/226/347/216/207/346/240/207/345/207/206.md +0 -40
  408. package/templates/build//350/264/250/351/207/217/345/256/241/346/237/245.md +0 -111
  409. package/templates/build//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +0 -52
  410. package/templates/build//351/200/232/347/224/250/350/264/250/351/207/217.md +0 -176
  411. package/templates/build//351/207/215/346/236/204/346/226/271/346/241/210.md +0 -61
  412. package/templates/build//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +0 -53
  413. package/templates/build//351/230/262/345/276/241/346/200/247/347/274/226/347/240/201.md +0 -94
  414. package/templates/build//351/233/206/346/210/220/351/252/214/350/257/201.md +0 -67
  415. package/templates/build//351/233/267/345/214/272/345/217/215/346/250/241/345/274/217.md +0 -135
  416. package/templates/build//351/252/214/346/224/266/346/240/207/345/207/206/345/256/241/346/237/245.md +0 -64
  417. package/templates/build//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +0 -75
  418. package/templates/design/API/350/256/276/350/256/241.md +0 -47
  419. package/templates/design/N/345/212/2401/346/237/245/350/257/242.md +0 -48
  420. package/templates/design/OOD/350/256/276/350/256/241.md +0 -72
  421. package/templates/design//344/270/200/350/207/264/346/200/247/346/240/241/351/252/214.md +0 -109
  422. package/templates/design//344/270/215/347/241/256/345/256/232/346/227/266/345/244/264/350/204/221/351/243/216/346/232/264.md +0 -105
  423. package/templates/design//344/273/273/345/212/241/346/213/206/350/247/243.md +0 -61
  424. package/templates/design//344/273/273/345/212/241/350/247/204/345/210/222.md +0 -84
  425. package/templates/design//344/274/232/350/257/235/346/201/242/345/244/215-procedures.md +0 -78
  426. package/templates/design//345/205/274/345/256/271/346/200/247/346/243/200/346/237/245.md +0 -89
  427. package/templates/design//345/210/207/347/211/207/350/256/241/345/210/222.md +0 -149
  428. package/templates/design//345/211/215/347/253/257/346/200/247/350/203/275.md +0 -49
  429. package/templates/design//345/216/206/345/217/262/351/201/227/347/225/231/351/233/267/345/214/272/346/270/205/345/215/225.md +0 -50
  430. package/templates/design//345/216/237/345/236/213/346/272/220/347/240/201/346/217/220/345/217/226.md +0 -78
  431. package/templates/design//345/216/237/345/236/213/350/257/264/346/230/216.md +0 -200
  432. package/templates/design//345/216/237/345/236/213/350/257/264/346/230/216/345/256/241/346/237/245.md +0 -81
  433. package/templates/design//345/220/221/345/220/216/345/205/274/345/256/271/346/200/247/345/220/210/350/247/204/346/212/245/345/221/212.md +0 -52
  434. package/templates/design//345/221/275/344/273/244/346/211/247/350/241/214-procedures.md +0 -45
  435. package/templates/design//345/221/275/344/273/244/350/267/257/347/224/261-procedures.md +0 -46
  436. package/templates/design//345/221/275/345/220/215.md +0 -49
  437. package/templates/design//345/242/236/351/207/217/350/276/271/347/225/214/347/225/214/345/256/232/346/226/207/346/241/243.md +0 -48
  438. package/templates/design//345/267/245/345/205/267/350/260/203/347/224/250-procedures.md +0 -41
  439. package/templates/design//345/271/266/345/217/221/346/216/247/345/210/266.md +0 -50
  440. package/templates/design//346/212/200/346/234/257/351/200/211/345/236/213.md +0 -33
  441. package/templates/design//346/216/245/345/217/243/345/257/271/346/216/245/346/226/271/346/241/210.md +0 -97
  442. package/templates/design//346/224/271/351/200/240/345/275/261/345/223/215/350/214/203/345/233/264/350/257/204/344/274/260.md +0 -56
  443. package/templates/design//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/346/226/271/346/241/210.md +0 -75
  444. package/templates/design//346/225/260/346/215/256/350/241/200/347/274/230/345/233/276.md +0 -49
  445. package/templates/design//346/227/240/351/232/234/347/242/215.md +0 -49
  446. package/templates/design//346/236/266/346/236/204/345/206/263/347/255/226/350/256/260/345/275/225.md +0 -53
  447. package/templates/design//346/236/266/346/236/204/345/256/241/346/237/245.md +0 -256
  448. package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241-constraints.md +0 -177
  449. package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241-procedures.md +0 -130
  450. package/templates/design//346/246/202/345/277/265/351/252/214/350/257/201/346/265/201/346/260/264/347/272/277.md +0 -47
  451. package/templates/design//346/272/220/347/240/201/345/216/237/345/236/213/344/272/244/344/273/230.md +0 -58
  452. package/templates/design//347/216/260/346/234/211/347/263/273/347/273/237/345/267/256/350/267/235/345/210/206/346/236/220.md +0 -114
  453. package/templates/design//347/237/245/350/257/206/347/273/264/346/212/244/346/265/201/346/260/264/347/272/277.md +0 -64
  454. package/templates/design//347/254/254/344/270/200/346/200/247/345/216/237/347/220/206/346/216/250/347/220/206.md +0 -182
  455. package/templates/design//347/264/247/346/200/245/345/233/236/346/273/232/346/211/213/345/206/214.md +0 -77
  456. package/templates/design//347/274/226/347/240/201/345/211/215/346/276/204/346/270/205.md +0 -85
  457. package/templates/design//350/200/201/347/263/273/347/273/237/345/210/207/347/211/207/350/247/204/345/210/222.md +0 -48
  458. package/templates/design//350/207/252/344/270/273/351/200/211/345/236/213.md +0 -57
  459. package/templates/design//350/256/276/350/256/241/344/270/200/350/207/264/346/200/247/351/252/214/346/224/266/346/212/245/345/221/212.md +0 -34
  460. package/templates/design//350/256/276/350/256/241/344/272/247/347/211/251/347/224/237/346/210/220/344/270/216/345/244/215/351/252/214.md +0 -60
  461. package/templates/design//350/256/276/350/256/241/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -21
  462. package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241-procedures.md +0 -123
  463. package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241.md +0 -109
  464. package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241/345/256/241/346/237/245.md +0 -88
  465. package/templates/design//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +0 -43
  466. package/templates/design//350/277/201/347/247/273/350/257/204/344/274/260.md +0 -67
  467. package/templates/design//351/232/224/347/246/273/351/200/202/351/205/215/345/231/250/346/226/271/346/241/210.md +0 -44
  468. package/templates/design//351/234/200/346/261/202/346/276/204/346/270/205.md +0 -65
  469. package/templates/design//351/234/200/346/261/202/350/264/250/351/207/217/345/256/241/346/237/245.md +0 -88
  470. package/templates/design//351/242/206/345/237/237/351/251/261/345/212/250/350/256/276/350/256/241.md +0 -43
  471. package/templates/operate//345/217/221/345/270/203/350/257/264/346/230/216/345/256/241/346/237/245.md +0 -60
  472. package/templates/operate//350/277/220/347/273/264/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -22
  473. package/templates/operate//351/203/250/347/275/262/351/205/215/347/275/256/345/256/241/346/237/245.md +0 -59
  474. package/templates/shared/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +0 -55
  475. package/templates/shared/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +0 -54
  476. package/templates/shared/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +0 -54
  477. package/templates/shared/OOD/344/270/216SOLID/350/256/276/350/256/241.md +0 -48
  478. package/templates/shared//344/272/247/347/211/251Schema/346/263/250/345/206/214/344/270/255/345/277/203.md +0 -57
  479. package/templates/shared//344/272/247/347/211/251/345/245/221/347/272/246.md +0 -44
  480. package/templates/shared//344/273/243/347/240/201/346/263/250/351/207/212/344/270/216/346/227/245/345/277/227/345/245/221/347/272/246.md +0 -116
  481. package/templates/shared//344/273/273/345/212/241/344/270/212/344/270/213/346/226/207/347/224/237/345/221/275/345/221/250/346/234/237.md +0 -45
  482. package/templates/shared//344/273/273/345/212/241/347/212/266/346/200/201/346/234/272.md +0 -55
  483. package/templates/shared//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +0 -55
  484. package/templates/shared//344/274/230/351/233/205/345/201/234/346/234/272.md +0 -43
  485. package/templates/shared//344/275/234/347/224/250/345/237/237/344/270/216/345/257/206/351/222/245/346/213/246/346/210/252.md +0 -54
  486. package/templates/shared//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +0 -55
  487. package/templates/shared//345/206/262/347/252/201/351/227/250/347/246/201.md +0 -55
  488. package/templates/shared//345/206/263/347/255/226/347/275/221/345/205/263.md +0 -61
  489. package/templates/shared//345/210/207/347/211/207/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -72
  490. package/templates/shared//345/217/230/345/274/202/345/256/241/350/256/241.md +0 -58
  491. package/templates/shared//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/245/221/347/272/246.md +0 -40
  492. package/templates/shared//345/221/275/344/273/244/346/211/247/350/241/214.md +0 -48
  493. package/templates/shared//345/221/275/344/273/244/350/267/257/347/224/261.md +0 -45
  494. package/templates/shared//345/233/236/345/275/222/347/237/251/351/230/265.md +0 -54
  495. package/templates/shared//345/244/232/347/247/237/346/210/267.md +0 -49
  496. package/templates/shared//345/256/241/350/256/241/346/227/245/345/277/227.md +0 -46
  497. package/templates/shared//345/257/274/345/205/245/345/257/274/345/207/272.md +0 -51
  498. package/templates/shared//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +0 -52
  499. package/templates/shared//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +0 -54
  500. package/templates/shared//345/267/245/344/275/234/346/265/201/345/245/221/347/272/246.md +0 -42
  501. package/templates/shared//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +0 -50
  502. package/templates/shared//345/267/245/344/275/234/346/265/201/346/250/241/347/211/210/345/214/205.md +0 -34
  503. package/templates/shared//345/267/245/345/205/267/350/260/203/347/224/250.md +0 -48
  504. package/templates/shared//345/271/266/345/217/221/351/224/201.md +0 -57
  505. package/templates/shared//346/211/247/350/241/214/345/256/210/345/215/253/350/257/204/344/274/260.md +0 -47
  506. package/templates/shared//346/211/251/345/261/225/347/224/237/345/221/275/345/221/250/346/234/237.md +0 -34
  507. package/templates/shared//346/212/200/346/234/257/345/206/263/347/255/226/344/270/273/346/235/203.md +0 -50
  508. package/templates/shared//346/212/245/350/241/250/347/273/237/350/256/241.md +0 -50
  509. package/templates/shared//346/224/257/344/273/230.md +0 -51
  510. package/templates/shared//346/225/217/346/204/237/344/277/241/346/201/257/345/244/204/347/220/206.md +0 -77
  511. package/templates/shared//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +0 -53
  512. package/templates/shared//346/225/260/346/215/256/346/235/203/351/231/220.md +0 -47
  513. package/templates/shared//346/226/275/345/267/245/346/214/207/344/273/244/345/245/221/347/272/246.md +0 -69
  514. package/templates/shared//346/227/245/345/277/227/346/262/273/347/220/206.md +0 -31
  515. package/templates/shared//346/234/272/345/210/266/350/207/252/346/262/273/347/220/206.md +0 -31
  516. package/templates/shared//346/240/207/345/207/206/350/265/204/344/272/247/350/246/206/347/233/226.md +0 -50
  517. package/templates/shared//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +0 -38
  518. package/templates/shared//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 +0 -154
  519. package/templates/shared//346/250/241/347/211/210Frontmatter.md +0 -125
  520. package/templates/shared//346/250/241/347/211/210/350/264/241/347/214/256/346/214/207/345/215/227.md +0 -282
  521. package/templates/shared//346/250/241/347/211/210/350/265/204/344/272/247/345/217/257/350/247/201/346/200/247.md +0 -48
  522. package/templates/shared//346/262/273/347/220/206/350/277/220/350/241/214/346/227/266/345/276/252/347/216/257.md +0 -56
  523. package/templates/shared//346/263/250/345/206/214/350/241/250/345/237/272/347/241/200/350/256/276/346/226/275.md +0 -49
  524. package/templates/shared//346/265/201/345/274/217/345/277/203/350/267/263.md +0 -64
  525. package/templates/shared//346/274/224/350/277/233/345/233/236/345/275/222/351/227/250/346/216/247.md +0 -50
  526. package/templates/shared//347/224/250/346/210/267/345/217/215/351/246/210/345/245/221/347/272/246.md +0 -86
  527. package/templates/shared//347/237/245/350/257/206/344/270/273/346/235/203.md +0 -66
  528. package/templates/shared//347/237/245/350/257/206/346/262/273/347/220/206.md +0 -31
  529. package/templates/shared//347/237/245/350/257/206/346/263/250/345/205/245/350/276/271/347/225/214.md +0 -47
  530. package/templates/shared//347/273/206/350/212/202/347/272/252/345/276/213.md +0 -54
  531. package/templates/shared//350/204/221/346/232/264/344/270/216/346/226/271/346/241/210/346/216/242/347/264/242.md +0 -51
  532. package/templates/shared//350/256/241/345/210/222/345/211/215/347/275/256/351/227/250.md +0 -47
  533. package/templates/shared//350/256/276/350/256/241/344/272/247/347/211/251/345/214/205.md +0 -58
  534. package/templates/shared//350/257/255/344/271/211/350/257/201/346/215/256.md +0 -55
  535. package/templates/shared//350/267/250/345/271/263/345/217/260/350/267/257/345/276/204/345/256/211/345/205/250.md +0 -41
  536. package/templates/shared//350/276/223/345/205/245/346/235/220/346/226/231/345/245/221/347/272/246.md +0 -50
  537. package/templates/shared//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +0 -58
  538. package/templates/shared//351/200/232/347/224/250/345/206/263/347/255/226/347/240/224/350/256/250.md +0 -62
  539. package/templates/shared//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +0 -47
  540. package/templates/shared//351/200/232/347/237/245.md +0 -50
  541. package/templates/shared//351/203/250/347/275/262/351/205/215/347/275/256.md +0 -14
  542. package/templates/shared//351/205/215/347/275/256/344/274/230/345/205/210/347/272/247.md +0 -67
  543. package/templates/shared//351/205/215/347/275/256/350/220/275/347/233/230/350/276/271/347/225/214.md +0 -32
  544. package/templates/shared//351/230/262/345/255/244/345/262/233/345/256/236/347/216/260.md +0 -51
  545. package/templates/shared//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +0 -57
  546. package/templates/shared//351/252/214/346/224/266/346/250/241/347/211/210/350/276/223/345/207/272/345/245/221/347/272/246.md +0 -71
  547. package/templates/shared//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +0 -55
  548. package/templates/shared//351/252/214/350/257/201/345/245/221/347/272/246.md +0 -48
  549. package/templates/verify/Docker/351/203/250/347/275/262.md +0 -46
  550. package/templates/verify/POC/347/273/223/350/256/272.md +0 -53
  551. package/templates/verify/React/345/210/227/350/241/250/350/241/250/346/240/274.md +0 -43
  552. package/templates/verify/React/347/212/266/346/200/201/347/256/241/347/220/206.md +0 -42
  553. package/templates/verify/React/347/273/204/344/273/266.md +0 -42
  554. package/templates/verify/React/350/241/250/345/215/225.md +0 -43
  555. package/templates/verify/React/350/267/257/347/224/261.md +0 -43
  556. package/templates/verify/SOLID/344/273/243/347/240/201/345/256/241/346/237/245.md +0 -74
  557. package/templates/verify/SOLID/350/256/276/350/256/241.md +0 -31
  558. package/templates/verify/Schema/345/205/274/345/256/271.md +0 -42
  559. package/templates/verify/Vue/347/212/266/346/200/201/347/256/241/347/220/206.md +0 -42
  560. package/templates/verify/Vue/347/273/204/344/273/266.md +0 -42
  561. package/templates/verify/Vue/350/267/257/347/224/261.md +0 -43
  562. package/templates/verify//344/270/212/346/270/270/350/256/276/350/256/241/344/272/244/345/217/211/351/252/214/350/257/201/345/256/241/346/237/245.md +0 -76
  563. package/templates/verify//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245.md +0 -38
  564. package/templates/verify//344/272/213/344/273/266/351/251/261/345/212/250.md +0 -46
  565. package/templates/verify//344/272/213/345/212/241/346/250/241/345/274/217.md +0 -42
  566. package/templates/verify//344/273/243/347/240/201/345/217/257/347/273/264/346/212/244/346/200/247/344/270/216/345/217/257/350/247/202/346/265/213/346/200/247/345/256/241/346/237/245.md +0 -92
  567. package/templates/verify//344/273/243/347/240/201/346/263/250/351/207/212/344/270/216/346/227/245/345/277/227/351/252/214/346/224/266.md +0 -64
  568. package/templates/verify//344/274/232/350/257/235/346/201/242/345/244/215.md +0 -46
  569. package/templates/verify//345/206/263/347/255/226/345/256/214/346/225/264/346/200/247/345/256/241/346/237/245.md +0 -71
  570. package/templates/verify//345/210/206/351/241/265/346/237/245/350/257/242.md +0 -41
  571. package/templates/verify//345/211/215/347/253/257/351/241/265/351/235/242.md +0 -40
  572. package/templates/verify//345/216/206/345/217/262/346/225/260/346/215/256/346/270/205/346/264/227/350/204/232/346/234/254.md +0 -55
  573. package/templates/verify//345/217/221/345/270/203/345/220/216/345/256/241/346/237/245.md +0 -73
  574. package/templates/verify//345/220/216/347/253/257API.md +0 -39
  575. package/templates/verify//345/242/236/345/210/240/346/224/271/346/237/245.md +0 -45
  576. package/templates/verify//345/244/226/351/203/250/344/276/235/350/265/226.md +0 -43
  577. package/templates/verify//345/245/221/347/272/246/345/205/274/345/256/271.md +0 -42
  578. package/templates/verify//345/256/232/346/227/266/344/273/273/345/212/241.md +0 -39
  579. package/templates/verify//345/256/236/346/227/266/346/216/250/351/200/201.md +0 -48
  580. package/templates/verify//345/256/241/346/237/245/346/221/230/350/246/201.md +0 -58
  581. package/templates/verify//345/267/245/344/275/234/346/265/201.md +0 -38
  582. package/templates/verify//345/271/266/345/217/221/345/256/241/346/237/245.md +0 -132
  583. package/templates/verify//345/274/202/346/255/245/345/257/274/345/207/272.md +0 -41
  584. package/templates/verify//346/200/247/350/203/275/345/256/241/346/237/245.md +0 -110
  585. package/templates/verify//346/216/245/345/217/243/345/245/221/347/272/246.md +0 -44
  586. package/templates/verify//346/216/245/345/217/243/345/245/221/347/272/246/345/256/241/346/237/245.md +0 -131
  587. package/templates/verify//346/220/234/347/264/242/346/250/241/345/274/217.md +0 -47
  588. package/templates/verify//346/225/205/351/232/234/345/244/215/347/233/230.md +0 -67
  589. package/templates/verify//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264.md +0 -37
  590. package/templates/verify//346/225/260/346/215/256/351/232/220/347/247/201.md +0 -46
  591. package/templates/verify//346/226/207/344/273/266/344/270/212/344/274/240.md +0 -45
  592. package/templates/verify//346/227/245/345/277/227.md +0 -45
  593. package/templates/verify//346/234/254/345/234/260/346/265/217/350/247/210/345/231/250/351/252/214/346/224/266.md +0 -94
  594. package/templates/verify//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214.md +0 -65
  595. package/templates/verify//347/237/245/350/257/206/346/263/250/345/205/245.md +0 -38
  596. package/templates/verify//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +0 -76
  597. package/templates/verify//347/274/223/345/255/230/347/255/226/347/225/245.md +0 -45
  598. package/templates/verify//350/201/224/350/260/203/350/256/276/350/256/241/347/274/272/351/231/267/345/210/244/345/256/232.md +0 -67
  599. package/templates/verify//350/201/224/350/260/203/351/252/214/350/257/201.md +0 -87
  600. package/templates/verify//350/256/276/350/256/241/345/256/241/350/256/241.md +0 -184
  601. package/templates/verify//350/257/225/350/277/220/350/241/214/347/206/224/346/226/255.md +0 -74
  602. package/templates/verify//350/276/223/345/205/245/346/240/241/351/252/214.md +0 -44
  603. package/templates/verify//351/203/250/347/275/262/345/217/221/345/270/203.md +0 -101
  604. package/templates/verify//351/224/231/350/257/257/345/244/204/347/220/206.md +0 -46
  605. package/templates/verify//351/224/231/350/257/257/350/276/271/347/225/214.md +0 -38
  606. package/templates/verify//351/232/220/347/247/201/345/256/241/346/237/245.md +0 -37
  607. package/templates/verify//351/252/214/350/257/201.md +0 -38
  608. package/templates/verify//351/252/214/350/257/201/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -22
@@ -1,5 +1,5 @@
1
1
  ---
2
- id: ka-review-rule-交付完备性审查规则
2
+ id: ka-guidance-交付完备性审查
3
3
  kind: guidance
4
4
  title: 交付完备性审查
5
5
  sync_policy: copy_to_project
@@ -9,109 +9,67 @@ triggers:
9
9
  - review
10
10
  - 交付检查
11
11
  - 上线前检查
12
- - 提交检查
12
+ - 提测
13
+ - 交付完备
13
14
  - 终局宣言
15
+ - 完成检查
16
+ - 交付
17
+ target_artifact:
18
+ - review_report
14
19
  extra:
15
20
  name: delivery-completeness
16
- type: constraint
17
21
  scope:
18
- - backend
19
- - frontend
22
+ - '*'
20
23
  products:
21
24
  - '*'
25
+ type: constraint
22
26
  lifecycle_status: active
23
- version: 1.2.0
24
- last_reviewed: '2026-06-04'
25
- domain: verify
27
+ version: 2.0.0
28
+ last_reviewed: '2026-06-17'
26
29
  verification_layer: L2
27
30
  stage: verify
31
+ domain: verify
28
32
  owner_mechanism: mc-generic-review
29
33
  ---
30
34
 
31
- ## DEL-01: 交付物缺少终局宣言签名
32
- pattern: /SoloForge Audit: PASS/
33
- severity: error
34
- check_type: deterministic
35
- scope: [backend, frontend]
36
- description: 所有交付物末尾必须包含 [SoloForge Audit: PASS - 已通过三重深度推演,确认无潜在隐患]。缺少此签名的交付视为无效
37
- evidence_required:
38
- - "交付物文件路径"
39
- - "终局宣言签名存在确认"
35
+ # 交付完备性审查:交付前必查清单
36
+
37
+ > 这是"最小交付偏差 + 逼证据"的总裁决。交付前逐项核对,缺一不算交付完成。
38
+ > 注入到代码审查报告(review_report)产出时。
39
+
40
+ ## 一、最小偏差(交付 = 需求)
41
+
42
+ - [ ] 每条需求 REQ 有对应实现,且实现行为符合需求
43
+ - [ ] 交付内容不超出需求范围(无多余功能,[[工程执行总纲]] 精准修改)
44
+ - [ ] 根本目标(fundamental_need)已达成,非只完成表面功能
45
+
46
+ ## 二、证据充分(逼证据)
47
+
48
+ - [ ] 验证基于真实执行(E1+ 运行时证据),非静态分析/AI 摘要([[证据驱动与反幻觉]] 第 5 条)
49
+ - [ ] 验收覆盖正常/异常/边界/权限四类(适用时含并发)
50
+ - [ ] 测试全绿,增量覆盖率达标
51
+ - [ ] 无"未验证项"被假装通过
40
52
 
41
- ## DEL-02: 验收项缺少边界值覆盖
42
- pattern: //
43
- severity: warning
44
- check_type: deterministic
45
- scope: [backend, frontend]
46
- description: 验收项应覆盖空值(null/undefined)、极端值(MAX_VALUE/空字符串)、异常输入场景,而非仅 happy path
47
- evidence_required:
48
- - "验收项列表"
49
- - "边界值覆盖统计"
53
+ ## 三、无半成品(逼质量)
50
54
 
51
- ## DEL-03: 涉及外部调用但无异常处理验收
52
- pattern: /(?:feign|http|restTemplate|webClient|fetch|axios)\s*\(/i
53
- severity: warning
54
- check_type: deterministic
55
- scope: [backend, frontend]
56
- description: 涉及外部 HTTP 调用的代码必须有超时、异常格式、降级场景的验收覆盖
57
- evidence_required:
58
- - "外部调用点列表"
59
- - "异常处理验收覆盖确认"
55
+ - [ ] 无 TODO 占位、空函数体、空 catch(build-gate BLD-G02)
56
+ - [ ] 无未接入主链路的孤岛代码(VRF-G06)
57
+ - [ ] 错误路径都有处理,非只 happy path
60
58
 
61
- ## DEL-04: 涉及状态变更但无事务/幂等验收
62
- pattern: /(?:@Transactional|save\(|insert\(|update\(|delete\()/i
63
- severity: warning
64
- check_type: deterministic
65
- scope: backend
66
- description: 涉及数据库状态变更的代码必须有事务一致性、幂等性验收覆盖
67
- evidence_required:
68
- - "状态变更操作列表"
69
- - "事务/幂等验收确认"
59
+ ## 四、人工审计(逼安全/质量)
70
60
 
71
- ## DEL-05: 测试断言精度不足(疑似自己证明自己)
72
- pattern: /(?:toBeTruthy|toBeFalsy|toBeDefined|toBeUndefined|toBeDefined)\s*\(/
73
- severity: info
74
- check_type: deterministic
75
- scope: [backend, frontend]
76
- description: 大量使用模糊断言(toBeTruthy等)视为测试有效性风险,必须补充精确断言(toBe/toEqual/toThrow)
77
- evidence_required:
78
- - "模糊断言使用统计"
61
+ - [ ] 黑盒信任级发现项已人类签署 `[Human-Audit: APPROVED]`([[开发者宪法]])
62
+ - [ ] 敏感操作(金额/状态/审批/跨系统)经用户确认
63
+ - [ ] 无静默变更(GRAY/BLACK 级变更未跳过确认)
79
64
 
80
- ## SEL-01: 技术选型无行业基准支撑
81
- pattern: //
82
- severity: error
83
- check_type: deterministic
84
- scope: [backend, frontend]
85
- description: 技术选型必须检索至少 3 个行业标准方案(结合通用知识 + sf_knowledge 项目沉淀)。禁止凭空推荐方案
86
- evidence_required:
87
- - "技术选型记录路径"
88
- - "行业基准检索结果路径"
89
- - "对比方案数(须≥3)"
65
+ ## 五、可回滚(逼安全)
90
66
 
91
- ## SEL-02: 推荐方案未说明致命缺点规避策略
92
- pattern: //
93
- severity: warning
94
- check_type: semantic
95
- scope: [backend, frontend]
96
- description: 最优解宣誓必须明确说明如何规避其他方案的致命缺点。无规避说明视为不完整选型
97
- evidence_required:
98
- - "推荐方案致命缺点列表"
99
- - "规避策略说明"
67
+ - [ ] 有回滚方案(DDL/配置/代码变更可回滚)
68
+ - [ ] 数据迁移有回滚脚本且验证过
100
69
 
101
- ## TRA-01: 审查发现未按信任分级路由
102
- pattern: //
103
- severity: info
104
- check_type: semantic
105
- scope: [backend, frontend]
106
- description: sf_work action=verify 结果应按白盒(可跳过)/灰盒(建议审查)/黑盒(强制审查)三级分类展示,禁止平铺所有发现
107
- evidence_required:
108
- - "信任分级统计(白盒/灰盒/黑盒项数)"
70
+ ## 禁止
109
71
 
110
- ## TRA-02: 审查报告缺少认知透明度标注
111
- pattern: //
112
- severity: info
113
- check_type: semantic
114
- scope: [backend, frontend]
115
- description: 审查结果应标注熔断触发状态、变异检测结果、漂移检测结果,确保人类能看到系统内部决策
116
- evidence_required:
117
- - "认知透明度标注内容"
72
+ - 没验证就说"通过"(违规)
73
+ - 隐藏未验证项(违规)
74
+ - 黑盒项跳过人工签署(违规)
75
+ - 无回滚方案就交付(违规)
@@ -13,8 +13,15 @@ extra:
13
13
  lifecycle_status: active
14
14
  stage: verify
15
15
  owner_mechanism: mc-generic-artifact
16
+ products:
17
+ - '*'
18
+ version: 2.0.0
19
+ last_reviewed: '2026-06-17'
16
20
  ---
17
21
 
22
+ > **产物定位**:verify 阶段必出。代码审查的最终裁决——发现项按严重度分级,黑盒项须人类签署。
23
+ > **核心纪律**:审查 Agent 与编码 Agent 须独立([[证据驱动与反幻觉]]);黑盒项未经 `[Human-Audit: APPROVED]` 不得判通过([[开发者宪法]])。
24
+
18
25
  # 代码审查报告
19
26
 
20
27
  ## 1. 审查信息
@@ -0,0 +1,79 @@
1
+ ---
2
+ id: ka-guidance-审查清单
3
+ kind: guidance
4
+ title: 审查清单
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ triggers:
8
+ - 审查
9
+ - review
10
+ - 代码审查
11
+ - 质量
12
+ - 审查清单
13
+ - 检查清单
14
+ - code review
15
+ target_artifact:
16
+ - review_report
17
+ extra:
18
+ name: review-checklist
19
+ scope:
20
+ - '*'
21
+ products:
22
+ - '*'
23
+ type: constraint
24
+ lifecycle_status: active
25
+ version: 1.0.0
26
+ last_reviewed: '2026-06-17'
27
+ verification_layer: L2
28
+ stage: verify
29
+ domain: verify
30
+ owner_mechanism: mc-generic-review
31
+ ---
32
+
33
+ # 审查清单:代码审查查什么
34
+
35
+ > 合并旧的十几个审查碎拆(SOLID/性能/并发/错误处理/数据隐私/可维护性等)。
36
+ > verify-gate 的 SEC/PER/CON/API 是确定性正则门禁;本清单是审查者的维度指引。
37
+ > 注入到代码审查报告(review_report)产出时。
38
+
39
+ ## 审查维度(每类都要过一遍)
40
+
41
+ ### 正确性
42
+ - 逻辑是否实现需求(对照 REQ)
43
+ - 边界条件:空/null/极值/并发/重复提交
44
+ - 错误路径都有处理
45
+
46
+ ### 安全(对应 build-gate SEC-01~12)
47
+ - 输入校验、SQL 注入、XSS、权限、敏感信息、SSRF、反序列化
48
+ - 详见 [[安全加固]]
49
+
50
+ ### 性能(对应 PER-01~09)
51
+ - N+1 查询、SELECT *、全量返回、循环内建对象、大事务、连接池
52
+ - 前端:不必要重渲染、未记忆化、未优化资源
53
+
54
+ ### 并发(对应 CON-01~10)
55
+ - 共享可变状态保护、JVM 锁误用、先查后改原子性、事务自调用、ThreadLocal 清理
56
+
57
+ ### 架构(对应 ARC-*)
58
+ - 分层依赖、循环依赖、单一职责、Controller 不含业务逻辑
59
+
60
+ ### 接口契约(对应 API-01~10)
61
+ - DTO 不暴露 Entity、写操作事务、权限注解、参数校验、RESTful、统一响应、分页、版本号、文档
62
+
63
+ ### 可维护性(AI 盲区,重点人工复核)
64
+ - 命名清晰、单一职责、注释解释 why、无上帝对象
65
+ - 可观测:关键路径有日志,便于排查
66
+
67
+ ### 数据隐私
68
+ - 敏感数据加密/脱敏、日志不泄露、数据生命周期合规
69
+
70
+ ## 信任分级
71
+
72
+ - **白盒**:AI 可确定性判定(正则/类型/编译)→ 自动通过
73
+ - **灰盒**:AI 可判但需复核 → AI 判 + 标注
74
+ - **黑盒**:需业务/设计判断(设计意图/可维护性深层)→ **必须人类签署**([[开发者宪法]])
75
+
76
+ ## 输出
77
+
78
+ 每个发现项:维度 + 严重度(error/warning/info) + 信任分级 + 文件:行号 + 描述 + 建议。
79
+ 黑盒项未签署不得判通过。
@@ -0,0 +1,72 @@
1
+ ---
2
+ id: ka-guidance-验证方法
3
+ kind: guidance
4
+ title: 验证方法
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ triggers:
8
+ - 验证
9
+ - verify
10
+ - 测试
11
+ - 端到端
12
+ - 集成测试
13
+ - 验收
14
+ - 执行验证
15
+ - 怎么验证
16
+ target_artifact:
17
+ - review_report
18
+ extra:
19
+ name: verification-method
20
+ scope:
21
+ - '*'
22
+ products:
23
+ - '*'
24
+ type: procedure
25
+ lifecycle_status: active
26
+ version: 1.0.0
27
+ last_reviewed: '2026-06-17'
28
+ verification_layer: L2
29
+ stage: verify
30
+ domain: verify
31
+ owner_mechanism: mc-verifier
32
+ ---
33
+
34
+ # 验证方法:怎么真实验证(禁止假验证)
35
+
36
+ > [[证据驱动与反幻觉]] 第 5/10 条:验证计划不是验证结果,失败必须修复复验。
37
+ > build-gate VRF-G03 守护:端到端核心流程须全过、证据 ≥ E1。
38
+
39
+ ## 分层验证
40
+
41
+ 1. **单元测试**:单个函数/模块逻辑,mock 外部依赖
42
+ 2. **集成测试**:模块组合,真实依赖(DB/缓存)
43
+ 3. **端到端测试**:完整业务流程,浏览器/API 真实跑通
44
+
45
+ 每层都要跑,不能只跑单元测试就交。
46
+
47
+ ## 证据收集
48
+
49
+ - 测试输出(pass/fail/total)
50
+ - 截图(端到端,证明真实跑过)
51
+ - API 响应日志
52
+ - 数据库状态验证(改完数据真的变了)
53
+
54
+ ## Evidence 级别(承接测试计划)
55
+
56
+ - **E0 不可接受**:无运行时证据(静态分析/AI 摘要/"我觉得对")
57
+ - **E1 最低**:运行时证据(测试输出/响应日志)
58
+ - **E2 推荐**:端到端浏览器验证 + API + DB 状态
59
+
60
+ P0 核心业务流程推荐 E2。
61
+
62
+ ## 禁止假验证
63
+
64
+ - 只跑 happy path(违规,必须覆盖异常/边界)
65
+ - mock 掉被测逻辑(违规,测试自己证明自己)
66
+ - 用"验证计划"冒充"验证结果"(违规)
67
+ - 未执行就说"全部通过"(违规)
68
+ - 失败不修复就说"建议验证"后标记完成(违规)
69
+
70
+ ## 失败处理
71
+
72
+ 验证失败 → 进入 [[反馈修复闭环]]:读 findings → 定位根因 → 修复 → 重验 → 重试 5 次 escalate。
@@ -1,23 +0,0 @@
1
- /**
2
- * Dependency Scanner — 模块模块。
3
- *
4
- * 职责边界:
5
- * - 负责:scanDependencies 等 模块职责
6
- * - 不负责:不属于本模块的职责由对应模块承担
7
- *
8
- * 被谁调用:上层模块按需调用
9
- * 调用谁:index、logger、helpers
10
- *
11
- * 数据流:输入 → scanDependencies 处理 → 输出
12
- * 持久化:无持久化(纯计算/内存态)
13
- */
14
- import type { DependencyScanResult } from "../../types/index.js";
15
- /**
16
- * 扫描依赖文件中的已知漏洞 — 根据文件名自动选择解析器。
17
- * 支持格式: package.json (Node.js)、pom.xml (Java/Maven)、build.gradle (Java/Gradle)。
18
- * @param content - 依赖文件内容
19
- * @param filename - 文件名(用于判断解析器类型)
20
- * @returns 扫描结果,包含漏洞列表、未锁定版本和中文摘要
21
- */
22
- export declare function scanDependencies(content: string, filename: string): DependencyScanResult;
23
- //# sourceMappingURL=dependency_scanner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependency_scanner.d.ts","sourceRoot":"","sources":["../../../src/context/engine/dependency_scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAqB,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAuQpF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CA+FxF"}
@@ -1,309 +0,0 @@
1
- /**
2
- * Dependency Scanner — 模块模块。
3
- *
4
- * 职责边界:
5
- * - 负责:scanDependencies 等 模块职责
6
- * - 不负责:不属于本模块的职责由对应模块承担
7
- *
8
- * 被谁调用:上层模块按需调用
9
- * 调用谁:index、logger、helpers
10
- *
11
- * 数据流:输入 → scanDependencies 处理 → 输出
12
- * 持久化:无持久化(纯计算/内存态)
13
- */
14
- import { debug } from "../../shared/logger.js";
15
- import { safeJsonParse } from "../../shared/helpers.js";
16
- /**
17
- * 依赖漏洞扫描器 — 解析 package.json/pom.xml/build.gradle,基于内置漏洞规则库
18
- * 检测已知漏洞和未锁定版本。纯规则驱动,零 AI 依赖,不调用外部 API。
19
- */
20
- /** 内置漏洞规则库: 各语言生态的已知高风险依赖版本(包名 → 最低安全版本 → 漏洞描述) */
21
- // ── 漏洞数据库(硬编码规则库,零 AI 依赖) ──
22
- const VULN_DB = [
23
- // Java 生态
24
- { package: "log4j-core", minSafe: "2.17.0", severity: "critical", issue: "Log4Shell RCE (CVE-2021-44228)" },
25
- { package: "fastjson", minSafe: "1.2.83", severity: "critical", issue: "反序列化远程代码执行" },
26
- { package: "jackson-databind", minSafe: "2.13.0", severity: "critical", issue: "反序列化漏洞" },
27
- { package: "shiro-core", minSafe: "1.10.0", severity: "high", issue: "认证绕过漏洞" },
28
- // Node.js 生态
29
- { package: "lodash", minSafe: "4.17.21", severity: "high", issue: "原型污染 (CVE-2021-23337)" },
30
- { package: "express", minSafe: "4.18.0", severity: "medium", issue: "开放重定向" },
31
- { package: "axios", minSafe: "0.21.1", severity: "high", issue: "SSRF 漏洞" },
32
- { package: "node-fetch", minSafe: "2.6.7", severity: "medium", issue: "信息泄露" },
33
- { package: "jsonwebtoken", minSafe: "9.0.0", severity: "high", issue: "密钥验证绕过" },
34
- { package: "bcrypt", minSafe: "5.0.0", severity: "medium", issue: "轮次限制不足" },
35
- { package: "multer", minSafe: "1.4.4", severity: "medium", issue: "内存耗尽" },
36
- { package: "dompurify", minSafe: "2.3.3", severity: "high", issue: "XSS 绕过" },
37
- { package: "moment", minSafe: "2.29.4", severity: "low", issue: "ReDoS 拒绝服务" },
38
- { package: "yargs-parser", minSafe: "18.1.2", severity: "high", issue: "原型污染" },
39
- { package: "ua-parser-js", minSafe: "0.7.31", severity: "critical", issue: "供应链攻击" },
40
- { package: "event-source", minSafe: "2.0.1", severity: "high", issue: "CRLF 注入" },
41
- ];
42
- /** 未锁定版本的正则匹配模式 — 匹配 "*"、"x"、"X" 或空字符串等无精确版本号的情况 */
43
- // ── 未锁定版本标识 ──
44
- const UNSCOPED_PATTERN = /^\s*[*xX]?\s*$/;
45
- // ── 版本比较 ──
46
- /**
47
- * 比较两个 semver 风格的版本号,判断 a 是否大于 b。
48
- * - 按点号分隔,逐段数值比较
49
- * - 段数不足时以 0 补齐
50
- * - 预发布后缀(如 -beta.1、-rc.2)在比较前被剥离
51
- * @param a - 版本号 a
52
- * @param b - 版本号 b
53
- * @returns 当 a > b 时返回 true
54
- */
55
- function semverGt(a, b) {
56
- const normalize = (v) => v.replace(/-[\w.]+$/, "").split(".").map((seg) => {
57
- const n = parseInt(seg, 10);
58
- return Number.isNaN(n) ? 0 : n;
59
- });
60
- const segsA = normalize(a);
61
- const segsB = normalize(b);
62
- const maxLen = Math.max(segsA.length, segsB.length);
63
- for (let i = 0; i < maxLen; i++) {
64
- const pa = segsA[i] ?? 0;
65
- const pb = segsB[i] ?? 0;
66
- if (pa > pb)
67
- return true;
68
- if (pa < pb)
69
- return false;
70
- }
71
- return false;
72
- }
73
- /**
74
- * 检查版本字符串是否为未锁定版本(如 "*"、"latest"、"x"、空字符串)。
75
- * @param version - 版本字符串
76
- * @returns 未锁定时返回 true
77
- */
78
- function isUnscoped(version) {
79
- const trimmed = version.trim().toLowerCase();
80
- return trimmed === "" || trimmed === "latest" || UNSCOPED_PATTERN.test(trimmed);
81
- }
82
- // ── 版本提取 ──
83
- /**
84
- * 从常见版本说明符中提取版本号 — 支持 ^/~/>=/<=/ 前缀。
85
- * @param versionSpecifier - 版本说明符字符串
86
- * @returns 提取的纯版本号(如 "1.2.3"),URL/git 引用返回 null,无法解析时返回原始值
87
- */
88
- function extractVersion(versionSpecifier) {
89
- const v = versionSpecifier.trim();
90
- // 跳过 URL 引用和 git 引用 — 这些不参与版本扫描
91
- if (/^(https?:|git[:+]|github:|file:|git@|ssh:|\/)/i.test(v)) {
92
- return null;
93
- }
94
- // 跳过 workspace/file/link 等本地协议依赖 — 这些在本地解析,不可扫描
95
- if (/^(workspace|file|link|portal|npm):/i.test(v)) {
96
- return null;
97
- }
98
- // 提取纯数字版本: 剥离前缀修饰符 ^, ~, >=, <=, >, <, =
99
- const match = v.match(/^[\^~>=<\s]*([\d][\d.]*)/);
100
- return match ? match[1] : v;
101
- }
102
- // ── 漏洞匹配 ──
103
- /**
104
- * 检查指定包名和版本是否存在已知漏洞 — 遍历漏洞规则库进行匹配。
105
- * @param pkgName - 包名(如 "lodash")
106
- * @param version - 已安装版本号
107
- * @returns 存在漏洞时返回漏洞详情,否则返回 undefined
108
- */
109
- function checkVulnerability(pkgName, version) {
110
- for (const entry of VULN_DB) {
111
- if (pkgName === entry.package) {
112
- // 已安装版本低于最低安全版本时判定为漏洞
113
- if (!semverGt(version, entry.minSafe)) {
114
- // 预发布版本检查: 标准化版本等于 minSafe 但原始版本含预发布后缀时,
115
- // 按 semver 规范预发布版本 < 正式版本,因此仍视为漏洞
116
- const normalizedVersion = version.replace(/-[\w.]+$/, "");
117
- if (normalizedVersion === entry.minSafe && /-[\w.]+$/.test(version)) {
118
- return {
119
- package: pkgName,
120
- installed_version: version,
121
- severity: entry.severity,
122
- issue: entry.issue,
123
- fixed_in: entry.minSafe,
124
- };
125
- }
126
- return {
127
- package: pkgName,
128
- installed_version: version,
129
- severity: entry.severity,
130
- issue: entry.issue,
131
- fixed_in: entry.minSafe,
132
- };
133
- }
134
- }
135
- }
136
- return undefined;
137
- }
138
- /** 解析 package.json — 提取 dependencies 和 devDependencies 中的包名和版本 */
139
- function parsePackageJson(content) {
140
- const deps = [];
141
- const pkg = safeJsonParse(content);
142
- if (!pkg)
143
- return deps;
144
- const extract = (obj, isDev) => {
145
- if (!obj)
146
- return;
147
- for (const [name, ver] of Object.entries(obj)) {
148
- deps.push({ name, version: ver, isDev });
149
- }
150
- };
151
- extract(pkg.dependencies, false);
152
- extract(pkg.devDependencies, true);
153
- return deps;
154
- }
155
- /** 解析 pom.xml — 匹配 groupId/artifactId/version 三元组,支持多行格式 */
156
- function parsePomXml(content) {
157
- const deps = [];
158
- // 匹配 <groupId>...<artifactId>...<version> 代码块,支持多行内容中的非贪婪匹配
159
- const depPattern = /<groupId>\s*([\w.-]+)\s*<\/groupId>\s*<artifactId>\s*([\w.-]+)\s*<\/artifactId>\s*<version>\s*([\w.${}-]+)\s*<\/version>/g;
160
- let match;
161
- while ((match = depPattern.exec(content)) !== null) {
162
- deps.push({
163
- groupId: match[1],
164
- artifactId: match[2],
165
- version: match[3],
166
- });
167
- }
168
- return deps;
169
- }
170
- /** 解析 build.gradle — 匹配 group:artifact:version 格式(如 'org.apache:log4j-core:2.14.1') */
171
- function parseBuildGradle(content) {
172
- const deps = [];
173
- // 匹配 group:artifact:version 格式(如 'org.apache.logging.log4j:log4j-core:2.14.1')
174
- const depPattern = /['"]([\w.-]+):([\w.-]+):([\d.]+(?:-[a-zA-Z][\w.-]*)?)['"]/g;
175
- let match;
176
- while ((match = depPattern.exec(content)) !== null) {
177
- deps.push({
178
- group: match[1],
179
- artifact: match[2],
180
- version: match[3],
181
- });
182
- }
183
- return deps;
184
- }
185
- // ── 摘要生成 ──
186
- /**
187
- * 构建扫描结果摘要 — 统计漏洞数量和未锁定版本数量,生成中文摘要文本。
188
- * @param total - 扫描的依赖总数
189
- * @param vulnerabilities - 发现的漏洞列表
190
- * @param unscoped - 未锁定版本列表
191
- * @returns 中文格式的扫描摘要
192
- */
193
- function buildSummary(total, vulnerabilities, unscoped) {
194
- if (total === 0) {
195
- return "未发现可解析的依赖项";
196
- }
197
- const criticalCount = vulnerabilities.filter((v) => v.severity === "critical").length;
198
- const highCount = vulnerabilities.filter((v) => v.severity === "high").length;
199
- const vulnParts = [];
200
- if (vulnerabilities.length > 0) {
201
- vulnParts.push(`发现 ${vulnerabilities.length} 个漏洞`);
202
- const severityParts = [];
203
- if (criticalCount > 0)
204
- severityParts.push(`${criticalCount} critical`);
205
- if (highCount > 0)
206
- severityParts.push(`${highCount} high`);
207
- if (severityParts.length > 0) {
208
- vulnParts.push(`(${severityParts.join(", ")})`);
209
- }
210
- }
211
- const unscopedPart = unscoped.length > 0 ? `,${unscoped.length} 个未锁定版本` : "";
212
- if (vulnParts.length > 0) {
213
- return `扫描了 ${total} 个依赖,${vulnParts.join("")}${unscopedPart}`;
214
- }
215
- return `扫描了 ${total} 个依赖,未发现已知漏洞${unscopedPart}`;
216
- }
217
- // ── 主函数 ──
218
- /**
219
- * 扫描依赖文件中的已知漏洞 — 根据文件名自动选择解析器。
220
- * 支持格式: package.json (Node.js)、pom.xml (Java/Maven)、build.gradle (Java/Gradle)。
221
- * @param content - 依赖文件内容
222
- * @param filename - 文件名(用于判断解析器类型)
223
- * @returns 扫描结果,包含漏洞列表、未锁定版本和中文摘要
224
- */
225
- export function scanDependencies(content, filename) {
226
- debug("依赖扫描", `开始扫描 ${filename}`);
227
- const baseName = filename.split("/").pop()?.toLowerCase() ?? "";
228
- // ── 解析 package.json ──
229
- if (baseName === "package.json") {
230
- debug("依赖扫描", "检测到 package.json,使用 Node.js 解析器");
231
- const parsed = parsePackageJson(content);
232
- const vulnerabilities = [];
233
- const unscoped_versions = [];
234
- let scannedCount = 0;
235
- for (const dep of parsed) {
236
- const extracted = extractVersion(dep.version);
237
- if (extracted === null)
238
- continue; // URL / git 引用,跳过
239
- scannedCount++;
240
- if (isUnscoped(extracted)) {
241
- unscoped_versions.push(`${dep.name}: ${dep.version}`);
242
- continue;
243
- }
244
- const vuln = checkVulnerability(dep.name, extracted);
245
- if (vuln) {
246
- vulnerabilities.push(vuln);
247
- }
248
- }
249
- return {
250
- file: filename,
251
- dependencies_scanned: scannedCount,
252
- vulnerabilities,
253
- unscoped_versions,
254
- summary: buildSummary(scannedCount, vulnerabilities, unscoped_versions),
255
- };
256
- }
257
- // ── 解析 pom.xml ──
258
- if (baseName === "pom.xml") {
259
- debug("依赖扫描", "检测到 pom.xml,使用 Maven 解析器");
260
- const parsed = parsePomXml(content);
261
- const vulnerabilities = [];
262
- let scannedCount = 0;
263
- for (const dep of parsed) {
264
- scannedCount++;
265
- const vuln = checkVulnerability(dep.artifactId, dep.version);
266
- if (vuln) {
267
- vulnerabilities.push(vuln);
268
- }
269
- }
270
- return {
271
- file: filename,
272
- dependencies_scanned: scannedCount,
273
- vulnerabilities,
274
- unscoped_versions: [],
275
- summary: buildSummary(scannedCount, vulnerabilities, []),
276
- };
277
- }
278
- // ── 解析 build.gradle ──
279
- if (baseName === "build.gradle" || baseName === "build.gradle.kts") {
280
- debug("依赖扫描", "检测到 build.gradle,使用 Gradle 解析器");
281
- const parsed = parseBuildGradle(content);
282
- const vulnerabilities = [];
283
- let scannedCount = 0;
284
- for (const dep of parsed) {
285
- scannedCount++;
286
- const vuln = checkVulnerability(dep.artifact, dep.version);
287
- if (vuln) {
288
- vulnerabilities.push(vuln);
289
- }
290
- }
291
- return {
292
- file: filename,
293
- dependencies_scanned: scannedCount,
294
- vulnerabilities,
295
- unscoped_versions: [],
296
- summary: buildSummary(scannedCount, vulnerabilities, []),
297
- };
298
- }
299
- // ── 不支持的文件格式,返回空结果 ──
300
- debug("依赖扫描", `不支持的文件格式 ${filename}`);
301
- return {
302
- file: filename,
303
- dependencies_scanned: 0,
304
- vulnerabilities: [],
305
- unscoped_versions: [],
306
- summary: "不支持的依赖文件格式",
307
- };
308
- }
309
- //# sourceMappingURL=dependency_scanner.js.map