@mcp-graph-workflow/mcp-graph 5.5.3 → 5.6.1

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 (237) hide show
  1. package/dist/api/router.d.ts.map +1 -1
  2. package/dist/api/router.js +4 -0
  3. package/dist/api/router.js.map +1 -1
  4. package/dist/api/routes/code-graph.d.ts.map +1 -1
  5. package/dist/api/routes/code-graph.js +4 -1
  6. package/dist/api/routes/code-graph.js.map +1 -1
  7. package/dist/api/routes/journey.d.ts +4 -0
  8. package/dist/api/routes/journey.d.ts.map +1 -0
  9. package/dist/api/routes/journey.js +263 -0
  10. package/dist/api/routes/journey.js.map +1 -0
  11. package/dist/api/routes/siebel.d.ts +7 -0
  12. package/dist/api/routes/siebel.d.ts.map +1 -0
  13. package/dist/api/routes/siebel.js +305 -0
  14. package/dist/api/routes/siebel.js.map +1 -0
  15. package/dist/core/code/code-indexer.d.ts.map +1 -1
  16. package/dist/core/code/code-indexer.js +17 -2
  17. package/dist/core/code/code-indexer.js.map +1 -1
  18. package/dist/core/code/code-types.d.ts +1 -0
  19. package/dist/core/code/code-types.d.ts.map +1 -1
  20. package/dist/core/code/code-types.js.map +1 -1
  21. package/dist/core/code/ts-analyzer.d.ts +6 -0
  22. package/dist/core/code/ts-analyzer.d.ts.map +1 -1
  23. package/dist/core/code/ts-analyzer.js +9 -0
  24. package/dist/core/code/ts-analyzer.js.map +1 -1
  25. package/dist/core/context/rag-context.d.ts.map +1 -1
  26. package/dist/core/context/rag-context.js +21 -5
  27. package/dist/core/context/rag-context.js.map +1 -1
  28. package/dist/core/events/event-types.d.ts +63 -1
  29. package/dist/core/events/event-types.d.ts.map +1 -1
  30. package/dist/core/integrations/integration-orchestrator.d.ts +12 -0
  31. package/dist/core/integrations/integration-orchestrator.d.ts.map +1 -1
  32. package/dist/core/integrations/integration-orchestrator.js +36 -2
  33. package/dist/core/integrations/integration-orchestrator.js.map +1 -1
  34. package/dist/core/journey/journey-store.d.ts +137 -0
  35. package/dist/core/journey/journey-store.d.ts.map +1 -0
  36. package/dist/core/journey/journey-store.js +210 -0
  37. package/dist/core/journey/journey-store.js.map +1 -0
  38. package/dist/core/parser/file-reader.d.ts.map +1 -1
  39. package/dist/core/parser/file-reader.js +16 -1
  40. package/dist/core/parser/file-reader.js.map +1 -1
  41. package/dist/core/parser/read-docx.d.ts +17 -0
  42. package/dist/core/parser/read-docx.d.ts.map +1 -0
  43. package/dist/core/parser/read-docx.js +79 -0
  44. package/dist/core/parser/read-docx.js.map +1 -0
  45. package/dist/core/parser/read-swagger.d.ts +49 -0
  46. package/dist/core/parser/read-swagger.d.ts.map +1 -0
  47. package/dist/core/parser/read-swagger.js +332 -0
  48. package/dist/core/parser/read-swagger.js.map +1 -0
  49. package/dist/core/rag/chunk-text.d.ts +5 -0
  50. package/dist/core/rag/chunk-text.d.ts.map +1 -1
  51. package/dist/core/rag/chunk-text.js +135 -0
  52. package/dist/core/rag/chunk-text.js.map +1 -1
  53. package/dist/core/rag/code-context-indexer.d.ts +27 -0
  54. package/dist/core/rag/code-context-indexer.d.ts.map +1 -0
  55. package/dist/core/rag/code-context-indexer.js +53 -0
  56. package/dist/core/rag/code-context-indexer.js.map +1 -0
  57. package/dist/core/rag/decision-indexer.d.ts +20 -0
  58. package/dist/core/rag/decision-indexer.d.ts.map +1 -0
  59. package/dist/core/rag/decision-indexer.js +32 -0
  60. package/dist/core/rag/decision-indexer.js.map +1 -0
  61. package/dist/core/rag/journey-indexer.d.ts +16 -0
  62. package/dist/core/rag/journey-indexer.d.ts.map +1 -0
  63. package/dist/core/rag/journey-indexer.js +182 -0
  64. package/dist/core/rag/journey-indexer.js.map +1 -0
  65. package/dist/core/rag/knowledge-feedback.d.ts +15 -0
  66. package/dist/core/rag/knowledge-feedback.d.ts.map +1 -0
  67. package/dist/core/rag/knowledge-feedback.js +46 -0
  68. package/dist/core/rag/knowledge-feedback.js.map +1 -0
  69. package/dist/core/rag/knowledge-linker.d.ts +20 -0
  70. package/dist/core/rag/knowledge-linker.d.ts.map +1 -0
  71. package/dist/core/rag/knowledge-linker.js +107 -0
  72. package/dist/core/rag/knowledge-linker.js.map +1 -0
  73. package/dist/core/rag/knowledge-quality.d.ts +31 -0
  74. package/dist/core/rag/knowledge-quality.d.ts.map +1 -0
  75. package/dist/core/rag/knowledge-quality.js +127 -0
  76. package/dist/core/rag/knowledge-quality.js.map +1 -0
  77. package/dist/core/rag/knowledge-synthesizer.d.ts +17 -0
  78. package/dist/core/rag/knowledge-synthesizer.d.ts.map +1 -0
  79. package/dist/core/rag/knowledge-synthesizer.js +115 -0
  80. package/dist/core/rag/knowledge-synthesizer.js.map +1 -0
  81. package/dist/core/rag/memory-rag-query.d.ts +3 -3
  82. package/dist/core/rag/memory-rag-query.d.ts.map +1 -1
  83. package/dist/core/rag/memory-rag-query.js +18 -0
  84. package/dist/core/rag/memory-rag-query.js.map +1 -1
  85. package/dist/core/rag/multi-strategy-retrieval.d.ts +46 -0
  86. package/dist/core/rag/multi-strategy-retrieval.d.ts.map +1 -0
  87. package/dist/core/rag/multi-strategy-retrieval.js +140 -0
  88. package/dist/core/rag/multi-strategy-retrieval.js.map +1 -0
  89. package/dist/core/rag/rag-pipeline.d.ts +11 -0
  90. package/dist/core/rag/rag-pipeline.d.ts.map +1 -1
  91. package/dist/core/rag/rag-pipeline.js +39 -0
  92. package/dist/core/rag/rag-pipeline.js.map +1 -1
  93. package/dist/core/rag/siebel-indexer.d.ts +16 -0
  94. package/dist/core/rag/siebel-indexer.d.ts.map +1 -0
  95. package/dist/core/rag/siebel-indexer.js +75 -0
  96. package/dist/core/rag/siebel-indexer.js.map +1 -0
  97. package/dist/core/rag/swagger-indexer.d.ts +16 -0
  98. package/dist/core/rag/swagger-indexer.d.ts.map +1 -0
  99. package/dist/core/rag/swagger-indexer.js +119 -0
  100. package/dist/core/rag/swagger-indexer.js.map +1 -0
  101. package/dist/core/rag/validation-indexer.d.ts +23 -0
  102. package/dist/core/rag/validation-indexer.d.ts.map +1 -0
  103. package/dist/core/rag/validation-indexer.js +35 -0
  104. package/dist/core/rag/validation-indexer.js.map +1 -0
  105. package/dist/core/siebel/composer-automation.d.ts +77 -0
  106. package/dist/core/siebel/composer-automation.d.ts.map +1 -0
  107. package/dist/core/siebel/composer-automation.js +110 -0
  108. package/dist/core/siebel/composer-automation.js.map +1 -0
  109. package/dist/core/siebel/dependency-analyzer.d.ts +24 -0
  110. package/dist/core/siebel/dependency-analyzer.d.ts.map +1 -0
  111. package/dist/core/siebel/dependency-analyzer.js +174 -0
  112. package/dist/core/siebel/dependency-analyzer.js.map +1 -0
  113. package/dist/core/siebel/siebel-config.d.ts +28 -0
  114. package/dist/core/siebel/siebel-config.d.ts.map +1 -0
  115. package/dist/core/siebel/siebel-config.js +86 -0
  116. package/dist/core/siebel/siebel-config.js.map +1 -0
  117. package/dist/core/siebel/sif-context-assembler.d.ts +37 -0
  118. package/dist/core/siebel/sif-context-assembler.d.ts.map +1 -0
  119. package/dist/core/siebel/sif-context-assembler.js +259 -0
  120. package/dist/core/siebel/sif-context-assembler.js.map +1 -0
  121. package/dist/core/siebel/sif-generator.d.ts +26 -0
  122. package/dist/core/siebel/sif-generator.d.ts.map +1 -0
  123. package/dist/core/siebel/sif-generator.js +232 -0
  124. package/dist/core/siebel/sif-generator.js.map +1 -0
  125. package/dist/core/siebel/sif-parser.d.ts +16 -0
  126. package/dist/core/siebel/sif-parser.d.ts.map +1 -0
  127. package/dist/core/siebel/sif-parser.js +355 -0
  128. package/dist/core/siebel/sif-parser.js.map +1 -0
  129. package/dist/core/siebel/sif-templates.d.ts +45 -0
  130. package/dist/core/siebel/sif-templates.d.ts.map +1 -0
  131. package/dist/core/siebel/sif-templates.js +179 -0
  132. package/dist/core/siebel/sif-templates.js.map +1 -0
  133. package/dist/core/siebel/sif-to-graph.d.ts +20 -0
  134. package/dist/core/siebel/sif-to-graph.d.ts.map +1 -0
  135. package/dist/core/siebel/sif-to-graph.js +176 -0
  136. package/dist/core/siebel/sif-to-graph.js.map +1 -0
  137. package/dist/core/store/knowledge-store.d.ts +25 -0
  138. package/dist/core/store/knowledge-store.d.ts.map +1 -1
  139. package/dist/core/store/knowledge-store.js +72 -0
  140. package/dist/core/store/knowledge-store.js.map +1 -1
  141. package/dist/core/store/migrations.d.ts.map +1 -1
  142. package/dist/core/store/migrations.js +96 -0
  143. package/dist/core/store/migrations.js.map +1 -1
  144. package/dist/mcp/tools/index.d.ts.map +1 -1
  145. package/dist/mcp/tools/index.js +26 -0
  146. package/dist/mcp/tools/index.js.map +1 -1
  147. package/dist/mcp/tools/journey.d.ts +4 -0
  148. package/dist/mcp/tools/journey.d.ts.map +1 -0
  149. package/dist/mcp/tools/journey.js +154 -0
  150. package/dist/mcp/tools/journey.js.map +1 -0
  151. package/dist/mcp/tools/knowledge-feedback.d.ts +8 -0
  152. package/dist/mcp/tools/knowledge-feedback.d.ts.map +1 -0
  153. package/dist/mcp/tools/knowledge-feedback.js +35 -0
  154. package/dist/mcp/tools/knowledge-feedback.js.map +1 -0
  155. package/dist/mcp/tools/knowledge-stats.d.ts +9 -0
  156. package/dist/mcp/tools/knowledge-stats.d.ts.map +1 -0
  157. package/dist/mcp/tools/knowledge-stats.js +83 -0
  158. package/dist/mcp/tools/knowledge-stats.js.map +1 -0
  159. package/dist/mcp/tools/plan-sprint.d.ts.map +1 -1
  160. package/dist/mcp/tools/plan-sprint.js +7 -1
  161. package/dist/mcp/tools/plan-sprint.js.map +1 -1
  162. package/dist/mcp/tools/rag-context.d.ts.map +1 -1
  163. package/dist/mcp/tools/rag-context.js +43 -2
  164. package/dist/mcp/tools/rag-context.js.map +1 -1
  165. package/dist/mcp/tools/reindex-knowledge.d.ts.map +1 -1
  166. package/dist/mcp/tools/reindex-knowledge.js +23 -2
  167. package/dist/mcp/tools/reindex-knowledge.js.map +1 -1
  168. package/dist/mcp/tools/siebel-analyze.d.ts +8 -0
  169. package/dist/mcp/tools/siebel-analyze.d.ts.map +1 -0
  170. package/dist/mcp/tools/siebel-analyze.js +107 -0
  171. package/dist/mcp/tools/siebel-analyze.js.map +1 -0
  172. package/dist/mcp/tools/siebel-composer.d.ts +12 -0
  173. package/dist/mcp/tools/siebel-composer.d.ts.map +1 -0
  174. package/dist/mcp/tools/siebel-composer.js +59 -0
  175. package/dist/mcp/tools/siebel-composer.js.map +1 -0
  176. package/dist/mcp/tools/siebel-env.d.ts +8 -0
  177. package/dist/mcp/tools/siebel-env.d.ts.map +1 -0
  178. package/dist/mcp/tools/siebel-env.js +60 -0
  179. package/dist/mcp/tools/siebel-env.js.map +1 -0
  180. package/dist/mcp/tools/siebel-generate-sif.d.ts +8 -0
  181. package/dist/mcp/tools/siebel-generate-sif.d.ts.map +1 -0
  182. package/dist/mcp/tools/siebel-generate-sif.js +91 -0
  183. package/dist/mcp/tools/siebel-generate-sif.js.map +1 -0
  184. package/dist/mcp/tools/siebel-import-docs.d.ts +9 -0
  185. package/dist/mcp/tools/siebel-import-docs.d.ts.map +1 -0
  186. package/dist/mcp/tools/siebel-import-docs.js +106 -0
  187. package/dist/mcp/tools/siebel-import-docs.js.map +1 -0
  188. package/dist/mcp/tools/siebel-import-sif.d.ts +8 -0
  189. package/dist/mcp/tools/siebel-import-sif.d.ts.map +1 -0
  190. package/dist/mcp/tools/siebel-import-sif.js +68 -0
  191. package/dist/mcp/tools/siebel-import-sif.js.map +1 -0
  192. package/dist/mcp/tools/siebel-search.d.ts +8 -0
  193. package/dist/mcp/tools/siebel-search.d.ts.map +1 -0
  194. package/dist/mcp/tools/siebel-search.js +47 -0
  195. package/dist/mcp/tools/siebel-search.js.map +1 -0
  196. package/dist/mcp/tools/siebel-validate.d.ts +8 -0
  197. package/dist/mcp/tools/siebel-validate.d.ts.map +1 -0
  198. package/dist/mcp/tools/siebel-validate.js +107 -0
  199. package/dist/mcp/tools/siebel-validate.js.map +1 -0
  200. package/dist/mcp/tools/update-status.d.ts.map +1 -1
  201. package/dist/mcp/tools/update-status.js +22 -1
  202. package/dist/mcp/tools/update-status.js.map +1 -1
  203. package/dist/mcp/tools/validate.d.ts.map +1 -1
  204. package/dist/mcp/tools/validate.js +21 -0
  205. package/dist/mcp/tools/validate.js.map +1 -1
  206. package/dist/schemas/knowledge.schema.d.ts +66 -0
  207. package/dist/schemas/knowledge.schema.d.ts.map +1 -1
  208. package/dist/schemas/knowledge.schema.js +28 -0
  209. package/dist/schemas/knowledge.schema.js.map +1 -1
  210. package/dist/schemas/siebel.schema.d.ts +564 -0
  211. package/dist/schemas/siebel.schema.d.ts.map +1 -0
  212. package/dist/schemas/siebel.schema.js +197 -0
  213. package/dist/schemas/siebel.schema.js.map +1 -0
  214. package/dist/web/dashboard/dist/assets/{benchmark-tab-C5fwIqgM.js → benchmark-tab-BoMsoQjO.js} +1 -1
  215. package/dist/web/dashboard/dist/assets/{context-tab-ChCyrRlr.js → context-tab-BLT4qQ77.js} +1 -1
  216. package/dist/web/dashboard/dist/assets/{gitnexus-tab-DnlGT63w.js → gitnexus-tab-DDw7DUED.js} +4 -4
  217. package/dist/web/dashboard/dist/assets/graph-tab-DG9Q6nko.js +1 -0
  218. package/dist/web/dashboard/dist/assets/graph-utils-BpYHKE87.js +1 -0
  219. package/dist/web/dashboard/dist/assets/index-Cu23WCcu.css +1 -0
  220. package/dist/web/dashboard/dist/assets/index-DtkPX5ZZ.js +55 -0
  221. package/dist/web/dashboard/dist/assets/{index-DlZhNCGR.js → index-F9dY4AG_.js} +1 -1
  222. package/dist/web/dashboard/dist/assets/{insights-tab-Cj4f85vS.js → insights-tab-YN7G6mjm.js} +1 -1
  223. package/dist/web/dashboard/dist/assets/journey-tab-BcweuR82.js +1 -0
  224. package/dist/web/dashboard/dist/assets/{logs-tab-C4C2Vn8-.js → logs-tab-BjdAURdy.js} +1 -1
  225. package/dist/web/dashboard/dist/assets/{memories-tab-NtNwoxbT.js → memories-tab-CQ2xM2aw.js} +1 -1
  226. package/dist/web/dashboard/dist/assets/prd-backlog-tab-CIeCpE1a.js +1 -0
  227. package/dist/web/dashboard/dist/assets/siebel-tab-bj5CT4-Z.js +3 -0
  228. package/dist/web/dashboard/dist/assets/{skills-tab-CIj4z1Ol.js → skills-tab-Bgk72mKO.js} +1 -1
  229. package/dist/web/dashboard/dist/assets/style-Da3qWU01.js +7 -0
  230. package/dist/web/dashboard/dist/index.html +2 -2
  231. package/package.json +15 -3
  232. package/dist/web/dashboard/dist/assets/graph-tab-DjV9RD41.js +0 -1
  233. package/dist/web/dashboard/dist/assets/graph-utils-C6bvcT4d.js +0 -7
  234. package/dist/web/dashboard/dist/assets/index-DQqYFXms.css +0 -1
  235. package/dist/web/dashboard/dist/assets/index-dCyMex_p.js +0 -53
  236. package/dist/web/dashboard/dist/assets/prd-backlog-tab-Bxt7qiVG.js +0 -1
  237. /package/dist/web/dashboard/dist/assets/{graph-utils-BZV40eAE.css → style-BZV40eAE.css} +0 -0
@@ -343,6 +343,102 @@ const migrations = [
343
343
  ON edges(project_id, from_node, to_node, relation_type);
344
344
  `,
345
345
  },
346
+ {
347
+ version: 11,
348
+ description: "Journey maps + Knowledge quality scoring, usage tracking, and cross-source relations",
349
+ sql: `
350
+ CREATE TABLE IF NOT EXISTS journey_maps (
351
+ id TEXT PRIMARY KEY,
352
+ project_id TEXT NOT NULL REFERENCES projects(id),
353
+ name TEXT NOT NULL,
354
+ url TEXT,
355
+ description TEXT,
356
+ metadata TEXT, -- JSON object
357
+ created_at TEXT NOT NULL,
358
+ updated_at TEXT NOT NULL
359
+ );
360
+
361
+ CREATE TABLE IF NOT EXISTS journey_screens (
362
+ id TEXT PRIMARY KEY,
363
+ map_id TEXT NOT NULL REFERENCES journey_maps(id) ON DELETE CASCADE,
364
+ project_id TEXT NOT NULL REFERENCES projects(id),
365
+ title TEXT NOT NULL,
366
+ description TEXT,
367
+ screenshot TEXT, -- filename relative to journey-screenshots/
368
+ url TEXT,
369
+ screen_type TEXT NOT NULL DEFAULT 'page',
370
+ fields TEXT, -- JSON array
371
+ ctas TEXT, -- JSON array
372
+ metadata TEXT, -- JSON object
373
+ position_x REAL DEFAULT 0,
374
+ position_y REAL DEFAULT 0,
375
+ created_at TEXT NOT NULL,
376
+ updated_at TEXT NOT NULL
377
+ );
378
+
379
+ CREATE TABLE IF NOT EXISTS journey_edges (
380
+ id TEXT PRIMARY KEY,
381
+ map_id TEXT NOT NULL REFERENCES journey_maps(id) ON DELETE CASCADE,
382
+ project_id TEXT NOT NULL REFERENCES projects(id),
383
+ from_screen TEXT NOT NULL REFERENCES journey_screens(id) ON DELETE CASCADE,
384
+ to_screen TEXT NOT NULL REFERENCES journey_screens(id) ON DELETE CASCADE,
385
+ label TEXT,
386
+ edge_type TEXT NOT NULL DEFAULT 'navigation',
387
+ metadata TEXT, -- JSON object
388
+ created_at TEXT NOT NULL
389
+ );
390
+
391
+ CREATE TABLE IF NOT EXISTS journey_variants (
392
+ id TEXT PRIMARY KEY,
393
+ map_id TEXT NOT NULL REFERENCES journey_maps(id) ON DELETE CASCADE,
394
+ project_id TEXT NOT NULL REFERENCES projects(id),
395
+ name TEXT NOT NULL,
396
+ description TEXT,
397
+ path TEXT NOT NULL, -- JSON array of screen IDs
398
+ created_at TEXT NOT NULL
399
+ );
400
+
401
+ CREATE INDEX IF NOT EXISTS idx_journey_maps_project ON journey_maps(project_id);
402
+ CREATE INDEX IF NOT EXISTS idx_journey_screens_map ON journey_screens(map_id);
403
+ CREATE INDEX IF NOT EXISTS idx_journey_edges_map ON journey_edges(map_id);
404
+ CREATE INDEX IF NOT EXISTS idx_journey_edges_from ON journey_edges(from_screen);
405
+ CREATE INDEX IF NOT EXISTS idx_journey_edges_to ON journey_edges(to_screen);
406
+ CREATE INDEX IF NOT EXISTS idx_journey_variants_map ON journey_variants(map_id);
407
+
408
+ ALTER TABLE knowledge_documents ADD COLUMN quality_score REAL DEFAULT 0.5;
409
+ ALTER TABLE knowledge_documents ADD COLUMN usage_count INTEGER DEFAULT 0;
410
+ ALTER TABLE knowledge_documents ADD COLUMN last_accessed_at TEXT;
411
+ ALTER TABLE knowledge_documents ADD COLUMN staleness_days INTEGER DEFAULT 0;
412
+
413
+ CREATE INDEX IF NOT EXISTS idx_knowledge_quality ON knowledge_documents(quality_score);
414
+ CREATE INDEX IF NOT EXISTS idx_knowledge_usage ON knowledge_documents(usage_count);
415
+
416
+ CREATE TABLE IF NOT EXISTS knowledge_relations (
417
+ id TEXT PRIMARY KEY,
418
+ from_doc_id TEXT NOT NULL,
419
+ to_doc_id TEXT NOT NULL,
420
+ relation TEXT NOT NULL,
421
+ score REAL DEFAULT 1.0,
422
+ created_at TEXT NOT NULL,
423
+ UNIQUE(from_doc_id, to_doc_id, relation)
424
+ );
425
+
426
+ CREATE INDEX IF NOT EXISTS idx_krel_from ON knowledge_relations(from_doc_id);
427
+ CREATE INDEX IF NOT EXISTS idx_krel_to ON knowledge_relations(to_doc_id);
428
+
429
+ CREATE TABLE IF NOT EXISTS knowledge_usage_log (
430
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
431
+ doc_id TEXT NOT NULL,
432
+ query TEXT NOT NULL,
433
+ action TEXT NOT NULL,
434
+ context TEXT,
435
+ created_at TEXT NOT NULL
436
+ );
437
+
438
+ CREATE INDEX IF NOT EXISTS idx_kusage_doc ON knowledge_usage_log(doc_id);
439
+ CREATE INDEX IF NOT EXISTS idx_kusage_action ON knowledge_usage_log(action);
440
+ `,
441
+ },
346
442
  ];
347
443
  export function runMigrations(db) {
348
444
  // Create migrations tracking table
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/core/store/migrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/core/store/migrations.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;AAmCpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAuC5E"}
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;AAgDpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAsD5E"}
@@ -20,6 +20,19 @@ import { registerPlanSprint } from "./plan-sprint.js";
20
20
  import { registerSetPhase } from "./set-phase.js";
21
21
  import { registerMemory } from "./memory.js";
22
22
  import { registerManageSkill } from "./manage-skill.js";
23
+ import { registerJourney } from "./journey.js";
24
+ // Siebel CRM integration tools
25
+ import { registerSiebelImportSif } from "./siebel-import-sif.js";
26
+ import { registerSiebelAnalyze } from "./siebel-analyze.js";
27
+ import { registerSiebelComposer } from "./siebel-composer.js";
28
+ import { registerSiebelEnv } from "./siebel-env.js";
29
+ import { registerSiebelValidate } from "./siebel-validate.js";
30
+ import { registerSiebelSearch } from "./siebel-search.js";
31
+ import { registerSiebelGenerateSif } from "./siebel-generate-sif.js";
32
+ import { registerSiebelImportDocs } from "./siebel-import-docs.js";
33
+ // RAG knowledge tools
34
+ import { registerKnowledgeFeedback } from "./knowledge-feedback.js";
35
+ import { registerKnowledgeStats } from "./knowledge-stats.js";
23
36
  // Consolidated tools
24
37
  import { registerNode } from "./node.js";
25
38
  import { registerValidate } from "./validate.js";
@@ -55,6 +68,19 @@ export function registerAllTools(server, store) {
55
68
  registerSetPhase(server, store);
56
69
  registerMemory(server, store);
57
70
  registerManageSkill(server, store);
71
+ registerJourney(server, store);
72
+ // Siebel CRM integration tools
73
+ registerSiebelImportSif(server, store);
74
+ registerSiebelAnalyze(server, store);
75
+ registerSiebelComposer(server, store);
76
+ registerSiebelEnv(server, store);
77
+ registerSiebelValidate(server, store);
78
+ registerSiebelSearch(server, store);
79
+ registerSiebelGenerateSif(server, store);
80
+ registerSiebelImportDocs(server, store);
81
+ // RAG knowledge tools
82
+ registerKnowledgeFeedback(server, store);
83
+ registerKnowledgeStats(server, store);
58
84
  // Consolidated tools
59
85
  registerNode(server, store);
60
86
  registerValidate(server, store);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,+BAA+B;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,sBAAsB;AACtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,qBAAqB;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,+DAA+D;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,KAAkB;IACpE,aAAa;IACb,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5B,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5B,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5B,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5B,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/B,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/B,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9B,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/B,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5B,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9B,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxC,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9B,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAE/B,+BAA+B;IAC/B,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACvC,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACtC,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACtC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACzC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAExC,sBAAsB;IACtB,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACzC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAEtC,qBAAqB;IACrB,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5B,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAEhC,+DAA+D;IAC/D,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/B,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE3B,4DAA4D;IAC5D,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { SqliteStore } from "../../core/store/sqlite-store.js";
3
+ export declare function registerJourney(server: McpServer, store: SqliteStore): void;
4
+ //# sourceMappingURL=journey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journey.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/journey.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAapE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAmK3E"}
@@ -0,0 +1,154 @@
1
+ import { z } from "zod/v4";
2
+ import { JourneyStore } from "../../core/journey/journey-store.js";
3
+ import { KnowledgeStore } from "../../core/store/knowledge-store.js";
4
+ import { indexJourneyMaps } from "../../core/rag/journey-indexer.js";
5
+ import { logger } from "../../core/utils/logger.js";
6
+ import { mcpText, mcpError } from "../response-helpers.js";
7
+ function getJourneyStore(store) {
8
+ const project = store.getProject();
9
+ if (!project)
10
+ return mcpError("Graph not initialized");
11
+ return new JourneyStore(store.getDb(), project.id);
12
+ }
13
+ export function registerJourney(server, store) {
14
+ server.tool("journey", "Manage and query website journey maps — screen flows, form fields, CTAs, A/B variants. Use 'list' to see maps, 'get' for full details, 'search' to find screens by content, 'index' to sync journey data into the knowledge store for RAG queries.", {
15
+ action: z
16
+ .enum(["list", "get", "search", "index"])
17
+ .describe("Action: list maps, get map details, search screens, index into knowledge store"),
18
+ mapId: z
19
+ .string()
20
+ .optional()
21
+ .describe("Journey map ID (required for 'get')"),
22
+ query: z
23
+ .string()
24
+ .optional()
25
+ .describe("Search query for screens (required for 'search')"),
26
+ }, async ({ action, mapId, query }) => {
27
+ logger.debug("tool:journey", { action, mapId, query });
28
+ const journeyStore = getJourneyStore(store);
29
+ switch (action) {
30
+ case "list": {
31
+ const maps = journeyStore.listMaps();
32
+ logger.info("tool:journey:list", { count: maps.length });
33
+ return mcpText({
34
+ action: "list",
35
+ total: maps.length,
36
+ maps: maps.map((m) => ({
37
+ id: m.id,
38
+ name: m.name,
39
+ url: m.url,
40
+ description: m.description,
41
+ createdAt: m.createdAt,
42
+ })),
43
+ });
44
+ }
45
+ case "get": {
46
+ if (!mapId)
47
+ return mcpError("mapId is required for 'get' action");
48
+ const map = journeyStore.getMap(mapId);
49
+ if (!map)
50
+ return mcpError(`Journey map not found: ${mapId}`);
51
+ // Build a compact representation optimized for AI context
52
+ const screenMap = new Map(map.screens.map((s) => [s.id, s]));
53
+ const compactScreens = map.screens.map((s) => {
54
+ const outEdges = map.edges
55
+ .filter((e) => e.from === s.id)
56
+ .map((e) => ({
57
+ to: screenMap.get(e.to)?.title ?? e.to,
58
+ label: e.label,
59
+ type: e.type,
60
+ }));
61
+ return {
62
+ id: s.id,
63
+ title: s.title,
64
+ type: s.screenType,
65
+ url: s.url,
66
+ description: s.description,
67
+ fields: s.fields?.map((f) => ({
68
+ name: f.name,
69
+ type: f.type,
70
+ required: f.required,
71
+ label: f.label,
72
+ })),
73
+ ctas: s.ctas,
74
+ navigatesTo: outEdges.length > 0 ? outEdges : undefined,
75
+ };
76
+ });
77
+ const compactVariants = map.variants.map((v) => ({
78
+ name: v.name,
79
+ description: v.description,
80
+ path: v.path.map((id) => screenMap.get(id)?.title ?? id),
81
+ }));
82
+ logger.info("tool:journey:get", { mapId, screens: map.screens.length });
83
+ return mcpText({
84
+ action: "get",
85
+ id: map.id,
86
+ name: map.name,
87
+ url: map.url,
88
+ description: map.description,
89
+ screens: compactScreens,
90
+ variants: compactVariants.length > 0 ? compactVariants : undefined,
91
+ summary: {
92
+ totalScreens: map.screens.length,
93
+ totalEdges: map.edges.length,
94
+ totalVariants: map.variants.length,
95
+ screenTypes: [...new Set(map.screens.map((s) => s.screenType))],
96
+ totalFormFields: map.screens.reduce((sum, s) => sum + (s.fields?.length ?? 0), 0),
97
+ totalCTAs: map.screens.reduce((sum, s) => sum + (s.ctas?.length ?? 0), 0),
98
+ },
99
+ });
100
+ }
101
+ case "search": {
102
+ if (!query)
103
+ return mcpError("query is required for 'search' action");
104
+ const maps = journeyStore.listMaps();
105
+ const results = [];
106
+ const queryLower = query.toLowerCase();
107
+ for (const mapSummary of maps) {
108
+ const map = journeyStore.getMap(mapSummary.id);
109
+ if (!map)
110
+ continue;
111
+ for (const screen of map.screens) {
112
+ const searchable = [
113
+ screen.title,
114
+ screen.description ?? "",
115
+ screen.screenType,
116
+ screen.url ?? "",
117
+ ...(screen.ctas ?? []),
118
+ ...(screen.fields?.map((f) => `${f.label ?? f.name} ${f.type}`) ?? []),
119
+ ].join(" ").toLowerCase();
120
+ if (searchable.includes(queryLower)) {
121
+ results.push({
122
+ mapName: map.name,
123
+ screenId: screen.id,
124
+ title: screen.title,
125
+ type: screen.screenType,
126
+ url: screen.url,
127
+ matchContext: screen.description?.slice(0, 200) ?? screen.title,
128
+ });
129
+ }
130
+ }
131
+ }
132
+ logger.info("tool:journey:search", { query, results: results.length });
133
+ return mcpText({
134
+ action: "search",
135
+ query,
136
+ total: results.length,
137
+ results,
138
+ });
139
+ }
140
+ case "index": {
141
+ const knowledgeStore = new KnowledgeStore(store.getDb());
142
+ const result = indexJourneyMaps(knowledgeStore, journeyStore);
143
+ logger.info("tool:journey:index", { mapsIndexed: result.mapsIndexed, documentsIndexed: result.documentsIndexed });
144
+ return mcpText({
145
+ action: "index",
146
+ mapsIndexed: result.mapsIndexed,
147
+ documentsIndexed: result.documentsIndexed,
148
+ message: `Indexed ${result.mapsIndexed} journey map(s) into knowledge store (${result.documentsIndexed} documents). Journey data is now searchable via RAG queries.`,
149
+ });
150
+ }
151
+ }
152
+ });
153
+ }
154
+ //# sourceMappingURL=journey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journey.js","sourceRoot":"","sources":["../../../src/mcp/tools/journey.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MCP Tool — knowledge_feedback
3
+ * Allows AI or user to mark knowledge documents as helpful, unhelpful, or outdated.
4
+ */
5
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import type { SqliteStore } from "../../core/store/sqlite-store.js";
7
+ export declare function registerKnowledgeFeedback(server: McpServer, store: SqliteStore): void;
8
+ //# sourceMappingURL=knowledge-feedback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-feedback.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/knowledge-feedback.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAKpE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA+BrF"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * MCP Tool — knowledge_feedback
3
+ * Allows AI or user to mark knowledge documents as helpful, unhelpful, or outdated.
4
+ */
5
+ import { z } from "zod/v4";
6
+ import { applyFeedback } from "../../core/rag/knowledge-feedback.js";
7
+ import { logger } from "../../core/utils/logger.js";
8
+ import { mcpText, mcpError } from "../response-helpers.js";
9
+ export function registerKnowledgeFeedback(server, store) {
10
+ server.tool("knowledge_feedback", "Provide feedback on a knowledge document to improve RAG quality. Mark docs as helpful, unhelpful, or outdated.", {
11
+ docId: z.string().describe("Knowledge document ID"),
12
+ action: z.enum(["helpful", "unhelpful", "outdated"]).describe("Feedback action"),
13
+ query: z.string().optional().describe("The query that surfaced this document"),
14
+ context: z.string().optional().describe("Additional context about why this feedback is given"),
15
+ }, async ({ docId, action, query, context }) => {
16
+ logger.debug("tool:knowledge_feedback", { docId, action });
17
+ try {
18
+ const contextObj = context ? { note: context } : undefined;
19
+ applyFeedback(store.getDb(), docId, query ?? "", action, contextObj);
20
+ logger.info("tool:knowledge_feedback:ok", { docId, action });
21
+ return mcpText({
22
+ ok: true,
23
+ docId,
24
+ action,
25
+ message: `Feedback '${action}' applied to document ${docId}`,
26
+ });
27
+ }
28
+ catch (err) {
29
+ const message = err instanceof Error ? err.message : String(err);
30
+ logger.warn("tool:knowledge_feedback:fail", { error: message });
31
+ return mcpError(message);
32
+ }
33
+ });
34
+ }
35
+ //# sourceMappingURL=knowledge-feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-feedback.js","sourceRoot":"","sources":["../../../src/mcp/tools/knowledge-feedback.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,KAAkB;IAC7E,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,gHAAgH,EAChH;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACnD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAChF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAC9E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;KAC/F,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1C,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAE3D,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3D,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAErE,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7D,OAAO,OAAO,CAAC;gBACb,EAAE,EAAE,IAAI;gBACR,KAAK;gBACL,MAAM;gBACN,OAAO,EAAE,aAAa,MAAM,yBAAyB,KAAK,EAAE;aAC7D,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAChE,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * MCP Tool — knowledge_stats
3
+ * Returns statistics about the knowledge store: counts per source type,
4
+ * quality distribution, top accessed docs, staleness info.
5
+ */
6
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
7
+ import type { SqliteStore } from "../../core/store/sqlite-store.js";
8
+ export declare function registerKnowledgeStats(server: McpServer, store: SqliteStore): void;
9
+ //# sourceMappingURL=knowledge-stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-stats.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/knowledge-stats.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAKpE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAoGlF"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * MCP Tool — knowledge_stats
3
+ * Returns statistics about the knowledge store: counts per source type,
4
+ * quality distribution, top accessed docs, staleness info.
5
+ */
6
+ import { z } from "zod/v4";
7
+ import { KnowledgeStore } from "../../core/store/knowledge-store.js";
8
+ import { logger } from "../../core/utils/logger.js";
9
+ import { mcpText } from "../response-helpers.js";
10
+ export function registerKnowledgeStats(server, store) {
11
+ server.tool("knowledge_stats", "Get statistics about the knowledge store: document counts by source type, quality distribution, top accessed docs, and staleness info.", {
12
+ topK: z.number().int().min(1).max(50).optional().describe("Number of top accessed docs to return (default: 5)"),
13
+ }, async ({ topK }) => {
14
+ logger.debug("tool:knowledge_stats", {});
15
+ const db = store.getDb();
16
+ const knowledgeStore = new KnowledgeStore(db);
17
+ const k = topK ?? 5;
18
+ // Count by source type
19
+ const sourceCounts = db
20
+ .prepare("SELECT source_type, COUNT(*) as count FROM knowledge_documents GROUP BY source_type ORDER BY count DESC")
21
+ .all();
22
+ // Quality distribution
23
+ const qualityDist = db
24
+ .prepare(`SELECT
25
+ CASE
26
+ WHEN quality_score >= 0.8 THEN 'high'
27
+ WHEN quality_score >= 0.5 THEN 'medium'
28
+ ELSE 'low'
29
+ END as tier,
30
+ COUNT(*) as count,
31
+ ROUND(AVG(quality_score), 3) as avg_score
32
+ FROM knowledge_documents
33
+ GROUP BY tier`)
34
+ .all();
35
+ // Top accessed docs
36
+ const topAccessed = db
37
+ .prepare(`SELECT id, title, source_type, usage_count, quality_score, last_accessed_at
38
+ FROM knowledge_documents
39
+ WHERE usage_count > 0
40
+ ORDER BY usage_count DESC
41
+ LIMIT ?`)
42
+ .all(k);
43
+ // Staleness overview
44
+ const stalenessInfo = db
45
+ .prepare(`SELECT
46
+ COUNT(CASE WHEN staleness_days = 0 THEN 1 END) as fresh,
47
+ COUNT(CASE WHEN staleness_days BETWEEN 1 AND 30 THEN 1 END) as recent,
48
+ COUNT(CASE WHEN staleness_days BETWEEN 31 AND 90 THEN 1 END) as aging,
49
+ COUNT(CASE WHEN staleness_days > 90 THEN 1 END) as stale
50
+ FROM knowledge_documents`)
51
+ .get();
52
+ // Relations count
53
+ const relationsCount = db
54
+ .prepare("SELECT COUNT(*) as count FROM knowledge_relations")
55
+ .get();
56
+ const totalDocs = knowledgeStore.count();
57
+ const stats = {
58
+ totalDocuments: totalDocs,
59
+ sourceCounts: sourceCounts.map((r) => ({
60
+ sourceType: r.source_type,
61
+ count: r.count,
62
+ })),
63
+ qualityDistribution: qualityDist.map((r) => ({
64
+ tier: r.tier,
65
+ count: r.count,
66
+ avgScore: r.avg_score,
67
+ })),
68
+ topAccessed: topAccessed.map((r) => ({
69
+ id: r.id,
70
+ title: r.title,
71
+ sourceType: r.source_type,
72
+ usageCount: r.usage_count,
73
+ qualityScore: r.quality_score,
74
+ lastAccessedAt: r.last_accessed_at,
75
+ })),
76
+ staleness: stalenessInfo,
77
+ relationsCount: relationsCount?.count ?? 0,
78
+ };
79
+ logger.info("tool:knowledge_stats:ok", { totalDocs });
80
+ return mcpText(stats);
81
+ });
82
+ }
83
+ //# sourceMappingURL=knowledge-stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-stats.js","sourceRoot":"","sources":["../../../src/mcp/tools/knowledge-stats.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plan-sprint.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/plan-sprint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAOpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA8D9E"}
1
+ {"version":3,"file":"plan-sprint.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/plan-sprint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAOpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAqE9E"}
@@ -39,14 +39,20 @@ export function registerPlanSprint(server, store) {
39
39
  const knowledgeStore = new KnowledgeStore(store.getDb());
40
40
  const planText = JSON.stringify(report, null, 2);
41
41
  const sourceId = `sprint_plan:${new Date().toISOString()}`;
42
+ const taskCount = report.recommendedOrder.length;
43
+ const velocity = report.summary.avgVelocity ?? 0;
44
+ const capacity = report.summary.estimatedPoints;
42
45
  knowledgeStore.insert({
43
46
  sourceType: "sprint_plan",
44
47
  sourceId,
45
48
  title: "Sprint Planning Report",
46
- content: planText.length > 2000 ? planText.slice(0, 2000) : planText,
49
+ content: planText.length > 4000 ? planText.slice(0, 4000) : planText,
47
50
  metadata: {
48
51
  phase: "PLAN",
49
52
  generatedAt: new Date().toISOString(),
53
+ taskCount,
54
+ velocity,
55
+ capacity,
50
56
  },
51
57
  });
52
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plan-sprint.js","sourceRoot":"","sources":["../../../src/mcp/tools/plan-sprint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-sprint.js","sourceRoot":"","sources":["../../../src/mcp/tools/plan-sprint.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rag-context.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/rag-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAQpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAsD9E"}
1
+ {"version":3,"file":"rag-context.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/rag-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAUpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA+F9E"}
@@ -1,6 +1,8 @@
1
1
  import { z } from "zod/v4";
2
2
  import { ragBuildContext } from "../../core/context/rag-context.js";
3
3
  import { assembleContext } from "../../core/context/context-assembler.js";
4
+ import { multiStrategySearch } from "../../core/rag/multi-strategy-retrieval.js";
5
+ import { recordUsage } from "../../core/rag/knowledge-quality.js";
4
6
  import { detectCurrentPhase } from "../../core/planner/lifecycle-phase.js";
5
7
  import { DEFAULT_TOKEN_BUDGET } from "../../core/utils/constants.js";
6
8
  import { logger } from "../../core/utils/logger.js";
@@ -19,7 +21,11 @@ export function registerRagContext(server, store) {
19
21
  .enum(["summary", "standard", "deep"])
20
22
  .optional()
21
23
  .describe("Context detail level: summary (~20 tok/node), standard (~150 tok/node), deep (~500+ tok/node). Default: standard"),
22
- }, async ({ query, tokenBudget, detail }) => {
24
+ strategy: z
25
+ .enum(["fts", "multi"])
26
+ .optional()
27
+ .describe("Search strategy: 'fts' (traditional BM25), 'multi' (multi-strategy with quality + relations). Default: fts"),
28
+ }, async ({ query, tokenBudget, detail, strategy }) => {
23
29
  logger.debug("tool:rag_context", { query, tier: detail });
24
30
  const budget = tokenBudget ?? DEFAULT_TOKEN_BUDGET;
25
31
  // Detect current lifecycle phase for phase-aware knowledge boosting
@@ -42,9 +48,44 @@ export function registerRagContext(server, store) {
42
48
  tier: detail,
43
49
  phase: currentPhase,
44
50
  });
45
- logger.info("tool:rag_context:ok", { query, tier: detail, phase: currentPhase });
51
+ logger.info("tool:rag_context:ok", { query, tier: detail, phase: currentPhase, strategy });
46
52
  return mcpText(ctx);
47
53
  }
54
+ // Multi-strategy search mode
55
+ if (strategy === "multi") {
56
+ const multiResults = multiStrategySearch(store.getDb(), query, {
57
+ limit: 10,
58
+ phase: currentPhase,
59
+ });
60
+ // Record usage for retrieved docs
61
+ try {
62
+ for (const result of multiResults.slice(0, 5)) {
63
+ recordUsage(store.getDb(), result.id, query, "retrieved", { tool: "rag_context", strategy: "multi" });
64
+ }
65
+ }
66
+ catch {
67
+ // Usage recording is best-effort
68
+ }
69
+ logger.info("tool:rag_context:ok", { query, strategy: "multi", phase: currentPhase, results: multiResults.length });
70
+ return mcpText({
71
+ query,
72
+ strategy: "multi",
73
+ results: multiResults.map((r) => ({
74
+ id: r.id,
75
+ sourceType: r.sourceType,
76
+ title: r.title,
77
+ content: r.content.length > 500 ? r.content.slice(0, 500) + "..." : r.content,
78
+ score: r.score,
79
+ qualityScore: r.qualityScore,
80
+ strategies: r.strategies,
81
+ })),
82
+ tokenUsage: {
83
+ budget,
84
+ used: multiResults.reduce((sum, r) => sum + r.content.length / 4, 0),
85
+ remaining: budget,
86
+ },
87
+ });
88
+ }
48
89
  // Default: use existing RAG context builder with phase awareness
49
90
  const ctx = ragBuildContext(store, query, budget, currentPhase);
50
91
  logger.info("tool:rag_context:ok", { query, tier: "standard", phase: currentPhase });