@winspan/claude-forge 4.1.0 → 6.1.0

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 (1273) hide show
  1. package/README.md +116 -718
  2. package/dist/claudemd/claudemd-generator.d.ts +28 -0
  3. package/dist/claudemd/claudemd-generator.d.ts.map +1 -0
  4. package/dist/claudemd/claudemd-generator.js +97 -0
  5. package/dist/claudemd/claudemd-generator.js.map +1 -0
  6. package/dist/claudemd/index.d.ts +25 -42
  7. package/dist/claudemd/index.d.ts.map +1 -1
  8. package/dist/claudemd/index.js +26 -270
  9. package/dist/claudemd/index.js.map +1 -1
  10. package/dist/claudemd/persona-manager.d.ts +19 -0
  11. package/dist/claudemd/persona-manager.d.ts.map +1 -0
  12. package/dist/claudemd/persona-manager.js +88 -0
  13. package/dist/claudemd/persona-manager.js.map +1 -0
  14. package/dist/claudemd/resume-manager.d.ts +29 -0
  15. package/dist/claudemd/resume-manager.d.ts.map +1 -0
  16. package/dist/claudemd/resume-manager.js +155 -0
  17. package/dist/claudemd/resume-manager.js.map +1 -0
  18. package/dist/claudemd/tech-detector.d.ts +20 -0
  19. package/dist/claudemd/tech-detector.d.ts.map +1 -0
  20. package/dist/claudemd/tech-detector.js +142 -0
  21. package/dist/claudemd/tech-detector.js.map +1 -0
  22. package/dist/cli/commands/claudemd.d.ts +2 -2
  23. package/dist/cli/commands/claudemd.d.ts.map +1 -1
  24. package/dist/cli/commands/claudemd.js +62 -304
  25. package/dist/cli/commands/claudemd.js.map +1 -1
  26. package/dist/cli/commands/config.d.ts +1 -1
  27. package/dist/cli/commands/config.d.ts.map +1 -1
  28. package/dist/cli/commands/config.js +32 -168
  29. package/dist/cli/commands/config.js.map +1 -1
  30. package/dist/cli/commands/daemon.d.ts +2 -2
  31. package/dist/cli/commands/daemon.d.ts.map +1 -1
  32. package/dist/cli/commands/daemon.js +34 -300
  33. package/dist/cli/commands/daemon.js.map +1 -1
  34. package/dist/cli/commands/init.d.ts +3 -0
  35. package/dist/cli/commands/init.d.ts.map +1 -0
  36. package/dist/cli/commands/init.js +53 -0
  37. package/dist/cli/commands/init.js.map +1 -0
  38. package/dist/cli/commands/logs.d.ts +1 -1
  39. package/dist/cli/commands/logs.d.ts.map +1 -1
  40. package/dist/cli/commands/logs.js +76 -500
  41. package/dist/cli/commands/logs.js.map +1 -1
  42. package/dist/cli/commands/skills.d.ts +3 -0
  43. package/dist/cli/commands/skills.d.ts.map +1 -0
  44. package/dist/cli/commands/skills.js +83 -0
  45. package/dist/cli/commands/skills.js.map +1 -0
  46. package/dist/cli/commands/status.d.ts +1 -1
  47. package/dist/cli/commands/status.d.ts.map +1 -1
  48. package/dist/cli/commands/status.js +45 -52
  49. package/dist/cli/commands/status.js.map +1 -1
  50. package/dist/cli/index.js +17 -48
  51. package/dist/cli/index.js.map +1 -1
  52. package/dist/cli/init/hook-manager.d.ts +19 -0
  53. package/dist/cli/init/hook-manager.d.ts.map +1 -0
  54. package/dist/cli/init/hook-manager.js +99 -0
  55. package/dist/cli/init/hook-manager.js.map +1 -0
  56. package/dist/core/ai/provider.d.ts +25 -0
  57. package/dist/core/ai/provider.d.ts.map +1 -0
  58. package/dist/core/ai/provider.js +68 -0
  59. package/dist/core/ai/provider.js.map +1 -0
  60. package/dist/core/ai/types.d.ts +12 -0
  61. package/dist/core/ai/types.d.ts.map +1 -0
  62. package/dist/core/ai/types.js +5 -0
  63. package/dist/core/ai/types.js.map +1 -0
  64. package/dist/core/config.d.ts +18 -0
  65. package/dist/core/config.d.ts.map +1 -0
  66. package/dist/core/config.js +72 -0
  67. package/dist/core/config.js.map +1 -0
  68. package/dist/core/constants.d.ts +39 -0
  69. package/dist/core/constants.d.ts.map +1 -0
  70. package/dist/core/constants.js +41 -0
  71. package/dist/core/constants.js.map +1 -0
  72. package/dist/core/storage/schema.sql +109 -0
  73. package/dist/core/storage/sqlite.d.ts +33 -0
  74. package/dist/core/storage/sqlite.d.ts.map +1 -0
  75. package/dist/core/storage/sqlite.js +166 -0
  76. package/dist/core/storage/sqlite.js.map +1 -0
  77. package/dist/core/types.d.ts +45 -0
  78. package/dist/core/types.d.ts.map +1 -0
  79. package/dist/core/types.js +2 -0
  80. package/dist/core/types.js.map +1 -0
  81. package/dist/core/utils/forge-resume-block.d.ts.map +1 -0
  82. package/dist/core/utils/forge-resume-block.js.map +1 -0
  83. package/dist/core/utils/logger.d.ts +17 -0
  84. package/dist/core/utils/logger.d.ts.map +1 -0
  85. package/dist/core/utils/logger.js +40 -0
  86. package/dist/core/utils/logger.js.map +1 -0
  87. package/dist/core/utils/lru-cache.d.ts +14 -0
  88. package/dist/core/utils/lru-cache.d.ts.map +1 -0
  89. package/dist/core/utils/lru-cache.js +42 -0
  90. package/dist/core/utils/lru-cache.js.map +1 -0
  91. package/dist/core/utils/path.d.ts +9 -0
  92. package/dist/core/utils/path.d.ts.map +1 -0
  93. package/dist/core/utils/path.js +18 -0
  94. package/dist/core/utils/path.js.map +1 -0
  95. package/dist/daemon/event-parser.d.ts +1 -1
  96. package/dist/daemon/event-parser.d.ts.map +1 -1
  97. package/dist/daemon/event-parser.js +5 -3
  98. package/dist/daemon/event-parser.js.map +1 -1
  99. package/dist/daemon/handlers/history-exporter.d.ts +15 -0
  100. package/dist/daemon/handlers/history-exporter.d.ts.map +1 -0
  101. package/dist/daemon/handlers/history-exporter.js +94 -0
  102. package/dist/daemon/handlers/history-exporter.js.map +1 -0
  103. package/dist/daemon/handlers/post-tool-use.d.ts +19 -0
  104. package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -0
  105. package/dist/daemon/handlers/post-tool-use.js +76 -0
  106. package/dist/daemon/handlers/post-tool-use.js.map +1 -0
  107. package/dist/daemon/handlers/pre-tool-use.d.ts +19 -0
  108. package/dist/daemon/handlers/pre-tool-use.d.ts.map +1 -0
  109. package/dist/daemon/handlers/pre-tool-use.js +50 -0
  110. package/dist/daemon/handlers/pre-tool-use.js.map +1 -0
  111. package/dist/daemon/handlers/stop.d.ts +19 -0
  112. package/dist/daemon/handlers/stop.d.ts.map +1 -0
  113. package/dist/daemon/handlers/stop.js +42 -0
  114. package/dist/daemon/handlers/stop.js.map +1 -0
  115. package/dist/daemon/handlers/user-prompt.d.ts +24 -0
  116. package/dist/daemon/handlers/user-prompt.d.ts.map +1 -0
  117. package/dist/daemon/handlers/user-prompt.js +81 -0
  118. package/dist/daemon/handlers/user-prompt.js.map +1 -0
  119. package/dist/daemon/index.d.ts +10 -0
  120. package/dist/daemon/index.d.ts.map +1 -1
  121. package/dist/daemon/index.js +83 -535
  122. package/dist/daemon/index.js.map +1 -1
  123. package/dist/daemon/lifecycle.d.ts +0 -9
  124. package/dist/daemon/lifecycle.d.ts.map +1 -1
  125. package/dist/daemon/lifecycle.js +1 -23
  126. package/dist/daemon/lifecycle.js.map +1 -1
  127. package/dist/daemon/router.d.ts +13 -0
  128. package/dist/daemon/router.d.ts.map +1 -0
  129. package/dist/daemon/router.js +7 -0
  130. package/dist/daemon/router.js.map +1 -0
  131. package/dist/daemon/server.d.ts +2 -6
  132. package/dist/daemon/server.d.ts.map +1 -1
  133. package/dist/daemon/server.js +2 -21
  134. package/dist/daemon/server.js.map +1 -1
  135. package/dist/engine/context-builder.d.ts +23 -0
  136. package/dist/engine/context-builder.d.ts.map +1 -0
  137. package/dist/engine/context-builder.js +63 -0
  138. package/dist/engine/context-builder.js.map +1 -0
  139. package/dist/engine/conventions/basic-security.yaml +100 -0
  140. package/dist/engine/conventions/code-quality.yaml +123 -0
  141. package/dist/engine/conventions/dependency-safety.yaml +131 -0
  142. package/dist/engine/conventions/git-safety.yaml +105 -0
  143. package/dist/engine/conventions/strict-security.yaml +30 -0
  144. package/dist/engine/conventions/ts-quality.yaml +49 -0
  145. package/dist/engine/dsl/compiler.d.ts +34 -0
  146. package/dist/engine/dsl/compiler.d.ts.map +1 -0
  147. package/dist/engine/dsl/compiler.js +620 -0
  148. package/dist/engine/dsl/compiler.js.map +1 -0
  149. package/dist/engine/dsl/parser.d.ts +19 -0
  150. package/dist/engine/dsl/parser.d.ts.map +1 -0
  151. package/dist/engine/dsl/parser.js +174 -0
  152. package/dist/engine/dsl/parser.js.map +1 -0
  153. package/dist/engine/dsl/runtime.d.ts +46 -0
  154. package/dist/engine/dsl/runtime.d.ts.map +1 -0
  155. package/dist/engine/dsl/runtime.js +173 -0
  156. package/dist/engine/dsl/runtime.js.map +1 -0
  157. package/dist/engine/dsl/types.d.ts +113 -0
  158. package/dist/engine/dsl/types.d.ts.map +1 -0
  159. package/dist/engine/dsl/types.js +11 -0
  160. package/dist/engine/dsl/types.js.map +1 -0
  161. package/dist/engine/evidence-store.d.ts +44 -0
  162. package/dist/engine/evidence-store.d.ts.map +1 -0
  163. package/dist/engine/evidence-store.js +106 -0
  164. package/dist/engine/evidence-store.js.map +1 -0
  165. package/dist/engine/rule-engine.d.ts +28 -0
  166. package/dist/engine/rule-engine.d.ts.map +1 -0
  167. package/dist/engine/rule-engine.js +196 -0
  168. package/dist/engine/rule-engine.js.map +1 -0
  169. package/dist/intelligence/classifier.d.ts +27 -0
  170. package/dist/intelligence/classifier.d.ts.map +1 -0
  171. package/dist/intelligence/classifier.js +142 -0
  172. package/dist/intelligence/classifier.js.map +1 -0
  173. package/dist/intelligence/distiller.d.ts +22 -0
  174. package/dist/intelligence/distiller.d.ts.map +1 -0
  175. package/dist/intelligence/distiller.js +108 -0
  176. package/dist/intelligence/distiller.js.map +1 -0
  177. package/dist/intelligence/history-context-builder.d.ts +19 -0
  178. package/dist/intelligence/history-context-builder.d.ts.map +1 -0
  179. package/dist/intelligence/history-context-builder.js +104 -0
  180. package/dist/intelligence/history-context-builder.js.map +1 -0
  181. package/dist/intelligence/quality-gate.d.ts +45 -0
  182. package/dist/intelligence/quality-gate.d.ts.map +1 -0
  183. package/dist/intelligence/quality-gate.js +179 -0
  184. package/dist/intelligence/quality-gate.js.map +1 -0
  185. package/dist/skills/index.d.ts +3 -0
  186. package/dist/skills/index.d.ts.map +1 -0
  187. package/dist/skills/index.js +3 -0
  188. package/dist/skills/index.js.map +1 -0
  189. package/dist/skills/matcher.d.ts +10 -0
  190. package/dist/skills/matcher.d.ts.map +1 -0
  191. package/dist/skills/matcher.js +14 -0
  192. package/dist/skills/matcher.js.map +1 -0
  193. package/dist/skills/official-skills.d.ts +22 -0
  194. package/dist/skills/official-skills.d.ts.map +1 -0
  195. package/dist/skills/official-skills.js +531 -0
  196. package/dist/skills/official-skills.js.map +1 -0
  197. package/dist/skills/registry.d.ts +31 -0
  198. package/dist/skills/registry.d.ts.map +1 -0
  199. package/dist/skills/registry.js +100 -0
  200. package/dist/skills/registry.js.map +1 -0
  201. package/dist/web/server.d.ts +9 -8
  202. package/dist/web/server.d.ts.map +1 -1
  203. package/dist/web/server.js +74 -229
  204. package/dist/web/server.js.map +1 -1
  205. package/dist/web/static/index.html +189 -0
  206. package/package.json +3 -26
  207. package/dist/ai/base-provider.d.ts +0 -48
  208. package/dist/ai/base-provider.d.ts.map +0 -1
  209. package/dist/ai/base-provider.js +0 -173
  210. package/dist/ai/base-provider.js.map +0 -1
  211. package/dist/ai/factory.d.ts +0 -16
  212. package/dist/ai/factory.d.ts.map +0 -1
  213. package/dist/ai/factory.js +0 -22
  214. package/dist/ai/factory.js.map +0 -1
  215. package/dist/ai/index.d.ts +0 -40
  216. package/dist/ai/index.d.ts.map +0 -1
  217. package/dist/ai/index.js +0 -153
  218. package/dist/ai/index.js.map +0 -1
  219. package/dist/ai/model-selector.d.ts +0 -24
  220. package/dist/ai/model-selector.d.ts.map +0 -1
  221. package/dist/ai/model-selector.js +0 -91
  222. package/dist/ai/model-selector.js.map +0 -1
  223. package/dist/ai/ollama-provider.d.ts +0 -20
  224. package/dist/ai/ollama-provider.d.ts.map +0 -1
  225. package/dist/ai/ollama-provider.js +0 -47
  226. package/dist/ai/ollama-provider.js.map +0 -1
  227. package/dist/ai/openai-provider.d.ts +0 -21
  228. package/dist/ai/openai-provider.d.ts.map +0 -1
  229. package/dist/ai/openai-provider.js +0 -53
  230. package/dist/ai/openai-provider.js.map +0 -1
  231. package/dist/ai/rate-limiter.d.ts +0 -33
  232. package/dist/ai/rate-limiter.d.ts.map +0 -1
  233. package/dist/ai/rate-limiter.js +0 -83
  234. package/dist/ai/rate-limiter.js.map +0 -1
  235. package/dist/ai/response-cache.d.ts +0 -24
  236. package/dist/ai/response-cache.d.ts.map +0 -1
  237. package/dist/ai/response-cache.js +0 -86
  238. package/dist/ai/response-cache.js.map +0 -1
  239. package/dist/ai/token-budget.d.ts +0 -83
  240. package/dist/ai/token-budget.d.ts.map +0 -1
  241. package/dist/ai/token-budget.js +0 -171
  242. package/dist/ai/token-budget.js.map +0 -1
  243. package/dist/ai/types.d.ts +0 -58
  244. package/dist/ai/types.d.ts.map +0 -1
  245. package/dist/ai/types.js +0 -23
  246. package/dist/ai/types.js.map +0 -1
  247. package/dist/autopilot/ground-truth-rules.d.ts +0 -64
  248. package/dist/autopilot/ground-truth-rules.d.ts.map +0 -1
  249. package/dist/autopilot/ground-truth-rules.js +0 -129
  250. package/dist/autopilot/ground-truth-rules.js.map +0 -1
  251. package/dist/autopilot/index.d.ts +0 -2
  252. package/dist/autopilot/index.d.ts.map +0 -1
  253. package/dist/autopilot/index.js +0 -2
  254. package/dist/autopilot/index.js.map +0 -1
  255. package/dist/autopilot/issue-tracker.d.ts +0 -52
  256. package/dist/autopilot/issue-tracker.d.ts.map +0 -1
  257. package/dist/autopilot/issue-tracker.js +0 -138
  258. package/dist/autopilot/issue-tracker.js.map +0 -1
  259. package/dist/autopilot/phase-gap-detector.d.ts +0 -26
  260. package/dist/autopilot/phase-gap-detector.d.ts.map +0 -1
  261. package/dist/autopilot/phase-gap-detector.js +0 -80
  262. package/dist/autopilot/phase-gap-detector.js.map +0 -1
  263. package/dist/autopilot/quality-gate-utils.d.ts +0 -6
  264. package/dist/autopilot/quality-gate-utils.d.ts.map +0 -1
  265. package/dist/autopilot/quality-gate-utils.js +0 -48
  266. package/dist/autopilot/quality-gate-utils.js.map +0 -1
  267. package/dist/autopilot/quality-gate.d.ts +0 -187
  268. package/dist/autopilot/quality-gate.d.ts.map +0 -1
  269. package/dist/autopilot/quality-gate.js +0 -815
  270. package/dist/autopilot/quality-gate.js.map +0 -1
  271. package/dist/autopilot/rule-distiller.d.ts +0 -44
  272. package/dist/autopilot/rule-distiller.d.ts.map +0 -1
  273. package/dist/autopilot/rule-distiller.js +0 -176
  274. package/dist/autopilot/rule-distiller.js.map +0 -1
  275. package/dist/autopilot/task-completion-detector.d.ts +0 -32
  276. package/dist/autopilot/task-completion-detector.d.ts.map +0 -1
  277. package/dist/autopilot/task-completion-detector.js +0 -116
  278. package/dist/autopilot/task-completion-detector.js.map +0 -1
  279. package/dist/backup/index.d.ts +0 -16
  280. package/dist/backup/index.d.ts.map +0 -1
  281. package/dist/backup/index.js +0 -170
  282. package/dist/backup/index.js.map +0 -1
  283. package/dist/claudemd/detector.d.ts +0 -55
  284. package/dist/claudemd/detector.d.ts.map +0 -1
  285. package/dist/claudemd/detector.js +0 -588
  286. package/dist/claudemd/detector.js.map +0 -1
  287. package/dist/claudemd/modules-config.d.ts +0 -37
  288. package/dist/claudemd/modules-config.d.ts.map +0 -1
  289. package/dist/claudemd/modules-config.js +0 -80
  290. package/dist/claudemd/modules-config.js.map +0 -1
  291. package/dist/claudemd/prompt-injector.d.ts +0 -29
  292. package/dist/claudemd/prompt-injector.d.ts.map +0 -1
  293. package/dist/claudemd/prompt-injector.js +0 -143
  294. package/dist/claudemd/prompt-injector.js.map +0 -1
  295. package/dist/claudemd/prompts.d.ts +0 -19
  296. package/dist/claudemd/prompts.d.ts.map +0 -1
  297. package/dist/claudemd/prompts.js +0 -476
  298. package/dist/claudemd/prompts.js.map +0 -1
  299. package/dist/claudemd/writer.d.ts +0 -48
  300. package/dist/claudemd/writer.d.ts.map +0 -1
  301. package/dist/claudemd/writer.js +0 -205
  302. package/dist/claudemd/writer.js.map +0 -1
  303. package/dist/cli/commands/backup.d.ts +0 -3
  304. package/dist/cli/commands/backup.d.ts.map +0 -1
  305. package/dist/cli/commands/backup.js +0 -102
  306. package/dist/cli/commands/backup.js.map +0 -1
  307. package/dist/cli/commands/convention.d.ts +0 -3
  308. package/dist/cli/commands/convention.d.ts.map +0 -1
  309. package/dist/cli/commands/convention.js +0 -169
  310. package/dist/cli/commands/convention.js.map +0 -1
  311. package/dist/cli/commands/distill.d.ts +0 -3
  312. package/dist/cli/commands/distill.d.ts.map +0 -1
  313. package/dist/cli/commands/distill.js +0 -57
  314. package/dist/cli/commands/distill.js.map +0 -1
  315. package/dist/cli/commands/init/doctor.d.ts +0 -23
  316. package/dist/cli/commands/init/doctor.d.ts.map +0 -1
  317. package/dist/cli/commands/init/doctor.js +0 -217
  318. package/dist/cli/commands/init/doctor.js.map +0 -1
  319. package/dist/cli/commands/init/hook-manager.d.ts +0 -30
  320. package/dist/cli/commands/init/hook-manager.d.ts.map +0 -1
  321. package/dist/cli/commands/init/hook-manager.js +0 -189
  322. package/dist/cli/commands/init/hook-manager.js.map +0 -1
  323. package/dist/cli/commands/init/index.d.ts +0 -5
  324. package/dist/cli/commands/init/index.d.ts.map +0 -1
  325. package/dist/cli/commands/init/index.js +0 -147
  326. package/dist/cli/commands/init/index.js.map +0 -1
  327. package/dist/cli/commands/init/project-doctor.d.ts +0 -15
  328. package/dist/cli/commands/init/project-doctor.d.ts.map +0 -1
  329. package/dist/cli/commands/init/project-doctor.js +0 -375
  330. package/dist/cli/commands/init/project-doctor.js.map +0 -1
  331. package/dist/cli/commands/pattern.d.ts +0 -3
  332. package/dist/cli/commands/pattern.d.ts.map +0 -1
  333. package/dist/cli/commands/pattern.js +0 -129
  334. package/dist/cli/commands/pattern.js.map +0 -1
  335. package/dist/cli/commands/pipeline.d.ts +0 -3
  336. package/dist/cli/commands/pipeline.d.ts.map +0 -1
  337. package/dist/cli/commands/pipeline.js +0 -123
  338. package/dist/cli/commands/pipeline.js.map +0 -1
  339. package/dist/cli/commands/project.d.ts +0 -3
  340. package/dist/cli/commands/project.d.ts.map +0 -1
  341. package/dist/cli/commands/project.js +0 -72
  342. package/dist/cli/commands/project.js.map +0 -1
  343. package/dist/cli/commands/query.d.ts +0 -3
  344. package/dist/cli/commands/query.d.ts.map +0 -1
  345. package/dist/cli/commands/query.js +0 -231
  346. package/dist/cli/commands/query.js.map +0 -1
  347. package/dist/cli/commands/skill.d.ts +0 -3
  348. package/dist/cli/commands/skill.d.ts.map +0 -1
  349. package/dist/cli/commands/skill.js +0 -531
  350. package/dist/cli/commands/skill.js.map +0 -1
  351. package/dist/cli/commands/web.d.ts +0 -3
  352. package/dist/cli/commands/web.d.ts.map +0 -1
  353. package/dist/cli/commands/web.js +0 -37
  354. package/dist/cli/commands/web.js.map +0 -1
  355. package/dist/cli/tui.d.ts +0 -2
  356. package/dist/cli/tui.d.ts.map +0 -1
  357. package/dist/cli/tui.js +0 -333
  358. package/dist/cli/tui.js.map +0 -1
  359. package/dist/cli/utils/errors.d.ts +0 -17
  360. package/dist/cli/utils/errors.d.ts.map +0 -1
  361. package/dist/cli/utils/errors.js +0 -42
  362. package/dist/cli/utils/errors.js.map +0 -1
  363. package/dist/cli/utils/output.d.ts +0 -23
  364. package/dist/cli/utils/output.d.ts.map +0 -1
  365. package/dist/cli/utils/output.js +0 -98
  366. package/dist/cli/utils/output.js.map +0 -1
  367. package/dist/config/defaults.d.ts +0 -3
  368. package/dist/config/defaults.d.ts.map +0 -1
  369. package/dist/config/defaults.js +0 -72
  370. package/dist/config/defaults.js.map +0 -1
  371. package/dist/config/index.d.ts +0 -25
  372. package/dist/config/index.d.ts.map +0 -1
  373. package/dist/config/index.js +0 -161
  374. package/dist/config/index.js.map +0 -1
  375. package/dist/config/schema.d.ts +0 -87
  376. package/dist/config/schema.d.ts.map +0 -1
  377. package/dist/config/schema.js +0 -129
  378. package/dist/config/schema.js.map +0 -1
  379. package/dist/constants.d.ts +0 -406
  380. package/dist/constants.d.ts.map +0 -1
  381. package/dist/constants.js +0 -448
  382. package/dist/constants.js.map +0 -1
  383. package/dist/convention/convention-evolver.d.ts +0 -31
  384. package/dist/convention/convention-evolver.d.ts.map +0 -1
  385. package/dist/convention/convention-evolver.js +0 -175
  386. package/dist/convention/convention-evolver.js.map +0 -1
  387. package/dist/convention/convention-loader.d.ts +0 -22
  388. package/dist/convention/convention-loader.d.ts.map +0 -1
  389. package/dist/convention/convention-loader.js +0 -184
  390. package/dist/convention/convention-loader.js.map +0 -1
  391. package/dist/convention/convention-manager.d.ts +0 -84
  392. package/dist/convention/convention-manager.d.ts.map +0 -1
  393. package/dist/convention/convention-manager.js +0 -305
  394. package/dist/convention/convention-manager.js.map +0 -1
  395. package/dist/convention/index.d.ts +0 -5
  396. package/dist/convention/index.d.ts.map +0 -1
  397. package/dist/convention/index.js +0 -4
  398. package/dist/convention/index.js.map +0 -1
  399. package/dist/convention/types.d.ts +0 -226
  400. package/dist/convention/types.d.ts.map +0 -1
  401. package/dist/convention/types.js +0 -13
  402. package/dist/convention/types.js.map +0 -1
  403. package/dist/daemon/context-injector.d.ts +0 -41
  404. package/dist/daemon/context-injector.d.ts.map +0 -1
  405. package/dist/daemon/context-injector.js +0 -100
  406. package/dist/daemon/context-injector.js.map +0 -1
  407. package/dist/daemon/engine-registry/init-autopilot.d.ts +0 -11
  408. package/dist/daemon/engine-registry/init-autopilot.d.ts.map +0 -1
  409. package/dist/daemon/engine-registry/init-autopilot.js +0 -17
  410. package/dist/daemon/engine-registry/init-autopilot.js.map +0 -1
  411. package/dist/daemon/engine-registry/init-distill.d.ts +0 -6
  412. package/dist/daemon/engine-registry/init-distill.d.ts.map +0 -1
  413. package/dist/daemon/engine-registry/init-distill.js +0 -34
  414. package/dist/daemon/engine-registry/init-distill.js.map +0 -1
  415. package/dist/daemon/engine-registry/init-governance.d.ts +0 -10
  416. package/dist/daemon/engine-registry/init-governance.d.ts.map +0 -1
  417. package/dist/daemon/engine-registry/init-governance.js +0 -22
  418. package/dist/daemon/engine-registry/init-governance.js.map +0 -1
  419. package/dist/daemon/engine-registry/init-orchestration.d.ts +0 -5
  420. package/dist/daemon/engine-registry/init-orchestration.d.ts.map +0 -1
  421. package/dist/daemon/engine-registry/init-orchestration.js +0 -13
  422. package/dist/daemon/engine-registry/init-orchestration.js.map +0 -1
  423. package/dist/daemon/engine-registry/init-pipeline.d.ts +0 -7
  424. package/dist/daemon/engine-registry/init-pipeline.d.ts.map +0 -1
  425. package/dist/daemon/engine-registry/init-pipeline.js +0 -16
  426. package/dist/daemon/engine-registry/init-pipeline.js.map +0 -1
  427. package/dist/daemon/engine-registry/init-resume.d.ts +0 -6
  428. package/dist/daemon/engine-registry/init-resume.d.ts.map +0 -1
  429. package/dist/daemon/engine-registry/init-resume.js +0 -20
  430. package/dist/daemon/engine-registry/init-resume.js.map +0 -1
  431. package/dist/daemon/engine-registry/init-skill-registry.d.ts +0 -10
  432. package/dist/daemon/engine-registry/init-skill-registry.d.ts.map +0 -1
  433. package/dist/daemon/engine-registry/init-skill-registry.js +0 -47
  434. package/dist/daemon/engine-registry/init-skill-registry.js.map +0 -1
  435. package/dist/daemon/engine-registry.d.ts +0 -13
  436. package/dist/daemon/engine-registry.d.ts.map +0 -1
  437. package/dist/daemon/engine-registry.js +0 -105
  438. package/dist/daemon/engine-registry.js.map +0 -1
  439. package/dist/daemon/handler-context.d.ts +0 -59
  440. package/dist/daemon/handler-context.d.ts.map +0 -1
  441. package/dist/daemon/handler-context.js +0 -2
  442. package/dist/daemon/handler-context.js.map +0 -1
  443. package/dist/daemon/handlers/base-handler.d.ts +0 -14
  444. package/dist/daemon/handlers/base-handler.d.ts.map +0 -1
  445. package/dist/daemon/handlers/base-handler.js +0 -18
  446. package/dist/daemon/handlers/base-handler.js.map +0 -1
  447. package/dist/daemon/handlers/context-builder.d.ts +0 -45
  448. package/dist/daemon/handlers/context-builder.d.ts.map +0 -1
  449. package/dist/daemon/handlers/context-builder.js +0 -363
  450. package/dist/daemon/handlers/context-builder.js.map +0 -1
  451. package/dist/daemon/handlers/conversational-config-handler.d.ts +0 -24
  452. package/dist/daemon/handlers/conversational-config-handler.d.ts.map +0 -1
  453. package/dist/daemon/handlers/conversational-config-handler.js +0 -177
  454. package/dist/daemon/handlers/conversational-config-handler.js.map +0 -1
  455. package/dist/daemon/handlers/orchestration-context.d.ts +0 -39
  456. package/dist/daemon/handlers/orchestration-context.d.ts.map +0 -1
  457. package/dist/daemon/handlers/orchestration-context.js +0 -2
  458. package/dist/daemon/handlers/orchestration-context.js.map +0 -1
  459. package/dist/daemon/handlers/post-tool-use-handler.d.ts +0 -11
  460. package/dist/daemon/handlers/post-tool-use-handler.d.ts.map +0 -1
  461. package/dist/daemon/handlers/post-tool-use-handler.js +0 -308
  462. package/dist/daemon/handlers/post-tool-use-handler.js.map +0 -1
  463. package/dist/daemon/handlers/pre-tool-use-handler.d.ts +0 -11
  464. package/dist/daemon/handlers/pre-tool-use-handler.d.ts.map +0 -1
  465. package/dist/daemon/handlers/pre-tool-use-handler.js +0 -175
  466. package/dist/daemon/handlers/pre-tool-use-handler.js.map +0 -1
  467. package/dist/daemon/handlers/safe-handler.d.ts +0 -15
  468. package/dist/daemon/handlers/safe-handler.d.ts.map +0 -1
  469. package/dist/daemon/handlers/safe-handler.js +0 -24
  470. package/dist/daemon/handlers/safe-handler.js.map +0 -1
  471. package/dist/daemon/handlers/session-cleanup.d.ts +0 -41
  472. package/dist/daemon/handlers/session-cleanup.d.ts.map +0 -1
  473. package/dist/daemon/handlers/session-cleanup.js +0 -392
  474. package/dist/daemon/handlers/session-cleanup.js.map +0 -1
  475. package/dist/daemon/handlers/stages/01-failure-signal.d.ts +0 -9
  476. package/dist/daemon/handlers/stages/01-failure-signal.d.ts.map +0 -1
  477. package/dist/daemon/handlers/stages/01-failure-signal.js +0 -40
  478. package/dist/daemon/handlers/stages/01-failure-signal.js.map +0 -1
  479. package/dist/daemon/handlers/stages/02-active-intervention.d.ts +0 -9
  480. package/dist/daemon/handlers/stages/02-active-intervention.d.ts.map +0 -1
  481. package/dist/daemon/handlers/stages/02-active-intervention.js +0 -28
  482. package/dist/daemon/handlers/stages/02-active-intervention.js.map +0 -1
  483. package/dist/daemon/handlers/stages/03-init-prompt.d.ts +0 -9
  484. package/dist/daemon/handlers/stages/03-init-prompt.d.ts.map +0 -1
  485. package/dist/daemon/handlers/stages/03-init-prompt.js +0 -24
  486. package/dist/daemon/handlers/stages/03-init-prompt.js.map +0 -1
  487. package/dist/daemon/handlers/stages/04-skill-suggestions.d.ts +0 -9
  488. package/dist/daemon/handlers/stages/04-skill-suggestions.d.ts.map +0 -1
  489. package/dist/daemon/handlers/stages/04-skill-suggestions.js +0 -24
  490. package/dist/daemon/handlers/stages/04-skill-suggestions.js.map +0 -1
  491. package/dist/daemon/handlers/stages/05-conv-config.d.ts +0 -11
  492. package/dist/daemon/handlers/stages/05-conv-config.d.ts.map +0 -1
  493. package/dist/daemon/handlers/stages/05-conv-config.js +0 -24
  494. package/dist/daemon/handlers/stages/05-conv-config.js.map +0 -1
  495. package/dist/daemon/handlers/stages/06-engine-check.d.ts +0 -9
  496. package/dist/daemon/handlers/stages/06-engine-check.d.ts.map +0 -1
  497. package/dist/daemon/handlers/stages/06-engine-check.js +0 -14
  498. package/dist/daemon/handlers/stages/06-engine-check.js.map +0 -1
  499. package/dist/daemon/handlers/stages/07-pipeline-reply.d.ts +0 -10
  500. package/dist/daemon/handlers/stages/07-pipeline-reply.d.ts.map +0 -1
  501. package/dist/daemon/handlers/stages/07-pipeline-reply.js +0 -60
  502. package/dist/daemon/handlers/stages/07-pipeline-reply.js.map +0 -1
  503. package/dist/daemon/handlers/stages/08-esc-interrupt.d.ts +0 -9
  504. package/dist/daemon/handlers/stages/08-esc-interrupt.d.ts.map +0 -1
  505. package/dist/daemon/handlers/stages/08-esc-interrupt.js +0 -29
  506. package/dist/daemon/handlers/stages/08-esc-interrupt.js.map +0 -1
  507. package/dist/daemon/handlers/stages/09-pipeline-active.d.ts +0 -11
  508. package/dist/daemon/handlers/stages/09-pipeline-active.d.ts.map +0 -1
  509. package/dist/daemon/handlers/stages/09-pipeline-active.js +0 -75
  510. package/dist/daemon/handlers/stages/09-pipeline-active.js.map +0 -1
  511. package/dist/daemon/handlers/stages/10-cooldown.d.ts +0 -9
  512. package/dist/daemon/handlers/stages/10-cooldown.d.ts.map +0 -1
  513. package/dist/daemon/handlers/stages/10-cooldown.js +0 -27
  514. package/dist/daemon/handlers/stages/10-cooldown.js.map +0 -1
  515. package/dist/daemon/handlers/stages/11-intent-analysis.d.ts +0 -12
  516. package/dist/daemon/handlers/stages/11-intent-analysis.d.ts.map +0 -1
  517. package/dist/daemon/handlers/stages/11-intent-analysis.js +0 -88
  518. package/dist/daemon/handlers/stages/11-intent-analysis.js.map +0 -1
  519. package/dist/daemon/handlers/stages/12-strategy-advice.d.ts +0 -9
  520. package/dist/daemon/handlers/stages/12-strategy-advice.d.ts.map +0 -1
  521. package/dist/daemon/handlers/stages/12-strategy-advice.js +0 -23
  522. package/dist/daemon/handlers/stages/12-strategy-advice.js.map +0 -1
  523. package/dist/daemon/handlers/stages/13-template-route.d.ts +0 -9
  524. package/dist/daemon/handlers/stages/13-template-route.d.ts.map +0 -1
  525. package/dist/daemon/handlers/stages/13-template-route.js +0 -49
  526. package/dist/daemon/handlers/stages/13-template-route.js.map +0 -1
  527. package/dist/daemon/handlers/stages/14-plan-resume.d.ts +0 -9
  528. package/dist/daemon/handlers/stages/14-plan-resume.d.ts.map +0 -1
  529. package/dist/daemon/handlers/stages/14-plan-resume.js +0 -47
  530. package/dist/daemon/handlers/stages/14-plan-resume.js.map +0 -1
  531. package/dist/daemon/handlers/stages/15-plan-enforcement.d.ts +0 -9
  532. package/dist/daemon/handlers/stages/15-plan-enforcement.d.ts.map +0 -1
  533. package/dist/daemon/handlers/stages/15-plan-enforcement.js +0 -42
  534. package/dist/daemon/handlers/stages/15-plan-enforcement.js.map +0 -1
  535. package/dist/daemon/handlers/stages/17-simple-task.d.ts +0 -9
  536. package/dist/daemon/handlers/stages/17-simple-task.d.ts.map +0 -1
  537. package/dist/daemon/handlers/stages/17-simple-task.js +0 -33
  538. package/dist/daemon/handlers/stages/17-simple-task.js.map +0 -1
  539. package/dist/daemon/handlers/stages/18-complex-task.d.ts +0 -15
  540. package/dist/daemon/handlers/stages/18-complex-task.d.ts.map +0 -1
  541. package/dist/daemon/handlers/stages/18-complex-task.js +0 -161
  542. package/dist/daemon/handlers/stages/18-complex-task.js.map +0 -1
  543. package/dist/daemon/handlers/stages/stage-interface.d.ts +0 -32
  544. package/dist/daemon/handlers/stages/stage-interface.d.ts.map +0 -1
  545. package/dist/daemon/handlers/stages/stage-interface.js +0 -2
  546. package/dist/daemon/handlers/stages/stage-interface.js.map +0 -1
  547. package/dist/daemon/handlers/stages/stage-scheduler.d.ts +0 -27
  548. package/dist/daemon/handlers/stages/stage-scheduler.d.ts.map +0 -1
  549. package/dist/daemon/handlers/stages/stage-scheduler.js +0 -105
  550. package/dist/daemon/handlers/stages/stage-scheduler.js.map +0 -1
  551. package/dist/daemon/handlers/stop-handler.d.ts +0 -18
  552. package/dist/daemon/handlers/stop-handler.d.ts.map +0 -1
  553. package/dist/daemon/handlers/stop-handler.js +0 -274
  554. package/dist/daemon/handlers/stop-handler.js.map +0 -1
  555. package/dist/daemon/handlers/user-prompt-handler.d.ts +0 -34
  556. package/dist/daemon/handlers/user-prompt-handler.d.ts.map +0 -1
  557. package/dist/daemon/handlers/user-prompt-handler.js +0 -230
  558. package/dist/daemon/handlers/user-prompt-handler.js.map +0 -1
  559. package/dist/daemon/pending-prompts.d.ts +0 -31
  560. package/dist/daemon/pending-prompts.d.ts.map +0 -1
  561. package/dist/daemon/pending-prompts.js +0 -57
  562. package/dist/daemon/pending-prompts.js.map +0 -1
  563. package/dist/daemon/tool-summary.d.ts +0 -10
  564. package/dist/daemon/tool-summary.d.ts.map +0 -1
  565. package/dist/daemon/tool-summary.js +0 -68
  566. package/dist/daemon/tool-summary.js.map +0 -1
  567. package/dist/distill/index.d.ts +0 -26
  568. package/dist/distill/index.d.ts.map +0 -1
  569. package/dist/distill/index.js +0 -155
  570. package/dist/distill/index.js.map +0 -1
  571. package/dist/distill/prompts.d.ts +0 -7
  572. package/dist/distill/prompts.d.ts.map +0 -1
  573. package/dist/distill/prompts.js +0 -100
  574. package/dist/distill/prompts.js.map +0 -1
  575. package/dist/distill/tree-index.d.ts +0 -40
  576. package/dist/distill/tree-index.d.ts.map +0 -1
  577. package/dist/distill/tree-index.js +0 -254
  578. package/dist/distill/tree-index.js.map +0 -1
  579. package/dist/distill/trigger.d.ts +0 -49
  580. package/dist/distill/trigger.d.ts.map +0 -1
  581. package/dist/distill/trigger.js +0 -182
  582. package/dist/distill/trigger.js.map +0 -1
  583. package/dist/distill/writer.d.ts +0 -43
  584. package/dist/distill/writer.d.ts.map +0 -1
  585. package/dist/distill/writer.js +0 -210
  586. package/dist/distill/writer.js.map +0 -1
  587. package/dist/goal/goal-classifier.d.ts +0 -38
  588. package/dist/goal/goal-classifier.d.ts.map +0 -1
  589. package/dist/goal/goal-classifier.js +0 -475
  590. package/dist/goal/goal-classifier.js.map +0 -1
  591. package/dist/goal/goal-decomposer.d.ts +0 -45
  592. package/dist/goal/goal-decomposer.d.ts.map +0 -1
  593. package/dist/goal/goal-decomposer.js +0 -326
  594. package/dist/goal/goal-decomposer.js.map +0 -1
  595. package/dist/goal/goal-planner.d.ts +0 -17
  596. package/dist/goal/goal-planner.d.ts.map +0 -1
  597. package/dist/goal/goal-planner.js +0 -149
  598. package/dist/goal/goal-planner.js.map +0 -1
  599. package/dist/goal/goal-types.d.ts +0 -93
  600. package/dist/goal/goal-types.d.ts.map +0 -1
  601. package/dist/goal/goal-types.js +0 -8
  602. package/dist/goal/goal-types.js.map +0 -1
  603. package/dist/goal/index.d.ts +0 -5
  604. package/dist/goal/index.d.ts.map +0 -1
  605. package/dist/goal/index.js +0 -4
  606. package/dist/goal/index.js.map +0 -1
  607. package/dist/governance/contract-builder.d.ts +0 -39
  608. package/dist/governance/contract-builder.d.ts.map +0 -1
  609. package/dist/governance/contract-builder.js +0 -216
  610. package/dist/governance/contract-builder.js.map +0 -1
  611. package/dist/governance/engine.d.ts +0 -33
  612. package/dist/governance/engine.d.ts.map +0 -1
  613. package/dist/governance/engine.js +0 -183
  614. package/dist/governance/engine.js.map +0 -1
  615. package/dist/governance/evidence-collector.d.ts +0 -42
  616. package/dist/governance/evidence-collector.d.ts.map +0 -1
  617. package/dist/governance/evidence-collector.js +0 -136
  618. package/dist/governance/evidence-collector.js.map +0 -1
  619. package/dist/governance/plugins/correction-plugin.d.ts +0 -20
  620. package/dist/governance/plugins/correction-plugin.d.ts.map +0 -1
  621. package/dist/governance/plugins/correction-plugin.js +0 -113
  622. package/dist/governance/plugins/correction-plugin.js.map +0 -1
  623. package/dist/governance/plugins/guidance-plugin.d.ts +0 -21
  624. package/dist/governance/plugins/guidance-plugin.d.ts.map +0 -1
  625. package/dist/governance/plugins/guidance-plugin.js +0 -69
  626. package/dist/governance/plugins/guidance-plugin.js.map +0 -1
  627. package/dist/governance/plugins/memory-plugin.d.ts +0 -22
  628. package/dist/governance/plugins/memory-plugin.d.ts.map +0 -1
  629. package/dist/governance/plugins/memory-plugin.js +0 -106
  630. package/dist/governance/plugins/memory-plugin.js.map +0 -1
  631. package/dist/governance/plugins/policy-plugin.d.ts +0 -16
  632. package/dist/governance/plugins/policy-plugin.d.ts.map +0 -1
  633. package/dist/governance/plugins/policy-plugin.js +0 -69
  634. package/dist/governance/plugins/policy-plugin.js.map +0 -1
  635. package/dist/governance/plugins/verification-plugin.d.ts +0 -15
  636. package/dist/governance/plugins/verification-plugin.d.ts.map +0 -1
  637. package/dist/governance/plugins/verification-plugin.js +0 -65
  638. package/dist/governance/plugins/verification-plugin.js.map +0 -1
  639. package/dist/governance/types.d.ts +0 -202
  640. package/dist/governance/types.d.ts.map +0 -1
  641. package/dist/governance/types.js +0 -10
  642. package/dist/governance/types.js.map +0 -1
  643. package/dist/knowledge/graph.d.ts +0 -101
  644. package/dist/knowledge/graph.d.ts.map +0 -1
  645. package/dist/knowledge/graph.js +0 -338
  646. package/dist/knowledge/graph.js.map +0 -1
  647. package/dist/orchestration/index.d.ts +0 -32
  648. package/dist/orchestration/index.d.ts.map +0 -1
  649. package/dist/orchestration/index.js +0 -74
  650. package/dist/orchestration/index.js.map +0 -1
  651. package/dist/orchestration/notifier.d.ts +0 -11
  652. package/dist/orchestration/notifier.d.ts.map +0 -1
  653. package/dist/orchestration/notifier.js +0 -22
  654. package/dist/orchestration/notifier.js.map +0 -1
  655. package/dist/orchestration/policy-engine.d.ts +0 -21
  656. package/dist/orchestration/policy-engine.d.ts.map +0 -1
  657. package/dist/orchestration/policy-engine.js +0 -78
  658. package/dist/orchestration/policy-engine.js.map +0 -1
  659. package/dist/orchestration/tracker.d.ts +0 -45
  660. package/dist/orchestration/tracker.d.ts.map +0 -1
  661. package/dist/orchestration/tracker.js +0 -95
  662. package/dist/orchestration/tracker.js.map +0 -1
  663. package/dist/pipeline/artifact-collector.d.ts +0 -31
  664. package/dist/pipeline/artifact-collector.d.ts.map +0 -1
  665. package/dist/pipeline/artifact-collector.js +0 -134
  666. package/dist/pipeline/artifact-collector.js.map +0 -1
  667. package/dist/pipeline/artifact-generator.d.ts +0 -36
  668. package/dist/pipeline/artifact-generator.d.ts.map +0 -1
  669. package/dist/pipeline/artifact-generator.js +0 -564
  670. package/dist/pipeline/artifact-generator.js.map +0 -1
  671. package/dist/pipeline/artifact-orchestrator.d.ts +0 -22
  672. package/dist/pipeline/artifact-orchestrator.d.ts.map +0 -1
  673. package/dist/pipeline/artifact-orchestrator.js +0 -110
  674. package/dist/pipeline/artifact-orchestrator.js.map +0 -1
  675. package/dist/pipeline/artifact-validator.d.ts +0 -37
  676. package/dist/pipeline/artifact-validator.d.ts.map +0 -1
  677. package/dist/pipeline/artifact-validator.js +0 -160
  678. package/dist/pipeline/artifact-validator.js.map +0 -1
  679. package/dist/pipeline/completion-detector.d.ts +0 -57
  680. package/dist/pipeline/completion-detector.d.ts.map +0 -1
  681. package/dist/pipeline/completion-detector.js +0 -190
  682. package/dist/pipeline/completion-detector.js.map +0 -1
  683. package/dist/pipeline/completion-engine.d.ts +0 -37
  684. package/dist/pipeline/completion-engine.d.ts.map +0 -1
  685. package/dist/pipeline/completion-engine.js +0 -146
  686. package/dist/pipeline/completion-engine.js.map +0 -1
  687. package/dist/pipeline/completion-gate.d.ts +0 -65
  688. package/dist/pipeline/completion-gate.d.ts.map +0 -1
  689. package/dist/pipeline/completion-gate.js +0 -303
  690. package/dist/pipeline/completion-gate.js.map +0 -1
  691. package/dist/pipeline/completion-verifier.d.ts +0 -83
  692. package/dist/pipeline/completion-verifier.d.ts.map +0 -1
  693. package/dist/pipeline/completion-verifier.js +0 -247
  694. package/dist/pipeline/completion-verifier.js.map +0 -1
  695. package/dist/pipeline/custom-node-type-store.d.ts +0 -12
  696. package/dist/pipeline/custom-node-type-store.d.ts.map +0 -1
  697. package/dist/pipeline/custom-node-type-store.js +0 -54
  698. package/dist/pipeline/custom-node-type-store.js.map +0 -1
  699. package/dist/pipeline/diagnosis-service.d.ts +0 -44
  700. package/dist/pipeline/diagnosis-service.d.ts.map +0 -1
  701. package/dist/pipeline/diagnosis-service.js +0 -136
  702. package/dist/pipeline/diagnosis-service.js.map +0 -1
  703. package/dist/pipeline/dynamic-node-executor.d.ts +0 -129
  704. package/dist/pipeline/dynamic-node-executor.d.ts.map +0 -1
  705. package/dist/pipeline/dynamic-node-executor.js +0 -536
  706. package/dist/pipeline/dynamic-node-executor.js.map +0 -1
  707. package/dist/pipeline/dynamic-node-types.d.ts +0 -133
  708. package/dist/pipeline/dynamic-node-types.d.ts.map +0 -1
  709. package/dist/pipeline/dynamic-node-types.js +0 -8
  710. package/dist/pipeline/dynamic-node-types.js.map +0 -1
  711. package/dist/pipeline/execution-engine.d.ts +0 -74
  712. package/dist/pipeline/execution-engine.d.ts.map +0 -1
  713. package/dist/pipeline/execution-engine.js +0 -346
  714. package/dist/pipeline/execution-engine.js.map +0 -1
  715. package/dist/pipeline/execution-plan.d.ts +0 -67
  716. package/dist/pipeline/execution-plan.d.ts.map +0 -1
  717. package/dist/pipeline/execution-plan.js +0 -61
  718. package/dist/pipeline/execution-plan.js.map +0 -1
  719. package/dist/pipeline/i-node-executor.d.ts +0 -84
  720. package/dist/pipeline/i-node-executor.d.ts.map +0 -1
  721. package/dist/pipeline/i-node-executor.js +0 -8
  722. package/dist/pipeline/i-node-executor.js.map +0 -1
  723. package/dist/pipeline/index.d.ts +0 -214
  724. package/dist/pipeline/index.d.ts.map +0 -1
  725. package/dist/pipeline/index.js +0 -728
  726. package/dist/pipeline/index.js.map +0 -1
  727. package/dist/pipeline/node-runtime.d.ts +0 -43
  728. package/dist/pipeline/node-runtime.d.ts.map +0 -1
  729. package/dist/pipeline/node-runtime.js +0 -77
  730. package/dist/pipeline/node-runtime.js.map +0 -1
  731. package/dist/pipeline/node-type-evolver.d.ts +0 -18
  732. package/dist/pipeline/node-type-evolver.d.ts.map +0 -1
  733. package/dist/pipeline/node-type-evolver.js +0 -171
  734. package/dist/pipeline/node-type-evolver.js.map +0 -1
  735. package/dist/pipeline/node-type-registry.d.ts +0 -47
  736. package/dist/pipeline/node-type-registry.d.ts.map +0 -1
  737. package/dist/pipeline/node-type-registry.js +0 -494
  738. package/dist/pipeline/node-type-registry.js.map +0 -1
  739. package/dist/pipeline/node-type-sync.d.ts +0 -17
  740. package/dist/pipeline/node-type-sync.d.ts.map +0 -1
  741. package/dist/pipeline/node-type-sync.js +0 -139
  742. package/dist/pipeline/node-type-sync.js.map +0 -1
  743. package/dist/pipeline/orchestration-enforcer.d.ts +0 -44
  744. package/dist/pipeline/orchestration-enforcer.d.ts.map +0 -1
  745. package/dist/pipeline/orchestration-enforcer.js +0 -141
  746. package/dist/pipeline/orchestration-enforcer.js.map +0 -1
  747. package/dist/pipeline/pattern-types.d.ts +0 -148
  748. package/dist/pipeline/pattern-types.d.ts.map +0 -1
  749. package/dist/pipeline/pattern-types.js +0 -8
  750. package/dist/pipeline/pattern-types.js.map +0 -1
  751. package/dist/pipeline/phase-tool-policy.d.ts +0 -20
  752. package/dist/pipeline/phase-tool-policy.d.ts.map +0 -1
  753. package/dist/pipeline/phase-tool-policy.js +0 -75
  754. package/dist/pipeline/phase-tool-policy.js.map +0 -1
  755. package/dist/pipeline/pipeline-options.d.ts +0 -19
  756. package/dist/pipeline/pipeline-options.d.ts.map +0 -1
  757. package/dist/pipeline/pipeline-options.js +0 -136
  758. package/dist/pipeline/pipeline-options.js.map +0 -1
  759. package/dist/pipeline/pipeline-state-machine.d.ts +0 -19
  760. package/dist/pipeline/pipeline-state-machine.d.ts.map +0 -1
  761. package/dist/pipeline/pipeline-state-machine.js +0 -53
  762. package/dist/pipeline/pipeline-state-machine.js.map +0 -1
  763. package/dist/pipeline/plan-service.d.ts +0 -59
  764. package/dist/pipeline/plan-service.d.ts.map +0 -1
  765. package/dist/pipeline/plan-service.js +0 -451
  766. package/dist/pipeline/plan-service.js.map +0 -1
  767. package/dist/pipeline/report-generator.d.ts +0 -20
  768. package/dist/pipeline/report-generator.d.ts.map +0 -1
  769. package/dist/pipeline/report-generator.js +0 -123
  770. package/dist/pipeline/report-generator.js.map +0 -1
  771. package/dist/pipeline/semantic-validator.d.ts +0 -53
  772. package/dist/pipeline/semantic-validator.d.ts.map +0 -1
  773. package/dist/pipeline/semantic-validator.js +0 -188
  774. package/dist/pipeline/semantic-validator.js.map +0 -1
  775. package/dist/pipeline/step-gate-keeper.d.ts +0 -28
  776. package/dist/pipeline/step-gate-keeper.d.ts.map +0 -1
  777. package/dist/pipeline/step-gate-keeper.js +0 -46
  778. package/dist/pipeline/step-gate-keeper.js.map +0 -1
  779. package/dist/pipeline/step-orchestrator.d.ts +0 -71
  780. package/dist/pipeline/step-orchestrator.d.ts.map +0 -1
  781. package/dist/pipeline/step-orchestrator.js +0 -191
  782. package/dist/pipeline/step-orchestrator.js.map +0 -1
  783. package/dist/pipeline/step-prompt-builder.d.ts +0 -32
  784. package/dist/pipeline/step-prompt-builder.d.ts.map +0 -1
  785. package/dist/pipeline/step-prompt-builder.js +0 -111
  786. package/dist/pipeline/step-prompt-builder.js.map +0 -1
  787. package/dist/pipeline/step-types.d.ts +0 -141
  788. package/dist/pipeline/step-types.d.ts.map +0 -1
  789. package/dist/pipeline/step-types.js +0 -7
  790. package/dist/pipeline/step-types.js.map +0 -1
  791. package/dist/pipeline/step-validator.d.ts +0 -29
  792. package/dist/pipeline/step-validator.d.ts.map +0 -1
  793. package/dist/pipeline/step-validator.js +0 -172
  794. package/dist/pipeline/step-validator.js.map +0 -1
  795. package/dist/pipeline/strategy-selector.d.ts +0 -41
  796. package/dist/pipeline/strategy-selector.d.ts.map +0 -1
  797. package/dist/pipeline/strategy-selector.js +0 -112
  798. package/dist/pipeline/strategy-selector.js.map +0 -1
  799. package/dist/pipeline/template-evolver.d.ts +0 -45
  800. package/dist/pipeline/template-evolver.d.ts.map +0 -1
  801. package/dist/pipeline/template-evolver.js +0 -223
  802. package/dist/pipeline/template-evolver.js.map +0 -1
  803. package/dist/pipeline/template-registry.d.ts +0 -52
  804. package/dist/pipeline/template-registry.d.ts.map +0 -1
  805. package/dist/pipeline/template-registry.js +0 -588
  806. package/dist/pipeline/template-registry.js.map +0 -1
  807. package/dist/pipeline/template-router.d.ts +0 -32
  808. package/dist/pipeline/template-router.d.ts.map +0 -1
  809. package/dist/pipeline/template-router.js +0 -132
  810. package/dist/pipeline/template-router.js.map +0 -1
  811. package/dist/pipeline/template-sync.d.ts +0 -13
  812. package/dist/pipeline/template-sync.d.ts.map +0 -1
  813. package/dist/pipeline/template-sync.js +0 -246
  814. package/dist/pipeline/template-sync.js.map +0 -1
  815. package/dist/pipeline/types.d.ts +0 -93
  816. package/dist/pipeline/types.d.ts.map +0 -1
  817. package/dist/pipeline/types.js +0 -2
  818. package/dist/pipeline/types.js.map +0 -1
  819. package/dist/prompts/claudemd-distill.md +0 -31
  820. package/dist/prompts/distill-analysis.md +0 -25
  821. package/dist/prompts/intent-analysis.md +0 -135
  822. package/dist/prompts/pipeline-decompose.md +0 -108
  823. package/dist/prompts/quality-phase-completion.md +0 -36
  824. package/dist/prompts/quality-phase-review.md +0 -43
  825. package/dist/prompts/quality-review.md +0 -41
  826. package/dist/prompts/registry.d.ts +0 -17
  827. package/dist/prompts/registry.d.ts.map +0 -1
  828. package/dist/prompts/registry.js +0 -40
  829. package/dist/prompts/registry.js.map +0 -1
  830. package/dist/prompts/retrospective-pattern.md +0 -24
  831. package/dist/resume/context-gen.d.ts +0 -20
  832. package/dist/resume/context-gen.d.ts.map +0 -1
  833. package/dist/resume/context-gen.js +0 -130
  834. package/dist/resume/context-gen.js.map +0 -1
  835. package/dist/resume/index.d.ts +0 -33
  836. package/dist/resume/index.d.ts.map +0 -1
  837. package/dist/resume/index.js +0 -114
  838. package/dist/resume/index.js.map +0 -1
  839. package/dist/resume/state-machine.d.ts +0 -21
  840. package/dist/resume/state-machine.d.ts.map +0 -1
  841. package/dist/resume/state-machine.js +0 -58
  842. package/dist/resume/state-machine.js.map +0 -1
  843. package/dist/retrospective/failure-detector.d.ts +0 -17
  844. package/dist/retrospective/failure-detector.d.ts.map +0 -1
  845. package/dist/retrospective/failure-detector.js +0 -67
  846. package/dist/retrospective/failure-detector.js.map +0 -1
  847. package/dist/retrospective/index.d.ts +0 -77
  848. package/dist/retrospective/index.d.ts.map +0 -1
  849. package/dist/retrospective/index.js +0 -255
  850. package/dist/retrospective/index.js.map +0 -1
  851. package/dist/retrospective/metrics-extractor.d.ts +0 -27
  852. package/dist/retrospective/metrics-extractor.d.ts.map +0 -1
  853. package/dist/retrospective/metrics-extractor.js +0 -76
  854. package/dist/retrospective/metrics-extractor.js.map +0 -1
  855. package/dist/retrospective/pattern-learner.d.ts +0 -29
  856. package/dist/retrospective/pattern-learner.d.ts.map +0 -1
  857. package/dist/retrospective/pattern-learner.js +0 -149
  858. package/dist/retrospective/pattern-learner.js.map +0 -1
  859. package/dist/retrospective/report-writer.d.ts +0 -28
  860. package/dist/retrospective/report-writer.d.ts.map +0 -1
  861. package/dist/retrospective/report-writer.js +0 -95
  862. package/dist/retrospective/report-writer.js.map +0 -1
  863. package/dist/retrospective/satisfaction-inferrer.d.ts +0 -38
  864. package/dist/retrospective/satisfaction-inferrer.d.ts.map +0 -1
  865. package/dist/retrospective/satisfaction-inferrer.js +0 -137
  866. package/dist/retrospective/satisfaction-inferrer.js.map +0 -1
  867. package/dist/retrospective/strategy-advisor.d.ts +0 -23
  868. package/dist/retrospective/strategy-advisor.d.ts.map +0 -1
  869. package/dist/retrospective/strategy-advisor.js +0 -64
  870. package/dist/retrospective/strategy-advisor.js.map +0 -1
  871. package/dist/retrospective/types.d.ts +0 -105
  872. package/dist/retrospective/types.d.ts.map +0 -1
  873. package/dist/retrospective/types.js +0 -7
  874. package/dist/retrospective/types.js.map +0 -1
  875. package/dist/skill-registry/collector.d.ts +0 -75
  876. package/dist/skill-registry/collector.d.ts.map +0 -1
  877. package/dist/skill-registry/collector.js +0 -350
  878. package/dist/skill-registry/collector.js.map +0 -1
  879. package/dist/skill-registry/evolver/community-distiller.d.ts +0 -10
  880. package/dist/skill-registry/evolver/community-distiller.d.ts.map +0 -1
  881. package/dist/skill-registry/evolver/community-distiller.js +0 -117
  882. package/dist/skill-registry/evolver/community-distiller.js.map +0 -1
  883. package/dist/skill-registry/evolver/generation-engine.d.ts +0 -7
  884. package/dist/skill-registry/evolver/generation-engine.d.ts.map +0 -1
  885. package/dist/skill-registry/evolver/generation-engine.js +0 -71
  886. package/dist/skill-registry/evolver/generation-engine.js.map +0 -1
  887. package/dist/skill-registry/evolver/index.d.ts +0 -52
  888. package/dist/skill-registry/evolver/index.d.ts.map +0 -1
  889. package/dist/skill-registry/evolver/index.js +0 -196
  890. package/dist/skill-registry/evolver/index.js.map +0 -1
  891. package/dist/skill-registry/evolver/keyword-evolver.d.ts +0 -7
  892. package/dist/skill-registry/evolver/keyword-evolver.d.ts.map +0 -1
  893. package/dist/skill-registry/evolver/keyword-evolver.js +0 -117
  894. package/dist/skill-registry/evolver/keyword-evolver.js.map +0 -1
  895. package/dist/skill-registry/evolver/official-evolver.d.ts +0 -8
  896. package/dist/skill-registry/evolver/official-evolver.d.ts.map +0 -1
  897. package/dist/skill-registry/evolver/official-evolver.js +0 -79
  898. package/dist/skill-registry/evolver/official-evolver.js.map +0 -1
  899. package/dist/skill-registry/evolver/optimization-engine.d.ts +0 -7
  900. package/dist/skill-registry/evolver/optimization-engine.d.ts.map +0 -1
  901. package/dist/skill-registry/evolver/optimization-engine.js +0 -130
  902. package/dist/skill-registry/evolver/optimization-engine.js.map +0 -1
  903. package/dist/skill-registry/evolver/repair-engine.d.ts +0 -26
  904. package/dist/skill-registry/evolver/repair-engine.d.ts.map +0 -1
  905. package/dist/skill-registry/evolver/repair-engine.js +0 -247
  906. package/dist/skill-registry/evolver/repair-engine.js.map +0 -1
  907. package/dist/skill-registry/evolver/retirement-engine.d.ts +0 -7
  908. package/dist/skill-registry/evolver/retirement-engine.d.ts.map +0 -1
  909. package/dist/skill-registry/evolver/retirement-engine.js +0 -46
  910. package/dist/skill-registry/evolver/retirement-engine.js.map +0 -1
  911. package/dist/skill-registry/evolver/shared.d.ts +0 -18
  912. package/dist/skill-registry/evolver/shared.d.ts.map +0 -1
  913. package/dist/skill-registry/evolver/shared.js +0 -74
  914. package/dist/skill-registry/evolver/shared.js.map +0 -1
  915. package/dist/skill-registry/fuzzy-matcher.d.ts +0 -15
  916. package/dist/skill-registry/fuzzy-matcher.d.ts.map +0 -1
  917. package/dist/skill-registry/fuzzy-matcher.js +0 -41
  918. package/dist/skill-registry/fuzzy-matcher.js.map +0 -1
  919. package/dist/skill-registry/index.d.ts +0 -82
  920. package/dist/skill-registry/index.d.ts.map +0 -1
  921. package/dist/skill-registry/index.js +0 -219
  922. package/dist/skill-registry/index.js.map +0 -1
  923. package/dist/skill-registry/official-sync/index.d.ts +0 -17
  924. package/dist/skill-registry/official-sync/index.d.ts.map +0 -1
  925. package/dist/skill-registry/official-sync/index.js +0 -120
  926. package/dist/skill-registry/official-sync/index.js.map +0 -1
  927. package/dist/skill-registry/official-sync/skill-definitions.d.ts +0 -24
  928. package/dist/skill-registry/official-sync/skill-definitions.d.ts.map +0 -1
  929. package/dist/skill-registry/official-sync/skill-definitions.js +0 -1133
  930. package/dist/skill-registry/official-sync/skill-definitions.js.map +0 -1
  931. package/dist/skill-registry/orchestration-config.d.ts +0 -45
  932. package/dist/skill-registry/orchestration-config.d.ts.map +0 -1
  933. package/dist/skill-registry/orchestration-config.js +0 -145
  934. package/dist/skill-registry/orchestration-config.js.map +0 -1
  935. package/dist/skill-registry/orchestrator.d.ts +0 -61
  936. package/dist/skill-registry/orchestrator.d.ts.map +0 -1
  937. package/dist/skill-registry/orchestrator.js +0 -296
  938. package/dist/skill-registry/orchestrator.js.map +0 -1
  939. package/dist/skill-registry/pattern-evolver.d.ts +0 -43
  940. package/dist/skill-registry/pattern-evolver.d.ts.map +0 -1
  941. package/dist/skill-registry/pattern-evolver.js +0 -214
  942. package/dist/skill-registry/pattern-evolver.js.map +0 -1
  943. package/dist/skill-registry/project-learner.d.ts +0 -25
  944. package/dist/skill-registry/project-learner.d.ts.map +0 -1
  945. package/dist/skill-registry/project-learner.js +0 -176
  946. package/dist/skill-registry/project-learner.js.map +0 -1
  947. package/dist/skill-registry/registry.d.ts +0 -58
  948. package/dist/skill-registry/registry.d.ts.map +0 -1
  949. package/dist/skill-registry/registry.js +0 -190
  950. package/dist/skill-registry/registry.js.map +0 -1
  951. package/dist/skill-registry/scanner.d.ts +0 -36
  952. package/dist/skill-registry/scanner.d.ts.map +0 -1
  953. package/dist/skill-registry/scanner.js +0 -125
  954. package/dist/skill-registry/scanner.js.map +0 -1
  955. package/dist/skill-registry/skills-config.d.ts +0 -29
  956. package/dist/skill-registry/skills-config.d.ts.map +0 -1
  957. package/dist/skill-registry/skills-config.js +0 -86
  958. package/dist/skill-registry/skills-config.js.map +0 -1
  959. package/dist/storage/index.d.ts +0 -241
  960. package/dist/storage/index.d.ts.map +0 -1
  961. package/dist/storage/index.js +0 -2
  962. package/dist/storage/index.js.map +0 -1
  963. package/dist/storage/repositories/api-usage-repository.d.ts +0 -28
  964. package/dist/storage/repositories/api-usage-repository.d.ts.map +0 -1
  965. package/dist/storage/repositories/api-usage-repository.js +0 -59
  966. package/dist/storage/repositories/api-usage-repository.js.map +0 -1
  967. package/dist/storage/repositories/base-repository.d.ts +0 -14
  968. package/dist/storage/repositories/base-repository.d.ts.map +0 -1
  969. package/dist/storage/repositories/base-repository.js +0 -43
  970. package/dist/storage/repositories/base-repository.js.map +0 -1
  971. package/dist/storage/repositories/distill-repository.d.ts +0 -37
  972. package/dist/storage/repositories/distill-repository.d.ts.map +0 -1
  973. package/dist/storage/repositories/distill-repository.js +0 -91
  974. package/dist/storage/repositories/distill-repository.js.map +0 -1
  975. package/dist/storage/repositories/dynamic-pipeline-repository.d.ts +0 -91
  976. package/dist/storage/repositories/dynamic-pipeline-repository.d.ts.map +0 -1
  977. package/dist/storage/repositories/dynamic-pipeline-repository.js +0 -425
  978. package/dist/storage/repositories/dynamic-pipeline-repository.js.map +0 -1
  979. package/dist/storage/repositories/dynamic-pipeline-template-repository.d.ts +0 -13
  980. package/dist/storage/repositories/dynamic-pipeline-template-repository.d.ts.map +0 -1
  981. package/dist/storage/repositories/dynamic-pipeline-template-repository.js +0 -117
  982. package/dist/storage/repositories/dynamic-pipeline-template-repository.js.map +0 -1
  983. package/dist/storage/repositories/event-repository.d.ts +0 -14
  984. package/dist/storage/repositories/event-repository.d.ts.map +0 -1
  985. package/dist/storage/repositories/event-repository.js +0 -226
  986. package/dist/storage/repositories/event-repository.js.map +0 -1
  987. package/dist/storage/repositories/failure-repository.d.ts +0 -22
  988. package/dist/storage/repositories/failure-repository.d.ts.map +0 -1
  989. package/dist/storage/repositories/failure-repository.js +0 -26
  990. package/dist/storage/repositories/failure-repository.js.map +0 -1
  991. package/dist/storage/repositories/graph-traversal.d.ts +0 -37
  992. package/dist/storage/repositories/graph-traversal.d.ts.map +0 -1
  993. package/dist/storage/repositories/graph-traversal.js +0 -158
  994. package/dist/storage/repositories/graph-traversal.js.map +0 -1
  995. package/dist/storage/repositories/intent-rule-repository.d.ts +0 -20
  996. package/dist/storage/repositories/intent-rule-repository.d.ts.map +0 -1
  997. package/dist/storage/repositories/intent-rule-repository.js +0 -38
  998. package/dist/storage/repositories/intent-rule-repository.js.map +0 -1
  999. package/dist/storage/repositories/knowledge-repository.d.ts +0 -60
  1000. package/dist/storage/repositories/knowledge-repository.d.ts.map +0 -1
  1001. package/dist/storage/repositories/knowledge-repository.js +0 -131
  1002. package/dist/storage/repositories/knowledge-repository.js.map +0 -1
  1003. package/dist/storage/repositories/latency-repository.d.ts +0 -21
  1004. package/dist/storage/repositories/latency-repository.d.ts.map +0 -1
  1005. package/dist/storage/repositories/latency-repository.js +0 -39
  1006. package/dist/storage/repositories/latency-repository.js.map +0 -1
  1007. package/dist/storage/repositories/maintenance-repository.d.ts +0 -101
  1008. package/dist/storage/repositories/maintenance-repository.d.ts.map +0 -1
  1009. package/dist/storage/repositories/maintenance-repository.js +0 -372
  1010. package/dist/storage/repositories/maintenance-repository.js.map +0 -1
  1011. package/dist/storage/repositories/node-attempt-repository.d.ts +0 -29
  1012. package/dist/storage/repositories/node-attempt-repository.d.ts.map +0 -1
  1013. package/dist/storage/repositories/node-attempt-repository.js +0 -57
  1014. package/dist/storage/repositories/node-attempt-repository.js.map +0 -1
  1015. package/dist/storage/repositories/node-type-repository.d.ts +0 -52
  1016. package/dist/storage/repositories/node-type-repository.d.ts.map +0 -1
  1017. package/dist/storage/repositories/node-type-repository.js +0 -130
  1018. package/dist/storage/repositories/node-type-repository.js.map +0 -1
  1019. package/dist/storage/repositories/pipeline-plan-repository.d.ts +0 -75
  1020. package/dist/storage/repositories/pipeline-plan-repository.d.ts.map +0 -1
  1021. package/dist/storage/repositories/pipeline-plan-repository.js +0 -123
  1022. package/dist/storage/repositories/pipeline-plan-repository.js.map +0 -1
  1023. package/dist/storage/repositories/project-meta-repository.d.ts +0 -19
  1024. package/dist/storage/repositories/project-meta-repository.d.ts.map +0 -1
  1025. package/dist/storage/repositories/project-meta-repository.js +0 -46
  1026. package/dist/storage/repositories/project-meta-repository.js.map +0 -1
  1027. package/dist/storage/repositories/quality-repository.d.ts +0 -16
  1028. package/dist/storage/repositories/quality-repository.d.ts.map +0 -1
  1029. package/dist/storage/repositories/quality-repository.js +0 -36
  1030. package/dist/storage/repositories/quality-repository.js.map +0 -1
  1031. package/dist/storage/repositories/satisfaction-repository.d.ts +0 -21
  1032. package/dist/storage/repositories/satisfaction-repository.d.ts.map +0 -1
  1033. package/dist/storage/repositories/satisfaction-repository.js +0 -26
  1034. package/dist/storage/repositories/satisfaction-repository.js.map +0 -1
  1035. package/dist/storage/repositories/session-repository.d.ts +0 -24
  1036. package/dist/storage/repositories/session-repository.d.ts.map +0 -1
  1037. package/dist/storage/repositories/session-repository.js +0 -116
  1038. package/dist/storage/repositories/session-repository.js.map +0 -1
  1039. package/dist/storage/repositories/task-repository.d.ts +0 -99
  1040. package/dist/storage/repositories/task-repository.d.ts.map +0 -1
  1041. package/dist/storage/repositories/task-repository.js +0 -223
  1042. package/dist/storage/repositories/task-repository.js.map +0 -1
  1043. package/dist/storage/repositories/template-evolution-repository.d.ts +0 -39
  1044. package/dist/storage/repositories/template-evolution-repository.d.ts.map +0 -1
  1045. package/dist/storage/repositories/template-evolution-repository.js +0 -83
  1046. package/dist/storage/repositories/template-evolution-repository.js.map +0 -1
  1047. package/dist/storage/schema/migration-manager.d.ts +0 -10
  1048. package/dist/storage/schema/migration-manager.d.ts.map +0 -1
  1049. package/dist/storage/schema/migration-manager.js +0 -32
  1050. package/dist/storage/schema/migration-manager.js.map +0 -1
  1051. package/dist/storage/schema.sql +0 -591
  1052. package/dist/storage/sqlite.d.ts +0 -426
  1053. package/dist/storage/sqlite.d.ts.map +0 -1
  1054. package/dist/storage/sqlite.js +0 -541
  1055. package/dist/storage/sqlite.js.map +0 -1
  1056. package/dist/types/core-types.d.ts +0 -24
  1057. package/dist/types/core-types.d.ts.map +0 -1
  1058. package/dist/types/core-types.js +0 -37
  1059. package/dist/types/core-types.js.map +0 -1
  1060. package/dist/types/event.d.ts +0 -25
  1061. package/dist/types/event.d.ts.map +0 -1
  1062. package/dist/types/event.js +0 -2
  1063. package/dist/types/event.js.map +0 -1
  1064. package/dist/types/index.d.ts +0 -3
  1065. package/dist/types/index.d.ts.map +0 -1
  1066. package/dist/types/index.js +0 -2
  1067. package/dist/types/index.js.map +0 -1
  1068. package/dist/types/session.d.ts +0 -14
  1069. package/dist/types/session.d.ts.map +0 -1
  1070. package/dist/types/session.js +0 -2
  1071. package/dist/types/session.js.map +0 -1
  1072. package/dist/utils/artifact-manager.d.ts +0 -60
  1073. package/dist/utils/artifact-manager.d.ts.map +0 -1
  1074. package/dist/utils/artifact-manager.js +0 -205
  1075. package/dist/utils/artifact-manager.js.map +0 -1
  1076. package/dist/utils/cache-registry.d.ts +0 -53
  1077. package/dist/utils/cache-registry.d.ts.map +0 -1
  1078. package/dist/utils/cache-registry.js +0 -93
  1079. package/dist/utils/cache-registry.js.map +0 -1
  1080. package/dist/utils/circuit-breaker.d.ts +0 -39
  1081. package/dist/utils/circuit-breaker.d.ts.map +0 -1
  1082. package/dist/utils/circuit-breaker.js +0 -101
  1083. package/dist/utils/circuit-breaker.js.map +0 -1
  1084. package/dist/utils/claude-api.d.ts +0 -31
  1085. package/dist/utils/claude-api.d.ts.map +0 -1
  1086. package/dist/utils/claude-api.js +0 -125
  1087. package/dist/utils/claude-api.js.map +0 -1
  1088. package/dist/utils/error-handler.d.ts +0 -48
  1089. package/dist/utils/error-handler.d.ts.map +0 -1
  1090. package/dist/utils/error-handler.js +0 -251
  1091. package/dist/utils/error-handler.js.map +0 -1
  1092. package/dist/utils/forge-resume-block.d.ts.map +0 -1
  1093. package/dist/utils/forge-resume-block.js.map +0 -1
  1094. package/dist/utils/formatter.d.ts +0 -71
  1095. package/dist/utils/formatter.d.ts.map +0 -1
  1096. package/dist/utils/formatter.js +0 -133
  1097. package/dist/utils/formatter.js.map +0 -1
  1098. package/dist/utils/latency-tracer.d.ts +0 -27
  1099. package/dist/utils/latency-tracer.d.ts.map +0 -1
  1100. package/dist/utils/latency-tracer.js +0 -64
  1101. package/dist/utils/latency-tracer.js.map +0 -1
  1102. package/dist/utils/logger.d.ts +0 -33
  1103. package/dist/utils/logger.d.ts.map +0 -1
  1104. package/dist/utils/logger.js +0 -173
  1105. package/dist/utils/logger.js.map +0 -1
  1106. package/dist/utils/memory-manager.d.ts +0 -58
  1107. package/dist/utils/memory-manager.d.ts.map +0 -1
  1108. package/dist/utils/memory-manager.js +0 -165
  1109. package/dist/utils/memory-manager.js.map +0 -1
  1110. package/dist/utils/mutex-lock.d.ts +0 -24
  1111. package/dist/utils/mutex-lock.d.ts.map +0 -1
  1112. package/dist/utils/mutex-lock.js +0 -55
  1113. package/dist/utils/mutex-lock.js.map +0 -1
  1114. package/dist/utils/path.d.ts +0 -6
  1115. package/dist/utils/path.d.ts.map +0 -1
  1116. package/dist/utils/path.js +0 -13
  1117. package/dist/utils/path.js.map +0 -1
  1118. package/dist/utils/pending-prompt-sink.d.ts +0 -14
  1119. package/dist/utils/pending-prompt-sink.d.ts.map +0 -1
  1120. package/dist/utils/pending-prompt-sink.js +0 -7
  1121. package/dist/utils/pending-prompt-sink.js.map +0 -1
  1122. package/dist/utils/plan-reader.d.ts +0 -54
  1123. package/dist/utils/plan-reader.d.ts.map +0 -1
  1124. package/dist/utils/plan-reader.js +0 -238
  1125. package/dist/utils/plan-reader.js.map +0 -1
  1126. package/dist/utils/project-root.d.ts +0 -13
  1127. package/dist/utils/project-root.d.ts.map +0 -1
  1128. package/dist/utils/project-root.js +0 -43
  1129. package/dist/utils/project-root.js.map +0 -1
  1130. package/dist/utils/stage-trace.d.ts +0 -74
  1131. package/dist/utils/stage-trace.d.ts.map +0 -1
  1132. package/dist/utils/stage-trace.js +0 -125
  1133. package/dist/utils/stage-trace.js.map +0 -1
  1134. package/dist/utils/truncate.d.ts +0 -30
  1135. package/dist/utils/truncate.d.ts.map +0 -1
  1136. package/dist/utils/truncate.js +0 -64
  1137. package/dist/utils/truncate.js.map +0 -1
  1138. package/dist/web/middleware/auth.d.ts +0 -3
  1139. package/dist/web/middleware/auth.d.ts.map +0 -1
  1140. package/dist/web/middleware/auth.js +0 -19
  1141. package/dist/web/middleware/auth.js.map +0 -1
  1142. package/dist/web/routes/claudemd.d.ts +0 -4
  1143. package/dist/web/routes/claudemd.d.ts.map +0 -1
  1144. package/dist/web/routes/claudemd.js +0 -205
  1145. package/dist/web/routes/claudemd.js.map +0 -1
  1146. package/dist/web/routes/config.d.ts +0 -6
  1147. package/dist/web/routes/config.d.ts.map +0 -1
  1148. package/dist/web/routes/config.js +0 -331
  1149. package/dist/web/routes/config.js.map +0 -1
  1150. package/dist/web/routes/convention.d.ts +0 -4
  1151. package/dist/web/routes/convention.d.ts.map +0 -1
  1152. package/dist/web/routes/convention.js +0 -235
  1153. package/dist/web/routes/convention.js.map +0 -1
  1154. package/dist/web/routes/daemon.d.ts +0 -4
  1155. package/dist/web/routes/daemon.d.ts.map +0 -1
  1156. package/dist/web/routes/daemon.js +0 -94
  1157. package/dist/web/routes/daemon.js.map +0 -1
  1158. package/dist/web/routes/events.d.ts +0 -4
  1159. package/dist/web/routes/events.d.ts.map +0 -1
  1160. package/dist/web/routes/events.js +0 -99
  1161. package/dist/web/routes/events.js.map +0 -1
  1162. package/dist/web/routes/evolution.d.ts +0 -4
  1163. package/dist/web/routes/evolution.d.ts.map +0 -1
  1164. package/dist/web/routes/evolution.js +0 -61
  1165. package/dist/web/routes/evolution.js.map +0 -1
  1166. package/dist/web/routes/knowledge.d.ts +0 -4
  1167. package/dist/web/routes/knowledge.d.ts.map +0 -1
  1168. package/dist/web/routes/knowledge.js +0 -313
  1169. package/dist/web/routes/knowledge.js.map +0 -1
  1170. package/dist/web/routes/memory.d.ts +0 -7
  1171. package/dist/web/routes/memory.d.ts.map +0 -1
  1172. package/dist/web/routes/memory.js +0 -94
  1173. package/dist/web/routes/memory.js.map +0 -1
  1174. package/dist/web/routes/node-types.d.ts +0 -7
  1175. package/dist/web/routes/node-types.d.ts.map +0 -1
  1176. package/dist/web/routes/node-types.js +0 -192
  1177. package/dist/web/routes/node-types.js.map +0 -1
  1178. package/dist/web/routes/pipelines.d.ts +0 -5
  1179. package/dist/web/routes/pipelines.d.ts.map +0 -1
  1180. package/dist/web/routes/pipelines.js +0 -556
  1181. package/dist/web/routes/pipelines.js.map +0 -1
  1182. package/dist/web/routes/plans.d.ts +0 -5
  1183. package/dist/web/routes/plans.d.ts.map +0 -1
  1184. package/dist/web/routes/plans.js +0 -163
  1185. package/dist/web/routes/plans.js.map +0 -1
  1186. package/dist/web/routes/project-meta.d.ts +0 -8
  1187. package/dist/web/routes/project-meta.d.ts.map +0 -1
  1188. package/dist/web/routes/project-meta.js +0 -63
  1189. package/dist/web/routes/project-meta.js.map +0 -1
  1190. package/dist/web/routes/projects.d.ts +0 -4
  1191. package/dist/web/routes/projects.d.ts.map +0 -1
  1192. package/dist/web/routes/projects.js +0 -156
  1193. package/dist/web/routes/projects.js.map +0 -1
  1194. package/dist/web/routes/quality.d.ts +0 -5
  1195. package/dist/web/routes/quality.d.ts.map +0 -1
  1196. package/dist/web/routes/quality.js +0 -214
  1197. package/dist/web/routes/quality.js.map +0 -1
  1198. package/dist/web/routes/sessions.d.ts +0 -4
  1199. package/dist/web/routes/sessions.d.ts.map +0 -1
  1200. package/dist/web/routes/sessions.js +0 -283
  1201. package/dist/web/routes/sessions.js.map +0 -1
  1202. package/dist/web/routes/skills.d.ts +0 -3
  1203. package/dist/web/routes/skills.d.ts.map +0 -1
  1204. package/dist/web/routes/skills.js +0 -387
  1205. package/dist/web/routes/skills.js.map +0 -1
  1206. package/dist/web/routes/stats.d.ts +0 -4
  1207. package/dist/web/routes/stats.d.ts.map +0 -1
  1208. package/dist/web/routes/stats.js +0 -243
  1209. package/dist/web/routes/stats.js.map +0 -1
  1210. package/dist/web/routes/templates.d.ts +0 -4
  1211. package/dist/web/routes/templates.d.ts.map +0 -1
  1212. package/dist/web/routes/templates.js +0 -117
  1213. package/dist/web/routes/templates.js.map +0 -1
  1214. package/dist/web/sse-broadcaster.d.ts +0 -23
  1215. package/dist/web/sse-broadcaster.d.ts.map +0 -1
  1216. package/dist/web/sse-broadcaster.js +0 -73
  1217. package/dist/web/sse-broadcaster.js.map +0 -1
  1218. package/dist/web/utils/error-response.d.ts +0 -23
  1219. package/dist/web/utils/error-response.d.ts.map +0 -1
  1220. package/dist/web/utils/error-response.js +0 -26
  1221. package/dist/web/utils/error-response.js.map +0 -1
  1222. package/dist/web/utils/errors.d.ts +0 -31
  1223. package/dist/web/utils/errors.d.ts.map +0 -1
  1224. package/dist/web/utils/errors.js +0 -56
  1225. package/dist/web/utils/errors.js.map +0 -1
  1226. package/dist/web/utils/path-validation.d.ts +0 -20
  1227. package/dist/web/utils/path-validation.d.ts.map +0 -1
  1228. package/dist/web/utils/path-validation.js +0 -55
  1229. package/dist/web/utils/path-validation.js.map +0 -1
  1230. package/dist/web/utils/validation.d.ts +0 -112
  1231. package/dist/web/utils/validation.d.ts.map +0 -1
  1232. package/dist/web/utils/validation.js +0 -185
  1233. package/dist/web/utils/validation.js.map +0 -1
  1234. package/dist/web-static/assets/Analytics-Bo_OyY9A.js +0 -36
  1235. package/dist/web-static/assets/BatchProgress-qW-6664M.js +0 -1
  1236. package/dist/web-static/assets/Breadcrumb-C1Mua6se.js +0 -1
  1237. package/dist/web-static/assets/Config-Dn-dtdo9.js +0 -1
  1238. package/dist/web-static/assets/ConfirmDialog-bdDaAlT1.js +0 -1
  1239. package/dist/web-static/assets/Conventions-ByV7r45c.js +0 -1
  1240. package/dist/web-static/assets/Dashboard-C-7N8kYZ.js +0 -1
  1241. package/dist/web-static/assets/ErrorState-CMLoMrQY.js +0 -1
  1242. package/dist/web-static/assets/Events-DHuyQHQe.js +0 -1
  1243. package/dist/web-static/assets/Evolution-Dzr5xOLD.js +0 -1
  1244. package/dist/web-static/assets/Knowledge-ClwX4cnr.js +0 -2
  1245. package/dist/web-static/assets/MiniCharts-DsV2Sqfk.js +0 -1
  1246. package/dist/web-static/assets/NodeTypes-DFt8b5gi.js +0 -1
  1247. package/dist/web-static/assets/Pagination-CR-eJz36.js +0 -1
  1248. package/dist/web-static/assets/PipelineDetail-By1HJlaB.js +0 -4
  1249. package/dist/web-static/assets/Pipelines--MGzCPtR.js +0 -2
  1250. package/dist/web-static/assets/ProjectDetail-CrpekCeY.js +0 -1
  1251. package/dist/web-static/assets/Projects-Dw1qYmjz.js +0 -1
  1252. package/dist/web-static/assets/Quality-CYwODfQP.js +0 -3
  1253. package/dist/web-static/assets/SessionDetail-c8MYnwnk.js +0 -1
  1254. package/dist/web-static/assets/Sessions-BkDd4Mxb.js +0 -2
  1255. package/dist/web-static/assets/Skeleton-DbL04wuz.js +0 -1
  1256. package/dist/web-static/assets/Skills-2OPSAnaU.js +0 -1
  1257. package/dist/web-static/assets/TemplateDetail-DbifRj4h.js +0 -1
  1258. package/dist/web-static/assets/Templates-CDw-GGp8.js +0 -1
  1259. package/dist/web-static/assets/Toast-CrwuIbKC.js +0 -1
  1260. package/dist/web-static/assets/client-C_VWY70M.js +0 -1
  1261. package/dist/web-static/assets/exportCsv-CO51kx6P.js +0 -3
  1262. package/dist/web-static/assets/index-DD2Z15TY.css +0 -2
  1263. package/dist/web-static/assets/index-DKyAorJ6.js +0 -2
  1264. package/dist/web-static/assets/rolldown-runtime-COnpUsM8.js +0 -1
  1265. package/dist/web-static/assets/ui-DpI1N3yJ.js +0 -1
  1266. package/dist/web-static/assets/useDebounce-BLryFdeo.js +0 -1
  1267. package/dist/web-static/assets/vendor-2ObLXPrQ.js +0 -9
  1268. package/dist/web-static/assets/vendor-motion-BryL_tAt.js +0 -9
  1269. package/dist/web-static/assets/vendor-query-CjmRaY7o.js +0 -4
  1270. package/dist/web-static/assets/vendor-react-DZi7brq3.js +0 -11
  1271. package/dist/web-static/index.html +0 -22
  1272. /package/dist/{utils → core/utils}/forge-resume-block.d.ts +0 -0
  1273. /package/dist/{utils → core/utils}/forge-resume-block.js +0 -0
@@ -1,815 +0,0 @@
1
- import { logger } from '../utils/logger.js';
2
- import { PromptRegistry } from '../prompts/registry.js';
3
- import { cacheRegistry } from '../utils/cache-registry.js';
4
- import { PHASE_LABELS } from '../types/core-types.js';
5
- import { IssueTracker } from './issue-tracker.js';
6
- import { PhaseGapDetector } from './phase-gap-detector.js';
7
- import { isNonCodeFile, isLowRiskFile, mapCheckToCategory } from './quality-gate-utils.js';
8
- import { createHash } from 'crypto';
9
- import fs from 'fs';
10
- import { QUALITY_GATE, TIME, CONTENT_LIMIT, CACHE, TRUNCATION } from '../constants.js';
11
- /**
12
- * QualityGateEngine — AI 驱动的质量门禁
13
- *
14
- * 在 PostToolUse 阶段对代码变更进行审查:
15
- * - spec: 是否符合需求规格
16
- * - security: 安全性检查
17
- * - quality: 代码质量
18
- * - test: 测试覆盖
19
- * - performance: 性能问题
20
- *
21
- * 审查策略根据用户反馈自进化:
22
- * - 用户接受的审查意见 → 强化该规则
23
- * - 用户忽略的审查意见 → 弱化该规则
24
- */
25
- export class QualityGateEngine {
26
- api;
27
- storage = null; // v5 新增:持久化支持
28
- currentProjectPath = ''; // v5 新增:当前项目路径
29
- currentSessionId = ''; // v5 新增:当前会话 ID
30
- sessionHistoryRestored = false; // 标记当前会话历史是否已恢复,避免重复恢复
31
- currentRequirement = '';
32
- currentPipelineId = ''; // 当前 Pipeline ID,供 IssueTracker 使用
33
- currentTaskType = 'other';
34
- reviewHistory = [];
35
- checkCount = 0;
36
- static REVIEW_INTERVAL = QUALITY_GATE.REVIEW_INTERVAL; // 每 N 次 Write/Edit 触发 1 次审查
37
- skipPatterns = cacheRegistry.register('quality:skipPatterns', { max: 20, ttl: TIME.WEEK }); // 7天 TTL,Map 模拟 Set
38
- conventionStandards = []; // 当前项目绑定的 Convention 质量规范
39
- static MAX_HISTORY_LENGTH = 50; // 限制历史记录长度,避免内存泄漏
40
- /** AI 审查结果缓存:filePath:contentHash → QualityResult(TTL 1h) */
41
- reviewCache = cacheRegistry.register('quality:reviewCache', { max: CACHE.QUALITY_REVIEW_MAX, ttl: TIME.HOUR });
42
- /** 问题台账:跨阶段追踪所有发现的问题 */
43
- issueTracker = new IssueTracker();
44
- /** 跨阶段补充触发器:供 执行器 在阶段推进时调用 */
45
- phaseGapDetector = new PhaseGapDetector(this.issueTracker);
46
- constructor(api, storage) {
47
- this.api = api;
48
- if (storage) {
49
- this.storage = storage;
50
- }
51
- }
52
- /**
53
- * v5 新增:设置当前会话上下文(用于持久化)
54
- * P1-2 补完:同时恢复 reviewHistory,使跨轮次的忽略计数正确累积
55
- * 优化:检测会话切换,避免同一会话重复恢复历史
56
- *
57
- * @param sessionId - 会话 ID
58
- * @param projectPath - 项目根目录路径
59
- */
60
- setSessionContext(sessionId, projectPath) {
61
- // 检测会话是否切换
62
- const sessionChanged = this.currentSessionId !== sessionId;
63
- this.currentSessionId = sessionId;
64
- this.currentProjectPath = projectPath;
65
- if (this.storage && projectPath) {
66
- // 从数据库加载未过期的抑制规则(每次都加载,因为可能在运行时更新)
67
- this.loadSuppressions(projectPath);
68
- // 只在会话切换时恢复历史,避免重复恢复
69
- if (sessionChanged && !this.sessionHistoryRestored) {
70
- this.restoreSessionHistory(sessionId, projectPath);
71
- this.sessionHistoryRestored = true;
72
- }
73
- }
74
- }
75
- /**
76
- * v5 新增:从数据库加载未过期的抑制规则
77
- */
78
- loadSuppressions(projectPath) {
79
- if (!this.storage)
80
- return;
81
- try {
82
- const categories = this.storage.getActiveSuppressions(projectPath);
83
- categories.forEach(c => this.skipPatterns.set(c, true));
84
- if (categories.length > 0) {
85
- logger.info(`[Forge:质量检查] 跳过 ${categories.length} 类检查:${categories.join(', ')}(用户已标记为"不再检查")`);
86
- }
87
- }
88
- catch (err) {
89
- logger.warn(`[Forge:质量检查] 加载跳过规则失败:${err}`);
90
- }
91
- }
92
- /**
93
- * P1-2 新增:从数据库恢复本次会话的审查历史
94
- * 使 feedback() 的忽略计数在重启后仍能正确累积,最终触发自动抑制
95
- */
96
- restoreSessionHistory(sessionId, projectPath) {
97
- if (!this.storage)
98
- return;
99
- try {
100
- const rows = this.storage.getSessionQualityHistory(sessionId, projectPath);
101
- if (rows.length === 0)
102
- return;
103
- // 按文件路径分组,重建 reviewHistory 结构
104
- // 同一文件的所有 check 聚合为一条 QualityResult
105
- const fileMap = new Map();
106
- for (const row of rows) {
107
- const entry = fileMap.get(row.file_path) ?? { checks: [], resolved: false };
108
- entry.checks.push({
109
- category: row.category,
110
- level: row.level,
111
- message: row.message,
112
- });
113
- if (row.resolved)
114
- entry.resolved = true;
115
- fileMap.set(row.file_path, entry);
116
- }
117
- for (const [filePath, { checks, resolved }] of fileMap) {
118
- const level = checks.some(c => c.level === 'fail') ? 'fail'
119
- : checks.some(c => c.level === 'warn') ? 'warn' : 'pass';
120
- this.reviewHistory.push({
121
- result: { level, checks, summary: `[已恢复] ${filePath}` },
122
- accepted: level === 'pass',
123
- filePath,
124
- resolved,
125
- });
126
- }
127
- logger.info(`[Forge:质量检查] 恢复了 ${fileMap.size} 个文件的检查记录(跨会话保留)`);
128
- }
129
- catch (err) {
130
- logger.warn(`[Forge:质量检查] 恢复检查记录失败:${err}`);
131
- }
132
- }
133
- /**
134
- * 设置当前需求(从 Pipeline 获取)
135
- *
136
- * @param requirement - 用户需求描述
137
- */
138
- setRequirement(requirement) {
139
- this.currentRequirement = requirement;
140
- }
141
- /**
142
- * 设置当前任务类型(影响质量检查策略)
143
- *
144
- * @param taskType - 任务类型(如 'feature', 'bugfix', 'refactor' 等)
145
- */
146
- setTaskType(taskType) {
147
- this.currentTaskType = taskType;
148
- }
149
- /**
150
- * 设置当前 Pipeline ID(供 IssueTracker 使用)
151
- *
152
- * @param pipelineId - Pipeline 唯一标识符
153
- */
154
- setPipelineId(pipelineId) {
155
- this.currentPipelineId = pipelineId;
156
- }
157
- /**
158
- * 返回问题台账(供 PipelineReportGenerator 使用)
159
- *
160
- * @returns IssueTracker 实例
161
- */
162
- getIssueTracker() {
163
- return this.issueTracker;
164
- }
165
- /**
166
- * 设置当前项目绑定的 Convention 质量规范
167
- * must 级别规范将在 reviewForPhase 中作为强制检查维度注入
168
- *
169
- * @param standards - 质量规范数组
170
- */
171
- setConventionStandards(standards) {
172
- this.conventionStandards = standards;
173
- }
174
- /**
175
- * 审查代码变更
176
- * 只对 Write/Edit 操作触发,且有节流控制(每 N 次触发 1 次)
177
- *
178
- * @param event - Forge 事件对象,包含工具名称、文件路径、内容等
179
- * @returns 审查结果对象,不满足触发条件时返回 null
180
- */
181
- async review(event) {
182
- const toolName = event.tool_name || '';
183
- // 只审查写入操作
184
- if (toolName !== 'Write' && toolName !== 'Edit')
185
- return null;
186
- // 节流:每 REVIEW_INTERVAL 次 Write/Edit 才触发 1 次审查
187
- this.checkCount++;
188
- if (this.checkCount % QualityGateEngine.REVIEW_INTERVAL !== 0)
189
- return null;
190
- const input = event.tool_input || {};
191
- const filePath = input.file_path || '';
192
- let content = input.content ||
193
- input.new_string || '';
194
- // 跳过非代码文件
195
- if (isNonCodeFile(filePath))
196
- return null;
197
- // 跳过低风险文件:测试文件、配置文件无需质量审查
198
- if (isLowRiskFile(filePath))
199
- return null;
200
- // Edit 操作:提取 diff 用于增量审查,同时读取完整文件作为回退
201
- let diff;
202
- if (toolName === 'Edit' && filePath) {
203
- const oldStr = input.old_string || '';
204
- const newStr = input.new_string || '';
205
- if (oldStr && newStr) {
206
- diff = { oldStr, newStr };
207
- }
208
- // 读取完整文件作为回退(增量审查失败时使用)
209
- try {
210
- const fullContent = fs.readFileSync(filePath, 'utf-8');
211
- if (fullContent.length > 0)
212
- content = fullContent;
213
- }
214
- catch { /* 读取失败时回退到 new_string */ }
215
- }
216
- // 跳过太短的变更
217
- if (content.length < 50 && (!diff || (diff.oldStr.length + diff.newStr.length) < 50))
218
- return null;
219
- try {
220
- return await this.aiReview(filePath, content, toolName, diff);
221
- }
222
- catch (err) {
223
- logger.warn(`[Forge:质量检查] 检查出错:${err}`);
224
- return null;
225
- }
226
- }
227
- /**
228
- * v5 新增:检测用户是否修复了历史问题
229
- * v6 增强:支持部分修复检测(不仅仅是全文件通过)
230
- */
231
- markHistoricalIssuesResolved(filePath, result) {
232
- if (!this.storage)
233
- return;
234
- try {
235
- // 查询该文件的未解决问题
236
- const unresolvedIssues = this.storage.getUnresolvedIssues(filePath);
237
- if (unresolvedIssues.length === 0)
238
- return;
239
- // 收集本次检查中出现的问题消息
240
- const currentMessages = new Set(result.checks.map(c => c.message));
241
- // 标记不再出现的问题为已解决(按消息内容匹配)
242
- let resolvedCount = 0;
243
- for (const issue of unresolvedIssues) {
244
- if (!currentMessages.has(issue.message)) {
245
- this.storage.markQualityIssueResolvedByMessage(filePath, issue.message);
246
- resolvedCount++;
247
- }
248
- }
249
- // 更新内存中的 reviewHistory
250
- if (resolvedCount > 0) {
251
- for (const h of this.reviewHistory) {
252
- if (h.filePath === filePath && !currentMessages.has(h.result.summary)) {
253
- h.resolved = true;
254
- }
255
- }
256
- logger.info(`[Forge:质量检查] ${filePath} 自动解决了 ${resolvedCount} 个历史问题`);
257
- }
258
- }
259
- catch (err) {
260
- logger.warn(`[Forge:质量检查] 标记问题修复失败:${err}`);
261
- }
262
- }
263
- /**
264
- * AI 驱动的代码审查
265
- * @param diff Edit 操作的变更摘要(old_string → new_string),有则优先用于增量审查
266
- */
267
- async aiReview(filePath, content, operation, diff) {
268
- // 增量审查:Edit 操作优先只审查 diff 部分,大幅缩短 prompt
269
- // 当 diff 较小时使用增量模式,否则回退到全文审查
270
- const useIncrementalReview = diff && (diff.oldStr.length + diff.newStr.length) < CONTENT_LIMIT.INCREMENTAL_REVIEW_DIFF;
271
- const reviewContent = useIncrementalReview
272
- ? `[增量审查] 只审查本次变更部分:\n旧:\n${diff.oldStr}\n新:\n${diff.newStr}`
273
- : content;
274
- // 缓存键:filePath + content hash(增量模式用 diff hash)
275
- const hashInput = useIncrementalReview ? `${diff.oldStr}:${diff.newStr}` : content;
276
- const contentHash = createHash('sha256').update(hashInput).digest('hex').slice(0, 16);
277
- const cacheKey = `${filePath}:${contentHash}`;
278
- const cached = this.reviewCache.get(cacheKey);
279
- if (cached) {
280
- logger.debug(`[质量门禁] 命中缓存:${filePath}`);
281
- return cached;
282
- }
283
- // 构建审查上下文
284
- const suppressedCategories = Array.from(this.skipPatterns.keys());
285
- const requirementSection = this.currentRequirement ? `## 需求规格\n${this.currentRequirement}` : '';
286
- const suppressedSection = suppressedCategories.length > 0 ? `## 已抑制的检查类别(不要重复提)\n${suppressedCategories.join(', ')}` : '';
287
- // 截断:增量模式已经很短,全文模式限制字符
288
- const truncatedContent = useIncrementalReview
289
- ? reviewContent
290
- : (reviewContent.length > TRUNCATION.QUALITY_GATE_CONTENT ? reviewContent.substring(0, TRUNCATION.QUALITY_GATE_CONTENT) + '\n... (内容已截断)' : reviewContent);
291
- const prompt = PromptRegistry.load('quality-review', {
292
- operation: useIncrementalReview ? `${operation}(增量)` : operation,
293
- filePath,
294
- content: truncatedContent,
295
- requirementSection,
296
- suppressedSection,
297
- });
298
- logger.debug(`[质量门禁] 正在审查 ${filePath}${useIncrementalReview ? '(增量模式)' : ''}…`);
299
- const response = await this.api.complete(prompt, 'quality-gate');
300
- let result;
301
- try {
302
- result = this.parseResult(response, filePath);
303
- }
304
- catch (err) {
305
- // AI 响应解析失败,跳过本次检查,不计入统计
306
- logger.warn(`[Forge:质量检查] ${filePath} 解析失败,跳过本次检查`);
307
- return null;
308
- }
309
- // 缓存结果
310
- this.reviewCache.set(cacheKey, result);
311
- // v5 新增:检测历史问题是否已修复
312
- this.markHistoricalIssuesResolved(filePath, result);
313
- // v5 新增:记录到数据库
314
- if (this.storage && this.currentSessionId && this.currentProjectPath) {
315
- for (const check of result.checks) {
316
- if (check.level !== 'pass') {
317
- const id = `qgh_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;
318
- this.storage.insertQualityGateHistory({
319
- id,
320
- session_id: this.currentSessionId,
321
- project_path: this.currentProjectPath,
322
- file_path: filePath,
323
- category: check.category,
324
- level: check.level,
325
- message: check.message,
326
- pipeline_id: this.currentPipelineId || undefined,
327
- });
328
- }
329
- }
330
- }
331
- // 问题台账:追踪 fail/warn 问题,并处理修复循环
332
- if (this.currentPipelineId && result.level !== 'pass') {
333
- // 尝试将已有 open 问题标记为 resolved(同文件 pass 时)
334
- // 此处 result.level !== 'pass',所以只处理新问题
335
- for (const check of result.checks.filter(c => c.level !== 'pass')) {
336
- const category = mapCheckToCategory(check.category, 'code');
337
- const existing = this.issueTracker.getOpenByPhase(this.currentPipelineId, 'code')
338
- .find(i => i.filePath === filePath && i.category === category && i.message === check.message);
339
- if (existing) {
340
- // 已有相同问题,增加修复尝试次数并处理修复循环
341
- const attempts = this.issueTracker.incrementFixAttempts(existing.id);
342
- const fixDirective = this.handleFailIssue(existing.id, attempts, result, filePath);
343
- if (fixDirective && result.directive) {
344
- result.directive = fixDirective + '\n\n' + result.directive;
345
- }
346
- else if (fixDirective) {
347
- result.directive = fixDirective;
348
- }
349
- }
350
- else {
351
- // 新问题,加入台账
352
- this.issueTracker.add(this.currentPipelineId, 'code', category, check.level, check.message, check.suggestion, filePath);
353
- }
354
- }
355
- }
356
- return result;
357
- }
358
- /**
359
- * 根据审查结果生成注入指令
360
- */
361
- generateDirective(result, filePath) {
362
- if (result.level === 'pass')
363
- return null;
364
- const parts = [];
365
- const mustFix = result.checks.filter(c => c.level === 'fail');
366
- const shouldFix = result.checks.filter(c => c.level === 'warn');
367
- // 标题:区分必须修复和建议修复
368
- if (mustFix.length > 0) {
369
- parts.push(`[Forge QualityGate] ❌ 必须修复(${mustFix.length}个)/ 建议修复(${shouldFix.length}个)`);
370
- }
371
- else {
372
- parts.push(`[Forge QualityGate] ⚠️ 建议修复(${shouldFix.length}个)`);
373
- }
374
- parts.push(`文件: ${filePath}`);
375
- parts.push('');
376
- // 必须修复:红色标记,带编号和快速修复建议
377
- if (mustFix.length > 0) {
378
- parts.push('🔴 立即修复:');
379
- mustFix.forEach((check, idx) => {
380
- parts.push(` ${idx + 1}. [${check.category}] ${check.message}`);
381
- if (check.suggestion) {
382
- // 将建议拆分为步骤(如果包含换行或编号)
383
- const suggestionLines = check.suggestion.split('\n').filter(l => l.trim());
384
- if (suggestionLines.length > 1) {
385
- parts.push(` 💡 修复步骤:`);
386
- suggestionLines.forEach(line => parts.push(` ${line.trim()}`));
387
- }
388
- else {
389
- parts.push(` 💡 ${check.suggestion}`);
390
- }
391
- }
392
- });
393
- }
394
- // 建议修复:黄色标记,不阻断
395
- if (shouldFix.length > 0) {
396
- if (mustFix.length > 0)
397
- parts.push('');
398
- parts.push('🟡 建议修复(不阻断):');
399
- shouldFix.forEach((check, idx) => {
400
- parts.push(` ${idx + 1}. [${check.category}] ${check.message}`);
401
- });
402
- }
403
- if (result.level === 'fail') {
404
- parts.push('');
405
- parts.push('请立即修复以上 🔴 标记的问题再继续。');
406
- }
407
- return parts.join('\n');
408
- }
409
- /**
410
- * 反馈:用户是否接受了审查意见
411
- */
412
- feedback(accepted, categories) {
413
- if (!accepted && categories) {
414
- // v5 修改:持久化抑制计数
415
- for (const cat of categories) {
416
- if (this.storage && this.currentProjectPath) {
417
- this.storage.incrementSuppressionCount(cat, this.currentProjectPath);
418
- }
419
- // 连续 N 次忽略同一类别,自动抑制(配置天数后恢复)
420
- const ignoreCount = this.reviewHistory
421
- .filter(h => !h.accepted && h.result.checks.some(c => c.category === cat))
422
- .length;
423
- if (ignoreCount >= QUALITY_GATE.SUPPRESSION_THRESHOLD) {
424
- this.skipPatterns.set(cat, true);
425
- logger.info(`[Forge:质量检查] 不再检查 ${cat} 类问题(已忽略 ${ignoreCount} 次,${QUALITY_GATE.SUPPRESSION_EXPIRE_DAYS} 天后自动恢复)`);
426
- }
427
- }
428
- }
429
- }
430
- /**
431
- * 生成阶段性质量报告
432
- */
433
- generateReport() {
434
- if (this.reviewHistory.length === 0)
435
- return '暂无审查记录。';
436
- // 统一按检查项级别统计(而非文件级别),与分类统计保持一致
437
- let totalChecks = 0;
438
- let passedChecks = 0;
439
- let warnedChecks = 0;
440
- let failedChecks = 0;
441
- const categoryStats = {};
442
- for (const h of this.reviewHistory) {
443
- for (const check of h.result.checks) {
444
- totalChecks++;
445
- if (check.level === 'pass')
446
- passedChecks++;
447
- else if (check.level === 'warn')
448
- warnedChecks++;
449
- else if (check.level === 'fail')
450
- failedChecks++;
451
- if (!categoryStats[check.category]) {
452
- categoryStats[check.category] = { total: 0, issues: 0 };
453
- }
454
- categoryStats[check.category].total++;
455
- if (check.level !== 'pass')
456
- categoryStats[check.category].issues++;
457
- }
458
- }
459
- const lines = [
460
- '## Forge 质量报告',
461
- '',
462
- `检查项: ${totalChecks} | 通过: ${passedChecks} | 警告: ${warnedChecks} | 失败: ${failedChecks}`,
463
- `通过率: ${totalChecks > 0 ? ((passedChecks / totalChecks) * 100).toFixed(0) : 0}%`,
464
- '',
465
- '### 按类别统计',
466
- ];
467
- for (const [cat, stats] of Object.entries(categoryStats)) {
468
- const rate = ((1 - stats.issues / stats.total) * 100).toFixed(0);
469
- lines.push(`- ${cat}: ${rate}% 通过 (${stats.issues}/${stats.total} 有问题)`);
470
- }
471
- if (this.skipPatterns.size > 0) {
472
- lines.push('');
473
- lines.push(`已自动抑制: ${Array.from(this.skipPatterns.keys()).join(', ')}`);
474
- }
475
- return lines.join('\n');
476
- }
477
- /**
478
- * 返回本次会话中未解决的 fail 级别问题列表
479
- * resolved=true 的条目(后续审查通过的文件)不计入
480
- */
481
- getUnresolvedFailures() {
482
- return this.reviewHistory
483
- .filter(h => h.result.level === 'fail' && !h.resolved)
484
- .map(h => ({ summary: h.result.summary, checks: h.result.checks.filter(c => c.level === 'fail') }));
485
- }
486
- /**
487
- * 返回本次会话质量门禁通过次数(pass + warn)
488
- * 必须在 reset() 之前调用
489
- */
490
- getPassCount() {
491
- return this.reviewHistory.filter(h => h.result.level === 'pass' || h.result.level === 'warn').length;
492
- }
493
- /**
494
- * 返回本次会话质量门禁失败次数
495
- * 必须在 reset() 之前调用
496
- */
497
- getFailCount() {
498
- return this.reviewHistory.filter(h => h.result.level === 'fail').length;
499
- }
500
- /**
501
- * 重置(新 Pipeline 开始时)
502
- */
503
- reset() {
504
- if (this.currentPipelineId) {
505
- this.issueTracker.resetForPipeline(this.currentPipelineId);
506
- }
507
- this.currentRequirement = '';
508
- this.currentPipelineId = '';
509
- this.currentTaskType = 'other';
510
- this.reviewHistory = [];
511
- this.checkCount = 0;
512
- this.sessionHistoryRestored = false; // 重置恢复标志,允许新会话恢复历史
513
- // skipPatterns 保留(跨 Pipeline 学习)
514
- }
515
- /**
516
- * 基于阶段描述的质量门禁(无需 Write/Edit 事件,适用于 analyze/design 等文本输出阶段)
517
- * 返回 null 表示无需拦截(AI 调用失败时 fail-safe 放行)
518
- */
519
- async reviewPhaseCompletion(phase, requirement, phaseContext) {
520
- const mandatoryCategories = this.getMandatoryCategoriesForPhase(phase);
521
- if (mandatoryCategories.length === 0)
522
- return null;
523
- const mustRules = this.conventionStandards.filter(s => s.severity === 'must' &&
524
- (!s.phases || s.phases.length === 0 || s.phases.includes(phase)));
525
- const mandatoryNote = `## 本阶段(${phase})必须通过的检查维度\n${mandatoryCategories.join(', ')}`;
526
- const taskTypeNote = this.currentTaskType === 'documentation'
527
- ? `\n## 任务类型:文档类任务\n- 重点检查文档完整性、结构清晰度、是否覆盖需求\n- 不要求代码实现、测试覆盖、安全检查\n- 如果文档已生成且内容合理,应判定为 pass`
528
- : '';
529
- const conventionNote = mustRules.length > 0
530
- ? `\n## 项目规范强制要求(must 级别,违反即 fail)\n${mustRules.map(r => {
531
- const source = r.conventionName ? ` [来源: ${r.conventionName}]` : '';
532
- return `- [${r.category}] ${r.rule}${source}`;
533
- }).join('\n')}`
534
- : '';
535
- const prompt = PromptRegistry.load('quality-phase-completion', {
536
- requirement,
537
- phase,
538
- phaseContext,
539
- mandatoryNote,
540
- taskTypeNote,
541
- conventionNote,
542
- });
543
- // 最多重试 2 次(首次 + 1 次重试)
544
- for (let attempt = 1; attempt <= 2; attempt++) {
545
- try {
546
- const response = await this.api.complete(prompt, 'quality-gate-phase-completion');
547
- const result = this.parseResult(response, `[${phase}阶段]`);
548
- logger.info(`[Forge:质量检查] ${PHASE_LABELS[phase]}阶段检查完成:${result.level} — ${result.summary}`);
549
- // 问题台账:追踪 fail/warn 问题
550
- if (this.currentPipelineId && result.level !== 'pass') {
551
- for (const check of result.checks.filter(c => c.level !== 'pass')) {
552
- const category = mapCheckToCategory(check.category, phase);
553
- this.issueTracker.add(this.currentPipelineId, phase, category, check.level, check.message, check.suggestion);
554
- }
555
- }
556
- return result;
557
- }
558
- catch (err) {
559
- if (attempt < 2) {
560
- logger.warn(`[质量门禁] 阶段完成度检查失败(第 ${attempt} 次),重试中:${err}`);
561
- await new Promise(r => setTimeout(r, TIME.THREE_SECONDS));
562
- }
563
- else {
564
- // 两次均失败:返回 null 放行(fail-safe),避免 AI 故障导致 Pipeline 永久阻断
565
- logger.warn(`[质量门禁] 阶段完成度检查连续失败,降级放行:${err}`);
566
- return null;
567
- }
568
- }
569
- }
570
- // TypeScript 要求:实际不可达,但需要返回值
571
- return null;
572
- }
573
- /**
574
- * 阶段完成时的质量门禁检查(每阶段触发一次,非每次 Write/Edit)
575
- * 返回 null 表示不适用(工具类型不匹配、非代码文件等);失败时返回 warn 而非静默放行
576
- */
577
- async reviewForPhase(event, phase) {
578
- const toolName = event.tool_name || '';
579
- if (toolName !== 'Write' && toolName !== 'Edit')
580
- return null;
581
- const input = event.tool_input || {};
582
- const filePath = input.file_path || '';
583
- let content = input.content ||
584
- input.new_string || '';
585
- // Edit 操作:从磁盘读取完整文件内容(PostToolUse 时文件已更新)
586
- // 避免 AI 只看到 new_string 片段而误判"未找到实现代码"
587
- if (toolName === 'Edit' && filePath) {
588
- try {
589
- const fullContent = fs.readFileSync(filePath, 'utf-8');
590
- if (fullContent.length > 0)
591
- content = fullContent;
592
- }
593
- catch { /* 读取失败时回退到 new_string */ }
594
- }
595
- if (isNonCodeFile(filePath))
596
- return null;
597
- if (content.length < 50)
598
- return null;
599
- const mandatoryCategories = this.getMandatoryCategoriesForPhase(phase);
600
- // 启动日志:显示检查项目
601
- const checkItems = mandatoryCategories.length > 0
602
- ? mandatoryCategories.join('、')
603
- : '规范符合性、安全性、代码质量';
604
- logger.info(`[Forge:质量检查] 正在检查 ${filePath}\n 检查项:${checkItems}`);
605
- // Convention must-severity 规范:作为额外强制检查条目注入
606
- const mustRules = this.conventionStandards.filter(s => s.severity === 'must' &&
607
- (!s.phases || s.phases.length === 0 || s.phases.includes(phase)));
608
- const suppressedCategories = Array.from(this.skipPatterns.keys());
609
- const mandatoryNote = mandatoryCategories.length > 0
610
- ? `\n## 本阶段(${phase})必须通过的检查维度\n${mandatoryCategories.join(', ')}`
611
- : '';
612
- const conventionNote = mustRules.length > 0
613
- ? `\n## 项目规范强制要求(must 级别,违反即 fail)\n${mustRules.map(r => {
614
- const source = r.conventionName ? ` [来源: ${r.conventionName}]` : '';
615
- return `- [${r.category}] ${r.rule}${source}`;
616
- }).join('\n')}`
617
- : '';
618
- const requirementSection = this.currentRequirement ? `## 需求规格\n${this.currentRequirement}` : '';
619
- const suppressedSection = suppressedCategories.length > 0 ? `## 已抑制的检查类别\n${suppressedCategories.join(', ')}` : '';
620
- // 任务类型注释:文档/UI 类任务豁免测试覆盖和安全检查
621
- const taskTypeNote = (this.currentTaskType === 'documentation')
622
- ? `\n## 任务类型:文档类任务\n- 重点检查文档完整性、结构清晰度、是否覆盖需求\n- 不要求代码实现、测试覆盖、安全检查\n- 如果文档已生成且内容合理,应判定为 pass`
623
- : '';
624
- // Edit 操作:附加 diff 摘要,帮助 AI 理解本次变更的具体内容
625
- let diffContext = '';
626
- if (toolName === 'Edit') {
627
- const oldStr = input.old_string || '';
628
- const newStr = input.new_string || '';
629
- if (oldStr && newStr) {
630
- const oldPreview = oldStr.length > TRUNCATION.QUALITY_GATE_PREVIEW ? oldStr.substring(0, TRUNCATION.QUALITY_GATE_PREVIEW) + '…' : oldStr;
631
- const newPreview = newStr.length > TRUNCATION.QUALITY_GATE_PREVIEW ? newStr.substring(0, TRUNCATION.QUALITY_GATE_PREVIEW) + '…' : newStr;
632
- diffContext = `\n## 本次变更摘要(Edit 操作)\n旧内容:\n\`\`\`\n${oldPreview}\n\`\`\`\n新内容:\n\`\`\`\n${newPreview}\n\`\`\``;
633
- }
634
- }
635
- // 截断阈值,避免大文件被截断导致误判
636
- const truncatedContent = content.length > TRUNCATION.QUALITY_GATE_CONTENT
637
- ? content.substring(0, TRUNCATION.QUALITY_GATE_CONTENT) + '\n... (内容已截断,请基于已见部分判断)'
638
- : content;
639
- const prompt = PromptRegistry.load('quality-phase-review', {
640
- toolName,
641
- filePath,
642
- content: truncatedContent,
643
- requirementSection,
644
- mandatoryNote,
645
- conventionNote,
646
- suppressedSection,
647
- taskTypeNote,
648
- diffContext,
649
- });
650
- // 最多重试 2 次(首次 + 1 次重试)
651
- for (let attempt = 1; attempt <= 2; attempt++) {
652
- try {
653
- const response = await this.api.complete(prompt, 'quality-gate-phase');
654
- const result = this.parseResult(response, filePath);
655
- logger.info(`[Forge:质量检查] ${PHASE_LABELS[phase]}阶段代码检查完成:${result.level} — ${result.summary}`);
656
- return result;
657
- }
658
- catch (err) {
659
- if (attempt < 2) {
660
- logger.warn(`[Forge:质量检查] ${PHASE_LABELS[phase]}阶段代码检查出错(第 ${attempt} 次),正在重试:${err}`);
661
- await new Promise(r => setTimeout(r, TIME.THREE_SECONDS));
662
- }
663
- else {
664
- // 两次均失败:返回 null 放行(fail-safe),避免 AI 故障导致 Pipeline 永久阻断
665
- logger.warn(`[Forge:质量检查] ${PHASE_LABELS[phase]}阶段代码检查连续失败,跳过检查继续推进:${err}`);
666
- return null;
667
- }
668
- }
669
- }
670
- // TypeScript 要求:实际不可达,但需要返回值
671
- return null;
672
- }
673
- getMandatoryCategoriesForPhase(phase) {
674
- // documentation 类型:只检查 spec(文档完整性),不检查 test/security/performance
675
- if (this.currentTaskType === 'documentation') {
676
- switch (phase) {
677
- case 'analyze': return ['spec'];
678
- case 'design': return ['spec', 'quality'];
679
- default: return [];
680
- }
681
- }
682
- switch (phase) {
683
- case 'analyze': return ['spec'];
684
- case 'design': return ['spec', 'quality'];
685
- case 'code': return ['security', 'quality'];
686
- case 'test': return ['test'];
687
- case 'review': return ['security', 'quality', 'spec', 'test'];
688
- default: return [];
689
- }
690
- }
691
- /**
692
- * 主动修复循环:根据修复尝试次数决定响应策略
693
- * - attempts 1-2:生成修复指令(注入 directive),让 Claude 自己修
694
- * - attempts >= 3:生成 Forge 强制介入指令,标记 forgeFixApplied
695
- * 返回附加的 directive 字符串(或 undefined)
696
- */
697
- handleFailIssue(issueId, attempts, result, filePath) {
698
- const failChecks = result.checks.filter(c => c.level === 'fail');
699
- if (failChecks.length === 0)
700
- return undefined;
701
- if (attempts <= 2) {
702
- // 第 1-2 次:提示优先级升级,让 Claude 专注修复
703
- return `[Forge 质量追踪] 该问题已发现 ${attempts} 次,优先修复后再继续其他工作。`;
704
- }
705
- // 第 3 次及以上:Forge 强制介入提示
706
- this.issueTracker.markForgeFixed(issueId);
707
- const fileRef = filePath ? `文件:${filePath}\n` : '';
708
- return `[Forge 强制介入] 问题已持续 ${attempts} 次未解决,立即停止当前操作,专注修复以下问题:\n${fileRef}${failChecks.map(c => `- ${c.message}${c.suggestion ? `\n 修复方式:${c.suggestion}` : ''}`).join('\n')}`;
709
- }
710
- parseResult(response, filePath) {
711
- const cleaned = response.replace(/```json\s*/g, '').replace(/```\s*/g, '');
712
- const jsonMatch = cleaned.match(/\{[\s\S]*\}/);
713
- if (!jsonMatch) {
714
- logger.warn(`[Forge:质量检查] AI 返回内容无法解析,跳过本次检查`);
715
- logger.debug(`[Forge:质量检查] AI 原始返回:${response.slice(0, 300)}`);
716
- throw new Error('AI response parse failed');
717
- }
718
- const parsed = JSON.parse(jsonMatch[0]);
719
- const rawChecks = (parsed.checks || []).map((c) => ({
720
- category: c.category || 'quality',
721
- level: c.level || 'pass',
722
- message: c.message || '',
723
- suggestion: c.suggestion,
724
- }));
725
- // 抑制过滤:真正过滤掉已抑制类别的 warn 级别问题
726
- // Convention must 规范来源的 fail 永不抑制(conventionName 字段标记)
727
- const suppressedCategories = new Set(this.skipPatterns.keys());
728
- const mustConventionCategories = new Set(this.conventionStandards.filter(s => s.severity === 'must').map(s => s.category));
729
- const filteredChecks = suppressedCategories.size > 0
730
- ? rawChecks.filter(c => {
731
- if (c.level === 'pass')
732
- return true;
733
- // Convention must 规范对应的类别永不抑制
734
- if (mustConventionCategories.has(c.category))
735
- return true;
736
- // 已抑制类别的 warn 过滤掉;fail 保留(用户明确忽略 N 次后才抑制,说明确实不重要)
737
- if (suppressedCategories.has(c.category) && c.level === 'warn')
738
- return false;
739
- return true;
740
- })
741
- : rawChecks;
742
- // 重新计算整体 level(过滤后)
743
- const effectiveLevel = filteredChecks.some(c => c.level === 'fail') ? 'fail'
744
- : filteredChecks.some(c => c.level === 'warn') ? 'warn' : 'pass';
745
- // 检查是否违反 must 规范(硬阻断条件)
746
- // 匹配策略:以 category 为主键。AI 审查返回的 check.category 与 Convention
747
- // quality_standards 的 category 共享同一枚举空间(spec/security/quality/test/performance),
748
- // 只要 fail 级别的 check.category 命中任意 must 规范的 category,即视为违反。
749
- const mustRules = this.conventionStandards.filter(s => s.severity === 'must');
750
- const criticalIssues = [];
751
- let hasBlockingIssue = false;
752
- if (effectiveLevel === 'fail' && mustRules.length > 0) {
753
- // 收集所有 fail 级别 check 命中的 must 规范(按 category 精确匹配,去重)
754
- const seenCategories = new Set();
755
- for (const check of filteredChecks.filter(c => c.level === 'fail')) {
756
- const matchedRules = mustRules.filter(r => r.category === check.category);
757
- for (const matchedRule of matchedRules) {
758
- const dedupeKey = `${matchedRule.category}:${matchedRule.rule}`;
759
- if (!seenCategories.has(dedupeKey)) {
760
- seenCategories.add(dedupeKey);
761
- hasBlockingIssue = true;
762
- criticalIssues.push({
763
- category: matchedRule.category,
764
- rule: matchedRule.rule,
765
- conventionName: matchedRule.conventionName,
766
- });
767
- }
768
- }
769
- }
770
- }
771
- const result = {
772
- level: effectiveLevel,
773
- checks: filteredChecks,
774
- summary: parsed.summary || '审查完成',
775
- blocking: hasBlockingIssue, // ✅ 设置硬阻断标记
776
- criticalIssues: criticalIssues.length > 0 ? criticalIssues : undefined,
777
- };
778
- // 生成 directive
779
- result.directive = this.generateDirective(result, filePath) || undefined;
780
- // 如果本次审查通过,将同一文件的历史 fail 标记为已解决
781
- if (result.level === 'pass') {
782
- for (const h of this.reviewHistory) {
783
- if (h.filePath === filePath && h.result.level === 'fail' && !h.resolved) {
784
- h.resolved = true;
785
- logger.debug(`[质量门禁] ${filePath} 审查通过,历史 fail 已标记为已解决`);
786
- }
787
- }
788
- // 同步更新 issueTracker:将该文件的 open 问题标记为 resolved
789
- if (this.currentPipelineId) {
790
- const openIssues = this.issueTracker.getAll(this.currentPipelineId)
791
- .filter(i => i.filePath === filePath && (i.status === 'open' || i.status === 'in_progress'));
792
- for (const issue of openIssues) {
793
- this.issueTracker.resolve(issue.id, 'code');
794
- }
795
- }
796
- }
797
- // 记录历史(环形缓冲,防止内存无限增长)
798
- // accepted: fail 时为 false,供 feedback() 统计误报率
799
- this.reviewHistory.push({ result, accepted: result.level !== 'fail', filePath, resolved: false });
800
- if (this.reviewHistory.length > QualityGateEngine.MAX_HISTORY_LENGTH) {
801
- this.reviewHistory = this.reviewHistory.slice(-QualityGateEngine.MAX_HISTORY_LENGTH);
802
- }
803
- // 结构化日志:本次审查结果
804
- const passCount = result.checks.filter(c => c.level === 'pass').length;
805
- const warnCount = result.checks.filter(c => c.level === 'warn').length;
806
- const failCount = result.checks.filter(c => c.level === 'fail').length;
807
- logger.info(`[Forge:质量检查] ${filePath} | 通过=${passCount} 警告=${warnCount} 不通过=${failCount}`);
808
- // 累计统计降级为 debug(避免与阶段进度混淆)
809
- const totalPass = this.reviewHistory.filter(h => h.result.level === 'pass' || h.result.level === 'warn').length;
810
- const passRate = this.reviewHistory.length > 0 ? Math.round((totalPass / this.reviewHistory.length) * 100) : 0;
811
- logger.debug(`[质量门禁] 会话统计:累计通过率 ${passRate}% (${totalPass}/${this.reviewHistory.length})`);
812
- return result;
813
- }
814
- }
815
- //# sourceMappingURL=quality-gate.js.map