@mcp-graph-workflow/mcp-graph 5.16.0 → 5.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/router.d.ts.map +1 -1
- package/dist/api/router.js +2 -0
- package/dist/api/router.js.map +1 -1
- package/dist/api/routes/translation.d.ts +7 -0
- package/dist/api/routes/translation.d.ts.map +1 -0
- package/dist/api/routes/translation.js +170 -0
- package/dist/api/routes/translation.js.map +1 -0
- package/dist/core/config/ai-memory-generator.js +3 -3
- package/dist/core/context/compact-context.d.ts.map +1 -1
- package/dist/core/context/compact-context.js +7 -9
- package/dist/core/context/compact-context.js.map +1 -1
- package/dist/core/events/event-types.d.ts +32 -1
- package/dist/core/events/event-types.d.ts.map +1 -1
- package/dist/core/lsp/lsp-bridge.d.ts +12 -2
- package/dist/core/lsp/lsp-bridge.d.ts.map +1 -1
- package/dist/core/lsp/lsp-bridge.js +139 -3
- package/dist/core/lsp/lsp-bridge.js.map +1 -1
- package/dist/core/lsp/lsp-edit-applier.d.ts +23 -0
- package/dist/core/lsp/lsp-edit-applier.d.ts.map +1 -0
- package/dist/core/lsp/lsp-edit-applier.js +204 -0
- package/dist/core/lsp/lsp-edit-applier.js.map +1 -0
- package/dist/core/lsp/lsp-server-manager.d.ts.map +1 -1
- package/dist/core/lsp/lsp-server-manager.js +18 -0
- package/dist/core/lsp/lsp-server-manager.js.map +1 -1
- package/dist/core/lsp/lsp-types.d.ts +35 -0
- package/dist/core/lsp/lsp-types.d.ts.map +1 -1
- package/dist/core/lsp/lsp-types.js +20 -0
- package/dist/core/lsp/lsp-types.js.map +1 -1
- package/dist/core/planner/lifecycle-phase.d.ts +18 -0
- package/dist/core/planner/lifecycle-phase.d.ts.map +1 -1
- package/dist/core/planner/lifecycle-phase.js +112 -0
- package/dist/core/planner/lifecycle-phase.js.map +1 -1
- package/dist/core/rag/query-cache.js +2 -2
- package/dist/core/rag/query-cache.js.map +1 -1
- package/dist/core/rag/response-cache.d.ts +38 -0
- package/dist/core/rag/response-cache.d.ts.map +1 -0
- package/dist/core/rag/response-cache.js +84 -0
- package/dist/core/rag/response-cache.js.map +1 -0
- package/dist/core/siebel/wsdl-correlation.d.ts.map +1 -1
- package/dist/core/siebel/wsdl-correlation.js +2 -13
- package/dist/core/siebel/wsdl-correlation.js.map +1 -1
- package/dist/core/store/migrations.d.ts.map +1 -1
- package/dist/core/store/migrations.js +97 -0
- package/dist/core/store/migrations.js.map +1 -1
- package/dist/core/store/tool-call-log.d.ts +26 -0
- package/dist/core/store/tool-call-log.d.ts.map +1 -0
- package/dist/core/store/tool-call-log.js +66 -0
- package/dist/core/store/tool-call-log.js.map +1 -0
- package/dist/core/translation/confidence/ambiguity-detector.d.ts +18 -0
- package/dist/core/translation/confidence/ambiguity-detector.d.ts.map +1 -0
- package/dist/core/translation/confidence/ambiguity-detector.js +80 -0
- package/dist/core/translation/confidence/ambiguity-detector.js.map +1 -0
- package/dist/core/translation/confidence/equivalence-scorer.d.ts +22 -0
- package/dist/core/translation/confidence/equivalence-scorer.d.ts.map +1 -0
- package/dist/core/translation/confidence/equivalence-scorer.js +72 -0
- package/dist/core/translation/confidence/equivalence-scorer.js.map +1 -0
- package/dist/core/translation/generators/generator-adapter.d.ts +22 -0
- package/dist/core/translation/generators/generator-adapter.d.ts.map +1 -0
- package/dist/core/translation/generators/generator-adapter.js +6 -0
- package/dist/core/translation/generators/generator-adapter.js.map +1 -0
- package/dist/core/translation/generators/python-generator.d.ts +15 -0
- package/dist/core/translation/generators/python-generator.d.ts.map +1 -0
- package/dist/core/translation/generators/python-generator.js +74 -0
- package/dist/core/translation/generators/python-generator.js.map +1 -0
- package/dist/core/translation/generators/ts-generator.d.ts +14 -0
- package/dist/core/translation/generators/ts-generator.d.ts.map +1 -0
- package/dist/core/translation/generators/ts-generator.js +56 -0
- package/dist/core/translation/generators/ts-generator.js.map +1 -0
- package/dist/core/translation/language-detect.d.ts +12 -0
- package/dist/core/translation/language-detect.d.ts.map +1 -0
- package/dist/core/translation/language-detect.js +140 -0
- package/dist/core/translation/language-detect.js.map +1 -0
- package/dist/core/translation/parsers/parser-adapter.d.ts +23 -0
- package/dist/core/translation/parsers/parser-adapter.d.ts.map +1 -0
- package/dist/core/translation/parsers/parser-adapter.js +6 -0
- package/dist/core/translation/parsers/parser-adapter.js.map +1 -0
- package/dist/core/translation/parsers/python-parser-adapter.d.ts +10 -0
- package/dist/core/translation/parsers/python-parser-adapter.d.ts.map +1 -0
- package/dist/core/translation/parsers/python-parser-adapter.js +85 -0
- package/dist/core/translation/parsers/python-parser-adapter.js.map +1 -0
- package/dist/core/translation/parsers/ts-parser-adapter.d.ts +10 -0
- package/dist/core/translation/parsers/ts-parser-adapter.d.ts.map +1 -0
- package/dist/core/translation/parsers/ts-parser-adapter.js +145 -0
- package/dist/core/translation/parsers/ts-parser-adapter.js.map +1 -0
- package/dist/core/translation/prompt-builder.d.ts +34 -0
- package/dist/core/translation/prompt-builder.d.ts.map +1 -0
- package/dist/core/translation/prompt-builder.js +137 -0
- package/dist/core/translation/prompt-builder.js.map +1 -0
- package/dist/core/translation/translation-orchestrator.d.ts +67 -0
- package/dist/core/translation/translation-orchestrator.d.ts.map +1 -0
- package/dist/core/translation/translation-orchestrator.js +204 -0
- package/dist/core/translation/translation-orchestrator.js.map +1 -0
- package/dist/core/translation/translation-store.d.ts +35 -0
- package/dist/core/translation/translation-store.d.ts.map +1 -0
- package/dist/core/translation/translation-store.js +96 -0
- package/dist/core/translation/translation-store.js.map +1 -0
- package/dist/core/translation/translation-types.d.ts +156 -0
- package/dist/core/translation/translation-types.d.ts.map +1 -0
- package/dist/core/translation/translation-types.js +86 -0
- package/dist/core/translation/translation-types.js.map +1 -0
- package/dist/core/translation/ucr/construct-registry.d.ts +36 -0
- package/dist/core/translation/ucr/construct-registry.d.ts.map +1 -0
- package/dist/core/translation/ucr/construct-registry.js +159 -0
- package/dist/core/translation/ucr/construct-registry.js.map +1 -0
- package/dist/core/translation/ucr/construct-seed.d.ts +12 -0
- package/dist/core/translation/ucr/construct-seed.d.ts.map +1 -0
- package/dist/core/translation/ucr/construct-seed.js +35 -0
- package/dist/core/translation/ucr/construct-seed.js.map +1 -0
- package/dist/core/translation/ucr/construct-types.d.ts +174 -0
- package/dist/core/translation/ucr/construct-types.d.ts.map +1 -0
- package/dist/core/translation/ucr/construct-types.js +88 -0
- package/dist/core/translation/ucr/construct-types.js.map +1 -0
- package/dist/core/utils/ac-helpers.d.ts +6 -0
- package/dist/core/utils/ac-helpers.d.ts.map +1 -1
- package/dist/core/utils/ac-helpers.js +15 -0
- package/dist/core/utils/ac-helpers.js.map +1 -1
- package/dist/core/utils/constants.d.ts +19 -0
- package/dist/core/utils/constants.d.ts.map +1 -1
- package/dist/core/utils/constants.js +23 -0
- package/dist/core/utils/constants.js.map +1 -1
- package/dist/core/utils/errors.d.ts +12 -0
- package/dist/core/utils/errors.d.ts.map +1 -1
- package/dist/core/utils/errors.js +25 -0
- package/dist/core/utils/errors.js.map +1 -1
- package/dist/core/utils/similarity.d.ts +9 -0
- package/dist/core/utils/similarity.d.ts.map +1 -0
- package/dist/core/utils/similarity.js +20 -0
- package/dist/core/utils/similarity.js.map +1 -0
- package/dist/mcp/code-intelligence-wrapper.d.ts +79 -0
- package/dist/mcp/code-intelligence-wrapper.d.ts.map +1 -0
- package/dist/mcp/code-intelligence-wrapper.js +286 -0
- package/dist/mcp/code-intelligence-wrapper.js.map +1 -0
- package/dist/mcp/lifecycle-wrapper.d.ts.map +1 -1
- package/dist/mcp/lifecycle-wrapper.js +56 -1
- package/dist/mcp/lifecycle-wrapper.js.map +1 -1
- package/dist/mcp/tools/code-intelligence.d.ts +2 -0
- package/dist/mcp/tools/code-intelligence.d.ts.map +1 -1
- package/dist/mcp/tools/code-intelligence.js +157 -3
- package/dist/mcp/tools/code-intelligence.js.map +1 -1
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +3 -0
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/rag-context.d.ts +1 -1
- package/dist/mcp/tools/rag-context.d.ts.map +1 -1
- package/dist/mcp/tools/rag-context.js +21 -2
- package/dist/mcp/tools/rag-context.js.map +1 -1
- package/dist/mcp/tools/set-phase.d.ts.map +1 -1
- package/dist/mcp/tools/set-phase.js +24 -4
- package/dist/mcp/tools/set-phase.js.map +1 -1
- package/dist/schemas/designer-schema.d.ts +4 -4
- package/dist/schemas/siebel.schema.d.ts +13 -13
- package/dist/web/dashboard/dist/assets/{benchmark-tab-LbjYcnjd.js → benchmark-tab-CjkvhBH9.js} +1 -1
- package/dist/web/dashboard/dist/assets/{context-tab-u_l0XUXT.js → context-tab-CDCm-rDm.js} +1 -1
- package/dist/web/dashboard/dist/assets/{gitnexus-tab-K304jKR3.js → gitnexus-tab-C8ya-m0E.js} +1 -1
- package/dist/web/dashboard/dist/assets/{graph-section-3_2LPo7V.js → graph-section-CUyy5O7e.js} +1 -1
- package/dist/web/dashboard/dist/assets/{graph-tab-KG6GQq1a.js → graph-tab-0C2cf7FY.js} +1 -1
- package/dist/web/dashboard/dist/assets/{graph-utils-cpyaBhnE.js → graph-utils-DThe_TpW.js} +1 -1
- package/dist/web/dashboard/dist/assets/{index-DY9euqve.js → index-CG74l_GF.js} +1 -1
- package/dist/web/dashboard/dist/assets/{index-C1UckjqB.css → index-DA2Y0E4s.css} +1 -1
- package/dist/web/dashboard/dist/assets/{index-Clwhz2ad.js → index-D_2dsvO7.js} +1 -1
- package/dist/web/dashboard/dist/assets/{index-Co7yktBf.js → index-gkGjyOqz.js} +47 -42
- package/dist/web/dashboard/dist/assets/{insights-tab-yrnRR8CL.js → insights-tab-C7zJ-naw.js} +1 -1
- package/dist/web/dashboard/dist/assets/{journey-tab-Cfh-qkYk.js → journey-tab-CL_lunyr.js} +1 -1
- package/dist/web/dashboard/dist/assets/languages-tab-BDD3QwUT.js +1 -0
- package/dist/web/dashboard/dist/assets/{logs-tab-B-8O6WzQ.js → logs-tab-B7w7XA3o.js} +1 -1
- package/dist/web/dashboard/dist/assets/{lsp-tab-CBM8pixC.js → lsp-tab-BTbRAwqG.js} +1 -1
- package/dist/web/dashboard/dist/assets/{memories-tab-5t0pfAsS.js → memories-tab-CbRr4xFM.js} +1 -1
- package/dist/web/dashboard/dist/assets/{prd-backlog-tab-Bgt2qin9.js → prd-backlog-tab-w32D0W8F.js} +1 -1
- package/dist/web/dashboard/dist/assets/{siebel-tab-CjYyszVw.js → siebel-tab-BKuaD7Pf.js} +3 -3
- package/dist/web/dashboard/dist/assets/{skills-tab-D-6Tem1J.js → skills-tab-VQC98jyT.js} +1 -1
- package/dist/web/dashboard/dist/assets/{style-Ci_RUKMJ.js → style-DkI8Vt9Y.js} +1 -1
- package/dist/web/dashboard/dist/index.html +2 -2
- package/package.json +2 -2
|
@@ -3,10 +3,16 @@
|
|
|
3
3
|
* from both inline fields and child acceptance_criteria nodes.
|
|
4
4
|
*/
|
|
5
5
|
import type { GraphDocument } from "../graph/graph-types.js";
|
|
6
|
+
import type { SqliteStore } from "../store/sqlite-store.js";
|
|
6
7
|
/**
|
|
7
8
|
* Get all AC texts for a node — prefers inline AC, falls back to child AC node titles.
|
|
8
9
|
*/
|
|
9
10
|
export declare function getNodeAcTexts(doc: GraphDocument, nodeId: string): string[];
|
|
11
|
+
/**
|
|
12
|
+
* Get all AC texts for a node using store queries (no full graph scan).
|
|
13
|
+
* Prefers inline AC, falls back to child AC node titles.
|
|
14
|
+
*/
|
|
15
|
+
export declare function getNodeAcFromStore(store: SqliteStore, nodeId: string): string[];
|
|
10
16
|
/**
|
|
11
17
|
* Check if a node has any AC — either inline or via child AC nodes.
|
|
12
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ac-helpers.d.ts","sourceRoot":"","sources":["../../../src/core/utils/ac-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"ac-helpers.d.ts","sourceRoot":"","sources":["../../../src/core/utils/ac-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAW3E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAU/E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAErE"}
|
|
@@ -17,6 +17,21 @@ export function getNodeAcTexts(doc, nodeId) {
|
|
|
17
17
|
.filter((n) => n.type === "acceptance_criteria" && n.parentId === nodeId)
|
|
18
18
|
.map((n) => n.title);
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Get all AC texts for a node using store queries (no full graph scan).
|
|
22
|
+
* Prefers inline AC, falls back to child AC node titles.
|
|
23
|
+
*/
|
|
24
|
+
export function getNodeAcFromStore(store, nodeId) {
|
|
25
|
+
const node = store.getNodeById(nodeId);
|
|
26
|
+
if (!node)
|
|
27
|
+
return [];
|
|
28
|
+
const inline = node.acceptanceCriteria ?? [];
|
|
29
|
+
if (inline.length > 0)
|
|
30
|
+
return inline;
|
|
31
|
+
return store.getChildNodes(nodeId)
|
|
32
|
+
.filter((n) => n.type === "acceptance_criteria")
|
|
33
|
+
.map((n) => n.title);
|
|
34
|
+
}
|
|
20
35
|
/**
|
|
21
36
|
* Check if a node has any AC — either inline or via child AC nodes.
|
|
22
37
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ac-helpers.js","sourceRoot":"","sources":["../../../src/core/utils/ac-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"ac-helpers.js","sourceRoot":"","sources":["../../../src/core/utils/ac-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAkB,EAAE,MAAc;IAC/D,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;IAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAErC,uCAAuC;IACvC,OAAO,GAAG,CAAC,KAAK;SACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAqB,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC;SACxE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAkB,EAAE,MAAc;IACnE,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;IAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAErC,OAAO,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;SAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAqB,CAAC;SAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAkB,EAAE,MAAc;IAC1D,OAAO,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -27,4 +27,23 @@ export declare const DEFAULT_TOKEN_BUDGET = 4000;
|
|
|
27
27
|
export declare const DEFAULT_CHUNK_MAX_TOKENS = 500;
|
|
28
28
|
/** Default overlap tokens between chunks */
|
|
29
29
|
export declare const DEFAULT_CHUNK_OVERLAP = 50;
|
|
30
|
+
/** All languages supported by the UCR (matches LSP server-registry) */
|
|
31
|
+
export declare const SUPPORTED_LANGUAGES: readonly ["typescript", "python", "rust", "go", "java", "cpp", "ruby", "php", "kotlin", "swift", "csharp", "lua"];
|
|
32
|
+
export type SupportedLanguage = (typeof SUPPORTED_LANGUAGES)[number];
|
|
33
|
+
/** Language pairs available for translation */
|
|
34
|
+
export declare const SUPPORTED_LANGUAGE_PAIRS: ReadonlyArray<{
|
|
35
|
+
from: SupportedLanguage;
|
|
36
|
+
to: SupportedLanguage;
|
|
37
|
+
}>;
|
|
38
|
+
/** MVP language pairs (initially only TS <-> Python) */
|
|
39
|
+
export declare const MVP_LANGUAGE_PAIRS: readonly {
|
|
40
|
+
from: SupportedLanguage;
|
|
41
|
+
to: SupportedLanguage;
|
|
42
|
+
}[];
|
|
43
|
+
/** Confidence threshold below which AI assistance is needed */
|
|
44
|
+
export declare const UCR_CONFIDENCE_THRESHOLD = 0.7;
|
|
45
|
+
/** Check if a language is supported */
|
|
46
|
+
export declare function isLanguageSupported(lang: string): lang is SupportedLanguage;
|
|
47
|
+
/** Check if a language pair is supported for translation */
|
|
48
|
+
export declare function isLanguagePairSupported(from: string, to: string): boolean;
|
|
30
49
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,yDAAyD;AACzD,eAAO,MAAM,SAAS,mBAAmB,CAAC;AAE1C,0DAA0D;AAC1D,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAE7C,iCAAiC;AACjC,eAAO,MAAM,OAAO,aAAa,CAAC;AAElC,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAE7C,kDAAkD;AAClD,eAAO,MAAM,aAAa,QAA4C,CAAC;AAEvE,wDAAwD;AACxD,eAAO,MAAM,cAAc,QAAoC,CAAC;AAEhE,yDAAyD;AACzD,eAAO,MAAM,mBAAmB,QAAuC,CAAC;AAExE,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,QAA0C,CAAC;AAI1E,6CAA6C;AAC7C,eAAO,MAAM,mBAAmB,EAAG,SAAkB,CAAC;AAEtD,wEAAwE;AACxE,eAAO,MAAM,qBAAqB,EAAG,CAAU,CAAC;AAIhD,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,oDAAoD;AACpD,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,yDAAyD;AACzD,eAAO,MAAM,SAAS,mBAAmB,CAAC;AAE1C,0DAA0D;AAC1D,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAE7C,iCAAiC;AACjC,eAAO,MAAM,OAAO,aAAa,CAAC;AAElC,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAE7C,kDAAkD;AAClD,eAAO,MAAM,aAAa,QAA4C,CAAC;AAEvE,wDAAwD;AACxD,eAAO,MAAM,cAAc,QAAoC,CAAC;AAEhE,yDAAyD;AACzD,eAAO,MAAM,mBAAmB,QAAuC,CAAC;AAExE,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,QAA0C,CAAC;AAI1E,6CAA6C;AAC7C,eAAO,MAAM,mBAAmB,EAAG,SAAkB,CAAC;AAEtD,wEAAwE;AACxE,eAAO,MAAM,qBAAqB,EAAG,CAAU,CAAC;AAIhD,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,oDAAoD;AACpD,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAIxC,uEAAuE;AACvE,eAAO,MAAM,mBAAmB,mHAGtB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,+CAA+C;AAC/C,eAAO,MAAM,wBAAwB,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,EAAE,EAAE,iBAAiB,CAAA;CAAE,CAG7F,CAAC;AAEX,wDAAwD;AACxD,eAAO,MAAM,kBAAkB;UAN8B,iBAAiB;QAAM,iBAAiB;GAM3C,CAAC;AAE3D,+DAA+D;AAC/D,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,uCAAuC;AACvC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,iBAAiB,CAE3E;AAED,4DAA4D;AAC5D,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAEzE"}
|
|
@@ -31,4 +31,27 @@ export const DEFAULT_TOKEN_BUDGET = 4000;
|
|
|
31
31
|
export const DEFAULT_CHUNK_MAX_TOKENS = 500;
|
|
32
32
|
/** Default overlap tokens between chunks */
|
|
33
33
|
export const DEFAULT_CHUNK_OVERLAP = 50;
|
|
34
|
+
// ── Translation / UCR constants ──
|
|
35
|
+
/** All languages supported by the UCR (matches LSP server-registry) */
|
|
36
|
+
export const SUPPORTED_LANGUAGES = [
|
|
37
|
+
"typescript", "python", "rust", "go", "java", "cpp",
|
|
38
|
+
"ruby", "php", "kotlin", "swift", "csharp", "lua",
|
|
39
|
+
];
|
|
40
|
+
/** Language pairs available for translation */
|
|
41
|
+
export const SUPPORTED_LANGUAGE_PAIRS = [
|
|
42
|
+
{ from: "typescript", to: "python" },
|
|
43
|
+
{ from: "python", to: "typescript" },
|
|
44
|
+
];
|
|
45
|
+
/** MVP language pairs (initially only TS <-> Python) */
|
|
46
|
+
export const MVP_LANGUAGE_PAIRS = SUPPORTED_LANGUAGE_PAIRS;
|
|
47
|
+
/** Confidence threshold below which AI assistance is needed */
|
|
48
|
+
export const UCR_CONFIDENCE_THRESHOLD = 0.7;
|
|
49
|
+
/** Check if a language is supported */
|
|
50
|
+
export function isLanguageSupported(lang) {
|
|
51
|
+
return SUPPORTED_LANGUAGES.includes(lang);
|
|
52
|
+
}
|
|
53
|
+
/** Check if a language pair is supported for translation */
|
|
54
|
+
export function isLanguagePairSupported(from, to) {
|
|
55
|
+
return SUPPORTED_LANGUAGE_PAIRS.some((p) => p.from === from && p.to === to);
|
|
56
|
+
}
|
|
34
57
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/core/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,yDAAyD;AACzD,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAE1C,0DAA0D;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAE7C,iCAAiC;AACjC,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAAC;AAElC,oDAAoD;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAE7C,kDAAkD;AAClD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAEvE,wDAAwD;AACxD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAEhE,yDAAyD;AACzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAExE,oDAAoD;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAE1E,sBAAsB;AAEtB,6CAA6C;AAC7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAkB,CAAC;AAEtD,wEAAwE;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAU,CAAC;AAEhD,8BAA8B;AAE9B,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,oDAAoD;AACpD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAE5C,4CAA4C;AAC5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/core/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,yDAAyD;AACzD,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAE1C,0DAA0D;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAE7C,iCAAiC;AACjC,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAAC;AAElC,oDAAoD;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAE7C,kDAAkD;AAClD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAEvE,wDAAwD;AACxD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAEhE,yDAAyD;AACzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAExE,oDAAoD;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAE1E,sBAAsB;AAEtB,6CAA6C;AAC7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAkB,CAAC;AAEtD,wEAAwE;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAU,CAAC;AAEhD,8BAA8B;AAE9B,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,oDAAoD;AACpD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAE5C,4CAA4C;AAC5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAExC,oCAAoC;AAEpC,uEAAuE;AACvE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK;IACnD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK;CACzC,CAAC;AAIX,+CAA+C;AAC/C,MAAM,CAAC,MAAM,wBAAwB,GAAsE;IACzG,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE;IACpC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE;CAC5B,CAAC;AAEX,wDAAwD;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAE3D,+DAA+D;AAC/D,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAE5C,uCAAuC;AACvC,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAQ,mBAAyC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,EAAU;IAC9D,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -19,6 +19,18 @@ export declare class SnapshotNotFoundError extends McpGraphError {
|
|
|
19
19
|
}
|
|
20
20
|
/** Safely extract an error message from an unknown thrown value. */
|
|
21
21
|
export declare function getErrorMessage(err: unknown): string;
|
|
22
|
+
export declare class TranslationError extends McpGraphError {
|
|
23
|
+
constructor(message: string);
|
|
24
|
+
}
|
|
25
|
+
export declare class UnsupportedLanguagePairError extends McpGraphError {
|
|
26
|
+
readonly from: string;
|
|
27
|
+
readonly to: string;
|
|
28
|
+
constructor(from: string, to: string);
|
|
29
|
+
}
|
|
30
|
+
export declare class TranslationValidationError extends McpGraphError {
|
|
31
|
+
readonly jobId: string;
|
|
32
|
+
constructor(jobId: string, message: string);
|
|
33
|
+
}
|
|
22
34
|
export declare class LifecycleGateError extends McpGraphError {
|
|
23
35
|
readonly toolName: string;
|
|
24
36
|
readonly currentPhase: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/core/utils/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,IAAI,EAAE,MAAM;CAIzB;AAED,qBAAa,wBAAyB,SAAQ,aAAa;;CAK1D;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,EAAE,EAAE,MAAM;CAIvB;AAED,qBAAa,eAAgB,SAAQ,aAAa;aACH,MAAM,EAAE,OAAO,EAAE;gBAAlD,OAAO,EAAE,MAAM,EAAkB,MAAM,EAAE,OAAO,EAAE;CAI/D;AAED,qBAAa,qBAAsB,SAAQ,aAAa;gBAC1C,EAAE,EAAE,MAAM;CAIvB;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED,qBAAa,kBAAmB,SAAQ,aAAa;aAEjC,QAAQ,EAAE,MAAM;aAChB,YAAY,EAAE,MAAM;aACpB,MAAM,EAAE,MAAM;aACd,eAAe,EAAE,MAAM,EAAE;gBAHzB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EAAE;CAK5C"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/core/utils/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,IAAI,EAAE,MAAM;CAIzB;AAED,qBAAa,wBAAyB,SAAQ,aAAa;;CAK1D;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,EAAE,EAAE,MAAM;CAIvB;AAED,qBAAa,eAAgB,SAAQ,aAAa;aACH,MAAM,EAAE,OAAO,EAAE;gBAAlD,OAAO,EAAE,MAAM,EAAkB,MAAM,EAAE,OAAO,EAAE;CAI/D;AAED,qBAAa,qBAAsB,SAAQ,aAAa;gBAC1C,EAAE,EAAE,MAAM;CAIvB;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEpD;AAID,qBAAa,gBAAiB,SAAQ,aAAa;gBACrC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,4BAA6B,SAAQ,aAAa;aAE3C,IAAI,EAAE,MAAM;aACZ,EAAE,EAAE,MAAM;gBADV,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM;CAK7B;AAED,qBAAa,0BAA2B,SAAQ,aAAa;aAEzC,KAAK,EAAE,MAAM;gBAAb,KAAK,EAAE,MAAM,EAC7B,OAAO,EAAE,MAAM;CAKlB;AAED,qBAAa,kBAAmB,SAAQ,aAAa;aAEjC,QAAQ,EAAE,MAAM;aAChB,YAAY,EAAE,MAAM;aACpB,MAAM,EAAE,MAAM;aACd,eAAe,EAAE,MAAM,EAAE;gBAHzB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EAAE;CAK5C"}
|
|
@@ -40,6 +40,31 @@ export class SnapshotNotFoundError extends McpGraphError {
|
|
|
40
40
|
export function getErrorMessage(err) {
|
|
41
41
|
return err instanceof Error ? err.message : String(err);
|
|
42
42
|
}
|
|
43
|
+
// ── Translation errors ──
|
|
44
|
+
export class TranslationError extends McpGraphError {
|
|
45
|
+
constructor(message) {
|
|
46
|
+
super(`Translation error: ${message}`);
|
|
47
|
+
this.name = "TranslationError";
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export class UnsupportedLanguagePairError extends McpGraphError {
|
|
51
|
+
from;
|
|
52
|
+
to;
|
|
53
|
+
constructor(from, to) {
|
|
54
|
+
super(`Unsupported language pair: ${from} → ${to}`);
|
|
55
|
+
this.from = from;
|
|
56
|
+
this.to = to;
|
|
57
|
+
this.name = "UnsupportedLanguagePairError";
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export class TranslationValidationError extends McpGraphError {
|
|
61
|
+
jobId;
|
|
62
|
+
constructor(jobId, message) {
|
|
63
|
+
super(`Translation validation failed for job ${jobId}: ${message}`);
|
|
64
|
+
this.jobId = jobId;
|
|
65
|
+
this.name = "TranslationValidationError";
|
|
66
|
+
}
|
|
67
|
+
}
|
|
43
68
|
export class LifecycleGateError extends McpGraphError {
|
|
44
69
|
toolName;
|
|
45
70
|
currentPhase;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/utils/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD,YAAY,IAAY;QACtB,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,aAAa;IACzD;QACE,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD,YAAY,EAAU;QACpB,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,aAAa;IACH;IAA7C,YAAY,OAAe,EAAkB,MAAiB;QAC5D,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;QADI,WAAM,GAAN,MAAM,CAAW;QAE5D,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IACtD,YAAY,EAAU;QACpB,KAAK,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,oEAAoE;AACpE,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IAEjC;IACA;IACA;IACA;IAJlB,YACkB,QAAgB,EAChB,YAAoB,EACpB,MAAc,EACd,eAAyB;QAEzC,KAAK,CAAC,oBAAoB,QAAQ,gBAAgB,YAAY,MAAM,MAAM,EAAE,CAAC,CAAC;QAL9D,aAAQ,GAAR,QAAQ,CAAQ;QAChB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,WAAM,GAAN,MAAM,CAAQ;QACd,oBAAe,GAAf,eAAe,CAAU;QAGzC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/utils/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD,YAAY,IAAY;QACtB,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,aAAa;IACzD;QACE,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD,YAAY,EAAU;QACpB,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,aAAa;IACH;IAA7C,YAAY,OAAe,EAAkB,MAAiB;QAC5D,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;QADI,WAAM,GAAN,MAAM,CAAW;QAE5D,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IACtD,YAAY,EAAU;QACpB,KAAK,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,oEAAoE;AACpE,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,2BAA2B;AAE3B,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,4BAA6B,SAAQ,aAAa;IAE3C;IACA;IAFlB,YACkB,IAAY,EACZ,EAAU;QAE1B,KAAK,CAAC,8BAA8B,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;QAHpC,SAAI,GAAJ,IAAI,CAAQ;QACZ,OAAE,GAAF,EAAE,CAAQ;QAG1B,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,aAAa;IAEzC;IADlB,YACkB,KAAa,EAC7B,OAAe;QAEf,KAAK,CAAC,yCAAyC,KAAK,KAAK,OAAO,EAAE,CAAC,CAAC;QAHpD,UAAK,GAAL,KAAK,CAAQ;QAI7B,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IAEjC;IACA;IACA;IACA;IAJlB,YACkB,QAAgB,EAChB,YAAoB,EACpB,MAAc,EACd,eAAyB;QAEzC,KAAK,CAAC,oBAAoB,QAAQ,gBAAgB,YAAY,MAAM,MAAM,EAAE,CAAC,CAAC;QAL9D,aAAQ,GAAR,QAAQ,CAAQ;QAChB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,WAAM,GAAN,MAAM,CAAQ;QACd,oBAAe,GAAf,eAAe,CAAU;QAGzC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* String similarity utilities — tokenization and Jaccard similarity.
|
|
3
|
+
* Extracted from siebel/wsdl-correlation.ts for reuse across modules.
|
|
4
|
+
*/
|
|
5
|
+
/** Tokenize a name by splitting camelCase, PascalCase, snake_case, kebab-case. Filters single-char tokens. */
|
|
6
|
+
export declare function tokenize(name: string): string[];
|
|
7
|
+
/** Jaccard similarity between two sets: |intersection| / |union|. Returns 0 for empty sets. */
|
|
8
|
+
export declare function jaccardSimilarity(a: Set<string>, b: Set<string>): number;
|
|
9
|
+
//# sourceMappingURL=similarity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"similarity.d.ts","sourceRoot":"","sources":["../../../src/core/utils/similarity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,8GAA8G;AAC9G,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAO/C;AAED,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAIxE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* String similarity utilities — tokenization and Jaccard similarity.
|
|
3
|
+
* Extracted from siebel/wsdl-correlation.ts for reuse across modules.
|
|
4
|
+
*/
|
|
5
|
+
/** Tokenize a name by splitting camelCase, PascalCase, snake_case, kebab-case. Filters single-char tokens. */
|
|
6
|
+
export function tokenize(name) {
|
|
7
|
+
return name
|
|
8
|
+
.replace(/([a-z])([A-Z])/g, "$1 $2")
|
|
9
|
+
.replace(/[_\-]/g, " ")
|
|
10
|
+
.toLowerCase()
|
|
11
|
+
.split(/\s+/)
|
|
12
|
+
.filter((t) => t.length > 1);
|
|
13
|
+
}
|
|
14
|
+
/** Jaccard similarity between two sets: |intersection| / |union|. Returns 0 for empty sets. */
|
|
15
|
+
export function jaccardSimilarity(a, b) {
|
|
16
|
+
const intersection = new Set([...a].filter((x) => b.has(x)));
|
|
17
|
+
const union = new Set([...a, ...b]);
|
|
18
|
+
return union.size > 0 ? intersection.size / union.size : 0;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=similarity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"similarity.js","sourceRoot":"","sources":["../../../src/core/utils/similarity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,8GAA8G;AAC9G,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,IAAI;SACR,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACnC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,WAAW,EAAE;SACb,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,iBAAiB,CAAC,CAAc,EAAE,CAAc;IAC9D,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code Intelligence MCP wrapper.
|
|
3
|
+
* Enriches all MCP tool responses with automatic Code Intelligence data
|
|
4
|
+
* (impact analysis, symbol context, blast radius).
|
|
5
|
+
*
|
|
6
|
+
* Composition: runs AFTER lifecycle-wrapper (outermost layer).
|
|
7
|
+
* In strict mode, blocks mutating tools when code index is empty.
|
|
8
|
+
*/
|
|
9
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
10
|
+
import type { SqliteStore } from "../core/store/sqlite-store.js";
|
|
11
|
+
import { CodeStore } from "../core/code/code-store.js";
|
|
12
|
+
export type CodeIntelligenceMode = "strict" | "advisory" | "off";
|
|
13
|
+
export interface CodeIntelWarning {
|
|
14
|
+
code: "index_empty" | "index_stale" | "enrichment_failed" | "no_relevant_symbols";
|
|
15
|
+
message: string;
|
|
16
|
+
severity: "error" | "warning" | "info";
|
|
17
|
+
}
|
|
18
|
+
export interface CodeIntelEnrichment {
|
|
19
|
+
type: "implement" | "review" | "validate" | "generic";
|
|
20
|
+
relevantSymbols: Array<{
|
|
21
|
+
name: string;
|
|
22
|
+
file: string;
|
|
23
|
+
kind: string;
|
|
24
|
+
}>;
|
|
25
|
+
impactAnalysis?: {
|
|
26
|
+
affectedCount: number;
|
|
27
|
+
riskLevel: "low" | "medium" | "high";
|
|
28
|
+
topAffected: Array<{
|
|
29
|
+
name: string;
|
|
30
|
+
file: string;
|
|
31
|
+
confidence: number;
|
|
32
|
+
}>;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export interface IndexStatus {
|
|
36
|
+
available: boolean;
|
|
37
|
+
stale: boolean;
|
|
38
|
+
lastIndexed: string | null;
|
|
39
|
+
symbolCount: number;
|
|
40
|
+
}
|
|
41
|
+
export interface CodeIntelligenceBlock {
|
|
42
|
+
mode: CodeIntelligenceMode;
|
|
43
|
+
indexStatus: IndexStatus;
|
|
44
|
+
enrichment?: CodeIntelEnrichment;
|
|
45
|
+
warnings: CodeIntelWarning[];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Detect whether the code index is stale by comparing stored gitHash with current HEAD.
|
|
49
|
+
* Accepts optional currentGitHash override (for testing without git).
|
|
50
|
+
*/
|
|
51
|
+
export declare function detectStaleIndex(codeStore: CodeStore, projectId: string, currentGitHash?: string | null): IndexStatus;
|
|
52
|
+
/**
|
|
53
|
+
* Extract potential symbol names and file paths from MCP tool arguments.
|
|
54
|
+
* Heuristic: looks for nodeId, title words (>3 chars), backtick-quoted identifiers, file paths.
|
|
55
|
+
*/
|
|
56
|
+
export declare function extractRelevantHints(toolName: string, args: unknown[]): string[];
|
|
57
|
+
/**
|
|
58
|
+
* Build the _code_intelligence block for a tool response.
|
|
59
|
+
* Phase-aware: IMPLEMENT/REVIEW/VALIDATE get impact analysis; others get generic summary.
|
|
60
|
+
*/
|
|
61
|
+
export declare function buildCodeIntelBlock(codeStore: CodeStore, projectId: string, phase: string, mode: CodeIntelligenceMode, toolName: string, args: unknown[], currentGitHash?: string | null): CodeIntelligenceBlock;
|
|
62
|
+
interface ToolCallResult {
|
|
63
|
+
content: Array<{
|
|
64
|
+
type: string;
|
|
65
|
+
text: string;
|
|
66
|
+
}>;
|
|
67
|
+
isError?: boolean;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Build a blocked response when strict mode prevents tool execution.
|
|
71
|
+
*/
|
|
72
|
+
export declare function buildBlockedResponseCodeIntel(toolName: string, warnings: CodeIntelWarning[]): ToolCallResult;
|
|
73
|
+
/**
|
|
74
|
+
* Wrap all registered MCP tool handlers to enrich responses with Code Intelligence data.
|
|
75
|
+
* Must be called AFTER wrapToolsWithLifecycle (outermost wrapper).
|
|
76
|
+
*/
|
|
77
|
+
export declare function wrapToolsWithCodeIntelligence(server: McpServer, store: SqliteStore): void;
|
|
78
|
+
export {};
|
|
79
|
+
//# sourceMappingURL=code-intelligence-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-intelligence-wrapper.d.ts","sourceRoot":"","sources":["../../src/mcp/code-intelligence-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AASvD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,GAAG,aAAa,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IACtD,eAAe,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,cAAc,CAAC,EAAE;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QACrC,WAAW,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACxE,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AA2CD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAC7B,WAAW,CAiBb;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CA+BhF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EAAE,EACf,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAC7B,qBAAqB,CAsCvB;AAgFD,UAAU,cAAc;IACtB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,gBAAgB,EAAE,GAC3B,cAAc,CAahB;AAUD;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA+EzF"}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code Intelligence MCP wrapper.
|
|
3
|
+
* Enriches all MCP tool responses with automatic Code Intelligence data
|
|
4
|
+
* (impact analysis, symbol context, blast radius).
|
|
5
|
+
*
|
|
6
|
+
* Composition: runs AFTER lifecycle-wrapper (outermost layer).
|
|
7
|
+
* In strict mode, blocks mutating tools when code index is empty.
|
|
8
|
+
*/
|
|
9
|
+
import { CodeStore } from "../core/code/code-store.js";
|
|
10
|
+
import { analyzeImpact } from "../core/code/graph-traversal.js";
|
|
11
|
+
import { detectCurrentPhase } from "../core/planner/lifecycle-phase.js";
|
|
12
|
+
import { logger } from "../core/utils/logger.js";
|
|
13
|
+
import { execSync } from "child_process";
|
|
14
|
+
// ── Constants ───────────────────────────────────────────
|
|
15
|
+
const READ_ONLY_TOOLS = new Set([
|
|
16
|
+
"list", "show", "search", "metrics", "export", "context", "rag_context",
|
|
17
|
+
"analyze", "snapshot", "next", "list_memories", "read_memory", "list_skills",
|
|
18
|
+
"stats", "velocity", "dependencies", "plan_sprint", "validate_ac",
|
|
19
|
+
"manage_skill", "knowledge_stats", "knowledge_feedback",
|
|
20
|
+
]);
|
|
21
|
+
const ENRICHED_PHASES = new Set(["IMPLEMENT", "REVIEW", "VALIDATE"]);
|
|
22
|
+
const MAX_TOP_AFFECTED = 5;
|
|
23
|
+
// ── Git hash cache ──────────────────────────────────────
|
|
24
|
+
let cachedGitHash = null;
|
|
25
|
+
let gitHashTimestamp = 0;
|
|
26
|
+
const GIT_HASH_TTL_MS = 30_000;
|
|
27
|
+
function getCurrentGitHash(basePath) {
|
|
28
|
+
const now = Date.now();
|
|
29
|
+
if (cachedGitHash !== null && now - gitHashTimestamp < GIT_HASH_TTL_MS) {
|
|
30
|
+
return cachedGitHash;
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
cachedGitHash = execSync("git rev-parse HEAD", {
|
|
34
|
+
cwd: basePath ?? process.cwd(),
|
|
35
|
+
encoding: "utf-8",
|
|
36
|
+
timeout: 2000,
|
|
37
|
+
}).trim();
|
|
38
|
+
gitHashTimestamp = now;
|
|
39
|
+
return cachedGitHash;
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
cachedGitHash = null;
|
|
43
|
+
gitHashTimestamp = now;
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// ── Core functions ──────────────────────────────────────
|
|
48
|
+
/**
|
|
49
|
+
* Detect whether the code index is stale by comparing stored gitHash with current HEAD.
|
|
50
|
+
* Accepts optional currentGitHash override (for testing without git).
|
|
51
|
+
*/
|
|
52
|
+
export function detectStaleIndex(codeStore, projectId, currentGitHash) {
|
|
53
|
+
const meta = codeStore.getIndexMeta(projectId);
|
|
54
|
+
if (!meta) {
|
|
55
|
+
return { available: false, stale: false, lastIndexed: null, symbolCount: 0 };
|
|
56
|
+
}
|
|
57
|
+
const gitHash = currentGitHash !== undefined ? currentGitHash : getCurrentGitHash();
|
|
58
|
+
// If either hash is null, we can't determine staleness
|
|
59
|
+
const stale = !!meta.gitHash && !!gitHash && meta.gitHash !== gitHash;
|
|
60
|
+
return {
|
|
61
|
+
available: true,
|
|
62
|
+
stale,
|
|
63
|
+
lastIndexed: meta.lastIndexed,
|
|
64
|
+
symbolCount: meta.symbolCount,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Extract potential symbol names and file paths from MCP tool arguments.
|
|
69
|
+
* Heuristic: looks for nodeId, title words (>3 chars), backtick-quoted identifiers, file paths.
|
|
70
|
+
*/
|
|
71
|
+
export function extractRelevantHints(toolName, args) {
|
|
72
|
+
const toolArgs = args[0];
|
|
73
|
+
if (!toolArgs)
|
|
74
|
+
return [];
|
|
75
|
+
const hints = [];
|
|
76
|
+
// nodeId
|
|
77
|
+
if (typeof toolArgs.nodeId === "string") {
|
|
78
|
+
hints.push(toolArgs.nodeId);
|
|
79
|
+
}
|
|
80
|
+
// title — extract space-separated words > 3 chars
|
|
81
|
+
if (typeof toolArgs.title === "string") {
|
|
82
|
+
const words = toolArgs.title.split(/\s+/).filter(w => /^[a-zA-Z_]\w*$/.test(w) && w.length > 3);
|
|
83
|
+
hints.push(...words);
|
|
84
|
+
}
|
|
85
|
+
// file path
|
|
86
|
+
if (typeof toolArgs.file === "string") {
|
|
87
|
+
hints.push(toolArgs.file);
|
|
88
|
+
}
|
|
89
|
+
// backtick-quoted identifiers from description
|
|
90
|
+
if (typeof toolArgs.description === "string") {
|
|
91
|
+
const backtickMatches = toolArgs.description.match(/`([^`]+)`/g);
|
|
92
|
+
if (backtickMatches) {
|
|
93
|
+
hints.push(...backtickMatches.map(m => m.replace(/`/g, "")));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return [...new Set(hints)];
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Build the _code_intelligence block for a tool response.
|
|
100
|
+
* Phase-aware: IMPLEMENT/REVIEW/VALIDATE get impact analysis; others get generic summary.
|
|
101
|
+
*/
|
|
102
|
+
export function buildCodeIntelBlock(codeStore, projectId, phase, mode, toolName, args, currentGitHash) {
|
|
103
|
+
// Off mode — return empty block
|
|
104
|
+
if (mode === "off") {
|
|
105
|
+
return {
|
|
106
|
+
mode: "off",
|
|
107
|
+
indexStatus: { available: false, stale: false, lastIndexed: null, symbolCount: 0 },
|
|
108
|
+
warnings: [],
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
const indexStatus = detectStaleIndex(codeStore, projectId, currentGitHash);
|
|
112
|
+
const warnings = [];
|
|
113
|
+
const isReadOnly = READ_ONLY_TOOLS.has(toolName);
|
|
114
|
+
// Empty index check
|
|
115
|
+
if (!indexStatus.available) {
|
|
116
|
+
const severity = mode === "strict" && !isReadOnly ? "error" : "warning";
|
|
117
|
+
warnings.push({
|
|
118
|
+
code: "index_empty",
|
|
119
|
+
message: "Code Intelligence index is empty. Run reindex_knowledge or code_intelligence to build it.",
|
|
120
|
+
severity,
|
|
121
|
+
});
|
|
122
|
+
return { mode, indexStatus, warnings };
|
|
123
|
+
}
|
|
124
|
+
// Stale index check
|
|
125
|
+
if (indexStatus.stale) {
|
|
126
|
+
warnings.push({
|
|
127
|
+
code: "index_stale",
|
|
128
|
+
message: "Code Intelligence index is stale (git hash mismatch). Consider running reindex_knowledge.",
|
|
129
|
+
severity: "warning",
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
// Build enrichment based on phase
|
|
133
|
+
const enrichment = buildPhaseEnrichment(codeStore, projectId, phase, toolName, args, warnings);
|
|
134
|
+
return { mode, indexStatus, enrichment, warnings };
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Build phase-specific enrichment data.
|
|
138
|
+
*/
|
|
139
|
+
function buildPhaseEnrichment(codeStore, projectId, phase, toolName, args, warnings) {
|
|
140
|
+
// For non-enriched phases, return generic summary
|
|
141
|
+
if (!ENRICHED_PHASES.has(phase)) {
|
|
142
|
+
return {
|
|
143
|
+
type: "generic",
|
|
144
|
+
relevantSymbols: [],
|
|
145
|
+
impactAnalysis: undefined,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
// Extract hints and find matching symbols
|
|
149
|
+
const hints = extractRelevantHints(toolName, args);
|
|
150
|
+
const relevantSymbols = [];
|
|
151
|
+
for (const hint of hints) {
|
|
152
|
+
const found = codeStore.findSymbolsByName(hint, projectId);
|
|
153
|
+
relevantSymbols.push(...found);
|
|
154
|
+
}
|
|
155
|
+
if (relevantSymbols.length === 0 && hints.length > 0) {
|
|
156
|
+
warnings.push({
|
|
157
|
+
code: "no_relevant_symbols",
|
|
158
|
+
message: `No symbols found matching hints: ${hints.join(", ")}`,
|
|
159
|
+
severity: "info",
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
const symbolSummary = relevantSymbols.map(s => ({
|
|
163
|
+
name: s.name,
|
|
164
|
+
file: s.file,
|
|
165
|
+
kind: s.kind,
|
|
166
|
+
}));
|
|
167
|
+
// Phase-specific enrichment type
|
|
168
|
+
const type = phaseToEnrichmentType(phase);
|
|
169
|
+
// Impact analysis for enriched phases
|
|
170
|
+
let impactAnalysis;
|
|
171
|
+
if (relevantSymbols.length > 0) {
|
|
172
|
+
const primarySymbol = relevantSymbols[0];
|
|
173
|
+
const direction = type === "validate" ? "downstream" : "upstream";
|
|
174
|
+
const maxDepth = type === "review" ? 3 : 2;
|
|
175
|
+
const impact = analyzeImpact(codeStore, primarySymbol.name, projectId, direction, maxDepth);
|
|
176
|
+
impactAnalysis = {
|
|
177
|
+
affectedCount: impact.affectedSymbols.length,
|
|
178
|
+
riskLevel: impact.riskLevel,
|
|
179
|
+
topAffected: impact.affectedSymbols
|
|
180
|
+
.slice(0, MAX_TOP_AFFECTED)
|
|
181
|
+
.map(a => ({ name: a.name, file: a.file, confidence: a.confidence })),
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
return { type, relevantSymbols: symbolSummary, impactAnalysis };
|
|
185
|
+
}
|
|
186
|
+
function phaseToEnrichmentType(phase) {
|
|
187
|
+
switch (phase) {
|
|
188
|
+
case "IMPLEMENT": return "implement";
|
|
189
|
+
case "REVIEW": return "review";
|
|
190
|
+
case "VALIDATE": return "validate";
|
|
191
|
+
default: return "generic";
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Build a blocked response when strict mode prevents tool execution.
|
|
196
|
+
*/
|
|
197
|
+
export function buildBlockedResponseCodeIntel(toolName, warnings) {
|
|
198
|
+
return {
|
|
199
|
+
content: [{
|
|
200
|
+
type: "text",
|
|
201
|
+
text: JSON.stringify({
|
|
202
|
+
error: "code_intelligence_gate_blocked",
|
|
203
|
+
tool: toolName,
|
|
204
|
+
warnings,
|
|
205
|
+
hint: "Run reindex_knowledge to build the code index, or use set_phase({codeIntelligence:'advisory'}) to switch to advisory mode.",
|
|
206
|
+
}, null, 2),
|
|
207
|
+
}],
|
|
208
|
+
isError: true,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Wrap all registered MCP tool handlers to enrich responses with Code Intelligence data.
|
|
213
|
+
* Must be called AFTER wrapToolsWithLifecycle (outermost wrapper).
|
|
214
|
+
*/
|
|
215
|
+
export function wrapToolsWithCodeIntelligence(server, store) {
|
|
216
|
+
const registeredTools = server._registeredTools;
|
|
217
|
+
if (!registeredTools) {
|
|
218
|
+
logger.warn("code-intelligence-wrapper: could not access _registeredTools, skipping wrapping");
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
for (const [name, tool] of Object.entries(registeredTools)) {
|
|
222
|
+
const originalHandler = tool.handler;
|
|
223
|
+
tool.handler = async (...args) => {
|
|
224
|
+
// ── Load mode ──
|
|
225
|
+
let mode = "off";
|
|
226
|
+
try {
|
|
227
|
+
const modeValue = store.getProjectSetting("code_intelligence_mode");
|
|
228
|
+
if (modeValue === "strict" || modeValue === "advisory" || modeValue === "off") {
|
|
229
|
+
mode = modeValue;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
catch {
|
|
233
|
+
// No project loaded — skip enrichment
|
|
234
|
+
}
|
|
235
|
+
if (mode === "off") {
|
|
236
|
+
return originalHandler(...args);
|
|
237
|
+
}
|
|
238
|
+
// ── Pre-execution gate check (strict mode) ──
|
|
239
|
+
try {
|
|
240
|
+
const project = store.getProject();
|
|
241
|
+
if (project) {
|
|
242
|
+
const codeStore = new CodeStore(store.getDb());
|
|
243
|
+
const indexStatus = detectStaleIndex(codeStore, project.id);
|
|
244
|
+
if (mode === "strict" && !indexStatus.available && !READ_ONLY_TOOLS.has(name)) {
|
|
245
|
+
logger.warn("code-intelligence-wrapper: tool blocked — empty index", { tool: name });
|
|
246
|
+
return buildBlockedResponseCodeIntel(name, [{
|
|
247
|
+
code: "index_empty",
|
|
248
|
+
message: "Code Intelligence index is empty. Cannot execute mutating tool in strict mode.",
|
|
249
|
+
severity: "error",
|
|
250
|
+
}]);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
catch {
|
|
255
|
+
logger.debug("code-intelligence-wrapper: skipped pre-check for tool", { tool: name });
|
|
256
|
+
}
|
|
257
|
+
// ── Execute original handler ──
|
|
258
|
+
const result = await originalHandler(...args);
|
|
259
|
+
// ── Post-execution: append _code_intelligence block ──
|
|
260
|
+
try {
|
|
261
|
+
const project = store.getProject();
|
|
262
|
+
if (project) {
|
|
263
|
+
const codeStore = new CodeStore(store.getDb());
|
|
264
|
+
const phaseOverrideValue = store.getProjectSetting("lifecycle_phase_override");
|
|
265
|
+
const doc = store.toGraphDocument();
|
|
266
|
+
const phase = detectCurrentPhase(doc, {
|
|
267
|
+
phaseOverride: phaseOverrideValue ? phaseOverrideValue : null,
|
|
268
|
+
});
|
|
269
|
+
const block = buildCodeIntelBlock(codeStore, project.id, phase, mode, name, args);
|
|
270
|
+
if (result && Array.isArray(result.content)) {
|
|
271
|
+
result.content.push({
|
|
272
|
+
type: "text",
|
|
273
|
+
text: JSON.stringify({ _code_intelligence: block }, null, 2),
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
279
|
+
logger.debug("code-intelligence-wrapper: skipped enrichment for tool", { tool: name });
|
|
280
|
+
}
|
|
281
|
+
return result;
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
logger.debug("code-intelligence-wrapper: wrapped all tools", { count: Object.keys(registeredTools).length });
|
|
285
|
+
}
|
|
286
|
+
//# sourceMappingURL=code-intelligence-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-intelligence-wrapper.js","sourceRoot":"","sources":["../../src/mcp/code-intelligence-wrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-wrapper.d.ts","sourceRoot":"","sources":["../../src/mcp/lifecycle-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,
|
|
1
|
+
{"version":3,"file":"lifecycle-wrapper.d.ts","sourceRoot":"","sources":["../../src/mcp/lifecycle-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAOL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACpB,MAAM,oCAAoC,CAAC;AAM5C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC1C,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAYD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,cAAc,CA6CvG;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAU1F;AAkFD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI,CAyJ5G"}
|