@unlimiting/qsc 0.1.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.
Files changed (117) hide show
  1. package/dist/chunker/ast.d.ts +7 -0
  2. package/dist/chunker/ast.d.ts.map +1 -0
  3. package/dist/chunker/ast.js +302 -0
  4. package/dist/chunker/ast.js.map +1 -0
  5. package/dist/chunker/index.d.ts +15 -0
  6. package/dist/chunker/index.d.ts.map +1 -0
  7. package/dist/chunker/index.js +26 -0
  8. package/dist/chunker/index.js.map +1 -0
  9. package/dist/chunker/languages/dart.d.ts +3 -0
  10. package/dist/chunker/languages/dart.d.ts.map +1 -0
  11. package/dist/chunker/languages/dart.js +22 -0
  12. package/dist/chunker/languages/dart.js.map +1 -0
  13. package/dist/chunker/languages/go.d.ts +3 -0
  14. package/dist/chunker/languages/go.d.ts.map +1 -0
  15. package/dist/chunker/languages/go.js +20 -0
  16. package/dist/chunker/languages/go.js.map +1 -0
  17. package/dist/chunker/languages/index.d.ts +12 -0
  18. package/dist/chunker/languages/index.d.ts.map +1 -0
  19. package/dist/chunker/languages/index.js +35 -0
  20. package/dist/chunker/languages/index.js.map +1 -0
  21. package/dist/chunker/languages/kotlin.d.ts +3 -0
  22. package/dist/chunker/languages/kotlin.d.ts.map +1 -0
  23. package/dist/chunker/languages/kotlin.js +23 -0
  24. package/dist/chunker/languages/kotlin.js.map +1 -0
  25. package/dist/chunker/languages/python.d.ts +3 -0
  26. package/dist/chunker/languages/python.d.ts.map +1 -0
  27. package/dist/chunker/languages/python.js +21 -0
  28. package/dist/chunker/languages/python.js.map +1 -0
  29. package/dist/chunker/languages/swift.d.ts +3 -0
  30. package/dist/chunker/languages/swift.d.ts.map +1 -0
  31. package/dist/chunker/languages/swift.js +24 -0
  32. package/dist/chunker/languages/swift.js.map +1 -0
  33. package/dist/chunker/languages/typescript.d.ts +4 -0
  34. package/dist/chunker/languages/typescript.d.ts.map +1 -0
  35. package/dist/chunker/languages/typescript.js +34 -0
  36. package/dist/chunker/languages/typescript.js.map +1 -0
  37. package/dist/chunker/token.d.ts +6 -0
  38. package/dist/chunker/token.d.ts.map +1 -0
  39. package/dist/chunker/token.js +107 -0
  40. package/dist/chunker/token.js.map +1 -0
  41. package/dist/collection.d.ts +22 -0
  42. package/dist/collection.d.ts.map +1 -0
  43. package/dist/collection.js +154 -0
  44. package/dist/collection.js.map +1 -0
  45. package/dist/config/index.d.ts +95 -0
  46. package/dist/config/index.d.ts.map +1 -0
  47. package/dist/config/index.js +103 -0
  48. package/dist/config/index.js.map +1 -0
  49. package/dist/embedder/index.d.ts +14 -0
  50. package/dist/embedder/index.d.ts.map +1 -0
  51. package/dist/embedder/index.js +18 -0
  52. package/dist/embedder/index.js.map +1 -0
  53. package/dist/embedder/local.d.ts +11 -0
  54. package/dist/embedder/local.d.ts.map +1 -0
  55. package/dist/embedder/local.js +60 -0
  56. package/dist/embedder/local.js.map +1 -0
  57. package/dist/embedder/openai.d.ts +10 -0
  58. package/dist/embedder/openai.d.ts.map +1 -0
  59. package/dist/embedder/openai.js +69 -0
  60. package/dist/embedder/openai.js.map +1 -0
  61. package/dist/index.d.ts +3 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +824 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/llm/index.d.ts +17 -0
  66. package/dist/llm/index.d.ts.map +1 -0
  67. package/dist/llm/index.js +18 -0
  68. package/dist/llm/index.js.map +1 -0
  69. package/dist/llm/local.d.ts +10 -0
  70. package/dist/llm/local.d.ts.map +1 -0
  71. package/dist/llm/local.js +76 -0
  72. package/dist/llm/local.js.map +1 -0
  73. package/dist/llm/openai.d.ts +10 -0
  74. package/dist/llm/openai.d.ts.map +1 -0
  75. package/dist/llm/openai.js +76 -0
  76. package/dist/llm/openai.js.map +1 -0
  77. package/dist/mcp.d.ts +3 -0
  78. package/dist/mcp.d.ts.map +1 -0
  79. package/dist/mcp.js +393 -0
  80. package/dist/mcp.js.map +1 -0
  81. package/dist/scanner/git.d.ts +26 -0
  82. package/dist/scanner/git.d.ts.map +1 -0
  83. package/dist/scanner/git.js +134 -0
  84. package/dist/scanner/git.js.map +1 -0
  85. package/dist/scanner/index.d.ts +17 -0
  86. package/dist/scanner/index.d.ts.map +1 -0
  87. package/dist/scanner/index.js +174 -0
  88. package/dist/scanner/index.js.map +1 -0
  89. package/dist/search/bm25.d.ts +17 -0
  90. package/dist/search/bm25.d.ts.map +1 -0
  91. package/dist/search/bm25.js +27 -0
  92. package/dist/search/bm25.js.map +1 -0
  93. package/dist/search/expander.d.ts +12 -0
  94. package/dist/search/expander.d.ts.map +1 -0
  95. package/dist/search/expander.js +60 -0
  96. package/dist/search/expander.js.map +1 -0
  97. package/dist/search/fusion.d.ts +32 -0
  98. package/dist/search/fusion.d.ts.map +1 -0
  99. package/dist/search/fusion.js +80 -0
  100. package/dist/search/fusion.js.map +1 -0
  101. package/dist/search/index.d.ts +61 -0
  102. package/dist/search/index.d.ts.map +1 -0
  103. package/dist/search/index.js +137 -0
  104. package/dist/search/index.js.map +1 -0
  105. package/dist/search/reranker.d.ts +18 -0
  106. package/dist/search/reranker.d.ts.map +1 -0
  107. package/dist/search/reranker.js +56 -0
  108. package/dist/search/reranker.js.map +1 -0
  109. package/dist/search/vector.d.ts +23 -0
  110. package/dist/search/vector.d.ts.map +1 -0
  111. package/dist/search/vector.js +47 -0
  112. package/dist/search/vector.js.map +1 -0
  113. package/dist/store.d.ts +119 -0
  114. package/dist/store.d.ts.map +1 -0
  115. package/dist/store.js +500 -0
  116. package/dist/store.js.map +1 -0
  117. package/package.json +48 -0
@@ -0,0 +1,7 @@
1
+ import type { LanguageConfig } from "./languages/index.js";
2
+ import type { Chunk } from "./index.js";
3
+ export interface AstChunker {
4
+ chunk(content: string, filePath: string): Chunk[];
5
+ }
6
+ export declare function createAstChunker(langConfig: LanguageConfig, maxTokens: number): Promise<AstChunker>;
7
+ //# sourceMappingURL=ast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/chunker/ast.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AA4SxC,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE,CAAC;CACnD;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,CA8CrB"}
@@ -0,0 +1,302 @@
1
+ import { createRequire } from "node:module";
2
+ import { join } from "node:path";
3
+ // web-tree-sitter 0.22.x: default export is the Parser class
4
+ const require = createRequire(import.meta.url);
5
+ const Parser = require("web-tree-sitter");
6
+ let initPromise = null;
7
+ async function ensureInit() {
8
+ if (!initPromise) {
9
+ initPromise = Parser.init();
10
+ }
11
+ await initPromise;
12
+ }
13
+ function estimateTokens(text) {
14
+ return Math.ceil(text.length / 4);
15
+ }
16
+ function resolveWasmPath(wasmFile) {
17
+ const require2 = createRequire(import.meta.url);
18
+ const wasmsDir = join(require2.resolve("tree-sitter-wasms/package.json"), "..", "out");
19
+ return join(wasmsDir, wasmFile);
20
+ }
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
+ const languageCache = new Map();
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
+ async function loadLanguage(config) {
25
+ const key = config.treeSitterLanguage;
26
+ if (languageCache.has(key)) {
27
+ return languageCache.get(key);
28
+ }
29
+ const wasmPath = resolveWasmPath(config.treeSitterWasmFile);
30
+ const lang = await Parser.Language.load(wasmPath);
31
+ languageCache.set(key, lang);
32
+ return lang;
33
+ }
34
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
+ function extractName(node, nameFields) {
36
+ // For export_statement, look at the inner declaration
37
+ if (node.type === "export_statement" || node.type === "export_declaration") {
38
+ const childCount = node.childCount;
39
+ for (let i = 0; i < childCount; i++) {
40
+ const c = node.child(i);
41
+ if (c && c.isNamed && c.type !== "export" && c.type !== "default") {
42
+ const innerName = extractName(c, nameFields);
43
+ if (innerName)
44
+ return innerName;
45
+ }
46
+ }
47
+ }
48
+ // For decorated_definition (Python), look at the inner definition
49
+ if (node.type === "decorated_definition") {
50
+ const def = node.childForFieldName("definition");
51
+ if (def)
52
+ return extractName(def, nameFields);
53
+ }
54
+ for (const field of nameFields) {
55
+ const child = node.childForFieldName(field);
56
+ if (child)
57
+ return child.text;
58
+ }
59
+ const childCount = node.childCount;
60
+ for (let i = 0; i < childCount; i++) {
61
+ const c = node.child(i);
62
+ if (c && (c.type === "identifier" || c.type === "property_identifier" || c.type === "type_identifier")) {
63
+ return c.text;
64
+ }
65
+ }
66
+ return undefined;
67
+ }
68
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
69
+ function classifyNode(node) {
70
+ const nodeType = node.type;
71
+ // For export_statement, classify based on inner declaration
72
+ if (nodeType === "export_statement" || nodeType === "export_declaration") {
73
+ const childCount = node.childCount;
74
+ for (let i = 0; i < childCount; i++) {
75
+ const c = node.child(i);
76
+ if (c && c.isNamed && c.type !== "export" && c.type !== "default") {
77
+ return classifyNode(c);
78
+ }
79
+ }
80
+ return "module";
81
+ }
82
+ return classifyNodeTypeStr(nodeType);
83
+ }
84
+ function classifyNodeTypeStr(nodeType) {
85
+ if (nodeType.includes("function") || nodeType.includes("method") || nodeType === "arrow_function")
86
+ return "function";
87
+ if (nodeType.includes("class"))
88
+ return "class";
89
+ if (nodeType.includes("interface"))
90
+ return "interface";
91
+ if (nodeType.includes("enum"))
92
+ return "enum";
93
+ if (nodeType.includes("type_alias") || nodeType.includes("type_declaration"))
94
+ return "type";
95
+ if (nodeType.includes("struct"))
96
+ return "struct";
97
+ if (nodeType.includes("protocol"))
98
+ return "protocol";
99
+ if (nodeType.includes("extension"))
100
+ return "extension";
101
+ if (nodeType.includes("import") || nodeType.includes("export"))
102
+ return "module";
103
+ return "block";
104
+ }
105
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
106
+ function collectImports(rootNode, importTypes) {
107
+ if (importTypes.length === 0)
108
+ return "";
109
+ const imports = [];
110
+ const childCount = rootNode.childCount;
111
+ for (let i = 0; i < childCount; i++) {
112
+ const child = rootNode.child(i);
113
+ if (child && importTypes.includes(child.type)) {
114
+ imports.push(child.text);
115
+ }
116
+ }
117
+ return imports.length > 0 ? imports.join("\n") + "\n\n" : "";
118
+ }
119
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
120
+ function collectChunkNodes(node, config, sourceLines, maxTokens) {
121
+ const chunks = [];
122
+ const chunkSet = new Set(config.chunkNodeTypes);
123
+ const containerSet = new Set(config.containerNodeTypes);
124
+ const importSet = new Set(config.importNodeTypes);
125
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
126
+ function visit(n) {
127
+ if (importSet.has(n.type))
128
+ return;
129
+ if (chunkSet.has(n.type)) {
130
+ const text = n.text;
131
+ const tokens = estimateTokens(text);
132
+ const startLine = n.startPosition.row + 1;
133
+ const endLine = n.endPosition.row + 1;
134
+ const name = extractName(n, config.nameFields);
135
+ const chunkType = classifyNode(n);
136
+ if (tokens <= maxTokens) {
137
+ chunks.push({ content: text, startLine, endLine, type: chunkType, name });
138
+ }
139
+ else {
140
+ const subChunks = splitLargeNode(n, config, sourceLines, maxTokens);
141
+ if (subChunks.length > 0) {
142
+ chunks.push(...subChunks);
143
+ }
144
+ else {
145
+ chunks.push({ content: text, startLine, endLine, type: chunkType, name });
146
+ }
147
+ }
148
+ return;
149
+ }
150
+ if (containerSet.has(n.type) || n.type === "program" || n.type === "source_file" || n.type === "module") {
151
+ const childCount = n.childCount;
152
+ for (let i = 0; i < childCount; i++) {
153
+ const child = n.child(i);
154
+ if (child)
155
+ visit(child);
156
+ }
157
+ return;
158
+ }
159
+ // Top-level non-chunk, non-container nodes
160
+ if (n.parent && (containerSet.has(n.parent.type) || n.parent.type === "program" || n.parent.type === "source_file" || n.parent.type === "module")) {
161
+ if (!importSet.has(n.type) && n.text.trim().length > 0) {
162
+ chunks.push({
163
+ content: n.text,
164
+ startLine: n.startPosition.row + 1,
165
+ endLine: n.endPosition.row + 1,
166
+ type: "block",
167
+ name: undefined,
168
+ });
169
+ }
170
+ }
171
+ }
172
+ visit(node);
173
+ return chunks;
174
+ }
175
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
176
+ function splitLargeNode(node, config, sourceLines, maxTokens) {
177
+ const chunkSet = new Set(config.chunkNodeTypes);
178
+ const subChunks = [];
179
+ const childCount = node.childCount;
180
+ let hasChunkableChildren = false;
181
+ for (let i = 0; i < childCount; i++) {
182
+ const child = node.child(i);
183
+ if (child && child.isNamed && chunkSet.has(child.type)) {
184
+ hasChunkableChildren = true;
185
+ break;
186
+ }
187
+ }
188
+ if (hasChunkableChildren) {
189
+ for (let i = 0; i < childCount; i++) {
190
+ const child = node.child(i);
191
+ if (!child || !child.isNamed)
192
+ continue;
193
+ const childChunks = collectChunkNodes(child, config, sourceLines, maxTokens);
194
+ subChunks.push(...childChunks);
195
+ }
196
+ return subChunks;
197
+ }
198
+ // Split by line groups
199
+ const nodeStartLine = node.startPosition.row;
200
+ const nodeEndLine = node.endPosition.row;
201
+ const nodeLines = sourceLines.slice(nodeStartLine, nodeEndLine + 1);
202
+ let currentLines = [];
203
+ let currentStartLine = nodeStartLine;
204
+ let currentTokens = 0;
205
+ for (let i = 0; i < nodeLines.length; i++) {
206
+ const lineTokens = estimateTokens(nodeLines[i] + "\n");
207
+ if (currentTokens + lineTokens > maxTokens && currentLines.length > 0) {
208
+ subChunks.push({
209
+ content: currentLines.join("\n"),
210
+ startLine: currentStartLine + 1,
211
+ endLine: currentStartLine + currentLines.length,
212
+ type: classifyNode(node),
213
+ name: extractName(node, config.nameFields),
214
+ });
215
+ currentLines = [];
216
+ currentStartLine = nodeStartLine + i;
217
+ currentTokens = 0;
218
+ }
219
+ currentLines.push(nodeLines[i]);
220
+ currentTokens += lineTokens;
221
+ }
222
+ if (currentLines.length > 0) {
223
+ subChunks.push({
224
+ content: currentLines.join("\n"),
225
+ startLine: currentStartLine + 1,
226
+ endLine: currentStartLine + currentLines.length,
227
+ type: classifyNode(node),
228
+ name: extractName(node, config.nameFields),
229
+ });
230
+ }
231
+ return subChunks;
232
+ }
233
+ function mergeSmallChunks(chunks, maxTokens) {
234
+ if (chunks.length <= 1)
235
+ return chunks;
236
+ const merged = [];
237
+ let current = chunks[0];
238
+ for (let i = 1; i < chunks.length; i++) {
239
+ const next = chunks[i];
240
+ const combinedTokens = estimateTokens(current.content) + estimateTokens(next.content);
241
+ if (combinedTokens <= maxTokens &&
242
+ current.type === "block" &&
243
+ next.type === "block" &&
244
+ next.startLine <= current.endLine + 2) {
245
+ current = {
246
+ content: current.content + "\n" + next.content,
247
+ startLine: current.startLine,
248
+ endLine: next.endLine,
249
+ type: "block",
250
+ name: current.name || next.name,
251
+ };
252
+ }
253
+ else {
254
+ merged.push(current);
255
+ current = next;
256
+ }
257
+ }
258
+ merged.push(current);
259
+ return merged;
260
+ }
261
+ export async function createAstChunker(langConfig, maxTokens) {
262
+ await ensureInit();
263
+ const language = await loadLanguage(langConfig);
264
+ const parser = new Parser();
265
+ parser.setLanguage(language);
266
+ return {
267
+ chunk(content, filePath) {
268
+ const tree = parser.parse(content);
269
+ if (!tree)
270
+ return [];
271
+ const rootNode = tree.rootNode;
272
+ const sourceLines = content.split("\n");
273
+ const importPrefix = collectImports(rootNode, langConfig.importNodeTypes);
274
+ let rawChunks = collectChunkNodes(rootNode, langConfig, sourceLines, maxTokens);
275
+ rawChunks = mergeSmallChunks(rawChunks, maxTokens);
276
+ const result = rawChunks.map((raw) => {
277
+ const needsPrefix = importPrefix.length > 0 && !raw.content.trimStart().startsWith("import");
278
+ const finalContent = needsPrefix ? importPrefix + raw.content : raw.content;
279
+ return {
280
+ content: finalContent,
281
+ startLine: raw.startLine,
282
+ endLine: raw.endLine,
283
+ type: raw.type,
284
+ name: raw.name,
285
+ language: langConfig.treeSitterLanguage,
286
+ };
287
+ });
288
+ if (result.length === 0 && content.trim().length > 0) {
289
+ result.push({
290
+ content,
291
+ startLine: 1,
292
+ endLine: sourceLines.length,
293
+ type: "module",
294
+ language: langConfig.treeSitterLanguage,
295
+ });
296
+ }
297
+ tree.delete();
298
+ return result;
299
+ },
300
+ };
301
+ }
302
+ //# sourceMappingURL=ast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/chunker/ast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { ChunkerConfig } from "../config/index.js";
2
+ export interface Chunk {
3
+ content: string;
4
+ startLine: number;
5
+ endLine: number;
6
+ type: string;
7
+ name?: string;
8
+ language: string;
9
+ metadata?: Record<string, unknown>;
10
+ }
11
+ export interface Chunker {
12
+ chunk(content: string, filePath: string): Promise<Chunk[]>;
13
+ }
14
+ export declare function createChunker(config: ChunkerConfig): Chunker;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chunker/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;CAC5D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAsB5D"}
@@ -0,0 +1,26 @@
1
+ import { extname } from "node:path";
2
+ import { getLanguageConfig } from "./languages/index.js";
3
+ import { createAstChunker } from "./ast.js";
4
+ import { createTokenChunker } from "./token.js";
5
+ export function createChunker(config) {
6
+ const maxTokens = config.max_tokens;
7
+ const overlap = config.overlap;
8
+ return {
9
+ async chunk(content, filePath) {
10
+ const ext = extname(filePath).toLowerCase();
11
+ const langConfig = getLanguageConfig(ext);
12
+ if (langConfig) {
13
+ try {
14
+ const astChunker = await createAstChunker(langConfig, maxTokens);
15
+ return astChunker.chunk(content, filePath);
16
+ }
17
+ catch {
18
+ // AST parsing failed, fall through to token chunker
19
+ }
20
+ }
21
+ const tokenChunker = createTokenChunker(maxTokens, overlap);
22
+ return tokenChunker.chunk(content, filePath);
23
+ },
24
+ };
25
+ }
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chunker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAiBhD,MAAM,UAAU,aAAa,CAAC,MAAqB;IACjD,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;IACpC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE/B,OAAO;QACL,KAAK,CAAC,KAAK,CAAC,OAAe,EAAE,QAAgB;YAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAE1C,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;oBACjE,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC7C,CAAC;gBAAC,MAAM,CAAC;oBACP,oDAAoD;gBACtD,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC5D,OAAO,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LanguageConfig } from "./index.js";
2
+ export declare const dartConfig: LanguageConfig;
3
+ //# sourceMappingURL=dart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dart.d.ts","sourceRoot":"","sources":["../../../src/chunker/languages/dart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,UAAU,EAAE,cAoBxB,CAAC"}
@@ -0,0 +1,22 @@
1
+ export const dartConfig = {
2
+ extensions: [".dart"],
3
+ treeSitterLanguage: "dart",
4
+ treeSitterWasmFile: "tree-sitter-dart.wasm",
5
+ chunkNodeTypes: [
6
+ "function_signature",
7
+ "method_signature",
8
+ "class_definition",
9
+ "enum_declaration",
10
+ "function_body",
11
+ "declaration",
12
+ ],
13
+ containerNodeTypes: [
14
+ "program",
15
+ "class_body",
16
+ ],
17
+ importNodeTypes: [
18
+ "import_or_export",
19
+ ],
20
+ nameFields: ["name"],
21
+ };
22
+ //# sourceMappingURL=dart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dart.js","sourceRoot":"","sources":["../../../src/chunker/languages/dart.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,kBAAkB,EAAE,MAAM;IAC1B,kBAAkB,EAAE,uBAAuB;IAC3C,cAAc,EAAE;QACd,oBAAoB;QACpB,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;QAClB,eAAe;QACf,aAAa;KACd;IACD,kBAAkB,EAAE;QAClB,SAAS;QACT,YAAY;KACb;IACD,eAAe,EAAE;QACf,kBAAkB;KACnB;IACD,UAAU,EAAE,CAAC,MAAM,CAAC;CACrB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LanguageConfig } from "./index.js";
2
+ export declare const goConfig: LanguageConfig;
3
+ //# sourceMappingURL=go.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/chunker/languages/go.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,QAAQ,EAAE,cAkBtB,CAAC"}
@@ -0,0 +1,20 @@
1
+ export const goConfig = {
2
+ extensions: [".go"],
3
+ treeSitterLanguage: "go",
4
+ treeSitterWasmFile: "tree-sitter-go.wasm",
5
+ chunkNodeTypes: [
6
+ "function_declaration",
7
+ "method_declaration",
8
+ "type_declaration",
9
+ "const_declaration",
10
+ "var_declaration",
11
+ ],
12
+ containerNodeTypes: [
13
+ "source_file",
14
+ ],
15
+ importNodeTypes: [
16
+ "import_declaration",
17
+ ],
18
+ nameFields: ["name"],
19
+ };
20
+ //# sourceMappingURL=go.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go.js","sourceRoot":"","sources":["../../../src/chunker/languages/go.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAmB;IACtC,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,qBAAqB;IACzC,cAAc,EAAE;QACd,sBAAsB;QACtB,oBAAoB;QACpB,kBAAkB;QAClB,mBAAmB;QACnB,iBAAiB;KAClB;IACD,kBAAkB,EAAE;QAClB,aAAa;KACd;IACD,eAAe,EAAE;QACf,oBAAoB;KACrB;IACD,UAAU,EAAE,CAAC,MAAM,CAAC;CACrB,CAAC"}
@@ -0,0 +1,12 @@
1
+ export interface LanguageConfig {
2
+ extensions: string[];
3
+ treeSitterLanguage: string;
4
+ treeSitterWasmFile: string;
5
+ chunkNodeTypes: string[];
6
+ containerNodeTypes: string[];
7
+ importNodeTypes: string[];
8
+ nameFields: string[];
9
+ }
10
+ export declare function getLanguageConfig(extension: string): LanguageConfig | undefined;
11
+ export declare function getSupportedExtensions(): string[];
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chunker/languages/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAmCD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAE/E;AAED,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD"}
@@ -0,0 +1,35 @@
1
+ import { typescriptConfig, tsxConfig } from "./typescript.js";
2
+ import { pythonConfig } from "./python.js";
3
+ import { goConfig } from "./go.js";
4
+ import { dartConfig } from "./dart.js";
5
+ import { kotlinConfig } from "./kotlin.js";
6
+ import { swiftConfig } from "./swift.js";
7
+ const allConfigs = [
8
+ tsxConfig, // must come before typescriptConfig so .tsx/.jsx map to tsx
9
+ typescriptConfig,
10
+ pythonConfig,
11
+ goConfig,
12
+ dartConfig,
13
+ kotlinConfig,
14
+ swiftConfig,
15
+ ];
16
+ const extensionMap = new Map();
17
+ for (const config of allConfigs) {
18
+ for (const ext of config.extensions) {
19
+ if (!extensionMap.has(ext)) {
20
+ extensionMap.set(ext, config);
21
+ }
22
+ }
23
+ }
24
+ // Override: .tsx/.jsx should use tsxConfig, .ts/.js should use typescriptConfig
25
+ extensionMap.set(".tsx", tsxConfig);
26
+ extensionMap.set(".jsx", tsxConfig);
27
+ extensionMap.set(".ts", typescriptConfig);
28
+ extensionMap.set(".js", typescriptConfig);
29
+ export function getLanguageConfig(extension) {
30
+ return extensionMap.get(extension);
31
+ }
32
+ export function getSupportedExtensions() {
33
+ return [...extensionMap.keys()];
34
+ }
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chunker/languages/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,UAAU,GAAqB;IACnC,SAAS,EAAS,4DAA4D;IAC9E,gBAAgB;IAChB,YAAY;IACZ,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,WAAW;CACZ,CAAC;AAEF,MAAM,YAAY,GAAG,IAAI,GAAG,EAA0B,CAAC;AAEvD,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACpC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACpC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAC1C,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAE1C,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,OAAO,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LanguageConfig } from "./index.js";
2
+ export declare const kotlinConfig: LanguageConfig;
3
+ //# sourceMappingURL=kotlin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../../src/chunker/languages/kotlin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,YAAY,EAAE,cAqB1B,CAAC"}
@@ -0,0 +1,23 @@
1
+ export const kotlinConfig = {
2
+ extensions: [".kt", ".kts"],
3
+ treeSitterLanguage: "kotlin",
4
+ treeSitterWasmFile: "tree-sitter-kotlin.wasm",
5
+ chunkNodeTypes: [
6
+ "function_declaration",
7
+ "class_declaration",
8
+ "object_declaration",
9
+ "property_declaration",
10
+ "companion_object",
11
+ "interface_declaration",
12
+ ],
13
+ containerNodeTypes: [
14
+ "source_file",
15
+ "class_body",
16
+ ],
17
+ importNodeTypes: [
18
+ "import_list",
19
+ "import_header",
20
+ ],
21
+ nameFields: ["name"],
22
+ };
23
+ //# sourceMappingURL=kotlin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kotlin.js","sourceRoot":"","sources":["../../../src/chunker/languages/kotlin.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC1C,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,QAAQ;IAC5B,kBAAkB,EAAE,yBAAyB;IAC7C,cAAc,EAAE;QACd,sBAAsB;QACtB,mBAAmB;QACnB,oBAAoB;QACpB,sBAAsB;QACtB,kBAAkB;QAClB,uBAAuB;KACxB;IACD,kBAAkB,EAAE;QAClB,aAAa;QACb,YAAY;KACb;IACD,eAAe,EAAE;QACf,aAAa;QACb,eAAe;KAChB;IACD,UAAU,EAAE,CAAC,MAAM,CAAC;CACrB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LanguageConfig } from "./index.js";
2
+ export declare const pythonConfig: LanguageConfig;
3
+ //# sourceMappingURL=python.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../../src/chunker/languages/python.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,YAAY,EAAE,cAmB1B,CAAC"}
@@ -0,0 +1,21 @@
1
+ export const pythonConfig = {
2
+ extensions: [".py"],
3
+ treeSitterLanguage: "python",
4
+ treeSitterWasmFile: "tree-sitter-python.wasm",
5
+ chunkNodeTypes: [
6
+ "function_definition",
7
+ "class_definition",
8
+ "decorated_definition",
9
+ ],
10
+ containerNodeTypes: [
11
+ "module",
12
+ "class_body",
13
+ "block",
14
+ ],
15
+ importNodeTypes: [
16
+ "import_statement",
17
+ "import_from_statement",
18
+ ],
19
+ nameFields: ["name"],
20
+ };
21
+ //# sourceMappingURL=python.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../../../src/chunker/languages/python.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC1C,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,kBAAkB,EAAE,QAAQ;IAC5B,kBAAkB,EAAE,yBAAyB;IAC7C,cAAc,EAAE;QACd,qBAAqB;QACrB,kBAAkB;QAClB,sBAAsB;KACvB;IACD,kBAAkB,EAAE;QAClB,QAAQ;QACR,YAAY;QACZ,OAAO;KACR;IACD,eAAe,EAAE;QACf,kBAAkB;QAClB,uBAAuB;KACxB;IACD,UAAU,EAAE,CAAC,MAAM,CAAC;CACrB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LanguageConfig } from "./index.js";
2
+ export declare const swiftConfig: LanguageConfig;
3
+ //# sourceMappingURL=swift.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../../src/chunker/languages/swift.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,WAAW,EAAE,cAsBzB,CAAC"}
@@ -0,0 +1,24 @@
1
+ export const swiftConfig = {
2
+ extensions: [".swift"],
3
+ treeSitterLanguage: "swift",
4
+ treeSitterWasmFile: "tree-sitter-swift.wasm",
5
+ chunkNodeTypes: [
6
+ "function_declaration",
7
+ "class_declaration",
8
+ "struct_declaration",
9
+ "enum_declaration",
10
+ "protocol_declaration",
11
+ "extension_declaration",
12
+ "property_declaration",
13
+ "init_declaration",
14
+ ],
15
+ containerNodeTypes: [
16
+ "source_file",
17
+ "class_body",
18
+ ],
19
+ importNodeTypes: [
20
+ "import_declaration",
21
+ ],
22
+ nameFields: ["name"],
23
+ };
24
+ //# sourceMappingURL=swift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swift.js","sourceRoot":"","sources":["../../../src/chunker/languages/swift.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAmB;IACzC,UAAU,EAAE,CAAC,QAAQ,CAAC;IACtB,kBAAkB,EAAE,OAAO;IAC3B,kBAAkB,EAAE,wBAAwB;IAC5C,cAAc,EAAE;QACd,sBAAsB;QACtB,mBAAmB;QACnB,oBAAoB;QACpB,kBAAkB;QAClB,sBAAsB;QACtB,uBAAuB;QACvB,sBAAsB;QACtB,kBAAkB;KACnB;IACD,kBAAkB,EAAE;QAClB,aAAa;QACb,YAAY;KACb;IACD,eAAe,EAAE;QACf,oBAAoB;KACrB;IACD,UAAU,EAAE,CAAC,MAAM,CAAC;CACrB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { LanguageConfig } from "./index.js";
2
+ export declare const typescriptConfig: LanguageConfig;
3
+ export declare const tsxConfig: LanguageConfig;
4
+ //# sourceMappingURL=typescript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../src/chunker/languages/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,gBAAgB,EAAE,cA0B9B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,cAKvB,CAAC"}