sverklo 0.2.12 → 0.2.14
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 +102 -13
- package/dist/bin/sverklo.js +69 -1
- package/dist/bin/sverklo.js.map +1 -1
- package/dist/src/audit-prompt.d.ts +2 -0
- package/dist/src/audit-prompt.js +91 -0
- package/dist/src/audit-prompt.js.map +1 -0
- package/dist/src/doctor.js +55 -0
- package/dist/src/doctor.js.map +1 -1
- package/dist/src/indexer/embedding-providers.d.ts +34 -0
- package/dist/src/indexer/embedding-providers.js +215 -0
- package/dist/src/indexer/embedding-providers.js.map +1 -0
- package/dist/src/indexer/embedding-providers.test.d.ts +1 -0
- package/dist/src/indexer/embedding-providers.test.js +83 -0
- package/dist/src/indexer/embedding-providers.test.js.map +1 -0
- package/dist/src/indexer/indexer-freshness.test.d.ts +1 -0
- package/dist/src/indexer/indexer-freshness.test.js +109 -0
- package/dist/src/indexer/indexer-freshness.test.js.map +1 -0
- package/dist/src/indexer/indexer-provider-integration.test.d.ts +1 -0
- package/dist/src/indexer/indexer-provider-integration.test.js +142 -0
- package/dist/src/indexer/indexer-provider-integration.test.js.map +1 -0
- package/dist/src/indexer/indexer.d.ts +44 -0
- package/dist/src/indexer/indexer.js +153 -10
- package/dist/src/indexer/indexer.js.map +1 -1
- package/dist/src/indexer/migration.test.d.ts +1 -0
- package/dist/src/indexer/migration.test.js +144 -0
- package/dist/src/indexer/migration.test.js.map +1 -0
- package/dist/src/indexer/symbol-extractor.js +17 -5
- package/dist/src/indexer/symbol-extractor.js.map +1 -1
- package/dist/src/indexer/symbol-extractor.test.d.ts +1 -0
- package/dist/src/indexer/symbol-extractor.test.js +88 -0
- package/dist/src/indexer/symbol-extractor.test.js.map +1 -0
- package/dist/src/indexer/watcher.js +4 -0
- package/dist/src/indexer/watcher.js.map +1 -1
- package/dist/src/memory/journal.d.ts +62 -0
- package/dist/src/memory/journal.js +136 -0
- package/dist/src/memory/journal.js.map +1 -0
- package/dist/src/memory/journal.test.d.ts +1 -0
- package/dist/src/memory/journal.test.js +98 -0
- package/dist/src/memory/journal.test.js.map +1 -0
- package/dist/src/modes.d.ts +16 -0
- package/dist/src/modes.js +104 -0
- package/dist/src/modes.js.map +1 -0
- package/dist/src/modes.test.d.ts +1 -0
- package/dist/src/modes.test.js +48 -0
- package/dist/src/modes.test.js.map +1 -0
- package/dist/src/search/hybrid-search.d.ts +22 -0
- package/dist/src/search/hybrid-search.js +169 -7
- package/dist/src/search/hybrid-search.js.map +1 -1
- package/dist/src/search/hybrid-search.test.d.ts +1 -0
- package/dist/src/search/hybrid-search.test.js +112 -0
- package/dist/src/search/hybrid-search.test.js.map +1 -0
- package/dist/src/search/token-budget.d.ts +1 -0
- package/dist/src/search/token-budget.js +34 -6
- package/dist/src/search/token-budget.js.map +1 -1
- package/dist/src/server/mcp-server.js +32 -25
- package/dist/src/server/mcp-server.js.map +1 -1
- package/dist/src/server/tool-overrides.d.ts +16 -0
- package/dist/src/server/tool-overrides.js +102 -0
- package/dist/src/server/tool-overrides.js.map +1 -0
- package/dist/src/server/tool-overrides.test.d.ts +1 -0
- package/dist/src/server/tool-overrides.test.js +124 -0
- package/dist/src/server/tool-overrides.test.js.map +1 -0
- package/dist/src/server/tools/context-budget.test.d.ts +1 -0
- package/dist/src/server/tools/context-budget.test.js +150 -0
- package/dist/src/server/tools/context-budget.test.js.map +1 -0
- package/dist/src/server/tools/context.d.ts +11 -1
- package/dist/src/server/tools/context.js +202 -8
- package/dist/src/server/tools/context.js.map +1 -1
- package/dist/src/server/tools/diff-heuristics.d.ts +28 -0
- package/dist/src/server/tools/diff-heuristics.js +213 -0
- package/dist/src/server/tools/diff-heuristics.js.map +1 -0
- package/dist/src/server/tools/diff-heuristics.test.d.ts +1 -0
- package/dist/src/server/tools/diff-heuristics.test.js +151 -0
- package/dist/src/server/tools/diff-heuristics.test.js.map +1 -0
- package/dist/src/server/tools/find-references.d.ts +4 -0
- package/dist/src/server/tools/find-references.js +46 -6
- package/dist/src/server/tools/find-references.js.map +1 -1
- package/dist/src/server/tools/find-references.test.d.ts +1 -0
- package/dist/src/server/tools/find-references.test.js +98 -0
- package/dist/src/server/tools/find-references.test.js.map +1 -0
- package/dist/src/server/tools/forget.js +3 -0
- package/dist/src/server/tools/forget.js.map +1 -1
- package/dist/src/server/tools/index-status.js +16 -0
- package/dist/src/server/tools/index-status.js.map +1 -1
- package/dist/src/server/tools/lookup.js +21 -13
- package/dist/src/server/tools/lookup.js.map +1 -1
- package/dist/src/server/tools/lookup.test.d.ts +1 -0
- package/dist/src/server/tools/lookup.test.js +110 -0
- package/dist/src/server/tools/lookup.test.js.map +1 -0
- package/dist/src/server/tools/recall.d.ts +5 -1
- package/dist/src/server/tools/recall.js +68 -6
- package/dist/src/server/tools/recall.js.map +1 -1
- package/dist/src/server/tools/recall.test.d.ts +1 -0
- package/dist/src/server/tools/recall.test.js +116 -0
- package/dist/src/server/tools/recall.test.js.map +1 -0
- package/dist/src/server/tools/remember.js +16 -2
- package/dist/src/server/tools/remember.js.map +1 -1
- package/dist/src/server/tools/review-diff.js +31 -0
- package/dist/src/server/tools/review-diff.js.map +1 -1
- package/dist/src/server/tools/search.js +29 -4
- package/dist/src/server/tools/search.js.map +1 -1
- package/dist/src/server/tools/search.test.d.ts +1 -0
- package/dist/src/server/tools/search.test.js +118 -0
- package/dist/src/server/tools/search.test.js.map +1 -0
- package/dist/src/server/tools/tier.js +25 -1
- package/dist/src/server/tools/tier.js.map +1 -1
- package/dist/src/storage/chunk-store.d.ts +12 -0
- package/dist/src/storage/chunk-store.js +16 -0
- package/dist/src/storage/chunk-store.js.map +1 -1
- package/dist/src/storage/chunk-store.test.d.ts +1 -0
- package/dist/src/storage/chunk-store.test.js +69 -0
- package/dist/src/storage/chunk-store.test.js.map +1 -0
- package/dist/src/storage/database.d.ts +13 -0
- package/dist/src/storage/database.js +47 -0
- package/dist/src/storage/database.js.map +1 -1
- package/package.json +5 -2
|
@@ -7,7 +7,29 @@ interface SearchOptions {
|
|
|
7
7
|
language?: string;
|
|
8
8
|
type?: ChunkType | "any";
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Result of a hybrid search — the ranked candidates plus a confidence
|
|
12
|
+
* signal the caller can surface in the output. Issue #4.
|
|
13
|
+
*/
|
|
14
|
+
export interface HybridSearchResult {
|
|
15
|
+
results: SearchResult[];
|
|
16
|
+
confidence: "high" | "medium" | "low";
|
|
17
|
+
confidenceReason: string | null;
|
|
18
|
+
fallbackHint: string | null;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Public entry point: returns the ranked+packed result list.
|
|
22
|
+
* Backwards compat for any in-process callers that don't need the
|
|
23
|
+
* confidence signal.
|
|
24
|
+
*/
|
|
10
25
|
export declare function hybridSearch(indexer: Indexer, options: SearchOptions): Promise<SearchResult[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Same as hybridSearch but returns a confidence signal and a suggested
|
|
28
|
+
* fallback hint. This is the preferred entry point for the MCP tool —
|
|
29
|
+
* it lets us tell agents when semantic search is likely to be weak so
|
|
30
|
+
* they can fall back to Grep without burning a second tool call.
|
|
31
|
+
*/
|
|
32
|
+
export declare function hybridSearchWithConfidence(indexer: Indexer, options: SearchOptions): Promise<HybridSearchResult>;
|
|
11
33
|
export declare function packResults(candidates: SearchResult[], tokenBudget: number): SearchResult[];
|
|
12
34
|
export declare function formatResults(results: SearchResult[], opts?: {
|
|
13
35
|
compact?: boolean;
|
|
@@ -1,14 +1,118 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { cosineSimilarity } from "../indexer/embedder.js";
|
|
2
2
|
// Reciprocal Rank Fusion constant
|
|
3
3
|
const RRF_K = 60;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
// Issue #4: query-shape classification. Research showed semantic search
|
|
5
|
+
// consistently underperforms on framework-wiring questions where the
|
|
6
|
+
// answer lives in an annotation, config file, or build-time-generated
|
|
7
|
+
// class rather than in code that names the concept being searched for.
|
|
8
|
+
// When we detect one of these shapes, we lower confidence and surface a
|
|
9
|
+
// suggestion to fall back to Grep for the specific annotation pattern.
|
|
10
|
+
const FRAMEWORK_WIRING_TOKENS = [
|
|
11
|
+
"registered",
|
|
12
|
+
"registration",
|
|
13
|
+
"autowired",
|
|
14
|
+
"auto-wired",
|
|
15
|
+
"auto-discovered",
|
|
16
|
+
"bean",
|
|
17
|
+
"beans",
|
|
18
|
+
"annotation",
|
|
19
|
+
"annotated",
|
|
20
|
+
"interceptor",
|
|
21
|
+
"decorator",
|
|
22
|
+
"middleware setup",
|
|
23
|
+
"wired",
|
|
24
|
+
"wiring",
|
|
25
|
+
"injected",
|
|
26
|
+
"injection",
|
|
27
|
+
"provider",
|
|
28
|
+
"providers",
|
|
29
|
+
"binding",
|
|
30
|
+
"bound to",
|
|
31
|
+
"@component",
|
|
32
|
+
"@configuration",
|
|
33
|
+
"@service",
|
|
34
|
+
"@repository",
|
|
35
|
+
"@inject",
|
|
36
|
+
"@module",
|
|
37
|
+
];
|
|
38
|
+
function classifyQueryShape(query) {
|
|
39
|
+
const lower = query.toLowerCase();
|
|
40
|
+
const hit = FRAMEWORK_WIRING_TOKENS.find((t) => lower.includes(t));
|
|
41
|
+
if (hit) {
|
|
42
|
+
return {
|
|
43
|
+
shape: "framework_wiring",
|
|
44
|
+
reason: `query mentions "${hit}" — framework registration/wiring questions are often better answered by grep for the specific annotation`,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return { shape: "general" };
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Build a confidence signal from the ranked candidates. Low confidence
|
|
51
|
+
* means either (a) no strong top result, or (b) the top and second-best
|
|
52
|
+
* results are too close to distinguish, or (c) the query shape is one
|
|
53
|
+
* we know semantic search struggles with.
|
|
54
|
+
*
|
|
55
|
+
* This is advisory — the results still come back, but the agent sees a
|
|
56
|
+
* hint at the bottom suggesting grep as a fallback. Issue #4.
|
|
57
|
+
*/
|
|
58
|
+
function computeConfidence(ranked, queryShape) {
|
|
59
|
+
if (ranked.length === 0) {
|
|
60
|
+
return { level: "low", reason: "no results matched" };
|
|
61
|
+
}
|
|
62
|
+
const top = ranked[0].score;
|
|
63
|
+
const second = ranked[1]?.score ?? 0;
|
|
64
|
+
// The RRF scores are small (~0.03 at rank 0 for k=60). A "strong"
|
|
65
|
+
// top-of-rank hit lands around ~0.03+. Below ~0.005 the query is
|
|
66
|
+
// either matching weakly or is out-of-distribution. These thresholds
|
|
67
|
+
// were calibrated against the profiler results in issue #6.
|
|
68
|
+
const WEAK_TOP_THRESHOLD = 0.005;
|
|
69
|
+
if (top < WEAK_TOP_THRESHOLD) {
|
|
70
|
+
return {
|
|
71
|
+
level: "low",
|
|
72
|
+
reason: "top result has a weak relevance score; the query may be out of distribution",
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
// Gap ratio: if the second result is >= 80% of the top result, the
|
|
76
|
+
// ranking has no clear winner and an agent copying the first result
|
|
77
|
+
// is taking a coin flip.
|
|
78
|
+
if (second > 0 && second / top > 0.8) {
|
|
79
|
+
if (queryShape.shape === "framework_wiring") {
|
|
80
|
+
return {
|
|
81
|
+
level: "low",
|
|
82
|
+
reason: queryShape.reason,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
level: "medium",
|
|
87
|
+
reason: "top two results are close — consider reading both or refining the query",
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
if (queryShape.shape === "framework_wiring") {
|
|
91
|
+
return {
|
|
92
|
+
level: "medium",
|
|
93
|
+
reason: queryShape.reason,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
return { level: "high", reason: null };
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Internal: compute the full ranked candidate list without packing.
|
|
100
|
+
* Extracted so hybridSearch and hybridSearchWithConfidence both share
|
|
101
|
+
* it — the original implementation ran this pipeline twice, once
|
|
102
|
+
* inside hybridSearch (packed) and again implicitly when the
|
|
103
|
+
* confidence wrapper called hybridSearch with a sky-high budget and
|
|
104
|
+
* then repacked. That was doubling the work on every search call.
|
|
105
|
+
*
|
|
106
|
+
* Returns the full ranked list (not token-budgeted). Callers pack.
|
|
107
|
+
*/
|
|
108
|
+
async function rankCandidates(indexer, options) {
|
|
109
|
+
const { query, scope, language, type } = options;
|
|
6
110
|
// Signal A: BM25 text search
|
|
7
111
|
const ftsResults = indexer.chunkStore.searchFts(query, 50);
|
|
8
112
|
// Signal B: Vector similarity search
|
|
9
113
|
// Optimization: only scan vectors for FTS candidate files + top PageRank files
|
|
10
114
|
// instead of ALL embeddings (O(n) brute force)
|
|
11
|
-
const [queryVector] = await embed([query]);
|
|
115
|
+
const [queryVector] = await indexer.embed([query]);
|
|
12
116
|
const candidateChunkIds = new Set();
|
|
13
117
|
// Add all FTS result chunk IDs
|
|
14
118
|
for (const r of ftsResults)
|
|
@@ -84,10 +188,68 @@ export async function hybridSearch(indexer, options) {
|
|
|
84
188
|
const finalScore = rrfScore * pagerankBoost;
|
|
85
189
|
candidates.push({ chunk, file, score: finalScore });
|
|
86
190
|
}
|
|
87
|
-
// Sort by score
|
|
191
|
+
// Sort by score, return unbounded — caller packs.
|
|
88
192
|
candidates.sort((a, b) => b.score - a.score);
|
|
89
|
-
|
|
90
|
-
|
|
193
|
+
return candidates;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Public entry point: returns the ranked+packed result list.
|
|
197
|
+
* Backwards compat for any in-process callers that don't need the
|
|
198
|
+
* confidence signal.
|
|
199
|
+
*/
|
|
200
|
+
export async function hybridSearch(indexer, options) {
|
|
201
|
+
const ranked = await rankCandidates(indexer, options);
|
|
202
|
+
return packResults(ranked, options.tokenBudget);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Same as hybridSearch but returns a confidence signal and a suggested
|
|
206
|
+
* fallback hint. This is the preferred entry point for the MCP tool —
|
|
207
|
+
* it lets us tell agents when semantic search is likely to be weak so
|
|
208
|
+
* they can fall back to Grep without burning a second tool call.
|
|
209
|
+
*/
|
|
210
|
+
export async function hybridSearchWithConfidence(indexer, options) {
|
|
211
|
+
// Single rank pass; confidence reads the unbounded list, the output
|
|
212
|
+
// is packed to the caller's budget. No double work.
|
|
213
|
+
const ranked = await rankCandidates(indexer, options);
|
|
214
|
+
const shape = classifyQueryShape(options.query);
|
|
215
|
+
const confidence = computeConfidence(ranked, shape);
|
|
216
|
+
const packed = packResults(ranked, options.tokenBudget);
|
|
217
|
+
// Fallback hint wording. Keep the hint specific to *what went wrong*
|
|
218
|
+
// so the agent can act on it rather than staring at an "unsure" tag.
|
|
219
|
+
let fallbackHint = null;
|
|
220
|
+
if (confidence.level === "low") {
|
|
221
|
+
if (shape.shape === "framework_wiring") {
|
|
222
|
+
fallbackHint =
|
|
223
|
+
"This query looks like a framework-wiring / registration question. " +
|
|
224
|
+
"Semantic search struggles with these because the answer often lives " +
|
|
225
|
+
"in a bean annotation, a config file, or a build-time-generated class. " +
|
|
226
|
+
"Try Grep for the specific annotation pattern (e.g. `@Component`, " +
|
|
227
|
+
"`@Configuration`, `@Inject`) or the framework-level class name.";
|
|
228
|
+
}
|
|
229
|
+
else if (ranked.length === 0) {
|
|
230
|
+
fallbackHint =
|
|
231
|
+
"No matches. The query may be out of distribution for the current " +
|
|
232
|
+
"embedding model. Try rephrasing with concrete identifier names, or " +
|
|
233
|
+
"fall back to `Grep` for exact string matching.";
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
fallbackHint =
|
|
237
|
+
"Top result has a weak relevance score. Consider a more specific " +
|
|
238
|
+
"query, or fall back to `Grep` if you know the exact symbol name.";
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
else if (confidence.level === "medium" && shape.shape === "framework_wiring") {
|
|
242
|
+
fallbackHint =
|
|
243
|
+
"These results may be framework-wiring-adjacent. If none of the top " +
|
|
244
|
+
"matches directly answer the question, grep for the specific annotation " +
|
|
245
|
+
"(e.g. `@Configuration`, `@Component`) — that's often the faster path.";
|
|
246
|
+
}
|
|
247
|
+
return {
|
|
248
|
+
results: packed,
|
|
249
|
+
confidence: confidence.level,
|
|
250
|
+
confidenceReason: confidence.reason,
|
|
251
|
+
fallbackHint,
|
|
252
|
+
};
|
|
91
253
|
}
|
|
92
254
|
export function packResults(candidates, tokenBudget) {
|
|
93
255
|
const results = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hybrid-search.js","sourceRoot":"","sources":["../../../src/search/hybrid-search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"hybrid-search.js","sourceRoot":"","sources":["../../../src/search/hybrid-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
// Minimal SearchResult fixture helper.
|
|
3
|
+
function mkResult(score) {
|
|
4
|
+
return {
|
|
5
|
+
chunk: {
|
|
6
|
+
id: 1,
|
|
7
|
+
file_id: 1,
|
|
8
|
+
start_line: 1,
|
|
9
|
+
end_line: 2,
|
|
10
|
+
content: "x",
|
|
11
|
+
type: "function",
|
|
12
|
+
name: "foo",
|
|
13
|
+
token_count: 10,
|
|
14
|
+
signature: null,
|
|
15
|
+
metadata: null,
|
|
16
|
+
},
|
|
17
|
+
file: {
|
|
18
|
+
id: 1,
|
|
19
|
+
path: "src/foo.ts",
|
|
20
|
+
language: "typescript",
|
|
21
|
+
pagerank: 0.5,
|
|
22
|
+
last_modified: 0,
|
|
23
|
+
},
|
|
24
|
+
score,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
// We exercise the module through a tiny monkey-patched shim that
|
|
28
|
+
// imports the same helpers. Since they're not exported, we re-declare
|
|
29
|
+
// them here for test coverage — if the production copies diverge, the
|
|
30
|
+
// behavioral tests against the public API (below) will catch it.
|
|
31
|
+
describe("query-shape classifier", () => {
|
|
32
|
+
// Importing the real module forces the branch coverage to run against
|
|
33
|
+
// its real exports. We call hybridSearchWithConfidence with a fake
|
|
34
|
+
// indexer that returns empty results and assert the framework-wiring
|
|
35
|
+
// detection fires on the confidence hint.
|
|
36
|
+
it("flags framework-wiring queries as low confidence with grep hint", async () => {
|
|
37
|
+
const { hybridSearchWithConfidence } = await import("./hybrid-search.js");
|
|
38
|
+
const fakeIndexer = {
|
|
39
|
+
chunkStore: {
|
|
40
|
+
searchFts: () => [],
|
|
41
|
+
getByFile: () => [],
|
|
42
|
+
getById: () => undefined,
|
|
43
|
+
},
|
|
44
|
+
fileStore: {
|
|
45
|
+
getAll: () => [],
|
|
46
|
+
},
|
|
47
|
+
embeddingStore: {
|
|
48
|
+
get: () => undefined,
|
|
49
|
+
},
|
|
50
|
+
embed: async () => [new Float32Array(384)],
|
|
51
|
+
};
|
|
52
|
+
const result = await hybridSearchWithConfidence(fakeIndexer, {
|
|
53
|
+
query: "how is CallerTraceInterceptor registered as a bean",
|
|
54
|
+
tokenBudget: 1000,
|
|
55
|
+
});
|
|
56
|
+
expect(result.confidence).toBe("low");
|
|
57
|
+
expect(result.fallbackHint).not.toBeNull();
|
|
58
|
+
expect(result.fallbackHint).toMatch(/framework.wiring|annotation|grep/i);
|
|
59
|
+
});
|
|
60
|
+
it("does not flag general semantic queries as low confidence", async () => {
|
|
61
|
+
const { hybridSearchWithConfidence } = await import("./hybrid-search.js");
|
|
62
|
+
const fakeIndexer = {
|
|
63
|
+
chunkStore: {
|
|
64
|
+
searchFts: () => [],
|
|
65
|
+
getByFile: () => [],
|
|
66
|
+
getById: () => undefined,
|
|
67
|
+
},
|
|
68
|
+
fileStore: {
|
|
69
|
+
getAll: () => [],
|
|
70
|
+
},
|
|
71
|
+
embeddingStore: {
|
|
72
|
+
get: () => undefined,
|
|
73
|
+
},
|
|
74
|
+
embed: async () => [new Float32Array(384)],
|
|
75
|
+
};
|
|
76
|
+
// Empty results will still trigger "no results" low-confidence, but
|
|
77
|
+
// the reason must NOT mention framework wiring.
|
|
78
|
+
const result = await hybridSearchWithConfidence(fakeIndexer, {
|
|
79
|
+
query: "find the retry logic for http requests",
|
|
80
|
+
tokenBudget: 1000,
|
|
81
|
+
});
|
|
82
|
+
expect(result.confidence).toBe("low");
|
|
83
|
+
if (result.fallbackHint) {
|
|
84
|
+
expect(result.fallbackHint).not.toMatch(/framework.wiring/i);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
it("handles @annotation tokens case-insensitively", async () => {
|
|
88
|
+
const { hybridSearchWithConfidence } = await import("./hybrid-search.js");
|
|
89
|
+
const fakeIndexer = {
|
|
90
|
+
chunkStore: {
|
|
91
|
+
searchFts: () => [],
|
|
92
|
+
getByFile: () => [],
|
|
93
|
+
getById: () => undefined,
|
|
94
|
+
},
|
|
95
|
+
fileStore: {
|
|
96
|
+
getAll: () => [],
|
|
97
|
+
},
|
|
98
|
+
embeddingStore: {
|
|
99
|
+
get: () => undefined,
|
|
100
|
+
},
|
|
101
|
+
embed: async () => [new Float32Array(384)],
|
|
102
|
+
};
|
|
103
|
+
const result = await hybridSearchWithConfidence(fakeIndexer, {
|
|
104
|
+
query: "where are @Configuration classes defined",
|
|
105
|
+
tokenBudget: 1000,
|
|
106
|
+
});
|
|
107
|
+
// Either a framework-wiring hit or a low-confidence-no-results hit;
|
|
108
|
+
// both should return a hint.
|
|
109
|
+
expect(result.fallbackHint).not.toBeNull();
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
//# sourceMappingURL=hybrid-search.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hybrid-search.test.js","sourceRoot":"","sources":["../../../src/search/hybrid-search.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,4 +7,5 @@ export declare function formatOverview(entries: OverviewEntry[], tokenBudget: nu
|
|
|
7
7
|
export declare function formatLookup(chunks: (CodeChunk & {
|
|
8
8
|
filePath?: string;
|
|
9
9
|
pagerank?: number;
|
|
10
|
+
fileLanguage?: string;
|
|
10
11
|
})[], files: Map<number, FileRecord>, tokenBudget: number): string;
|
|
@@ -49,16 +49,26 @@ export function formatLookup(chunks, files, tokenBudget) {
|
|
|
49
49
|
const parts = [];
|
|
50
50
|
let remaining = tokenBudget;
|
|
51
51
|
let fittedAny = false;
|
|
52
|
+
// Bug B (issue #15 investigation): chunks that didn't fit the
|
|
53
|
+
// budget used to be silently dropped if ANY other chunk fit. On
|
|
54
|
+
// a query for 'Indexer', that meant the real 470-line Indexer
|
|
55
|
+
// class (4730 tokens) was replaced by a 150-token
|
|
56
|
+
// fakeIndexerWithCore test helper with no hint that the real
|
|
57
|
+
// match was hiding right behind it. Track skipped chunks so we
|
|
58
|
+
// can always surface them, even when other matches fit.
|
|
59
|
+
const skipped = [];
|
|
52
60
|
for (const chunk of chunks) {
|
|
53
61
|
const file = files.get(chunk.file_id);
|
|
54
62
|
const filePath = chunk.filePath || file?.path || "unknown";
|
|
55
|
-
const lang = file?.language || "";
|
|
63
|
+
const lang = chunk.fileLanguage || file?.language || "";
|
|
56
64
|
const header = `## ${filePath}:${chunk.start_line}-${chunk.end_line} (${chunk.type}: ${chunk.name})`;
|
|
57
65
|
const headerCost = Math.ceil(header.length / 3.5);
|
|
58
66
|
const contentCost = chunk.token_count;
|
|
59
67
|
const totalCost = headerCost + contentCost + 10;
|
|
60
|
-
if (remaining < totalCost)
|
|
68
|
+
if (remaining < totalCost) {
|
|
69
|
+
skipped.push(chunk);
|
|
61
70
|
continue;
|
|
71
|
+
}
|
|
62
72
|
parts.push(header);
|
|
63
73
|
parts.push(`\`\`\`${lang}`);
|
|
64
74
|
parts.push(chunk.content);
|
|
@@ -66,10 +76,14 @@ export function formatLookup(chunks, files, tokenBudget) {
|
|
|
66
76
|
remaining -= totalCost;
|
|
67
77
|
fittedAny = true;
|
|
68
78
|
}
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
//
|
|
79
|
+
// Two cases that both produce a "location-only" section:
|
|
80
|
+
//
|
|
81
|
+
// 1. Nothing fit → the old "All N matches exceed budget" fallback.
|
|
82
|
+
// We still need this because returning "No results found" for
|
|
83
|
+
// matches that exist but are oversized is actively misleading.
|
|
84
|
+
//
|
|
85
|
+
// 2. Some fit, some didn't → list the ones that didn't so the
|
|
86
|
+
// caller knows they exist. This is the bug-B fix.
|
|
73
87
|
if (!fittedAny) {
|
|
74
88
|
parts.push(`_All ${chunks.length} match${chunks.length === 1 ? "" : "es"} exceed token_budget=${tokenBudget}. Showing locations only — re-run with a larger token_budget or use Read for the full body._`);
|
|
75
89
|
parts.push("");
|
|
@@ -80,6 +94,20 @@ export function formatLookup(chunks, files, tokenBudget) {
|
|
|
80
94
|
parts.push(`- **${filePath}:${chunk.start_line}-${chunk.end_line}** (${chunk.type}: ${chunk.name}, ~${chunk.token_count} tokens)${sig}`);
|
|
81
95
|
}
|
|
82
96
|
}
|
|
97
|
+
else if (skipped.length > 0) {
|
|
98
|
+
parts.push("");
|
|
99
|
+
parts.push(`_${skipped.length} additional match${skipped.length === 1 ? "" : "es"} too large to fit token_budget=${tokenBudget}:_`);
|
|
100
|
+
for (const chunk of skipped.slice(0, 10)) {
|
|
101
|
+
const file = files.get(chunk.file_id);
|
|
102
|
+
const filePath = chunk.filePath || file?.path || "unknown";
|
|
103
|
+
const sig = chunk.signature ? ` \`${chunk.signature.trim()}\`` : "";
|
|
104
|
+
parts.push(`- **${filePath}:${chunk.start_line}-${chunk.end_line}** (${chunk.type}: ${chunk.name}, ~${chunk.token_count} tokens)${sig}`);
|
|
105
|
+
}
|
|
106
|
+
if (skipped.length > 10) {
|
|
107
|
+
parts.push(`- _...and ${skipped.length - 10} more_`);
|
|
108
|
+
}
|
|
109
|
+
parts.push(`_Raise token_budget or call sverklo_lookup with the specific symbol to see the body._`);
|
|
110
|
+
}
|
|
83
111
|
return parts.join("\n");
|
|
84
112
|
}
|
|
85
113
|
//# sourceMappingURL=token-budget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-budget.js","sourceRoot":"","sources":["../../../src/search/token-budget.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"token-budget.js","sourceRoot":"","sources":["../../../src/search/token-budget.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ import { contextTool, handleContext } from "./tools/context.js";
|
|
|
28
28
|
import { promoteTool, demoteTool, handlePromote, handleDemote, } from "./tools/tier.js";
|
|
29
29
|
import { startHttpServer } from "./http-server.js";
|
|
30
30
|
import { track } from "../telemetry/index.js";
|
|
31
|
+
import { applyToolOverrides } from "./tool-overrides.js";
|
|
31
32
|
// Zilliz claude-context compatibility tool definitions.
|
|
32
33
|
// These mirror github.com/zilliztech/claude-context tool names so users can
|
|
33
34
|
// swap claude-context for sverklo without changing their MCP client config.
|
|
@@ -224,32 +225,38 @@ export async function startMcpServer(rootPath) {
|
|
|
224
225
|
// every session and most users don't need them. Dispatch cases below are
|
|
225
226
|
// always wired so opt-in users keep working.
|
|
226
227
|
const enableZilliz = process.env.SVERKLO_ZILLIZ_COMPAT === "1";
|
|
228
|
+
// Tool descriptions and the visible set can be overridden at runtime via
|
|
229
|
+
// SVERKLO_TOOL_<NAME>_DESCRIPTION and SVERKLO_DISABLED_TOOLS env vars.
|
|
230
|
+
// See src/server/tool-overrides.ts for details. This lets power users
|
|
231
|
+
// repurpose or trim the tool surface without forking.
|
|
232
|
+
const baseTools = [
|
|
233
|
+
contextTool,
|
|
234
|
+
searchTool,
|
|
235
|
+
overviewTool,
|
|
236
|
+
lookupTool,
|
|
237
|
+
findReferencesTool,
|
|
238
|
+
dependenciesTool,
|
|
239
|
+
indexStatusTool,
|
|
240
|
+
rememberTool,
|
|
241
|
+
recallTool,
|
|
242
|
+
forgetTool,
|
|
243
|
+
memoriesTool,
|
|
244
|
+
promoteTool,
|
|
245
|
+
demoteTool,
|
|
246
|
+
impactTool,
|
|
247
|
+
auditTool,
|
|
248
|
+
wakeupTool,
|
|
249
|
+
reviewDiffTool,
|
|
250
|
+
diffSearchTool,
|
|
251
|
+
testMapTool,
|
|
252
|
+
astGrepTool,
|
|
253
|
+
...(enableZilliz
|
|
254
|
+
? [indexCodebaseTool, searchCodeTool, clearIndexTool, getIndexingStatusTool]
|
|
255
|
+
: []),
|
|
256
|
+
];
|
|
257
|
+
const visibleTools = applyToolOverrides(baseTools);
|
|
227
258
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
228
|
-
tools:
|
|
229
|
-
contextTool,
|
|
230
|
-
searchTool,
|
|
231
|
-
overviewTool,
|
|
232
|
-
lookupTool,
|
|
233
|
-
findReferencesTool,
|
|
234
|
-
dependenciesTool,
|
|
235
|
-
indexStatusTool,
|
|
236
|
-
rememberTool,
|
|
237
|
-
recallTool,
|
|
238
|
-
forgetTool,
|
|
239
|
-
memoriesTool,
|
|
240
|
-
promoteTool,
|
|
241
|
-
demoteTool,
|
|
242
|
-
impactTool,
|
|
243
|
-
auditTool,
|
|
244
|
-
wakeupTool,
|
|
245
|
-
reviewDiffTool,
|
|
246
|
-
diffSearchTool,
|
|
247
|
-
testMapTool,
|
|
248
|
-
astGrepTool,
|
|
249
|
-
...(enableZilliz
|
|
250
|
-
? [indexCodebaseTool, searchCodeTool, clearIndexTool, getIndexingStatusTool]
|
|
251
|
-
: []),
|
|
252
|
-
],
|
|
259
|
+
tools: visibleTools,
|
|
253
260
|
}));
|
|
254
261
|
// Handle tool calls
|
|
255
262
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../../src/server/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../../src/server/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface ToolLike {
|
|
2
|
+
name: string;
|
|
3
|
+
description: string;
|
|
4
|
+
inputSchema: unknown;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Apply env-var overrides to a list of tool definitions. Returns a new
|
|
8
|
+
* array — never mutates the input. Tools whose names appear in
|
|
9
|
+
* `SVERKLO_DISABLED_TOOLS` are dropped entirely.
|
|
10
|
+
*/
|
|
11
|
+
export declare function applyToolOverrides<T extends ToolLike>(tools: T[]): T[];
|
|
12
|
+
/**
|
|
13
|
+
* Test-only: reset the cached env-var parse so unit tests can flip
|
|
14
|
+
* env vars mid-run and see the change.
|
|
15
|
+
*/
|
|
16
|
+
export declare function __resetToolOverrideCache(): void;
|