sdl-mcp 0.8.2 → 0.8.3
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/code/hotpath.d.ts.map +1 -1
- package/dist/code/hotpath.js +49 -8
- package/dist/code/hotpath.js.map +1 -1
- package/dist/code/redact.d.ts.map +1 -1
- package/dist/code/redact.js +8 -4
- package/dist/code/redact.js.map +1 -1
- package/dist/code/skeleton.d.ts.map +1 -1
- package/dist/code/skeleton.js +259 -35
- package/dist/code/skeleton.js.map +1 -1
- package/dist/db/kuzu-metrics.d.ts +5 -0
- package/dist/db/kuzu-metrics.d.ts.map +1 -1
- package/dist/db/kuzu-metrics.js +28 -1
- package/dist/db/kuzu-metrics.js.map +1 -1
- package/dist/db/kuzu.d.ts.map +1 -1
- package/dist/db/kuzu.js +80 -38
- package/dist/db/kuzu.js.map +1 -1
- package/dist/graph/metrics.d.ts.map +1 -1
- package/dist/graph/metrics.js +48 -9
- package/dist/graph/metrics.js.map +1 -1
- package/dist/graph/prefetch.d.ts.map +1 -1
- package/dist/graph/prefetch.js +8 -1
- package/dist/graph/prefetch.js.map +1 -1
- package/dist/graph/process.d.ts.map +1 -1
- package/dist/graph/process.js +4 -5
- package/dist/graph/process.js.map +1 -1
- package/dist/graph/slice/start-node-resolver.d.ts.map +1 -1
- package/dist/graph/slice/start-node-resolver.js +90 -0
- package/dist/graph/slice/start-node-resolver.js.map +1 -1
- package/dist/indexer/adapter/plugin/loader.d.ts +1 -1
- package/dist/indexer/adapter/plugin/loader.d.ts.map +1 -1
- package/dist/indexer/adapter/plugin/loader.js +19 -2
- package/dist/indexer/adapter/plugin/loader.js.map +1 -1
- package/dist/indexer/edge-builder/pass2.d.ts.map +1 -1
- package/dist/indexer/edge-builder/pass2.js +13 -2
- package/dist/indexer/edge-builder/pass2.js.map +1 -1
- package/dist/indexer/fileScanner.d.ts.map +1 -1
- package/dist/indexer/fileScanner.js +1 -0
- package/dist/indexer/fileScanner.js.map +1 -1
- package/dist/indexer/indexer.d.ts +1 -1
- package/dist/indexer/indexer.d.ts.map +1 -1
- package/dist/indexer/indexer.js +50 -5
- package/dist/indexer/indexer.js.map +1 -1
- package/dist/indexer/parser/process-file.d.ts.map +1 -1
- package/dist/indexer/parser/process-file.js +40 -4
- package/dist/indexer/parser/process-file.js.map +1 -1
- package/dist/indexer/parser/rust-process-file.d.ts.map +1 -1
- package/dist/indexer/parser/rust-process-file.js +39 -4
- package/dist/indexer/parser/rust-process-file.js.map +1 -1
- package/dist/indexer/pass2/resolvers/go-pass2-resolver.d.ts.map +1 -1
- package/dist/indexer/pass2/resolvers/go-pass2-resolver.js +15 -5
- package/dist/indexer/pass2/resolvers/go-pass2-resolver.js.map +1 -1
- package/dist/indexer/rustIndexer.d.ts.map +1 -1
- package/dist/indexer/rustIndexer.js +9 -2
- package/dist/indexer/rustIndexer.js.map +1 -1
- package/dist/indexer/watcher.d.ts.map +1 -1
- package/dist/indexer/watcher.js +20 -11
- package/dist/indexer/watcher.js.map +1 -1
- package/dist/mcp/health.d.ts.map +1 -1
- package/dist/mcp/health.js +12 -2
- package/dist/mcp/health.js.map +1 -1
- package/dist/mcp/tools/policy.d.ts.map +1 -1
- package/dist/mcp/tools/policy.js +22 -2
- package/dist/mcp/tools/policy.js.map +1 -1
- package/dist/mcp/tools/repo.d.ts.map +1 -1
- package/dist/mcp/tools/repo.js +20 -9
- package/dist/mcp/tools/repo.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +27 -13
- package/dist/mcp/tools.js.map +1 -1
- package/dist/ts/diagnostics.d.ts.map +1 -1
- package/dist/ts/diagnostics.js +19 -5
- package/dist/ts/diagnostics.js.map +1 -1
- package/dist/ts/mapping.d.ts.map +1 -1
- package/dist/ts/mapping.js +2 -1
- package/dist/ts/mapping.js.map +1 -1
- package/dist/util/safeRegex.d.ts.map +1 -1
- package/dist/util/safeRegex.js +19 -9
- package/dist/util/safeRegex.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hotpath.d.ts","sourceRoot":"","sources":["../../src/code/hotpath.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"hotpath.d.ts","sourceRoot":"","sources":["../../src/code/hotpath.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAgDhD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,KAAK,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;CACpB;AAmPD,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,MAAM,EAAE,EAC3B,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAoF/B"}
|
package/dist/code/hotpath.js
CHANGED
|
@@ -7,19 +7,34 @@ import { DEFAULT_CONTEXT_LINES, DEFAULT_MAX_LINES_HOTPATH, DEFAULT_MAX_TOKENS_HO
|
|
|
7
7
|
import { logger } from "../util/logger.js";
|
|
8
8
|
import { getKuzuConn } from "../db/kuzu.js";
|
|
9
9
|
import * as kuzuDb from "../db/kuzu-queries.js";
|
|
10
|
+
import { getParser as getGrammarParser } from "../indexer/treesitter/grammarLoader.js";
|
|
10
11
|
const tsParser = new Parser();
|
|
11
12
|
const tsxParser = new Parser();
|
|
12
13
|
tsParser.setLanguage(TypeScript.typescript);
|
|
13
14
|
tsxParser.setLanguage(TypeScript.tsx);
|
|
15
|
+
/**
|
|
16
|
+
* Maps file extensions to grammarLoader language IDs for non-JS/TS languages.
|
|
17
|
+
*/
|
|
18
|
+
const EXTENSION_TO_LANGUAGE = {
|
|
19
|
+
".py": "python",
|
|
20
|
+
".go": "go",
|
|
21
|
+
".java": "java",
|
|
22
|
+
".rs": "rust",
|
|
23
|
+
".cs": "csharp",
|
|
24
|
+
".c": "c",
|
|
25
|
+
".h": "c",
|
|
26
|
+
".cpp": "cpp",
|
|
27
|
+
".cc": "cpp",
|
|
28
|
+
".cxx": "cpp",
|
|
29
|
+
".hpp": "cpp",
|
|
30
|
+
".php": "php",
|
|
31
|
+
".kt": "kotlin",
|
|
32
|
+
".kts": "kotlin",
|
|
33
|
+
".sh": "bash",
|
|
34
|
+
".bash": "bash",
|
|
35
|
+
};
|
|
14
36
|
function parseFile(content, extension) {
|
|
15
37
|
try {
|
|
16
|
-
const isTS = extension === ".ts";
|
|
17
|
-
const isTSX = extension === ".tsx";
|
|
18
|
-
const isJS = extension === ".js";
|
|
19
|
-
const isJSX = extension === ".jsx";
|
|
20
|
-
if (!isTS && !isTSX && !isJS && !isJSX) {
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
38
|
// Guard: reject content exceeding the tree-sitter safety limit.
|
|
24
39
|
const byteLength = Buffer.byteLength(content, "utf-8");
|
|
25
40
|
if (byteLength > MAX_TREESITTER_PARSE_BYTES) {
|
|
@@ -30,7 +45,33 @@ function parseFile(content, extension) {
|
|
|
30
45
|
});
|
|
31
46
|
return null;
|
|
32
47
|
}
|
|
33
|
-
|
|
48
|
+
// JS/TS: use dedicated parsers (handle JSX/TSX correctly)
|
|
49
|
+
const isTS = extension === ".ts";
|
|
50
|
+
const isTSX = extension === ".tsx";
|
|
51
|
+
const isJS = extension === ".js";
|
|
52
|
+
const isJSX = extension === ".jsx";
|
|
53
|
+
let parser = null;
|
|
54
|
+
if (isTS || isTSX || isJS || isJSX) {
|
|
55
|
+
parser = isTS || isJS ? tsParser : tsxParser;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
// All other languages: use the shared grammarLoader
|
|
59
|
+
const language = EXTENSION_TO_LANGUAGE[extension];
|
|
60
|
+
if (!language) {
|
|
61
|
+
logger.debug("No grammar available for hot path generation", {
|
|
62
|
+
extension,
|
|
63
|
+
});
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
parser = getGrammarParser(language);
|
|
67
|
+
if (!parser) {
|
|
68
|
+
logger.debug("Grammar parser not loaded for hot path generation", {
|
|
69
|
+
extension,
|
|
70
|
+
language,
|
|
71
|
+
});
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
34
75
|
// Use 1MB buffer to handle files >32KB (tree-sitter default limit)
|
|
35
76
|
const tree = parser.parse(content, undefined, {
|
|
36
77
|
bufferSize: 1024 * 1024,
|
package/dist/code/hotpath.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hotpath.js","sourceRoot":"","sources":["../../src/code/hotpath.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hotpath.js","sourceRoot":"","sources":["../../src/code/hotpath.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../src/code/redact.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../src/code/redact.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACpC;AAuDD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,qBAAqB,EAAE,GAC9B,gBAAgB,EAAE,CAkBpB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,CAAC,EAAE,eAAe,GACvB,gBAAgB,EAAE,CAOpB;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,gBAAgB,EAAE,GAC5B,MAAM,CAUR;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAW1D"}
|
package/dist/code/redact.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import { logger } from "../util/logger.js";
|
|
3
|
+
import { safeCompileRegex } from "../util/safeRegex.js";
|
|
3
4
|
const DEFAULT_PATTERNS = [
|
|
4
5
|
{
|
|
5
6
|
name: "aws-access-key",
|
|
@@ -52,14 +53,17 @@ const EXCLUDED_FILES = [
|
|
|
52
53
|
export function compilePatterns(inputs) {
|
|
53
54
|
const compiled = [];
|
|
54
55
|
inputs.forEach((input, index) => {
|
|
55
|
-
|
|
56
|
+
const compiledPattern = safeCompileRegex(input.pattern, input.flags ?? "g");
|
|
57
|
+
if (compiledPattern) {
|
|
56
58
|
compiled.push({
|
|
57
59
|
name: input.name ?? `custom-${index}`,
|
|
58
|
-
pattern:
|
|
60
|
+
pattern: compiledPattern,
|
|
59
61
|
});
|
|
60
62
|
}
|
|
61
|
-
|
|
62
|
-
logger.warn("
|
|
63
|
+
else {
|
|
64
|
+
logger.warn("Unsafe or invalid redaction pattern skipped", {
|
|
65
|
+
name: input.name ?? input.pattern,
|
|
66
|
+
});
|
|
63
67
|
}
|
|
64
68
|
});
|
|
65
69
|
return compiled;
|
package/dist/code/redact.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redact.js","sourceRoot":"","sources":["../../src/code/redact.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"redact.js","sourceRoot":"","sources":["../../src/code/redact.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../src/code/skeleton.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAc,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,MAAM,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../src/code/skeleton.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAc,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,MAAM,MAAM,aAAa,CAAC;AAqBjC,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,KAAK,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,UAAU,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,KAAK,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAuFD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,MAAM,EAAE,EAC5B,KAAK,GAAE,MAAU,EACjB,YAAY,GAAE,OAAe,GAC5B,MAAM,CAqLR;AAqMD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAyBtC;AA4BD,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC,IAAI,GAAG,IAAI,CA4DpB;AA6BD,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAmGhC;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,GAAE,OAAe,EAC7B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAuEhC;AA4PD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAwGlC"}
|
package/dist/code/skeleton.js
CHANGED
|
@@ -8,6 +8,7 @@ import { DEFAULT_MAX_LINES_SKELETON, DEFAULT_MAX_TOKENS_SKELETON, DEFAULT_MAX_LI
|
|
|
8
8
|
import { getKuzuConn } from "../db/kuzu.js";
|
|
9
9
|
import * as kuzuDb from "../db/kuzu-queries.js";
|
|
10
10
|
import { logger } from "../util/logger.js";
|
|
11
|
+
import { getParser as getGrammarParser } from "../indexer/treesitter/grammarLoader.js";
|
|
11
12
|
const tsParser = new Parser();
|
|
12
13
|
const tsxParser = new Parser();
|
|
13
14
|
tsParser.setLanguage(TypeScript.typescript);
|
|
@@ -17,19 +18,94 @@ function shouldIncludeIdentifier(identifier, includeIdentifiers = []) {
|
|
|
17
18
|
return false;
|
|
18
19
|
return includeIdentifiers.includes(identifier);
|
|
19
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Node types that represent top-level containers (file/module root).
|
|
23
|
+
* These get their children recursively processed.
|
|
24
|
+
*/
|
|
25
|
+
const ROOT_CONTAINER_TYPES = new Set([
|
|
26
|
+
// JS/TS
|
|
27
|
+
"source_file",
|
|
28
|
+
"program",
|
|
29
|
+
// Python
|
|
30
|
+
"module",
|
|
31
|
+
// Go, Rust, C/C++
|
|
32
|
+
"translation_unit",
|
|
33
|
+
]);
|
|
34
|
+
/**
|
|
35
|
+
* Node types that are rendered verbatim (imports, type declarations).
|
|
36
|
+
*/
|
|
37
|
+
const VERBATIM_TYPES = new Set([
|
|
38
|
+
// JS/TS
|
|
39
|
+
"import_statement",
|
|
40
|
+
"interface_declaration",
|
|
41
|
+
"type_alias_declaration",
|
|
42
|
+
"enum_declaration",
|
|
43
|
+
// Python
|
|
44
|
+
"import_from_statement",
|
|
45
|
+
// Go
|
|
46
|
+
"import_declaration",
|
|
47
|
+
// Rust
|
|
48
|
+
"use_declaration",
|
|
49
|
+
// Java/Kotlin/C#
|
|
50
|
+
"import_declaration",
|
|
51
|
+
// C/C++
|
|
52
|
+
"preproc_include",
|
|
53
|
+
"preproc_def",
|
|
54
|
+
]);
|
|
55
|
+
/**
|
|
56
|
+
* Node types for functions/classes/methods that have a body to elide.
|
|
57
|
+
*/
|
|
58
|
+
const FUNCTION_LIKE_TYPES = new Set([
|
|
59
|
+
// JS/TS
|
|
60
|
+
"function_declaration",
|
|
61
|
+
"class_declaration",
|
|
62
|
+
"method_definition",
|
|
63
|
+
// Python
|
|
64
|
+
"function_definition",
|
|
65
|
+
"class_definition",
|
|
66
|
+
// Go
|
|
67
|
+
"function_declaration",
|
|
68
|
+
"method_declaration",
|
|
69
|
+
// Rust
|
|
70
|
+
"function_item",
|
|
71
|
+
"impl_item",
|
|
72
|
+
"struct_item",
|
|
73
|
+
// Java/Kotlin/C#
|
|
74
|
+
"method_declaration",
|
|
75
|
+
"constructor_declaration",
|
|
76
|
+
// C/C++
|
|
77
|
+
"function_definition",
|
|
78
|
+
]);
|
|
79
|
+
/**
|
|
80
|
+
* Node types that represent function/class bodies across languages.
|
|
81
|
+
*/
|
|
82
|
+
const BODY_TYPES = new Set([
|
|
83
|
+
// JS/TS
|
|
84
|
+
"statement_block",
|
|
85
|
+
// Python
|
|
86
|
+
"block",
|
|
87
|
+
// Go, Rust, Java, C#, C/C++
|
|
88
|
+
"block",
|
|
89
|
+
"compound_statement",
|
|
90
|
+
"declaration_list",
|
|
91
|
+
"field_declaration_list",
|
|
92
|
+
"class_body",
|
|
93
|
+
]);
|
|
20
94
|
export function extractSkeletonFromNode(node, content, includeIdentifiers, depth = 0, exportedOnly = false) {
|
|
21
95
|
const nodeType = node.type;
|
|
22
|
-
|
|
96
|
+
// Root containers: process children
|
|
97
|
+
if (ROOT_CONTAINER_TYPES.has(nodeType)) {
|
|
23
98
|
let result = "";
|
|
99
|
+
// First pass: imports
|
|
24
100
|
for (const child of node.children) {
|
|
25
|
-
if (child.type === "
|
|
26
|
-
child.type === "export_statement") {
|
|
101
|
+
if (VERBATIM_TYPES.has(child.type) || child.type === "export_statement") {
|
|
27
102
|
result += extractSkeletonFromNode(child, content, includeIdentifiers, depth, exportedOnly);
|
|
28
103
|
}
|
|
29
104
|
}
|
|
105
|
+
// Second pass: non-imports
|
|
30
106
|
if (!exportedOnly) {
|
|
31
107
|
for (const child of node.children) {
|
|
32
|
-
if (child.type
|
|
108
|
+
if (!VERBATIM_TYPES.has(child.type) &&
|
|
33
109
|
child.type !== "export_statement") {
|
|
34
110
|
result += extractSkeletonFromNode(child, content, includeIdentifiers, depth, exportedOnly);
|
|
35
111
|
}
|
|
@@ -37,12 +113,15 @@ export function extractSkeletonFromNode(node, content, includeIdentifiers, depth
|
|
|
37
113
|
}
|
|
38
114
|
return result;
|
|
39
115
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
nodeType === "type_alias_declaration" ||
|
|
43
|
-
nodeType === "enum_declaration") {
|
|
116
|
+
// Verbatim types: render as-is
|
|
117
|
+
if (VERBATIM_TYPES.has(nodeType)) {
|
|
44
118
|
return node.text + "\n";
|
|
45
119
|
}
|
|
120
|
+
// Python: import_statement (different from JS import_statement handled above)
|
|
121
|
+
if (nodeType === "import_statement" && !node.text.startsWith("import {")) {
|
|
122
|
+
return node.text + "\n";
|
|
123
|
+
}
|
|
124
|
+
// Export statement (JS/TS)
|
|
46
125
|
if (nodeType === "export_statement") {
|
|
47
126
|
let result = "export ";
|
|
48
127
|
for (const child of node.children) {
|
|
@@ -52,6 +131,7 @@ export function extractSkeletonFromNode(node, content, includeIdentifiers, depth
|
|
|
52
131
|
}
|
|
53
132
|
return result;
|
|
54
133
|
}
|
|
134
|
+
// Variable declaration (JS/TS)
|
|
55
135
|
if (nodeType === "variable_declaration") {
|
|
56
136
|
const isExported = node.children.some((c) => c.type === "export_clause" || c.text === "export");
|
|
57
137
|
if (isExported) {
|
|
@@ -64,23 +144,59 @@ export function extractSkeletonFromNode(node, content, includeIdentifiers, depth
|
|
|
64
144
|
}
|
|
65
145
|
return "";
|
|
66
146
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
147
|
+
// Python: decorated_definition — unwrap and process the inner definition
|
|
148
|
+
if (nodeType === "decorated_definition") {
|
|
149
|
+
let result = "";
|
|
150
|
+
for (const child of node.children) {
|
|
151
|
+
if (child.type === "decorator") {
|
|
152
|
+
result += child.text + "\n";
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
result += extractSkeletonFromNode(child, content, includeIdentifiers, depth, exportedOnly);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return result;
|
|
159
|
+
}
|
|
160
|
+
// Rust: type declarations rendered verbatim
|
|
161
|
+
if (nodeType === "struct_item" ||
|
|
162
|
+
nodeType === "enum_item" ||
|
|
163
|
+
nodeType === "trait_item" ||
|
|
164
|
+
nodeType === "type_item") {
|
|
70
165
|
const lines = node.text.split("\n");
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return node.text + "\n";
|
|
166
|
+
if (lines.length > 5) {
|
|
167
|
+
const firstLine = lines[0] || "";
|
|
168
|
+
return firstLine + "\n// …\n";
|
|
75
169
|
}
|
|
76
|
-
|
|
170
|
+
return node.text + "\n";
|
|
171
|
+
}
|
|
172
|
+
// Go: type_declaration rendered verbatim
|
|
173
|
+
if (nodeType === "type_declaration") {
|
|
174
|
+
const lines = node.text.split("\n");
|
|
175
|
+
if (lines.length > 5) {
|
|
176
|
+
const firstLine = lines[0] || "";
|
|
177
|
+
return firstLine + "\n// …\n";
|
|
178
|
+
}
|
|
179
|
+
return node.text + "\n";
|
|
180
|
+
}
|
|
181
|
+
// Function/class/method-like types: extract signature + elide body
|
|
182
|
+
if (FUNCTION_LIKE_TYPES.has(nodeType)) {
|
|
183
|
+
const lines = node.text.split("\n");
|
|
184
|
+
const signature = lines[0] || "";
|
|
185
|
+
// Find the body node using the language-agnostic body type set
|
|
186
|
+
const bodyNode = node.children.find((c) => BODY_TYPES.has(c.type));
|
|
77
187
|
if (!bodyNode) {
|
|
188
|
+
// No body (e.g., abstract method, forward declaration)
|
|
78
189
|
return node.text + "\n";
|
|
79
190
|
}
|
|
80
191
|
const bodySkeleton = extractSkeletonFromBody(bodyNode, content, includeIdentifiers);
|
|
192
|
+
// Python uses indentation, not braces
|
|
193
|
+
if (nodeType === "function_definition" || nodeType === "class_definition") {
|
|
194
|
+
return signature + "\n" + bodySkeleton;
|
|
195
|
+
}
|
|
81
196
|
const result = signature + " {\n" + bodySkeleton + "}\n";
|
|
82
197
|
return result;
|
|
83
198
|
}
|
|
199
|
+
// Arrow function (JS/TS)
|
|
84
200
|
if (nodeType === "arrow_function") {
|
|
85
201
|
const lines = node.text.split("\n");
|
|
86
202
|
const signature = lines[0] || "";
|
|
@@ -95,11 +211,26 @@ export function extractSkeletonFromNode(node, content, includeIdentifiers, depth
|
|
|
95
211
|
const bodySkeleton = extractSkeletonFromBody(bodyNode, content, includeIdentifiers);
|
|
96
212
|
return signature + " {\n" + bodySkeleton + "}";
|
|
97
213
|
}
|
|
98
|
-
|
|
214
|
+
// Body blocks: delegate to body extraction
|
|
215
|
+
if (BODY_TYPES.has(nodeType)) {
|
|
99
216
|
return extractSkeletonFromBody(node, content, includeIdentifiers);
|
|
100
217
|
}
|
|
101
218
|
return node.text;
|
|
102
219
|
}
|
|
220
|
+
/**
|
|
221
|
+
* Node types that represent return/throw/raise across languages.
|
|
222
|
+
*/
|
|
223
|
+
const RETURN_LIKE_TYPES = new Set([
|
|
224
|
+
"return_statement",
|
|
225
|
+
"throw_statement",
|
|
226
|
+
// Python
|
|
227
|
+
"return_statement",
|
|
228
|
+
"raise_statement",
|
|
229
|
+
// Go
|
|
230
|
+
"return_statement",
|
|
231
|
+
// Rust
|
|
232
|
+
"return_expression",
|
|
233
|
+
]);
|
|
103
234
|
function extractSkeletonFromBody(bodyNode, content, includeIdentifiers) {
|
|
104
235
|
let result = "";
|
|
105
236
|
const lines = bodyNode.text.split("\n");
|
|
@@ -110,6 +241,14 @@ function extractSkeletonFromBody(bodyNode, content, includeIdentifiers) {
|
|
|
110
241
|
for (const child of bodyNode.children) {
|
|
111
242
|
const childType = child.type;
|
|
112
243
|
const childText = child.text.trim();
|
|
244
|
+
// Skip whitespace/comment-only nodes
|
|
245
|
+
if (!childText ||
|
|
246
|
+
childType === "comment" ||
|
|
247
|
+
childType === "line_comment" ||
|
|
248
|
+
childType === "block_comment") {
|
|
249
|
+
continue;
|
|
250
|
+
}
|
|
251
|
+
// Lexical declarations (JS/TS: const/let/var)
|
|
113
252
|
if (childType === "lexical_declaration") {
|
|
114
253
|
const hasImportantIdentifier = includeIdentifiers.some((id) => childText.includes(id));
|
|
115
254
|
if (hasImportantIdentifier) {
|
|
@@ -117,8 +256,9 @@ function extractSkeletonFromBody(bodyNode, content, includeIdentifiers) {
|
|
|
117
256
|
processedStatements++;
|
|
118
257
|
}
|
|
119
258
|
}
|
|
259
|
+
// Expression statements (common across languages)
|
|
120
260
|
else if (childType === "expression_statement") {
|
|
121
|
-
const isReturn = child.children.some((c) => c.type
|
|
261
|
+
const isReturn = child.children.some((c) => RETURN_LIKE_TYPES.has(c.type));
|
|
122
262
|
const isThrow = child.children.some((c) => c.type === "throw_statement");
|
|
123
263
|
const hasImportantIdentifier = includeIdentifiers.some((id) => childText.includes(id)) ||
|
|
124
264
|
shouldIncludeIdentifier(childText, includeIdentifiers);
|
|
@@ -127,10 +267,17 @@ function extractSkeletonFromBody(bodyNode, content, includeIdentifiers) {
|
|
|
127
267
|
processedStatements++;
|
|
128
268
|
}
|
|
129
269
|
}
|
|
130
|
-
|
|
131
|
-
|
|
270
|
+
// Return/raise/throw statements (when they appear directly, not inside expression_statement)
|
|
271
|
+
else if (RETURN_LIKE_TYPES.has(childType)) {
|
|
272
|
+
result += child.text.trim() + "\n";
|
|
273
|
+
processedStatements++;
|
|
274
|
+
}
|
|
275
|
+
// If statements (language-agnostic)
|
|
276
|
+
else if (childType === "if_statement" || childType === "if_expression") {
|
|
277
|
+
const condition = child.children.find((c) => c.type === "parenthesized_expression" ||
|
|
278
|
+
c.type === "condition_clause");
|
|
132
279
|
const conditionText = condition ? condition.text : "";
|
|
133
|
-
const thenBlock = child.children.find((c) => c.type
|
|
280
|
+
const thenBlock = child.children.find((c) => BODY_TYPES.has(c.type));
|
|
134
281
|
const elseBlock = child.children.find((c) => c.text.startsWith("else"));
|
|
135
282
|
let ifLine = "if " + conditionText;
|
|
136
283
|
if (thenBlock) {
|
|
@@ -138,7 +285,7 @@ function extractSkeletonFromBody(bodyNode, content, includeIdentifiers) {
|
|
|
138
285
|
ifLine += " {\n" + thenSkeleton + "}";
|
|
139
286
|
}
|
|
140
287
|
if (elseBlock) {
|
|
141
|
-
const elseChild = elseBlock.children.find((c) => c.type
|
|
288
|
+
const elseChild = elseBlock.children.find((c) => BODY_TYPES.has(c.type));
|
|
142
289
|
if (elseChild) {
|
|
143
290
|
const elseSkeleton = extractSkeletonFromBody(elseChild, content, includeIdentifiers);
|
|
144
291
|
ifLine += " else {\n" + elseSkeleton + "}";
|
|
@@ -147,14 +294,18 @@ function extractSkeletonFromBody(bodyNode, content, includeIdentifiers) {
|
|
|
147
294
|
result += ifLine + "\n";
|
|
148
295
|
processedStatements++;
|
|
149
296
|
}
|
|
297
|
+
// Loop statements (language-agnostic)
|
|
150
298
|
else if (childType === "for_statement" ||
|
|
151
299
|
childType === "for_in_statement" ||
|
|
152
|
-
childType === "while_statement"
|
|
300
|
+
childType === "while_statement" ||
|
|
301
|
+
childType === "for_expression" ||
|
|
302
|
+
childType === "while_expression") {
|
|
153
303
|
const condition = child.children.find((c) => c.type === "parenthesized_expression");
|
|
154
304
|
const conditionText = condition ? condition.text : "";
|
|
155
|
-
const body = child.children.find((c) => c.type
|
|
305
|
+
const body = child.children.find((c) => BODY_TYPES.has(c.type));
|
|
156
306
|
const loopKeyword = childType
|
|
157
307
|
.replace("_statement", "")
|
|
308
|
+
.replace("_expression", "")
|
|
158
309
|
.replace("_in", "");
|
|
159
310
|
let loopLine = loopKeyword + " " + conditionText;
|
|
160
311
|
if (body) {
|
|
@@ -164,12 +315,30 @@ function extractSkeletonFromBody(bodyNode, content, includeIdentifiers) {
|
|
|
164
315
|
result += loopLine + "\n";
|
|
165
316
|
processedStatements++;
|
|
166
317
|
}
|
|
318
|
+
// Try/catch/finally (language-agnostic)
|
|
167
319
|
else if (childType === "try_statement" ||
|
|
168
320
|
childType === "catch_clause" ||
|
|
321
|
+
childType === "except_clause" ||
|
|
169
322
|
childType === "finally_clause") {
|
|
170
323
|
result += child.text.trim() + "\n";
|
|
171
324
|
processedStatements++;
|
|
172
325
|
}
|
|
326
|
+
// Nested function/class definitions (Python, Go, Rust)
|
|
327
|
+
else if (FUNCTION_LIKE_TYPES.has(childType) ||
|
|
328
|
+
childType === "decorated_definition") {
|
|
329
|
+
result +=
|
|
330
|
+
extractSkeletonFromNode(child, content, includeIdentifiers, 1) + "\n";
|
|
331
|
+
processedStatements++;
|
|
332
|
+
}
|
|
333
|
+
// Assignment (Python)
|
|
334
|
+
else if (childType === "assignment" ||
|
|
335
|
+
childType === "short_var_declaration") {
|
|
336
|
+
const hasImportantIdentifier = includeIdentifiers.some((id) => childText.includes(id));
|
|
337
|
+
if (hasImportantIdentifier) {
|
|
338
|
+
result += child.text.trim() + "\n";
|
|
339
|
+
processedStatements++;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
173
342
|
}
|
|
174
343
|
if (processedStatements === 0 && lines.length > 3) {
|
|
175
344
|
return "// …\n";
|
|
@@ -207,15 +376,30 @@ export function trimSkeletonToBounds(skeleton, maxLines, maxTokens) {
|
|
|
207
376
|
const truncated = result.length < lines.length;
|
|
208
377
|
return { code: result.join("\n"), truncated };
|
|
209
378
|
}
|
|
379
|
+
/**
|
|
380
|
+
* Maps file extensions to grammarLoader language IDs for non-JS/TS languages.
|
|
381
|
+
* JS/TS uses the dedicated tsParser/tsxParser (which handle JSX/TSX correctly).
|
|
382
|
+
*/
|
|
383
|
+
const EXTENSION_TO_LANGUAGE = {
|
|
384
|
+
".py": "python",
|
|
385
|
+
".go": "go",
|
|
386
|
+
".java": "java",
|
|
387
|
+
".rs": "rust",
|
|
388
|
+
".cs": "csharp",
|
|
389
|
+
".c": "c",
|
|
390
|
+
".h": "c",
|
|
391
|
+
".cpp": "cpp",
|
|
392
|
+
".cc": "cpp",
|
|
393
|
+
".cxx": "cpp",
|
|
394
|
+
".hpp": "cpp",
|
|
395
|
+
".php": "php",
|
|
396
|
+
".kt": "kotlin",
|
|
397
|
+
".kts": "kotlin",
|
|
398
|
+
".sh": "bash",
|
|
399
|
+
".bash": "bash",
|
|
400
|
+
};
|
|
210
401
|
export function parseFile(content, extension) {
|
|
211
402
|
try {
|
|
212
|
-
const isTS = extension === ".ts";
|
|
213
|
-
const isTSX = extension === ".tsx";
|
|
214
|
-
const isJS = extension === ".js";
|
|
215
|
-
const isJSX = extension === ".jsx";
|
|
216
|
-
if (!isTS && !isTSX && !isJS && !isJSX) {
|
|
217
|
-
return null;
|
|
218
|
-
}
|
|
219
403
|
// Guard: reject content exceeding the tree-sitter safety limit.
|
|
220
404
|
// Buffer.byteLength is more accurate than .length for multi-byte chars.
|
|
221
405
|
const byteLength = Buffer.byteLength(content, "utf-8");
|
|
@@ -227,7 +411,33 @@ export function parseFile(content, extension) {
|
|
|
227
411
|
});
|
|
228
412
|
return null;
|
|
229
413
|
}
|
|
230
|
-
|
|
414
|
+
// JS/TS: use dedicated parsers (handle JSX/TSX correctly)
|
|
415
|
+
const isTS = extension === ".ts";
|
|
416
|
+
const isTSX = extension === ".tsx";
|
|
417
|
+
const isJS = extension === ".js";
|
|
418
|
+
const isJSX = extension === ".jsx";
|
|
419
|
+
let parser = null;
|
|
420
|
+
if (isTS || isTSX || isJS || isJSX) {
|
|
421
|
+
parser = isTS || isJS ? tsParser : tsxParser;
|
|
422
|
+
}
|
|
423
|
+
else {
|
|
424
|
+
// All other languages: use the shared grammarLoader
|
|
425
|
+
const language = EXTENSION_TO_LANGUAGE[extension];
|
|
426
|
+
if (!language) {
|
|
427
|
+
logger.debug("No grammar available for skeleton generation", {
|
|
428
|
+
extension,
|
|
429
|
+
});
|
|
430
|
+
return null;
|
|
431
|
+
}
|
|
432
|
+
parser = getGrammarParser(language);
|
|
433
|
+
if (!parser) {
|
|
434
|
+
logger.debug("Grammar parser not loaded for skeleton generation", {
|
|
435
|
+
extension,
|
|
436
|
+
language,
|
|
437
|
+
});
|
|
438
|
+
return null;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
231
441
|
// Use 1MB buffer to handle files >32KB (tree-sitter default limit)
|
|
232
442
|
const tree = parser.parse(content, undefined, {
|
|
233
443
|
bufferSize: 1024 * 1024,
|
|
@@ -285,7 +495,12 @@ export async function generateSymbolSkeleton(repoId, symbolId, options = {}) {
|
|
|
285
495
|
return null;
|
|
286
496
|
}
|
|
287
497
|
}
|
|
288
|
-
catch {
|
|
498
|
+
catch (error) {
|
|
499
|
+
logger.debug("Failed to stat file during symbol skeleton generation", {
|
|
500
|
+
file: file.relPath,
|
|
501
|
+
symbolId,
|
|
502
|
+
error: error instanceof Error ? error.message : String(error),
|
|
503
|
+
});
|
|
289
504
|
return null;
|
|
290
505
|
}
|
|
291
506
|
const content = await readFile(filePath, "utf-8");
|
|
@@ -348,7 +563,11 @@ export async function generateFileSkeleton(repoId, filePath, exportedOnly = fals
|
|
|
348
563
|
return null;
|
|
349
564
|
}
|
|
350
565
|
}
|
|
351
|
-
catch {
|
|
566
|
+
catch (error) {
|
|
567
|
+
logger.debug("Failed to stat file during file skeleton generation", {
|
|
568
|
+
file: filePath,
|
|
569
|
+
error: error instanceof Error ? error.message : String(error),
|
|
570
|
+
});
|
|
352
571
|
return null;
|
|
353
572
|
}
|
|
354
573
|
const content = await readFile(absPath, "utf-8");
|
|
@@ -617,7 +836,12 @@ export async function generateSkeletonIR(repoId, symbolId, options = {}) {
|
|
|
617
836
|
return null;
|
|
618
837
|
}
|
|
619
838
|
}
|
|
620
|
-
catch {
|
|
839
|
+
catch (error) {
|
|
840
|
+
logger.debug("Failed to stat file during skeleton IR generation", {
|
|
841
|
+
file: file.relPath,
|
|
842
|
+
symbolId,
|
|
843
|
+
error: error instanceof Error ? error.message : String(error),
|
|
844
|
+
});
|
|
621
845
|
return null;
|
|
622
846
|
}
|
|
623
847
|
const content = await readFile(filePath, "utf-8");
|