sverklo 0.12.2 → 0.12.3
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 +11 -7
- package/dist/src/search/boost.d.ts +32 -0
- package/dist/src/search/boost.js +120 -0
- package/dist/src/search/boost.js.map +1 -0
- package/dist/src/search/boost.test.d.ts +1 -0
- package/dist/src/search/boost.test.js +61 -0
- package/dist/src/search/boost.test.js.map +1 -0
- package/dist/src/search/hybrid-search.d.ts +7 -0
- package/dist/src/search/hybrid-search.js +7 -1
- package/dist/src/search/hybrid-search.js.map +1 -1
- package/dist/src/server/audit-html.js +12 -1
- package/dist/src/server/audit-html.js.map +1 -1
- package/dist/src/server/audit-html.test.js +3 -2
- package/dist/src/server/audit-html.test.js.map +1 -1
- package/dist/src/server/tools/search.d.ts +4 -0
- package/dist/src/server/tools/search.js +8 -0
- package/dist/src/server/tools/search.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
# Sverklo
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> **Hallucination-resistant code intelligence for Claude Code, Cursor, Windsurf, and Zed.**
|
|
4
|
+
> Semantic search, impact analysis, persistent memory — pick 3. Local, MIT, zero config.
|
|
4
5
|
|
|
5
6
|
[](https://www.npmjs.com/package/sverklo)
|
|
6
7
|
[](https://www.npmjs.com/package/sverklo)
|
|
7
8
|
[](LICENSE)
|
|
9
|
+
[](https://sverklo.com/report)
|
|
8
10
|
|
|
9
11
|

|
|
10
12
|
|
|
11
|
-
##
|
|
13
|
+
## Why
|
|
12
14
|
|
|
13
|
-
Your AI agent edits `UserService.validate()`. It doesn't know
|
|
15
|
+
Your AI agent edits `UserService.validate()`. It doesn't know 47 other functions call it. It hallucinates an import. It forgets the design decision you made yesterday because context was compacted. Tests pass because they mock the dependency. Breaking changes ship.
|
|
14
16
|
|
|
15
|
-
Sverklo gives your agent
|
|
17
|
+
Sverklo (Russian: *сверкло*, "drill") gives your agent a structural understanding of your codebase — symbol graph, blast radius, semantic recall, and git-pinned memory — so it stops guessing.
|
|
16
18
|
|
|
17
19
|
<table>
|
|
18
20
|
<tr>
|
|
19
|
-
<td align="center"><b>20</b><br/>tools your agent
|
|
21
|
+
<td align="center"><b>20</b><br/>MCP tools your agent uses</td>
|
|
20
22
|
<td align="center"><b>< 2 s</b><br/>to index a 1,700-file monorepo</td>
|
|
21
|
-
<td align="center"><b>0 bytes</b><br/>of your code leave
|
|
23
|
+
<td align="center"><b>0 bytes</b><br/>of your code leave the machine</td>
|
|
22
24
|
</tr>
|
|
23
25
|
</table>
|
|
24
26
|
|
|
@@ -27,7 +29,9 @@ npm install -g sverklo
|
|
|
27
29
|
cd your-project && sverklo init
|
|
28
30
|
```
|
|
29
31
|
|
|
30
|
-
`sverklo init` auto-detects your installed AI coding
|
|
32
|
+
That's it. `sverklo init` auto-detects your installed AI coding agent (Claude Code, Cursor, Windsurf, Zed), writes the right MCP config, appends instructions to your `CLAUDE.md`, and runs `sverklo doctor` to verify the setup. **No API keys. No cloud. No telemetry.**
|
|
33
|
+
|
|
34
|
+
**Want proof before installing?** Browse the [/report leaderboard](https://sverklo.com/report) — Sverklo audits of 47 popular OSS repos (express, react-hook-form, vite, lodash, prisma, …) with grade cards for dead code, circular deps, coupling, and security.
|
|
31
35
|
|
|
32
36
|
---
|
|
33
37
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* +5% multiplicative bonus for files that conventionally serve as a
|
|
3
|
+
* module's entry point. Cheap disambiguation for files-with-the-same-name
|
|
4
|
+
* cases.
|
|
5
|
+
*/
|
|
6
|
+
export declare function entryPointBonus(filePath: string): number;
|
|
7
|
+
/**
|
|
8
|
+
* Path-suffix alignment. When the user typed a path-shaped query (one
|
|
9
|
+
* containing a separator), files whose path *ends* with that fragment
|
|
10
|
+
* are dramatically more likely to be the intended target. Score by the
|
|
11
|
+
* number of matched trailing segments × per-segment weight.
|
|
12
|
+
*
|
|
13
|
+
* Returns a multiplicative factor in [1.0, 1.4]. No-op (1.0) for
|
|
14
|
+
* non-path queries or when no suffix overlap exists.
|
|
15
|
+
*
|
|
16
|
+
* Borrowed shape from fff.nvim score.rs:677-700.
|
|
17
|
+
*/
|
|
18
|
+
export declare function pathSuffixAlignmentBonus(query: string, filePath: string): number;
|
|
19
|
+
/**
|
|
20
|
+
* When the MCP caller provides the file the user is currently editing,
|
|
21
|
+
* penalize candidates by directory distance. Files in the same dir or a
|
|
22
|
+
* sibling are more relevant than something across the repo. Borrowed
|
|
23
|
+
* from fff.nvim path_utils.rs:36-92.
|
|
24
|
+
*
|
|
25
|
+
* Returns a multiplicative factor in (0.5, 1.0]. No-op when currentFile
|
|
26
|
+
* is undefined.
|
|
27
|
+
*
|
|
28
|
+
* The penalty is gentle because the structural signals (PageRank, RRF)
|
|
29
|
+
* already do a lot of work — we only want to break ties between two
|
|
30
|
+
* otherwise-equivalent candidates.
|
|
31
|
+
*/
|
|
32
|
+
export declare function currentFileDistancePenalty(candidatePath: string, currentFile: string | undefined): number;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// Scoring boosts borrowed from fff.nvim's score.rs (MIT). Each one is
|
|
2
|
+
// independent and small enough to ship behind a feature flag if needed.
|
|
3
|
+
// All three operate on top of the RRF-fused base score, multiplicatively.
|
|
4
|
+
//
|
|
5
|
+
// FOLLOW-UP (deferred): fff.nvim also has a "dual-decay frecency" model
|
|
6
|
+
// where AI sessions get a 3-day half-life and human sessions get 10-day
|
|
7
|
+
// (frecency.rs:21-45). Implementing it for Sverklo requires tracking
|
|
8
|
+
// per-(repo, file) access timestamps and a client-type signal through
|
|
9
|
+
// the MCP layer — not in scope for this patch. Tracked for v0.13.
|
|
10
|
+
import { basename, dirname, sep } from "node:path";
|
|
11
|
+
// Files that conventionally re-export a module's surface area or define
|
|
12
|
+
// its entry point. A small bonus disambiguates the common case of "I
|
|
13
|
+
// typed `foo` and there are 12 files containing `foo`; which one is the
|
|
14
|
+
// actual module entry?". Borrowed table from fff.nvim score.rs:745.
|
|
15
|
+
const ENTRY_POINT_BASENAMES = new Set([
|
|
16
|
+
// JS / TS
|
|
17
|
+
"index.ts",
|
|
18
|
+
"index.tsx",
|
|
19
|
+
"index.js",
|
|
20
|
+
"index.jsx",
|
|
21
|
+
"index.mjs",
|
|
22
|
+
"index.cjs",
|
|
23
|
+
// Python
|
|
24
|
+
"__init__.py",
|
|
25
|
+
"__main__.py",
|
|
26
|
+
// Rust
|
|
27
|
+
"mod.rs",
|
|
28
|
+
"lib.rs",
|
|
29
|
+
"main.rs",
|
|
30
|
+
// Go
|
|
31
|
+
"main.go",
|
|
32
|
+
// C / C++
|
|
33
|
+
"main.c",
|
|
34
|
+
"main.cpp",
|
|
35
|
+
"main.cc",
|
|
36
|
+
// Java / Kotlin
|
|
37
|
+
"Main.java",
|
|
38
|
+
"Main.kt",
|
|
39
|
+
// Ruby
|
|
40
|
+
"main.rb",
|
|
41
|
+
]);
|
|
42
|
+
/**
|
|
43
|
+
* +5% multiplicative bonus for files that conventionally serve as a
|
|
44
|
+
* module's entry point. Cheap disambiguation for files-with-the-same-name
|
|
45
|
+
* cases.
|
|
46
|
+
*/
|
|
47
|
+
export function entryPointBonus(filePath) {
|
|
48
|
+
return ENTRY_POINT_BASENAMES.has(basename(filePath)) ? 1.05 : 1.0;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Path-suffix alignment. When the user typed a path-shaped query (one
|
|
52
|
+
* containing a separator), files whose path *ends* with that fragment
|
|
53
|
+
* are dramatically more likely to be the intended target. Score by the
|
|
54
|
+
* number of matched trailing segments × per-segment weight.
|
|
55
|
+
*
|
|
56
|
+
* Returns a multiplicative factor in [1.0, 1.4]. No-op (1.0) for
|
|
57
|
+
* non-path queries or when no suffix overlap exists.
|
|
58
|
+
*
|
|
59
|
+
* Borrowed shape from fff.nvim score.rs:677-700.
|
|
60
|
+
*/
|
|
61
|
+
export function pathSuffixAlignmentBonus(query, filePath) {
|
|
62
|
+
// Only kicks in for path-shaped queries.
|
|
63
|
+
if (!query.includes("/") && !query.includes(sep))
|
|
64
|
+
return 1.0;
|
|
65
|
+
// Normalize separators to forward-slash for comparison.
|
|
66
|
+
const normalizedQuery = query.replaceAll("\\", "/").toLowerCase();
|
|
67
|
+
const normalizedPath = filePath.replaceAll("\\", "/").toLowerCase();
|
|
68
|
+
const querySegments = normalizedQuery.split("/").filter(Boolean);
|
|
69
|
+
const pathSegments = normalizedPath.split("/").filter(Boolean);
|
|
70
|
+
if (querySegments.length === 0 || pathSegments.length === 0)
|
|
71
|
+
return 1.0;
|
|
72
|
+
// Count contiguous matching segments from the right. The query's last
|
|
73
|
+
// segment must exactly equal the path's last segment for a match to
|
|
74
|
+
// start; partial filename matches are handled elsewhere.
|
|
75
|
+
let matched = 0;
|
|
76
|
+
for (let i = 1; i <= Math.min(querySegments.length, pathSegments.length); i++) {
|
|
77
|
+
if (querySegments[querySegments.length - i] === pathSegments[pathSegments.length - i]) {
|
|
78
|
+
matched++;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (matched === 0)
|
|
85
|
+
return 1.0;
|
|
86
|
+
// Each matched segment adds 10%, capped at +40%.
|
|
87
|
+
return 1.0 + Math.min(0.4, matched * 0.1);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* When the MCP caller provides the file the user is currently editing,
|
|
91
|
+
* penalize candidates by directory distance. Files in the same dir or a
|
|
92
|
+
* sibling are more relevant than something across the repo. Borrowed
|
|
93
|
+
* from fff.nvim path_utils.rs:36-92.
|
|
94
|
+
*
|
|
95
|
+
* Returns a multiplicative factor in (0.5, 1.0]. No-op when currentFile
|
|
96
|
+
* is undefined.
|
|
97
|
+
*
|
|
98
|
+
* The penalty is gentle because the structural signals (PageRank, RRF)
|
|
99
|
+
* already do a lot of work — we only want to break ties between two
|
|
100
|
+
* otherwise-equivalent candidates.
|
|
101
|
+
*/
|
|
102
|
+
export function currentFileDistancePenalty(candidatePath, currentFile) {
|
|
103
|
+
if (!currentFile || candidatePath === currentFile)
|
|
104
|
+
return 1.0;
|
|
105
|
+
const candidateDirs = dirname(candidatePath).split(/[\\/]/).filter(Boolean);
|
|
106
|
+
const currentDirs = dirname(currentFile).split(/[\\/]/).filter(Boolean);
|
|
107
|
+
// Find common prefix length.
|
|
108
|
+
let common = 0;
|
|
109
|
+
const max = Math.min(candidateDirs.length, currentDirs.length);
|
|
110
|
+
while (common < max && candidateDirs[common] === currentDirs[common]) {
|
|
111
|
+
common++;
|
|
112
|
+
}
|
|
113
|
+
// Distance = directories you'd have to walk up + over to reach the candidate.
|
|
114
|
+
const distance = candidateDirs.length - common + (currentDirs.length - common);
|
|
115
|
+
// Cap at 20 (matches fff.nvim's clamp). Each unit ~2.5% penalty.
|
|
116
|
+
// Floor at 0.5 so even far-away files don't get crushed.
|
|
117
|
+
const clamped = Math.min(20, distance);
|
|
118
|
+
return Math.max(0.5, 1.0 - 0.025 * clamped);
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=boost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boost.js","sourceRoot":"","sources":["../../../src/search/boost.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { entryPointBonus, pathSuffixAlignmentBonus, currentFileDistancePenalty, } from "./boost.js";
|
|
3
|
+
describe("entryPointBonus", () => {
|
|
4
|
+
it("boosts conventional entry points across languages", () => {
|
|
5
|
+
expect(entryPointBonus("src/index.ts")).toBe(1.05);
|
|
6
|
+
expect(entryPointBonus("pkg/__init__.py")).toBe(1.05);
|
|
7
|
+
expect(entryPointBonus("crates/foo/src/mod.rs")).toBe(1.05);
|
|
8
|
+
expect(entryPointBonus("cmd/server/main.go")).toBe(1.05);
|
|
9
|
+
});
|
|
10
|
+
it("does not boost regular files", () => {
|
|
11
|
+
expect(entryPointBonus("src/parser.ts")).toBe(1.0);
|
|
12
|
+
expect(entryPointBonus("src/utils/string.ts")).toBe(1.0);
|
|
13
|
+
expect(entryPointBonus("README.md")).toBe(1.0);
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
describe("pathSuffixAlignmentBonus", () => {
|
|
17
|
+
it("returns 1.0 for non-path queries", () => {
|
|
18
|
+
expect(pathSuffixAlignmentBonus("authenticate", "src/auth/index.ts")).toBe(1.0);
|
|
19
|
+
expect(pathSuffixAlignmentBonus("getUserById", "src/users.ts")).toBe(1.0);
|
|
20
|
+
});
|
|
21
|
+
it("boosts when query suffix matches path suffix", () => {
|
|
22
|
+
// Single-segment match: +10%
|
|
23
|
+
expect(pathSuffixAlignmentBonus("auth/index.ts", "src/api/auth/index.ts")).toBeCloseTo(1.2);
|
|
24
|
+
// Two-segment match: +20%
|
|
25
|
+
expect(pathSuffixAlignmentBonus("api/auth/index.ts", "src/api/auth/index.ts")).toBeCloseTo(1.3);
|
|
26
|
+
});
|
|
27
|
+
it("caps at +40%", () => {
|
|
28
|
+
const score = pathSuffixAlignmentBonus("a/b/c/d/e/f/g/h.ts", "/a/b/c/d/e/f/g/h.ts");
|
|
29
|
+
expect(score).toBeLessThanOrEqual(1.4);
|
|
30
|
+
});
|
|
31
|
+
it("returns 1.0 when no suffix overlap", () => {
|
|
32
|
+
expect(pathSuffixAlignmentBonus("foo/bar.ts", "src/baz/qux.ts")).toBe(1.0);
|
|
33
|
+
});
|
|
34
|
+
it("is case-insensitive", () => {
|
|
35
|
+
expect(pathSuffixAlignmentBonus("Auth/Index.ts", "src/AUTH/INDEX.TS")).toBeCloseTo(1.2);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
describe("currentFileDistancePenalty", () => {
|
|
39
|
+
it("returns 1.0 when no current file", () => {
|
|
40
|
+
expect(currentFileDistancePenalty("src/anywhere.ts", undefined)).toBe(1.0);
|
|
41
|
+
});
|
|
42
|
+
it("returns 1.0 when candidate IS the current file", () => {
|
|
43
|
+
expect(currentFileDistancePenalty("src/foo.ts", "src/foo.ts")).toBe(1.0);
|
|
44
|
+
});
|
|
45
|
+
it("applies small penalty for sibling files", () => {
|
|
46
|
+
// Same directory: distance 0, no penalty
|
|
47
|
+
const score = currentFileDistancePenalty("src/api/users.ts", "src/api/auth.ts");
|
|
48
|
+
expect(score).toBe(1.0);
|
|
49
|
+
});
|
|
50
|
+
it("applies larger penalty for far-away files", () => {
|
|
51
|
+
const close = currentFileDistancePenalty("src/api/users.ts", "src/api/auth.ts");
|
|
52
|
+
const far = currentFileDistancePenalty("test/integration/billing/charge.test.ts", "src/api/auth.ts");
|
|
53
|
+
expect(far).toBeLessThan(close);
|
|
54
|
+
expect(far).toBeGreaterThanOrEqual(0.5); // floor
|
|
55
|
+
});
|
|
56
|
+
it("never goes below 0.5", () => {
|
|
57
|
+
const veryFar = currentFileDistancePenalty("a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x.ts", "z/y.ts");
|
|
58
|
+
expect(veryFar).toBeGreaterThanOrEqual(0.5);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=boost.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boost.test.js","sourceRoot":"","sources":["../../../src/search/boost.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,13 @@ interface SearchOptions {
|
|
|
6
6
|
scope?: string;
|
|
7
7
|
language?: string;
|
|
8
8
|
type?: ChunkType | "any";
|
|
9
|
+
/**
|
|
10
|
+
* Repo-relative path of the file the user is currently editing. When
|
|
11
|
+
* provided, candidates are gently penalized by directory distance so
|
|
12
|
+
* results closer to the active file rank higher in tie-breaks. Pass
|
|
13
|
+
* undefined to disable. See ./boost.ts.
|
|
14
|
+
*/
|
|
15
|
+
currentFile?: string;
|
|
9
16
|
}
|
|
10
17
|
/**
|
|
11
18
|
* Result of a hybrid search — the ranked candidates plus a confidence
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { cosineSimilarity } from "../indexer/embedder.js";
|
|
2
|
+
import { entryPointBonus, pathSuffixAlignmentBonus, currentFileDistancePenalty, } from "./boost.js";
|
|
2
3
|
// Reciprocal Rank Fusion constant
|
|
3
4
|
const RRF_K = 60;
|
|
4
5
|
// Issue #4: query-shape classification. Research showed semantic search
|
|
@@ -185,7 +186,12 @@ async function rankCandidates(indexer, options) {
|
|
|
185
186
|
continue;
|
|
186
187
|
// Boost by PageRank
|
|
187
188
|
const pagerankBoost = 1 + 0.3 * file.pagerank;
|
|
188
|
-
|
|
189
|
+
// Cheap structural boosts borrowed from fff.nvim. Each is ≤±40% so
|
|
190
|
+
// they break ties without overwhelming the RRF + PageRank signal.
|
|
191
|
+
const entryBoost = entryPointBonus(file.path);
|
|
192
|
+
const suffixBoost = pathSuffixAlignmentBonus(query, file.path);
|
|
193
|
+
const distancePenalty = currentFileDistancePenalty(file.path, options.currentFile);
|
|
194
|
+
const finalScore = rrfScore * pagerankBoost * entryBoost * suffixBoost * distancePenalty;
|
|
189
195
|
candidates.push({ chunk, file, score: finalScore });
|
|
190
196
|
}
|
|
191
197
|
// Sort by score, return unbounded — caller packs.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hybrid-search.js","sourceRoot":"","sources":["../../../src/search/hybrid-search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"hybrid-search.js","sourceRoot":"","sources":["../../../src/search/hybrid-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -172,6 +172,15 @@ export function generateAuditHtml(markdownContent, projectName, projectPath) {
|
|
|
172
172
|
.header .meta .project-name {
|
|
173
173
|
color: var(--text);
|
|
174
174
|
font-weight: 600;
|
|
175
|
+
font-size: inherit;
|
|
176
|
+
margin: 0;
|
|
177
|
+
display: inline;
|
|
178
|
+
}
|
|
179
|
+
/* a11y: focus ring for keyboard nav */
|
|
180
|
+
a:focus-visible, button:focus-visible {
|
|
181
|
+
outline: 2px solid var(--accent);
|
|
182
|
+
outline-offset: 2px;
|
|
183
|
+
border-radius: 2px;
|
|
175
184
|
}
|
|
176
185
|
|
|
177
186
|
/* ── Overall grade circle ── */
|
|
@@ -436,6 +445,7 @@ export function generateAuditHtml(markdownContent, projectName, projectPath) {
|
|
|
436
445
|
</nav>
|
|
437
446
|
</div>
|
|
438
447
|
</header>
|
|
448
|
+
<main>
|
|
439
449
|
<div class="wrapper">
|
|
440
450
|
|
|
441
451
|
<div class="header">
|
|
@@ -445,7 +455,7 @@ export function generateAuditHtml(markdownContent, projectName, projectPath) {
|
|
|
445
455
|
</div>
|
|
446
456
|
<div class="grade-label">Overall Health</div>
|
|
447
457
|
<div class="meta">
|
|
448
|
-
<
|
|
458
|
+
<h1 class="project-name">${esc(displayName)}</h1><br>
|
|
449
459
|
${sourceLink ? `<a href="${esc(sourceLink)}">${esc(sourceLink)}</a><br>` : ""}
|
|
450
460
|
${now}
|
|
451
461
|
</div>
|
|
@@ -465,6 +475,7 @@ export function generateAuditHtml(markdownContent, projectName, projectPath) {
|
|
|
465
475
|
</div>
|
|
466
476
|
|
|
467
477
|
</div>
|
|
478
|
+
</main>
|
|
468
479
|
</body>
|
|
469
480
|
</html>`;
|
|
470
481
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-html.js","sourceRoot":"","sources":["../../../src/server/audit-html.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"audit-html.js","sourceRoot":"","sources":["../../../src/server/audit-html.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,7 +53,8 @@ describe("generateAuditHtml", () => {
|
|
|
53
53
|
expect(html).toContain('class="top-nav"');
|
|
54
54
|
expect(html).toContain("All reports");
|
|
55
55
|
expect(html).toContain("https://github.com/sverklo/sverklo");
|
|
56
|
-
expect(html).toContain("https://
|
|
56
|
+
expect(html).toContain("https://sverklo.com/vs/");
|
|
57
|
+
expect(html).toContain("https://sverklo.com/blog/");
|
|
57
58
|
});
|
|
58
59
|
it("populates dimension cards (P0-1 fix)", () => {
|
|
59
60
|
expect(html).toContain("Dead code");
|
|
@@ -65,7 +66,7 @@ describe("generateAuditHtml", () => {
|
|
|
65
66
|
});
|
|
66
67
|
it("uses a clean owner/repo display name in title and header (P0-7 fix)", () => {
|
|
67
68
|
expect(html).toContain("<title>Sverklo Audit — expressjs/express</title>");
|
|
68
|
-
expect(html).toContain('<
|
|
69
|
+
expect(html).toContain('<h1 class="project-name">expressjs/express</h1>');
|
|
69
70
|
expect(html).not.toContain("report-expressjs_express");
|
|
70
71
|
});
|
|
71
72
|
it("replaces the /private/tmp path with the GitHub URL (P1-7 fix)", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-html.test.js","sourceRoot":"","sources":["../../../src/server/audit-html.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"audit-html.test.js","sourceRoot":"","sources":["../../../src/server/audit-html.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,13 @@ export const searchTool = {
|
|
|
36
36
|
enum: ["function", "class", "type", "interface", "method", "any"],
|
|
37
37
|
description: "Filter by symbol type (default: any)",
|
|
38
38
|
},
|
|
39
|
+
current_file: {
|
|
40
|
+
type: "string",
|
|
41
|
+
description: "Optional: repo-relative path of the file the user is currently editing. " +
|
|
42
|
+
"When provided, results closer to this file (in directory distance) get a " +
|
|
43
|
+
"small ranking boost — useful for breaking ties between equally-relevant " +
|
|
44
|
+
"candidates.",
|
|
45
|
+
},
|
|
39
46
|
},
|
|
40
47
|
required: ["query"],
|
|
41
48
|
},
|
|
@@ -48,6 +55,7 @@ export async function handleSearch(indexer, args) {
|
|
|
48
55
|
scope: args.scope,
|
|
49
56
|
language: args.language,
|
|
50
57
|
type: args.type || "any",
|
|
58
|
+
currentFile: args.current_file,
|
|
51
59
|
});
|
|
52
60
|
const body = formatResults(response.results);
|
|
53
61
|
// Confidence footer — issue #4. Keep it terse and only attach
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../src/server/tools/search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE1F,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,uDAAuD;QACvD,8EAA8E;QAC9E,gFAAgF;QAChF,mFAAmF;QACnF,mCAAmC;QACnC,yEAAyE;QACzE,6EAA6E;QAC7E,4EAA4E;QAC5E,2EAA2E;QAC3E,sDAAsD;IACxD,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wCAAwC;aACtD;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sCAAsC;aACpD;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uCAAuC;aACrD;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uCAAuC;aACrD;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC;gBACjE,WAAW,EAAE,sCAAsC;aACpD;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAgB,EAChB,IAA6B;IAE7B,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,OAAO,EAAE;QACzD,KAAK,EAAE,IAAI,CAAC,KAAe;QAC3B,WAAW;QACX,KAAK,EAAE,IAAI,CAAC,KAA2B;QACvC,QAAQ,EAAE,IAAI,CAAC,QAA8B;QAC7C,IAAI,EAAG,IAAI,CAAC,IAA0B,IAAI,KAAK;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../src/server/tools/search.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sverklo",
|
|
3
3
|
"mcpName": "io.github.sverklo/sverklo",
|
|
4
|
-
"version": "0.12.
|
|
4
|
+
"version": "0.12.3",
|
|
5
5
|
"description": "Sverklo — local-first code intelligence MCP server. Diff-aware MR review, risk scoring, hybrid semantic search, PageRank ranking, persistent memory. Zero config.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|