kiri-mcp-server 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +399 -0
- package/config/default.example.yml +12 -0
- package/config/denylist.yml +15 -0
- package/config/scoring-profiles.yml +37 -0
- package/config/security.yml +10 -0
- package/dist/client/cli.js +68 -0
- package/dist/client/cli.js.map +1 -0
- package/dist/client/index.js +5 -0
- package/dist/client/index.js.map +1 -0
- package/dist/config/default.example.yml +12 -0
- package/dist/config/denylist.yml +15 -0
- package/dist/config/scoring-profiles.yml +37 -0
- package/dist/config/security.yml +10 -0
- package/dist/eval/metrics.js +47 -0
- package/dist/eval/metrics.js.map +1 -0
- package/dist/indexer/cli.js +362 -0
- package/dist/indexer/cli.js.map +1 -0
- package/dist/indexer/codeintel.js +182 -0
- package/dist/indexer/codeintel.js.map +1 -0
- package/dist/indexer/git.js +30 -0
- package/dist/indexer/git.js.map +1 -0
- package/dist/indexer/language.js +34 -0
- package/dist/indexer/language.js.map +1 -0
- package/dist/indexer/pipeline/filters/denylist.js +71 -0
- package/dist/indexer/pipeline/filters/denylist.js.map +1 -0
- package/dist/indexer/schema.js +101 -0
- package/dist/indexer/schema.js.map +1 -0
- package/dist/package.json +93 -0
- package/dist/server/bootstrap.js +19 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/context.js +2 -0
- package/dist/server/context.js.map +1 -0
- package/dist/server/fallbacks/degradeController.js +69 -0
- package/dist/server/fallbacks/degradeController.js.map +1 -0
- package/dist/server/handlers.js +800 -0
- package/dist/server/handlers.js.map +1 -0
- package/dist/server/main.js +151 -0
- package/dist/server/main.js.map +1 -0
- package/dist/server/observability/metrics.js +56 -0
- package/dist/server/observability/metrics.js.map +1 -0
- package/dist/server/observability/tracing.js +58 -0
- package/dist/server/observability/tracing.js.map +1 -0
- package/dist/server/rpc.js +477 -0
- package/dist/server/rpc.js.map +1 -0
- package/dist/server/runtime.js +47 -0
- package/dist/server/runtime.js.map +1 -0
- package/dist/server/scoring.js +111 -0
- package/dist/server/scoring.js.map +1 -0
- package/dist/server/stdio.js +76 -0
- package/dist/server/stdio.js.map +1 -0
- package/dist/shared/duckdb.js +121 -0
- package/dist/shared/duckdb.js.map +1 -0
- package/dist/shared/embedding.js +85 -0
- package/dist/shared/embedding.js.map +1 -0
- package/dist/shared/index.js +9 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/security/config.js +64 -0
- package/dist/shared/security/config.js.map +1 -0
- package/dist/shared/security/masker.js +56 -0
- package/dist/shared/security/masker.js.map +1 -0
- package/dist/shared/tokenizer.js +5 -0
- package/dist/shared/tokenizer.js.map +1 -0
- package/dist/shared/utils/simpleYaml.js +90 -0
- package/dist/shared/utils/simpleYaml.js.map +1 -0
- package/dist/sql/schema.sql +6 -0
- package/dist/src/client/cli.d.ts +3 -0
- package/dist/src/client/cli.d.ts.map +1 -0
- package/dist/src/client/cli.js +68 -0
- package/dist/src/client/cli.js.map +1 -0
- package/dist/src/client/index.d.ts +5 -0
- package/dist/src/client/index.d.ts.map +1 -0
- package/dist/src/client/index.js +5 -0
- package/dist/src/client/index.js.map +1 -0
- package/dist/src/client/proxy.d.ts +9 -0
- package/dist/src/client/proxy.d.ts.map +1 -0
- package/dist/src/client/proxy.js +198 -0
- package/dist/src/client/proxy.js.map +1 -0
- package/dist/src/client/start-daemon.d.ts +30 -0
- package/dist/src/client/start-daemon.d.ts.map +1 -0
- package/dist/src/client/start-daemon.js +175 -0
- package/dist/src/client/start-daemon.js.map +1 -0
- package/dist/src/daemon/daemon.d.ts +9 -0
- package/dist/src/daemon/daemon.d.ts.map +1 -0
- package/dist/src/daemon/daemon.js +149 -0
- package/dist/src/daemon/daemon.js.map +1 -0
- package/dist/src/daemon/lifecycle.d.ts +101 -0
- package/dist/src/daemon/lifecycle.d.ts.map +1 -0
- package/dist/src/daemon/lifecycle.js +266 -0
- package/dist/src/daemon/lifecycle.js.map +1 -0
- package/dist/src/daemon/socket.d.ts +26 -0
- package/dist/src/daemon/socket.d.ts.map +1 -0
- package/dist/src/daemon/socket.js +132 -0
- package/dist/src/daemon/socket.js.map +1 -0
- package/dist/src/eval/metrics.d.ts +23 -0
- package/dist/src/eval/metrics.d.ts.map +1 -0
- package/dist/src/eval/metrics.js +47 -0
- package/dist/src/eval/metrics.js.map +1 -0
- package/dist/src/index.d.ts +11 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +11 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/indexer/cli.d.ts +9 -0
- package/dist/src/indexer/cli.d.ts.map +1 -0
- package/dist/src/indexer/cli.js +402 -0
- package/dist/src/indexer/cli.js.map +1 -0
- package/dist/src/indexer/codeintel.d.ts +28 -0
- package/dist/src/indexer/codeintel.d.ts.map +1 -0
- package/dist/src/indexer/codeintel.js +451 -0
- package/dist/src/indexer/codeintel.js.map +1 -0
- package/dist/src/indexer/git.d.ts +4 -0
- package/dist/src/indexer/git.d.ts.map +1 -0
- package/dist/src/indexer/git.js +30 -0
- package/dist/src/indexer/git.js.map +1 -0
- package/dist/src/indexer/language.d.ts +2 -0
- package/dist/src/indexer/language.d.ts.map +1 -0
- package/dist/src/indexer/language.js +34 -0
- package/dist/src/indexer/language.js.map +1 -0
- package/dist/src/indexer/pipeline/filters/denylist.d.ts +10 -0
- package/dist/src/indexer/pipeline/filters/denylist.d.ts.map +1 -0
- package/dist/src/indexer/pipeline/filters/denylist.js +71 -0
- package/dist/src/indexer/pipeline/filters/denylist.js.map +1 -0
- package/dist/src/indexer/schema.d.ts +9 -0
- package/dist/src/indexer/schema.d.ts.map +1 -0
- package/dist/src/indexer/schema.js +125 -0
- package/dist/src/indexer/schema.js.map +1 -0
- package/dist/src/indexer/watch.d.ts +97 -0
- package/dist/src/indexer/watch.d.ts.map +1 -0
- package/dist/src/indexer/watch.js +264 -0
- package/dist/src/indexer/watch.js.map +1 -0
- package/dist/src/server/bootstrap.d.ts +11 -0
- package/dist/src/server/bootstrap.d.ts.map +1 -0
- package/dist/src/server/bootstrap.js +19 -0
- package/dist/src/server/bootstrap.js.map +1 -0
- package/dist/src/server/context.d.ts +9 -0
- package/dist/src/server/context.d.ts.map +1 -0
- package/dist/src/server/context.js +2 -0
- package/dist/src/server/context.js.map +1 -0
- package/dist/src/server/fallbacks/degradeController.d.ts +24 -0
- package/dist/src/server/fallbacks/degradeController.d.ts.map +1 -0
- package/dist/src/server/fallbacks/degradeController.js +135 -0
- package/dist/src/server/fallbacks/degradeController.js.map +1 -0
- package/dist/src/server/handlers.d.ts +105 -0
- package/dist/src/server/handlers.d.ts.map +1 -0
- package/dist/src/server/handlers.js +954 -0
- package/dist/src/server/handlers.js.map +1 -0
- package/dist/src/server/indexBootstrap.d.ts +13 -0
- package/dist/src/server/indexBootstrap.d.ts.map +1 -0
- package/dist/src/server/indexBootstrap.js +109 -0
- package/dist/src/server/indexBootstrap.js.map +1 -0
- package/dist/src/server/main.d.ts +10 -0
- package/dist/src/server/main.d.ts.map +1 -0
- package/dist/src/server/main.js +217 -0
- package/dist/src/server/main.js.map +1 -0
- package/dist/src/server/observability/metrics.d.ts +35 -0
- package/dist/src/server/observability/metrics.d.ts.map +1 -0
- package/dist/src/server/observability/metrics.js +70 -0
- package/dist/src/server/observability/metrics.js.map +1 -0
- package/dist/src/server/observability/tracing.d.ts +3 -0
- package/dist/src/server/observability/tracing.d.ts.map +1 -0
- package/dist/src/server/observability/tracing.js +58 -0
- package/dist/src/server/observability/tracing.js.map +1 -0
- package/dist/src/server/rpc.d.ts +39 -0
- package/dist/src/server/rpc.d.ts.map +1 -0
- package/dist/src/server/rpc.js +551 -0
- package/dist/src/server/rpc.js.map +1 -0
- package/dist/src/server/runtime.d.ts +21 -0
- package/dist/src/server/runtime.d.ts.map +1 -0
- package/dist/src/server/runtime.js +59 -0
- package/dist/src/server/runtime.js.map +1 -0
- package/dist/src/server/scoring.d.ts +20 -0
- package/dist/src/server/scoring.d.ts.map +1 -0
- package/dist/src/server/scoring.js +112 -0
- package/dist/src/server/scoring.js.map +1 -0
- package/dist/src/server/stdio.d.ts +4 -0
- package/dist/src/server/stdio.d.ts.map +1 -0
- package/dist/src/server/stdio.js +88 -0
- package/dist/src/server/stdio.js.map +1 -0
- package/dist/src/shared/duckdb.d.ts +16 -0
- package/dist/src/shared/duckdb.d.ts.map +1 -0
- package/dist/src/shared/duckdb.js +121 -0
- package/dist/src/shared/duckdb.js.map +1 -0
- package/dist/src/shared/embedding.d.ts +19 -0
- package/dist/src/shared/embedding.d.ts.map +1 -0
- package/dist/src/shared/embedding.js +85 -0
- package/dist/src/shared/embedding.js.map +1 -0
- package/dist/src/shared/index.d.ts +3 -0
- package/dist/src/shared/index.d.ts.map +1 -0
- package/dist/src/shared/index.js +9 -0
- package/dist/src/shared/index.js.map +1 -0
- package/dist/src/shared/security/config.d.ts +23 -0
- package/dist/src/shared/security/config.d.ts.map +1 -0
- package/dist/src/shared/security/config.js +66 -0
- package/dist/src/shared/security/config.js.map +1 -0
- package/dist/src/shared/security/masker.d.ts +10 -0
- package/dist/src/shared/security/masker.d.ts.map +1 -0
- package/dist/src/shared/security/masker.js +56 -0
- package/dist/src/shared/security/masker.js.map +1 -0
- package/dist/src/shared/tokenizer.d.ts +2 -0
- package/dist/src/shared/tokenizer.d.ts.map +1 -0
- package/dist/src/shared/tokenizer.js +5 -0
- package/dist/src/shared/tokenizer.js.map +1 -0
- package/dist/src/shared/utils/lockfile.d.ts +46 -0
- package/dist/src/shared/utils/lockfile.d.ts.map +1 -0
- package/dist/src/shared/utils/lockfile.js +136 -0
- package/dist/src/shared/utils/lockfile.js.map +1 -0
- package/dist/src/shared/utils/simpleYaml.d.ts +6 -0
- package/dist/src/shared/utils/simpleYaml.d.ts.map +1 -0
- package/dist/src/shared/utils/simpleYaml.js +90 -0
- package/dist/src/shared/utils/simpleYaml.js.map +1 -0
- package/package.json +91 -0
- package/sql/schema.sql +6 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/server/context.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface DegradeState {
|
|
2
|
+
active: boolean;
|
|
3
|
+
reason: string | null;
|
|
4
|
+
since: Date | null;
|
|
5
|
+
}
|
|
6
|
+
export interface DegradeSearchResult {
|
|
7
|
+
path: string;
|
|
8
|
+
preview: string;
|
|
9
|
+
matchLine: number;
|
|
10
|
+
}
|
|
11
|
+
export declare class DegradeController {
|
|
12
|
+
private state;
|
|
13
|
+
private readonly repoRoot;
|
|
14
|
+
constructor(repoRoot: string);
|
|
15
|
+
get current(): DegradeState;
|
|
16
|
+
private shouldTriggerDegrade;
|
|
17
|
+
private isBinaryFile;
|
|
18
|
+
enable(reason: string): void;
|
|
19
|
+
disable(): void;
|
|
20
|
+
withResource<T>(operation: () => Promise<T>, reason: string): Promise<T>;
|
|
21
|
+
search(query: string, limit?: number): DegradeSearchResult[];
|
|
22
|
+
private walkFiles;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=degradeController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"degradeController.d.ts","sourceRoot":"","sources":["../../../../src/server/fallbacks/degradeController.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAA8D;IAC3E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,QAAQ,EAAE,MAAM;IAI5B,IAAI,OAAO,IAAI,YAAY,CAE1B;IAED,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,YAAY;IAyBpB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO5B,OAAO,IAAI,IAAI;IAIT,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAiB9E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,mBAAmB,EAAE;IAiCxD,OAAO,CAAC,SAAS;CAuBlB"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { closeSync, openSync, readFileSync, readdirSync, readSync, statSync } from "node:fs";
|
|
2
|
+
import { join, relative as relativePath, resolve } from "node:path";
|
|
3
|
+
const MAX_SAMPLE_BYTES = 32 * 1024;
|
|
4
|
+
const MAX_PREVIEW_FILE_BYTES = 256 * 1024;
|
|
5
|
+
export class DegradeController {
|
|
6
|
+
state = { active: false, reason: null, since: null };
|
|
7
|
+
repoRoot;
|
|
8
|
+
constructor(repoRoot) {
|
|
9
|
+
this.repoRoot = resolve(repoRoot);
|
|
10
|
+
}
|
|
11
|
+
get current() {
|
|
12
|
+
return this.state;
|
|
13
|
+
}
|
|
14
|
+
shouldTriggerDegrade(error) {
|
|
15
|
+
if (!(error instanceof Error)) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
const message = error.message ?? "";
|
|
19
|
+
const normalized = message.toLowerCase();
|
|
20
|
+
if (message.includes("| SQL:")) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
if (normalized.includes("duckdb")) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
if (normalized.includes("catalog error")) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
if (normalized.includes("io error")) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
isBinaryFile(path, size) {
|
|
35
|
+
if (size === 0) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
let fd = null;
|
|
39
|
+
try {
|
|
40
|
+
fd = openSync(path, "r");
|
|
41
|
+
const sampleSize = Math.min(size, MAX_SAMPLE_BYTES);
|
|
42
|
+
const buffer = Buffer.allocUnsafe(sampleSize);
|
|
43
|
+
const bytesRead = readSync(fd, buffer, 0, sampleSize, 0);
|
|
44
|
+
const sample = buffer.subarray(0, bytesRead);
|
|
45
|
+
if (sample.includes(0)) {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
const decoded = sample.toString("utf8");
|
|
49
|
+
return decoded.includes("\uFFFD");
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
if (fd !== null) {
|
|
56
|
+
closeSync(fd);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
enable(reason) {
|
|
61
|
+
if (this.state.active) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
this.state = { active: true, reason, since: new Date() };
|
|
65
|
+
}
|
|
66
|
+
disable() {
|
|
67
|
+
this.state = { active: false, reason: null, since: null };
|
|
68
|
+
}
|
|
69
|
+
async withResource(operation, reason) {
|
|
70
|
+
if (this.state.active) {
|
|
71
|
+
throw new Error(`Server is running in degrade mode: ${this.state.reason ?? "unknown"}. Only files.search is available.`);
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
const result = await operation();
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
if (this.shouldTriggerDegrade(error)) {
|
|
79
|
+
this.enable(reason);
|
|
80
|
+
}
|
|
81
|
+
throw error;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
search(query, limit = 20) {
|
|
85
|
+
const tokens = query.split(/\s+/).filter((token) => token.length > 0);
|
|
86
|
+
if (tokens.length === 0) {
|
|
87
|
+
return [];
|
|
88
|
+
}
|
|
89
|
+
const results = [];
|
|
90
|
+
this.walkFiles(this.repoRoot, (absolutePath, relativeFile, stats) => {
|
|
91
|
+
if (results.length >= limit) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const fileSize = typeof stats.size === "bigint" ? Number(stats.size) : stats.size;
|
|
95
|
+
if (fileSize > MAX_PREVIEW_FILE_BYTES) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if (this.isBinaryFile(absolutePath, fileSize)) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
let content;
|
|
102
|
+
try {
|
|
103
|
+
content = readFileSync(absolutePath, "utf8");
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
const lines = content.split(/\r?\n/);
|
|
109
|
+
const matchIndex = lines.findIndex((line) => tokens.every((token) => line.includes(token)));
|
|
110
|
+
if (matchIndex >= 0) {
|
|
111
|
+
const preview = lines.slice(matchIndex, matchIndex + 3).join("\n");
|
|
112
|
+
results.push({ path: relativeFile, preview, matchLine: matchIndex + 1 });
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
return results;
|
|
116
|
+
}
|
|
117
|
+
walkFiles(root, visitor) {
|
|
118
|
+
const entries = readdirSync(root);
|
|
119
|
+
for (const entry of entries) {
|
|
120
|
+
const absolute = join(root, entry);
|
|
121
|
+
const relative = relativePath(this.repoRoot, absolute);
|
|
122
|
+
const stats = statSync(absolute, { throwIfNoEntry: false });
|
|
123
|
+
if (stats == null) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
if (stats.isDirectory()) {
|
|
127
|
+
this.walkFiles(absolute, visitor);
|
|
128
|
+
}
|
|
129
|
+
else if (stats.isFile()) {
|
|
130
|
+
visitor(absolute, relative, stats);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=degradeController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"degradeController.js","sourceRoot":"","sources":["../../../../src/server/fallbacks/degradeController.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { DuckDBClient } from "../shared/duckdb.js";
|
|
2
|
+
import { ServerContext } from "./context.js";
|
|
3
|
+
export interface FilesSearchParams {
|
|
4
|
+
query: string;
|
|
5
|
+
lang?: string;
|
|
6
|
+
ext?: string;
|
|
7
|
+
path_prefix?: string;
|
|
8
|
+
limit?: number;
|
|
9
|
+
boost_profile?: "default" | "docs" | "none";
|
|
10
|
+
}
|
|
11
|
+
export interface FilesSearchResult {
|
|
12
|
+
path: string;
|
|
13
|
+
preview: string;
|
|
14
|
+
matchLine: number;
|
|
15
|
+
lang: string | null;
|
|
16
|
+
ext: string | null;
|
|
17
|
+
score: number;
|
|
18
|
+
}
|
|
19
|
+
export interface SnippetsGetParams {
|
|
20
|
+
path: string;
|
|
21
|
+
start_line?: number;
|
|
22
|
+
end_line?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface SnippetResult {
|
|
25
|
+
path: string;
|
|
26
|
+
startLine: number;
|
|
27
|
+
endLine: number;
|
|
28
|
+
content: string;
|
|
29
|
+
totalLines: number;
|
|
30
|
+
symbolName: string | null;
|
|
31
|
+
symbolKind: string | null;
|
|
32
|
+
}
|
|
33
|
+
export interface ContextBundleArtifacts {
|
|
34
|
+
editing_path?: string;
|
|
35
|
+
failing_tests?: string[];
|
|
36
|
+
last_diff?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface ContextBundleParams {
|
|
39
|
+
goal: string;
|
|
40
|
+
artifacts?: ContextBundleArtifacts;
|
|
41
|
+
limit?: number;
|
|
42
|
+
profile?: string;
|
|
43
|
+
boost_profile?: "default" | "docs" | "none";
|
|
44
|
+
}
|
|
45
|
+
export interface ContextBundleItem {
|
|
46
|
+
path: string;
|
|
47
|
+
range: [number, number];
|
|
48
|
+
preview: string;
|
|
49
|
+
why: string[];
|
|
50
|
+
score: number;
|
|
51
|
+
}
|
|
52
|
+
export interface ContextBundleResult {
|
|
53
|
+
context: ContextBundleItem[];
|
|
54
|
+
tokens_estimate: number;
|
|
55
|
+
}
|
|
56
|
+
export interface SemanticRerankCandidateInput {
|
|
57
|
+
path: string;
|
|
58
|
+
score?: number;
|
|
59
|
+
}
|
|
60
|
+
export interface SemanticRerankParams {
|
|
61
|
+
text: string;
|
|
62
|
+
candidates: SemanticRerankCandidateInput[];
|
|
63
|
+
k?: number;
|
|
64
|
+
profile?: string;
|
|
65
|
+
}
|
|
66
|
+
export interface SemanticRerankItem {
|
|
67
|
+
path: string;
|
|
68
|
+
semantic: number;
|
|
69
|
+
base: number;
|
|
70
|
+
combined: number;
|
|
71
|
+
}
|
|
72
|
+
export interface SemanticRerankResult {
|
|
73
|
+
candidates: SemanticRerankItem[];
|
|
74
|
+
}
|
|
75
|
+
export interface DepsClosureParams {
|
|
76
|
+
path: string;
|
|
77
|
+
max_depth?: number;
|
|
78
|
+
direction?: "outbound" | "inbound";
|
|
79
|
+
include_packages?: boolean;
|
|
80
|
+
}
|
|
81
|
+
export interface DepsClosureNode {
|
|
82
|
+
kind: "path" | "package";
|
|
83
|
+
target: string;
|
|
84
|
+
depth: number;
|
|
85
|
+
}
|
|
86
|
+
export interface DepsClosureEdge {
|
|
87
|
+
from: string;
|
|
88
|
+
to: string;
|
|
89
|
+
kind: "path" | "package";
|
|
90
|
+
rel: string;
|
|
91
|
+
depth: number;
|
|
92
|
+
}
|
|
93
|
+
export interface DepsClosureResult {
|
|
94
|
+
root: string;
|
|
95
|
+
direction: "outbound" | "inbound";
|
|
96
|
+
nodes: DepsClosureNode[];
|
|
97
|
+
edges: DepsClosureEdge[];
|
|
98
|
+
}
|
|
99
|
+
export declare function filesSearch(context: ServerContext, params: FilesSearchParams): Promise<FilesSearchResult[]>;
|
|
100
|
+
export declare function snippetsGet(context: ServerContext, params: SnippetsGetParams): Promise<SnippetResult>;
|
|
101
|
+
export declare function contextBundle(context: ServerContext, params: ContextBundleParams): Promise<ContextBundleResult>;
|
|
102
|
+
export declare function semanticRerank(context: ServerContext, params: SemanticRerankParams): Promise<SemanticRerankResult>;
|
|
103
|
+
export declare function depsClosure(context: ServerContext, params: DepsClosureParams): Promise<DepsClosureResult>;
|
|
104
|
+
export declare function resolveRepoId(db: DuckDBClient, repoRoot: string): Promise<number>;
|
|
105
|
+
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/server/handlers.ts"],"names":[],"mappings":"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"}
|