@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.
- package/dist/api/router.d.ts.map +1 -1
- package/dist/api/router.js +4 -0
- package/dist/api/router.js.map +1 -1
- package/dist/api/routes/code-graph.d.ts.map +1 -1
- package/dist/api/routes/code-graph.js +4 -1
- package/dist/api/routes/code-graph.js.map +1 -1
- package/dist/api/routes/journey.d.ts +4 -0
- package/dist/api/routes/journey.d.ts.map +1 -0
- package/dist/api/routes/journey.js +263 -0
- package/dist/api/routes/journey.js.map +1 -0
- package/dist/api/routes/siebel.d.ts +7 -0
- package/dist/api/routes/siebel.d.ts.map +1 -0
- package/dist/api/routes/siebel.js +305 -0
- package/dist/api/routes/siebel.js.map +1 -0
- package/dist/core/code/code-indexer.d.ts.map +1 -1
- package/dist/core/code/code-indexer.js +17 -2
- package/dist/core/code/code-indexer.js.map +1 -1
- package/dist/core/code/code-types.d.ts +1 -0
- package/dist/core/code/code-types.d.ts.map +1 -1
- package/dist/core/code/code-types.js.map +1 -1
- package/dist/core/code/ts-analyzer.d.ts +6 -0
- package/dist/core/code/ts-analyzer.d.ts.map +1 -1
- package/dist/core/code/ts-analyzer.js +9 -0
- package/dist/core/code/ts-analyzer.js.map +1 -1
- package/dist/core/context/rag-context.d.ts.map +1 -1
- package/dist/core/context/rag-context.js +21 -5
- package/dist/core/context/rag-context.js.map +1 -1
- package/dist/core/events/event-types.d.ts +63 -1
- package/dist/core/events/event-types.d.ts.map +1 -1
- package/dist/core/integrations/integration-orchestrator.d.ts +12 -0
- package/dist/core/integrations/integration-orchestrator.d.ts.map +1 -1
- package/dist/core/integrations/integration-orchestrator.js +36 -2
- package/dist/core/integrations/integration-orchestrator.js.map +1 -1
- package/dist/core/journey/journey-store.d.ts +137 -0
- package/dist/core/journey/journey-store.d.ts.map +1 -0
- package/dist/core/journey/journey-store.js +210 -0
- package/dist/core/journey/journey-store.js.map +1 -0
- package/dist/core/parser/file-reader.d.ts.map +1 -1
- package/dist/core/parser/file-reader.js +16 -1
- package/dist/core/parser/file-reader.js.map +1 -1
- package/dist/core/parser/read-docx.d.ts +17 -0
- package/dist/core/parser/read-docx.d.ts.map +1 -0
- package/dist/core/parser/read-docx.js +79 -0
- package/dist/core/parser/read-docx.js.map +1 -0
- package/dist/core/parser/read-swagger.d.ts +49 -0
- package/dist/core/parser/read-swagger.d.ts.map +1 -0
- package/dist/core/parser/read-swagger.js +332 -0
- package/dist/core/parser/read-swagger.js.map +1 -0
- package/dist/core/rag/chunk-text.d.ts +5 -0
- package/dist/core/rag/chunk-text.d.ts.map +1 -1
- package/dist/core/rag/chunk-text.js +135 -0
- package/dist/core/rag/chunk-text.js.map +1 -1
- package/dist/core/rag/code-context-indexer.d.ts +27 -0
- package/dist/core/rag/code-context-indexer.d.ts.map +1 -0
- package/dist/core/rag/code-context-indexer.js +53 -0
- package/dist/core/rag/code-context-indexer.js.map +1 -0
- package/dist/core/rag/decision-indexer.d.ts +20 -0
- package/dist/core/rag/decision-indexer.d.ts.map +1 -0
- package/dist/core/rag/decision-indexer.js +32 -0
- package/dist/core/rag/decision-indexer.js.map +1 -0
- package/dist/core/rag/journey-indexer.d.ts +16 -0
- package/dist/core/rag/journey-indexer.d.ts.map +1 -0
- package/dist/core/rag/journey-indexer.js +182 -0
- package/dist/core/rag/journey-indexer.js.map +1 -0
- package/dist/core/rag/knowledge-feedback.d.ts +15 -0
- package/dist/core/rag/knowledge-feedback.d.ts.map +1 -0
- package/dist/core/rag/knowledge-feedback.js +46 -0
- package/dist/core/rag/knowledge-feedback.js.map +1 -0
- package/dist/core/rag/knowledge-linker.d.ts +20 -0
- package/dist/core/rag/knowledge-linker.d.ts.map +1 -0
- package/dist/core/rag/knowledge-linker.js +107 -0
- package/dist/core/rag/knowledge-linker.js.map +1 -0
- package/dist/core/rag/knowledge-quality.d.ts +31 -0
- package/dist/core/rag/knowledge-quality.d.ts.map +1 -0
- package/dist/core/rag/knowledge-quality.js +127 -0
- package/dist/core/rag/knowledge-quality.js.map +1 -0
- package/dist/core/rag/knowledge-synthesizer.d.ts +17 -0
- package/dist/core/rag/knowledge-synthesizer.d.ts.map +1 -0
- package/dist/core/rag/knowledge-synthesizer.js +115 -0
- package/dist/core/rag/knowledge-synthesizer.js.map +1 -0
- package/dist/core/rag/memory-rag-query.d.ts +3 -3
- package/dist/core/rag/memory-rag-query.d.ts.map +1 -1
- package/dist/core/rag/memory-rag-query.js +18 -0
- package/dist/core/rag/memory-rag-query.js.map +1 -1
- package/dist/core/rag/multi-strategy-retrieval.d.ts +46 -0
- package/dist/core/rag/multi-strategy-retrieval.d.ts.map +1 -0
- package/dist/core/rag/multi-strategy-retrieval.js +140 -0
- package/dist/core/rag/multi-strategy-retrieval.js.map +1 -0
- package/dist/core/rag/rag-pipeline.d.ts +11 -0
- package/dist/core/rag/rag-pipeline.d.ts.map +1 -1
- package/dist/core/rag/rag-pipeline.js +39 -0
- package/dist/core/rag/rag-pipeline.js.map +1 -1
- package/dist/core/rag/siebel-indexer.d.ts +16 -0
- package/dist/core/rag/siebel-indexer.d.ts.map +1 -0
- package/dist/core/rag/siebel-indexer.js +75 -0
- package/dist/core/rag/siebel-indexer.js.map +1 -0
- package/dist/core/rag/swagger-indexer.d.ts +16 -0
- package/dist/core/rag/swagger-indexer.d.ts.map +1 -0
- package/dist/core/rag/swagger-indexer.js +119 -0
- package/dist/core/rag/swagger-indexer.js.map +1 -0
- package/dist/core/rag/validation-indexer.d.ts +23 -0
- package/dist/core/rag/validation-indexer.d.ts.map +1 -0
- package/dist/core/rag/validation-indexer.js +35 -0
- package/dist/core/rag/validation-indexer.js.map +1 -0
- package/dist/core/siebel/composer-automation.d.ts +77 -0
- package/dist/core/siebel/composer-automation.d.ts.map +1 -0
- package/dist/core/siebel/composer-automation.js +110 -0
- package/dist/core/siebel/composer-automation.js.map +1 -0
- package/dist/core/siebel/dependency-analyzer.d.ts +24 -0
- package/dist/core/siebel/dependency-analyzer.d.ts.map +1 -0
- package/dist/core/siebel/dependency-analyzer.js +174 -0
- package/dist/core/siebel/dependency-analyzer.js.map +1 -0
- package/dist/core/siebel/siebel-config.d.ts +28 -0
- package/dist/core/siebel/siebel-config.d.ts.map +1 -0
- package/dist/core/siebel/siebel-config.js +86 -0
- package/dist/core/siebel/siebel-config.js.map +1 -0
- package/dist/core/siebel/sif-context-assembler.d.ts +37 -0
- package/dist/core/siebel/sif-context-assembler.d.ts.map +1 -0
- package/dist/core/siebel/sif-context-assembler.js +259 -0
- package/dist/core/siebel/sif-context-assembler.js.map +1 -0
- package/dist/core/siebel/sif-generator.d.ts +26 -0
- package/dist/core/siebel/sif-generator.d.ts.map +1 -0
- package/dist/core/siebel/sif-generator.js +232 -0
- package/dist/core/siebel/sif-generator.js.map +1 -0
- package/dist/core/siebel/sif-parser.d.ts +16 -0
- package/dist/core/siebel/sif-parser.d.ts.map +1 -0
- package/dist/core/siebel/sif-parser.js +355 -0
- package/dist/core/siebel/sif-parser.js.map +1 -0
- package/dist/core/siebel/sif-templates.d.ts +45 -0
- package/dist/core/siebel/sif-templates.d.ts.map +1 -0
- package/dist/core/siebel/sif-templates.js +179 -0
- package/dist/core/siebel/sif-templates.js.map +1 -0
- package/dist/core/siebel/sif-to-graph.d.ts +20 -0
- package/dist/core/siebel/sif-to-graph.d.ts.map +1 -0
- package/dist/core/siebel/sif-to-graph.js +176 -0
- package/dist/core/siebel/sif-to-graph.js.map +1 -0
- package/dist/core/store/knowledge-store.d.ts +25 -0
- package/dist/core/store/knowledge-store.d.ts.map +1 -1
- package/dist/core/store/knowledge-store.js +72 -0
- package/dist/core/store/knowledge-store.js.map +1 -1
- package/dist/core/store/migrations.d.ts.map +1 -1
- package/dist/core/store/migrations.js +96 -0
- package/dist/core/store/migrations.js.map +1 -1
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +26 -0
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/journey.d.ts +4 -0
- package/dist/mcp/tools/journey.d.ts.map +1 -0
- package/dist/mcp/tools/journey.js +154 -0
- package/dist/mcp/tools/journey.js.map +1 -0
- package/dist/mcp/tools/knowledge-feedback.d.ts +8 -0
- package/dist/mcp/tools/knowledge-feedback.d.ts.map +1 -0
- package/dist/mcp/tools/knowledge-feedback.js +35 -0
- package/dist/mcp/tools/knowledge-feedback.js.map +1 -0
- package/dist/mcp/tools/knowledge-stats.d.ts +9 -0
- package/dist/mcp/tools/knowledge-stats.d.ts.map +1 -0
- package/dist/mcp/tools/knowledge-stats.js +83 -0
- package/dist/mcp/tools/knowledge-stats.js.map +1 -0
- package/dist/mcp/tools/plan-sprint.d.ts.map +1 -1
- package/dist/mcp/tools/plan-sprint.js +7 -1
- package/dist/mcp/tools/plan-sprint.js.map +1 -1
- package/dist/mcp/tools/rag-context.d.ts.map +1 -1
- package/dist/mcp/tools/rag-context.js +43 -2
- package/dist/mcp/tools/rag-context.js.map +1 -1
- package/dist/mcp/tools/reindex-knowledge.d.ts.map +1 -1
- package/dist/mcp/tools/reindex-knowledge.js +23 -2
- package/dist/mcp/tools/reindex-knowledge.js.map +1 -1
- package/dist/mcp/tools/siebel-analyze.d.ts +8 -0
- package/dist/mcp/tools/siebel-analyze.d.ts.map +1 -0
- package/dist/mcp/tools/siebel-analyze.js +107 -0
- package/dist/mcp/tools/siebel-analyze.js.map +1 -0
- package/dist/mcp/tools/siebel-composer.d.ts +12 -0
- package/dist/mcp/tools/siebel-composer.d.ts.map +1 -0
- package/dist/mcp/tools/siebel-composer.js +59 -0
- package/dist/mcp/tools/siebel-composer.js.map +1 -0
- package/dist/mcp/tools/siebel-env.d.ts +8 -0
- package/dist/mcp/tools/siebel-env.d.ts.map +1 -0
- package/dist/mcp/tools/siebel-env.js +60 -0
- package/dist/mcp/tools/siebel-env.js.map +1 -0
- package/dist/mcp/tools/siebel-generate-sif.d.ts +8 -0
- package/dist/mcp/tools/siebel-generate-sif.d.ts.map +1 -0
- package/dist/mcp/tools/siebel-generate-sif.js +91 -0
- package/dist/mcp/tools/siebel-generate-sif.js.map +1 -0
- package/dist/mcp/tools/siebel-import-docs.d.ts +9 -0
- package/dist/mcp/tools/siebel-import-docs.d.ts.map +1 -0
- package/dist/mcp/tools/siebel-import-docs.js +106 -0
- package/dist/mcp/tools/siebel-import-docs.js.map +1 -0
- package/dist/mcp/tools/siebel-import-sif.d.ts +8 -0
- package/dist/mcp/tools/siebel-import-sif.d.ts.map +1 -0
- package/dist/mcp/tools/siebel-import-sif.js +68 -0
- package/dist/mcp/tools/siebel-import-sif.js.map +1 -0
- package/dist/mcp/tools/siebel-search.d.ts +8 -0
- package/dist/mcp/tools/siebel-search.d.ts.map +1 -0
- package/dist/mcp/tools/siebel-search.js +47 -0
- package/dist/mcp/tools/siebel-search.js.map +1 -0
- package/dist/mcp/tools/siebel-validate.d.ts +8 -0
- package/dist/mcp/tools/siebel-validate.d.ts.map +1 -0
- package/dist/mcp/tools/siebel-validate.js +107 -0
- package/dist/mcp/tools/siebel-validate.js.map +1 -0
- package/dist/mcp/tools/update-status.d.ts.map +1 -1
- package/dist/mcp/tools/update-status.js +22 -1
- package/dist/mcp/tools/update-status.js.map +1 -1
- package/dist/mcp/tools/validate.d.ts.map +1 -1
- package/dist/mcp/tools/validate.js +21 -0
- package/dist/mcp/tools/validate.js.map +1 -1
- package/dist/schemas/knowledge.schema.d.ts +66 -0
- package/dist/schemas/knowledge.schema.d.ts.map +1 -1
- package/dist/schemas/knowledge.schema.js +28 -0
- package/dist/schemas/knowledge.schema.js.map +1 -1
- package/dist/schemas/siebel.schema.d.ts +564 -0
- package/dist/schemas/siebel.schema.d.ts.map +1 -0
- package/dist/schemas/siebel.schema.js +197 -0
- package/dist/schemas/siebel.schema.js.map +1 -0
- package/dist/web/dashboard/dist/assets/{benchmark-tab-C5fwIqgM.js → benchmark-tab-BoMsoQjO.js} +1 -1
- package/dist/web/dashboard/dist/assets/{context-tab-ChCyrRlr.js → context-tab-BLT4qQ77.js} +1 -1
- package/dist/web/dashboard/dist/assets/{gitnexus-tab-DnlGT63w.js → gitnexus-tab-DDw7DUED.js} +4 -4
- package/dist/web/dashboard/dist/assets/graph-tab-DG9Q6nko.js +1 -0
- package/dist/web/dashboard/dist/assets/graph-utils-BpYHKE87.js +1 -0
- package/dist/web/dashboard/dist/assets/index-Cu23WCcu.css +1 -0
- package/dist/web/dashboard/dist/assets/index-DtkPX5ZZ.js +55 -0
- package/dist/web/dashboard/dist/assets/{index-DlZhNCGR.js → index-F9dY4AG_.js} +1 -1
- package/dist/web/dashboard/dist/assets/{insights-tab-Cj4f85vS.js → insights-tab-YN7G6mjm.js} +1 -1
- package/dist/web/dashboard/dist/assets/journey-tab-BcweuR82.js +1 -0
- package/dist/web/dashboard/dist/assets/{logs-tab-C4C2Vn8-.js → logs-tab-BjdAURdy.js} +1 -1
- package/dist/web/dashboard/dist/assets/{memories-tab-NtNwoxbT.js → memories-tab-CQ2xM2aw.js} +1 -1
- package/dist/web/dashboard/dist/assets/prd-backlog-tab-CIeCpE1a.js +1 -0
- package/dist/web/dashboard/dist/assets/siebel-tab-bj5CT4-Z.js +3 -0
- package/dist/web/dashboard/dist/assets/{skills-tab-CIj4z1Ol.js → skills-tab-Bgk72mKO.js} +1 -1
- package/dist/web/dashboard/dist/assets/style-Da3qWU01.js +7 -0
- package/dist/web/dashboard/dist/index.html +2 -2
- package/package.json +15 -3
- package/dist/web/dashboard/dist/assets/graph-tab-DjV9RD41.js +0 -1
- package/dist/web/dashboard/dist/assets/graph-utils-C6bvcT4d.js +0 -7
- package/dist/web/dashboard/dist/assets/index-DQqYFXms.css +0 -1
- package/dist/web/dashboard/dist/assets/index-dCyMex_p.js +0 -53
- package/dist/web/dashboard/dist/assets/prd-backlog-tab-Bxt7qiVG.js +0 -1
- /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":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQ5C,MAAM,UAAU,GAAgB;IAC9B;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,oEAAoE;QACjF,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsEJ;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,sCAAsC;QACnD,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4BJ;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,6DAA6D;QAC1E,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiCJ;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,uEAAuE;QACpF,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwCJ;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,0DAA0D;QACvE,GAAG,EAAE;;;;;;;;KAQJ;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,oEAAoE;QACjF,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkEJ;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,mDAAmD;QAChE,GAAG,EAAE;;;;;;;;;;;;;KAaJ;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,sEAAsE;QACnF,GAAG,EAAE;;;;;;KAMJ;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,4CAA4C;QACzD,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;KAuBJ;KACF;IACD;QACE,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,+DAA+D;QAC5E,GAAG,EAAE;;;;;;KAMJ;KACF;IACD;QACE,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,sFAAsF;QACnG,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2FJ;KACF;CACF,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,EAAqB;IACjD,mCAAmC;IACnC,EAAE,CAAC,IAAI,CAAC;;;;;;GAMP,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,EAAE;SACC,OAAO,CAAC,iCAAiC,CAAC;SAC1C,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAE,GAA2B,CAAC,OAAO,CAAC,CACtD,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;YAAE,SAAS;QAE7C,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QACjG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAClB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACvB,EAAE,CAAC,OAAO,CACR,6EAA6E,CAC9E,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5E,CAAC,CAAC,EAAE,CAAC;QACL,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAqB;IAC/C,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -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;
|
|
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"}
|
package/dist/mcp/tools/index.js
CHANGED
|
@@ -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":"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"}
|
|
@@ -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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAE3D,SAAS,eAAe,CAAC,KAAkB;IACzC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;IACnC,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC,uBAAuB,CAAU,CAAC;IAChE,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,KAAkB;IACnE,MAAM,CAAC,IAAI,CACT,SAAS,EACT,oPAAoP,EACpP;QACE,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;aACxC,QAAQ,CAAC,gFAAgF,CAAC;QAC7F,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,qCAAqC,CAAC;QAClD,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,kDAAkD,CAAC;KAChE,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QACjC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAEvD,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAE5C,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBACzD,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,IAAI,CAAC,MAAM;oBAClB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACrB,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,GAAG,EAAE,CAAC,CAAC,GAAG;wBACV,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,SAAS,EAAE,CAAC,CAAC,SAAS;qBACvB,CAAC,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;YAED,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,IAAI,CAAC,KAAK;oBAAE,OAAO,QAAQ,CAAC,oCAAoC,CAAC,CAAC;gBAClE,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG;oBAAE,OAAO,QAAQ,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;gBAE7D,0DAA0D;gBAC1D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7D,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK;yBACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;yBAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACX,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,EAAE;wBACtC,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,IAAI,EAAE,CAAC,CAAC,IAAI;qBACb,CAAC,CAAC,CAAC;oBAEN,OAAO;wBACL,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,IAAI,EAAE,CAAC,CAAC,UAAU;wBAClB,GAAG,EAAE,CAAC,CAAC,GAAG;wBACV,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;4BAC5B,IAAI,EAAE,CAAC,CAAC,IAAI;4BACZ,IAAI,EAAE,CAAC,CAAC,IAAI;4BACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;4BACpB,KAAK,EAAE,CAAC,CAAC,KAAK;yBACf,CAAC,CAAC;wBACH,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,WAAW,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;qBACxD,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,MAAM,eAAe,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC/C,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;iBACzD,CAAC,CAAC,CAAC;gBAEJ,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxE,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,KAAK;oBACb,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,OAAO,EAAE,cAAc;oBACvB,QAAQ,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;oBAClE,OAAO,EAAE;wBACP,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM;wBAChC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM;wBAC5B,aAAa,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM;wBAClC,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;wBAC/D,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;wBACjF,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;qBAC1E;iBACF,CAAC,CAAC;YACL,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,KAAK;oBAAE,OAAO,QAAQ,CAAC,uCAAuC,CAAC,CAAC;gBAErE,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;gBACrC,MAAM,OAAO,GAOR,EAAE,CAAC;gBAER,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBAEvC,KAAK,MAAM,UAAU,IAAI,IAAI,EAAE,CAAC;oBAC9B,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAC/C,IAAI,CAAC,GAAG;wBAAE,SAAS;oBAEnB,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;wBACjC,MAAM,UAAU,GAAG;4BACjB,MAAM,CAAC,KAAK;4BACZ,MAAM,CAAC,WAAW,IAAI,EAAE;4BACxB,MAAM,CAAC,UAAU;4BACjB,MAAM,CAAC,GAAG,IAAI,EAAE;4BAChB,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;4BACtB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;yBACvE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;wBAE1B,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;4BACpC,OAAO,CAAC,IAAI,CAAC;gCACX,OAAO,EAAE,GAAG,CAAC,IAAI;gCACjB,QAAQ,EAAE,MAAM,CAAC,EAAE;gCACnB,KAAK,EAAE,MAAM,CAAC,KAAK;gCACnB,IAAI,EAAE,MAAM,CAAC,UAAU;gCACvB,GAAG,EAAE,MAAM,CAAC,GAAG;gCACf,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK;6BAChE,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBACvE,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,QAAQ;oBAChB,KAAK;oBACL,KAAK,EAAE,OAAO,CAAC,MAAM;oBACrB,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzD,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;gBAC9D,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBAClH,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,OAAO;oBACf,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;oBACzC,OAAO,EAAE,WAAW,MAAM,CAAC,WAAW,yCAAyC,MAAM,CAAC,gBAAgB,8DAA8D;iBACrK,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -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,
|
|
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 >
|
|
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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,KAAkB;IACtE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,6HAA6H,EAC7H;QACE,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aACxB,QAAQ,EAAE;aACV,QAAQ,CAAC,0FAA0F,CAAC;KACxG,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACjB,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QAEpC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAClF,OAAO,OAAO,CAAC;gBACb,IAAI,EAAE;oBACJ,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACvB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;oBAC7B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oBAC3B,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;oBACnC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;iBAChC;gBACD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;gBAC3C,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,cAAc,EAAE,MAAM,CAAC,cAAc;aACtC,CAAC,CAAC;QACL,CAAC;QAED,gCAAgC;QAChC,MAAM,MAAM,GAAG,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAElD,6DAA6D;QAC7D,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,eAAe,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3D,cAAc,CAAC,MAAM,CAAC;gBACpB,UAAU,EAAE,aAAa;gBACzB,QAAQ;gBACR,KAAK,EAAE,wBAAwB;gBAC/B,OAAO,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ;gBACpE,QAAQ,EAAE;oBACR,KAAK,EAAE,MAAM;oBACb,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;
|
|
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;
|
|
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
|
-
|
|
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 });
|