src-mcp 1.0.1 → 1.0.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/README.md +8 -18
- package/dist/bin.d.mts +1 -0
- package/dist/bin.mjs +205 -0
- package/dist/bin.mjs.map +1 -0
- package/dist/index.d.mts +1 -0
- package/dist/index.mjs +8 -0
- package/dist/index.mjs.map +1 -0
- package/dist/server-DL8hfycz.mjs +3791 -0
- package/dist/server-DL8hfycz.mjs.map +1 -0
- package/package.json +10 -9
- package/dist/bin.d.ts +0 -3
- package/dist/bin.d.ts.map +0 -1
- package/dist/bin.js +0 -4
- package/dist/bin.js.map +0 -1
- package/dist/cli/adapter.d.ts +0 -7
- package/dist/cli/adapter.d.ts.map +0 -1
- package/dist/cli/adapter.js +0 -39
- package/dist/cli/adapter.js.map +0 -1
- package/dist/cli/commands/index.d.ts +0 -24
- package/dist/cli/commands/index.d.ts.map +0 -1
- package/dist/cli/commands/index.js +0 -13
- package/dist/cli/commands/index.js.map +0 -1
- package/dist/cli/commands/serve.command.d.ts +0 -21
- package/dist/cli/commands/serve.command.d.ts.map +0 -1
- package/dist/cli/commands/serve.command.js +0 -62
- package/dist/cli/commands/serve.command.js.map +0 -1
- package/dist/cli/commands/version.command.d.ts +0 -2
- package/dist/cli/commands/version.command.d.ts.map +0 -1
- package/dist/cli/commands/version.command.js +0 -12
- package/dist/cli/commands/version.command.js.map +0 -1
- package/dist/cli/index.d.ts +0 -2
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -15
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/parser.d.ts +0 -7
- package/dist/cli/parser.d.ts.map +0 -1
- package/dist/cli/parser.js +0 -99
- package/dist/cli/parser.js.map +0 -1
- package/dist/config/index.d.ts +0 -24
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -38
- package/dist/config/index.js.map +0 -1
- package/dist/core/ast/index.d.ts +0 -82
- package/dist/core/ast/index.d.ts.map +0 -1
- package/dist/core/ast/index.js +0 -204
- package/dist/core/ast/index.js.map +0 -1
- package/dist/core/ast/types.d.ts +0 -152
- package/dist/core/ast/types.d.ts.map +0 -1
- package/dist/core/ast/types.js +0 -5
- package/dist/core/ast/types.js.map +0 -1
- package/dist/core/constants.d.ts +0 -17
- package/dist/core/constants.d.ts.map +0 -1
- package/dist/core/constants.js +0 -49
- package/dist/core/constants.js.map +0 -1
- package/dist/core/embeddings/callgraph.d.ts +0 -98
- package/dist/core/embeddings/callgraph.d.ts.map +0 -1
- package/dist/core/embeddings/callgraph.js +0 -415
- package/dist/core/embeddings/callgraph.js.map +0 -1
- package/dist/core/embeddings/chunker.d.ts +0 -37
- package/dist/core/embeddings/chunker.d.ts.map +0 -1
- package/dist/core/embeddings/chunker.js +0 -298
- package/dist/core/embeddings/chunker.js.map +0 -1
- package/dist/core/embeddings/client.d.ts +0 -30
- package/dist/core/embeddings/client.d.ts.map +0 -1
- package/dist/core/embeddings/client.js +0 -65
- package/dist/core/embeddings/client.js.map +0 -1
- package/dist/core/embeddings/crossfile.d.ts +0 -58
- package/dist/core/embeddings/crossfile.d.ts.map +0 -1
- package/dist/core/embeddings/crossfile.js +0 -202
- package/dist/core/embeddings/crossfile.js.map +0 -1
- package/dist/core/embeddings/enricher.d.ts +0 -53
- package/dist/core/embeddings/enricher.d.ts.map +0 -1
- package/dist/core/embeddings/enricher.js +0 -308
- package/dist/core/embeddings/enricher.js.map +0 -1
- package/dist/core/embeddings/index.d.ts +0 -13
- package/dist/core/embeddings/index.d.ts.map +0 -1
- package/dist/core/embeddings/index.js +0 -20
- package/dist/core/embeddings/index.js.map +0 -1
- package/dist/core/embeddings/reranker.d.ts +0 -41
- package/dist/core/embeddings/reranker.d.ts.map +0 -1
- package/dist/core/embeddings/reranker.js +0 -117
- package/dist/core/embeddings/reranker.js.map +0 -1
- package/dist/core/embeddings/store.d.ts +0 -93
- package/dist/core/embeddings/store.d.ts.map +0 -1
- package/dist/core/embeddings/store.js +0 -304
- package/dist/core/embeddings/store.js.map +0 -1
- package/dist/core/embeddings/types.d.ts +0 -77
- package/dist/core/embeddings/types.d.ts.map +0 -1
- package/dist/core/embeddings/types.js +0 -5
- package/dist/core/embeddings/types.js.map +0 -1
- package/dist/core/embeddings/watcher.d.ts +0 -130
- package/dist/core/embeddings/watcher.d.ts.map +0 -1
- package/dist/core/embeddings/watcher.js +0 -448
- package/dist/core/embeddings/watcher.js.map +0 -1
- package/dist/core/fallback/index.d.ts +0 -26
- package/dist/core/fallback/index.d.ts.map +0 -1
- package/dist/core/fallback/index.js +0 -76
- package/dist/core/fallback/index.js.map +0 -1
- package/dist/core/parser/index.d.ts +0 -64
- package/dist/core/parser/index.d.ts.map +0 -1
- package/dist/core/parser/index.js +0 -205
- package/dist/core/parser/index.js.map +0 -1
- package/dist/core/parser/languages.d.ts +0 -26
- package/dist/core/parser/languages.d.ts.map +0 -1
- package/dist/core/parser/languages.js +0 -101
- package/dist/core/parser/languages.js.map +0 -1
- package/dist/core/queries/helpers.d.ts +0 -72
- package/dist/core/queries/helpers.d.ts.map +0 -1
- package/dist/core/queries/helpers.js +0 -101
- package/dist/core/queries/helpers.js.map +0 -1
- package/dist/core/queries/index.d.ts +0 -144
- package/dist/core/queries/index.d.ts.map +0 -1
- package/dist/core/queries/index.js +0 -396
- package/dist/core/queries/index.js.map +0 -1
- package/dist/core/queries/loader.d.ts +0 -46
- package/dist/core/queries/loader.d.ts.map +0 -1
- package/dist/core/queries/loader.js +0 -216
- package/dist/core/queries/loader.js.map +0 -1
- package/dist/core/queries/patterns.d.ts +0 -10
- package/dist/core/queries/patterns.d.ts.map +0 -1
- package/dist/core/queries/patterns.js +0 -112
- package/dist/core/queries/patterns.js.map +0 -1
- package/dist/core/symbols/index.d.ts +0 -70
- package/dist/core/symbols/index.d.ts.map +0 -1
- package/dist/core/symbols/index.js +0 -359
- package/dist/core/symbols/index.js.map +0 -1
- package/dist/core/unified/index.d.ts +0 -118
- package/dist/core/unified/index.d.ts.map +0 -1
- package/dist/core/unified/index.js +0 -428
- package/dist/core/unified/index.js.map +0 -1
- package/dist/core/utils/assets.d.ts +0 -34
- package/dist/core/utils/assets.d.ts.map +0 -1
- package/dist/core/utils/assets.js +0 -85
- package/dist/core/utils/assets.js.map +0 -1
- package/dist/core/utils/cache.d.ts +0 -43
- package/dist/core/utils/cache.d.ts.map +0 -1
- package/dist/core/utils/cache.js +0 -60
- package/dist/core/utils/cache.js.map +0 -1
- package/dist/core/utils/index.d.ts +0 -7
- package/dist/core/utils/index.d.ts.map +0 -1
- package/dist/core/utils/index.js +0 -10
- package/dist/core/utils/index.js.map +0 -1
- package/dist/core/utils/tsconfig.d.ts +0 -34
- package/dist/core/utils/tsconfig.d.ts.map +0 -1
- package/dist/core/utils/tsconfig.js +0 -173
- package/dist/core/utils/tsconfig.js.map +0 -1
- package/dist/features/analyze-file/index.d.ts +0 -15
- package/dist/features/analyze-file/index.d.ts.map +0 -1
- package/dist/features/analyze-file/index.js +0 -164
- package/dist/features/analyze-file/index.js.map +0 -1
- package/dist/features/get-call-graph/index.d.ts +0 -24
- package/dist/features/get-call-graph/index.d.ts.map +0 -1
- package/dist/features/get-call-graph/index.js +0 -246
- package/dist/features/get-call-graph/index.js.map +0 -1
- package/dist/features/get-index-status/index.d.ts +0 -20
- package/dist/features/get-index-status/index.d.ts.map +0 -1
- package/dist/features/get-index-status/index.js +0 -90
- package/dist/features/get-index-status/index.js.map +0 -1
- package/dist/features/index-codebase/index.d.ts +0 -24
- package/dist/features/index-codebase/index.d.ts.map +0 -1
- package/dist/features/index-codebase/index.js +0 -283
- package/dist/features/index-codebase/index.js.map +0 -1
- package/dist/features/index.d.ts +0 -15
- package/dist/features/index.d.ts.map +0 -1
- package/dist/features/index.js +0 -28
- package/dist/features/index.js.map +0 -1
- package/dist/features/info/index.d.ts +0 -19
- package/dist/features/info/index.d.ts.map +0 -1
- package/dist/features/info/index.js +0 -41
- package/dist/features/info/index.js.map +0 -1
- package/dist/features/list-symbols/index.d.ts +0 -22
- package/dist/features/list-symbols/index.d.ts.map +0 -1
- package/dist/features/list-symbols/index.js +0 -74
- package/dist/features/list-symbols/index.js.map +0 -1
- package/dist/features/parse-ast/index.d.ts +0 -12
- package/dist/features/parse-ast/index.d.ts.map +0 -1
- package/dist/features/parse-ast/index.js +0 -71
- package/dist/features/parse-ast/index.js.map +0 -1
- package/dist/features/query-code/index.d.ts +0 -23
- package/dist/features/query-code/index.d.ts.map +0 -1
- package/dist/features/query-code/index.js +0 -96
- package/dist/features/query-code/index.js.map +0 -1
- package/dist/features/search-code/index.d.ts +0 -39
- package/dist/features/search-code/index.d.ts.map +0 -1
- package/dist/features/search-code/index.js +0 -258
- package/dist/features/search-code/index.js.map +0 -1
- package/dist/features/types.d.ts +0 -14
- package/dist/features/types.d.ts.map +0 -1
- package/dist/features/types.js +0 -2
- package/dist/features/types.js.map +0 -1
- package/dist/features/update-index/index.d.ts +0 -24
- package/dist/features/update-index/index.d.ts.map +0 -1
- package/dist/features/update-index/index.js +0 -358
- package/dist/features/update-index/index.js.map +0 -1
- package/dist/features/utils/content.d.ts +0 -30
- package/dist/features/utils/content.d.ts.map +0 -1
- package/dist/features/utils/content.js +0 -49
- package/dist/features/utils/content.js.map +0 -1
- package/dist/features/utils/index.d.ts +0 -6
- package/dist/features/utils/index.d.ts.map +0 -1
- package/dist/features/utils/index.js +0 -8
- package/dist/features/utils/index.js.map +0 -1
- package/dist/features/utils/result.d.ts +0 -37
- package/dist/features/utils/result.d.ts.map +0 -1
- package/dist/features/utils/result.js +0 -53
- package/dist/features/utils/result.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -4
- package/dist/index.js.map +0 -1
- package/dist/prompts/index.d.ts +0 -9
- package/dist/prompts/index.d.ts.map +0 -1
- package/dist/prompts/index.js +0 -188
- package/dist/prompts/index.js.map +0 -1
- package/dist/resources/index.d.ts +0 -3
- package/dist/resources/index.d.ts.map +0 -1
- package/dist/resources/index.js +0 -17
- package/dist/resources/index.js.map +0 -1
- package/dist/server.d.ts +0 -4
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -24
- package/dist/server.js.map +0 -1
- package/dist/tools/adapter.d.ts +0 -4
- package/dist/tools/adapter.d.ts.map +0 -1
- package/dist/tools/adapter.js +0 -28
- package/dist/tools/adapter.js.map +0 -1
- package/dist/tools/index.d.ts +0 -5
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -9
- package/dist/tools/index.js.map +0 -1
- package/dist/types/index.d.ts +0 -20
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -2
- package/dist/types/index.js.map +0 -1
- package/dist/utils/colors.d.ts +0 -24
- package/dist/utils/colors.d.ts.map +0 -1
- package/dist/utils/colors.js +0 -30
- package/dist/utils/colors.js.map +0 -1
- package/dist/utils/index.d.ts +0 -4
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -4
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -8
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -57
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/spinner.d.ts +0 -11
- package/dist/utils/spinner.d.ts.map +0 -1
- package/dist/utils/spinner.js +0 -36
- package/dist/utils/spinner.js.map +0 -1
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import type { Language, Tree } from "web-tree-sitter";
|
|
2
|
-
import type { ASTNode } from "@core/ast/types";
|
|
3
|
-
import { type TextChunk } from "@core/fallback";
|
|
4
|
-
/** Clear caches (for testing) */
|
|
5
|
-
export declare function clearUnifiedCache(): void;
|
|
6
|
-
/**
|
|
7
|
-
* Unified parse result - works for both Tree-sitter and fallback
|
|
8
|
-
*/
|
|
9
|
-
export interface UnifiedParseResult {
|
|
10
|
-
/** Parsing method used */
|
|
11
|
-
method: "tree-sitter" | "langchain" | "generic";
|
|
12
|
-
/** Language detected */
|
|
13
|
-
language: string;
|
|
14
|
-
/** File path */
|
|
15
|
-
filePath: string;
|
|
16
|
-
/** Original content */
|
|
17
|
-
content: string;
|
|
18
|
-
/** Line count */
|
|
19
|
-
lineCount: number;
|
|
20
|
-
/** Tree-sitter tree (if available) */
|
|
21
|
-
tree?: Tree;
|
|
22
|
-
/** Language instance (if available) */
|
|
23
|
-
languageInstance?: Language;
|
|
24
|
-
/** AST root node (if available) */
|
|
25
|
-
ast?: ASTNode;
|
|
26
|
-
/** Text chunks (if using fallback) */
|
|
27
|
-
chunks?: TextChunk[];
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Unified symbol extraction result
|
|
31
|
-
*/
|
|
32
|
-
export interface UnifiedSymbols {
|
|
33
|
-
/** Extraction method used */
|
|
34
|
-
method: "tree-sitter" | "regex";
|
|
35
|
-
/** Functions found */
|
|
36
|
-
functions: UnifiedSymbol[];
|
|
37
|
-
/** Classes found */
|
|
38
|
-
classes: UnifiedSymbol[];
|
|
39
|
-
/** All symbols */
|
|
40
|
-
all: UnifiedSymbol[];
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Unified symbol representation
|
|
44
|
-
*/
|
|
45
|
-
export interface UnifiedSymbol {
|
|
46
|
-
name: string;
|
|
47
|
-
type: "function" | "method" | "class" | "interface" | "module" | "variable";
|
|
48
|
-
line: number;
|
|
49
|
-
endLine?: number;
|
|
50
|
-
signature?: string;
|
|
51
|
-
documentation?: string;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Parse options
|
|
55
|
-
*/
|
|
56
|
-
export interface UnifiedParseOptions {
|
|
57
|
-
/** Force a specific language (skip auto-detection) */
|
|
58
|
-
language?: string;
|
|
59
|
-
/** Include AST in result (Tree-sitter only, can be verbose) */
|
|
60
|
-
includeAst?: boolean;
|
|
61
|
-
/** Max AST depth (Tree-sitter only) */
|
|
62
|
-
astMaxDepth?: number;
|
|
63
|
-
/** Chunk size for fallback splitting */
|
|
64
|
-
chunkSize?: number;
|
|
65
|
-
/** Chunk overlap for fallback splitting */
|
|
66
|
-
chunkOverlap?: number;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Check if a file is binary based on extension
|
|
70
|
-
*/
|
|
71
|
-
export declare function isBinaryFile(filePath: string): boolean;
|
|
72
|
-
/**
|
|
73
|
-
* Detect language from file path (extended detection)
|
|
74
|
-
*/
|
|
75
|
-
export declare function detectLanguage(filePath: string): string;
|
|
76
|
-
/**
|
|
77
|
-
* Parse a file with automatic fallback
|
|
78
|
-
*
|
|
79
|
-
* 1. If Tree-sitter supports the language → full AST parsing
|
|
80
|
-
* 2. If LangChain supports the language → text splitting with language separators
|
|
81
|
-
* 3. LangChain generic → text splitting with default separators
|
|
82
|
-
* 4. If all fail → returns undefined (file is ignored)
|
|
83
|
-
*/
|
|
84
|
-
export declare function parseFile(filePath: string, options?: UnifiedParseOptions): Promise<UnifiedParseResult | undefined>;
|
|
85
|
-
/**
|
|
86
|
-
* Parse content directly (without file)
|
|
87
|
-
*
|
|
88
|
-
* Returns undefined if content cannot be parsed
|
|
89
|
-
*/
|
|
90
|
-
export declare function parseContent(content: string, language: string, options?: Omit<UnifiedParseOptions, "language">): Promise<Omit<UnifiedParseResult, "filePath"> | undefined>;
|
|
91
|
-
/**
|
|
92
|
-
* Extract symbols with automatic fallback
|
|
93
|
-
*
|
|
94
|
-
* 1. Tree-sitter → accurate AST-based extraction
|
|
95
|
-
* 2. Regex fallback → best-effort pattern matching
|
|
96
|
-
*/
|
|
97
|
-
export declare function extractSymbols(result: UnifiedParseResult): UnifiedSymbols;
|
|
98
|
-
/**
|
|
99
|
-
* Get a summary of parsing capabilities for a file
|
|
100
|
-
*/
|
|
101
|
-
export declare function getParsingCapabilities(filePath: string): {
|
|
102
|
-
language: string;
|
|
103
|
-
method: "tree-sitter" | "langchain" | "generic";
|
|
104
|
-
features: string[];
|
|
105
|
-
};
|
|
106
|
-
/**
|
|
107
|
-
* Check if a file can be parsed (not binary)
|
|
108
|
-
*/
|
|
109
|
-
export declare function canParse(filePath: string): boolean;
|
|
110
|
-
/**
|
|
111
|
-
* Get all supported languages with their parsing method
|
|
112
|
-
*/
|
|
113
|
-
export declare function getSupportedLanguagesInfo(): {
|
|
114
|
-
language: string;
|
|
115
|
-
method: "tree-sitter" | "langchain";
|
|
116
|
-
extensions: string[];
|
|
117
|
-
}[];
|
|
118
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/unified/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,428 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unified Parser Module
|
|
3
|
-
*
|
|
4
|
-
* Provides a single interface for code parsing with automatic fallback:
|
|
5
|
-
* 1. Tree-sitter (AST parsing) - for supported languages
|
|
6
|
-
* 2. LangChain text splitter - for unsupported languages but known file types
|
|
7
|
-
* 3. Generic text splitting - for any other text files
|
|
8
|
-
*/
|
|
9
|
-
import { readFileSync } from "fs";
|
|
10
|
-
import { extname } from "path";
|
|
11
|
-
import { isTextSplitterLanguage, splitCode, } from "@core/fallback";
|
|
12
|
-
import { getASTRoot, getLanguageFromPath, isLanguageSupported, parseCode, } from "@core/parser";
|
|
13
|
-
import { extractSymbolsFromTags, findClasses, findFunctions, } from "@core/queries";
|
|
14
|
-
import { DEFAULT_CHUNK_OVERLAP, DEFAULT_CHUNK_SIZE, SKIP_KEYWORDS, } from "@core/constants";
|
|
15
|
-
import { loadJsonConfig, registerCache } from "@core/utils";
|
|
16
|
-
// Config cache
|
|
17
|
-
let configCache = null;
|
|
18
|
-
let binaryExtensionsCache = null;
|
|
19
|
-
let extensionToLanguageCache = null;
|
|
20
|
-
let specialFilenamesCache = null;
|
|
21
|
-
function loadConfig() {
|
|
22
|
-
if (configCache) {
|
|
23
|
-
return configCache;
|
|
24
|
-
}
|
|
25
|
-
configCache = loadJsonConfig("languages.json", {
|
|
26
|
-
treesitter: {},
|
|
27
|
-
fallbackExtensions: {},
|
|
28
|
-
specialFilenames: {},
|
|
29
|
-
binaryExtensions: [],
|
|
30
|
-
});
|
|
31
|
-
return configCache;
|
|
32
|
-
}
|
|
33
|
-
function getBinaryExtensions() {
|
|
34
|
-
if (binaryExtensionsCache) {
|
|
35
|
-
return binaryExtensionsCache;
|
|
36
|
-
}
|
|
37
|
-
const config = loadConfig();
|
|
38
|
-
binaryExtensionsCache = new Set(config.binaryExtensions);
|
|
39
|
-
return binaryExtensionsCache;
|
|
40
|
-
}
|
|
41
|
-
function getExtensionToLanguage() {
|
|
42
|
-
if (extensionToLanguageCache) {
|
|
43
|
-
return extensionToLanguageCache;
|
|
44
|
-
}
|
|
45
|
-
const config = loadConfig();
|
|
46
|
-
extensionToLanguageCache = config.fallbackExtensions;
|
|
47
|
-
return extensionToLanguageCache;
|
|
48
|
-
}
|
|
49
|
-
function getSpecialFilenames() {
|
|
50
|
-
if (specialFilenamesCache) {
|
|
51
|
-
return specialFilenamesCache;
|
|
52
|
-
}
|
|
53
|
-
const config = loadConfig();
|
|
54
|
-
specialFilenamesCache = config.specialFilenames;
|
|
55
|
-
return specialFilenamesCache;
|
|
56
|
-
}
|
|
57
|
-
/** Clear caches (for testing) */
|
|
58
|
-
export function clearUnifiedCache() {
|
|
59
|
-
configCache = null;
|
|
60
|
-
binaryExtensionsCache = null;
|
|
61
|
-
extensionToLanguageCache = null;
|
|
62
|
-
specialFilenamesCache = null;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Extract a meaningful name from AST node text, skipping keywords
|
|
66
|
-
*/
|
|
67
|
-
function extractNameFromNode(text) {
|
|
68
|
-
// Split by common delimiters
|
|
69
|
-
const parts = text.split(/[(\s{<:=[\]]/);
|
|
70
|
-
// Find first non-keyword identifier
|
|
71
|
-
for (const part of parts) {
|
|
72
|
-
const trimmed = part.trim();
|
|
73
|
-
if (trimmed &&
|
|
74
|
-
!SKIP_KEYWORDS.has(trimmed.toLowerCase()) &&
|
|
75
|
-
/^[a-zA-Z_]/.test(trimmed)) {
|
|
76
|
-
return trimmed;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return "anonymous";
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Check if a file is binary based on extension
|
|
83
|
-
*/
|
|
84
|
-
export function isBinaryFile(filePath) {
|
|
85
|
-
const ext = extname(filePath).toLowerCase();
|
|
86
|
-
return getBinaryExtensions().has(ext);
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Detect language from file path (extended detection)
|
|
90
|
-
*/
|
|
91
|
-
export function detectLanguage(filePath) {
|
|
92
|
-
// First try Tree-sitter supported languages
|
|
93
|
-
const tsConfig = getLanguageFromPath(filePath);
|
|
94
|
-
if (tsConfig) {
|
|
95
|
-
return tsConfig.name;
|
|
96
|
-
}
|
|
97
|
-
// Then try extension mapping from config
|
|
98
|
-
const ext = extname(filePath).toLowerCase();
|
|
99
|
-
const extensionMap = getExtensionToLanguage();
|
|
100
|
-
const mappedLang = extensionMap[ext];
|
|
101
|
-
if (mappedLang) {
|
|
102
|
-
return mappedLang;
|
|
103
|
-
}
|
|
104
|
-
// Check for special filenames from config
|
|
105
|
-
const filename = filePath.split(/[/\\]/).pop()?.toLowerCase() ?? "";
|
|
106
|
-
const specialFilenames = getSpecialFilenames();
|
|
107
|
-
const specialLang = specialFilenames[filename];
|
|
108
|
-
if (specialLang) {
|
|
109
|
-
return specialLang;
|
|
110
|
-
}
|
|
111
|
-
// Check for patterns like .env.local, dockerfile.prod
|
|
112
|
-
if (filename.startsWith(".env.") || filename === ".env") {
|
|
113
|
-
return "env";
|
|
114
|
-
}
|
|
115
|
-
if (filename.startsWith("dockerfile.") || filename === "dockerfile") {
|
|
116
|
-
return "dockerfile";
|
|
117
|
-
}
|
|
118
|
-
return "text";
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Parse a file with automatic fallback
|
|
122
|
-
*
|
|
123
|
-
* 1. If Tree-sitter supports the language → full AST parsing
|
|
124
|
-
* 2. If LangChain supports the language → text splitting with language separators
|
|
125
|
-
* 3. LangChain generic → text splitting with default separators
|
|
126
|
-
* 4. If all fail → returns undefined (file is ignored)
|
|
127
|
-
*/
|
|
128
|
-
export async function parseFile(filePath, options = {}) {
|
|
129
|
-
// Check for binary files - ignore them
|
|
130
|
-
if (isBinaryFile(filePath)) {
|
|
131
|
-
return undefined;
|
|
132
|
-
}
|
|
133
|
-
// Read file content
|
|
134
|
-
let content;
|
|
135
|
-
try {
|
|
136
|
-
const rawContent = readFileSync(filePath, "utf-8");
|
|
137
|
-
// Normalize line endings (handle CRLF and CR)
|
|
138
|
-
content = rawContent.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
|
|
139
|
-
}
|
|
140
|
-
catch {
|
|
141
|
-
// Cannot read file - ignore
|
|
142
|
-
return undefined;
|
|
143
|
-
}
|
|
144
|
-
const lineCount = content.split("\n").length;
|
|
145
|
-
// Detect language
|
|
146
|
-
const language = options.language ?? detectLanguage(filePath);
|
|
147
|
-
// Try Tree-sitter first
|
|
148
|
-
if (isLanguageSupported(language)) {
|
|
149
|
-
try {
|
|
150
|
-
const parseResult = await parseCode(content, { language });
|
|
151
|
-
const result = {
|
|
152
|
-
method: "tree-sitter",
|
|
153
|
-
language: parseResult.language,
|
|
154
|
-
filePath,
|
|
155
|
-
content,
|
|
156
|
-
lineCount,
|
|
157
|
-
tree: parseResult.tree,
|
|
158
|
-
languageInstance: parseResult.languageInstance,
|
|
159
|
-
};
|
|
160
|
-
// Include AST if requested
|
|
161
|
-
if (options.includeAst) {
|
|
162
|
-
result.ast = getASTRoot(parseResult, options.astMaxDepth);
|
|
163
|
-
}
|
|
164
|
-
return result;
|
|
165
|
-
}
|
|
166
|
-
catch {
|
|
167
|
-
// Tree-sitter failed, fall through to LangChain
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
// Try LangChain with detected language
|
|
171
|
-
const { chunkSize = DEFAULT_CHUNK_SIZE, chunkOverlap = DEFAULT_CHUNK_OVERLAP, } = options;
|
|
172
|
-
if (isTextSplitterLanguage(language)) {
|
|
173
|
-
try {
|
|
174
|
-
const splitResult = await splitCode(content, language, {
|
|
175
|
-
chunkSize,
|
|
176
|
-
chunkOverlap,
|
|
177
|
-
});
|
|
178
|
-
return {
|
|
179
|
-
method: "langchain",
|
|
180
|
-
language,
|
|
181
|
-
filePath,
|
|
182
|
-
content,
|
|
183
|
-
lineCount,
|
|
184
|
-
chunks: splitResult.chunks,
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
catch {
|
|
188
|
-
// LangChain with language failed, try generic
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
// Try LangChain generic
|
|
192
|
-
try {
|
|
193
|
-
const splitResult = await splitCode(content, "generic", {
|
|
194
|
-
chunkSize,
|
|
195
|
-
chunkOverlap,
|
|
196
|
-
});
|
|
197
|
-
return {
|
|
198
|
-
method: "generic",
|
|
199
|
-
language,
|
|
200
|
-
filePath,
|
|
201
|
-
content,
|
|
202
|
-
lineCount,
|
|
203
|
-
chunks: splitResult.chunks,
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
catch {
|
|
207
|
-
// All methods failed - ignore file
|
|
208
|
-
return undefined;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Parse content directly (without file)
|
|
213
|
-
*
|
|
214
|
-
* Returns undefined if content cannot be parsed
|
|
215
|
-
*/
|
|
216
|
-
export async function parseContent(content, language, options = {}) {
|
|
217
|
-
// Normalize line endings (handle CRLF and CR)
|
|
218
|
-
const normalizedContent = content.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
|
|
219
|
-
const lineCount = normalizedContent.split("\n").length;
|
|
220
|
-
// Try Tree-sitter first
|
|
221
|
-
if (isLanguageSupported(language)) {
|
|
222
|
-
try {
|
|
223
|
-
const parseResult = await parseCode(content, { language });
|
|
224
|
-
const result = {
|
|
225
|
-
method: "tree-sitter",
|
|
226
|
-
language: parseResult.language,
|
|
227
|
-
content,
|
|
228
|
-
lineCount,
|
|
229
|
-
tree: parseResult.tree,
|
|
230
|
-
languageInstance: parseResult.languageInstance,
|
|
231
|
-
};
|
|
232
|
-
if (options.includeAst) {
|
|
233
|
-
result.ast = getASTRoot(parseResult, options.astMaxDepth);
|
|
234
|
-
}
|
|
235
|
-
return result;
|
|
236
|
-
}
|
|
237
|
-
catch {
|
|
238
|
-
// Tree-sitter failed, fall through to LangChain
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
// Try LangChain with detected language
|
|
242
|
-
const { chunkSize = DEFAULT_CHUNK_SIZE, chunkOverlap = DEFAULT_CHUNK_OVERLAP, } = options;
|
|
243
|
-
if (isTextSplitterLanguage(language)) {
|
|
244
|
-
try {
|
|
245
|
-
const splitResult = await splitCode(content, language, {
|
|
246
|
-
chunkSize,
|
|
247
|
-
chunkOverlap,
|
|
248
|
-
});
|
|
249
|
-
return {
|
|
250
|
-
method: "langchain",
|
|
251
|
-
language,
|
|
252
|
-
content,
|
|
253
|
-
lineCount,
|
|
254
|
-
chunks: splitResult.chunks,
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
|
-
catch {
|
|
258
|
-
// LangChain with language failed, try generic
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
// Try LangChain generic
|
|
262
|
-
try {
|
|
263
|
-
const splitResult = await splitCode(content, "generic", {
|
|
264
|
-
chunkSize,
|
|
265
|
-
chunkOverlap,
|
|
266
|
-
});
|
|
267
|
-
return {
|
|
268
|
-
method: "generic",
|
|
269
|
-
language,
|
|
270
|
-
content,
|
|
271
|
-
lineCount,
|
|
272
|
-
chunks: splitResult.chunks,
|
|
273
|
-
};
|
|
274
|
-
}
|
|
275
|
-
catch {
|
|
276
|
-
// All methods failed - ignore
|
|
277
|
-
return undefined;
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
/**
|
|
281
|
-
* Extract symbols with automatic fallback
|
|
282
|
-
*
|
|
283
|
-
* 1. Tree-sitter → accurate AST-based extraction
|
|
284
|
-
* 2. Regex fallback → best-effort pattern matching
|
|
285
|
-
*/
|
|
286
|
-
export function extractSymbols(result) {
|
|
287
|
-
// Tree-sitter path
|
|
288
|
-
if (result.method === "tree-sitter" &&
|
|
289
|
-
result.tree &&
|
|
290
|
-
result.languageInstance) {
|
|
291
|
-
const { definitions } = extractSymbolsFromTags(result.tree, result.languageInstance, result.language);
|
|
292
|
-
const functions = [];
|
|
293
|
-
const classes = [];
|
|
294
|
-
const all = [];
|
|
295
|
-
for (const def of definitions) {
|
|
296
|
-
const symbol = {
|
|
297
|
-
name: def.name,
|
|
298
|
-
type: def.kind,
|
|
299
|
-
line: def.node.start.line,
|
|
300
|
-
endLine: def.node.end.line,
|
|
301
|
-
documentation: def.documentation,
|
|
302
|
-
};
|
|
303
|
-
all.push(symbol);
|
|
304
|
-
if (def.kind === "function" || def.kind === "method") {
|
|
305
|
-
functions.push(symbol);
|
|
306
|
-
}
|
|
307
|
-
else if (def.kind === "class" ||
|
|
308
|
-
def.kind === "interface" ||
|
|
309
|
-
def.kind === "module") {
|
|
310
|
-
classes.push(symbol);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
// If tags.scm didn't find anything, try direct AST queries
|
|
314
|
-
if (functions.length === 0) {
|
|
315
|
-
const funcNodes = findFunctions(result.tree, result.languageInstance, result.language);
|
|
316
|
-
for (const node of funcNodes) {
|
|
317
|
-
const symbol = {
|
|
318
|
-
name: extractNameFromNode(node.text),
|
|
319
|
-
type: "function",
|
|
320
|
-
line: node.start.line,
|
|
321
|
-
endLine: node.end.line,
|
|
322
|
-
};
|
|
323
|
-
functions.push(symbol);
|
|
324
|
-
all.push(symbol);
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
if (classes.length === 0) {
|
|
328
|
-
const classNodes = findClasses(result.tree, result.languageInstance, result.language);
|
|
329
|
-
for (const node of classNodes) {
|
|
330
|
-
const symbol = {
|
|
331
|
-
name: extractNameFromNode(node.text),
|
|
332
|
-
type: "class",
|
|
333
|
-
line: node.start.line,
|
|
334
|
-
endLine: node.end.line,
|
|
335
|
-
};
|
|
336
|
-
classes.push(symbol);
|
|
337
|
-
all.push(symbol);
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
return { method: "tree-sitter", functions, classes, all };
|
|
341
|
-
}
|
|
342
|
-
// LangChain fallback - no symbol extraction (text splitting only)
|
|
343
|
-
return { method: "regex", functions: [], classes: [], all: [] };
|
|
344
|
-
}
|
|
345
|
-
/**
|
|
346
|
-
* Get a summary of parsing capabilities for a file
|
|
347
|
-
*/
|
|
348
|
-
export function getParsingCapabilities(filePath) {
|
|
349
|
-
if (isBinaryFile(filePath)) {
|
|
350
|
-
return {
|
|
351
|
-
language: "binary",
|
|
352
|
-
method: "generic",
|
|
353
|
-
features: [],
|
|
354
|
-
};
|
|
355
|
-
}
|
|
356
|
-
const language = detectLanguage(filePath);
|
|
357
|
-
if (isLanguageSupported(language)) {
|
|
358
|
-
return {
|
|
359
|
-
language,
|
|
360
|
-
method: "tree-sitter",
|
|
361
|
-
features: [
|
|
362
|
-
"Full AST parsing",
|
|
363
|
-
"Accurate symbol extraction",
|
|
364
|
-
"Syntax highlighting queries",
|
|
365
|
-
"Code navigation",
|
|
366
|
-
"Semantic analysis",
|
|
367
|
-
],
|
|
368
|
-
};
|
|
369
|
-
}
|
|
370
|
-
if (isTextSplitterLanguage(language)) {
|
|
371
|
-
return {
|
|
372
|
-
language,
|
|
373
|
-
method: "langchain",
|
|
374
|
-
features: [
|
|
375
|
-
"Intelligent text splitting",
|
|
376
|
-
"Language-aware chunking",
|
|
377
|
-
"Basic symbol extraction (regex)",
|
|
378
|
-
],
|
|
379
|
-
};
|
|
380
|
-
}
|
|
381
|
-
return {
|
|
382
|
-
language,
|
|
383
|
-
method: "generic",
|
|
384
|
-
features: ["Generic text splitting", "Basic symbol extraction (regex)"],
|
|
385
|
-
};
|
|
386
|
-
}
|
|
387
|
-
/**
|
|
388
|
-
* Check if a file can be parsed (not binary)
|
|
389
|
-
*/
|
|
390
|
-
export function canParse(filePath) {
|
|
391
|
-
return !isBinaryFile(filePath);
|
|
392
|
-
}
|
|
393
|
-
/**
|
|
394
|
-
* Get all supported languages with their parsing method
|
|
395
|
-
*/
|
|
396
|
-
export function getSupportedLanguagesInfo() {
|
|
397
|
-
const result = [];
|
|
398
|
-
const config = loadConfig();
|
|
399
|
-
// Tree-sitter languages from config
|
|
400
|
-
for (const [name, langConfig] of Object.entries(config.treesitter)) {
|
|
401
|
-
result.push({
|
|
402
|
-
language: name,
|
|
403
|
-
method: "tree-sitter",
|
|
404
|
-
extensions: langConfig.extensions,
|
|
405
|
-
});
|
|
406
|
-
}
|
|
407
|
-
// LangChain languages - group extensions by language from fallbackExtensions
|
|
408
|
-
const langchainExtensions = {};
|
|
409
|
-
for (const [ext, lang] of Object.entries(config.fallbackExtensions)) {
|
|
410
|
-
// Skip languages already covered by Tree-sitter
|
|
411
|
-
if (config.treesitter[lang]) {
|
|
412
|
-
continue;
|
|
413
|
-
}
|
|
414
|
-
langchainExtensions[lang] ??= [];
|
|
415
|
-
langchainExtensions[lang].push(ext);
|
|
416
|
-
}
|
|
417
|
-
for (const [lang, extensions] of Object.entries(langchainExtensions)) {
|
|
418
|
-
result.push({
|
|
419
|
-
language: lang,
|
|
420
|
-
method: "langchain",
|
|
421
|
-
extensions,
|
|
422
|
-
});
|
|
423
|
-
}
|
|
424
|
-
return result;
|
|
425
|
-
}
|
|
426
|
-
// Register cache for centralized clearing
|
|
427
|
-
registerCache("unified:config", clearUnifiedCache);
|
|
428
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/unified/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Get the assets directory path
|
|
3
|
-
*
|
|
4
|
-
* Handles both ESM and CJS contexts by trying multiple possible paths
|
|
5
|
-
* relative to the current module location.
|
|
6
|
-
*/
|
|
7
|
-
export declare function getAssetsDir(): string;
|
|
8
|
-
/**
|
|
9
|
-
* Load and parse a JSON config file from the assets directory
|
|
10
|
-
*
|
|
11
|
-
* @param filename - Name of the JSON file in assets directory
|
|
12
|
-
* @param defaultValue - Default value to return if file cannot be loaded
|
|
13
|
-
* @returns Parsed JSON content or default value
|
|
14
|
-
*/
|
|
15
|
-
export declare function loadJsonConfig<T>(filename: string, defaultValue: T): T;
|
|
16
|
-
/**
|
|
17
|
-
* Get the path to a file within the assets directory
|
|
18
|
-
*
|
|
19
|
-
* @param segments - Path segments relative to assets directory
|
|
20
|
-
* @returns Full path to the asset file
|
|
21
|
-
*/
|
|
22
|
-
export declare function getAssetPath(...segments: string[]): string;
|
|
23
|
-
/**
|
|
24
|
-
* Check if an asset file exists
|
|
25
|
-
*
|
|
26
|
-
* @param segments - Path segments relative to assets directory
|
|
27
|
-
* @returns True if the file exists
|
|
28
|
-
*/
|
|
29
|
-
export declare function assetExists(...segments: string[]): boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Clear the assets directory cache (for testing)
|
|
32
|
-
*/
|
|
33
|
-
export declare function clearAssetsDirCache(): void;
|
|
34
|
-
//# sourceMappingURL=assets.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../src/core/utils/assets.ts"],"names":[],"mappings":"AAeA;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,MAAM,CA4BrC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAStE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
|