@mcp-graph-workflow/mcp-graph 5.5.0 → 5.5.2

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 (291) hide show
  1. package/dist/api/routes/integrations.d.ts.map +1 -1
  2. package/dist/api/routes/integrations.js +2 -1
  3. package/dist/api/routes/integrations.js.map +1 -1
  4. package/dist/api/routes/knowledge.js +1 -1
  5. package/dist/api/routes/knowledge.js.map +1 -1
  6. package/dist/api/routes/nodes.js +3 -3
  7. package/dist/api/routes/nodes.js.map +1 -1
  8. package/dist/cli/commands/doctor.d.ts.map +1 -1
  9. package/dist/cli/commands/doctor.js +2 -1
  10. package/dist/cli/commands/doctor.js.map +1 -1
  11. package/dist/cli/commands/import-cmd.d.ts.map +1 -1
  12. package/dist/cli/commands/import-cmd.js +2 -1
  13. package/dist/cli/commands/import-cmd.js.map +1 -1
  14. package/dist/cli/commands/index-cmd.d.ts.map +1 -1
  15. package/dist/cli/commands/index-cmd.js +2 -1
  16. package/dist/cli/commands/index-cmd.js.map +1 -1
  17. package/dist/cli/commands/init.d.ts.map +1 -1
  18. package/dist/cli/commands/init.js +2 -1
  19. package/dist/cli/commands/init.js.map +1 -1
  20. package/dist/cli/commands/stats.d.ts.map +1 -1
  21. package/dist/cli/commands/stats.js +2 -1
  22. package/dist/cli/commands/stats.js.map +1 -1
  23. package/dist/cli/commands/update.d.ts.map +1 -1
  24. package/dist/cli/commands/update.js +3 -2
  25. package/dist/cli/commands/update.js.map +1 -1
  26. package/dist/core/analyzer/ac-validator.d.ts.map +1 -1
  27. package/dist/core/analyzer/ac-validator.js +8 -2
  28. package/dist/core/analyzer/ac-validator.js.map +1 -1
  29. package/dist/core/analyzer/prd-quality.d.ts.map +1 -1
  30. package/dist/core/analyzer/prd-quality.js +9 -13
  31. package/dist/core/analyzer/prd-quality.js.map +1 -1
  32. package/dist/core/analyzer/scope-analyzer.d.ts.map +1 -1
  33. package/dist/core/analyzer/scope-analyzer.js +1 -2
  34. package/dist/core/analyzer/scope-analyzer.js.map +1 -1
  35. package/dist/core/code/code-types.d.ts +4 -4
  36. package/dist/core/config/ai-memory-generator.d.ts.map +1 -1
  37. package/dist/core/config/ai-memory-generator.js +10 -38
  38. package/dist/core/config/ai-memory-generator.js.map +1 -1
  39. package/dist/core/context/compact-context.d.ts.map +1 -1
  40. package/dist/core/context/compact-context.js +14 -4
  41. package/dist/core/context/compact-context.js.map +1 -1
  42. package/dist/core/context/context-assembler.d.ts.map +1 -1
  43. package/dist/core/context/context-assembler.js +22 -3
  44. package/dist/core/context/context-assembler.js.map +1 -1
  45. package/dist/core/context/rag-context.d.ts.map +1 -1
  46. package/dist/core/context/rag-context.js +23 -3
  47. package/dist/core/context/rag-context.js.map +1 -1
  48. package/dist/core/designer/coupling-analyzer.d.ts.map +1 -1
  49. package/dist/core/designer/coupling-analyzer.js +3 -0
  50. package/dist/core/designer/coupling-analyzer.js.map +1 -1
  51. package/dist/core/designer/definition-of-ready.d.ts.map +1 -1
  52. package/dist/core/designer/definition-of-ready.js +1 -11
  53. package/dist/core/designer/definition-of-ready.js.map +1 -1
  54. package/dist/core/designer/interface-checker.d.ts.map +1 -1
  55. package/dist/core/designer/interface-checker.js +2 -1
  56. package/dist/core/designer/interface-checker.js.map +1 -1
  57. package/dist/core/designer/traceability-matrix.d.ts.map +1 -1
  58. package/dist/core/designer/traceability-matrix.js +7 -3
  59. package/dist/core/designer/traceability-matrix.js.map +1 -1
  60. package/dist/core/graph/mermaid-export.d.ts +1 -0
  61. package/dist/core/graph/mermaid-export.d.ts.map +1 -1
  62. package/dist/core/graph/mermaid-export.js +14 -7
  63. package/dist/core/graph/mermaid-export.js.map +1 -1
  64. package/dist/core/handoff/delivery-checklist.d.ts.map +1 -1
  65. package/dist/core/handoff/delivery-checklist.js +5 -14
  66. package/dist/core/handoff/delivery-checklist.js.map +1 -1
  67. package/dist/core/implementer/definition-of-done.d.ts.map +1 -1
  68. package/dist/core/implementer/definition-of-done.js +8 -18
  69. package/dist/core/implementer/definition-of-done.js.map +1 -1
  70. package/dist/core/implementer/sprint-progress.d.ts.map +1 -1
  71. package/dist/core/implementer/sprint-progress.js +1 -1
  72. package/dist/core/implementer/sprint-progress.js.map +1 -1
  73. package/dist/core/implementer/tdd-checker.d.ts +4 -0
  74. package/dist/core/implementer/tdd-checker.d.ts.map +1 -1
  75. package/dist/core/implementer/tdd-checker.js +18 -3
  76. package/dist/core/implementer/tdd-checker.js.map +1 -1
  77. package/dist/core/importer/prd-to-graph.d.ts.map +1 -1
  78. package/dist/core/importer/prd-to-graph.js +70 -1
  79. package/dist/core/importer/prd-to-graph.js.map +1 -1
  80. package/dist/core/listener/backlog-health.d.ts.map +1 -1
  81. package/dist/core/listener/backlog-health.js +12 -1
  82. package/dist/core/listener/backlog-health.js.map +1 -1
  83. package/dist/core/listener/feedback-readiness.d.ts.map +1 -1
  84. package/dist/core/listener/feedback-readiness.js +8 -14
  85. package/dist/core/listener/feedback-readiness.js.map +1 -1
  86. package/dist/core/parser/classify.d.ts.map +1 -1
  87. package/dist/core/parser/classify.js +10 -1
  88. package/dist/core/parser/classify.js.map +1 -1
  89. package/dist/core/parser/extract.d.ts.map +1 -1
  90. package/dist/core/parser/extract.js +29 -0
  91. package/dist/core/parser/extract.js.map +1 -1
  92. package/dist/core/planner/decompose.d.ts.map +1 -1
  93. package/dist/core/planner/decompose.js +1 -3
  94. package/dist/core/planner/decompose.js.map +1 -1
  95. package/dist/core/planner/lifecycle-phase.d.ts.map +1 -1
  96. package/dist/core/planner/lifecycle-phase.js +25 -14
  97. package/dist/core/planner/lifecycle-phase.js.map +1 -1
  98. package/dist/core/planner/next-task.d.ts.map +1 -1
  99. package/dist/core/planner/next-task.js +12 -3
  100. package/dist/core/planner/next-task.js.map +1 -1
  101. package/dist/core/planner/planning-report.d.ts.map +1 -1
  102. package/dist/core/planner/planning-report.js +2 -2
  103. package/dist/core/planner/planning-report.js.map +1 -1
  104. package/dist/core/planner/velocity.d.ts.map +1 -1
  105. package/dist/core/planner/velocity.js +1 -3
  106. package/dist/core/planner/velocity.js.map +1 -1
  107. package/dist/core/rag/phase-metadata.d.ts +2 -2
  108. package/dist/core/rag/phase-metadata.d.ts.map +1 -1
  109. package/dist/core/rag/phase-metadata.js +3 -4
  110. package/dist/core/rag/phase-metadata.js.map +1 -1
  111. package/dist/core/rag/phase-summary.d.ts.map +1 -1
  112. package/dist/core/rag/phase-summary.js +3 -3
  113. package/dist/core/rag/phase-summary.js.map +1 -1
  114. package/dist/core/reviewer/review-readiness.d.ts.map +1 -1
  115. package/dist/core/reviewer/review-readiness.js +5 -14
  116. package/dist/core/reviewer/review-readiness.js.map +1 -1
  117. package/dist/core/store/knowledge-store.js +2 -2
  118. package/dist/core/store/knowledge-store.js.map +1 -1
  119. package/dist/core/store/sqlite-store.js +1 -1
  120. package/dist/core/store/sqlite-store.js.map +1 -1
  121. package/dist/core/utils/ac-helpers.d.ts +14 -0
  122. package/dist/core/utils/ac-helpers.d.ts.map +1 -0
  123. package/dist/core/utils/ac-helpers.js +26 -0
  124. package/dist/core/utils/ac-helpers.js.map +1 -0
  125. package/dist/core/utils/constants.d.ts +10 -0
  126. package/dist/core/utils/constants.d.ts.map +1 -1
  127. package/dist/core/utils/constants.js +12 -0
  128. package/dist/core/utils/constants.js.map +1 -1
  129. package/dist/core/utils/errors.d.ts +2 -0
  130. package/dist/core/utils/errors.d.ts.map +1 -1
  131. package/dist/core/utils/errors.js +4 -0
  132. package/dist/core/utils/errors.js.map +1 -1
  133. package/dist/core/utils/grading.d.ts +8 -0
  134. package/dist/core/utils/grading.d.ts.map +1 -0
  135. package/dist/core/utils/grading.js +17 -0
  136. package/dist/core/utils/grading.js.map +1 -0
  137. package/dist/core/utils/node-type-sets.d.ts +17 -0
  138. package/dist/core/utils/node-type-sets.d.ts.map +1 -0
  139. package/dist/core/utils/node-type-sets.js +23 -0
  140. package/dist/core/utils/node-type-sets.js.map +1 -0
  141. package/dist/core/utils/xp-sizing.d.ts +16 -0
  142. package/dist/core/utils/xp-sizing.d.ts.map +1 -0
  143. package/dist/core/utils/xp-sizing.js +20 -0
  144. package/dist/core/utils/xp-sizing.js.map +1 -0
  145. package/dist/core/validator/definition-of-ready.d.ts.map +1 -1
  146. package/dist/core/validator/definition-of-ready.js +2 -12
  147. package/dist/core/validator/definition-of-ready.js.map +1 -1
  148. package/dist/core/validator/done-integrity-checker.d.ts.map +1 -1
  149. package/dist/core/validator/done-integrity-checker.js +1 -1
  150. package/dist/core/validator/done-integrity-checker.js.map +1 -1
  151. package/dist/core/validator/status-flow-checker.d.ts.map +1 -1
  152. package/dist/core/validator/status-flow-checker.js +1 -1
  153. package/dist/core/validator/status-flow-checker.js.map +1 -1
  154. package/dist/mcp/lifecycle-wrapper.d.ts +0 -4
  155. package/dist/mcp/lifecycle-wrapper.d.ts.map +1 -1
  156. package/dist/mcp/lifecycle-wrapper.js +5 -1
  157. package/dist/mcp/lifecycle-wrapper.js.map +1 -1
  158. package/dist/mcp/response-helpers.d.ts +20 -0
  159. package/dist/mcp/response-helpers.d.ts.map +1 -0
  160. package/dist/mcp/response-helpers.js +26 -0
  161. package/dist/mcp/response-helpers.js.map +1 -0
  162. package/dist/mcp/tools/add-node.d.ts.map +1 -1
  163. package/dist/mcp/tools/add-node.js +6 -16
  164. package/dist/mcp/tools/add-node.js.map +1 -1
  165. package/dist/mcp/tools/analyze.d.ts.map +1 -1
  166. package/dist/mcp/tools/analyze.js +29 -39
  167. package/dist/mcp/tools/analyze.js.map +1 -1
  168. package/dist/mcp/tools/clone-node.d.ts.map +1 -1
  169. package/dist/mcp/tools/clone-node.js +5 -28
  170. package/dist/mcp/tools/clone-node.js.map +1 -1
  171. package/dist/mcp/tools/context.d.ts.map +1 -1
  172. package/dist/mcp/tools/context.js +3 -14
  173. package/dist/mcp/tools/context.js.map +1 -1
  174. package/dist/mcp/tools/delete-node.d.ts.map +1 -1
  175. package/dist/mcp/tools/delete-node.js +3 -14
  176. package/dist/mcp/tools/delete-node.js.map +1 -1
  177. package/dist/mcp/tools/edge.d.ts.map +1 -1
  178. package/dist/mcp/tools/edge.js +18 -60
  179. package/dist/mcp/tools/edge.js.map +1 -1
  180. package/dist/mcp/tools/export.d.ts.map +1 -1
  181. package/dist/mcp/tools/export.js +14 -7
  182. package/dist/mcp/tools/export.js.map +1 -1
  183. package/dist/mcp/tools/import-prd.d.ts.map +1 -1
  184. package/dist/mcp/tools/import-prd.js +16 -34
  185. package/dist/mcp/tools/import-prd.js.map +1 -1
  186. package/dist/mcp/tools/init.d.ts.map +1 -1
  187. package/dist/mcp/tools/init.js +2 -8
  188. package/dist/mcp/tools/init.js.map +1 -1
  189. package/dist/mcp/tools/list-skills.d.ts.map +1 -1
  190. package/dist/mcp/tools/list-skills.js +16 -31
  191. package/dist/mcp/tools/list-skills.js.map +1 -1
  192. package/dist/mcp/tools/list.d.ts.map +1 -1
  193. package/dist/mcp/tools/list.js +12 -12
  194. package/dist/mcp/tools/list.js.map +1 -1
  195. package/dist/mcp/tools/manage-skill.d.ts.map +1 -1
  196. package/dist/mcp/tools/manage-skill.js +29 -86
  197. package/dist/mcp/tools/manage-skill.js.map +1 -1
  198. package/dist/mcp/tools/memory.d.ts.map +1 -1
  199. package/dist/mcp/tools/memory.js +17 -47
  200. package/dist/mcp/tools/memory.js.map +1 -1
  201. package/dist/mcp/tools/metrics.d.ts.map +1 -1
  202. package/dist/mcp/tools/metrics.js +9 -22
  203. package/dist/mcp/tools/metrics.js.map +1 -1
  204. package/dist/mcp/tools/move-node.d.ts.map +1 -1
  205. package/dist/mcp/tools/move-node.js +10 -36
  206. package/dist/mcp/tools/move-node.js.map +1 -1
  207. package/dist/mcp/tools/next.d.ts.map +1 -1
  208. package/dist/mcp/tools/next.js +22 -27
  209. package/dist/mcp/tools/next.js.map +1 -1
  210. package/dist/mcp/tools/node.d.ts.map +1 -1
  211. package/dist/mcp/tools/node.js +15 -37
  212. package/dist/mcp/tools/node.js.map +1 -1
  213. package/dist/mcp/tools/plan-sprint.d.ts.map +1 -1
  214. package/dist/mcp/tools/plan-sprint.js +15 -29
  215. package/dist/mcp/tools/plan-sprint.js.map +1 -1
  216. package/dist/mcp/tools/rag-context.d.ts.map +1 -1
  217. package/dist/mcp/tools/rag-context.js +5 -17
  218. package/dist/mcp/tools/rag-context.js.map +1 -1
  219. package/dist/mcp/tools/reindex-knowledge.d.ts.map +1 -1
  220. package/dist/mcp/tools/reindex-knowledge.js +2 -8
  221. package/dist/mcp/tools/reindex-knowledge.js.map +1 -1
  222. package/dist/mcp/tools/search.d.ts.map +1 -1
  223. package/dist/mcp/tools/search.js +2 -8
  224. package/dist/mcp/tools/search.js.map +1 -1
  225. package/dist/mcp/tools/set-phase.d.ts.map +1 -1
  226. package/dist/mcp/tools/set-phase.js +17 -46
  227. package/dist/mcp/tools/set-phase.js.map +1 -1
  228. package/dist/mcp/tools/show.d.ts.map +1 -1
  229. package/dist/mcp/tools/show.js +13 -24
  230. package/dist/mcp/tools/show.js.map +1 -1
  231. package/dist/mcp/tools/snapshot.d.ts.map +1 -1
  232. package/dist/mcp/tools/snapshot.js +5 -21
  233. package/dist/mcp/tools/snapshot.js.map +1 -1
  234. package/dist/mcp/tools/sync-stack-docs.d.ts.map +1 -1
  235. package/dist/mcp/tools/sync-stack-docs.js +8 -17
  236. package/dist/mcp/tools/sync-stack-docs.js.map +1 -1
  237. package/dist/mcp/tools/update-node.d.ts.map +1 -1
  238. package/dist/mcp/tools/update-node.js +3 -14
  239. package/dist/mcp/tools/update-node.js.map +1 -1
  240. package/dist/mcp/tools/update-status.d.ts.map +1 -1
  241. package/dist/mcp/tools/update-status.js +40 -24
  242. package/dist/mcp/tools/update-status.js.map +1 -1
  243. package/dist/mcp/tools/validate-ac.d.ts.map +1 -1
  244. package/dist/mcp/tools/validate-ac.js +2 -8
  245. package/dist/mcp/tools/validate-ac.js.map +1 -1
  246. package/dist/mcp/tools/validate-task.d.ts.map +1 -1
  247. package/dist/mcp/tools/validate-task.js +2 -6
  248. package/dist/mcp/tools/validate-task.js.map +1 -1
  249. package/dist/mcp/tools/validate.d.ts.map +1 -1
  250. package/dist/mcp/tools/validate.js +4 -10
  251. package/dist/mcp/tools/validate.js.map +1 -1
  252. package/dist/schemas/analyzer-schema.d.ts +7 -6
  253. package/dist/schemas/analyzer-schema.d.ts.map +1 -1
  254. package/dist/schemas/analyzer-schema.js +3 -1
  255. package/dist/schemas/analyzer-schema.js.map +1 -1
  256. package/dist/schemas/designer-schema.d.ts +16 -14
  257. package/dist/schemas/designer-schema.d.ts.map +1 -1
  258. package/dist/schemas/designer-schema.js +8 -15
  259. package/dist/schemas/designer-schema.js.map +1 -1
  260. package/dist/schemas/grade-schema.d.ts +13 -0
  261. package/dist/schemas/grade-schema.d.ts.map +1 -0
  262. package/dist/schemas/grade-schema.js +6 -0
  263. package/dist/schemas/grade-schema.js.map +1 -0
  264. package/dist/schemas/implementer-schema.d.ts +2 -0
  265. package/dist/schemas/implementer-schema.d.ts.map +1 -1
  266. package/dist/schemas/implementer-schema.js +6 -2
  267. package/dist/schemas/implementer-schema.js.map +1 -1
  268. package/dist/schemas/listener-schema.d.ts +2 -0
  269. package/dist/schemas/listener-schema.d.ts.map +1 -1
  270. package/dist/schemas/listener-schema.js +2 -0
  271. package/dist/schemas/listener-schema.js.map +1 -1
  272. package/dist/schemas/readiness-schema.d.ts +44 -0
  273. package/dist/schemas/readiness-schema.d.ts.map +1 -0
  274. package/dist/schemas/readiness-schema.js +22 -0
  275. package/dist/schemas/readiness-schema.js.map +1 -0
  276. package/dist/web/dashboard/dist/assets/{benchmark-tab-BW4QxI49.js → benchmark-tab-C5fwIqgM.js} +1 -1
  277. package/dist/web/dashboard/dist/assets/{constants-kpH_c6vY.js → constants-z0QkAiYv.js} +1 -1
  278. package/dist/web/dashboard/dist/assets/{context-tab-C5RAlXNW.js → context-tab-ChCyrRlr.js} +1 -1
  279. package/dist/web/dashboard/dist/assets/{gitnexus-tab-BnxxYl2F.js → gitnexus-tab-DnlGT63w.js} +1 -1
  280. package/dist/web/dashboard/dist/assets/{graph-tab-Cv_wQ6Az.js → graph-tab-DjV9RD41.js} +1 -1
  281. package/dist/web/dashboard/dist/assets/{graph-utils-Ds1zJyD1.js → graph-utils-C6bvcT4d.js} +1 -1
  282. package/dist/web/dashboard/dist/assets/{index-Bic_URMs.js → index-DlZhNCGR.js} +1 -1
  283. package/dist/web/dashboard/dist/assets/{index-BAeZDWWy.js → index-dCyMex_p.js} +2 -2
  284. package/dist/web/dashboard/dist/assets/{insights-tab-U_ATOqPu.js → insights-tab-Cj4f85vS.js} +1 -1
  285. package/dist/web/dashboard/dist/assets/{logs-tab-B8psCXuB.js → logs-tab-C4C2Vn8-.js} +1 -1
  286. package/dist/web/dashboard/dist/assets/{memories-tab-DcWok2by.js → memories-tab-NtNwoxbT.js} +1 -1
  287. package/dist/web/dashboard/dist/assets/{prd-backlog-tab-CjftveTc.js → prd-backlog-tab-Bxt7qiVG.js} +1 -1
  288. package/dist/web/dashboard/dist/assets/skills-tab-CIj4z1Ol.js +1 -0
  289. package/dist/web/dashboard/dist/index.html +1 -1
  290. package/package.json +1 -1
  291. package/dist/web/dashboard/dist/assets/skills-tab-Ddp1w4vS.js +0 -1
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod/v4";
2
2
  import { NodeNotFoundError } from "../../core/utils/errors.js";
3
3
  import { logger } from "../../core/utils/logger.js";
4
+ import { mcpText, mcpError } from "../response-helpers.js";
4
5
  export function registerShow(server, store) {
5
6
  server.tool("show", "Show detailed information about a specific node, including its edges and children", { id: z.string().describe("The node ID to inspect") }, async ({ id }) => {
6
7
  logger.debug("tool:show", { id });
@@ -8,35 +9,23 @@ export function registerShow(server, store) {
8
9
  if (!node) {
9
10
  const err = new NodeNotFoundError(id);
10
11
  logger.warn("tool:show:fail", { error: err.message });
11
- return {
12
- content: [
13
- { type: "text", text: JSON.stringify({ error: err.message }) },
14
- ],
15
- isError: true,
16
- };
12
+ return mcpError(err);
17
13
  }
18
14
  const edgesFrom = store.getEdgesFrom(id);
19
15
  const edgesTo = store.getEdgesTo(id);
20
16
  const children = store.getChildNodes(id);
21
17
  logger.info("tool:show:ok", { id, edgesOut: edgesFrom.length, edgesIn: edgesTo.length, children: children.length });
22
- return {
23
- content: [
24
- {
25
- type: "text",
26
- text: JSON.stringify({
27
- node,
28
- outgoingEdges: edgesFrom,
29
- incomingEdges: edgesTo,
30
- children: children.map((c) => ({
31
- id: c.id,
32
- type: c.type,
33
- title: c.title,
34
- status: c.status,
35
- })),
36
- }, null, 2),
37
- },
38
- ],
39
- };
18
+ return mcpText({
19
+ node,
20
+ outgoingEdges: edgesFrom,
21
+ incomingEdges: edgesTo,
22
+ children: children.map((c) => ({
23
+ id: c.id,
24
+ type: c.type,
25
+ title: c.title,
26
+ status: c.status,
27
+ })),
28
+ });
40
29
  });
41
30
  }
42
31
  //# sourceMappingURL=show.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/mcp/tools/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,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,mFAAmF,EACnF,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,EACrD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QACf,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE;iBACxE;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAEzC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACpH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,IAAI;wBACJ,aAAa,EAAE,SAAS;wBACxB,aAAa,EAAE,OAAO;wBACtB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;4BAC7B,EAAE,EAAE,CAAC,CAAC,EAAE;4BACR,IAAI,EAAE,CAAC,CAAC,IAAI;4BACZ,KAAK,EAAE,CAAC,CAAC,KAAK;4BACd,MAAM,EAAE,CAAC,CAAC,MAAM;yBACjB,CAAC,CAAC;qBACJ,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/mcp/tools/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,UAAU,YAAY,CAAC,MAAiB,EAAE,KAAkB;IAChE,MAAM,CAAC,IAAI,CACT,MAAM,EACN,mFAAmF,EACnF,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,EACrD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QACf,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAEzC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACpH,OAAO,OAAO,CAAC;YACb,IAAI;YACJ,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,OAAO;YACtB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC,CAAC;SACJ,CAAC,CAAC;IACL,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/snapshot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAGpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAiD5E"}
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/snapshot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAIpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAgC5E"}
@@ -1,5 +1,6 @@
1
1
  import { z } from "zod/v4";
2
2
  import { logger } from "../../core/utils/logger.js";
3
+ import { mcpText, mcpError } from "../response-helpers.js";
3
4
  export function registerSnapshot(server, store) {
4
5
  server.tool("snapshot", "Manage graph snapshots: create, list, or restore", {
5
6
  action: z.enum(["create", "list", "restore"]).describe("Action to perform"),
@@ -9,37 +10,20 @@ export function registerSnapshot(server, store) {
9
10
  if (action === "create") {
10
11
  const id = store.createSnapshot();
11
12
  logger.info("tool:snapshot:ok", { action: "create", snapshotId: id });
12
- return {
13
- content: [
14
- { type: "text", text: JSON.stringify({ ok: true, snapshotId: id }, null, 2) },
15
- ],
16
- };
13
+ return mcpText({ ok: true, snapshotId: id });
17
14
  }
18
15
  if (action === "list") {
19
16
  const snapshots = store.listSnapshots();
20
17
  logger.info("tool:snapshot:ok", { action: "list", total: snapshots.length });
21
- return {
22
- content: [
23
- { type: "text", text: JSON.stringify({ total: snapshots.length, snapshots }, null, 2) },
24
- ],
25
- };
18
+ return mcpText({ total: snapshots.length, snapshots });
26
19
  }
27
20
  // action === "restore"
28
21
  if (snapshotId === undefined) {
29
- return {
30
- content: [
31
- { type: "text", text: JSON.stringify({ error: "snapshotId is required for restore action" }) },
32
- ],
33
- isError: true,
34
- };
22
+ return mcpError("snapshotId is required for restore action");
35
23
  }
36
24
  store.restoreSnapshot(snapshotId);
37
25
  logger.info("tool:snapshot:ok", { action: "restore", restoredFrom: snapshotId });
38
- return {
39
- content: [
40
- { type: "text", text: JSON.stringify({ ok: true, restoredFrom: snapshotId }, null, 2) },
41
- ],
42
- };
26
+ return mcpText({ ok: true, restoredFrom: snapshotId });
43
27
  });
44
28
  }
45
29
  //# sourceMappingURL=snapshot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/mcp/tools/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,KAAkB;IACpE,MAAM,CAAC,IAAI,CACT,UAAU,EACV,kDAAkD,EAClD;QACE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC3E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;KACjF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/B,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YACtE,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;iBACvF;aACF,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7E,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;iBACjG;aACF,CAAC;QACJ,CAAC;QAED,uBAAuB;QACvB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,2CAA2C,EAAE,CAAC,EAAE;iBACxG;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;QACjF,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACjG;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/mcp/tools/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,KAAkB;IACpE,MAAM,CAAC,IAAI,CACT,UAAU,EACV,kDAAkD,EAClD;QACE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC3E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;KACjF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/B,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YACtE,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7E,OAAO,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,uBAAuB;QACvB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,QAAQ,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;QACjF,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;IACzD,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync-stack-docs.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/sync-stack-docs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AASpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA6EjF"}
1
+ {"version":3,"file":"sync-stack-docs.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/sync-stack-docs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAUpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAmEjF"}
@@ -6,6 +6,7 @@ import { createMcpContext7Fetcher } from "../../core/docs/mcp-context7-fetcher.j
6
6
  import { detectStack } from "../../core/docs/stack-detector.js";
7
7
  import { indexCachedDocs } from "../../core/rag/docs-indexer.js";
8
8
  import { logger } from "../../core/utils/logger.js";
9
+ import { mcpText } from "../response-helpers.js";
9
10
  export function registerSyncStackDocs(server, store) {
10
11
  server.tool("sync_stack_docs", "Auto-detect project stack and sync documentation for all libraries via Context7. Caches results locally and indexes into knowledge store.", {
11
12
  basePath: z
@@ -38,12 +39,7 @@ export function registerSyncStackDocs(server, store) {
38
39
  }
39
40
  }
40
41
  if (libNames.length === 0) {
41
- return {
42
- content: [{
43
- type: "text",
44
- text: JSON.stringify({ ok: false, message: "No libraries detected to sync" }),
45
- }],
46
- };
42
+ return mcpText({ ok: false, message: "No libraries detected to sync" });
47
43
  }
48
44
  const results = [];
49
45
  for (const lib of libNames) {
@@ -61,17 +57,12 @@ export function registerSyncStackDocs(server, store) {
61
57
  // Index synced docs into knowledge store
62
58
  const indexResult = indexCachedDocs(knowledgeStore, docsCacheStore);
63
59
  logger.info("tool:sync_stack_docs:ok", { librariesProcessed: results.length, knowledgeIndexed: indexResult.documentsIndexed });
64
- return {
65
- content: [{
66
- type: "text",
67
- text: JSON.stringify({
68
- ok: true,
69
- librariesProcessed: results.length,
70
- results,
71
- knowledgeIndexed: indexResult.documentsIndexed,
72
- }, null, 2),
73
- }],
74
- };
60
+ return mcpText({
61
+ ok: true,
62
+ librariesProcessed: results.length,
63
+ results,
64
+ knowledgeIndexed: indexResult.documentsIndexed,
65
+ });
75
66
  });
76
67
  }
77
68
  //# sourceMappingURL=sync-stack-docs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-stack-docs.js","sourceRoot":"","sources":["../../../src/mcp/tools/sync-stack-docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-stack-docs.js","sourceRoot":"","sources":["../../../src/mcp/tools/sync-stack-docs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update-node.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/update-node.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,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,CA+C9E"}
1
+ {"version":3,"file":"update-node.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/update-node.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,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,CAmC9E"}
@@ -5,6 +5,7 @@ import { z } from "zod/v4";
5
5
  import { NodeTypeSchema, XpSizeSchema, PrioritySchema } from "../../schemas/node.schema.js";
6
6
  import { NodeNotFoundError } from "../../core/utils/errors.js";
7
7
  import { logger } from "../../core/utils/logger.js";
8
+ import { mcpText, mcpError } from "../response-helpers.js";
8
9
  export function registerUpdateNode(server, store) {
9
10
  server.tool("update_node", "Update arbitrary fields of a node (DEPRECATED — use `node` with action:\"update\")", {
10
11
  id: z.string().describe("The node ID to update"),
@@ -28,22 +29,10 @@ export function registerUpdateNode(server, store) {
28
29
  if (!updated) {
29
30
  const err = new NodeNotFoundError(id);
30
31
  logger.warn("tool:update_node:fail", { error: err.message });
31
- return {
32
- content: [
33
- { type: "text", text: JSON.stringify({ error: err.message, _deprecated: "Use 'node' tool with action:'update'" }) },
34
- ],
35
- isError: true,
36
- };
32
+ return mcpError(err);
37
33
  }
38
34
  logger.info("tool:update_node:ok", { id });
39
- return {
40
- content: [
41
- {
42
- type: "text",
43
- text: JSON.stringify({ ok: true, node: updated, _deprecated: "Use 'node' tool with action:'update'" }, null, 2),
44
- },
45
- ],
46
- };
35
+ return mcpText({ ok: true, node: updated, _deprecated: "Use 'node' tool with action:'update'" });
47
36
  });
48
37
  }
49
38
  //# sourceMappingURL=update-node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-node.js","sourceRoot":"","sources":["../../../src/mcp/tools/update-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-node.js","sourceRoot":"","sources":["../../../src/mcp/tools/update-node.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,KAAkB;IACtE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,oFAAoF,EACpF;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAChD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;QAClD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC9D,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QACzD,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QAClF,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAChE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAC/E,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC/D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QACtF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACzF,kBAAkB,EAAE,CAAC;aAClB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CAAC,yBAAyB,CAAC;KACvC,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE;QAC1B,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,CAAC;QACxG,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC,CAAC;IACnG,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -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,CAoDhF"}
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;AAepE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA8DhF"}
@@ -2,47 +2,63 @@ import { z } from "zod/v4";
2
2
  import { NodeStatusSchema } from "../../schemas/node.schema.js";
3
3
  import { NodeNotFoundError } from "../../core/utils/errors.js";
4
4
  import { logger } from "../../core/utils/logger.js";
5
+ import { mcpText, mcpError } from "../response-helpers.js";
6
+ const VALID_TRANSITIONS = {
7
+ backlog: ["ready", "in_progress", "blocked"],
8
+ ready: ["in_progress", "blocked", "backlog"],
9
+ in_progress: ["done", "blocked", "ready"],
10
+ blocked: ["ready", "in_progress", "backlog"],
11
+ done: ["in_progress"], // allow reopen
12
+ };
5
13
  export function registerUpdateStatus(server, store) {
6
14
  server.tool("update_status", "Update the status of one or more nodes. Pass a single ID string or an array of IDs for bulk updates.", {
7
15
  id: z.union([z.string(), z.array(z.string())]).describe("Node ID (string) or array of node IDs for bulk update"),
8
16
  status: NodeStatusSchema.describe("The new status"),
9
- }, async ({ id, status }) => {
17
+ force: z.boolean().optional().describe("Force status change, bypass transition validation"),
18
+ }, async ({ id, status, force }) => {
10
19
  const ids = Array.isArray(id) ? id : [id];
11
20
  const isBulk = ids.length > 1;
12
- logger.debug("tool:update_status", { ids, status, bulk: isBulk });
21
+ logger.debug("tool:update_status", { ids, status, bulk: isBulk, force });
13
22
  if (isBulk) {
23
+ // Validate transitions for bulk update
24
+ if (!force) {
25
+ const invalidTransitions = [];
26
+ for (const nodeId of ids) {
27
+ const currentNode = store.getNodeById(nodeId);
28
+ if (currentNode) {
29
+ const allowed = VALID_TRANSITIONS[currentNode.status] ?? [];
30
+ if (!allowed.includes(status)) {
31
+ invalidTransitions.push(`${nodeId}: ${currentNode.status} → ${status}`);
32
+ }
33
+ }
34
+ }
35
+ if (invalidTransitions.length > 0) {
36
+ return mcpError(`Invalid status transitions: ${invalidTransitions.join("; ")}. Use force:true to override.`);
37
+ }
38
+ }
14
39
  const result = store.bulkUpdateStatus(ids, status);
15
40
  logger.info("tool:update_status:ok", { count: ids.length, status, updated: result.updated.length });
16
- return {
17
- content: [
18
- {
19
- type: "text",
20
- text: JSON.stringify({ ok: true, ...result }, null, 2),
21
- },
22
- ],
23
- };
41
+ return mcpText({ ok: true, ...result });
42
+ }
43
+ // Validate status transition for single update
44
+ if (!force) {
45
+ const currentNode = store.getNodeById(ids[0]);
46
+ if (currentNode) {
47
+ const allowed = VALID_TRANSITIONS[currentNode.status] ?? [];
48
+ if (!allowed.includes(status)) {
49
+ return mcpError(`Invalid status transition: ${currentNode.status} → ${status}. Allowed: ${allowed.join(", ")}. Use force:true to override.`);
50
+ }
51
+ }
24
52
  }
25
53
  // Single node update
26
54
  const updated = store.updateNodeStatus(ids[0], status);
27
55
  if (!updated) {
28
56
  const err = new NodeNotFoundError(ids[0]);
29
57
  logger.warn("tool:update_status:fail", { error: err.message });
30
- return {
31
- content: [
32
- { type: "text", text: JSON.stringify({ error: err.message }) },
33
- ],
34
- isError: true,
35
- };
58
+ return mcpError(err);
36
59
  }
37
60
  logger.info("tool:update_status:ok", { id: ids[0], status });
38
- return {
39
- content: [
40
- {
41
- type: "text",
42
- text: JSON.stringify({ ok: true, node: updated }, null, 2),
43
- },
44
- ],
45
- };
61
+ return mcpText({ ok: true, node: updated });
46
62
  });
47
63
  }
48
64
  //# sourceMappingURL=update-status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-status.js","sourceRoot":"","sources":["../../../src/mcp/tools/update-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,KAAkB;IACxE,MAAM,CAAC,IAAI,CACT,eAAe,EACf,sGAAsG,EACtG;QACE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QAChH,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KACpD,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAE9B,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAElE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAoB,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACpG,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;qBACvD;iBACF;aACF,CAAC;QACJ,CAAC;QAED,qBAAqB;QACrB,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAoB,CAAC,CAAC;QAErE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE;iBACxE;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC3D;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"update-status.js","sourceRoot":"","sources":["../../../src/mcp/tools/update-status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-ac.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/validate-ac.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAIpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAyB9E"}
1
+ {"version":3,"file":"validate-ac.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/validate-ac.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,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,CAkB9E"}
@@ -4,6 +4,7 @@
4
4
  import { z } from "zod/v4";
5
5
  import { validateAcQuality } from "../../core/analyzer/ac-validator.js";
6
6
  import { logger } from "../../core/utils/logger.js";
7
+ import { mcpText } from "../response-helpers.js";
7
8
  export function registerValidateAc(server, store) {
8
9
  server.tool("validate_ac", "Validate acceptance criteria quality (DEPRECATED — use `validate` with action:\"ac\")", {
9
10
  nodeId: z.string().optional().describe("Validate AC for a specific node"),
@@ -14,14 +15,7 @@ export function registerValidateAc(server, store) {
14
15
  const doc = store.toGraphDocument();
15
16
  const report = validateAcQuality(doc, nodeId, all ?? !nodeId);
16
17
  logger.info("tool:validate_ac:ok", { nodes: report.nodes.length, score: report.overallScore });
17
- return {
18
- content: [
19
- {
20
- type: "text",
21
- text: JSON.stringify({ ok: true, ...report, _deprecated: "Use 'validate' tool with action:'ac'" }, null, 2),
22
- },
23
- ],
24
- };
18
+ return mcpText({ ok: true, ...report, _deprecated: "Use 'validate' tool with action:'ac'" });
25
19
  });
26
20
  }
27
21
  //# sourceMappingURL=validate-ac.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-ac.js","sourceRoot":"","sources":["../../../src/mcp/tools/validate-ac.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,KAAkB;IACtE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,uFAAuF,EACvF;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACzE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;KAChG,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;QACxB,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,CAAC;QACxG,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9D,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QAC/F,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,sCAAsC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC5G;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"validate-ac.js","sourceRoot":"","sources":["../../../src/mcp/tools/validate-ac.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,KAAkB;IACtE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,uFAAuF,EACvF;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACzE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;KAChG,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;QACxB,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,CAAC;QACxG,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9D,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QAC/F,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC,CAAC;IAC/F,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-task.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/validate-task.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,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,CA8DhF"}
1
+ {"version":3,"file":"validate-task.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/validate-task.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAOpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAyDhF"}
@@ -6,6 +6,7 @@ import { runValidation } from "../../core/capture/validate-runner.js";
6
6
  import { KnowledgeStore } from "../../core/store/knowledge-store.js";
7
7
  import { indexCapture } from "../../core/rag/capture-indexer.js";
8
8
  import { logger } from "../../core/utils/logger.js";
9
+ import { mcpText } from "../response-helpers.js";
9
10
  export function registerValidateTask(server, store) {
10
11
  server.tool("validate_task", "Run browser-based validation for a task (DEPRECATED — use `validate` with action:\"task\")", {
11
12
  url: z.string().url().describe("URL to validate"),
@@ -51,12 +52,7 @@ export function registerValidateTask(server, store) {
51
52
  };
52
53
  }
53
54
  logger.info("tool:validate_task:ok", { nodeId, url });
54
- return {
55
- content: [{
56
- type: "text",
57
- text: JSON.stringify(response, null, 2),
58
- }],
59
- };
55
+ return mcpText(response);
60
56
  });
61
57
  }
62
58
  //# sourceMappingURL=validate-task.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-task.js","sourceRoot":"","sources":["../../../src/mcp/tools/validate-task.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,KAAkB;IACxE,MAAM,CAAC,IAAI,CACT,eAAe,EACf,4FAA4F,EAC5F;QACE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACjD,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,0CAA0C,CAAC;QACvD,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,wCAAwC,CAAC;KACtD,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QAC9C,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC,CAAC;QAC5G,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;QAElE,8CAA8C;QAC9C,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACzD,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,QAAQ,GAA4B;YACxC,EAAE,EAAE,IAAI;YACR,GAAG;YACH,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;YACnC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,WAAW,EAAE,wCAAwC;SACtD,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3B,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,QAAQ,CAAC,UAAU,GAAG;gBACpB,UAAU;gBACV,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc;gBAC1C,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;aACrC,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACtD,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;iBACxC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"validate-task.js","sourceRoot":"","sources":["../../../src/mcp/tools/validate-task.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,KAAkB;IACxE,MAAM,CAAC,IAAI,CACT,eAAe,EACf,4FAA4F,EAC5F;QACE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACjD,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,0CAA0C,CAAC;QACvD,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,wCAAwC,CAAC;KACtD,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QAC9C,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC,CAAC;QAC5G,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;QAElE,8CAA8C;QAC9C,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACzD,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,QAAQ,GAA4B;YACxC,EAAE,EAAE,IAAI;YACR,GAAG;YACH,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;YACnC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,WAAW,EAAE,wCAAwC;SACtD,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3B,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,QAAQ,CAAC,UAAU,GAAG;gBACpB,UAAU;gBACV,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc;gBAC1C,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;aACrC,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACtD,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/validate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAOpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAuE5E"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/validate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,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,CAgE5E"}
@@ -9,6 +9,7 @@ import { KnowledgeStore } from "../../core/store/knowledge-store.js";
9
9
  import { indexCapture } from "../../core/rag/capture-indexer.js";
10
10
  import { validateAcQuality } from "../../core/analyzer/ac-validator.js";
11
11
  import { logger } from "../../core/utils/logger.js";
12
+ import { mcpText, mcpError } from "../response-helpers.js";
12
13
  export function registerValidate(server, store) {
13
14
  server.tool("validate", "Validate tasks: browser-based validation (task) or acceptance criteria quality check (ac)", {
14
15
  action: z.enum(["task", "ac"]).describe("Action: 'task' for browser validation, 'ac' for AC quality check"),
@@ -24,10 +25,7 @@ export function registerValidate(server, store) {
24
25
  logger.debug("tool:validate", { action, nodeId });
25
26
  if (action === "task") {
26
27
  if (!url) {
27
- return {
28
- content: [{ type: "text", text: JSON.stringify({ error: "url is required for task action" }) }],
29
- isError: true,
30
- };
28
+ return mcpError("url is required for task action");
31
29
  }
32
30
  const result = await runValidation(url, { compareUrl, selector });
33
31
  // Index captured content into knowledge store
@@ -54,17 +52,13 @@ export function registerValidate(server, store) {
54
52
  };
55
53
  }
56
54
  logger.info("tool:validate:task:ok", { nodeId, url });
57
- return {
58
- content: [{ type: "text", text: JSON.stringify(response, null, 2) }],
59
- };
55
+ return mcpText(response);
60
56
  }
61
57
  // action === "ac"
62
58
  const doc = store.toGraphDocument();
63
59
  const report = validateAcQuality(doc, nodeId, all ?? !nodeId);
64
60
  logger.info("tool:validate:ac:ok", { nodes: report.nodes.length, score: report.overallScore });
65
- return {
66
- content: [{ type: "text", text: JSON.stringify({ ok: true, ...report }, null, 2) }],
67
- };
61
+ return mcpText({ ok: true, ...report });
68
62
  });
69
63
  }
70
64
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/mcp/tools/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/mcp/tools/validate.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export declare const PrdQualitySectionSchema: z.ZodObject<{
16
16
  issues: z.ZodArray<z.ZodString>;
17
17
  suggestions: z.ZodArray<z.ZodString>;
18
18
  }, z.core.$strip>;
19
+ /** @deprecated Use GradeSchema from grade-schema.ts */
19
20
  export declare const PrdQualityGradeSchema: z.ZodEnum<{
20
21
  A: "A";
21
22
  B: "B";
@@ -101,9 +102,9 @@ export declare const ReadinessReportSchema: z.ZodObject<{
101
102
  export type ReadinessReport = z.infer<typeof ReadinessReportSchema>;
102
103
  export type ReadinessCheck = z.infer<typeof ReadinessCheckSchema>;
103
104
  export declare const RiskLevelSchema: z.ZodEnum<{
104
- low: "low";
105
- medium: "medium";
106
105
  high: "high";
106
+ medium: "medium";
107
+ low: "low";
107
108
  critical: "critical";
108
109
  }>;
109
110
  export declare const RiskEntrySchema: z.ZodObject<{
@@ -113,9 +114,9 @@ export declare const RiskEntrySchema: z.ZodObject<{
113
114
  impact: z.ZodNumber;
114
115
  score: z.ZodNumber;
115
116
  level: z.ZodEnum<{
116
- low: "low";
117
- medium: "medium";
118
117
  high: "high";
118
+ medium: "medium";
119
+ low: "low";
119
120
  critical: "critical";
120
121
  }>;
121
122
  mitigationStatus: z.ZodEnum<{
@@ -133,9 +134,9 @@ export declare const RiskMatrixSchema: z.ZodObject<{
133
134
  impact: z.ZodNumber;
134
135
  score: z.ZodNumber;
135
136
  level: z.ZodEnum<{
136
- low: "low";
137
- medium: "medium";
138
137
  high: "high";
138
+ medium: "medium";
139
+ low: "low";
139
140
  critical: "critical";
140
141
  }>;
141
142
  mitigationStatus: z.ZodEnum<{
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer-schema.d.ts","sourceRoot":"","sources":["../../src/schemas/analyzer-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,eAAO,MAAM,oBAAoB;;;;;EAAoD,CAAC;AAEtF,eAAO,MAAM,uBAAuB;;;;;;;;;;iBAKlC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;EAAoC,CAAC;AAEvE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;iBAMjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAIpE,eAAO,MAAM,gBAAgB;;;;;iBAK3B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;iBAK/B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;iBAM9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIlE,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;iBAMhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIlE,eAAO,MAAM,eAAe;;;;;EAAgD,CAAC;AAE7E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;iBAS1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAU3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"analyzer-schema.d.ts","sourceRoot":"","sources":["../../src/schemas/analyzer-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAK3B,eAAO,MAAM,oBAAoB;;;;;EAAoD,CAAC;AAEtF,eAAO,MAAM,uBAAuB;;;;;;;;;;iBAKlC,CAAC;AAEH,uDAAuD;AACvD,eAAO,MAAM,qBAAqB;;;;;;EAAc,CAAC;AAEjD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;iBAMjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAIpE,eAAO,MAAM,gBAAgB;;;;;iBAK3B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;iBAK/B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;iBAM9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIlE,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;iBAMhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIlE,eAAO,MAAM,eAAe;;;;;EAAgD,CAAC;AAE7E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;iBAS1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAU3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod/v4";
2
+ import { GradeSchema } from "./grade-schema.js";
2
3
  // ── PRD Quality ──
3
4
  export const SectionQualitySchema = z.enum(["missing", "weak", "adequate", "strong"]);
4
5
  export const PrdQualitySectionSchema = z.object({
@@ -7,7 +8,8 @@ export const PrdQualitySectionSchema = z.object({
7
8
  issues: z.array(z.string()),
8
9
  suggestions: z.array(z.string()),
9
10
  });
10
- export const PrdQualityGradeSchema = z.enum(["A", "B", "C", "D", "F"]);
11
+ /** @deprecated Use GradeSchema from grade-schema.ts */
12
+ export const PrdQualityGradeSchema = GradeSchema;
11
13
  export const PrdQualityReportSchema = z.object({
12
14
  score: z.number().min(0).max(100),
13
15
  grade: PrdQualityGradeSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer-schema.js","sourceRoot":"","sources":["../../src/schemas/analyzer-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzer-schema.js","sourceRoot":"","sources":["../../src/schemas/analyzer-schema.ts"],"names":[],"mappings":"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"}