@milo4jo/contextkit 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"chunker.js","sourceRoot":"","sources":["../../src/indexer/chunker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chunker.js","sourceRoot":"","sources":["../../src/indexer/chunker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Parser Registry
3
+ *
4
+ * Central registry for language-specific parsers.
5
+ * Determines which parser to use based on file extension.
6
+ */
7
+ import { isTypeScriptOrJavaScript, type ParseResult, type CodeBoundary, type CodeUnitType } from './typescript.js';
8
+ export { type ParseResult, type CodeBoundary, type CodeUnitType };
9
+ /** Parser function signature */
10
+ export type ParserFn = (content: string, filePath?: string) => ParseResult;
11
+ /**
12
+ * Get the parser for a file based on its extension.
13
+ *
14
+ * @param filePath - Path to the file
15
+ * @returns Parser function or undefined if no parser is available
16
+ */
17
+ export declare function getParser(filePath: string): ParserFn | undefined;
18
+ /**
19
+ * Check if a file can be parsed by any registered parser.
20
+ *
21
+ * @param filePath - Path to the file
22
+ * @returns True if a parser is available for this file type
23
+ */
24
+ export declare function canParse(filePath: string): boolean;
25
+ /**
26
+ * Parse a file and extract code boundaries.
27
+ *
28
+ * @param content - File content
29
+ * @param filePath - Path to the file (used to determine parser)
30
+ * @returns Parse result with boundaries, or failure result if no parser available
31
+ */
32
+ export declare function parseFile(content: string, filePath: string): ParseResult;
33
+ /**
34
+ * Register a custom parser for a file extension.
35
+ *
36
+ * @param extension - File extension (without dot)
37
+ * @param parser - Parser function
38
+ */
39
+ export declare function registerParser(extension: string, parser: ParserFn): void;
40
+ /**
41
+ * Get list of supported file extensions.
42
+ */
43
+ export declare function getSupportedExtensions(): string[];
44
+ export { isTypeScriptOrJavaScript };
45
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,wBAAwB,EACxB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,CAAC;AAElE,gCAAgC;AAChC,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,WAAW,CAAC;AAW3E;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAIhE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAYxE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,CAExE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD;AAGD,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Parser Registry
3
+ *
4
+ * Central registry for language-specific parsers.
5
+ * Determines which parser to use based on file extension.
6
+ */
7
+ import { parseTypeScript, isTypeScriptOrJavaScript, } from './typescript.js';
8
+ /** Registered parsers mapped by extension */
9
+ const parsers = new Map();
10
+ // Register TypeScript/JavaScript parser for all supported extensions
11
+ const tsExtensions = ['ts', 'tsx', 'js', 'jsx', 'mjs', 'cjs', 'mts', 'cts'];
12
+ for (const ext of tsExtensions) {
13
+ parsers.set(ext, parseTypeScript);
14
+ }
15
+ /**
16
+ * Get the parser for a file based on its extension.
17
+ *
18
+ * @param filePath - Path to the file
19
+ * @returns Parser function or undefined if no parser is available
20
+ */
21
+ export function getParser(filePath) {
22
+ const ext = filePath.toLowerCase().split('.').pop();
23
+ if (!ext)
24
+ return undefined;
25
+ return parsers.get(ext);
26
+ }
27
+ /**
28
+ * Check if a file can be parsed by any registered parser.
29
+ *
30
+ * @param filePath - Path to the file
31
+ * @returns True if a parser is available for this file type
32
+ */
33
+ export function canParse(filePath) {
34
+ return getParser(filePath) !== undefined;
35
+ }
36
+ /**
37
+ * Parse a file and extract code boundaries.
38
+ *
39
+ * @param content - File content
40
+ * @param filePath - Path to the file (used to determine parser)
41
+ * @returns Parse result with boundaries, or failure result if no parser available
42
+ */
43
+ export function parseFile(content, filePath) {
44
+ const parser = getParser(filePath);
45
+ if (!parser) {
46
+ return {
47
+ success: false,
48
+ boundaries: [],
49
+ error: `No parser available for file type: ${filePath}`,
50
+ };
51
+ }
52
+ return parser(content, filePath);
53
+ }
54
+ /**
55
+ * Register a custom parser for a file extension.
56
+ *
57
+ * @param extension - File extension (without dot)
58
+ * @param parser - Parser function
59
+ */
60
+ export function registerParser(extension, parser) {
61
+ parsers.set(extension.toLowerCase(), parser);
62
+ }
63
+ /**
64
+ * Get list of supported file extensions.
65
+ */
66
+ export function getSupportedExtensions() {
67
+ return Array.from(parsers.keys());
68
+ }
69
+ // Re-export utility functions
70
+ export { isTypeScriptOrJavaScript };
71
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,eAAe,EACf,wBAAwB,GAIzB,MAAM,iBAAiB,CAAC;AAOzB,6CAA6C;AAC7C,MAAM,OAAO,GAA0B,IAAI,GAAG,EAAE,CAAC;AAEjD,qEAAqE;AACrE,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC5E,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACpD,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,QAAgB;IACvC,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,QAAgB;IACzD,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,EAAE;YACd,KAAK,EAAE,sCAAsC,QAAQ,EAAE;SACxD,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,MAAgB;IAChE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,8BAA8B;AAC9B,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * TypeScript/JavaScript AST Parser
3
+ *
4
+ * Parses TS/JS files to identify code boundaries for intelligent chunking.
5
+ * Uses acorn for parsing JavaScript (ignores TypeScript-specific syntax).
6
+ */
7
+ /** Type of code unit identified by the parser */
8
+ export type CodeUnitType = 'function' | 'class' | 'method' | 'constant' | 'block';
9
+ /** A code boundary identified by the parser */
10
+ export interface CodeBoundary {
11
+ /** Type of code unit */
12
+ type: CodeUnitType;
13
+ /** Name of the unit (function name, class name, etc.) */
14
+ name: string;
15
+ /** Start line (1-indexed) */
16
+ startLine: number;
17
+ /** End line (1-indexed, inclusive) */
18
+ endLine: number;
19
+ /** Whether this is exported */
20
+ exported: boolean;
21
+ }
22
+ /** Result of parsing a file */
23
+ export interface ParseResult {
24
+ /** Whether parsing succeeded */
25
+ success: boolean;
26
+ /** Identified code boundaries */
27
+ boundaries: CodeBoundary[];
28
+ /** Error message if parsing failed */
29
+ error?: string;
30
+ }
31
+ /**
32
+ * Parse TypeScript/JavaScript code and extract code boundaries.
33
+ *
34
+ * @param content - The file content to parse
35
+ * @param _filePath - Path to the file (for error messages, unused currently)
36
+ * @returns Parse result with boundaries or error
37
+ */
38
+ export declare function parseTypeScript(content: string, _filePath?: string): ParseResult;
39
+ /**
40
+ * Check if a file extension is supported by this parser.
41
+ */
42
+ export declare function isTypeScriptOrJavaScript(filePath: string): boolean;
43
+ //# sourceMappingURL=typescript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../src/parsers/typescript.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,iDAAiD;AACjD,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAElF,+CAA+C;AAC/C,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,IAAI,EAAE,YAAY,CAAC;IACnB,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,+BAA+B;AAC/B,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA0HD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAsPhF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGlE"}
@@ -0,0 +1,306 @@
1
+ /**
2
+ * TypeScript/JavaScript AST Parser
3
+ *
4
+ * Parses TS/JS files to identify code boundaries for intelligent chunking.
5
+ * Uses acorn for parsing JavaScript (ignores TypeScript-specific syntax).
6
+ */
7
+ import * as acorn from 'acorn';
8
+ /**
9
+ * Strip TypeScript-specific syntax to make the code parseable by acorn.
10
+ * This is a simple preprocessing step that handles common TS patterns.
11
+ */
12
+ function stripTypeScript(code) {
13
+ // Remove type annotations: `: Type`, `: Type[]`, `: Type<Generic>`
14
+ // This regex handles common cases but isn't perfect for all TS syntax
15
+ let stripped = code;
16
+ // Remove type imports: import type { ... } from '...'
17
+ stripped = stripped.replace(/import\s+type\s+\{[^}]*\}\s+from\s+['"][^'"]*['"];?/g, '');
18
+ stripped = stripped.replace(/import\s+type\s+\w+\s+from\s+['"][^'"]*['"];?/g, '');
19
+ // Remove "type" keyword in imports: import { type Foo, Bar } from '...'
20
+ stripped = stripped.replace(/,\s*type\s+\w+/g, '');
21
+ stripped = stripped.replace(/\{\s*type\s+\w+\s*,/g, '{');
22
+ stripped = stripped.replace(/\{\s*type\s+\w+\s*\}/g, '{}');
23
+ // Remove interface declarations
24
+ stripped = stripped.replace(/interface\s+\w+(?:<[^>]*>)?\s*(?:extends[^{]*)?\{[^}]*\}/gs, '');
25
+ // Remove type aliases
26
+ stripped = stripped.replace(/type\s+\w+(?:<[^>]*>)?\s*=\s*[^;]+;/g, '');
27
+ // Remove type assertions: as Type, as const
28
+ stripped = stripped.replace(/\s+as\s+(?:const|\w+(?:<[^>]*>)?)/g, '');
29
+ // Remove generic type parameters from functions/classes: <T, U>
30
+ stripped = stripped.replace(/<[^<>()]*(?:<[^<>]*>[^<>()]*)*>\s*(?=\()/g, '');
31
+ // Remove type annotations from parameters: (x: Type) => (x)
32
+ // This is tricky - we need to be careful not to break the code
33
+ stripped = stripped.replace(/:\s*\w+(?:<[^>]*>)?(?:\[\])?(?:\s*\|\s*\w+(?:<[^>]*>)?(?:\[\])?)*(?=\s*[,)=])/g, '');
34
+ // Remove return type annotations: ): Type {
35
+ stripped = stripped.replace(/\):\s*\w+(?:<[^>]*>)?(?:\[\])?(?:\s*\|\s*\w+(?:<[^>]*>)?(?:\[\])?)*\s*(?=\{|=>)/g, ') ');
36
+ // Remove non-null assertions: foo!.bar -> foo.bar
37
+ stripped = stripped.replace(/!(?=\.|\[)/g, '');
38
+ // Remove declare keyword
39
+ stripped = stripped.replace(/declare\s+/g, '');
40
+ // Remove readonly keyword
41
+ stripped = stripped.replace(/readonly\s+/g, '');
42
+ // Remove abstract keyword
43
+ stripped = stripped.replace(/abstract\s+/g, '');
44
+ // Remove public/private/protected modifiers
45
+ stripped = stripped.replace(/(?:public|private|protected)\s+/g, '');
46
+ // Remove implements clause
47
+ stripped = stripped.replace(/implements\s+[\w,\s<>]+(?=\s*\{)/g, '');
48
+ return stripped;
49
+ }
50
+ /**
51
+ * Parse TypeScript/JavaScript code and extract code boundaries.
52
+ *
53
+ * @param content - The file content to parse
54
+ * @param _filePath - Path to the file (for error messages, unused currently)
55
+ * @returns Parse result with boundaries or error
56
+ */
57
+ export function parseTypeScript(content, _filePath) {
58
+ const boundaries = [];
59
+ // Try to parse as JavaScript first, then try stripping TypeScript syntax
60
+ let ast;
61
+ try {
62
+ ast = acorn.parse(content, {
63
+ ecmaVersion: 'latest',
64
+ sourceType: 'module',
65
+ locations: true,
66
+ allowHashBang: true,
67
+ allowAwaitOutsideFunction: true,
68
+ allowImportExportEverywhere: true,
69
+ });
70
+ }
71
+ catch {
72
+ // Try stripping TypeScript syntax and parse again
73
+ try {
74
+ const stripped = stripTypeScript(content);
75
+ ast = acorn.parse(stripped, {
76
+ ecmaVersion: 'latest',
77
+ sourceType: 'module',
78
+ locations: true,
79
+ allowHashBang: true,
80
+ allowAwaitOutsideFunction: true,
81
+ allowImportExportEverywhere: true,
82
+ });
83
+ }
84
+ catch (e) {
85
+ return {
86
+ success: false,
87
+ boundaries: [],
88
+ error: e instanceof Error ? e.message : 'Parse error',
89
+ };
90
+ }
91
+ }
92
+ // Track what's been exported
93
+ const exportedNames = new Set();
94
+ // First pass: collect exports
95
+ for (const node of ast.body) {
96
+ if (node.type === 'ExportNamedDeclaration') {
97
+ const exportNode = node;
98
+ if (exportNode.declaration) {
99
+ const decl = exportNode.declaration;
100
+ if (decl.type === 'FunctionDeclaration') {
101
+ const fn = decl;
102
+ if (fn.id?.name)
103
+ exportedNames.add(fn.id.name);
104
+ }
105
+ else if (decl.type === 'ClassDeclaration') {
106
+ const cls = decl;
107
+ if (cls.id?.name)
108
+ exportedNames.add(cls.id.name);
109
+ }
110
+ else if (decl.type === 'VariableDeclaration') {
111
+ const varDecl = decl;
112
+ for (const declarator of varDecl.declarations) {
113
+ if (declarator.id.type === 'Identifier') {
114
+ exportedNames.add(declarator.id.name);
115
+ }
116
+ }
117
+ }
118
+ }
119
+ }
120
+ else if (node.type === 'ExportDefaultDeclaration') {
121
+ exportedNames.add('default');
122
+ }
123
+ }
124
+ // Second pass: extract boundaries
125
+ for (const node of ast.body) {
126
+ if (!node.loc)
127
+ continue;
128
+ const startLine = node.loc.start.line;
129
+ const endLine = node.loc.end.line;
130
+ if (node.type === 'FunctionDeclaration') {
131
+ const fn = node;
132
+ const name = fn.id?.name || 'anonymous';
133
+ boundaries.push({
134
+ type: 'function',
135
+ name,
136
+ startLine,
137
+ endLine,
138
+ exported: exportedNames.has(name),
139
+ });
140
+ }
141
+ else if (node.type === 'ClassDeclaration') {
142
+ const cls = node;
143
+ const className = cls.id?.name || 'AnonymousClass';
144
+ // Add the class itself
145
+ boundaries.push({
146
+ type: 'class',
147
+ name: className,
148
+ startLine,
149
+ endLine,
150
+ exported: exportedNames.has(className),
151
+ });
152
+ // Also add methods as separate boundaries (for large classes)
153
+ if (cls.body?.body) {
154
+ for (const member of cls.body.body) {
155
+ if (member.type === 'MethodDefinition' && member.loc) {
156
+ const method = member;
157
+ let methodName = 'anonymous';
158
+ if (method.key.type === 'Identifier') {
159
+ methodName = method.key.name;
160
+ }
161
+ boundaries.push({
162
+ type: 'method',
163
+ name: `${className}.${methodName}`,
164
+ startLine: member.loc.start.line,
165
+ endLine: member.loc.end.line,
166
+ exported: false,
167
+ });
168
+ }
169
+ }
170
+ }
171
+ }
172
+ else if (node.type === 'VariableDeclaration') {
173
+ const varDecl = node;
174
+ // Only track const declarations (likely to be important exports/configs)
175
+ if (varDecl.kind === 'const') {
176
+ for (const declarator of varDecl.declarations) {
177
+ if (declarator.id.type === 'Identifier') {
178
+ const name = declarator.id.name;
179
+ // Check if it's an arrow function or function expression
180
+ const init = declarator.init;
181
+ const isFunction = init?.type === 'ArrowFunctionExpression' ||
182
+ init?.type === 'FunctionExpression';
183
+ boundaries.push({
184
+ type: isFunction ? 'function' : 'constant',
185
+ name,
186
+ startLine,
187
+ endLine,
188
+ exported: exportedNames.has(name),
189
+ });
190
+ }
191
+ }
192
+ }
193
+ }
194
+ else if (node.type === 'ExportNamedDeclaration') {
195
+ const exportNode = node;
196
+ if (exportNode.declaration) {
197
+ // The declaration inside the export has already been processed above
198
+ // due to our pre-pass. Mark the boundaries as exported.
199
+ const decl = exportNode.declaration;
200
+ if (decl.type === 'FunctionDeclaration') {
201
+ const fn = decl;
202
+ const name = fn.id?.name || 'anonymous';
203
+ boundaries.push({
204
+ type: 'function',
205
+ name,
206
+ startLine,
207
+ endLine,
208
+ exported: true,
209
+ });
210
+ }
211
+ else if (decl.type === 'ClassDeclaration') {
212
+ const cls = decl;
213
+ const className = cls.id?.name || 'AnonymousClass';
214
+ boundaries.push({
215
+ type: 'class',
216
+ name: className,
217
+ startLine,
218
+ endLine,
219
+ exported: true,
220
+ });
221
+ // Add methods
222
+ if (cls.body?.body) {
223
+ for (const member of cls.body.body) {
224
+ if (member.type === 'MethodDefinition' && member.loc) {
225
+ const method = member;
226
+ let methodName = 'anonymous';
227
+ if (method.key.type === 'Identifier') {
228
+ methodName = method.key.name;
229
+ }
230
+ boundaries.push({
231
+ type: 'method',
232
+ name: `${className}.${methodName}`,
233
+ startLine: member.loc.start.line,
234
+ endLine: member.loc.end.line,
235
+ exported: false,
236
+ });
237
+ }
238
+ }
239
+ }
240
+ }
241
+ else if (decl.type === 'VariableDeclaration') {
242
+ const varDecl = decl;
243
+ if (varDecl.kind === 'const') {
244
+ for (const declarator of varDecl.declarations) {
245
+ if (declarator.id.type === 'Identifier') {
246
+ const name = declarator.id.name;
247
+ const init = declarator.init;
248
+ const isFunction = init?.type === 'ArrowFunctionExpression' ||
249
+ init?.type === 'FunctionExpression';
250
+ boundaries.push({
251
+ type: isFunction ? 'function' : 'constant',
252
+ name,
253
+ startLine,
254
+ endLine,
255
+ exported: true,
256
+ });
257
+ }
258
+ }
259
+ }
260
+ }
261
+ }
262
+ }
263
+ else if (node.type === 'ExportDefaultDeclaration') {
264
+ const exportDefault = node;
265
+ const decl = exportDefault.declaration;
266
+ let type = 'block';
267
+ let name = 'default';
268
+ if (decl.type === 'FunctionDeclaration' || decl.type === 'FunctionExpression') {
269
+ type = 'function';
270
+ if (decl.id?.name) {
271
+ name = decl.id.name;
272
+ }
273
+ }
274
+ else if (decl.type === 'ClassDeclaration') {
275
+ type = 'class';
276
+ if (decl.id?.name) {
277
+ name = decl.id.name;
278
+ }
279
+ }
280
+ else if (decl.type === 'ArrowFunctionExpression') {
281
+ type = 'function';
282
+ }
283
+ boundaries.push({
284
+ type,
285
+ name,
286
+ startLine,
287
+ endLine,
288
+ exported: true,
289
+ });
290
+ }
291
+ }
292
+ // Sort boundaries by start line
293
+ boundaries.sort((a, b) => a.startLine - b.startLine);
294
+ return {
295
+ success: true,
296
+ boundaries,
297
+ };
298
+ }
299
+ /**
300
+ * Check if a file extension is supported by this parser.
301
+ */
302
+ export function isTypeScriptOrJavaScript(filePath) {
303
+ const ext = filePath.toLowerCase().split('.').pop();
304
+ return ['ts', 'tsx', 'js', 'jsx', 'mjs', 'cjs', 'mts', 'cts'].includes(ext || '');
305
+ }
306
+ //# sourceMappingURL=typescript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../src/parsers/typescript.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,8 @@ export interface SelectOptions {
25
25
  includeImports?: boolean;
26
26
  /** Base path for resolving imports */
27
27
  basePath?: string;
28
+ /** Skip cache lookup */
29
+ noCache?: boolean;
28
30
  }
29
31
  /** Selection result */
30
32
  export interface SelectResult {
@@ -32,6 +34,8 @@ export interface SelectResult {
32
34
  output: FormattedOutput;
33
35
  /** Whether index is empty */
34
36
  isEmpty: boolean;
37
+ /** Whether result came from cache */
38
+ fromCache: boolean;
35
39
  }
36
40
  /**
37
41
  * Select optimal context for a query
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/selector/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGzF,wBAAwB;AACxB,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,uBAAuB;AACvB,MAAM,WAAW,YAAY;IAC3B,uBAAuB;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CA+FvB;AAwCD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9G,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/selector/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AASzF,wBAAwB;AACxB,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,uBAAuB;AACvB,MAAM,WAAW,YAAY;IAC3B,uBAAuB;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CAmIvB;AAwCD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9G,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -12,11 +12,13 @@ import { rankChunks, buildImportGraph, getRelatedImports } from './scoring.js';
12
12
  import { fitToBudget, mergeAdjacentChunks } from './budget.js';
13
13
  import { formatInFormat } from './formatter.js';
14
14
  import { parseImportsWithResolution, isJsTsFile } from '../retrieval/imports.js';
15
+ import { generateCacheKey, computeIndexVersion, getCachedResult, setCachedResult, } from '../db/index.js';
15
16
  /**
16
17
  * Select optimal context for a query
17
18
  */
18
19
  export async function selectContext(db, options) {
19
20
  const startTime = Date.now();
21
+ const format = options.format || 'markdown';
20
22
  // Check if index has any chunks
21
23
  const countResult = db.prepare('SELECT COUNT(*) as count FROM chunks').get();
22
24
  if (countResult.count === 0) {
@@ -37,8 +39,35 @@ export async function selectContext(db, options) {
37
39
  },
38
40
  },
39
41
  isEmpty: true,
42
+ fromCache: false,
40
43
  };
41
44
  }
45
+ // Check cache (skip if --explain is used or --no-cache is set)
46
+ const useCache = !options.explain && !options.noCache;
47
+ let cacheKey;
48
+ let indexVersion;
49
+ if (useCache) {
50
+ cacheKey = generateCacheKey({
51
+ query: options.query,
52
+ budget: options.budget,
53
+ sources: options.sources,
54
+ format,
55
+ includeImports: options.includeImports,
56
+ });
57
+ indexVersion = computeIndexVersion(db);
58
+ const cachedResult = getCachedResult(db, cacheKey, indexVersion);
59
+ if (cachedResult) {
60
+ const data = JSON.parse(cachedResult);
61
+ return {
62
+ output: {
63
+ text: format === 'json' ? JSON.stringify(data, null, 2) : data.context,
64
+ data,
65
+ },
66
+ isEmpty: false,
67
+ fromCache: true,
68
+ };
69
+ }
70
+ }
42
71
  // Step 1: Search for similar chunks
43
72
  const searchOpts = {
44
73
  limit: 50,
@@ -83,11 +112,15 @@ export async function selectContext(db, options) {
83
112
  };
84
113
  // Step 7: Format output
85
114
  const timeMs = Date.now() - startTime;
86
- const format = options.format || 'markdown';
87
115
  const output = formatInFormat(format, options.query, mergedResult, similarChunks.length, timeMs, options.explain);
116
+ // Step 8: Store in cache (if caching is enabled)
117
+ if (useCache && cacheKey && indexVersion) {
118
+ setCachedResult(db, cacheKey, JSON.stringify(output.data), indexVersion);
119
+ }
88
120
  return {
89
121
  output,
90
122
  isEmpty: false,
123
+ fromCache: false,
91
124
  };
92
125
  }
93
126
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/selector/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/selector/index.ts"],"names":[],"mappings":"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"}