indexer-cli 0.12.2 → 0.12.4
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 +54 -10
- package/dist/cli/commands/architecture.js +143 -21
- package/dist/cli/commands/architecture.js.map +1 -1
- package/dist/cli/commands/deps.js +120 -25
- package/dist/cli/commands/deps.js.map +1 -1
- package/dist/cli/commands/ensure-indexed.d.ts +16 -1
- package/dist/cli/commands/ensure-indexed.js +28 -3
- package/dist/cli/commands/ensure-indexed.js.map +1 -1
- package/dist/cli/commands/explain.js +81 -2
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/init.d.ts +3 -1
- package/dist/cli/commands/init.js +9 -5
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/search.js +92 -14
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/skills.js +23 -9
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/commands/structure.js +98 -10
- package/dist/cli/commands/structure.js.map +1 -1
- package/dist/cli/format/compact.d.ts +2 -0
- package/dist/cli/format/compact.js +32 -0
- package/dist/cli/format/compact.js.map +1 -0
- package/dist/cli/test-hints.d.ts +19 -0
- package/dist/cli/test-hints.js +135 -0
- package/dist/cli/test-hints.js.map +1 -0
- package/dist/core/skills-version.d.ts +1 -1
- package/dist/core/skills-version.js +1 -1
- package/dist/core/version-check.js +8 -1
- package/dist/core/version-check.js.map +1 -1
- package/dist/engine/searcher.d.ts +8 -0
- package/dist/engine/searcher.js +125 -7
- package/dist/engine/searcher.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.findNearestTests = findNearestTests;
|
|
7
|
+
exports.formatTestHints = formatTestHints;
|
|
8
|
+
exports.formatSuggestedVerification = formatSuggestedVerification;
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const searcher_js_1 = require("../engine/searcher.js");
|
|
11
|
+
const IGNORED_PATH_TOKENS = new Set([
|
|
12
|
+
"src",
|
|
13
|
+
"lib",
|
|
14
|
+
"app",
|
|
15
|
+
"test",
|
|
16
|
+
"tests",
|
|
17
|
+
"spec",
|
|
18
|
+
"specs",
|
|
19
|
+
"unit",
|
|
20
|
+
"integration",
|
|
21
|
+
"e2e",
|
|
22
|
+
"__tests__",
|
|
23
|
+
"__test__",
|
|
24
|
+
]);
|
|
25
|
+
function uniqueSorted(values) {
|
|
26
|
+
return Array.from(new Set(values)).sort((a, b) => a.localeCompare(b));
|
|
27
|
+
}
|
|
28
|
+
function fileStem(filePath) {
|
|
29
|
+
return node_path_1.default
|
|
30
|
+
.basename(filePath)
|
|
31
|
+
.replace(/\.[^.]+$/, "")
|
|
32
|
+
.replace(/\.(test|spec)$/i, "")
|
|
33
|
+
.toLowerCase();
|
|
34
|
+
}
|
|
35
|
+
function pathTokens(filePath) {
|
|
36
|
+
const withoutExtension = filePath.replace(/\.[^.]+$/, "");
|
|
37
|
+
const parts = withoutExtension
|
|
38
|
+
.split(/[\\/_.-]+/)
|
|
39
|
+
.map((part) => part.toLowerCase())
|
|
40
|
+
.filter((part) => part.length > 1 && !IGNORED_PATH_TOKENS.has(part));
|
|
41
|
+
return new Set(parts);
|
|
42
|
+
}
|
|
43
|
+
function sharedTokenCount(left, right) {
|
|
44
|
+
let count = 0;
|
|
45
|
+
for (const token of left) {
|
|
46
|
+
if (right.has(token))
|
|
47
|
+
count += 1;
|
|
48
|
+
}
|
|
49
|
+
return count;
|
|
50
|
+
}
|
|
51
|
+
function relationFromNames(testPath, targetPath) {
|
|
52
|
+
const testStem = fileStem(testPath);
|
|
53
|
+
const targetStem = fileStem(targetPath);
|
|
54
|
+
if (testStem && targetStem && (testStem === targetStem || testStem.includes(targetStem))) {
|
|
55
|
+
return {
|
|
56
|
+
testPath,
|
|
57
|
+
targetPath,
|
|
58
|
+
reason: "related-name",
|
|
59
|
+
confidence: "medium",
|
|
60
|
+
score: 80,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
const shared = sharedTokenCount(pathTokens(testPath), pathTokens(targetPath));
|
|
64
|
+
if (shared > 0) {
|
|
65
|
+
return {
|
|
66
|
+
testPath,
|
|
67
|
+
targetPath,
|
|
68
|
+
reason: "related-path",
|
|
69
|
+
confidence: "low",
|
|
70
|
+
score: 40 + shared,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
function findNearestTests(options) {
|
|
76
|
+
const maxTests = options.maxTests ?? 3;
|
|
77
|
+
const targetPaths = uniqueSorted(options.targetPaths).filter((filePath) => !(0, searcher_js_1.isTestFile)(filePath));
|
|
78
|
+
if (targetPaths.length === 0)
|
|
79
|
+
return [];
|
|
80
|
+
const targetSet = new Set(targetPaths);
|
|
81
|
+
const testFiles = uniqueSorted(options.files.map((file) => file.path).filter((filePath) => (0, searcher_js_1.isTestFile)(filePath)));
|
|
82
|
+
const bestByTest = new Map();
|
|
83
|
+
for (const dep of options.dependencies ?? []) {
|
|
84
|
+
if (!dep.toPath || !targetSet.has(dep.toPath) || !(0, searcher_js_1.isTestFile)(dep.fromPath)) {
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
bestByTest.set(dep.fromPath, {
|
|
88
|
+
testPath: dep.fromPath,
|
|
89
|
+
targetPath: dep.toPath,
|
|
90
|
+
reason: "direct",
|
|
91
|
+
confidence: "high",
|
|
92
|
+
score: 100,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
for (const testPath of testFiles) {
|
|
96
|
+
for (const targetPath of targetPaths) {
|
|
97
|
+
const hint = relationFromNames(testPath, targetPath);
|
|
98
|
+
if (!hint)
|
|
99
|
+
continue;
|
|
100
|
+
const current = bestByTest.get(testPath);
|
|
101
|
+
if (!current || hint.score > current.score) {
|
|
102
|
+
bestByTest.set(testPath, hint);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return Array.from(bestByTest.values())
|
|
107
|
+
.sort((a, b) => {
|
|
108
|
+
const scoreDiff = b.score - a.score;
|
|
109
|
+
if (scoreDiff !== 0)
|
|
110
|
+
return scoreDiff;
|
|
111
|
+
const testDiff = a.testPath.localeCompare(b.testPath);
|
|
112
|
+
if (testDiff !== 0)
|
|
113
|
+
return testDiff;
|
|
114
|
+
return a.targetPath.localeCompare(b.targetPath);
|
|
115
|
+
})
|
|
116
|
+
.slice(0, maxTests);
|
|
117
|
+
}
|
|
118
|
+
function formatTestHints(hints) {
|
|
119
|
+
if (hints.length === 0)
|
|
120
|
+
return [];
|
|
121
|
+
return [
|
|
122
|
+
"Tests:",
|
|
123
|
+
...hints.map((hint) => `T ${hint.testPath} -> ${hint.targetPath} ${hint.reason} conf=${hint.confidence}`),
|
|
124
|
+
];
|
|
125
|
+
}
|
|
126
|
+
function formatSuggestedVerification(hints) {
|
|
127
|
+
const first = hints.find((hint) => hint.confidence !== "low");
|
|
128
|
+
if (!first)
|
|
129
|
+
return undefined;
|
|
130
|
+
const stem = fileStem(first.testPath);
|
|
131
|
+
if (!stem)
|
|
132
|
+
return undefined;
|
|
133
|
+
return `Verify: npm test -- ${stem}`;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=test-hints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-hints.js","sourceRoot":"","sources":["../../src/cli/test-hints.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SKILLS_VERSION =
|
|
1
|
+
export declare const SKILLS_VERSION = 3343903283;
|
|
@@ -118,7 +118,14 @@ async function checkAndRefreshSkills() {
|
|
|
118
118
|
return false;
|
|
119
119
|
}
|
|
120
120
|
console.error(`indexer-cli: skills updated (version ${storedSkillsVersion ?? "none"} → ${skills_version_js_1.SKILLS_VERSION}). Refreshing .claude/skills/...`);
|
|
121
|
-
|
|
121
|
+
const originalConsoleLog = console.log;
|
|
122
|
+
try {
|
|
123
|
+
console.log = () => undefined;
|
|
124
|
+
await (0, init_js_2.refreshClaudeSkills)(projectRoot);
|
|
125
|
+
}
|
|
126
|
+
finally {
|
|
127
|
+
console.log = originalConsoleLog;
|
|
128
|
+
}
|
|
122
129
|
(0, idx_binary_js_1.ensureIdxBinary)();
|
|
123
130
|
const raw = (0, node_fs_1.readFileSync)(configPath, "utf8");
|
|
124
131
|
const parsed = JSON.parse(raw);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/core/version-check.ts"],"names":[],"mappings":";;;;;AAcA,kCAQC;AASD,0DA8DC;AAED,
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/core/version-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,19 @@ import type { MetadataStore, VectorStore, EmbeddingProvider, ProjectId } from ".
|
|
|
2
2
|
export declare function isTestFile(filePath: string): boolean;
|
|
3
3
|
export interface SearchOptions {
|
|
4
4
|
topK?: number;
|
|
5
|
+
mode?: "hybrid" | "semantic" | "lexical" | "symbol";
|
|
5
6
|
pathPrefix?: string;
|
|
6
7
|
chunkTypes?: string[];
|
|
7
8
|
filePath?: string;
|
|
8
9
|
includeContent?: boolean;
|
|
10
|
+
includeReasonCodes?: boolean;
|
|
9
11
|
minScore?: number;
|
|
10
12
|
includeImportChunks?: boolean;
|
|
13
|
+
dedupeFile?: boolean;
|
|
14
|
+
dedupeSymbol?: boolean;
|
|
15
|
+
cluster?: boolean;
|
|
16
|
+
includeTests?: boolean;
|
|
17
|
+
excludeTests?: boolean;
|
|
11
18
|
}
|
|
12
19
|
export interface SearchResult {
|
|
13
20
|
filePath: string;
|
|
@@ -16,6 +23,7 @@ export interface SearchResult {
|
|
|
16
23
|
score: number;
|
|
17
24
|
chunkType?: string;
|
|
18
25
|
primarySymbol?: string;
|
|
26
|
+
reasonCode?: string;
|
|
19
27
|
content?: string;
|
|
20
28
|
}
|
|
21
29
|
export declare class SearchEngine {
|
package/dist/engine/searcher.js
CHANGED
|
@@ -15,6 +15,11 @@ const SYMBOL_SIGNATURE_TOKEN_WEIGHT = 2;
|
|
|
15
15
|
const SYMBOL_BODY_TOKEN_WEIGHT = 2;
|
|
16
16
|
const SYMBOL_BODY_EXACT_BONUS = 1;
|
|
17
17
|
const SYMBOL_START_IN_CHUNK_BONUS = 0.25;
|
|
18
|
+
const HYBRID_CANDIDATE_MULTIPLIER = 4;
|
|
19
|
+
const HYBRID_MIN_CANDIDATES = 20;
|
|
20
|
+
const LEXICAL_SCORE_WEIGHT = 0.03;
|
|
21
|
+
const SYMBOL_SCORE_WEIGHT = 0.04;
|
|
22
|
+
const PATH_SCORE_WEIGHT = 0.02;
|
|
18
23
|
const STOP_WORDS = new Set([
|
|
19
24
|
"a",
|
|
20
25
|
"an",
|
|
@@ -248,9 +253,12 @@ class SearchEngine {
|
|
|
248
253
|
}
|
|
249
254
|
async search(projectId, snapshotId, query, options = {}) {
|
|
250
255
|
const topK = options.topK ?? 10;
|
|
256
|
+
const mode = options.mode ?? "semantic";
|
|
251
257
|
const includeContent = options.includeContent ?? true;
|
|
258
|
+
const includeReasonCodes = options.includeReasonCodes ?? false;
|
|
252
259
|
const minScore = options.minScore;
|
|
253
260
|
const excludeImportPreamble = !options.includeImportChunks && !options.chunkTypes;
|
|
261
|
+
const applyTestPenalty = !options.includeTests;
|
|
254
262
|
logger.info(`Searching for "${query}" (topK=${topK})`);
|
|
255
263
|
const queryEmbedding = (await this.embedder.embed([query]))[0];
|
|
256
264
|
if (!queryEmbedding) {
|
|
@@ -263,7 +271,9 @@ class SearchEngine {
|
|
|
263
271
|
pathPrefix: options.pathPrefix,
|
|
264
272
|
chunkTypes: options.chunkTypes,
|
|
265
273
|
};
|
|
266
|
-
const vectorResults = await this.vectors.search(queryEmbedding,
|
|
274
|
+
const vectorResults = await this.vectors.search(queryEmbedding, mode === "semantic"
|
|
275
|
+
? topK
|
|
276
|
+
: Math.max(topK * HYBRID_CANDIDATE_MULTIPLIER, HYBRID_MIN_CANDIDATES), filters);
|
|
267
277
|
const queryTokens = new Set(normalizeTokens(query));
|
|
268
278
|
const fileContentCache = new Map();
|
|
269
279
|
const symbolsByFileCache = new Map();
|
|
@@ -317,7 +327,15 @@ class SearchEngine {
|
|
|
317
327
|
const rawSymbol = bestSymbol && bestSymbol.score >= SYMBOL_MATCH_THRESHOLD
|
|
318
328
|
? bestSymbol.symbol.name
|
|
319
329
|
: vr.primarySymbol;
|
|
320
|
-
|
|
330
|
+
const lexicalScore = countTokenOverlap(queryTokens, [
|
|
331
|
+
vr.filePath,
|
|
332
|
+
vr.chunkType ?? "",
|
|
333
|
+
vr.primarySymbol ?? "",
|
|
334
|
+
content ?? fileContent ?? "",
|
|
335
|
+
].join("\n"));
|
|
336
|
+
const symbolScore = bestSymbol?.score ?? 0;
|
|
337
|
+
const pathScore = countTokenOverlap(queryTokens, vr.filePath);
|
|
338
|
+
const result = {
|
|
321
339
|
filePath: vr.filePath,
|
|
322
340
|
startLine: vr.startLine,
|
|
323
341
|
endLine: vr.endLine,
|
|
@@ -326,15 +344,38 @@ class SearchEngine {
|
|
|
326
344
|
primarySymbol: rawSymbol && !LANGUAGE_KEYWORDS.has(rawSymbol)
|
|
327
345
|
? rawSymbol
|
|
328
346
|
: undefined,
|
|
329
|
-
|
|
330
|
-
|
|
347
|
+
metadata: {
|
|
348
|
+
lexicalScore,
|
|
349
|
+
symbolScore,
|
|
350
|
+
pathScore,
|
|
351
|
+
},
|
|
352
|
+
};
|
|
353
|
+
if (includeReasonCodes) {
|
|
354
|
+
result.reasonCode = buildReasonCode({
|
|
355
|
+
semanticScore: vr.score,
|
|
356
|
+
lexicalScore,
|
|
357
|
+
symbolScore,
|
|
358
|
+
pathScore,
|
|
359
|
+
chunkType: vr.chunkType,
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
if (includeContent) {
|
|
363
|
+
result.content = content;
|
|
364
|
+
}
|
|
365
|
+
results.push(result);
|
|
331
366
|
}
|
|
332
|
-
|
|
367
|
+
const rankedResults = results
|
|
333
368
|
.filter((result) => {
|
|
334
369
|
if (excludeImportPreamble) {
|
|
335
370
|
return (result.chunkType !== "imports" && result.chunkType !== "preamble");
|
|
336
371
|
}
|
|
337
372
|
return true;
|
|
373
|
+
})
|
|
374
|
+
.filter((result) => {
|
|
375
|
+
if (options.excludeTests && isTestFile(result.filePath)) {
|
|
376
|
+
return false;
|
|
377
|
+
}
|
|
378
|
+
return true;
|
|
338
379
|
})
|
|
339
380
|
.map((result) => {
|
|
340
381
|
let penalizedScore = result.score;
|
|
@@ -344,17 +385,94 @@ class SearchEngine {
|
|
|
344
385
|
else if (result.chunkType === "preamble") {
|
|
345
386
|
penalizedScore *= PREAMBLE_CHUNK_SCORE_PENALTY;
|
|
346
387
|
}
|
|
347
|
-
if (isTestFile(result.filePath)) {
|
|
388
|
+
if (applyTestPenalty && isTestFile(result.filePath)) {
|
|
348
389
|
penalizedScore *= TEST_FILE_SCORE_PENALTY;
|
|
349
390
|
}
|
|
391
|
+
const hybridMetadata = result.metadata;
|
|
392
|
+
let finalScore = penalizedScore;
|
|
393
|
+
if (mode === "hybrid") {
|
|
394
|
+
finalScore +=
|
|
395
|
+
(hybridMetadata?.lexicalScore ?? 0) * LEXICAL_SCORE_WEIGHT +
|
|
396
|
+
(hybridMetadata?.symbolScore ?? 0) * SYMBOL_SCORE_WEIGHT +
|
|
397
|
+
(hybridMetadata?.pathScore ?? 0) * PATH_SCORE_WEIGHT;
|
|
398
|
+
}
|
|
399
|
+
else if (mode === "lexical") {
|
|
400
|
+
finalScore = (hybridMetadata?.lexicalScore ?? 0) * LEXICAL_SCORE_WEIGHT;
|
|
401
|
+
}
|
|
402
|
+
else if (mode === "symbol") {
|
|
403
|
+
finalScore = (hybridMetadata?.symbolScore ?? 0) * SYMBOL_SCORE_WEIGHT;
|
|
404
|
+
}
|
|
350
405
|
return {
|
|
351
406
|
...result,
|
|
352
|
-
score:
|
|
407
|
+
score: finalScore,
|
|
353
408
|
};
|
|
354
409
|
})
|
|
355
410
|
.filter((result) => typeof minScore !== "number" || result.score >= minScore)
|
|
356
411
|
.sort((a, b) => b.score - a.score);
|
|
412
|
+
return dedupeSearchResults(rankedResults, {
|
|
413
|
+
dedupeFile: options.dedupeFile ?? options.cluster,
|
|
414
|
+
dedupeSymbol: options.dedupeSymbol,
|
|
415
|
+
cluster: options.cluster,
|
|
416
|
+
})
|
|
417
|
+
.slice(0, topK)
|
|
418
|
+
.map((result) => {
|
|
419
|
+
const { metadata: _metadata, ...publicResult } = result;
|
|
420
|
+
return publicResult;
|
|
421
|
+
});
|
|
357
422
|
}
|
|
358
423
|
}
|
|
359
424
|
exports.SearchEngine = SearchEngine;
|
|
425
|
+
function dedupeSearchResults(results, options) {
|
|
426
|
+
if (!options.dedupeFile && !options.dedupeSymbol && !options.cluster) {
|
|
427
|
+
return results;
|
|
428
|
+
}
|
|
429
|
+
const seenFiles = new Set();
|
|
430
|
+
const seenSymbols = new Set();
|
|
431
|
+
const seenClusters = new Set();
|
|
432
|
+
const deduped = [];
|
|
433
|
+
for (const result of results) {
|
|
434
|
+
if (options.dedupeFile) {
|
|
435
|
+
if (seenFiles.has(result.filePath))
|
|
436
|
+
continue;
|
|
437
|
+
seenFiles.add(result.filePath);
|
|
438
|
+
}
|
|
439
|
+
if (options.dedupeSymbol && result.primarySymbol) {
|
|
440
|
+
const key = `${result.filePath}::${result.primarySymbol}`;
|
|
441
|
+
if (seenSymbols.has(key))
|
|
442
|
+
continue;
|
|
443
|
+
seenSymbols.add(key);
|
|
444
|
+
}
|
|
445
|
+
if (options.cluster) {
|
|
446
|
+
const bucketStart = Math.floor(result.startLine / 50) * 50;
|
|
447
|
+
const key = `${result.filePath}:${result.primarySymbol ?? result.chunkType ?? "chunk"}:${bucketStart}`;
|
|
448
|
+
if (seenClusters.has(key))
|
|
449
|
+
continue;
|
|
450
|
+
seenClusters.add(key);
|
|
451
|
+
}
|
|
452
|
+
deduped.push(result);
|
|
453
|
+
}
|
|
454
|
+
return deduped;
|
|
455
|
+
}
|
|
456
|
+
function buildReasonCode(input) {
|
|
457
|
+
const reasons = [];
|
|
458
|
+
if (input.symbolScore > 0) {
|
|
459
|
+
reasons.push("symbol");
|
|
460
|
+
}
|
|
461
|
+
if (input.pathScore > 0) {
|
|
462
|
+
reasons.push("path");
|
|
463
|
+
}
|
|
464
|
+
if (input.lexicalScore > 0) {
|
|
465
|
+
reasons.push("text");
|
|
466
|
+
}
|
|
467
|
+
if (input.semanticScore > 0) {
|
|
468
|
+
reasons.push("semantic");
|
|
469
|
+
}
|
|
470
|
+
if (input.chunkType === "imports") {
|
|
471
|
+
reasons.push("imports");
|
|
472
|
+
}
|
|
473
|
+
else if (input.chunkType === "preamble") {
|
|
474
|
+
reasons.push("preamble");
|
|
475
|
+
}
|
|
476
|
+
return reasons.length > 0 ? reasons.join("+") : "semantic";
|
|
477
|
+
}
|
|
360
478
|
//# sourceMappingURL=searcher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searcher.js","sourceRoot":"","sources":["../../src/engine/searcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"searcher.js","sourceRoot":"","sources":["../../src/engine/searcher.ts"],"names":[],"mappings":"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"}
|