@mcp-graph-workflow/mcp-graph 5.1.5 → 5.3.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 (395) hide show
  1. package/dist/api/router.d.ts +0 -1
  2. package/dist/api/router.d.ts.map +1 -1
  3. package/dist/api/router.js +3 -4
  4. package/dist/api/router.js.map +1 -1
  5. package/dist/api/routes/benchmark.d.ts.map +1 -1
  6. package/dist/api/routes/benchmark.js +47 -2
  7. package/dist/api/routes/benchmark.js.map +1 -1
  8. package/dist/api/routes/code-graph.d.ts +12 -0
  9. package/dist/api/routes/code-graph.d.ts.map +1 -0
  10. package/dist/api/routes/code-graph.js +154 -0
  11. package/dist/api/routes/code-graph.js.map +1 -0
  12. package/dist/api/routes/folder.d.ts +1 -4
  13. package/dist/api/routes/folder.d.ts.map +1 -1
  14. package/dist/api/routes/folder.js +19 -17
  15. package/dist/api/routes/folder.js.map +1 -1
  16. package/dist/api/routes/integrations.d.ts.map +1 -1
  17. package/dist/api/routes/integrations.js +60 -16
  18. package/dist/api/routes/integrations.js.map +1 -1
  19. package/dist/api/routes/knowledge.js +1 -1
  20. package/dist/api/routes/knowledge.js.map +1 -1
  21. package/dist/api/routes/skills.d.ts.map +1 -1
  22. package/dist/api/routes/skills.js +57 -3
  23. package/dist/api/routes/skills.js.map +1 -1
  24. package/dist/cli/commands/index-cmd.js +5 -5
  25. package/dist/cli/commands/index-cmd.js.map +1 -1
  26. package/dist/core/analyzer/ac-parser.d.ts +7 -0
  27. package/dist/core/analyzer/ac-parser.d.ts.map +1 -0
  28. package/dist/core/analyzer/ac-parser.js +67 -0
  29. package/dist/core/analyzer/ac-parser.js.map +1 -0
  30. package/dist/core/analyzer/ac-validator.d.ts +15 -0
  31. package/dist/core/analyzer/ac-validator.d.ts.map +1 -0
  32. package/dist/core/analyzer/ac-validator.js +142 -0
  33. package/dist/core/analyzer/ac-validator.js.map +1 -0
  34. package/dist/core/analyzer/definition-of-ready.d.ts +16 -0
  35. package/dist/core/analyzer/definition-of-ready.d.ts.map +1 -0
  36. package/dist/core/analyzer/definition-of-ready.js +107 -0
  37. package/dist/core/analyzer/definition-of-ready.js.map +1 -0
  38. package/dist/core/analyzer/prd-quality.d.ts +14 -0
  39. package/dist/core/analyzer/prd-quality.d.ts.map +1 -0
  40. package/dist/core/analyzer/prd-quality.js +156 -0
  41. package/dist/core/analyzer/prd-quality.js.map +1 -0
  42. package/dist/core/analyzer/risk-assessment.d.ts +11 -0
  43. package/dist/core/analyzer/risk-assessment.d.ts.map +1 -0
  44. package/dist/core/analyzer/risk-assessment.js +97 -0
  45. package/dist/core/analyzer/risk-assessment.js.map +1 -0
  46. package/dist/core/analyzer/scope-analyzer.d.ts +7 -0
  47. package/dist/core/analyzer/scope-analyzer.d.ts.map +1 -0
  48. package/dist/core/analyzer/scope-analyzer.js +99 -0
  49. package/dist/core/analyzer/scope-analyzer.js.map +1 -0
  50. package/dist/core/code/code-indexer.d.ts +20 -0
  51. package/dist/core/code/code-indexer.d.ts.map +1 -0
  52. package/dist/core/code/code-indexer.js +161 -0
  53. package/dist/core/code/code-indexer.js.map +1 -0
  54. package/dist/core/code/code-search.d.ts +16 -0
  55. package/dist/core/code/code-search.d.ts.map +1 -0
  56. package/dist/core/code/code-search.js +77 -0
  57. package/dist/core/code/code-search.js.map +1 -0
  58. package/dist/core/code/code-store.d.ts +35 -0
  59. package/dist/core/code/code-store.d.ts.map +1 -0
  60. package/dist/core/code/code-store.js +228 -0
  61. package/dist/core/code/code-store.js.map +1 -0
  62. package/dist/core/code/code-types.d.ts +209 -0
  63. package/dist/core/code/code-types.d.ts.map +1 -0
  64. package/dist/core/code/code-types.js +94 -0
  65. package/dist/core/code/code-types.js.map +1 -0
  66. package/dist/core/code/graph-traversal.d.ts +27 -0
  67. package/dist/core/code/graph-traversal.d.ts.map +1 -0
  68. package/dist/core/code/graph-traversal.js +122 -0
  69. package/dist/core/code/graph-traversal.js.map +1 -0
  70. package/dist/core/code/process-detector.d.ts +11 -0
  71. package/dist/core/code/process-detector.d.ts.map +1 -0
  72. package/dist/core/code/process-detector.js +65 -0
  73. package/dist/core/code/process-detector.js.map +1 -0
  74. package/dist/core/code/ts-analyzer.d.ts +12 -0
  75. package/dist/core/code/ts-analyzer.d.ts.map +1 -0
  76. package/dist/core/code/ts-analyzer.js +331 -0
  77. package/dist/core/code/ts-analyzer.js.map +1 -0
  78. package/dist/core/config/ai-memory-generator.d.ts.map +1 -1
  79. package/dist/core/config/ai-memory-generator.js +149 -64
  80. package/dist/core/config/ai-memory-generator.js.map +1 -1
  81. package/dist/core/config/config-loader.d.ts.map +1 -1
  82. package/dist/core/config/config-loader.js +2 -10
  83. package/dist/core/config/config-loader.js.map +1 -1
  84. package/dist/core/config/config-schema.d.ts +1 -2
  85. package/dist/core/config/config-schema.d.ts.map +1 -1
  86. package/dist/core/config/config-schema.js +2 -3
  87. package/dist/core/config/config-schema.js.map +1 -1
  88. package/dist/core/context/compact-context.d.ts +51 -0
  89. package/dist/core/context/compact-context.d.ts.map +1 -1
  90. package/dist/core/context/compact-context.js +292 -0
  91. package/dist/core/context/compact-context.js.map +1 -1
  92. package/dist/core/context/context-assembler.d.ts +4 -1
  93. package/dist/core/context/context-assembler.d.ts.map +1 -1
  94. package/dist/core/context/context-assembler.js +6 -3
  95. package/dist/core/context/context-assembler.js.map +1 -1
  96. package/dist/core/context/rag-context.d.ts +4 -2
  97. package/dist/core/context/rag-context.d.ts.map +1 -1
  98. package/dist/core/context/rag-context.js +8 -5
  99. package/dist/core/context/rag-context.js.map +1 -1
  100. package/dist/core/designer/adr-validator.d.ts +8 -0
  101. package/dist/core/designer/adr-validator.d.ts.map +1 -0
  102. package/dist/core/designer/adr-validator.js +61 -0
  103. package/dist/core/designer/adr-validator.js.map +1 -0
  104. package/dist/core/designer/coupling-analyzer.d.ts +7 -0
  105. package/dist/core/designer/coupling-analyzer.d.ts.map +1 -0
  106. package/dist/core/designer/coupling-analyzer.js +59 -0
  107. package/dist/core/designer/coupling-analyzer.js.map +1 -0
  108. package/dist/core/designer/definition-of-ready.d.ts +8 -0
  109. package/dist/core/designer/definition-of-ready.d.ts.map +1 -0
  110. package/dist/core/designer/definition-of-ready.js +146 -0
  111. package/dist/core/designer/definition-of-ready.js.map +1 -0
  112. package/dist/core/designer/interface-checker.d.ts +7 -0
  113. package/dist/core/designer/interface-checker.d.ts.map +1 -0
  114. package/dist/core/designer/interface-checker.js +53 -0
  115. package/dist/core/designer/interface-checker.js.map +1 -0
  116. package/dist/core/designer/tech-risk-assessor.d.ts +7 -0
  117. package/dist/core/designer/tech-risk-assessor.d.ts.map +1 -0
  118. package/dist/core/designer/tech-risk-assessor.js +95 -0
  119. package/dist/core/designer/tech-risk-assessor.js.map +1 -0
  120. package/dist/core/designer/traceability-matrix.d.ts +8 -0
  121. package/dist/core/designer/traceability-matrix.d.ts.map +1 -0
  122. package/dist/core/designer/traceability-matrix.js +67 -0
  123. package/dist/core/designer/traceability-matrix.js.map +1 -0
  124. package/dist/core/doctor/doctor-checks.d.ts +1 -1
  125. package/dist/core/doctor/doctor-checks.js +21 -21
  126. package/dist/core/doctor/doctor-checks.js.map +1 -1
  127. package/dist/core/events/event-types.d.ts +11 -1
  128. package/dist/core/events/event-types.d.ts.map +1 -1
  129. package/dist/core/handoff/delivery-checklist.d.ts +10 -0
  130. package/dist/core/handoff/delivery-checklist.d.ts.map +1 -0
  131. package/dist/core/handoff/delivery-checklist.js +148 -0
  132. package/dist/core/handoff/delivery-checklist.js.map +1 -0
  133. package/dist/core/handoff/doc-completeness.d.ts +7 -0
  134. package/dist/core/handoff/doc-completeness.d.ts.map +1 -0
  135. package/dist/core/handoff/doc-completeness.js +19 -0
  136. package/dist/core/handoff/doc-completeness.js.map +1 -0
  137. package/dist/core/implementer/definition-of-done.d.ts +11 -0
  138. package/dist/core/implementer/definition-of-done.d.ts.map +1 -0
  139. package/dist/core/implementer/definition-of-done.js +158 -0
  140. package/dist/core/implementer/definition-of-done.js.map +1 -0
  141. package/dist/core/implementer/sprint-progress.d.ts +11 -0
  142. package/dist/core/implementer/sprint-progress.d.ts.map +1 -0
  143. package/dist/core/implementer/sprint-progress.js +80 -0
  144. package/dist/core/implementer/sprint-progress.js.map +1 -0
  145. package/dist/core/implementer/tdd-checker.d.ts +15 -0
  146. package/dist/core/implementer/tdd-checker.d.ts.map +1 -0
  147. package/dist/core/implementer/tdd-checker.js +132 -0
  148. package/dist/core/implementer/tdd-checker.js.map +1 -0
  149. package/dist/core/insights/bottleneck-detector.js +1 -1
  150. package/dist/core/insights/bottleneck-detector.js.map +1 -1
  151. package/dist/core/integrations/enriched-context.d.ts +10 -6
  152. package/dist/core/integrations/enriched-context.d.ts.map +1 -1
  153. package/dist/core/integrations/enriched-context.js +35 -35
  154. package/dist/core/integrations/enriched-context.js.map +1 -1
  155. package/dist/core/integrations/integration-orchestrator.js +2 -2
  156. package/dist/core/integrations/integration-orchestrator.js.map +1 -1
  157. package/dist/core/integrations/mcp-deps-installer.d.ts +1 -1
  158. package/dist/core/integrations/mcp-deps-installer.d.ts.map +1 -1
  159. package/dist/core/integrations/mcp-deps-installer.js +1 -60
  160. package/dist/core/integrations/mcp-deps-installer.js.map +1 -1
  161. package/dist/core/integrations/mcp-servers-config.d.ts +1 -1
  162. package/dist/core/integrations/mcp-servers-config.d.ts.map +1 -1
  163. package/dist/core/integrations/mcp-servers-config.js +0 -17
  164. package/dist/core/integrations/mcp-servers-config.js.map +1 -1
  165. package/dist/core/integrations/tool-status.d.ts +8 -3
  166. package/dist/core/integrations/tool-status.d.ts.map +1 -1
  167. package/dist/core/integrations/tool-status.js +38 -48
  168. package/dist/core/integrations/tool-status.js.map +1 -1
  169. package/dist/core/listener/backlog-health.d.ts +7 -0
  170. package/dist/core/listener/backlog-health.d.ts.map +1 -0
  171. package/dist/core/listener/backlog-health.js +64 -0
  172. package/dist/core/listener/backlog-health.js.map +1 -0
  173. package/dist/core/listener/feedback-readiness.d.ts +11 -0
  174. package/dist/core/listener/feedback-readiness.d.ts.map +1 -0
  175. package/dist/core/listener/feedback-readiness.js +124 -0
  176. package/dist/core/listener/feedback-readiness.js.map +1 -0
  177. package/dist/core/memory/memory-migrator.d.ts +15 -0
  178. package/dist/core/memory/memory-migrator.d.ts.map +1 -0
  179. package/dist/core/memory/memory-migrator.js +64 -0
  180. package/dist/core/memory/memory-migrator.js.map +1 -0
  181. package/dist/core/memory/memory-reader.d.ts +30 -0
  182. package/dist/core/memory/memory-reader.d.ts.map +1 -0
  183. package/dist/core/memory/memory-reader.js +106 -0
  184. package/dist/core/memory/memory-reader.js.map +1 -0
  185. package/dist/core/planner/lifecycle-phase.d.ts +1 -0
  186. package/dist/core/planner/lifecycle-phase.d.ts.map +1 -1
  187. package/dist/core/planner/lifecycle-phase.js +89 -58
  188. package/dist/core/planner/lifecycle-phase.js.map +1 -1
  189. package/dist/core/rag/memory-indexer.d.ts +16 -0
  190. package/dist/core/rag/memory-indexer.d.ts.map +1 -0
  191. package/dist/core/rag/{serena-indexer.js → memory-indexer.js} +12 -12
  192. package/dist/core/rag/memory-indexer.js.map +1 -0
  193. package/dist/core/rag/{serena-rag-query.d.ts → memory-rag-query.d.ts} +11 -9
  194. package/dist/core/rag/memory-rag-query.d.ts.map +1 -0
  195. package/dist/core/rag/{serena-rag-query.js → memory-rag-query.js} +18 -15
  196. package/dist/core/rag/memory-rag-query.js.map +1 -0
  197. package/dist/core/rag/phase-metadata.d.ts +23 -0
  198. package/dist/core/rag/phase-metadata.d.ts.map +1 -0
  199. package/dist/core/rag/phase-metadata.js +72 -0
  200. package/dist/core/rag/phase-metadata.js.map +1 -0
  201. package/dist/core/rag/phase-summary.d.ts +17 -0
  202. package/dist/core/rag/phase-summary.d.ts.map +1 -0
  203. package/dist/core/rag/phase-summary.js +104 -0
  204. package/dist/core/rag/phase-summary.js.map +1 -0
  205. package/dist/core/rag/prd-indexer.d.ts +16 -0
  206. package/dist/core/rag/prd-indexer.d.ts.map +1 -0
  207. package/dist/core/rag/prd-indexer.js +37 -0
  208. package/dist/core/rag/prd-indexer.js.map +1 -0
  209. package/dist/core/rag/skill-indexer.d.ts +16 -0
  210. package/dist/core/rag/skill-indexer.d.ts.map +1 -0
  211. package/dist/core/rag/skill-indexer.js +98 -0
  212. package/dist/core/rag/skill-indexer.js.map +1 -0
  213. package/dist/core/reviewer/review-readiness.d.ts +8 -0
  214. package/dist/core/reviewer/review-readiness.d.ts.map +1 -0
  215. package/dist/core/reviewer/review-readiness.js +159 -0
  216. package/dist/core/reviewer/review-readiness.js.map +1 -0
  217. package/dist/core/skills/built-in-skills.d.ts +26 -0
  218. package/dist/core/skills/built-in-skills.d.ts.map +1 -0
  219. package/dist/core/skills/built-in-skills.js +203 -0
  220. package/dist/core/skills/built-in-skills.js.map +1 -0
  221. package/dist/core/store/knowledge-store.d.ts +10 -1
  222. package/dist/core/store/knowledge-store.d.ts.map +1 -1
  223. package/dist/core/store/knowledge-store.js +23 -1
  224. package/dist/core/store/knowledge-store.js.map +1 -1
  225. package/dist/core/store/migrations.d.ts.map +1 -1
  226. package/dist/core/store/migrations.js +89 -0
  227. package/dist/core/store/migrations.js.map +1 -1
  228. package/dist/core/store/tool-token-store.d.ts +39 -0
  229. package/dist/core/store/tool-token-store.d.ts.map +1 -0
  230. package/dist/core/store/tool-token-store.js +79 -0
  231. package/dist/core/store/tool-token-store.js.map +1 -0
  232. package/dist/core/validator/definition-of-ready.d.ts +8 -0
  233. package/dist/core/validator/definition-of-ready.d.ts.map +1 -0
  234. package/dist/core/validator/definition-of-ready.js +155 -0
  235. package/dist/core/validator/definition-of-ready.js.map +1 -0
  236. package/dist/core/validator/done-integrity-checker.d.ts +7 -0
  237. package/dist/core/validator/done-integrity-checker.d.ts.map +1 -0
  238. package/dist/core/validator/done-integrity-checker.js +38 -0
  239. package/dist/core/validator/done-integrity-checker.js.map +1 -0
  240. package/dist/core/validator/status-flow-checker.d.ts +7 -0
  241. package/dist/core/validator/status-flow-checker.d.ts.map +1 -0
  242. package/dist/core/validator/status-flow-checker.js +26 -0
  243. package/dist/core/validator/status-flow-checker.js.map +1 -0
  244. package/dist/mcp/app-factory.d.ts +0 -1
  245. package/dist/mcp/app-factory.d.ts.map +1 -1
  246. package/dist/mcp/app-factory.js +2 -2
  247. package/dist/mcp/app-factory.js.map +1 -1
  248. package/dist/mcp/lifecycle-wrapper.d.ts +10 -0
  249. package/dist/mcp/lifecycle-wrapper.d.ts.map +1 -1
  250. package/dist/mcp/lifecycle-wrapper.js +48 -2
  251. package/dist/mcp/lifecycle-wrapper.js.map +1 -1
  252. package/dist/mcp/server.js +19 -14
  253. package/dist/mcp/server.js.map +1 -1
  254. package/dist/mcp/tools/{stats.d.ts → analyze.d.ts} +2 -2
  255. package/dist/mcp/tools/analyze.d.ts.map +1 -0
  256. package/dist/mcp/tools/analyze.js +272 -0
  257. package/dist/mcp/tools/analyze.js.map +1 -0
  258. package/dist/mcp/tools/import-prd.d.ts.map +1 -1
  259. package/dist/mcp/tools/import-prd.js +15 -1
  260. package/dist/mcp/tools/import-prd.js.map +1 -1
  261. package/dist/mcp/tools/index.js +10 -10
  262. package/dist/mcp/tools/index.js.map +1 -1
  263. package/dist/mcp/tools/list-skills.d.ts +7 -0
  264. package/dist/mcp/tools/list-skills.d.ts.map +1 -0
  265. package/dist/mcp/tools/list-skills.js +68 -0
  266. package/dist/mcp/tools/list-skills.js.map +1 -0
  267. package/dist/mcp/tools/memory.d.ts +8 -0
  268. package/dist/mcp/tools/memory.d.ts.map +1 -0
  269. package/dist/mcp/tools/memory.js +106 -0
  270. package/dist/mcp/tools/memory.js.map +1 -0
  271. package/dist/mcp/tools/{velocity.d.ts → metrics.d.ts} +2 -2
  272. package/dist/mcp/tools/metrics.d.ts.map +1 -0
  273. package/dist/mcp/tools/metrics.js +69 -0
  274. package/dist/mcp/tools/metrics.js.map +1 -0
  275. package/dist/mcp/tools/next.d.ts.map +1 -1
  276. package/dist/mcp/tools/next.js +19 -5
  277. package/dist/mcp/tools/next.js.map +1 -1
  278. package/dist/mcp/tools/plan-sprint.d.ts.map +1 -1
  279. package/dist/mcp/tools/plan-sprint.js +20 -0
  280. package/dist/mcp/tools/plan-sprint.js.map +1 -1
  281. package/dist/mcp/tools/rag-context.d.ts.map +1 -1
  282. package/dist/mcp/tools/rag-context.js +20 -5
  283. package/dist/mcp/tools/rag-context.js.map +1 -1
  284. package/dist/mcp/tools/reindex-knowledge.d.ts.map +1 -1
  285. package/dist/mcp/tools/reindex-knowledge.js +11 -7
  286. package/dist/mcp/tools/reindex-knowledge.js.map +1 -1
  287. package/dist/mcp/tools/set-phase.d.ts.map +1 -1
  288. package/dist/mcp/tools/set-phase.js +16 -1
  289. package/dist/mcp/tools/set-phase.js.map +1 -1
  290. package/dist/mcp/tools/update-status.d.ts.map +1 -1
  291. package/dist/mcp/tools/update-status.js +21 -6
  292. package/dist/mcp/tools/update-status.js.map +1 -1
  293. package/dist/mcp/tools/{decompose.d.ts → validate-ac.d.ts} +2 -2
  294. package/dist/mcp/tools/validate-ac.d.ts.map +1 -0
  295. package/dist/mcp/tools/validate-ac.js +23 -0
  296. package/dist/mcp/tools/validate-ac.js.map +1 -0
  297. package/dist/schemas/ac-quality-schema.d.ts +90 -0
  298. package/dist/schemas/ac-quality-schema.d.ts.map +1 -0
  299. package/dist/schemas/ac-quality-schema.js +34 -0
  300. package/dist/schemas/ac-quality-schema.js.map +1 -0
  301. package/dist/schemas/analyzer-schema.d.ts +160 -0
  302. package/dist/schemas/analyzer-schema.d.ts.map +1 -0
  303. package/dist/schemas/analyzer-schema.js +74 -0
  304. package/dist/schemas/analyzer-schema.js.map +1 -0
  305. package/dist/schemas/designer-schema.d.ts +259 -0
  306. package/dist/schemas/designer-schema.d.ts.map +1 -0
  307. package/dist/schemas/designer-schema.js +102 -0
  308. package/dist/schemas/designer-schema.js.map +1 -0
  309. package/dist/schemas/handoff-schema.d.ts +49 -0
  310. package/dist/schemas/handoff-schema.d.ts.map +1 -0
  311. package/dist/schemas/handoff-schema.js +28 -0
  312. package/dist/schemas/handoff-schema.js.map +1 -0
  313. package/dist/schemas/implementer-schema.d.ts +187 -0
  314. package/dist/schemas/implementer-schema.d.ts.map +1 -0
  315. package/dist/schemas/implementer-schema.js +80 -0
  316. package/dist/schemas/implementer-schema.js.map +1 -0
  317. package/dist/schemas/knowledge.schema.d.ts +12 -0
  318. package/dist/schemas/knowledge.schema.d.ts.map +1 -1
  319. package/dist/schemas/knowledge.schema.js +1 -1
  320. package/dist/schemas/knowledge.schema.js.map +1 -1
  321. package/dist/schemas/listener-schema.d.ts +62 -0
  322. package/dist/schemas/listener-schema.d.ts.map +1 -0
  323. package/dist/schemas/listener-schema.js +35 -0
  324. package/dist/schemas/listener-schema.js.map +1 -0
  325. package/dist/schemas/reviewer-schema.d.ts +34 -0
  326. package/dist/schemas/reviewer-schema.d.ts.map +1 -0
  327. package/dist/schemas/reviewer-schema.js +17 -0
  328. package/dist/schemas/reviewer-schema.js.map +1 -0
  329. package/dist/schemas/validator-schema.d.ts +79 -0
  330. package/dist/schemas/validator-schema.d.ts.map +1 -0
  331. package/dist/schemas/validator-schema.js +43 -0
  332. package/dist/schemas/validator-schema.js.map +1 -0
  333. package/dist/web/dashboard/dist/assets/benchmark-tab-B5Sr8Cah.js +1 -0
  334. package/dist/web/dashboard/dist/assets/constants-kpH_c6vY.js +1 -0
  335. package/dist/web/dashboard/dist/assets/gitnexus-tab-DqmbSdzV.js +430 -0
  336. package/dist/web/dashboard/dist/assets/graph-tab-BKns5HdW.js +1 -0
  337. package/dist/web/dashboard/dist/assets/graph-utils-BxUWNvsI.js +7 -0
  338. package/dist/web/dashboard/dist/assets/index-CZOiKbTP.js +53 -0
  339. package/dist/web/dashboard/dist/assets/index-Dd4vKyDX.js +17 -0
  340. package/dist/web/dashboard/dist/assets/index-xyMN-_UV.css +1 -0
  341. package/dist/web/dashboard/dist/assets/insights-tab-B1kPckBM.js +52 -0
  342. package/dist/web/dashboard/dist/assets/{logs-tab-BPDyVj2B.js → logs-tab-BWfsrRlB.js} +1 -1
  343. package/dist/web/dashboard/dist/assets/memories-tab-D3zm-1Sq.js +1 -0
  344. package/dist/web/dashboard/dist/assets/prd-backlog-tab-DXP4dFP-.js +1 -0
  345. package/dist/web/dashboard/dist/assets/skills-tab-CAlVL80S.js +1 -0
  346. package/dist/web/dashboard/dist/index.html +2 -2
  347. package/package.json +2 -2
  348. package/dist/api/routes/gitnexus.d.ts +0 -12
  349. package/dist/api/routes/gitnexus.d.ts.map +0 -1
  350. package/dist/api/routes/gitnexus.js +0 -164
  351. package/dist/api/routes/gitnexus.js.map +0 -1
  352. package/dist/core/integrations/gitnexus-launcher.d.ts +0 -67
  353. package/dist/core/integrations/gitnexus-launcher.d.ts.map +0 -1
  354. package/dist/core/integrations/gitnexus-launcher.js +0 -268
  355. package/dist/core/integrations/gitnexus-launcher.js.map +0 -1
  356. package/dist/core/integrations/gitnexus-queries.d.ts +0 -55
  357. package/dist/core/integrations/gitnexus-queries.d.ts.map +0 -1
  358. package/dist/core/integrations/gitnexus-queries.js +0 -168
  359. package/dist/core/integrations/gitnexus-queries.js.map +0 -1
  360. package/dist/core/integrations/serena-reader.d.ts +0 -18
  361. package/dist/core/integrations/serena-reader.d.ts.map +0 -1
  362. package/dist/core/integrations/serena-reader.js +0 -68
  363. package/dist/core/integrations/serena-reader.js.map +0 -1
  364. package/dist/core/rag/serena-indexer.d.ts +0 -16
  365. package/dist/core/rag/serena-indexer.d.ts.map +0 -1
  366. package/dist/core/rag/serena-indexer.js.map +0 -1
  367. package/dist/core/rag/serena-rag-query.d.ts.map +0 -1
  368. package/dist/core/rag/serena-rag-query.js.map +0 -1
  369. package/dist/mcp/tools/bulk-update-status.d.ts +0 -4
  370. package/dist/mcp/tools/bulk-update-status.d.ts.map +0 -1
  371. package/dist/mcp/tools/bulk-update-status.js +0 -22
  372. package/dist/mcp/tools/bulk-update-status.js.map +0 -1
  373. package/dist/mcp/tools/decompose.d.ts.map +0 -1
  374. package/dist/mcp/tools/decompose.js +0 -25
  375. package/dist/mcp/tools/decompose.js.map +0 -1
  376. package/dist/mcp/tools/dependencies.d.ts +0 -4
  377. package/dist/mcp/tools/dependencies.d.ts.map +0 -1
  378. package/dist/mcp/tools/dependencies.js +0 -47
  379. package/dist/mcp/tools/dependencies.js.map +0 -1
  380. package/dist/mcp/tools/stats.d.ts.map +0 -1
  381. package/dist/mcp/tools/stats.js +0 -46
  382. package/dist/mcp/tools/stats.js.map +0 -1
  383. package/dist/mcp/tools/velocity.d.ts.map +0 -1
  384. package/dist/mcp/tools/velocity.js +0 -25
  385. package/dist/mcp/tools/velocity.js.map +0 -1
  386. package/dist/web/dashboard/dist/assets/benchmark-tab-DzYj_lJO.js +0 -1
  387. package/dist/web/dashboard/dist/assets/constants-BIEJOBya.js +0 -1
  388. package/dist/web/dashboard/dist/assets/gitnexus-tab-B16kDpcc.js +0 -312
  389. package/dist/web/dashboard/dist/assets/graph-tab-bgRao3Qi.js +0 -1
  390. package/dist/web/dashboard/dist/assets/graph-utils-CETPf3Qj.js +0 -23
  391. package/dist/web/dashboard/dist/assets/index-D4nxPvv8.css +0 -1
  392. package/dist/web/dashboard/dist/assets/index-DLehETrJ.js +0 -53
  393. package/dist/web/dashboard/dist/assets/insights-tab-MkpvetqF.js +0 -1
  394. package/dist/web/dashboard/dist/assets/prd-backlog-tab-DbnFo6Ve.js +0 -1
  395. package/dist/web/dashboard/dist/assets/serena-tab-CLJOpG5i.js +0 -1
@@ -1,26 +1,30 @@
1
1
  /**
2
- * Serena RAG Query — semantic search over Serena memory documents.
2
+ * Memory RAG Query — semantic search over memory documents.
3
3
  *
4
4
  * Supports three modes:
5
5
  * - fts: keyword search via FTS5 (fast, exact match)
6
6
  * - semantic: TF-IDF cosine similarity (broader, cross-vocabulary)
7
7
  * - hybrid: combines FTS and semantic results with deduplication
8
+ *
9
+ * Accepts both "memory" and "serena" sourceType for backward compatibility.
8
10
  */
9
11
  import { KnowledgeStore } from "../store/knowledge-store.js";
10
12
  import { EmbeddingStore } from "./embedding-store.js";
11
13
  import { indexAllEmbeddings, semanticSearch } from "./rag-pipeline.js";
12
14
  import { logger } from "../utils/logger.js";
15
+ /** Source types to include in memory queries (backward compat with "serena") */
16
+ const MEMORY_SOURCE_TYPES = new Set(["memory", "serena"]);
13
17
  /**
14
- * Query Serena memories using FTS, semantic search, or hybrid.
18
+ * Query memories using FTS, semantic search, or hybrid.
15
19
  */
16
- export async function querySerenaMemories(store, query, options) {
20
+ export async function queryMemories(store, query, options) {
17
21
  const mode = options?.mode ?? "fts";
18
22
  const limit = options?.limit ?? 10;
19
23
  const knowledgeStore = new KnowledgeStore(store.getDb());
20
- const totalSerenaDocuments = knowledgeStore.count("serena");
21
- if (totalSerenaDocuments === 0) {
22
- logger.info("No Serena memories in knowledge store", { query });
23
- return { query, mode, results: [], totalSerenaDocuments: 0 };
24
+ const totalMemoryDocuments = knowledgeStore.count("memory") + knowledgeStore.count("serena");
25
+ if (totalMemoryDocuments === 0) {
26
+ logger.info("No memories in knowledge store", { query });
27
+ return { query, mode, results: [], totalMemoryDocuments: 0 };
24
28
  }
25
29
  const results = [];
26
30
  const seenIds = new Set();
@@ -28,7 +32,7 @@ export async function querySerenaMemories(store, query, options) {
28
32
  if (mode === "fts" || mode === "hybrid") {
29
33
  const ftsResults = knowledgeStore.search(query, limit);
30
34
  for (const doc of ftsResults) {
31
- if (doc.sourceType !== "serena")
35
+ if (!MEMORY_SOURCE_TYPES.has(doc.sourceType))
32
36
  continue;
33
37
  if (seenIds.has(doc.id))
34
38
  continue;
@@ -38,7 +42,7 @@ export async function querySerenaMemories(store, query, options) {
38
42
  title: doc.title,
39
43
  content: doc.content,
40
44
  sourceId: doc.sourceId,
41
- score: 1.0, // FTS results are relevance-ranked but no numeric score exposed
45
+ score: 1.0,
42
46
  method: "fts",
43
47
  });
44
48
  }
@@ -50,11 +54,10 @@ export async function querySerenaMemories(store, query, options) {
50
54
  await indexAllEmbeddings(store, embeddingStore);
51
55
  const semanticResults = await semanticSearch(embeddingStore, query, limit);
52
56
  for (const result of semanticResults) {
53
- // Filter to only serena-sourced knowledge
54
57
  if (result.source !== "knowledge")
55
58
  continue;
56
59
  const doc = knowledgeStore.getById(result.sourceId);
57
- if (!doc || doc.sourceType !== "serena")
60
+ if (!doc || !MEMORY_SOURCE_TYPES.has(doc.sourceType))
58
61
  continue;
59
62
  if (seenIds.has(doc.id))
60
63
  continue;
@@ -72,12 +75,12 @@ export async function querySerenaMemories(store, query, options) {
72
75
  // Sort by score descending and limit
73
76
  results.sort((a, b) => b.score - a.score);
74
77
  const limited = results.slice(0, limit);
75
- logger.info("Serena RAG query completed", {
78
+ logger.info("Memory RAG query completed", {
76
79
  query,
77
80
  mode,
78
81
  resultsCount: limited.length,
79
- totalSerenaDocuments,
82
+ totalMemoryDocuments,
80
83
  });
81
- return { query, mode, results: limited, totalSerenaDocuments };
84
+ return { query, mode, results: limited, totalMemoryDocuments };
82
85
  }
83
- //# sourceMappingURL=serena-rag-query.js.map
86
+ //# sourceMappingURL=memory-rag-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-rag-query.js","sourceRoot":"","sources":["../../../src/core/rag/memory-rag-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Phase metadata utilities for knowledge indexers.
3
+ * Provides consistent phase tagging across all knowledge sources.
4
+ */
5
+ import type { LifecyclePhase } from "../planner/lifecycle-phase.js";
6
+ /**
7
+ * Phase boost weights for RAG search.
8
+ * Maps: current phase → source phase → boost multiplier.
9
+ * Higher boost = more relevant for the current phase.
10
+ */
11
+ export declare const PHASE_BOOST_WEIGHTS: Record<LifecyclePhase, Partial<Record<LifecyclePhase, number>>>;
12
+ /**
13
+ * Get the phase boost multiplier for a knowledge document in the current phase.
14
+ * Returns 1.0 (neutral) if no specific boost is defined.
15
+ */
16
+ export declare function getPhaseBoost(currentPhase: LifecyclePhase, docPhase: string | undefined): number;
17
+ /**
18
+ * Apply phase boost to a BM25 score.
19
+ * BM25 scores are negative (closer to 0 = better match).
20
+ * Boosting means dividing by the weight (making score closer to 0).
21
+ */
22
+ export declare function applyPhaseBoost(score: number, boost: number): number;
23
+ //# sourceMappingURL=phase-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-metadata.d.ts","sourceRoot":"","sources":["../../../src/core/rag/phase-metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAwC/F,CAAC;AAEF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIhG;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpE"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Phase metadata utilities for knowledge indexers.
3
+ * Provides consistent phase tagging across all knowledge sources.
4
+ */
5
+ /**
6
+ * Phase boost weights for RAG search.
7
+ * Maps: current phase → source phase → boost multiplier.
8
+ * Higher boost = more relevant for the current phase.
9
+ */
10
+ export const PHASE_BOOST_WEIGHTS = {
11
+ ANALYZE: {
12
+ ANALYZE: 2.0,
13
+ LISTENING: 1.5,
14
+ },
15
+ DESIGN: {
16
+ DESIGN: 2.0,
17
+ ANALYZE: 1.5,
18
+ PLAN: 1.2,
19
+ },
20
+ PLAN: {
21
+ PLAN: 2.0,
22
+ DESIGN: 1.5,
23
+ ANALYZE: 1.3,
24
+ },
25
+ IMPLEMENT: {
26
+ IMPLEMENT: 2.0,
27
+ PLAN: 1.5,
28
+ DESIGN: 1.2,
29
+ },
30
+ VALIDATE: {
31
+ VALIDATE: 2.0,
32
+ IMPLEMENT: 2.0,
33
+ ANALYZE: 1.3,
34
+ },
35
+ REVIEW: {
36
+ REVIEW: 2.0,
37
+ IMPLEMENT: 1.5,
38
+ VALIDATE: 2.0,
39
+ },
40
+ HANDOFF: {
41
+ HANDOFF: 2.0,
42
+ REVIEW: 1.5,
43
+ VALIDATE: 1.3,
44
+ },
45
+ LISTENING: {
46
+ LISTENING: 2.0,
47
+ ANALYZE: 1.5,
48
+ VALIDATE: 1.3,
49
+ },
50
+ };
51
+ /**
52
+ * Get the phase boost multiplier for a knowledge document in the current phase.
53
+ * Returns 1.0 (neutral) if no specific boost is defined.
54
+ */
55
+ export function getPhaseBoost(currentPhase, docPhase) {
56
+ if (!docPhase)
57
+ return 1.0;
58
+ const weights = PHASE_BOOST_WEIGHTS[currentPhase];
59
+ return weights[docPhase] ?? 1.0;
60
+ }
61
+ /**
62
+ * Apply phase boost to a BM25 score.
63
+ * BM25 scores are negative (closer to 0 = better match).
64
+ * Boosting means dividing by the weight (making score closer to 0).
65
+ */
66
+ export function applyPhaseBoost(score, boost) {
67
+ if (boost <= 0)
68
+ return score;
69
+ // BM25 scores are negative — dividing by boost makes them closer to 0 (better)
70
+ return score / boost;
71
+ }
72
+ //# sourceMappingURL=phase-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-metadata.js","sourceRoot":"","sources":["../../../src/core/rag/phase-metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAoE;IAClG,OAAO,EAAE;QACP,OAAO,EAAE,GAAG;QACZ,SAAS,EAAE,GAAG;KACf;IACD,MAAM,EAAE;QACN,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,GAAG;KACV;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,GAAG;KACb;IACD,SAAS,EAAE;QACT,SAAS,EAAE,GAAG;QACd,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,GAAG;KACZ;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,GAAG;QACb,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,GAAG;KACb;IACD,MAAM,EAAE;QACN,MAAM,EAAE,GAAG;QACX,SAAS,EAAE,GAAG;QACd,QAAQ,EAAE,GAAG;KACd;IACD,OAAO,EAAE;QACP,OAAO,EAAE,GAAG;QACZ,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,GAAG;KACd;IACD,SAAS,EAAE;QACT,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,GAAG;KACd;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,YAA4B,EAAE,QAA4B;IACtF,IAAI,CAAC,QAAQ;QAAE,OAAO,GAAG,CAAC;IAC1B,MAAM,OAAO,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAClD,OAAO,OAAO,CAAC,QAA0B,CAAC,IAAI,GAAG,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,KAAa;IAC1D,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7B,+EAA+E;IAC/E,OAAO,KAAK,GAAG,KAAK,CAAC;AACvB,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Phase Summary Generator — creates a knowledge document summarizing
3
+ * what was accomplished during a lifecycle phase when transitioning out.
4
+ */
5
+ import type { GraphDocument } from "../graph/graph-types.js";
6
+ import type { LifecyclePhase } from "../planner/lifecycle-phase.js";
7
+ import { KnowledgeStore } from "../store/knowledge-store.js";
8
+ export interface PhaseSummaryResult {
9
+ indexed: boolean;
10
+ summaryText: string;
11
+ }
12
+ /**
13
+ * Generate and index a phase summary document into the knowledge store.
14
+ * Captures key metrics and decisions from the completed phase.
15
+ */
16
+ export declare function generateAndIndexPhaseSummary(knowledgeStore: KnowledgeStore, doc: GraphDocument, fromPhase: LifecyclePhase, toPhase: LifecyclePhase): PhaseSummaryResult;
17
+ //# sourceMappingURL=phase-summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-summary.d.ts","sourceRoot":"","sources":["../../../src/core/rag/phase-summary.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAKD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,cAAc,GACtB,kBAAkB,CAwBpB"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Phase Summary Generator — creates a knowledge document summarizing
3
+ * what was accomplished during a lifecycle phase when transitioning out.
4
+ */
5
+ import { logger } from "../utils/logger.js";
6
+ const TASK_TYPES = new Set(["task", "subtask"]);
7
+ const DESIGN_TYPES = new Set(["decision", "constraint", "risk", "acceptance_criteria"]);
8
+ /**
9
+ * Generate and index a phase summary document into the knowledge store.
10
+ * Captures key metrics and decisions from the completed phase.
11
+ */
12
+ export function generateAndIndexPhaseSummary(knowledgeStore, doc, fromPhase, toPhase) {
13
+ const summaryText = buildPhaseSummaryText(doc, fromPhase, toPhase);
14
+ const sourceId = `phase_summary:${fromPhase}:${new Date().toISOString()}`;
15
+ try {
16
+ knowledgeStore.insert({
17
+ sourceType: "phase_summary",
18
+ sourceId,
19
+ title: `Phase ${fromPhase} Summary → ${toPhase}`,
20
+ content: summaryText,
21
+ metadata: {
22
+ phase: fromPhase,
23
+ transitionTo: toPhase,
24
+ transitionedAt: new Date().toISOString(),
25
+ },
26
+ });
27
+ logger.info("Phase summary indexed", { fromPhase, toPhase });
28
+ return { indexed: true, summaryText };
29
+ }
30
+ catch (err) {
31
+ logger.warn("Phase summary indexing failed", { error: String(err) });
32
+ return { indexed: false, summaryText };
33
+ }
34
+ }
35
+ /**
36
+ * Build a human-readable summary of what happened during a phase.
37
+ */
38
+ function buildPhaseSummaryText(doc, fromPhase, toPhase) {
39
+ const { nodes, edges } = doc;
40
+ const tasks = nodes.filter((n) => TASK_TYPES.has(n.type));
41
+ const doneTasks = tasks.filter((n) => n.status === "done");
42
+ const inProgressTasks = tasks.filter((n) => n.status === "in_progress");
43
+ const designNodes = nodes.filter((n) => DESIGN_TYPES.has(n.type));
44
+ const sections = [];
45
+ sections.push(`Phase ${fromPhase} completed. Transitioning to ${toPhase}.`);
46
+ sections.push(`Total nodes: ${nodes.length}. Edges: ${edges.length}.`);
47
+ if (tasks.length > 0) {
48
+ sections.push(`Tasks: ${tasks.length} total, ${doneTasks.length} done, ${inProgressTasks.length} in progress, ${tasks.length - doneTasks.length - inProgressTasks.length} remaining.`);
49
+ }
50
+ // Phase-specific summaries
51
+ switch (fromPhase) {
52
+ case "ANALYZE": {
53
+ const requirements = nodes.filter((n) => n.type === "requirement");
54
+ const epics = nodes.filter((n) => n.type === "epic");
55
+ sections.push(`Requirements defined: ${requirements.length}. Epics: ${epics.length}.`);
56
+ break;
57
+ }
58
+ case "DESIGN": {
59
+ const decisions = designNodes.filter((n) => n.type === "decision");
60
+ const constraints = designNodes.filter((n) => n.type === "constraint");
61
+ const risks = designNodes.filter((n) => n.type === "risk");
62
+ sections.push(`Decisions: ${decisions.length}. Constraints: ${constraints.length}. Risks: ${risks.length}.`);
63
+ if (decisions.length > 0) {
64
+ const decisionTitles = decisions.map((d) => d.title).slice(0, 5);
65
+ sections.push(`Key decisions: ${decisionTitles.join("; ")}.`);
66
+ }
67
+ break;
68
+ }
69
+ case "PLAN": {
70
+ const sprintTasks = tasks.filter((n) => n.sprint != null);
71
+ const sprints = new Set(sprintTasks.map((n) => n.sprint));
72
+ sections.push(`Sprint-assigned tasks: ${sprintTasks.length} across ${sprints.size} sprint(s).`);
73
+ break;
74
+ }
75
+ case "IMPLEMENT": {
76
+ sections.push(`Tasks completed: ${doneTasks.length}/${tasks.length}.`);
77
+ const acNodes = nodes.filter((n) => n.type === "acceptance_criteria");
78
+ if (acNodes.length > 0) {
79
+ sections.push(`Acceptance criteria nodes: ${acNodes.length}.`);
80
+ }
81
+ break;
82
+ }
83
+ case "VALIDATE": {
84
+ const tasksWithAc = tasks.filter((n) => n.acceptanceCriteria && n.acceptanceCriteria.length > 0);
85
+ sections.push(`Tasks with acceptance criteria: ${tasksWithAc.length}/${tasks.length}.`);
86
+ break;
87
+ }
88
+ case "REVIEW": {
89
+ sections.push(`All tasks done: ${doneTasks.length === tasks.length ? "yes" : "no"}.`);
90
+ break;
91
+ }
92
+ case "HANDOFF": {
93
+ sections.push(`Handoff completed. ${doneTasks.length} tasks delivered.`);
94
+ break;
95
+ }
96
+ case "LISTENING": {
97
+ const feedbackNodes = nodes.filter((n) => n.type === "requirement" || n.type === "risk");
98
+ sections.push(`Feedback items collected: ${feedbackNodes.length}.`);
99
+ break;
100
+ }
101
+ }
102
+ return sections.join("\n");
103
+ }
104
+ //# sourceMappingURL=phase-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-summary.js","sourceRoot":"","sources":["../../../src/core/rag/phase-summary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * PRD Indexer — indexes PRD text content into the knowledge store
3
+ * so that original requirements can be queried in later lifecycle phases.
4
+ */
5
+ import { KnowledgeStore } from "../store/knowledge-store.js";
6
+ import type { LifecyclePhase } from "../planner/lifecycle-phase.js";
7
+ export interface PrdIndexResult {
8
+ documentsIndexed: number;
9
+ sourceFile: string;
10
+ }
11
+ /**
12
+ * Index PRD text content into the knowledge store.
13
+ * Chunks the content and stores with source_type='prd'.
14
+ */
15
+ export declare function indexPrdContent(knowledgeStore: KnowledgeStore, content: string, sourceFile: string, phase?: LifecyclePhase): PrdIndexResult;
16
+ //# sourceMappingURL=prd-indexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prd-indexer.d.ts","sourceRoot":"","sources":["../../../src/core/rag/prd-indexer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,cAAc,GACrB,cAAc,CAiChB"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * PRD Indexer — indexes PRD text content into the knowledge store
3
+ * so that original requirements can be queried in later lifecycle phases.
4
+ */
5
+ import { chunkText } from "./chunk-text.js";
6
+ import { logger } from "../utils/logger.js";
7
+ /**
8
+ * Index PRD text content into the knowledge store.
9
+ * Chunks the content and stores with source_type='prd'.
10
+ */
11
+ export function indexPrdContent(knowledgeStore, content, sourceFile, phase) {
12
+ const chunks = chunkText(content);
13
+ if (chunks.length === 0) {
14
+ logger.info("No content to index from PRD", { sourceFile });
15
+ return { documentsIndexed: 0, sourceFile };
16
+ }
17
+ const sourceId = `prd:${sourceFile}`;
18
+ // Remove previous version to re-index fresh content
19
+ knowledgeStore.deleteBySource("prd", sourceId);
20
+ const docs = knowledgeStore.insertChunks(chunks.map((chunk) => ({
21
+ sourceType: "prd",
22
+ sourceId,
23
+ title: chunks.length > 1
24
+ ? `PRD: ${sourceFile} [${chunk.index + 1}/${chunks.length}]`
25
+ : `PRD: ${sourceFile}`,
26
+ content: chunk.content,
27
+ chunkIndex: chunk.index,
28
+ metadata: {
29
+ sourceFile,
30
+ phase: phase ?? "ANALYZE",
31
+ indexedAt: new Date().toISOString(),
32
+ },
33
+ })));
34
+ logger.info("PRD content indexed", { sourceFile, chunks: docs.length });
35
+ return { documentsIndexed: docs.length, sourceFile };
36
+ }
37
+ //# sourceMappingURL=prd-indexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prd-indexer.js","sourceRoot":"","sources":["../../../src/core/rag/prd-indexer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQ5C;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,cAA8B,EAC9B,OAAe,EACf,UAAkB,EAClB,KAAsB;IAEtB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAElC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAC5D,OAAO,EAAE,gBAAgB,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,UAAU,EAAE,CAAC;IAErC,oDAAoD;IACpD,cAAc,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAG,cAAc,CAAC,YAAY,CACtC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrB,UAAU,EAAE,KAAc;QAC1B,QAAQ;QACR,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC;YACtB,CAAC,CAAC,QAAQ,UAAU,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG;YAC5D,CAAC,CAAC,QAAQ,UAAU,EAAE;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,KAAK;QACvB,QAAQ,EAAE;YACR,UAAU;YACV,KAAK,EAAE,KAAK,IAAI,SAAS;YACzB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC;KACF,CAAC,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAExE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;AACvD,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Skill Indexer — indexes built-in skills and filesystem skills
3
+ * into the knowledge store for unified search.
4
+ */
5
+ import { KnowledgeStore } from "../store/knowledge-store.js";
6
+ export interface SkillIndexResult {
7
+ builtInIndexed: number;
8
+ filesystemIndexed: number;
9
+ skippedDuplicates: number;
10
+ }
11
+ /**
12
+ * Index all skills (built-in + filesystem) into the knowledge store.
13
+ * Uses sourceType: "skill" and sourceId: "skill:{name}".
14
+ */
15
+ export declare function indexSkills(knowledgeStore: KnowledgeStore, basePath: string): Promise<SkillIndexResult>;
16
+ //# sourceMappingURL=skill-indexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-indexer.d.ts","sourceRoot":"","sources":["../../../src/core/rag/skill-indexer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAI7D,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,CAAC,CA0E3B"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Skill Indexer — indexes built-in skills and filesystem skills
3
+ * into the knowledge store for unified search.
4
+ */
5
+ import { getBuiltInSkills } from "../skills/built-in-skills.js";
6
+ import { scanSkills } from "../insights/skill-recommender.js";
7
+ import { chunkText } from "./chunk-text.js";
8
+ import { logger } from "../utils/logger.js";
9
+ /**
10
+ * Index all skills (built-in + filesystem) into the knowledge store.
11
+ * Uses sourceType: "skill" and sourceId: "skill:{name}".
12
+ */
13
+ export async function indexSkills(knowledgeStore, basePath) {
14
+ let builtInIndexed = 0;
15
+ let filesystemIndexed = 0;
16
+ let skippedDuplicates = 0;
17
+ // Index built-in skills
18
+ const builtInSkills = getBuiltInSkills();
19
+ for (const skill of builtInSkills) {
20
+ const content = formatSkillContent(skill);
21
+ const countBefore = knowledgeStore.count("skill");
22
+ knowledgeStore.insert({
23
+ sourceType: "skill",
24
+ sourceId: `skill:${skill.name}`,
25
+ title: skill.name,
26
+ content,
27
+ chunkIndex: 0,
28
+ metadata: {
29
+ category: skill.category,
30
+ phases: skill.phases,
31
+ description: skill.description,
32
+ source: "built-in",
33
+ },
34
+ });
35
+ if (knowledgeStore.count("skill") > countBefore) {
36
+ builtInIndexed++;
37
+ }
38
+ else {
39
+ skippedDuplicates++;
40
+ }
41
+ }
42
+ // Index filesystem skills
43
+ try {
44
+ const fsSkills = await scanSkills(basePath);
45
+ for (const fsSkill of fsSkills) {
46
+ // Skip if already indexed as built-in
47
+ const isBuiltIn = builtInSkills.some((b) => b.name === fsSkill.name);
48
+ if (isBuiltIn)
49
+ continue;
50
+ const content = `# ${fsSkill.name}\n\n${fsSkill.description}\n\nCategory: ${fsSkill.category}`;
51
+ const chunks = chunkText(content);
52
+ const countBefore = knowledgeStore.count("skill");
53
+ for (const chunk of chunks) {
54
+ knowledgeStore.insert({
55
+ sourceType: "skill",
56
+ sourceId: `skill:${fsSkill.name}`,
57
+ title: chunks.length > 1
58
+ ? `${fsSkill.name} [${chunk.index + 1}/${chunks.length}]`
59
+ : fsSkill.name,
60
+ content: chunk.content,
61
+ chunkIndex: chunk.index,
62
+ metadata: {
63
+ category: fsSkill.category,
64
+ description: fsSkill.description,
65
+ filePath: fsSkill.filePath,
66
+ source: "filesystem",
67
+ },
68
+ });
69
+ }
70
+ if (knowledgeStore.count("skill") > countBefore) {
71
+ filesystemIndexed++;
72
+ }
73
+ else {
74
+ skippedDuplicates++;
75
+ }
76
+ }
77
+ }
78
+ catch {
79
+ logger.debug("skill-indexer: filesystem scan skipped (no skills directory)");
80
+ }
81
+ logger.info("Skills indexed", { builtInIndexed, filesystemIndexed, skippedDuplicates });
82
+ return { builtInIndexed, filesystemIndexed, skippedDuplicates };
83
+ }
84
+ function formatSkillContent(skill) {
85
+ return [
86
+ `# ${skill.name}`,
87
+ "",
88
+ skill.description,
89
+ "",
90
+ `Category: ${skill.category}`,
91
+ `Phases: ${skill.phases.join(", ")}`,
92
+ "",
93
+ "## Instructions",
94
+ "",
95
+ skill.instructions,
96
+ ].join("\n");
97
+ }
98
+ //# sourceMappingURL=skill-indexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-indexer.js","sourceRoot":"","sources":["../../../src/core/rag/skill-indexer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Review Readiness — composite gate for VALIDATE→REVIEW transition.
3
+ * 100% reuse of existing analyzers, no new helper modules.
4
+ */
5
+ import type { GraphDocument } from "../graph/graph-types.js";
6
+ import type { ReviewReadinessReport } from "../../schemas/reviewer-schema.js";
7
+ export declare function checkReviewReadiness(doc: GraphDocument): ReviewReadinessReport;
8
+ //# sourceMappingURL=review-readiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-readiness.d.ts","sourceRoot":"","sources":["../../../src/core/reviewer/review-readiness.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAwB,MAAM,kCAAkC,CAAC;AAoBpG,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,GAAG,qBAAqB,CA6J9E"}