skannr 0.1.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.
- package/.eslintrc.js +22 -0
- package/README.md +109 -0
- package/dist/agent-cli.d.ts +7 -0
- package/dist/agent-cli.d.ts.map +1 -0
- package/dist/agent-cli.js +364 -0
- package/dist/agent-cli.js.map +1 -0
- package/dist/agent.d.ts +115 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +340 -0
- package/dist/agent.js.map +1 -0
- package/dist/benchmark.d.ts +53 -0
- package/dist/benchmark.d.ts.map +1 -0
- package/dist/benchmark.js +307 -0
- package/dist/benchmark.js.map +1 -0
- package/dist/cache.d.ts +97 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +284 -0
- package/dist/cache.js.map +1 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +238 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +8 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +52 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +176 -0
- package/dist/index.js.map +1 -0
- package/dist/languages/GenericAdapter.d.ts +10 -0
- package/dist/languages/GenericAdapter.d.ts.map +1 -0
- package/dist/languages/GenericAdapter.js +41 -0
- package/dist/languages/GenericAdapter.js.map +1 -0
- package/dist/languages/LanguageAdapter.d.ts +14 -0
- package/dist/languages/LanguageAdapter.d.ts.map +1 -0
- package/dist/languages/LanguageAdapter.js +3 -0
- package/dist/languages/LanguageAdapter.js.map +1 -0
- package/dist/languages/PythonAdapter.d.ts +10 -0
- package/dist/languages/PythonAdapter.d.ts.map +1 -0
- package/dist/languages/PythonAdapter.js +98 -0
- package/dist/languages/PythonAdapter.js.map +1 -0
- package/dist/languages/TypeScriptAdapter.d.ts +17 -0
- package/dist/languages/TypeScriptAdapter.d.ts.map +1 -0
- package/dist/languages/TypeScriptAdapter.js +321 -0
- package/dist/languages/TypeScriptAdapter.js.map +1 -0
- package/dist/languages/registry.d.ts +4 -0
- package/dist/languages/registry.d.ts.map +1 -0
- package/dist/languages/registry.js +86 -0
- package/dist/languages/registry.js.map +1 -0
- package/dist/mapper.d.ts +49 -0
- package/dist/mapper.d.ts.map +1 -0
- package/dist/mapper.js +386 -0
- package/dist/mapper.js.map +1 -0
- package/dist/ranker-enhanced.d.ts +37 -0
- package/dist/ranker-enhanced.d.ts.map +1 -0
- package/dist/ranker-enhanced.js +395 -0
- package/dist/ranker-enhanced.js.map +1 -0
- package/dist/ranker.d.ts +14 -0
- package/dist/ranker.d.ts.map +1 -0
- package/dist/ranker.js +105 -0
- package/dist/ranker.js.map +1 -0
- package/dist/rocket-chat-scope.d.ts +7 -0
- package/dist/rocket-chat-scope.d.ts.map +1 -0
- package/dist/rocket-chat-scope.js +95 -0
- package/dist/rocket-chat-scope.js.map +1 -0
- package/dist/scanner.d.ts +16 -0
- package/dist/scanner.d.ts.map +1 -0
- package/dist/scanner.js +228 -0
- package/dist/scanner.js.map +1 -0
- package/dist/skeletonizer.d.ts +5 -0
- package/dist/skeletonizer.d.ts.map +1 -0
- package/dist/skeletonizer.js +52 -0
- package/dist/skeletonizer.js.map +1 -0
- package/dist/tokenizer.d.ts +9 -0
- package/dist/tokenizer.d.ts.map +1 -0
- package/dist/tokenizer.js +21 -0
- package/dist/tokenizer.js.map +1 -0
- package/dist/types.d.ts +68 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/gemini-extension/GEMINI.md +26 -0
- package/gemini-extension/gemini-extension.json +12 -0
- package/gemini-extension/package.json +14 -0
- package/gemini-extension/src/server.ts +63 -0
- package/gemini-extension/tsconfig.json +14 -0
- package/jest.config.js +5 -0
- package/package.json +46 -0
- package/src/agent-cli.ts +383 -0
- package/src/agent.ts +344 -0
- package/src/benchmark.ts +389 -0
- package/src/cache.ts +317 -0
- package/src/cli.ts +223 -0
- package/src/config.ts +22 -0
- package/src/index.ts +215 -0
- package/src/languages/GenericAdapter.ts +44 -0
- package/src/languages/LanguageAdapter.ts +14 -0
- package/src/languages/PythonAdapter.ts +74 -0
- package/src/languages/TypeScriptAdapter.ts +338 -0
- package/src/languages/registry.ts +49 -0
- package/src/mapper.ts +448 -0
- package/src/ranker-enhanced.ts +460 -0
- package/src/ranker.ts +92 -0
- package/src/scanner.ts +201 -0
- package/src/skeletonizer.ts +16 -0
- package/src/tokenizer.ts +20 -0
- package/src/types.ts +71 -0
- package/tests/agent.tools.test.ts +81 -0
- package/tests/benchmark.test.ts +31 -0
- package/tests/fixtures/sample.py +17 -0
- package/tests/fixtures/sample.ts +13 -0
- package/tests/fixtures/src/api/routes.ts +1 -0
- package/tests/fixtures/src/auth/permission.ts +3 -0
- package/tests/ranker-enhanced.test.ts +68 -0
- package/tests/ranker.test.ts +75 -0
- package/tests/scanner.scope.test.ts +41 -0
- package/tests/setup-fixtures.js +29 -0
- package/tests/skeletonizer.test.ts +142 -0
- package/tsconfig.json +21 -0
- package/uca-landing/index.html +17 -0
- package/uca-landing/package.json +23 -0
- package/uca-landing/postcss.config.js +6 -0
- package/uca-landing/src/App.jsx +43 -0
- package/uca-landing/src/components/AgentMode.jsx +45 -0
- package/uca-landing/src/components/CliReference.jsx +49 -0
- package/uca-landing/src/components/Features.jsx +63 -0
- package/uca-landing/src/components/Footer.jsx +35 -0
- package/uca-landing/src/components/Hero.jsx +124 -0
- package/uca-landing/src/components/HowItWorks.jsx +60 -0
- package/uca-landing/src/components/Install.jsx +90 -0
- package/uca-landing/src/components/LanguageSupport.jsx +63 -0
- package/uca-landing/src/components/Navbar.jsx +86 -0
- package/uca-landing/src/components/Problem.jsx +51 -0
- package/uca-landing/src/components/Reveal.jsx +40 -0
- package/uca-landing/src/components/WorksWith.jsx +59 -0
- package/uca-landing/src/hooks/useScrollNav.js +13 -0
- package/uca-landing/src/hooks/useTypewriter.js +41 -0
- package/uca-landing/src/index.css +13 -0
- package/uca-landing/src/main.jsx +10 -0
- package/uca-landing/tailwind.config.js +68 -0
- package/uca-landing/vite.config.js +6 -0
package/dist/mapper.js
ADDED
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Symbol mapping system for on-demand code retrieval
|
|
4
|
+
* Tracks locations of all code blocks that were trimmed in skeletons
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.buildSkeletonWithMapping = buildSkeletonWithMapping;
|
|
41
|
+
exports.getSymbolDetails = getSymbolDetails;
|
|
42
|
+
exports.saveMappingToFile = saveMappingToFile;
|
|
43
|
+
exports.loadMappingFromFile = loadMappingFromFile;
|
|
44
|
+
const ts_morph_1 = require("ts-morph");
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
const fs = __importStar(require("fs"));
|
|
47
|
+
/**
|
|
48
|
+
* Build skeleton with symbol mapping for on-demand retrieval
|
|
49
|
+
*/
|
|
50
|
+
function buildSkeletonWithMapping(filePath, rootPath) {
|
|
51
|
+
const symbols = [];
|
|
52
|
+
try {
|
|
53
|
+
const project = new ts_morph_1.Project({
|
|
54
|
+
skipAddingFilesFromTsConfig: true,
|
|
55
|
+
compilerOptions: {
|
|
56
|
+
allowJs: true,
|
|
57
|
+
checkJs: false,
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
const sourceFile = project.addSourceFileAtPath(filePath);
|
|
61
|
+
const skeleton = generateSkeletonWithMapping(sourceFile, filePath, symbols, rootPath);
|
|
62
|
+
return { skeleton, symbols };
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
return {
|
|
66
|
+
skeleton: `/* Failed to parse file: ${error instanceof Error ? error.message : 'Unknown error'} */`,
|
|
67
|
+
symbols: [],
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Generate skeleton and populate symbol mapping
|
|
73
|
+
*/
|
|
74
|
+
function generateSkeletonWithMapping(sourceFile, filePath, symbols, rootPath) {
|
|
75
|
+
const lines = [];
|
|
76
|
+
const fileName = path.basename(filePath);
|
|
77
|
+
lines.push(`/* Skeleton of ${fileName} - Generated with symbol mapping */\n`);
|
|
78
|
+
// Imports
|
|
79
|
+
const imports = sourceFile.getImportDeclarations();
|
|
80
|
+
for (const imp of imports) {
|
|
81
|
+
lines.push(imp.getText());
|
|
82
|
+
}
|
|
83
|
+
if (imports.length > 0)
|
|
84
|
+
lines.push('');
|
|
85
|
+
// Classes
|
|
86
|
+
const classes = sourceFile.getClasses();
|
|
87
|
+
for (const cls of classes) {
|
|
88
|
+
lines.push(processClassWithMapping(cls, filePath, symbols, rootPath));
|
|
89
|
+
lines.push('');
|
|
90
|
+
}
|
|
91
|
+
// Interfaces (no mapping needed - no implementation)
|
|
92
|
+
const interfaces = sourceFile.getInterfaces();
|
|
93
|
+
for (const iface of interfaces) {
|
|
94
|
+
lines.push(iface.getText());
|
|
95
|
+
lines.push('');
|
|
96
|
+
}
|
|
97
|
+
// Type aliases
|
|
98
|
+
const typeAliases = sourceFile.getTypeAliases();
|
|
99
|
+
for (const typeAlias of typeAliases) {
|
|
100
|
+
lines.push(typeAlias.getText());
|
|
101
|
+
lines.push('');
|
|
102
|
+
}
|
|
103
|
+
// Enums
|
|
104
|
+
const enums = sourceFile.getEnums();
|
|
105
|
+
for (const enumDecl of enums) {
|
|
106
|
+
lines.push(enumDecl.getText());
|
|
107
|
+
lines.push('');
|
|
108
|
+
}
|
|
109
|
+
// Top-level functions
|
|
110
|
+
const functions = sourceFile.getFunctions();
|
|
111
|
+
for (const func of functions) {
|
|
112
|
+
lines.push(processFunctionWithMapping(func, filePath, symbols, rootPath));
|
|
113
|
+
lines.push('');
|
|
114
|
+
}
|
|
115
|
+
// Variables (including arrow functions)
|
|
116
|
+
const variables = sourceFile.getVariableStatements();
|
|
117
|
+
for (const varStatement of variables) {
|
|
118
|
+
lines.push(processVariableStatementWithMapping(varStatement, filePath, symbols, rootPath));
|
|
119
|
+
lines.push('');
|
|
120
|
+
}
|
|
121
|
+
// Export declarations
|
|
122
|
+
const exportDeclarations = sourceFile.getExportDeclarations();
|
|
123
|
+
for (const exportDecl of exportDeclarations) {
|
|
124
|
+
lines.push(exportDecl.getText());
|
|
125
|
+
}
|
|
126
|
+
const exportAssignments = sourceFile.getExportAssignments();
|
|
127
|
+
for (const exportAssign of exportAssignments) {
|
|
128
|
+
lines.push(exportAssign.getText());
|
|
129
|
+
}
|
|
130
|
+
return lines.join('\n').trim();
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Process class and map methods
|
|
134
|
+
*/
|
|
135
|
+
function processClassWithMapping(cls, filePath, symbols, rootPath) {
|
|
136
|
+
const lines = [];
|
|
137
|
+
const className = cls.getName() || 'Anonymous';
|
|
138
|
+
const modifiers = cls.getModifiers().map((m) => m.getText()).join(' ');
|
|
139
|
+
let classDecl = modifiers ? `${modifiers} class` : 'class';
|
|
140
|
+
classDecl += ` ${className}`;
|
|
141
|
+
const typeParams = cls.getTypeParameters();
|
|
142
|
+
if (typeParams.length > 0) {
|
|
143
|
+
classDecl += `<${typeParams.map((tp) => tp.getText()).join(', ')}>`;
|
|
144
|
+
}
|
|
145
|
+
const extendsClause = cls.getExtends();
|
|
146
|
+
if (extendsClause) {
|
|
147
|
+
classDecl += ` extends ${extendsClause.getText()}`;
|
|
148
|
+
}
|
|
149
|
+
const implementsClauses = cls.getImplements();
|
|
150
|
+
if (implementsClauses.length > 0) {
|
|
151
|
+
classDecl += ` implements ${implementsClauses.map((ic) => ic.getText()).join(', ')}`;
|
|
152
|
+
}
|
|
153
|
+
classDecl += ' {';
|
|
154
|
+
lines.push(classDecl);
|
|
155
|
+
// Properties
|
|
156
|
+
const properties = cls.getProperties();
|
|
157
|
+
for (const prop of properties) {
|
|
158
|
+
const propModifiers = prop.getModifiers().map((m) => m.getText()).join(' ');
|
|
159
|
+
const propName = prop.getName();
|
|
160
|
+
const propType = prop.getType().getText();
|
|
161
|
+
const propLine = propModifiers
|
|
162
|
+
? ` ${propModifiers} ${propName}: ${propType};`
|
|
163
|
+
: ` ${propName}: ${propType};`;
|
|
164
|
+
lines.push(propLine);
|
|
165
|
+
}
|
|
166
|
+
if (properties.length > 0)
|
|
167
|
+
lines.push('');
|
|
168
|
+
// Methods
|
|
169
|
+
const methods = cls.getMethods();
|
|
170
|
+
for (const method of methods) {
|
|
171
|
+
const methodName = method.getName();
|
|
172
|
+
const symbolId = `${className}.${methodName}`;
|
|
173
|
+
// Record symbol location
|
|
174
|
+
const startLineNum = method.getStartLineNumber();
|
|
175
|
+
const endLineNum = method.getEndLineNumber();
|
|
176
|
+
const startPos = method.getStart();
|
|
177
|
+
const endPos = method.getEnd();
|
|
178
|
+
symbols.push({
|
|
179
|
+
symbolId,
|
|
180
|
+
symbolName: methodName,
|
|
181
|
+
symbolType: 'method',
|
|
182
|
+
filePath: path.relative(rootPath, filePath),
|
|
183
|
+
startLine: startLineNum,
|
|
184
|
+
endLine: endLineNum,
|
|
185
|
+
startPos,
|
|
186
|
+
endPos,
|
|
187
|
+
parentClass: className,
|
|
188
|
+
signature: method.getText().split('{')[0].trim(),
|
|
189
|
+
});
|
|
190
|
+
lines.push(processMethodSignature(method, symbolId));
|
|
191
|
+
}
|
|
192
|
+
// Constructors
|
|
193
|
+
const constructors = cls.getConstructors();
|
|
194
|
+
for (const ctor of constructors) {
|
|
195
|
+
const symbolId = `${className}.constructor`;
|
|
196
|
+
const startLineNum = ctor.getStartLineNumber();
|
|
197
|
+
const endLineNum = ctor.getEndLineNumber();
|
|
198
|
+
symbols.push({
|
|
199
|
+
symbolId,
|
|
200
|
+
symbolName: 'constructor',
|
|
201
|
+
symbolType: 'constructor',
|
|
202
|
+
filePath: path.relative(rootPath, filePath),
|
|
203
|
+
startLine: startLineNum,
|
|
204
|
+
endLine: endLineNum,
|
|
205
|
+
startPos: ctor.getStart(),
|
|
206
|
+
endPos: ctor.getEnd(),
|
|
207
|
+
parentClass: className,
|
|
208
|
+
});
|
|
209
|
+
lines.push(processConstructorSignature(ctor, symbolId));
|
|
210
|
+
}
|
|
211
|
+
lines.push('}');
|
|
212
|
+
return lines.join('\n');
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Process method signature with symbol placeholder
|
|
216
|
+
*/
|
|
217
|
+
function processMethodSignature(method, symbolId) {
|
|
218
|
+
const lines = [];
|
|
219
|
+
const modifiers = method.getModifiers().map((m) => m.getText()).join(' ');
|
|
220
|
+
const name = method.getName();
|
|
221
|
+
const params = method.getParameters()
|
|
222
|
+
.map((p) => {
|
|
223
|
+
const pName = p.getName();
|
|
224
|
+
const pType = p.getType().getText();
|
|
225
|
+
const optional = p.isOptional() ? '?' : '';
|
|
226
|
+
return `${pName}${optional}: ${pType}`;
|
|
227
|
+
})
|
|
228
|
+
.join(', ');
|
|
229
|
+
const returnType = method.getReturnType().getText();
|
|
230
|
+
let signature = modifiers ? ` ${modifiers} ${name}` : ` ${name}`;
|
|
231
|
+
signature += `(${params}): ${returnType} {`;
|
|
232
|
+
lines.push(signature);
|
|
233
|
+
lines.push(` /* [SYMBOL:${symbolId}] - Implementation available via get_symbol_details */`);
|
|
234
|
+
lines.push(' }');
|
|
235
|
+
lines.push('');
|
|
236
|
+
return lines.join('\n');
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Process constructor signature
|
|
240
|
+
*/
|
|
241
|
+
function processConstructorSignature(ctor, symbolId) {
|
|
242
|
+
const lines = [];
|
|
243
|
+
const params = ctor.getParameters()
|
|
244
|
+
.map((p) => {
|
|
245
|
+
const modifiers = p.getModifiers().map((m) => m.getText()).join(' ');
|
|
246
|
+
const pName = p.getName();
|
|
247
|
+
const pType = p.getType().getText();
|
|
248
|
+
const optional = p.isOptional() ? '?' : '';
|
|
249
|
+
const paramStr = `${pName}${optional}: ${pType}`;
|
|
250
|
+
return modifiers ? `${modifiers} ${paramStr}` : paramStr;
|
|
251
|
+
})
|
|
252
|
+
.join(', ');
|
|
253
|
+
lines.push(` constructor(${params}) {`);
|
|
254
|
+
lines.push(` /* [SYMBOL:${symbolId}] - Implementation available via get_symbol_details */`);
|
|
255
|
+
lines.push(' }');
|
|
256
|
+
lines.push('');
|
|
257
|
+
return lines.join('\n');
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Process function with mapping
|
|
261
|
+
*/
|
|
262
|
+
function processFunctionWithMapping(func, filePath, symbols, rootPath) {
|
|
263
|
+
const lines = [];
|
|
264
|
+
const funcName = func.getName() || 'anonymous';
|
|
265
|
+
const symbolId = funcName;
|
|
266
|
+
// Record symbol
|
|
267
|
+
symbols.push({
|
|
268
|
+
symbolId,
|
|
269
|
+
symbolName: funcName,
|
|
270
|
+
symbolType: 'function',
|
|
271
|
+
filePath: path.relative(rootPath, filePath),
|
|
272
|
+
startLine: func.getStartLineNumber(),
|
|
273
|
+
endLine: func.getEndLineNumber(),
|
|
274
|
+
startPos: func.getStart(),
|
|
275
|
+
endPos: func.getEnd(),
|
|
276
|
+
signature: func.getText().split('{')[0].trim(),
|
|
277
|
+
});
|
|
278
|
+
const modifiers = func.getModifiers().map((m) => m.getText()).join(' ');
|
|
279
|
+
const params = func.getParameters()
|
|
280
|
+
.map((p) => {
|
|
281
|
+
const pName = p.getName();
|
|
282
|
+
const pType = p.getType().getText();
|
|
283
|
+
const optional = p.isOptional() ? '?' : '';
|
|
284
|
+
return `${pName}${optional}: ${pType}`;
|
|
285
|
+
})
|
|
286
|
+
.join(', ');
|
|
287
|
+
const returnType = func.getReturnType().getText();
|
|
288
|
+
let signature = modifiers ? `${modifiers} function` : 'function';
|
|
289
|
+
signature += ` ${funcName}(${params}): ${returnType} {`;
|
|
290
|
+
lines.push(signature);
|
|
291
|
+
lines.push(` /* [SYMBOL:${symbolId}] - Implementation available via get_symbol_details */`);
|
|
292
|
+
lines.push('}');
|
|
293
|
+
return lines.join('\n');
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Process variable statements (handles arrow functions)
|
|
297
|
+
*/
|
|
298
|
+
function processVariableStatementWithMapping(varStatement, filePath, symbols, rootPath) {
|
|
299
|
+
const lines = [];
|
|
300
|
+
const modifiers = varStatement.getModifiers().map((m) => m.getText()).join(' ');
|
|
301
|
+
const declarations = varStatement.getDeclarations();
|
|
302
|
+
const declarationKind = varStatement.getDeclarationKind();
|
|
303
|
+
for (const decl of declarations) {
|
|
304
|
+
const name = decl.getName();
|
|
305
|
+
const type = decl.getType().getText();
|
|
306
|
+
const initializer = decl.getInitializer();
|
|
307
|
+
if (initializer) {
|
|
308
|
+
const initText = initializer.getText();
|
|
309
|
+
// Check if it's an arrow function
|
|
310
|
+
if (initText.includes('=>') || initializer.getKind() === ts_morph_1.SyntaxKind.ArrowFunction) {
|
|
311
|
+
const symbolId = name;
|
|
312
|
+
symbols.push({
|
|
313
|
+
symbolId,
|
|
314
|
+
symbolName: name,
|
|
315
|
+
symbolType: 'arrow-function',
|
|
316
|
+
filePath: path.relative(rootPath, filePath),
|
|
317
|
+
startLine: decl.getStartLineNumber(),
|
|
318
|
+
endLine: decl.getEndLineNumber(),
|
|
319
|
+
startPos: decl.getStart(),
|
|
320
|
+
endPos: decl.getEnd(),
|
|
321
|
+
signature: `${declarationKind} ${name}: ${type}`,
|
|
322
|
+
});
|
|
323
|
+
const line = modifiers
|
|
324
|
+
? `${modifiers} ${declarationKind} ${name}: ${type} = /* [SYMBOL:${symbolId}] */;`
|
|
325
|
+
: `${declarationKind} ${name}: ${type} = /* [SYMBOL:${symbolId}] */;`;
|
|
326
|
+
lines.push(line);
|
|
327
|
+
}
|
|
328
|
+
else if (initText.length < 50 && !initText.includes('{')) {
|
|
329
|
+
// Simple value - keep it
|
|
330
|
+
const line = modifiers
|
|
331
|
+
? `${modifiers} ${declarationKind} ${name}: ${type} = ${initText};`
|
|
332
|
+
: `${declarationKind} ${name}: ${type} = ${initText};`;
|
|
333
|
+
lines.push(line);
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
// Complex value - stub it
|
|
337
|
+
const line = modifiers
|
|
338
|
+
? `${modifiers} ${declarationKind} ${name}: ${type} = /* trimmed */;`
|
|
339
|
+
: `${declarationKind} ${name}: ${type} = /* trimmed */;`;
|
|
340
|
+
lines.push(line);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
else {
|
|
344
|
+
const line = modifiers
|
|
345
|
+
? `${modifiers} ${declarationKind} ${name}: ${type};`
|
|
346
|
+
: `${declarationKind} ${name}: ${type};`;
|
|
347
|
+
lines.push(line);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
return lines.join('\n');
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Get symbol details by ID from mapping
|
|
354
|
+
*/
|
|
355
|
+
function getSymbolDetails(symbolId, mapping) {
|
|
356
|
+
for (const fileInfo of Object.values(mapping.files)) {
|
|
357
|
+
const symbol = fileInfo.symbols.find(s => s.symbolId === symbolId);
|
|
358
|
+
if (symbol) {
|
|
359
|
+
const fullPath = path.join(mapping.rootPath, symbol.filePath);
|
|
360
|
+
const fileContent = fs.readFileSync(fullPath, 'utf-8');
|
|
361
|
+
const lines = fileContent.split('\n');
|
|
362
|
+
const symbolContent = lines
|
|
363
|
+
.slice(symbol.startLine - 1, symbol.endLine)
|
|
364
|
+
.join('\n');
|
|
365
|
+
return {
|
|
366
|
+
content: symbolContent,
|
|
367
|
+
location: symbol,
|
|
368
|
+
};
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
return null;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Save mapping to JSON file
|
|
375
|
+
*/
|
|
376
|
+
function saveMappingToFile(mapping, outputPath) {
|
|
377
|
+
fs.writeFileSync(outputPath, JSON.stringify(mapping, null, 2), 'utf-8');
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Load mapping from JSON file
|
|
381
|
+
*/
|
|
382
|
+
function loadMappingFromFile(mappingPath) {
|
|
383
|
+
const content = fs.readFileSync(mappingPath, 'utf-8');
|
|
384
|
+
return JSON.parse(content);
|
|
385
|
+
}
|
|
386
|
+
//# sourceMappingURL=mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapper.js","sourceRoot":"","sources":["../src/mapper.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCH,4DAyBC;AA8VD,4CAqBC;AAKD,8CAEC;AAKD,kDAGC;AA1bD,uCAA2D;AAC3D,2CAA6B;AAC7B,uCAAyB;AA0BzB;;GAEG;AACH,SAAgB,wBAAwB,CACtC,QAAgB,EAChB,QAAgB;IAEhB,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,kBAAO,CAAC;YAC1B,2BAA2B,EAAE,IAAI;YACjC,eAAe,EAAE;gBACf,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,2BAA2B,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEtF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,QAAQ,EAAE,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,KAAK;YACnG,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,2BAA2B,CAClC,UAAsB,EACtB,QAAgB,EAChB,OAAyB,EACzB,QAAgB;IAEhB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEzC,KAAK,CAAC,IAAI,CAAC,kBAAkB,QAAQ,uCAAuC,CAAC,CAAC;IAE9E,UAAU;IACV,MAAM,OAAO,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC;IACnD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEvC,UAAU;IACV,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;IACxC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,qDAAqD;IACrD,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,eAAe;IACf,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;IAChD,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,QAAQ;IACR,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;IACpC,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,sBAAsB;IACtB,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,wCAAwC;IACxC,MAAM,SAAS,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC;IACrD,KAAK,MAAM,YAAY,IAAI,SAAS,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC3F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,sBAAsB;IACtB,MAAM,kBAAkB,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC;IAC9D,KAAK,MAAM,UAAU,IAAI,kBAAkB,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,iBAAiB,GAAG,UAAU,CAAC,oBAAoB,EAAE,CAAC;IAC5D,KAAK,MAAM,YAAY,IAAI,iBAAiB,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC9B,GAAQ,EACR,QAAgB,EAChB,OAAyB,EACzB,QAAgB;IAEhB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,WAAW,CAAC;IAE/C,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5E,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3D,SAAS,IAAI,IAAI,SAAS,EAAE,CAAC;IAE7B,MAAM,UAAU,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC;IAC3C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,SAAS,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC3E,CAAC;IAED,MAAM,aAAa,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;IACvC,IAAI,aAAa,EAAE,CAAC;QAClB,SAAS,IAAI,YAAY,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;IACrD,CAAC;IAED,MAAM,iBAAiB,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;IAC9C,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,SAAS,IAAI,eAAe,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5F,CAAC;IAED,SAAS,IAAI,IAAI,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEtB,aAAa;IACb,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,aAAa;YAC5B,CAAC,CAAC,KAAK,aAAa,IAAI,QAAQ,KAAK,QAAQ,GAAG;YAChD,CAAC,CAAC,KAAK,QAAQ,KAAK,QAAQ,GAAG,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE1C,UAAU;IACV,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;IACjC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC;QAE9C,yBAAyB;QACzB,MAAM,YAAY,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAE/B,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ;YACR,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAC3C,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,UAAU;YACnB,QAAQ;YACR,MAAM;YACN,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;SACjD,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,eAAe;IACf,MAAM,YAAY,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,SAAS,cAAc,CAAC;QAE5C,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE3C,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ;YACR,UAAU,EAAE,aAAa;YACzB,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAC3C,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,WAAW,EAAE,SAAS;SACvB,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,MAAW,EAAE,QAAgB;IAC3D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE;SAClC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;QACd,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,OAAO,GAAG,KAAK,GAAG,QAAQ,KAAK,KAAK,EAAE,CAAC;IACzC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC;IAEpD,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;IACnE,SAAS,IAAI,IAAI,MAAM,MAAM,UAAU,IAAI,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,kBAAkB,QAAQ,wDAAwD,CAAC,CAAC;IAC/F,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,2BAA2B,CAAC,IAAS,EAAE,QAAgB;IAC9D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE;SAChC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;QACd,MAAM,SAAS,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1E,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,GAAG,KAAK,GAAG,QAAQ,KAAK,KAAK,EAAE,CAAC;QACjD,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC3D,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,KAAK,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,kBAAkB,QAAQ,wDAAwD,CAAC,CAAC;IAC/F,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CACjC,IAAS,EACT,QAAgB,EAChB,OAAyB,EACzB,QAAgB;IAEhB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,WAAW,CAAC;IAC/C,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAE1B,gBAAgB;IAChB,OAAO,CAAC,IAAI,CAAC;QACX,QAAQ;QACR,UAAU,EAAE,QAAQ;QACpB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC3C,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE;QACpC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE;QAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;QACrB,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;KAC/C,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE;SAChC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;QACd,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,OAAO,GAAG,KAAK,GAAG,QAAQ,KAAK,KAAK,EAAE,CAAC;IACzC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC;IAElD,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;IACjE,SAAS,IAAI,IAAI,QAAQ,IAAI,MAAM,MAAM,UAAU,IAAI,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,wDAAwD,CAAC,CAAC;IAC7F,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,mCAAmC,CAC1C,YAAiB,EACjB,QAAgB,EAChB,OAAyB,EACzB,QAAgB;IAEhB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrF,MAAM,YAAY,GAAG,YAAY,CAAC,eAAe,EAAE,CAAC;IACpD,MAAM,eAAe,GAAG,YAAY,CAAC,kBAAkB,EAAE,CAAC;IAE1D,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;YAEvC,kCAAkC;YAClC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,qBAAU,CAAC,aAAa,EAAE,CAAC;gBAClF,MAAM,QAAQ,GAAG,IAAI,CAAC;gBAEtB,OAAO,CAAC,IAAI,CAAC;oBACX,QAAQ;oBACR,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,gBAAgB;oBAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;oBAC3C,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE;oBACpC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE;oBAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;oBACzB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;oBACrB,SAAS,EAAE,GAAG,eAAe,IAAI,IAAI,KAAK,IAAI,EAAE;iBACjD,CAAC,CAAC;gBAEH,MAAM,IAAI,GAAG,SAAS;oBACpB,CAAC,CAAC,GAAG,SAAS,IAAI,eAAe,IAAI,IAAI,KAAK,IAAI,iBAAiB,QAAQ,OAAO;oBAClF,CAAC,CAAC,GAAG,eAAe,IAAI,IAAI,KAAK,IAAI,iBAAiB,QAAQ,OAAO,CAAC;gBACxE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3D,yBAAyB;gBACzB,MAAM,IAAI,GAAG,SAAS;oBACpB,CAAC,CAAC,GAAG,SAAS,IAAI,eAAe,IAAI,IAAI,KAAK,IAAI,MAAM,QAAQ,GAAG;oBACnE,CAAC,CAAC,GAAG,eAAe,IAAI,IAAI,KAAK,IAAI,MAAM,QAAQ,GAAG,CAAC;gBACzD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,0BAA0B;gBAC1B,MAAM,IAAI,GAAG,SAAS;oBACpB,CAAC,CAAC,GAAG,SAAS,IAAI,eAAe,IAAI,IAAI,KAAK,IAAI,mBAAmB;oBACrE,CAAC,CAAC,GAAG,eAAe,IAAI,IAAI,KAAK,IAAI,mBAAmB,CAAC;gBAC3D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,SAAS;gBACpB,CAAC,CAAC,GAAG,SAAS,IAAI,eAAe,IAAI,IAAI,KAAK,IAAI,GAAG;gBACrD,CAAC,CAAC,GAAG,eAAe,IAAI,IAAI,KAAK,IAAI,GAAG,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAC9B,QAAgB,EAChB,OAAsB;IAEtB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACnE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9D,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,aAAa,GAAG,KAAK;iBACxB,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;iBAC3C,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,OAAO;gBACL,OAAO,EAAE,aAAa;gBACtB,QAAQ,EAAE,MAAM;aACjB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,OAAsB,EAAE,UAAkB;IAC1E,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,WAAmB;IACrD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enhanced file ranking with dependency analysis and semantic scoring
|
|
3
|
+
*/
|
|
4
|
+
import { RankedFile } from './types';
|
|
5
|
+
export interface EnhancedRankedFile extends RankedFile {
|
|
6
|
+
reasons: string[];
|
|
7
|
+
dependencies?: string[];
|
|
8
|
+
symbolCount?: number;
|
|
9
|
+
complexity?: number;
|
|
10
|
+
}
|
|
11
|
+
interface FileMetadata {
|
|
12
|
+
imports: string[];
|
|
13
|
+
exports: string[];
|
|
14
|
+
symbolCount: number;
|
|
15
|
+
linesOfCode: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Enhanced relevance scoring with multiple factors
|
|
19
|
+
*/
|
|
20
|
+
export declare function calculateEnhancedScore(filePath: string, fileContent: string | null, question: string, metadata?: FileMetadata): {
|
|
21
|
+
score: number;
|
|
22
|
+
reasons: string[];
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Extract file metadata using AST analysis
|
|
26
|
+
*/
|
|
27
|
+
export declare function extractFileMetadata(filePath: string): FileMetadata | null;
|
|
28
|
+
/**
|
|
29
|
+
* Analyze file dependencies to boost scores of dependent files
|
|
30
|
+
*/
|
|
31
|
+
export declare function analyzeDependencyGraph(filePaths: string[], rootPath: string): Map<string, string[]>;
|
|
32
|
+
/**
|
|
33
|
+
* Enhanced ranking with dependency analysis
|
|
34
|
+
*/
|
|
35
|
+
export declare function rankFilesEnhanced(filePaths: string[], question: string, limit?: number, rootPath?: string): EnhancedRankedFile[];
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=ranker-enhanced.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ranker-enhanced.d.ts","sourceRoot":"","sources":["../src/ranker-enhanced.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAsJD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,YAAY,GACtB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CA6GtC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAoBzE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,MAAM,GACf,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAoCvB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAAW,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,kBAAkB,EAAE,CA4FtB"}
|