@mcp-graph-workflow/mcp-graph 5.1.4 → 5.2.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 (255) hide show
  1. package/dist/api/router.d.ts +1 -0
  2. package/dist/api/router.d.ts.map +1 -1
  3. package/dist/api/router.js +3 -2
  4. package/dist/api/router.js.map +1 -1
  5. package/dist/api/routes/folder.d.ts +4 -1
  6. package/dist/api/routes/folder.d.ts.map +1 -1
  7. package/dist/api/routes/folder.js +20 -1
  8. package/dist/api/routes/folder.js.map +1 -1
  9. package/dist/api/routes/gitnexus.d.ts.map +1 -1
  10. package/dist/api/routes/gitnexus.js +3 -1
  11. package/dist/api/routes/gitnexus.js.map +1 -1
  12. package/dist/core/analyzer/ac-parser.d.ts +7 -0
  13. package/dist/core/analyzer/ac-parser.d.ts.map +1 -0
  14. package/dist/core/analyzer/ac-parser.js +67 -0
  15. package/dist/core/analyzer/ac-parser.js.map +1 -0
  16. package/dist/core/analyzer/ac-validator.d.ts +15 -0
  17. package/dist/core/analyzer/ac-validator.d.ts.map +1 -0
  18. package/dist/core/analyzer/ac-validator.js +142 -0
  19. package/dist/core/analyzer/ac-validator.js.map +1 -0
  20. package/dist/core/analyzer/definition-of-ready.d.ts +16 -0
  21. package/dist/core/analyzer/definition-of-ready.d.ts.map +1 -0
  22. package/dist/core/analyzer/definition-of-ready.js +107 -0
  23. package/dist/core/analyzer/definition-of-ready.js.map +1 -0
  24. package/dist/core/analyzer/prd-quality.d.ts +14 -0
  25. package/dist/core/analyzer/prd-quality.d.ts.map +1 -0
  26. package/dist/core/analyzer/prd-quality.js +156 -0
  27. package/dist/core/analyzer/prd-quality.js.map +1 -0
  28. package/dist/core/analyzer/risk-assessment.d.ts +11 -0
  29. package/dist/core/analyzer/risk-assessment.d.ts.map +1 -0
  30. package/dist/core/analyzer/risk-assessment.js +97 -0
  31. package/dist/core/analyzer/risk-assessment.js.map +1 -0
  32. package/dist/core/analyzer/scope-analyzer.d.ts +7 -0
  33. package/dist/core/analyzer/scope-analyzer.d.ts.map +1 -0
  34. package/dist/core/analyzer/scope-analyzer.js +99 -0
  35. package/dist/core/analyzer/scope-analyzer.js.map +1 -0
  36. package/dist/core/config/ai-memory-generator.d.ts.map +1 -1
  37. package/dist/core/config/ai-memory-generator.js +8 -11
  38. package/dist/core/config/ai-memory-generator.js.map +1 -1
  39. package/dist/core/context/context-assembler.d.ts +3 -0
  40. package/dist/core/context/context-assembler.d.ts.map +1 -1
  41. package/dist/core/context/context-assembler.js +5 -2
  42. package/dist/core/context/context-assembler.js.map +1 -1
  43. package/dist/core/context/rag-context.d.ts +4 -2
  44. package/dist/core/context/rag-context.d.ts.map +1 -1
  45. package/dist/core/context/rag-context.js +8 -5
  46. package/dist/core/context/rag-context.js.map +1 -1
  47. package/dist/core/designer/adr-validator.d.ts +8 -0
  48. package/dist/core/designer/adr-validator.d.ts.map +1 -0
  49. package/dist/core/designer/adr-validator.js +61 -0
  50. package/dist/core/designer/adr-validator.js.map +1 -0
  51. package/dist/core/designer/coupling-analyzer.d.ts +7 -0
  52. package/dist/core/designer/coupling-analyzer.d.ts.map +1 -0
  53. package/dist/core/designer/coupling-analyzer.js +59 -0
  54. package/dist/core/designer/coupling-analyzer.js.map +1 -0
  55. package/dist/core/designer/definition-of-ready.d.ts +8 -0
  56. package/dist/core/designer/definition-of-ready.d.ts.map +1 -0
  57. package/dist/core/designer/definition-of-ready.js +146 -0
  58. package/dist/core/designer/definition-of-ready.js.map +1 -0
  59. package/dist/core/designer/interface-checker.d.ts +7 -0
  60. package/dist/core/designer/interface-checker.d.ts.map +1 -0
  61. package/dist/core/designer/interface-checker.js +53 -0
  62. package/dist/core/designer/interface-checker.js.map +1 -0
  63. package/dist/core/designer/tech-risk-assessor.d.ts +7 -0
  64. package/dist/core/designer/tech-risk-assessor.d.ts.map +1 -0
  65. package/dist/core/designer/tech-risk-assessor.js +95 -0
  66. package/dist/core/designer/tech-risk-assessor.js.map +1 -0
  67. package/dist/core/designer/traceability-matrix.d.ts +8 -0
  68. package/dist/core/designer/traceability-matrix.d.ts.map +1 -0
  69. package/dist/core/designer/traceability-matrix.js +67 -0
  70. package/dist/core/designer/traceability-matrix.js.map +1 -0
  71. package/dist/core/events/event-types.d.ts +11 -1
  72. package/dist/core/events/event-types.d.ts.map +1 -1
  73. package/dist/core/handoff/delivery-checklist.d.ts +10 -0
  74. package/dist/core/handoff/delivery-checklist.d.ts.map +1 -0
  75. package/dist/core/handoff/delivery-checklist.js +148 -0
  76. package/dist/core/handoff/delivery-checklist.js.map +1 -0
  77. package/dist/core/handoff/doc-completeness.d.ts +7 -0
  78. package/dist/core/handoff/doc-completeness.d.ts.map +1 -0
  79. package/dist/core/handoff/doc-completeness.js +19 -0
  80. package/dist/core/handoff/doc-completeness.js.map +1 -0
  81. package/dist/core/implementer/definition-of-done.d.ts +11 -0
  82. package/dist/core/implementer/definition-of-done.d.ts.map +1 -0
  83. package/dist/core/implementer/definition-of-done.js +158 -0
  84. package/dist/core/implementer/definition-of-done.js.map +1 -0
  85. package/dist/core/implementer/sprint-progress.d.ts +11 -0
  86. package/dist/core/implementer/sprint-progress.d.ts.map +1 -0
  87. package/dist/core/implementer/sprint-progress.js +80 -0
  88. package/dist/core/implementer/sprint-progress.js.map +1 -0
  89. package/dist/core/implementer/tdd-checker.d.ts +15 -0
  90. package/dist/core/implementer/tdd-checker.d.ts.map +1 -0
  91. package/dist/core/implementer/tdd-checker.js +132 -0
  92. package/dist/core/implementer/tdd-checker.js.map +1 -0
  93. package/dist/core/integrations/gitnexus-launcher.d.ts +5 -0
  94. package/dist/core/integrations/gitnexus-launcher.d.ts.map +1 -1
  95. package/dist/core/integrations/gitnexus-launcher.js +30 -3
  96. package/dist/core/integrations/gitnexus-launcher.js.map +1 -1
  97. package/dist/core/listener/backlog-health.d.ts +7 -0
  98. package/dist/core/listener/backlog-health.d.ts.map +1 -0
  99. package/dist/core/listener/backlog-health.js +64 -0
  100. package/dist/core/listener/backlog-health.js.map +1 -0
  101. package/dist/core/listener/feedback-readiness.d.ts +11 -0
  102. package/dist/core/listener/feedback-readiness.d.ts.map +1 -0
  103. package/dist/core/listener/feedback-readiness.js +124 -0
  104. package/dist/core/listener/feedback-readiness.js.map +1 -0
  105. package/dist/core/planner/lifecycle-phase.d.ts +26 -3
  106. package/dist/core/planner/lifecycle-phase.d.ts.map +1 -1
  107. package/dist/core/planner/lifecycle-phase.js +209 -17
  108. package/dist/core/planner/lifecycle-phase.js.map +1 -1
  109. package/dist/core/rag/phase-metadata.d.ts +23 -0
  110. package/dist/core/rag/phase-metadata.d.ts.map +1 -0
  111. package/dist/core/rag/phase-metadata.js +72 -0
  112. package/dist/core/rag/phase-metadata.js.map +1 -0
  113. package/dist/core/rag/phase-summary.d.ts +17 -0
  114. package/dist/core/rag/phase-summary.d.ts.map +1 -0
  115. package/dist/core/rag/phase-summary.js +104 -0
  116. package/dist/core/rag/phase-summary.js.map +1 -0
  117. package/dist/core/rag/prd-indexer.d.ts +16 -0
  118. package/dist/core/rag/prd-indexer.d.ts.map +1 -0
  119. package/dist/core/rag/prd-indexer.js +37 -0
  120. package/dist/core/rag/prd-indexer.js.map +1 -0
  121. package/dist/core/reviewer/review-readiness.d.ts +8 -0
  122. package/dist/core/reviewer/review-readiness.d.ts.map +1 -0
  123. package/dist/core/reviewer/review-readiness.js +159 -0
  124. package/dist/core/reviewer/review-readiness.js.map +1 -0
  125. package/dist/core/store/knowledge-store.d.ts +9 -0
  126. package/dist/core/store/knowledge-store.d.ts.map +1 -1
  127. package/dist/core/store/knowledge-store.js +22 -0
  128. package/dist/core/store/knowledge-store.js.map +1 -1
  129. package/dist/core/utils/errors.d.ts +7 -0
  130. package/dist/core/utils/errors.d.ts.map +1 -1
  131. package/dist/core/utils/errors.js +14 -0
  132. package/dist/core/utils/errors.js.map +1 -1
  133. package/dist/core/validator/definition-of-ready.d.ts +8 -0
  134. package/dist/core/validator/definition-of-ready.d.ts.map +1 -0
  135. package/dist/core/validator/definition-of-ready.js +155 -0
  136. package/dist/core/validator/definition-of-ready.js.map +1 -0
  137. package/dist/core/validator/done-integrity-checker.d.ts +7 -0
  138. package/dist/core/validator/done-integrity-checker.d.ts.map +1 -0
  139. package/dist/core/validator/done-integrity-checker.js +38 -0
  140. package/dist/core/validator/done-integrity-checker.js.map +1 -0
  141. package/dist/core/validator/status-flow-checker.d.ts +7 -0
  142. package/dist/core/validator/status-flow-checker.d.ts.map +1 -0
  143. package/dist/core/validator/status-flow-checker.js +26 -0
  144. package/dist/core/validator/status-flow-checker.js.map +1 -0
  145. package/dist/mcp/app-factory.d.ts +1 -0
  146. package/dist/mcp/app-factory.d.ts.map +1 -1
  147. package/dist/mcp/app-factory.js +2 -2
  148. package/dist/mcp/app-factory.js.map +1 -1
  149. package/dist/mcp/lifecycle-wrapper.d.ts +14 -4
  150. package/dist/mcp/lifecycle-wrapper.d.ts.map +1 -1
  151. package/dist/mcp/lifecycle-wrapper.js +104 -5
  152. package/dist/mcp/lifecycle-wrapper.js.map +1 -1
  153. package/dist/mcp/server.js +3 -2
  154. package/dist/mcp/server.js.map +1 -1
  155. package/dist/mcp/tools/{stats.d.ts → analyze.d.ts} +2 -2
  156. package/dist/mcp/tools/analyze.d.ts.map +1 -0
  157. package/dist/mcp/tools/analyze.js +272 -0
  158. package/dist/mcp/tools/analyze.js.map +1 -0
  159. package/dist/mcp/tools/import-prd.d.ts.map +1 -1
  160. package/dist/mcp/tools/import-prd.js +15 -1
  161. package/dist/mcp/tools/import-prd.js.map +1 -1
  162. package/dist/mcp/tools/index.d.ts.map +1 -1
  163. package/dist/mcp/tools/index.js +6 -10
  164. package/dist/mcp/tools/index.js.map +1 -1
  165. package/dist/mcp/tools/{velocity.d.ts → metrics.d.ts} +2 -2
  166. package/dist/mcp/tools/metrics.d.ts.map +1 -0
  167. package/dist/mcp/tools/metrics.js +69 -0
  168. package/dist/mcp/tools/metrics.js.map +1 -0
  169. package/dist/mcp/tools/next.d.ts.map +1 -1
  170. package/dist/mcp/tools/next.js +19 -5
  171. package/dist/mcp/tools/next.js.map +1 -1
  172. package/dist/mcp/tools/plan-sprint.d.ts.map +1 -1
  173. package/dist/mcp/tools/plan-sprint.js +20 -0
  174. package/dist/mcp/tools/plan-sprint.js.map +1 -1
  175. package/dist/mcp/tools/rag-context.d.ts.map +1 -1
  176. package/dist/mcp/tools/rag-context.js +20 -5
  177. package/dist/mcp/tools/rag-context.js.map +1 -1
  178. package/dist/mcp/tools/set-phase.d.ts.map +1 -1
  179. package/dist/mcp/tools/set-phase.js +64 -6
  180. package/dist/mcp/tools/set-phase.js.map +1 -1
  181. package/dist/mcp/tools/update-status.d.ts.map +1 -1
  182. package/dist/mcp/tools/update-status.js +21 -6
  183. package/dist/mcp/tools/update-status.js.map +1 -1
  184. package/dist/mcp/tools/{decompose.d.ts → validate-ac.d.ts} +2 -2
  185. package/dist/mcp/tools/validate-ac.d.ts.map +1 -0
  186. package/dist/mcp/tools/validate-ac.js +23 -0
  187. package/dist/mcp/tools/validate-ac.js.map +1 -0
  188. package/dist/schemas/ac-quality-schema.d.ts +90 -0
  189. package/dist/schemas/ac-quality-schema.d.ts.map +1 -0
  190. package/dist/schemas/ac-quality-schema.js +34 -0
  191. package/dist/schemas/ac-quality-schema.js.map +1 -0
  192. package/dist/schemas/analyzer-schema.d.ts +160 -0
  193. package/dist/schemas/analyzer-schema.d.ts.map +1 -0
  194. package/dist/schemas/analyzer-schema.js +74 -0
  195. package/dist/schemas/analyzer-schema.js.map +1 -0
  196. package/dist/schemas/designer-schema.d.ts +259 -0
  197. package/dist/schemas/designer-schema.d.ts.map +1 -0
  198. package/dist/schemas/designer-schema.js +102 -0
  199. package/dist/schemas/designer-schema.js.map +1 -0
  200. package/dist/schemas/handoff-schema.d.ts +49 -0
  201. package/dist/schemas/handoff-schema.d.ts.map +1 -0
  202. package/dist/schemas/handoff-schema.js +28 -0
  203. package/dist/schemas/handoff-schema.js.map +1 -0
  204. package/dist/schemas/implementer-schema.d.ts +187 -0
  205. package/dist/schemas/implementer-schema.d.ts.map +1 -0
  206. package/dist/schemas/implementer-schema.js +80 -0
  207. package/dist/schemas/implementer-schema.js.map +1 -0
  208. package/dist/schemas/knowledge.schema.d.ts +8 -0
  209. package/dist/schemas/knowledge.schema.d.ts.map +1 -1
  210. package/dist/schemas/knowledge.schema.js +1 -1
  211. package/dist/schemas/knowledge.schema.js.map +1 -1
  212. package/dist/schemas/listener-schema.d.ts +62 -0
  213. package/dist/schemas/listener-schema.d.ts.map +1 -0
  214. package/dist/schemas/listener-schema.js +35 -0
  215. package/dist/schemas/listener-schema.js.map +1 -0
  216. package/dist/schemas/reviewer-schema.d.ts +34 -0
  217. package/dist/schemas/reviewer-schema.d.ts.map +1 -0
  218. package/dist/schemas/reviewer-schema.js +17 -0
  219. package/dist/schemas/reviewer-schema.js.map +1 -0
  220. package/dist/schemas/validator-schema.d.ts +79 -0
  221. package/dist/schemas/validator-schema.d.ts.map +1 -0
  222. package/dist/schemas/validator-schema.js +43 -0
  223. package/dist/schemas/validator-schema.js.map +1 -0
  224. package/dist/web/dashboard/dist/assets/{benchmark-tab-CuZsNkbP.js → benchmark-tab-DE6hAHVG.js} +1 -1
  225. package/dist/web/dashboard/dist/assets/gitnexus-tab-DsBjJHx8.js +312 -0
  226. package/dist/web/dashboard/dist/assets/graph-tab-C09DzeZ_.js +1 -0
  227. package/dist/web/dashboard/dist/assets/{graph-utils-D5iPoiPD.js → graph-utils-D4LFspTf.js} +5 -5
  228. package/dist/web/dashboard/dist/assets/{index-CN9Wi5mu.js → index-B2fTJ4AS.js} +2 -2
  229. package/dist/web/dashboard/dist/assets/index-CkqEqKiH.css +1 -0
  230. package/dist/web/dashboard/dist/assets/{insights-tab-CLA0OIxd.js → insights-tab-Bm7CDckb.js} +1 -1
  231. package/dist/web/dashboard/dist/assets/{logs-tab-CSYlvuCu.js → logs-tab-Cxpcv_ni.js} +1 -1
  232. package/dist/web/dashboard/dist/assets/{prd-backlog-tab-BBLpErTk.js → prd-backlog-tab-X84Rj-IB.js} +1 -1
  233. package/dist/web/dashboard/dist/assets/{serena-tab-BxYP8nU5.js → serena-tab-BunULNvw.js} +1 -1
  234. package/dist/web/dashboard/dist/index.html +2 -2
  235. package/package.json +1 -1
  236. package/dist/mcp/tools/bulk-update-status.d.ts +0 -4
  237. package/dist/mcp/tools/bulk-update-status.d.ts.map +0 -1
  238. package/dist/mcp/tools/bulk-update-status.js +0 -22
  239. package/dist/mcp/tools/bulk-update-status.js.map +0 -1
  240. package/dist/mcp/tools/decompose.d.ts.map +0 -1
  241. package/dist/mcp/tools/decompose.js +0 -25
  242. package/dist/mcp/tools/decompose.js.map +0 -1
  243. package/dist/mcp/tools/dependencies.d.ts +0 -4
  244. package/dist/mcp/tools/dependencies.d.ts.map +0 -1
  245. package/dist/mcp/tools/dependencies.js +0 -47
  246. package/dist/mcp/tools/dependencies.js.map +0 -1
  247. package/dist/mcp/tools/stats.d.ts.map +0 -1
  248. package/dist/mcp/tools/stats.js +0 -46
  249. package/dist/mcp/tools/stats.js.map +0 -1
  250. package/dist/mcp/tools/velocity.d.ts.map +0 -1
  251. package/dist/mcp/tools/velocity.js +0 -25
  252. package/dist/mcp/tools/velocity.js.map +0 -1
  253. package/dist/web/dashboard/dist/assets/gitnexus-tab-D7If6lxT.js +0 -312
  254. package/dist/web/dashboard/dist/assets/graph-tab-Dp7PfUEJ.js +0 -1
  255. package/dist/web/dashboard/dist/assets/index-BUl7yWBP.css +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../src/mcp/tools/analyze.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"import-prd.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/import-prd.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAMpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA+F7E"}
1
+ {"version":3,"file":"import-prd.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/import-prd.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAQpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA2G7E"}
@@ -3,6 +3,8 @@ import { z } from "zod/v4";
3
3
  import { readPrdFile } from "../../core/parser/read-file.js";
4
4
  import { extractEntities } from "../../core/parser/extract.js";
5
5
  import { convertToGraph } from "../../core/importer/prd-to-graph.js";
6
+ import { KnowledgeStore } from "../../core/store/knowledge-store.js";
7
+ import { indexPrdContent } from "../../core/rag/prd-indexer.js";
6
8
  import { logger } from "../../core/utils/logger.js";
7
9
  export function registerImportPrd(server, store) {
8
10
  server.tool("import_prd", "Import a PRD file and convert it into graph nodes and edges. Use force=true to re-import a previously imported file (replaces old nodes).", {
@@ -49,12 +51,23 @@ export function registerImportPrd(server, store) {
49
51
  store.bulkInsert(nodes, edges);
50
52
  // 7. Record import
51
53
  store.recordImport(sourceFileName, stats.nodesCreated, stats.edgesCreated);
52
- // 8. Snapshot after import
54
+ // 8. Index PRD text into knowledge store for cross-phase RAG
55
+ let knowledgeDocsIndexed = 0;
56
+ try {
57
+ const knowledgeStore = new KnowledgeStore(store.getDb());
58
+ const indexResult = indexPrdContent(knowledgeStore, content, sourceFileName, "ANALYZE");
59
+ knowledgeDocsIndexed = indexResult.documentsIndexed;
60
+ }
61
+ catch (err) {
62
+ logger.warn("tool:import_prd:knowledge_index_failed", { error: String(err) });
63
+ }
64
+ // 9. Snapshot after import
53
65
  store.createSnapshot();
54
66
  logger.info("tool:import_prd:ok", {
55
67
  sourceFile: sourceFileName,
56
68
  nodesCreated: stats.nodesCreated,
57
69
  edgesCreated: stats.edgesCreated,
70
+ knowledgeDocsIndexed,
58
71
  });
59
72
  return {
60
73
  content: [
@@ -65,6 +78,7 @@ export function registerImportPrd(server, store) {
65
78
  sourceFile: sourceFileName,
66
79
  originalSizeChars: sizeBytes,
67
80
  ...stats,
81
+ knowledgeDocsIndexed,
68
82
  ...(cleared
69
83
  ? {
70
84
  reimported: true,
@@ -1 +1 @@
1
- {"version":3,"file":"import-prd.js","sourceRoot":"","sources":["../../../src/mcp/tools/import-prd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import-prd.js","sourceRoot":"","sources":["../../../src/mcp/tools/import-prd.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AA8BpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA+B5E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AA4BpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA6B5E"}
@@ -4,17 +4,14 @@ import { registerList } from "./list.js";
4
4
  import { registerShow } from "./show.js";
5
5
  import { registerNext } from "./next.js";
6
6
  import { registerUpdateStatus } from "./update-status.js";
7
- import { registerStats } from "./stats.js";
7
+ import { registerMetrics } from "./metrics.js";
8
8
  import { registerContext } from "./context.js";
9
9
  import { registerUpdateNode } from "./update-node.js";
10
10
  import { registerDeleteNode } from "./delete-node.js";
11
11
  import { registerSearch } from "./search.js";
12
12
  import { registerRagContext } from "./rag-context.js";
13
- import { registerDecompose } from "./decompose.js";
14
- import { registerVelocity } from "./velocity.js";
13
+ import { registerAnalyze } from "./analyze.js";
15
14
  import { registerEdge } from "./edge.js";
16
- import { registerDependencies } from "./dependencies.js";
17
- import { registerBulkUpdateStatus } from "./bulk-update-status.js";
18
15
  import { registerSnapshot } from "./snapshot.js";
19
16
  import { registerAddNode } from "./add-node.js";
20
17
  import { registerExport } from "./export.js";
@@ -23,6 +20,7 @@ import { registerCloneNode } from "./clone-node.js";
23
20
  import { registerReindexKnowledge } from "./reindex-knowledge.js";
24
21
  import { registerSyncStackDocs } from "./sync-stack-docs.js";
25
22
  import { registerValidateTask } from "./validate-task.js";
23
+ import { registerValidateAc } from "./validate-ac.js";
26
24
  import { registerPlanSprint } from "./plan-sprint.js";
27
25
  import { registerSetPhase } from "./set-phase.js";
28
26
  import { wrapToolsWithLifecycle } from "../lifecycle-wrapper.js";
@@ -33,17 +31,14 @@ export function registerAllTools(server, store) {
33
31
  registerShow(server, store);
34
32
  registerNext(server, store);
35
33
  registerUpdateStatus(server, store);
36
- registerStats(server, store);
34
+ registerMetrics(server, store);
37
35
  registerContext(server, store);
38
36
  registerUpdateNode(server, store);
39
37
  registerDeleteNode(server, store);
40
38
  registerSearch(server, store);
41
39
  registerRagContext(server, store);
42
- registerDecompose(server, store);
43
- registerVelocity(server, store);
40
+ registerAnalyze(server, store);
44
41
  registerEdge(server, store);
45
- registerDependencies(server, store);
46
- registerBulkUpdateStatus(server, store);
47
42
  registerSnapshot(server, store);
48
43
  registerAddNode(server, store);
49
44
  registerExport(server, store);
@@ -52,6 +47,7 @@ export function registerAllTools(server, store) {
52
47
  registerReindexKnowledge(server, store);
53
48
  registerSyncStackDocs(server, store);
54
49
  registerValidateTask(server, store);
50
+ registerValidateAc(server, store);
55
51
  registerPlanSprint(server, store);
56
52
  registerSetPhase(server, store);
57
53
  // Wrap all registered tool responses with lifecycle context
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { SqliteStore } from "../../core/store/sqlite-store.js";
3
- export declare function registerVelocity(server: McpServer, store: SqliteStore): void;
4
- //# sourceMappingURL=velocity.d.ts.map
3
+ export declare function registerMetrics(server: McpServer, store: SqliteStore): void;
4
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/metrics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAKpE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAoF3E"}
@@ -0,0 +1,69 @@
1
+ import { z } from "zod/v4";
2
+ import { calculateVelocity } from "../../core/planner/velocity.js";
3
+ import { buildTaskContext } from "../../core/context/compact-context.js";
4
+ import { logger } from "../../core/utils/logger.js";
5
+ export function registerMetrics(server, store) {
6
+ server.tool("metrics", "Show project metrics. Mode 'stats' returns aggregate graph statistics; mode 'velocity' returns sprint velocity metrics.", {
7
+ mode: z.enum(["stats", "velocity"]).describe("Metrics mode: 'stats' for graph statistics, 'velocity' for sprint velocity"),
8
+ sprint: z.string().optional().describe("Filter velocity results to a specific sprint (only used in velocity mode)"),
9
+ }, async ({ mode, sprint }) => {
10
+ logger.debug("tool:metrics", { mode, sprint });
11
+ if (mode === "velocity") {
12
+ const doc = store.toGraphDocument();
13
+ const summary = calculateVelocity(doc);
14
+ if (sprint) {
15
+ summary.sprints = summary.sprints.filter((s) => s.sprint === sprint);
16
+ }
17
+ logger.info("tool:metrics:velocity:ok", { sprintCount: summary.sprints.length });
18
+ return {
19
+ content: [
20
+ {
21
+ type: "text",
22
+ text: JSON.stringify({ ok: true, mode: "velocity", ...summary }, null, 2),
23
+ },
24
+ ],
25
+ };
26
+ }
27
+ // mode === "stats"
28
+ const stats = store.getStats();
29
+ const project = store.getProject();
30
+ let contextReduction = null;
31
+ if (stats.totalNodes > 0) {
32
+ const allNodes = store.getAllNodes();
33
+ const taskNodes = allNodes.filter((n) => n.type === "task" || n.type === "subtask");
34
+ if (taskNodes.length > 0) {
35
+ let totalReduction = 0;
36
+ let sampled = 0;
37
+ for (const node of taskNodes) {
38
+ const ctx = buildTaskContext(store, node.id);
39
+ if (ctx) {
40
+ totalReduction += ctx.metrics.reductionPercent;
41
+ sampled++;
42
+ }
43
+ }
44
+ if (sampled > 0) {
45
+ contextReduction = {
46
+ avgReductionPercent: Math.round(totalReduction / sampled),
47
+ sampleSize: sampled,
48
+ };
49
+ }
50
+ }
51
+ }
52
+ logger.info("tool:metrics:stats:ok", { totalNodes: stats.totalNodes, totalEdges: stats.totalEdges });
53
+ return {
54
+ content: [
55
+ {
56
+ type: "text",
57
+ text: JSON.stringify({
58
+ ok: true,
59
+ mode: "stats",
60
+ project: project?.name ?? null,
61
+ ...stats,
62
+ contextReduction,
63
+ }, null, 2),
64
+ },
65
+ ],
66
+ };
67
+ });
68
+ }
69
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/mcp/tools/metrics.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"next.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/next.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAIpE,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAuCxE"}
1
+ {"version":3,"file":"next.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/next.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAKpE,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAsDxE"}
@@ -1,10 +1,11 @@
1
- import { findNextTask } from "../../core/planner/next-task.js";
1
+ import { findEnhancedNextTask } from "../../core/planner/enhanced-next.js";
2
+ import { generateTddHints } from "../../core/implementer/tdd-checker.js";
2
3
  import { logger } from "../../core/utils/logger.js";
3
4
  export function registerNext(server, store) {
4
- server.tool("next", "Suggest the next best task to work on based on priority, dependencies, and size", {}, async () => {
5
+ server.tool("next", "Suggest the next best task to work on based on priority, dependencies, size, knowledge coverage, and velocity. Includes TDD hints from acceptance criteria.", {}, async () => {
5
6
  logger.debug("tool:next", {});
6
7
  const doc = store.toGraphDocument();
7
- const result = findNextTask(doc);
8
+ const result = findEnhancedNextTask(doc, store);
8
9
  if (!result) {
9
10
  logger.info("tool:next:ok", { found: false });
10
11
  return {
@@ -18,12 +19,25 @@ export function registerNext(server, store) {
18
19
  ],
19
20
  };
20
21
  }
21
- logger.info("tool:next:ok", { found: true, nodeId: result.node.id });
22
+ const tddHints = generateTddHints(result.task.node);
23
+ logger.info("tool:next:ok", {
24
+ found: true,
25
+ nodeId: result.task.node.id,
26
+ knowledgeCoverage: result.knowledgeCoverage,
27
+ tddHints: tddHints.length,
28
+ });
22
29
  return {
23
30
  content: [
24
31
  {
25
32
  type: "text",
26
- text: JSON.stringify({ node: result.node, reason: result.reason }, null, 2),
33
+ text: JSON.stringify({
34
+ node: result.task.node,
35
+ reason: result.task.reason,
36
+ knowledgeCoverage: result.knowledgeCoverage,
37
+ velocityContext: result.velocityContext,
38
+ enhancedReason: result.enhancedReason,
39
+ tddHints,
40
+ }, null, 2),
27
41
  },
28
42
  ],
29
43
  };
@@ -1 +1 @@
1
- {"version":3,"file":"next.js","sourceRoot":"","sources":["../../../src/mcp/tools/next.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,UAAU,YAAY,CAAC,MAAiB,EAAE,KAAkB;IAChE,MAAM,CAAC,IAAI,CACT,MAAM,EACN,iFAAiF,EACjF,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAEjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9C,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,kEAAkE;yBAC5E,CAAC;qBACH;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACrE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAC5C,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"next.js","sourceRoot":"","sources":["../../../src/mcp/tools/next.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,UAAU,YAAY,CAAC,MAAiB,EAAE,KAAkB;IAChE,MAAM,CAAC,IAAI,CACT,MAAM,EACN,6JAA6J,EAC7J,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9C,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,kEAAkE;yBAC5E,CAAC;qBACH;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpD,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE;YAC1B,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC3B,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,QAAQ,EAAE,QAAQ,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;wBACtB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;wBAC1B,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;wBAC3C,eAAe,EAAE,MAAM,CAAC,eAAe;wBACvC,cAAc,EAAE,MAAM,CAAC,cAAc;wBACrC,QAAQ;qBACT,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"plan-sprint.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/plan-sprint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAKpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA0D9E"}
1
+ {"version":3,"file":"plan-sprint.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/plan-sprint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAMpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA6E9E"}
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod/v4";
2
2
  import { generatePlanningReport } from "../../core/planner/planning-report.js";
3
3
  import { findEnhancedNextTask } from "../../core/planner/enhanced-next.js";
4
+ import { KnowledgeStore } from "../../core/store/knowledge-store.js";
4
5
  import { logger } from "../../core/utils/logger.js";
5
6
  export function registerPlanSprint(server, store) {
6
7
  server.tool("plan_sprint", "Generate a sprint planning report with recommended task order, missing docs, risk assessment, and velocity-based estimates.", {
@@ -42,6 +43,25 @@ export function registerPlanSprint(server, store) {
42
43
  }
43
44
  // Default: full planning report
44
45
  const report = generatePlanningReport(doc, store);
46
+ // Index sprint plan into knowledge store for cross-phase RAG
47
+ try {
48
+ const knowledgeStore = new KnowledgeStore(store.getDb());
49
+ const planText = JSON.stringify(report, null, 2);
50
+ const sourceId = `sprint_plan:${new Date().toISOString()}`;
51
+ knowledgeStore.insert({
52
+ sourceType: "sprint_plan",
53
+ sourceId,
54
+ title: "Sprint Planning Report",
55
+ content: planText.length > 2000 ? planText.slice(0, 2000) : planText,
56
+ metadata: {
57
+ phase: "PLAN",
58
+ generatedAt: new Date().toISOString(),
59
+ },
60
+ });
61
+ }
62
+ catch (err) {
63
+ logger.warn("tool:plan_sprint:knowledge_index_failed", { error: String(err) });
64
+ }
45
65
  logger.info("tool:plan_sprint:ok", { mode: "report" });
46
66
  return {
47
67
  content: [{
@@ -1 +1 @@
1
- {"version":3,"file":"plan-sprint.js","sourceRoot":"","sources":["../../../src/mcp/tools/plan-sprint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,KAAkB;IACtE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,6HAA6H,EAC7H;QACE,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aACxB,QAAQ,EAAE;aACV,QAAQ,CAAC,0FAA0F,CAAC;KACxG,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACjB,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QAEpC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;yBACxD,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAClF,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,IAAI,EAAE;gCACJ,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gCACvB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;gCAC7B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gCAC3B,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;gCACnC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;6BAChC;4BACD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;4BAC3C,eAAe,EAAE,MAAM,CAAC,eAAe;4BACvC,cAAc,EAAE,MAAM,CAAC,cAAc;yBACtC,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAED,gCAAgC;QAChC,MAAM,MAAM,GAAG,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAElD,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvD,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"plan-sprint.js","sourceRoot":"","sources":["../../../src/mcp/tools/plan-sprint.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rag-context.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/rag-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAKpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAsD9E"}
1
+ {"version":3,"file":"rag-context.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/rag-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAMpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAoE9E"}
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod/v4";
2
2
  import { ragBuildContext } from "../../core/context/rag-context.js";
3
3
  import { assembleContext } from "../../core/context/context-assembler.js";
4
+ import { detectCurrentPhase } from "../../core/planner/lifecycle-phase.js";
4
5
  import { logger } from "../../core/utils/logger.js";
5
6
  export function registerRagContext(server, store) {
6
7
  server.tool("rag_context", "Build a RAG context from a natural language query. Returns relevant nodes with expanded subgraph context, managed within a token budget. Supports detail levels: summary (~20 tok/node), standard (~150 tok/node), deep (~500+ tok/node with knowledge).", {
@@ -19,13 +20,27 @@ export function registerRagContext(server, store) {
19
20
  }, async ({ query, tokenBudget, detail }) => {
20
21
  logger.debug("tool:rag_context", { query, tier: detail });
21
22
  const budget = tokenBudget ?? 4000;
23
+ // Detect current lifecycle phase for phase-aware knowledge boosting
24
+ let currentPhase;
25
+ try {
26
+ const doc = store.toGraphDocument();
27
+ const phaseOverride = store.getProjectSetting("lifecycle_phase_override");
28
+ currentPhase = detectCurrentPhase(doc, {
29
+ phaseOverride: phaseOverride ? phaseOverride : null,
30
+ });
31
+ }
32
+ catch {
33
+ // Phase detection may fail if no project loaded — proceed without phase
34
+ logger.debug("tool:rag_context:phase_detection_skipped");
35
+ }
22
36
  if (detail) {
23
- // Use tiered context assembler
37
+ // Use tiered context assembler with phase awareness
24
38
  const ctx = assembleContext(store, query, {
25
39
  tokenBudget: budget,
26
40
  tier: detail,
41
+ phase: currentPhase,
27
42
  });
28
- logger.info("tool:rag_context:ok", { query, tier: detail });
43
+ logger.info("tool:rag_context:ok", { query, tier: detail, phase: currentPhase });
29
44
  return {
30
45
  content: [
31
46
  {
@@ -35,9 +50,9 @@ export function registerRagContext(server, store) {
35
50
  ],
36
51
  };
37
52
  }
38
- // Default: use existing RAG context builder (backward compatible)
39
- const ctx = ragBuildContext(store, query, budget);
40
- logger.info("tool:rag_context:ok", { query, tier: "standard" });
53
+ // Default: use existing RAG context builder with phase awareness
54
+ const ctx = ragBuildContext(store, query, budget, currentPhase);
55
+ logger.info("tool:rag_context:ok", { query, tier: "standard", phase: currentPhase });
41
56
  return {
42
57
  content: [
43
58
  {
@@ -1 +1 @@
1
- {"version":3,"file":"rag-context.js","sourceRoot":"","sources":["../../../src/mcp/tools/rag-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,KAAkB;IACtE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,0PAA0P,EAC1P;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAClE,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,GAAG,CAAC;aACR,GAAG,CAAC,KAAK,CAAC;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,sDAAsD,CAAC;QACnE,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;aACrC,QAAQ,EAAE;aACV,QAAQ,CAAC,kHAAkH,CAAC;KAChI,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;QACvC,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,WAAW,IAAI,IAAI,CAAC;QAEnC,IAAI,MAAM,EAAE,CAAC;YACX,+BAA+B;YAC/B,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE;gBACxC,WAAW,EAAE,MAAM;gBACnB,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5D,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;qBACnC;iBACF;aACF,CAAC;QACJ,CAAC;QAED,kEAAkE;QAClE,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAElD,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAChE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;iBACnC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"rag-context.js","sourceRoot":"","sources":["../../../src/mcp/tools/rag-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAuB,MAAM,uCAAuC,CAAC;AAChG,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,KAAkB;IACtE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,0PAA0P,EAC1P;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAClE,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,GAAG,CAAC;aACR,GAAG,CAAC,KAAK,CAAC;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,sDAAsD,CAAC;QACnE,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;aACrC,QAAQ,EAAE;aACV,QAAQ,CAAC,kHAAkH,CAAC;KAChI,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;QACvC,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,WAAW,IAAI,IAAI,CAAC;QAEnC,oEAAoE;QACpE,IAAI,YAAwC,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;YACpC,MAAM,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;YAC1E,YAAY,GAAG,kBAAkB,CAAC,GAAG,EAAE;gBACrC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,aAA+B,CAAC,CAAC,CAAC,IAAI;aACtE,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,wEAAwE;YACxE,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,oDAAoD;YACpD,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE;gBACxC,WAAW,EAAE,MAAM;gBACnB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,YAAY;aACpB,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;YACjF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;qBACnC;iBACF;aACF,CAAC;QACJ,CAAC;QAED,iEAAiE;QACjE,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QAEhE,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QACrF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;iBACnC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"set-phase.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/set-phase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAMpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAqD5E"}
1
+ {"version":3,"file":"set-phase.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/set-phase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAQpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA2H5E"}
@@ -1,18 +1,28 @@
1
1
  import { z } from "zod/v4";
2
- import { detectCurrentPhase, getPhaseGuidance } from "../../core/planner/lifecycle-phase.js";
2
+ import { detectCurrentPhase, getPhaseGuidance, validatePhaseTransition } from "../../core/planner/lifecycle-phase.js";
3
+ import { KnowledgeStore } from "../../core/store/knowledge-store.js";
4
+ import { generateAndIndexPhaseSummary } from "../../core/rag/phase-summary.js";
3
5
  import { logger } from "../../core/utils/logger.js";
4
6
  const VALID_PHASES = ["ANALYZE", "DESIGN", "PLAN", "IMPLEMENT", "VALIDATE", "REVIEW", "HANDOFF", "LISTENING", "auto"];
5
7
  export function registerSetPhase(server, store) {
6
- server.tool("set_phase", "Override lifecycle phase detection or reset to auto-detection", {
8
+ server.tool("set_phase", "Override lifecycle phase detection or reset to auto-detection. Use mode to switch between strict/advisory enforcement.", {
7
9
  phase: z.enum(VALID_PHASES).describe("Lifecycle phase to force, or 'auto' to reset to automatic detection"),
8
- }, async ({ phase }) => {
9
- logger.debug("tool:set_phase", { phase });
10
+ force: z.boolean().optional().describe("Force phase transition even if gate conditions are not met (strict mode only)"),
11
+ mode: z.enum(["strict", "advisory"]).optional().describe("Set lifecycle enforcement mode: 'strict' blocks tools, 'advisory' only warns"),
12
+ }, async ({ phase, force, mode }) => {
13
+ logger.debug("tool:set_phase", { phase, force, mode });
14
+ // Persist strictness mode if provided
15
+ if (mode) {
16
+ store.setProjectSetting("lifecycle_strictness_mode", mode);
17
+ logger.info("tool:set_phase:mode_changed", { mode });
18
+ }
10
19
  if (phase === "auto") {
11
20
  store.setProjectSetting("lifecycle_phase_override", "");
12
21
  const doc = store.toGraphDocument();
13
22
  const detectedPhase = detectCurrentPhase(doc);
14
23
  const guidance = getPhaseGuidance(detectedPhase);
15
- logger.info("tool:set_phase:ok", { action: "auto", detectedPhase });
24
+ const currentMode = mode ?? store.getProjectSetting("lifecycle_strictness_mode") ?? "strict";
25
+ logger.info("tool:set_phase:ok", { action: "auto", detectedPhase, mode: currentMode });
16
26
  return {
17
27
  content: [
18
28
  {
@@ -21,15 +31,61 @@ export function registerSetPhase(server, store) {
21
31
  ok: true,
22
32
  action: "reset_to_auto",
23
33
  detectedPhase,
34
+ mode: currentMode,
24
35
  reminder: guidance.reminder,
25
36
  }, null, 2),
26
37
  },
27
38
  ],
28
39
  };
29
40
  }
41
+ // Validate phase transition gate
42
+ const doc = store.toGraphDocument();
43
+ const currentPhaseOverride = store.getProjectSetting("lifecycle_phase_override");
44
+ const currentPhase = currentPhaseOverride
45
+ ? currentPhaseOverride
46
+ : detectCurrentPhase(doc);
47
+ const currentMode = mode ?? store.getProjectSetting("lifecycle_strictness_mode") ?? "strict";
48
+ if (currentPhase !== phase) {
49
+ const gateResult = validatePhaseTransition(doc, currentPhase, phase);
50
+ if (!gateResult.allowed && currentMode === "strict" && !force) {
51
+ logger.warn("tool:set_phase:gate_blocked", { from: currentPhase, to: phase, unmetConditions: gateResult.unmetConditions });
52
+ return {
53
+ content: [
54
+ {
55
+ type: "text",
56
+ text: JSON.stringify({
57
+ ok: false,
58
+ error: "phase_gate_blocked",
59
+ from: currentPhase,
60
+ to: phase,
61
+ reason: gateResult.reason,
62
+ unmetConditions: gateResult.unmetConditions,
63
+ hint: "Use force:true para bypass, ou complete as condições listadas",
64
+ }, null, 2),
65
+ },
66
+ ],
67
+ isError: true,
68
+ };
69
+ }
70
+ if (!gateResult.allowed && force) {
71
+ logger.warn("tool:set_phase:forced", { from: currentPhase, to: phase, unmetConditions: gateResult.unmetConditions });
72
+ }
73
+ }
74
+ // Generate phase summary when transitioning between different phases
75
+ let phaseSummaryIndexed = false;
76
+ if (currentPhase !== phase) {
77
+ try {
78
+ const knowledgeStore = new KnowledgeStore(store.getDb());
79
+ const summaryResult = generateAndIndexPhaseSummary(knowledgeStore, doc, currentPhase, phase);
80
+ phaseSummaryIndexed = summaryResult.indexed;
81
+ }
82
+ catch (err) {
83
+ logger.warn("tool:set_phase:summary_failed", { error: String(err) });
84
+ }
85
+ }
30
86
  store.setProjectSetting("lifecycle_phase_override", phase);
31
87
  const guidance = getPhaseGuidance(phase);
32
- logger.info("tool:set_phase:ok", { action: "override", phase });
88
+ logger.info("tool:set_phase:ok", { action: "override", phase, mode: currentMode, phaseSummaryIndexed });
33
89
  return {
34
90
  content: [
35
91
  {
@@ -38,7 +94,9 @@ export function registerSetPhase(server, store) {
38
94
  ok: true,
39
95
  action: "override",
40
96
  phase,
97
+ mode: currentMode,
41
98
  reminder: guidance.reminder,
99
+ phaseSummaryIndexed,
42
100
  }, null, 2),
43
101
  },
44
102
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"set-phase.js","sourceRoot":"","sources":["../../../src/mcp/tools/set-phase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAC7F,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,CAAU,CAAC;AAE/H,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,KAAkB;IACpE,MAAM,CAAC,IAAI,CACT,WAAW,EACX,+DAA+D,EAC/D;QACE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAClC,qEAAqE,CACtE;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAE1C,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,KAAK,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;YACxD,MAAM,GAAG,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;YACpC,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;YAEjD,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;YACpE,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,EAAE,EAAE,IAAI;4BACR,MAAM,EAAE,eAAe;4BACvB,aAAa;4BACb,QAAQ,EAAE,QAAQ,CAAC,QAAQ;yBAC5B,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ;iBACF;aACF,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAEzC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,EAAE,EAAE,IAAI;wBACR,MAAM,EAAE,UAAU;wBAClB,KAAK;wBACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ;qBAC5B,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"set-phase.js","sourceRoot":"","sources":["../../../src/mcp/tools/set-phase.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update-status.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/update-status.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAMpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAkChF"}
1
+ {"version":3,"file":"update-status.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/update-status.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAMpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAoDhF"}