@mcp-graph-workflow/mcp-graph 5.33.1 → 5.34.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 (208) hide show
  1. package/dist/api/routes/code-graph.d.ts.map +1 -1
  2. package/dist/api/routes/code-graph.js +3 -1
  3. package/dist/api/routes/code-graph.js.map +1 -1
  4. package/dist/core/analyzer/ac-coverage.d.ts +16 -0
  5. package/dist/core/analyzer/ac-coverage.d.ts.map +1 -0
  6. package/dist/core/analyzer/ac-coverage.js +38 -0
  7. package/dist/core/analyzer/ac-coverage.js.map +1 -0
  8. package/dist/core/analyzer/asset-blockers.d.ts +23 -0
  9. package/dist/core/analyzer/asset-blockers.d.ts.map +1 -0
  10. package/dist/core/analyzer/asset-blockers.js +50 -0
  11. package/dist/core/analyzer/asset-blockers.js.map +1 -0
  12. package/dist/core/analyzer/concurrency-risk.d.ts +26 -0
  13. package/dist/core/analyzer/concurrency-risk.d.ts.map +1 -0
  14. package/dist/core/analyzer/concurrency-risk.js +99 -0
  15. package/dist/core/analyzer/concurrency-risk.js.map +1 -0
  16. package/dist/core/analyzer/config-coverage.d.ts +20 -0
  17. package/dist/core/analyzer/config-coverage.d.ts.map +1 -0
  18. package/dist/core/analyzer/config-coverage.js +49 -0
  19. package/dist/core/analyzer/config-coverage.js.map +1 -0
  20. package/dist/core/analyzer/contract-coverage.d.ts +22 -0
  21. package/dist/core/analyzer/contract-coverage.d.ts.map +1 -0
  22. package/dist/core/analyzer/contract-coverage.js +51 -0
  23. package/dist/core/analyzer/contract-coverage.js.map +1 -0
  24. package/dist/core/analyzer/data-integrity.d.ts +22 -0
  25. package/dist/core/analyzer/data-integrity.d.ts.map +1 -0
  26. package/dist/core/analyzer/data-integrity.js +80 -0
  27. package/dist/core/analyzer/data-integrity.js.map +1 -0
  28. package/dist/core/analyzer/economy-simulator.d.ts +33 -0
  29. package/dist/core/analyzer/economy-simulator.d.ts.map +1 -0
  30. package/dist/core/analyzer/economy-simulator.js +162 -0
  31. package/dist/core/analyzer/economy-simulator.js.map +1 -0
  32. package/dist/core/analyzer/formula-consistency.d.ts +25 -0
  33. package/dist/core/analyzer/formula-consistency.d.ts.map +1 -0
  34. package/dist/core/analyzer/formula-consistency.js +82 -0
  35. package/dist/core/analyzer/formula-consistency.js.map +1 -0
  36. package/dist/core/analyzer/metric-coverage.d.ts +22 -0
  37. package/dist/core/analyzer/metric-coverage.d.ts.map +1 -0
  38. package/dist/core/analyzer/metric-coverage.js +52 -0
  39. package/dist/core/analyzer/metric-coverage.js.map +1 -0
  40. package/dist/core/analyzer/performance-budget-check.d.ts +22 -0
  41. package/dist/core/analyzer/performance-budget-check.d.ts.map +1 -0
  42. package/dist/core/analyzer/performance-budget-check.js +40 -0
  43. package/dist/core/analyzer/performance-budget-check.js.map +1 -0
  44. package/dist/core/analyzer/risk-assessment.d.ts.map +1 -1
  45. package/dist/core/analyzer/risk-assessment.js +9 -0
  46. package/dist/core/analyzer/risk-assessment.js.map +1 -1
  47. package/dist/core/analyzer/scenario-coverage.d.ts +19 -0
  48. package/dist/core/analyzer/scenario-coverage.d.ts.map +1 -0
  49. package/dist/core/analyzer/scenario-coverage.js +59 -0
  50. package/dist/core/analyzer/scenario-coverage.js.map +1 -0
  51. package/dist/core/analyzer/state-completeness.d.ts +22 -0
  52. package/dist/core/analyzer/state-completeness.d.ts.map +1 -0
  53. package/dist/core/analyzer/state-completeness.js +76 -0
  54. package/dist/core/analyzer/state-completeness.js.map +1 -0
  55. package/dist/core/code/code-indexer.d.ts +1 -1
  56. package/dist/core/code/code-indexer.d.ts.map +1 -1
  57. package/dist/core/code/code-indexer.js +50 -3
  58. package/dist/core/code/code-indexer.js.map +1 -1
  59. package/dist/core/code/code-store.js +3 -3
  60. package/dist/core/code/code-store.js.map +1 -1
  61. package/dist/core/code/code-types.d.ts +4 -4
  62. package/dist/core/code/treesitter/treesitter-manager.d.ts.map +1 -1
  63. package/dist/core/code/treesitter/treesitter-manager.js +2 -0
  64. package/dist/core/code/treesitter/treesitter-manager.js.map +1 -1
  65. package/dist/core/designer/adr-validator.d.ts.map +1 -1
  66. package/dist/core/designer/adr-validator.js +12 -4
  67. package/dist/core/designer/adr-validator.js.map +1 -1
  68. package/dist/core/designer/tech-risk-assessor.d.ts +5 -1
  69. package/dist/core/designer/tech-risk-assessor.d.ts.map +1 -1
  70. package/dist/core/designer/tech-risk-assessor.js +39 -11
  71. package/dist/core/designer/tech-risk-assessor.js.map +1 -1
  72. package/dist/core/designer/traceability-matrix.d.ts.map +1 -1
  73. package/dist/core/designer/traceability-matrix.js +14 -3
  74. package/dist/core/designer/traceability-matrix.js.map +1 -1
  75. package/dist/core/graph/auto-sequence.d.ts +10 -0
  76. package/dist/core/graph/auto-sequence.d.ts.map +1 -0
  77. package/dist/core/graph/auto-sequence.js +29 -0
  78. package/dist/core/graph/auto-sequence.js.map +1 -0
  79. package/dist/core/graph/csv-export.d.ts +7 -0
  80. package/dist/core/graph/csv-export.d.ts.map +1 -0
  81. package/dist/core/graph/csv-export.js +43 -0
  82. package/dist/core/graph/csv-export.js.map +1 -0
  83. package/dist/core/graph/graph-types.d.ts +2 -2
  84. package/dist/core/graph/graph-types.d.ts.map +1 -1
  85. package/dist/core/graph/mermaid-export.d.ts +1 -1
  86. package/dist/core/graph/mermaid-export.d.ts.map +1 -1
  87. package/dist/core/graph/mermaid-export.js +101 -0
  88. package/dist/core/graph/mermaid-export.js.map +1 -1
  89. package/dist/core/importer/prd-to-graph.d.ts.map +1 -1
  90. package/dist/core/importer/prd-to-graph.js +8 -1
  91. package/dist/core/importer/prd-to-graph.js.map +1 -1
  92. package/dist/core/listener/backlog-health.d.ts.map +1 -1
  93. package/dist/core/listener/backlog-health.js +15 -3
  94. package/dist/core/listener/backlog-health.js.map +1 -1
  95. package/dist/core/parser/classify.d.ts +4 -0
  96. package/dist/core/parser/classify.d.ts.map +1 -1
  97. package/dist/core/parser/classify.js +18 -0
  98. package/dist/core/parser/classify.js.map +1 -1
  99. package/dist/core/parser/extract.d.ts.map +1 -1
  100. package/dist/core/parser/extract.js +22 -4
  101. package/dist/core/parser/extract.js.map +1 -1
  102. package/dist/core/parser/prd-diff.d.ts +23 -0
  103. package/dist/core/parser/prd-diff.d.ts.map +1 -0
  104. package/dist/core/parser/prd-diff.js +55 -0
  105. package/dist/core/parser/prd-diff.js.map +1 -0
  106. package/dist/core/parser/segment.d.ts +5 -0
  107. package/dist/core/parser/segment.d.ts.map +1 -1
  108. package/dist/core/parser/segment.js +70 -0
  109. package/dist/core/parser/segment.js.map +1 -1
  110. package/dist/core/planner/auto-ready.d.ts +19 -0
  111. package/dist/core/planner/auto-ready.d.ts.map +1 -0
  112. package/dist/core/planner/auto-ready.js +39 -0
  113. package/dist/core/planner/auto-ready.js.map +1 -0
  114. package/dist/core/planner/planning-report.d.ts +13 -1
  115. package/dist/core/planner/planning-report.d.ts.map +1 -1
  116. package/dist/core/planner/planning-report.js +53 -2
  117. package/dist/core/planner/planning-report.js.map +1 -1
  118. package/dist/core/planner/sprint-health.d.ts +22 -0
  119. package/dist/core/planner/sprint-health.d.ts.map +1 -0
  120. package/dist/core/planner/sprint-health.js +41 -0
  121. package/dist/core/planner/sprint-health.js.map +1 -0
  122. package/dist/core/store/migrations.d.ts.map +1 -1
  123. package/dist/core/store/migrations.js +17 -0
  124. package/dist/core/store/migrations.js.map +1 -1
  125. package/dist/core/store/sqlite-store.d.ts +6 -0
  126. package/dist/core/store/sqlite-store.d.ts.map +1 -1
  127. package/dist/core/store/sqlite-store.js +54 -3
  128. package/dist/core/store/sqlite-store.js.map +1 -1
  129. package/dist/core/templates/template-engine.d.ts +36 -0
  130. package/dist/core/templates/template-engine.d.ts.map +1 -0
  131. package/dist/core/templates/template-engine.js +104 -0
  132. package/dist/core/templates/template-engine.js.map +1 -0
  133. package/dist/docs-manifest.json +12 -5
  134. package/dist/mcp/tools/analyze.d.ts.map +1 -1
  135. package/dist/mcp/tools/analyze.js +100 -1
  136. package/dist/mcp/tools/analyze.js.map +1 -1
  137. package/dist/mcp/tools/edge.d.ts.map +1 -1
  138. package/dist/mcp/tools/edge.js +81 -3
  139. package/dist/mcp/tools/edge.js.map +1 -1
  140. package/dist/mcp/tools/export.d.ts.map +1 -1
  141. package/dist/mcp/tools/export.js +17 -4
  142. package/dist/mcp/tools/export.js.map +1 -1
  143. package/dist/mcp/tools/import-prd.d.ts.map +1 -1
  144. package/dist/mcp/tools/import-prd.js +89 -2
  145. package/dist/mcp/tools/import-prd.js.map +1 -1
  146. package/dist/mcp/tools/index.d.ts.map +1 -1
  147. package/dist/mcp/tools/index.js +4 -0
  148. package/dist/mcp/tools/index.js.map +1 -1
  149. package/dist/mcp/tools/node.d.ts.map +1 -1
  150. package/dist/mcp/tools/node.js +127 -6
  151. package/dist/mcp/tools/node.js.map +1 -1
  152. package/dist/mcp/tools/plan-sprint.d.ts.map +1 -1
  153. package/dist/mcp/tools/plan-sprint.js +6 -2
  154. package/dist/mcp/tools/plan-sprint.js.map +1 -1
  155. package/dist/mcp/tools/show.d.ts.map +1 -1
  156. package/dist/mcp/tools/show.js +11 -4
  157. package/dist/mcp/tools/show.js.map +1 -1
  158. package/dist/mcp/tools/template.d.ts +4 -0
  159. package/dist/mcp/tools/template.d.ts.map +1 -0
  160. package/dist/mcp/tools/template.js +137 -0
  161. package/dist/mcp/tools/template.js.map +1 -0
  162. package/dist/schemas/analyzer-schema.d.ts +2 -2
  163. package/dist/schemas/designer-schema.d.ts +21 -0
  164. package/dist/schemas/designer-schema.d.ts.map +1 -1
  165. package/dist/schemas/designer-schema.js +2 -0
  166. package/dist/schemas/designer-schema.js.map +1 -1
  167. package/dist/schemas/edge.schema.d.ts +6 -0
  168. package/dist/schemas/edge.schema.d.ts.map +1 -1
  169. package/dist/schemas/edge.schema.js +2 -0
  170. package/dist/schemas/edge.schema.js.map +1 -1
  171. package/dist/schemas/graph.schema.d.ts +13 -0
  172. package/dist/schemas/graph.schema.d.ts.map +1 -1
  173. package/dist/schemas/node.schema.d.ts +20 -0
  174. package/dist/schemas/node.schema.d.ts.map +1 -1
  175. package/dist/schemas/node.schema.js +3 -0
  176. package/dist/schemas/node.schema.js.map +1 -1
  177. package/dist/schemas/siebel.schema.d.ts +13 -13
  178. package/dist/web/dashboard/dist/assets/{benchmark-tab-BezNQCQh.js → benchmark-tab-Aqr2Xzu5.js} +1 -1
  179. package/dist/web/dashboard/dist/assets/{circle-alert-DKsqBTgC.js → circle-alert-BJTyaShp.js} +1 -1
  180. package/dist/web/dashboard/dist/assets/constants-DLyESMjx.js +1 -0
  181. package/dist/web/dashboard/dist/assets/{context-tab-Cmar9i-X.js → context-tab-CbmHGGZh.js} +1 -1
  182. package/dist/web/dashboard/dist/assets/{davinci-tab-CkWYkDsy.js → davinci-tab-krxsY7Pp.js} +1 -1
  183. package/dist/web/dashboard/dist/assets/{docs-tab-CYpDJ3Rl.js → docs-tab-AautK0dL.js} +1 -1
  184. package/dist/web/dashboard/dist/assets/{file-code-B0t0xVTk.js → file-code-DVOtQrhl.js} +1 -1
  185. package/dist/web/dashboard/dist/assets/{gitnexus-tab-COEhhMeC.js → gitnexus-tab-D5xRYU3u.js} +1 -1
  186. package/dist/web/dashboard/dist/assets/{graph-section-CheOuwv_.js → graph-section-D5y4S3T1.js} +1 -1
  187. package/dist/web/dashboard/dist/assets/{graph-tab-B52UV5KP.js → graph-tab-tmjyMc4q.js} +1 -1
  188. package/dist/web/dashboard/dist/assets/{graph-utils-D5HpaYbf.js → graph-utils-BlwoHdjR.js} +1 -1
  189. package/dist/web/dashboard/dist/assets/{index-DFMBuNWV.js → index-C13O-yj1.js} +1 -1
  190. package/dist/web/dashboard/dist/assets/{index--SYA0Gq0.js → index-CAOXRHQq.js} +1 -1
  191. package/dist/web/dashboard/dist/assets/{index-DdenFaJ5.js → index-DrvFzUJS.js} +2 -2
  192. package/dist/web/dashboard/dist/assets/{insights-tab-sPgv-iwt.js → insights-tab-9sq9NfBt.js} +1 -1
  193. package/dist/web/dashboard/dist/assets/{journey-tab-CS416bwg.js → journey-tab-ujeAoAsS.js} +1 -1
  194. package/dist/web/dashboard/dist/assets/{languages-tab-CcB_s-Ic.js → languages-tab-DT-46f7p.js} +1 -1
  195. package/dist/web/dashboard/dist/assets/{loader-circle-BSNUICqd.js → loader-circle-DQz_g7p_.js} +1 -1
  196. package/dist/web/dashboard/dist/assets/{logs-tab-BbDXtvmz.js → logs-tab-DHj9jG6G.js} +1 -1
  197. package/dist/web/dashboard/dist/assets/{lsp-tab-BrytF6mP.js → lsp-tab-DGIm2cTM.js} +1 -1
  198. package/dist/web/dashboard/dist/assets/{memories-tab-qCFdXJIV.js → memories-tab-DT7JcHgq.js} +1 -1
  199. package/dist/web/dashboard/dist/assets/{prd-backlog-tab-BiNvyICT.js → prd-backlog-tab-CLzQ5p_3.js} +1 -1
  200. package/dist/web/dashboard/dist/assets/{refresh-cw-CqVWFFCW.js → refresh-cw-C0EeXZ6n.js} +1 -1
  201. package/dist/web/dashboard/dist/assets/{siebel-tab-DFNHIBbS.js → siebel-tab-67cdoYQ_.js} +3 -3
  202. package/dist/web/dashboard/dist/assets/{skills-tab-DlInZCyj.js → skills-tab-DL8-pMo9.js} +1 -1
  203. package/dist/web/dashboard/dist/assets/{style-B4jQtUGE.js → style-DeKQIW_i.js} +1 -1
  204. package/dist/web/dashboard/dist/assets/{triangle-alert-CqXtIU3H.js → triangle-alert-cibtv50e.js} +1 -1
  205. package/dist/web/dashboard/dist/assets/{upload-Cb3pIYT5.js → upload-CZI9Zosi.js} +1 -1
  206. package/dist/web/dashboard/dist/index.html +1 -1
  207. package/package.json +3 -1
  208. package/dist/web/dashboard/dist/assets/constants-Dd6A34aQ.js +0 -1
@@ -20,6 +20,19 @@ import { checkDocCompleteness } from "../../core/handoff/doc-completeness.js";
20
20
  import { checkDeployReadiness } from "../../core/deployer/deploy-readiness.js";
21
21
  import { checkListeningReadiness } from "../../core/listener/feedback-readiness.js";
22
22
  import { analyzeBacklogHealth } from "../../core/listener/backlog-health.js";
23
+ import { analyzeSprintHealth } from "../../core/planner/sprint-health.js";
24
+ import { analyzeAutoReady } from "../../core/planner/auto-ready.js";
25
+ import { analyzeContractCoverage } from "../../core/analyzer/contract-coverage.js";
26
+ import { analyzeDataIntegrity } from "../../core/analyzer/data-integrity.js";
27
+ import { analyzeFormulaConsistency } from "../../core/analyzer/formula-consistency.js";
28
+ import { analyzePerformanceBudgets } from "../../core/analyzer/performance-budget-check.js";
29
+ import { analyzeStateCompleteness } from "../../core/analyzer/state-completeness.js";
30
+ import { analyzeScenarioCoverage } from "../../core/analyzer/scenario-coverage.js";
31
+ import { analyzeAssetBlockers } from "../../core/analyzer/asset-blockers.js";
32
+ import { analyzeConfigCoverage } from "../../core/analyzer/config-coverage.js";
33
+ import { analyzeMetricCoverage } from "../../core/analyzer/metric-coverage.js";
34
+ import { analyzeConcurrencyRisk } from "../../core/analyzer/concurrency-risk.js";
35
+ import { simulateEconomy } from "../../core/analyzer/economy-simulator.js";
23
36
  import { KnowledgeStore } from "../../core/store/knowledge-store.js";
24
37
  import { detectCurrentPhase } from "../../core/planner/lifecycle-phase.js";
25
38
  import { checkDefinitionOfDone } from "../../core/implementer/definition-of-done.js";
@@ -35,8 +48,11 @@ const ANALYZE_MODES = z.enum([
35
48
  "blockers",
36
49
  "cycles",
37
50
  "critical_path",
51
+ "contract_coverage",
52
+ "data_integrity",
38
53
  "decompose",
39
54
  "adr",
55
+ "formula_consistency",
40
56
  "traceability",
41
57
  "coupling",
42
58
  "interfaces",
@@ -44,7 +60,9 @@ const ANALYZE_MODES = z.enum([
44
60
  "design_ready",
45
61
  "implement_done",
46
62
  "tdd_check",
63
+ "performance_budget",
47
64
  "progress",
65
+ "state_completeness",
48
66
  "validate_ready",
49
67
  "done_integrity",
50
68
  "status_flow",
@@ -55,9 +73,17 @@ const ANALYZE_MODES = z.enum([
55
73
  "release_check",
56
74
  "listening_ready",
57
75
  "backlog_health",
76
+ "sprint_health",
77
+ "auto_ready",
78
+ "scenario_coverage",
79
+ "asset_blockers",
80
+ "config_coverage",
81
+ "metric_coverage",
82
+ "concurrency_risk",
83
+ "economy_simulation",
58
84
  ]);
59
85
  export function registerAnalyze(server, store) {
60
- server.tool("analyze", "Analyze the project graph. Modes: prd_quality, scope, ready, risk, blockers, cycles, critical_path, decompose, adr, traceability, coupling, interfaces, tech_risk, design_ready (DESIGN→PLAN gate), implement_done, tdd_check, progress, validate_ready (IMPLEMENT→VALIDATE gate), done_integrity, status_flow, review_ready (VALIDATE→REVIEW gate), handoff_ready (REVIEW→HANDOFF gate), doc_completeness, deploy_ready (HANDOFF→DEPLOY gate), release_check, listening_ready (DEPLOY→LISTENING gate), backlog_health.", {
86
+ server.tool("analyze", "Analyze the project graph. Modes: prd_quality, scope, ready, risk, blockers, cycles, critical_path, contract_coverage, data_integrity, decompose, adr, formula_consistency, traceability, coupling, interfaces, tech_risk, design_ready (DESIGN→PLAN gate), implement_done, tdd_check, performance_budget, progress, state_completeness, validate_ready (IMPLEMENT→VALIDATE gate), done_integrity, status_flow, review_ready (VALIDATE→REVIEW gate), handoff_ready (REVIEW→HANDOFF gate), doc_completeness, deploy_ready (HANDOFF→DEPLOY gate), release_check, listening_ready (DEPLOY→LISTENING gate), backlog_health, sprint_health (sprint metrics + health grade), auto_ready (identify backlog tasks promotable to ready), scenario_coverage, asset_blockers, config_coverage, metric_coverage, concurrency_risk, economy_simulation (gold inflow vs outflow inflation detector — pass JSON params via nodeId: {playerCount, avgSessionHours, avgLevel}).", {
61
87
  mode: ANALYZE_MODES.describe("Analysis mode"),
62
88
  nodeId: z.string().optional().describe("Node ID (required for 'blockers'/'implement_done', optional for 'decompose'/'tdd_check'. For 'progress' mode, used as sprint name filter)"),
63
89
  }, async ({ mode, nodeId }) => {
@@ -300,6 +326,79 @@ export function registerAnalyze(server, store) {
300
326
  logger.info("tool:analyze:backlog_health:ok", { clean: healthReport.cleanForNewCycle, stale: healthReport.staleTasks.length });
301
327
  return mcpText({ ok: true, mode, ...healthReport });
302
328
  }
329
+ case "sprint_health": {
330
+ const sprintHealthReport = analyzeSprintHealth(doc, nodeId);
331
+ logger.info("tool:analyze:sprint_health:ok", { health: sprintHealthReport.health, tasks: sprintHealthReport.metrics.taskCount });
332
+ return mcpText({ ok: true, mode, ...sprintHealthReport });
333
+ }
334
+ case "auto_ready": {
335
+ const readyReport = analyzeAutoReady(doc);
336
+ return mcpText({ ok: true, mode: "auto_ready", ...readyReport });
337
+ }
338
+ case "contract_coverage": {
339
+ const ccReport = analyzeContractCoverage(doc);
340
+ logger.info("tool:analyze:contract_coverage:ok", { totalContracts: ccReport.totalContracts, coveragePercent: ccReport.coveragePercent });
341
+ return mcpText({ ok: true, mode, ...ccReport });
342
+ }
343
+ case "data_integrity": {
344
+ const diReport = analyzeDataIntegrity(doc);
345
+ logger.info("tool:analyze:data_integrity:ok", { totalTables: diReport.totalTables, validCount: diReport.validCount });
346
+ return mcpText({ ok: true, mode, ...diReport });
347
+ }
348
+ case "formula_consistency": {
349
+ const fcReport = analyzeFormulaConsistency(doc);
350
+ logger.info("tool:analyze:formula_consistency:ok", { totalFormulas: fcReport.totalFormulas, validCount: fcReport.validCount, conflicts: fcReport.conflicts.length });
351
+ return mcpText({ ok: true, mode, ...fcReport });
352
+ }
353
+ case "performance_budget": {
354
+ const pbReport = analyzePerformanceBudgets(doc);
355
+ logger.info("tool:analyze:performance_budget:ok", { totalBudgets: pbReport.totalBudgets, untestedCount: pbReport.untestedCount });
356
+ return mcpText({ ok: true, mode, ...pbReport });
357
+ }
358
+ case "state_completeness": {
359
+ const scReport = analyzeStateCompleteness(doc);
360
+ logger.info("tool:analyze:state_completeness:ok", { totalMachines: scReport.totalMachines, validCount: scReport.validCount });
361
+ return mcpText({ ok: true, mode, ...scReport });
362
+ }
363
+ case "scenario_coverage": {
364
+ const scenReport = analyzeScenarioCoverage(doc);
365
+ logger.info("tool:analyze:scenario_coverage:ok", { totalScenarios: scenReport.totalScenarios, coveragePercent: scenReport.coveragePercent });
366
+ return mcpText({ ok: true, mode, ...scenReport });
367
+ }
368
+ case "asset_blockers": {
369
+ const abReport = analyzeAssetBlockers(doc);
370
+ logger.info("tool:analyze:asset_blockers:ok", { pendingAssets: abReport.pendingAssets, blockedTaskCount: abReport.blockedTaskCount });
371
+ return mcpText({ ok: true, mode, ...abReport });
372
+ }
373
+ case "config_coverage": {
374
+ const ccfReport = analyzeConfigCoverage(doc);
375
+ logger.info("tool:analyze:config_coverage:ok", { totalConfigs: ccfReport.totalConfigs, coveragePercent: ccfReport.coveragePercent });
376
+ return mcpText({ ok: true, mode, ...ccfReport });
377
+ }
378
+ case "metric_coverage": {
379
+ const mcReport = analyzeMetricCoverage(doc);
380
+ logger.info("tool:analyze:metric_coverage:ok", { totalMetrics: mcReport.totalMetrics, coveragePercent: mcReport.coveragePercent });
381
+ return mcpText({ ok: true, mode, ...mcReport });
382
+ }
383
+ case "concurrency_risk": {
384
+ const crReport = analyzeConcurrencyRisk(doc);
385
+ logger.info("tool:analyze:concurrency_risk:ok", { totalRisks: crReport.totalRisks, entityConflicts: crReport.entityConflicts.length });
386
+ return mcpText({ ok: true, mode, ...crReport });
387
+ }
388
+ case "economy_simulation": {
389
+ let simParams = { playerCount: 1000, avgSessionHours: 3, avgLevel: 30 };
390
+ if (nodeId) {
391
+ try {
392
+ simParams = { ...simParams, ...JSON.parse(nodeId) };
393
+ }
394
+ catch {
395
+ /* use defaults when nodeId is not valid JSON */
396
+ }
397
+ }
398
+ const simReport = simulateEconomy(doc, simParams);
399
+ logger.info("tool:analyze:economy_simulation:ok", { risk: simReport.inflationRisk, net: simReport.netFlowPerDay });
400
+ return mcpText({ ok: true, mode: "economy_simulation", ...simReport });
401
+ }
303
402
  default: {
304
403
  return mcpError(`Unknown analyze mode: ${mode}`);
305
404
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../src/mcp/tools/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,GACjB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC;IAC3B,aAAa;IACb,OAAO;IACP,OAAO;IACP,MAAM;IACN,UAAU;IACV,QAAQ;IACR,eAAe;IACf,WAAW;IACX,KAAK;IACL,cAAc;IACd,UAAU;IACV,YAAY;IACZ,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,WAAW;IACX,UAAU;IACV,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACb,cAAc;IACd,eAAe;IACf,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,gBAAgB;CACjB,CAAC,CAAC;AAEH,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,KAAkB;IACnE,MAAM,CAAC,IAAI,CACT,SAAS,EACT,yfAAyf,EACzf;QACE,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2IAA2I,CAAC;KACpL,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QAEpC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzF,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;YAChD,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC3E,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;YAClD,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;gBAC9C,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBAC7E,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;YACnD,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;gBACrE,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;YAChD,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,QAAQ,CAAC,wCAAwC,CAAC,CAAC;gBAC5D,CAAC;gBACD,iCAAiC;gBACjC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC;oBAC5C,OAAO,QAAQ,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBACD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACrD,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBACnF,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACvD,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACrE,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7C,CAAC;YAED,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1E,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,IAAI,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACpC,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;gBACxD,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBACpE,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9C,CAAC;YAED,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;gBACtE,MAAM,QAAQ,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;gBAC3E,IAAI,KAAK,KAAK,QAAQ;oBAAE,QAAQ,CAAC,KAAK,GAAG,qDAAqD,KAAK,GAAG,CAAC;gBACvG,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,WAAW,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;gBACxF,MAAM,QAAQ,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC;gBAC7E,IAAI,KAAK,KAAK,QAAQ;oBAAE,QAAQ,CAAC,KAAK,GAAG,8DAA8D,KAAK,GAAG,CAAC;gBAChH,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,YAAY,EAAE,cAAc,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;gBACnG,MAAM,QAAQ,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAChF,IAAI,KAAK,KAAK,QAAQ;oBAAE,QAAQ,CAAC,KAAK,GAAG,0DAA0D,KAAK,GAAG,CAAC;gBAC5G,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;gBACnF,MAAM,QAAQ,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;gBAC1E,IAAI,KAAK,KAAK,QAAQ;oBAAE,QAAQ,CAAC,KAAK,GAAG,4DAA4D,KAAK,GAAG,CAAC;gBAC9G,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC;gBAClF,MAAM,QAAQ,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAChF,IAAI,KAAK,KAAK,QAAQ;oBAAE,QAAQ,CAAC,KAAK,GAAG,2DAA2D,KAAK,GAAG,CAAC;gBAC7G,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,eAAe,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;gBAClD,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC5G,MAAM,QAAQ,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC;gBACjF,IAAI,KAAK,KAAK,QAAQ;oBAAE,QAAQ,CAAC,KAAK,GAAG,8DAA8D,KAAK,GAAG,CAAC;gBAChH,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;YAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,QAAQ,CAAC,8CAA8C,CAAC,CAAC;gBAClE,CAAC;gBACD,iCAAiC;gBACjC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC;oBAC5C,OAAO,QAAQ,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBACD,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,SAAS,GAAG,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACrD,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC1G,MAAM,WAAW,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;gBAC9E,IAAI,KAAK,KAAK,WAAW;oBAAE,WAAW,CAAC,KAAK,GAAG,mEAAmE,KAAK,GAAG,CAAC;gBAC3H,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;YAC9B,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC;gBAC9H,MAAM,WAAW,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;gBAC9E,IAAI,KAAK,KAAK,WAAW;oBAAE,WAAW,CAAC,KAAK,GAAG,8DAA8D,KAAK,GAAG,CAAC;gBACtH,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;YAC9B,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,cAAc,GAAG,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC5D,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBACtH,MAAM,gBAAgB,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBACxF,IAAI,KAAK,KAAK,WAAW;oBAAE,gBAAgB,CAAC,KAAK,GAAG,6DAA6D,KAAK,GAAG,CAAC;gBAC1H,OAAO,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACnC,CAAC;YAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,SAAS,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;gBAChD,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;gBAClG,MAAM,WAAW,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;gBAC9E,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,WAAW;oBAAE,WAAW,CAAC,KAAK,GAAG,8EAA8E,KAAK,GAAG,CAAC;gBAC9J,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;YAC9B,CAAC;YAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/G,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;YACpD,CAAC;YAED,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,cAAc,EAAE,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;gBAC1F,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;YACpD,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;gBAChG,MAAM,WAAW,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;gBAC9E,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,UAAU;oBAAE,WAAW,CAAC,KAAK,GAAG,yEAAyE,KAAK,GAAG,CAAC;gBACtJ,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;YAC9B,CAAC;YAED,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC7C,MAAM,cAAc,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;gBAClC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;gBAChE,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC/F,MAAM,UAAU,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;gBAC5E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,QAAQ;oBAAE,UAAU,CAAC,KAAK,GAAG,yEAAyE,KAAK,GAAG,CAAC;gBACpJ,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC;YAC7B,CAAC;YAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC1F,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;YACnD,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;gBACxC,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1C,MAAM,GAAG,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC9C,MAAM,eAAe,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;gBACpC,MAAM,YAAY,GAAG,oBAAoB,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,CAAC;gBAClG,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;gBACtG,MAAM,cAAc,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,CAAC;gBACpF,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,SAAS;oBAAE,cAAc,CAAC,KAAK,GAAG,wEAAwE,KAAK,GAAG,CAAC;gBACvJ,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC;YACjC,CAAC;YAED,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;gBACxC,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;gBACjF,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;gBAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;gBAC5E,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;gBAC5E,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,MAAM,CAAC;gBAE/E,MAAM,aAAa,GAAG;oBACpB,cAAc,EAAE,OAAO;oBACvB,gBAAgB,EAAE,YAAY,KAAK,CAAC;oBACpC,cAAc,EAAE,eAAe,KAAK,CAAC;oBACrC,eAAe,EAAE,YAAY;oBAC7B,YAAY,EAAE,GAAG,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,aAAa;iBAC/D,CAAC;gBACF,MAAM,YAAY,GAAG,OAAO,IAAI,YAAY,KAAK,CAAC,IAAI,eAAe,KAAK,CAAC,IAAI,YAAY,CAAC;gBAC5F,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;gBAC/D,MAAM,eAAe,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;gBACzG,IAAI,KAAK,KAAK,QAAQ;oBAAE,eAAe,CAAC,KAAK,GAAG,+DAA+D,KAAK,GAAG,CAAC;gBACxH,OAAO,OAAO,CAAC,eAAe,CAAC,CAAC;YAClC,CAAC;YAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;gBACxC,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1C,MAAM,GAAG,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC9C,MAAM,eAAe,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;gBACpC,MAAM,SAAS,GAAG,uBAAuB,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,CAAC;gBAClG,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;gBACnG,MAAM,WAAW,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;gBAC9E,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,SAAS;oBAAE,WAAW,CAAC,KAAK,GAAG,8EAA8E,KAAK,GAAG,CAAC;gBAC7J,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;YAC9B,CAAC;YAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,YAAY,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;gBAC/C,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/H,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;YACtD,CAAC;YAED,OAAO,CAAC,CAAC,CAAC;gBACR,OAAO,QAAQ,CAAC,yBAAyB,IAAc,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
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":"edge.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/edge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AASpE,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA2HxE"}
1
+ {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/edge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAUpE,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAwNxE"}
@@ -5,9 +5,10 @@ import { generateId } from "../../core/utils/id.js";
5
5
  import { now } from "../../core/utils/time.js";
6
6
  import { logger } from "../../core/utils/logger.js";
7
7
  import { mcpText, mcpError } from "../response-helpers.js";
8
+ import { sequenceSubtasks } from "../../core/graph/auto-sequence.js";
8
9
  export function registerEdge(server, store) {
9
- server.tool("edge", "Manage edges: add, delete, or list relationships between nodes", {
10
- action: z.enum(["add", "delete", "list"]).describe("Action to perform"),
10
+ server.tool("edge", "Manage edges: add, delete, list, or batch_add relationships between nodes", {
11
+ action: z.enum(["add", "delete", "list", "batch_add", "sequence"]).describe("Action to perform"),
11
12
  // add params
12
13
  from: z.string().optional().describe("Source node ID (required for add)"),
13
14
  to: z.string().optional().describe("Target node ID (required for add)"),
@@ -16,10 +17,20 @@ export function registerEdge(server, store) {
16
17
  weight: z.number().min(0).max(1).optional().describe("Edge weight 0-1 (add only)"),
17
18
  // delete params
18
19
  id: z.string().optional().describe("Edge ID (required for delete)"),
20
+ // batch_add params
21
+ edges: z.array(z.object({
22
+ from: z.string(),
23
+ to: z.string(),
24
+ relationType: RelationTypeSchema,
25
+ reason: z.string().optional(),
26
+ weight: z.number().min(0).max(1).optional(),
27
+ })).max(50).optional().describe("Array of edges for batch_add (max 50)"),
19
28
  // list params
20
29
  nodeId: z.string().optional().describe("Filter edges by node ID (list only)"),
30
+ // sequence params
31
+ parentId: z.string().optional().describe("Parent node ID for sequence action"),
21
32
  direction: z.enum(["from", "to", "both"]).optional().describe("Edge direction relative to nodeId (list only, default: both)"),
22
- }, async ({ action, from, to, relationType, reason, weight, id, nodeId, direction }) => {
33
+ }, async ({ action, from, to, relationType, reason, weight, id, edges: batchEdges, nodeId, direction, parentId }) => {
23
34
  logger.debug("tool:edge", { action, from, to, relationType });
24
35
  if (action === "add") {
25
36
  if (!from || !to || !relationType) {
@@ -65,6 +76,73 @@ export function registerEdge(server, store) {
65
76
  logger.info("tool:edge:ok", { action: "add", edgeId: edge.id, from, to, relationType });
66
77
  return mcpText({ ok: true, edge });
67
78
  }
79
+ if (action === "batch_add") {
80
+ if (!batchEdges || batchEdges.length === 0) {
81
+ return mcpError("edges array is required for batch_add action");
82
+ }
83
+ if (batchEdges.length > 50) {
84
+ return mcpError("batch_add supports at most 50 edges");
85
+ }
86
+ const inserted = [];
87
+ const errors = [];
88
+ const validEdges = [];
89
+ for (let i = 0; i < batchEdges.length; i++) {
90
+ const entry = batchEdges[i];
91
+ // Check from node exists
92
+ const fromNode = store.getNodeById(entry.from);
93
+ if (!fromNode) {
94
+ errors.push({ index: i, message: `Node not found: ${entry.from}` });
95
+ continue;
96
+ }
97
+ // Check to node exists
98
+ const toNode = store.getNodeById(entry.to);
99
+ if (!toNode) {
100
+ errors.push({ index: i, message: `Node not found: ${entry.to}` });
101
+ continue;
102
+ }
103
+ // Prevent self-reference
104
+ if (entry.from === entry.to) {
105
+ errors.push({ index: i, message: "Self-referencing edges are not allowed" });
106
+ continue;
107
+ }
108
+ // Check duplicates
109
+ const existingEdges = store.getEdgesFrom(entry.from);
110
+ const duplicate = existingEdges.find((e) => e.to === entry.to && e.relationType === entry.relationType);
111
+ if (duplicate) {
112
+ errors.push({ index: i, message: `Duplicate edge: ${entry.from} → ${entry.to} (${entry.relationType})` });
113
+ continue;
114
+ }
115
+ const edgeId = generateId("edge");
116
+ const edge = {
117
+ id: edgeId,
118
+ from: entry.from,
119
+ to: entry.to,
120
+ relationType: entry.relationType,
121
+ reason: entry.reason,
122
+ weight: entry.weight,
123
+ createdAt: now(),
124
+ };
125
+ validEdges.push(edge);
126
+ inserted.push(edgeId);
127
+ }
128
+ if (validEdges.length > 0) {
129
+ store.mergeInsert([], validEdges);
130
+ }
131
+ logger.info("tool:edge:batch_add:ok", { inserted: inserted.length, errors: errors.length });
132
+ return mcpText({ ok: true, inserted, errors });
133
+ }
134
+ if (action === "sequence") {
135
+ if (!parentId) {
136
+ return mcpError("parentId is required for sequence action");
137
+ }
138
+ const parent = store.getNodeById(parentId);
139
+ if (!parent) {
140
+ return mcpError(new NodeNotFoundError(parentId));
141
+ }
142
+ const result = sequenceSubtasks(store, parentId);
143
+ logger.info("tool:edge:sequence:ok", { parentId, edgesCreated: result.edgesCreated });
144
+ return mcpText({ ok: true, ...result });
145
+ }
68
146
  if (action === "delete") {
69
147
  if (!id) {
70
148
  return mcpError("id is required for delete action");
@@ -1 +1 @@
1
- {"version":3,"file":"edge.js","sourceRoot":"","sources":["../../../src/mcp/tools/edge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edge.js","sourceRoot":"","sources":["../../../src/mcp/tools/edge.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/export.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAMpE,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAwE1E"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/export.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAOpE,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAqF1E"}
@@ -1,15 +1,16 @@
1
1
  import { z } from "zod/v4";
2
2
  import { graphToMermaid, filterNodes } from "../../core/graph/mermaid-export.js";
3
+ import { graphToCsv } from "../../core/graph/csv-export.js";
3
4
  import { logger } from "../../core/utils/logger.js";
4
5
  import { mcpText } from "../response-helpers.js";
5
6
  export function registerExport(server, store) {
6
- server.tool("export", "Export the graph as JSON or Mermaid diagram", {
7
- action: z.enum(["json", "mermaid"]).describe("Export format"),
7
+ server.tool("export", "Export the graph as JSON, Mermaid diagram, or CSV", {
8
+ action: z.enum(["json", "mermaid", "csv"]).describe("Export format"),
8
9
  // mermaid params
9
- format: z.enum(["flowchart", "mindmap"]).optional().describe("Mermaid diagram format (default: flowchart)"),
10
+ format: z.enum(["flowchart", "mindmap", "gantt", "stateDiagram"]).optional().describe("Mermaid diagram format (default: flowchart)"),
10
11
  direction: z.enum(["TD", "LR"]).optional().describe("Flow direction for flowchart (default: TD)"),
11
12
  filterStatus: z.array(z.enum(["backlog", "ready", "in_progress", "blocked", "done"])).optional().describe("Only include nodes with these statuses"),
12
- filterType: z.array(z.enum(["epic", "task", "subtask", "requirement", "constraint", "milestone", "acceptance_criteria", "risk", "decision"])).optional().describe("Only include nodes with these types"),
13
+ filterType: z.array(z.enum(["epic", "task", "subtask", "requirement", "constraint", "milestone", "acceptance_criteria", "risk", "decision", "interface", "formula", "state_machine", "contract", "scenario", "performance_budget", "asset", "data_table", "metric", "config_schema"])).optional().describe("Only include nodes with these types"),
13
14
  }, async ({ action, format, direction, filterStatus, filterType }) => {
14
15
  logger.debug("tool:export", { format: action });
15
16
  const doc = store.toGraphDocument();
@@ -52,6 +53,18 @@ export function registerExport(server, store) {
52
53
  logger.info("tool:export:ok", { format: "json", nodes: filteredDoc.nodes.length });
53
54
  return mcpText(filteredDoc);
54
55
  }
56
+ if (action === "csv") {
57
+ const csv = graphToCsv(doc, {
58
+ filterStatus: filterStatus,
59
+ filterType: filterType,
60
+ });
61
+ logger.info("tool:export:ok", { format: "csv", nodes: doc.nodes.length });
62
+ return {
63
+ content: [
64
+ { type: "text", text: csv },
65
+ ],
66
+ };
67
+ }
55
68
  // action === "mermaid"
56
69
  const mermaid = graphToMermaid(doc.nodes, doc.edges, {
57
70
  format: format,
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/mcp/tools/export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/mcp/tools/export.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;AAUpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAiF7E"}
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;AAWpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA2K7E"}
@@ -6,6 +6,7 @@ import { convertToGraph } from "../../core/importer/prd-to-graph.js";
6
6
  import { KnowledgeStore } from "../../core/store/knowledge-store.js";
7
7
  import { indexPrdContent } from "../../core/rag/prd-indexer.js";
8
8
  import { indexEntitiesForSource } from "../../core/rag/entity-index-hook.js";
9
+ import { diffPrd } from "../../core/parser/prd-diff.js";
9
10
  import { logger } from "../../core/utils/logger.js";
10
11
  import { mcpText, mcpError } from "../response-helpers.js";
11
12
  export function registerImportPrd(server, store) {
@@ -16,11 +17,68 @@ export function registerImportPrd(server, store) {
16
17
  .optional()
17
18
  .default(false)
18
19
  .describe("Force re-import: delete nodes from previous import of this file before importing"),
19
- }, async ({ filePath, force }) => {
20
- logger.info("tool:import_prd", { filePath, force });
20
+ dryRun: z
21
+ .boolean()
22
+ .optional()
23
+ .default(false)
24
+ .describe("Preview import without persisting — returns nodes that would be created"),
25
+ diff: z
26
+ .boolean()
27
+ .optional()
28
+ .default(false)
29
+ .describe("Compare with previous import and show changes (sections added/removed/modified)"),
30
+ }, async ({ filePath, force, dryRun, diff }) => {
31
+ logger.info("tool:import_prd", { filePath, force, diff });
21
32
  // 1. Read and parse
22
33
  const { content, absolutePath, sizeBytes } = await readPrdFile(filePath);
23
34
  const sourceFileName = path.basename(absolutePath);
35
+ // 1.5 Diff-only mode: compare with previous import without modifying anything
36
+ if (diff) {
37
+ const rawSourceId = `prd_raw:${sourceFileName}`;
38
+ try {
39
+ const knowledgeStore = new KnowledgeStore(store.getDb());
40
+ const previousDocs = knowledgeStore.getBySourceId(rawSourceId);
41
+ if (previousDocs.length === 0) {
42
+ return mcpText({
43
+ ok: true,
44
+ diff: true,
45
+ message: `No previous import found for "${sourceFileName}". Import the file first, then use diff=true to compare future changes.`,
46
+ });
47
+ }
48
+ const oldContent = previousDocs.map((d) => d.content).join("");
49
+ const diffResult = diffPrd(oldContent, content);
50
+ // Find impacted graph nodes by matching modified/added/removed section titles
51
+ const changedSections = diffResult.sections.filter((s) => s.status !== "unchanged");
52
+ const allNodes = store.getAllNodes();
53
+ const impactedNodes = changedSections.flatMap((section) => {
54
+ const lowerTitle = section.title.toLowerCase();
55
+ return allNodes.filter((n) => n.title.toLowerCase().includes(lowerTitle) || lowerTitle.includes(n.title.toLowerCase()));
56
+ });
57
+ const uniqueImpacted = [...new Map(impactedNodes.map((n) => [n.id, n])).values()];
58
+ return mcpText({
59
+ ok: true,
60
+ diff: true,
61
+ sourceFile: sourceFileName,
62
+ summary: {
63
+ added: diffResult.addedCount,
64
+ removed: diffResult.removedCount,
65
+ modified: diffResult.modifiedCount,
66
+ unchanged: diffResult.unchangedCount,
67
+ },
68
+ sections: diffResult.sections.filter((s) => s.status !== "unchanged"),
69
+ impactedNodes: uniqueImpacted.map((n) => ({
70
+ id: n.id,
71
+ title: n.title,
72
+ type: n.type,
73
+ status: n.status,
74
+ })),
75
+ });
76
+ }
77
+ catch (err) {
78
+ logger.warn("tool:import_prd:diff_failed", { error: String(err) });
79
+ return mcpError(`Diff failed: ${String(err)}`);
80
+ }
81
+ }
24
82
  // 2. Check for previous import
25
83
  const alreadyImported = store.hasImport(sourceFileName);
26
84
  if (alreadyImported && !force) {
@@ -37,6 +95,25 @@ export function registerImportPrd(server, store) {
37
95
  // 5. Convert to graph
38
96
  const { nodes, edges, stats } = convertToGraph(extraction, sourceFileName);
39
97
  logger.debug("tool:import_prd:converted", { nodes: nodes.length, edges: edges.length });
98
+ // 5.5 Dry-run: return preview without persisting
99
+ if (dryRun) {
100
+ const preview = nodes.slice(0, 30).map((n) => ({
101
+ type: n.type,
102
+ title: n.title,
103
+ status: n.status,
104
+ priority: n.priority,
105
+ parentId: n.parentId ?? null,
106
+ }));
107
+ logger.info("tool:import_prd:dry_run", { nodesPreview: preview.length, totalNodes: nodes.length });
108
+ return mcpText({
109
+ ok: true,
110
+ dryRun: true,
111
+ sourceFile: sourceFileName,
112
+ originalSizeChars: sizeBytes,
113
+ ...stats,
114
+ preview,
115
+ });
116
+ }
40
117
  // 6. Bulk insert into SQLite (atomic)
41
118
  store.bulkInsert(nodes, edges);
42
119
  // 7. Record import
@@ -48,6 +125,16 @@ export function registerImportPrd(server, store) {
48
125
  const indexResult = indexPrdContent(knowledgeStore, content, sourceFileName, "ANALYZE");
49
126
  knowledgeDocsIndexed = indexResult.documentsIndexed;
50
127
  indexEntitiesForSource(store.getDb(), "prd");
128
+ // 8.1 Store raw PRD text for future diff comparisons
129
+ const rawSourceId = `prd_raw:${sourceFileName}`;
130
+ knowledgeStore.deleteBySource("prd", rawSourceId);
131
+ knowledgeStore.insert({
132
+ sourceType: "prd",
133
+ sourceId: rawSourceId,
134
+ title: `PRD Raw: ${sourceFileName}`,
135
+ content,
136
+ metadata: { sourceFile: sourceFileName, purpose: "diff_tracking", storedAt: new Date().toISOString() },
137
+ });
51
138
  }
52
139
  catch (err) {
53
140
  logger.warn("tool:import_prd:knowledge_index_failed", { error: String(err) });
@@ -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;AA6DpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAyE5E"}
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;AA+DpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA4E5E"}
@@ -46,6 +46,8 @@ import { registerKnowledgeExport } from "./knowledge-export.js";
46
46
  // Consolidated tools
47
47
  import { registerNode } from "./node.js";
48
48
  import { registerValidate } from "./validate.js";
49
+ // Task templates
50
+ import { registerTemplate } from "./template.js";
49
51
  // LSP Code Intelligence
50
52
  import { registerCodeIntelligence } from "./code-intelligence.js";
51
53
  // Deprecated tools (backward compat — will be removed in v7.0)
@@ -108,6 +110,8 @@ export function registerAllTools(server, store) {
108
110
  // Consolidated tools
109
111
  registerNode(server, store);
110
112
  registerValidate(server, store);
113
+ // Task templates
114
+ registerTemplate(server, store);
111
115
  // LSP Code Intelligence
112
116
  registerCodeIntelligence(server, store);
113
117
  // Deprecated tools (backward compat — will be removed in v7.0)