@milo4jo/contextkit 0.1.2 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +269 -72
- package/dist/commands/index-cmd.d.ts.map +1 -1
- package/dist/commands/index-cmd.js +10 -2
- package/dist/commands/index-cmd.js.map +1 -1
- package/dist/commands/mcp.d.ts +8 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +23 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/select.d.ts.map +1 -1
- package/dist/commands/select.js +15 -9
- package/dist/commands/select.js.map +1 -1
- package/dist/commands/watch.d.ts +8 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +171 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/config/index.d.ts +11 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +11 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/validation.d.ts +33 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +241 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +11 -2
- package/dist/db/index.js.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/indexer/discovery.d.ts +7 -0
- package/dist/indexer/discovery.d.ts.map +1 -1
- package/dist/indexer/discovery.js +9 -0
- package/dist/indexer/discovery.js.map +1 -1
- package/dist/indexer/index.d.ts +17 -3
- package/dist/indexer/index.d.ts.map +1 -1
- package/dist/indexer/index.js +135 -24
- package/dist/indexer/index.js.map +1 -1
- package/dist/mcp/index.d.ts +7 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +7 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +20 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +252 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp-server.d.ts +18 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +22 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/retrieval/imports.d.ts +76 -0
- package/dist/retrieval/imports.d.ts.map +1 -0
- package/dist/retrieval/imports.js +258 -0
- package/dist/retrieval/imports.js.map +1 -0
- package/dist/selector/budget.d.ts +2 -0
- package/dist/selector/budget.d.ts.map +1 -1
- package/dist/selector/budget.js +19 -6
- package/dist/selector/budget.js.map +1 -1
- package/dist/selector/formatter.d.ts +15 -0
- package/dist/selector/formatter.d.ts.map +1 -1
- package/dist/selector/formatter.js +139 -5
- package/dist/selector/formatter.js.map +1 -1
- package/dist/selector/index.d.ts +11 -4
- package/dist/selector/index.d.ts.map +1 -1
- package/dist/selector/index.js +67 -12
- package/dist/selector/index.js.map +1 -1
- package/dist/selector/scoring.d.ts +35 -5
- package/dist/selector/scoring.d.ts.map +1 -1
- package/dist/selector/scoring.js +290 -23
- package/dist/selector/scoring.js.map +1 -1
- package/dist/utils/streams.d.ts +4 -0
- package/dist/utils/streams.d.ts.map +1 -1
- package/dist/utils/streams.js +7 -0
- package/dist/utils/streams.js.map +1 -1
- package/package.json +18 -6
- package/dist/commands/source.d.ts +0 -3
- package/dist/commands/source.d.ts.map +0 -1
- package/dist/commands/source.js +0 -153
- package/dist/commands/source.js.map +0 -1
- package/dist/utils/output.d.ts +0 -42
- package/dist/utils/output.d.ts.map +0 -1
- package/dist/utils/output.js +0 -62
- package/dist/utils/output.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* ContextKit MCP Server (Standalone)
|
|
4
|
+
*
|
|
5
|
+
* Start the MCP server directly without the CLI wrapper.
|
|
6
|
+
* This is useful for Claude Desktop configuration.
|
|
7
|
+
*
|
|
8
|
+
* Usage in claude_desktop_config.json:
|
|
9
|
+
* {
|
|
10
|
+
* "mcpServers": {
|
|
11
|
+
* "contextkit": {
|
|
12
|
+
* "command": "contextkit-mcp"
|
|
13
|
+
* }
|
|
14
|
+
* }
|
|
15
|
+
* }
|
|
16
|
+
*/
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=mcp-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* ContextKit MCP Server (Standalone)
|
|
4
|
+
*
|
|
5
|
+
* Start the MCP server directly without the CLI wrapper.
|
|
6
|
+
* This is useful for Claude Desktop configuration.
|
|
7
|
+
*
|
|
8
|
+
* Usage in claude_desktop_config.json:
|
|
9
|
+
* {
|
|
10
|
+
* "mcpServers": {
|
|
11
|
+
* "contextkit": {
|
|
12
|
+
* "command": "contextkit-mcp"
|
|
13
|
+
* }
|
|
14
|
+
* }
|
|
15
|
+
* }
|
|
16
|
+
*/
|
|
17
|
+
import { startMcpServer } from "./mcp/server.js";
|
|
18
|
+
startMcpServer().catch((error) => {
|
|
19
|
+
console.error("Failed to start MCP server:", error);
|
|
20
|
+
process.exit(1);
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=mcp-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC/B,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Import Parser Module
|
|
3
|
+
*
|
|
4
|
+
* Parses TypeScript/JavaScript import statements to find related files.
|
|
5
|
+
* Uses regex patterns instead of AST parsing for simplicity and speed.
|
|
6
|
+
*/
|
|
7
|
+
/** Parsed import statement */
|
|
8
|
+
export interface ParsedImport {
|
|
9
|
+
/** Original import specifier (e.g., './utils', 'lodash') */
|
|
10
|
+
specifier: string;
|
|
11
|
+
/** Type of import */
|
|
12
|
+
type: 'relative' | 'absolute' | 'package';
|
|
13
|
+
/** Line number where import appears (1-indexed) */
|
|
14
|
+
line: number;
|
|
15
|
+
/** Named imports (e.g., ['foo', 'bar'] from `import { foo, bar } from ...`) */
|
|
16
|
+
namedImports?: string[];
|
|
17
|
+
/** Default import name */
|
|
18
|
+
defaultImport?: string;
|
|
19
|
+
/** Whether it's a type-only import */
|
|
20
|
+
isTypeOnly: boolean;
|
|
21
|
+
}
|
|
22
|
+
/** Result of import parsing */
|
|
23
|
+
export interface ImportParseResult {
|
|
24
|
+
/** All parsed imports */
|
|
25
|
+
imports: ParsedImport[];
|
|
26
|
+
/** Resolved relative paths to related files */
|
|
27
|
+
relatedFiles: string[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Supported import patterns:
|
|
31
|
+
* - import { foo, bar } from './module'
|
|
32
|
+
* - import * as name from './module'
|
|
33
|
+
* - import name from './module'
|
|
34
|
+
* - import './module'
|
|
35
|
+
* - import type { Foo } from './module'
|
|
36
|
+
* - export { foo } from './module'
|
|
37
|
+
* - export * from './module'
|
|
38
|
+
* - const x = require('./module')
|
|
39
|
+
* - const x = await import('./module')
|
|
40
|
+
*/
|
|
41
|
+
/**
|
|
42
|
+
* Parse imports from source code
|
|
43
|
+
*/
|
|
44
|
+
export declare function parseImports(content: string): ParsedImport[];
|
|
45
|
+
/**
|
|
46
|
+
* Classify import type based on specifier
|
|
47
|
+
*/
|
|
48
|
+
export declare function classifyImportType(specifier: string): 'relative' | 'absolute' | 'package';
|
|
49
|
+
/**
|
|
50
|
+
* Resolve a relative import specifier to an actual file path
|
|
51
|
+
*/
|
|
52
|
+
export declare function resolveImport(specifier: string, fromFile: string, basePath: string): string | null;
|
|
53
|
+
/**
|
|
54
|
+
* Parse imports and resolve related files
|
|
55
|
+
*/
|
|
56
|
+
export declare function parseImportsWithResolution(content: string, filePath: string, basePath: string): ImportParseResult;
|
|
57
|
+
/**
|
|
58
|
+
* Extract all import specifiers from content (quick extraction without full parsing)
|
|
59
|
+
*/
|
|
60
|
+
export declare function extractImportSpecifiers(content: string): string[];
|
|
61
|
+
/**
|
|
62
|
+
* Check if a file is TypeScript/JavaScript
|
|
63
|
+
*/
|
|
64
|
+
export declare function isJsTsFile(filePath: string): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Build a simple dependency graph for files
|
|
67
|
+
*/
|
|
68
|
+
export declare function buildDependencyGraph(files: Array<{
|
|
69
|
+
path: string;
|
|
70
|
+
content: string;
|
|
71
|
+
}>, basePath: string): Map<string, string[]>;
|
|
72
|
+
/**
|
|
73
|
+
* Find files that import a given file (reverse dependencies)
|
|
74
|
+
*/
|
|
75
|
+
export declare function findImporters(targetFile: string, dependencyGraph: Map<string, string[]>): string[];
|
|
76
|
+
//# sourceMappingURL=imports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../src/retrieval/imports.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,8BAA8B;AAC9B,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IAC1C,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,+BAA+B;AAC/B,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;;;;;;GAWG;AAEH;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAiB5D;AA8HD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAQzF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CA+Bf;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,iBAAiB,CAcnB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAejE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGpD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EAC/C,QAAQ,EAAE,MAAM,GACf,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAcvB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GACrC,MAAM,EAAE,CAUV"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Import Parser Module
|
|
3
|
+
*
|
|
4
|
+
* Parses TypeScript/JavaScript import statements to find related files.
|
|
5
|
+
* Uses regex patterns instead of AST parsing for simplicity and speed.
|
|
6
|
+
*/
|
|
7
|
+
import { resolve, dirname, extname } from 'path';
|
|
8
|
+
import { existsSync } from 'fs';
|
|
9
|
+
/**
|
|
10
|
+
* Supported import patterns:
|
|
11
|
+
* - import { foo, bar } from './module'
|
|
12
|
+
* - import * as name from './module'
|
|
13
|
+
* - import name from './module'
|
|
14
|
+
* - import './module'
|
|
15
|
+
* - import type { Foo } from './module'
|
|
16
|
+
* - export { foo } from './module'
|
|
17
|
+
* - export * from './module'
|
|
18
|
+
* - const x = require('./module')
|
|
19
|
+
* - const x = await import('./module')
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Parse imports from source code
|
|
23
|
+
*/
|
|
24
|
+
export function parseImports(content) {
|
|
25
|
+
const imports = [];
|
|
26
|
+
const lines = content.split('\n');
|
|
27
|
+
for (let lineIdx = 0; lineIdx < lines.length; lineIdx++) {
|
|
28
|
+
const line = lines[lineIdx];
|
|
29
|
+
const lineNum = lineIdx + 1;
|
|
30
|
+
// Skip comments
|
|
31
|
+
const trimmed = line.trim();
|
|
32
|
+
if (trimmed.startsWith('//') || trimmed.startsWith('*'))
|
|
33
|
+
continue;
|
|
34
|
+
// Try each import pattern
|
|
35
|
+
parseLineImports(line, lineNum, imports);
|
|
36
|
+
}
|
|
37
|
+
return imports;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Parse imports from a single line
|
|
41
|
+
*/
|
|
42
|
+
function parseLineImports(line, lineNum, imports) {
|
|
43
|
+
// ES6 imports with named imports
|
|
44
|
+
const namedImportMatch = line.match(/^import\s+(type\s+)?{([^}]+)}\s+from\s+['"]([^'"]+)['"]/);
|
|
45
|
+
if (namedImportMatch) {
|
|
46
|
+
const isTypeOnly = !!namedImportMatch[1];
|
|
47
|
+
const namedImports = namedImportMatch[2]
|
|
48
|
+
.split(',')
|
|
49
|
+
.map((n) => n.trim().split(/\s+as\s+/)[0].trim())
|
|
50
|
+
.filter(Boolean);
|
|
51
|
+
const specifier = namedImportMatch[3];
|
|
52
|
+
imports.push({
|
|
53
|
+
specifier,
|
|
54
|
+
type: classifyImportType(specifier),
|
|
55
|
+
line: lineNum,
|
|
56
|
+
namedImports,
|
|
57
|
+
isTypeOnly,
|
|
58
|
+
});
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
// ES6 import with default + named: import Default, { named } from 'specifier'
|
|
62
|
+
const mixedImportMatch = line.match(/^import\s+(\w+)\s*,\s*{([^}]+)}\s+from\s+['"]([^'"]+)['"]/);
|
|
63
|
+
if (mixedImportMatch) {
|
|
64
|
+
const defaultImport = mixedImportMatch[1];
|
|
65
|
+
const namedImports = mixedImportMatch[2]
|
|
66
|
+
.split(',')
|
|
67
|
+
.map((n) => n.trim().split(/\s+as\s+/)[0].trim())
|
|
68
|
+
.filter(Boolean);
|
|
69
|
+
const specifier = mixedImportMatch[3];
|
|
70
|
+
imports.push({
|
|
71
|
+
specifier,
|
|
72
|
+
type: classifyImportType(specifier),
|
|
73
|
+
line: lineNum,
|
|
74
|
+
defaultImport,
|
|
75
|
+
namedImports,
|
|
76
|
+
isTypeOnly: false,
|
|
77
|
+
});
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
// ES6 namespace import: import * as name from 'specifier'
|
|
81
|
+
const namespaceMatch = line.match(/^import\s+\*\s+as\s+(\w+)\s+from\s+['"]([^'"]+)['"]/);
|
|
82
|
+
if (namespaceMatch) {
|
|
83
|
+
imports.push({
|
|
84
|
+
specifier: namespaceMatch[2],
|
|
85
|
+
type: classifyImportType(namespaceMatch[2]),
|
|
86
|
+
line: lineNum,
|
|
87
|
+
defaultImport: namespaceMatch[1],
|
|
88
|
+
isTypeOnly: false,
|
|
89
|
+
});
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
// ES6 default import: import name from 'specifier'
|
|
93
|
+
const defaultImportMatch = line.match(/^import\s+(\w+)\s+from\s+['"]([^'"]+)['"]/);
|
|
94
|
+
if (defaultImportMatch) {
|
|
95
|
+
imports.push({
|
|
96
|
+
specifier: defaultImportMatch[2],
|
|
97
|
+
type: classifyImportType(defaultImportMatch[2]),
|
|
98
|
+
line: lineNum,
|
|
99
|
+
defaultImport: defaultImportMatch[1],
|
|
100
|
+
isTypeOnly: false,
|
|
101
|
+
});
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
// Side-effect only import: import 'specifier'
|
|
105
|
+
const sideEffectMatch = line.match(/^import\s+['"]([^'"]+)['"]/);
|
|
106
|
+
if (sideEffectMatch) {
|
|
107
|
+
imports.push({
|
|
108
|
+
specifier: sideEffectMatch[1],
|
|
109
|
+
type: classifyImportType(sideEffectMatch[1]),
|
|
110
|
+
line: lineNum,
|
|
111
|
+
isTypeOnly: false,
|
|
112
|
+
});
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
// Export from: export { foo } from 'specifier' or export * from 'specifier'
|
|
116
|
+
const exportFromMatch = line.match(/^export\s+(?:type\s+)?(?:{[^}]*}|\*(?:\s+as\s+\w+)?)\s+from\s+['"]([^'"]+)['"]/);
|
|
117
|
+
if (exportFromMatch) {
|
|
118
|
+
const isTypeOnly = line.includes('export type');
|
|
119
|
+
imports.push({
|
|
120
|
+
specifier: exportFromMatch[1],
|
|
121
|
+
type: classifyImportType(exportFromMatch[1]),
|
|
122
|
+
line: lineNum,
|
|
123
|
+
isTypeOnly,
|
|
124
|
+
});
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
// CommonJS require
|
|
128
|
+
const requireMatch = line.match(/require\s*\(\s*['"]([^'"]+)['"]\s*\)/);
|
|
129
|
+
if (requireMatch) {
|
|
130
|
+
imports.push({
|
|
131
|
+
specifier: requireMatch[1],
|
|
132
|
+
type: classifyImportType(requireMatch[1]),
|
|
133
|
+
line: lineNum,
|
|
134
|
+
isTypeOnly: false,
|
|
135
|
+
});
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
// Dynamic import
|
|
139
|
+
const dynamicMatch = line.match(/import\s*\(\s*['"]([^'"]+)['"]\s*\)/);
|
|
140
|
+
if (dynamicMatch) {
|
|
141
|
+
imports.push({
|
|
142
|
+
specifier: dynamicMatch[1],
|
|
143
|
+
type: classifyImportType(dynamicMatch[1]),
|
|
144
|
+
line: lineNum,
|
|
145
|
+
isTypeOnly: false,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Classify import type based on specifier
|
|
151
|
+
*/
|
|
152
|
+
export function classifyImportType(specifier) {
|
|
153
|
+
if (specifier.startsWith('.')) {
|
|
154
|
+
return 'relative';
|
|
155
|
+
}
|
|
156
|
+
if (specifier.startsWith('/') || /^[a-zA-Z]:/.test(specifier)) {
|
|
157
|
+
return 'absolute';
|
|
158
|
+
}
|
|
159
|
+
return 'package';
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Resolve a relative import specifier to an actual file path
|
|
163
|
+
*/
|
|
164
|
+
export function resolveImport(specifier, fromFile, basePath) {
|
|
165
|
+
// Only handle relative imports
|
|
166
|
+
if (!specifier.startsWith('.')) {
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
const fromDir = dirname(fromFile);
|
|
170
|
+
const resolvedBase = resolve(basePath, fromDir, specifier);
|
|
171
|
+
// Try different extensions and index files
|
|
172
|
+
const candidates = [
|
|
173
|
+
resolvedBase,
|
|
174
|
+
`${resolvedBase}.ts`,
|
|
175
|
+
`${resolvedBase}.tsx`,
|
|
176
|
+
`${resolvedBase}.js`,
|
|
177
|
+
`${resolvedBase}.jsx`,
|
|
178
|
+
`${resolvedBase}.mjs`,
|
|
179
|
+
`${resolvedBase}/index.ts`,
|
|
180
|
+
`${resolvedBase}/index.tsx`,
|
|
181
|
+
`${resolvedBase}/index.js`,
|
|
182
|
+
`${resolvedBase}/index.jsx`,
|
|
183
|
+
];
|
|
184
|
+
for (const candidate of candidates) {
|
|
185
|
+
if (existsSync(candidate)) {
|
|
186
|
+
// Return path relative to basePath
|
|
187
|
+
return candidate.replace(basePath + '/', '');
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Parse imports and resolve related files
|
|
194
|
+
*/
|
|
195
|
+
export function parseImportsWithResolution(content, filePath, basePath) {
|
|
196
|
+
const imports = parseImports(content);
|
|
197
|
+
const relatedFiles = [];
|
|
198
|
+
for (const imp of imports) {
|
|
199
|
+
if (imp.type === 'relative') {
|
|
200
|
+
const resolved = resolveImport(imp.specifier, filePath, basePath);
|
|
201
|
+
if (resolved && !relatedFiles.includes(resolved)) {
|
|
202
|
+
relatedFiles.push(resolved);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return { imports, relatedFiles };
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Extract all import specifiers from content (quick extraction without full parsing)
|
|
210
|
+
*/
|
|
211
|
+
export function extractImportSpecifiers(content) {
|
|
212
|
+
const specifiers = [];
|
|
213
|
+
// Combined pattern for common import forms
|
|
214
|
+
const importPattern = /(?:import|require|from)\s*\(?['"]([^'"]+)['"]\)?/g;
|
|
215
|
+
let match;
|
|
216
|
+
while ((match = importPattern.exec(content)) !== null) {
|
|
217
|
+
const spec = match[1];
|
|
218
|
+
if (!specifiers.includes(spec)) {
|
|
219
|
+
specifiers.push(spec);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return specifiers;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Check if a file is TypeScript/JavaScript
|
|
226
|
+
*/
|
|
227
|
+
export function isJsTsFile(filePath) {
|
|
228
|
+
const ext = extname(filePath).toLowerCase();
|
|
229
|
+
return ['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs'].includes(ext);
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Build a simple dependency graph for files
|
|
233
|
+
*/
|
|
234
|
+
export function buildDependencyGraph(files, basePath) {
|
|
235
|
+
const graph = new Map();
|
|
236
|
+
for (const file of files) {
|
|
237
|
+
if (!isJsTsFile(file.path)) {
|
|
238
|
+
graph.set(file.path, []);
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
241
|
+
const { relatedFiles } = parseImportsWithResolution(file.content, file.path, basePath);
|
|
242
|
+
graph.set(file.path, relatedFiles);
|
|
243
|
+
}
|
|
244
|
+
return graph;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Find files that import a given file (reverse dependencies)
|
|
248
|
+
*/
|
|
249
|
+
export function findImporters(targetFile, dependencyGraph) {
|
|
250
|
+
const importers = [];
|
|
251
|
+
for (const [file, deps] of dependencyGraph) {
|
|
252
|
+
if (deps.includes(targetFile)) {
|
|
253
|
+
importers.push(file);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return importers;
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=imports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/retrieval/imports.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,8 @@ export declare function fitToBudget(chunks: RankedChunk[], budget: number): Budg
|
|
|
21
21
|
/**
|
|
22
22
|
* Merge adjacent chunks from the same file
|
|
23
23
|
* (Optional optimization for cleaner output)
|
|
24
|
+
*
|
|
25
|
+
* Handles overlapping chunks by removing duplicate lines.
|
|
24
26
|
*/
|
|
25
27
|
export declare function mergeAdjacentChunks(chunks: RankedChunk[]): RankedChunk[];
|
|
26
28
|
//# sourceMappingURL=budget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/selector/budget.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,uBAAuB;AACvB,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAsC/E;AAED
|
|
1
|
+
{"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/selector/budget.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,uBAAuB;AACvB,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAsC/E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CA8CxE"}
|
package/dist/selector/budget.js
CHANGED
|
@@ -43,6 +43,8 @@ export function fitToBudget(chunks, budget) {
|
|
|
43
43
|
/**
|
|
44
44
|
* Merge adjacent chunks from the same file
|
|
45
45
|
* (Optional optimization for cleaner output)
|
|
46
|
+
*
|
|
47
|
+
* Handles overlapping chunks by removing duplicate lines.
|
|
46
48
|
*/
|
|
47
49
|
export function mergeAdjacentChunks(chunks) {
|
|
48
50
|
if (chunks.length <= 1)
|
|
@@ -51,15 +53,26 @@ export function mergeAdjacentChunks(chunks) {
|
|
|
51
53
|
let current = { ...chunks[0] };
|
|
52
54
|
for (let i = 1; i < chunks.length; i++) {
|
|
53
55
|
const next = chunks[i];
|
|
54
|
-
// Check if adjacent (same file,
|
|
55
|
-
const
|
|
56
|
-
if (
|
|
57
|
-
//
|
|
56
|
+
// Check if adjacent or overlapping (same file, lines touch or overlap)
|
|
57
|
+
const isAdjacentOrOverlapping = current.filePath === next.filePath && current.endLine + 1 >= next.startLine;
|
|
58
|
+
if (isAdjacentOrOverlapping) {
|
|
59
|
+
// Calculate overlap
|
|
60
|
+
const overlapLines = Math.max(0, current.endLine - next.startLine + 1);
|
|
61
|
+
// Get the non-overlapping part of the next chunk
|
|
62
|
+
let nextContent = next.content;
|
|
63
|
+
if (overlapLines > 0) {
|
|
64
|
+
const nextLines = next.content.split('\n');
|
|
65
|
+
// Skip the overlapping lines from the beginning of next chunk
|
|
66
|
+
nextContent = nextLines.slice(overlapLines).join('\n');
|
|
67
|
+
}
|
|
68
|
+
// Merge chunks, avoiding duplicate content
|
|
69
|
+
const mergedContent = nextContent.length > 0 ? current.content + '\n' + nextContent : current.content;
|
|
58
70
|
current = {
|
|
59
71
|
...current,
|
|
60
|
-
content:
|
|
72
|
+
content: mergedContent,
|
|
61
73
|
endLine: next.endLine,
|
|
62
|
-
|
|
74
|
+
// Recalculate tokens (approximate)
|
|
75
|
+
tokens: current.tokens + next.tokens - (overlapLines > 0 ? Math.floor(next.tokens * (overlapLines / (next.endLine - next.startLine + 1))) : 0),
|
|
63
76
|
score: Math.max(current.score, next.score),
|
|
64
77
|
similarity: Math.max(current.similarity, next.similarity),
|
|
65
78
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/selector/budget.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAqB,EAAE,MAAc;IAC/D,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,4CAA4C;IAC5C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAExD,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,EAAE,CAAC;YACX,SAAS;QACX,CAAC;QAED,0DAA0D;QAC1D,oDAAoD;QACpD,4DAA4D;QAC5D,iDAAiD;QAEjD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;QAC5B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,kEAAkE;IAClE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrB,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,WAAW,KAAK,CAAC;YAAE,OAAO,WAAW,CAAC;QAC1C,OAAO,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,WAAW;QACX,QAAQ;KACT,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/selector/budget.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
* Output Formatter Module
|
|
3
3
|
*
|
|
4
4
|
* Formats selected chunks for display.
|
|
5
|
+
* Supports multiple output formats: markdown, xml, json, plain
|
|
5
6
|
*/
|
|
6
7
|
import type { BudgetResult } from './budget.js';
|
|
8
|
+
/** Supported output formats */
|
|
9
|
+
export type OutputFormat = 'markdown' | 'xml' | 'json' | 'plain';
|
|
7
10
|
/** Formatted output */
|
|
8
11
|
export interface FormattedOutput {
|
|
9
12
|
/** Human-readable text output */
|
|
@@ -41,4 +44,16 @@ export declare function formatOutput(query: string, result: BudgetResult, totalC
|
|
|
41
44
|
* Format output with --explain details
|
|
42
45
|
*/
|
|
43
46
|
export declare function formatWithExplanation(query: string, result: BudgetResult, totalConsidered: number, timeMs: number): FormattedOutput;
|
|
47
|
+
/**
|
|
48
|
+
* Format output as XML (Claude prefers XML for structured content)
|
|
49
|
+
*/
|
|
50
|
+
export declare function formatAsXml(query: string, result: BudgetResult, totalConsidered: number, timeMs: number): FormattedOutput;
|
|
51
|
+
/**
|
|
52
|
+
* Format output as plain text (optimized for clipboard/pasting)
|
|
53
|
+
*/
|
|
54
|
+
export declare function formatAsPlain(query: string, result: BudgetResult, totalConsidered: number, timeMs: number): FormattedOutput;
|
|
55
|
+
/**
|
|
56
|
+
* Format output in specified format
|
|
57
|
+
*/
|
|
58
|
+
export declare function formatInFormat(format: OutputFormat, query: string, result: BudgetResult, totalConsidered: number, timeMs: number, explain?: boolean): FormattedOutput;
|
|
44
59
|
//# sourceMappingURL=formatter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/selector/formatter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/selector/formatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,+BAA+B;AAC/B,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAEjE,uBAAuB;AACvB,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,gCAAgC;AAChC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,EAAE,cAAc,CAAC;CACvB;AAED,iCAAiC;AACjC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,2BAA2B;AAC3B,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,YAAY,EACpB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GACb,eAAe,CAqDjB;AA8CD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,YAAY,EACpB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GACb,eAAe,CAqBjB;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,YAAY,EACpB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GACb,eAAe,CA2DjB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,YAAY,EACpB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GACb,eAAe,CAgDjB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,YAAY,EACpB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAe,GACvB,eAAe,CAoBjB"}
|