kiri-mcp-server 0.17.0 → 0.18.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.
Files changed (95) hide show
  1. package/README.md +13 -6
  2. package/dist/package.json +4 -2
  3. package/dist/src/indexer/codeintel/dart/adapter.d.ts +36 -0
  4. package/dist/src/indexer/codeintel/dart/adapter.d.ts.map +1 -0
  5. package/dist/src/indexer/codeintel/dart/adapter.js +60 -0
  6. package/dist/src/indexer/codeintel/dart/adapter.js.map +1 -0
  7. package/dist/src/indexer/codeintel/dart/index.d.ts +7 -0
  8. package/dist/src/indexer/codeintel/dart/index.d.ts.map +1 -0
  9. package/dist/src/indexer/codeintel/dart/index.js +7 -0
  10. package/dist/src/indexer/codeintel/dart/index.js.map +1 -0
  11. package/dist/src/indexer/codeintel/index.d.ts +30 -0
  12. package/dist/src/indexer/codeintel/index.d.ts.map +1 -0
  13. package/dist/src/indexer/codeintel/index.js +32 -0
  14. package/dist/src/indexer/codeintel/index.js.map +1 -0
  15. package/dist/src/indexer/codeintel/java/analyzer.d.ts +22 -0
  16. package/dist/src/indexer/codeintel/java/analyzer.d.ts.map +1 -0
  17. package/dist/src/indexer/codeintel/java/analyzer.js +281 -0
  18. package/dist/src/indexer/codeintel/java/analyzer.js.map +1 -0
  19. package/dist/src/indexer/codeintel/java/index.d.ts +7 -0
  20. package/dist/src/indexer/codeintel/java/index.d.ts.map +1 -0
  21. package/dist/src/indexer/codeintel/java/index.js +7 -0
  22. package/dist/src/indexer/codeintel/java/index.js.map +1 -0
  23. package/dist/src/indexer/codeintel/php/analyzer.d.ts +23 -0
  24. package/dist/src/indexer/codeintel/php/analyzer.d.ts.map +1 -0
  25. package/dist/src/indexer/codeintel/php/analyzer.js +342 -0
  26. package/dist/src/indexer/codeintel/php/analyzer.js.map +1 -0
  27. package/dist/src/indexer/codeintel/php/index.d.ts +7 -0
  28. package/dist/src/indexer/codeintel/php/index.d.ts.map +1 -0
  29. package/dist/src/indexer/codeintel/php/index.js +7 -0
  30. package/dist/src/indexer/codeintel/php/index.js.map +1 -0
  31. package/dist/src/indexer/codeintel/registry.d.ts +76 -0
  32. package/dist/src/indexer/codeintel/registry.d.ts.map +1 -0
  33. package/dist/src/indexer/codeintel/registry.js +127 -0
  34. package/dist/src/indexer/codeintel/registry.js.map +1 -0
  35. package/dist/src/indexer/codeintel/rust/analyzer.d.ts +14 -0
  36. package/dist/src/indexer/codeintel/rust/analyzer.d.ts.map +1 -0
  37. package/dist/src/indexer/codeintel/rust/analyzer.js +388 -0
  38. package/dist/src/indexer/codeintel/rust/analyzer.js.map +1 -0
  39. package/dist/src/indexer/codeintel/rust/index.d.ts +5 -0
  40. package/dist/src/indexer/codeintel/rust/index.d.ts.map +1 -0
  41. package/dist/src/indexer/codeintel/rust/index.js +5 -0
  42. package/dist/src/indexer/codeintel/rust/index.js.map +1 -0
  43. package/dist/src/indexer/codeintel/swift/analyzer.d.ts +22 -0
  44. package/dist/src/indexer/codeintel/swift/analyzer.d.ts.map +1 -0
  45. package/dist/src/indexer/codeintel/swift/analyzer.js +271 -0
  46. package/dist/src/indexer/codeintel/swift/analyzer.js.map +1 -0
  47. package/dist/src/indexer/codeintel/swift/index.d.ts +7 -0
  48. package/dist/src/indexer/codeintel/swift/index.d.ts.map +1 -0
  49. package/dist/src/indexer/codeintel/swift/index.js +7 -0
  50. package/dist/src/indexer/codeintel/swift/index.js.map +1 -0
  51. package/dist/src/indexer/codeintel/types.d.ts +114 -0
  52. package/dist/src/indexer/codeintel/types.d.ts.map +1 -0
  53. package/dist/src/indexer/codeintel/types.js +13 -0
  54. package/dist/src/indexer/codeintel/types.js.map +1 -0
  55. package/dist/src/indexer/codeintel/typescript/analyzer.d.ts +22 -0
  56. package/dist/src/indexer/codeintel/typescript/analyzer.d.ts.map +1 -0
  57. package/dist/src/indexer/codeintel/typescript/analyzer.js +210 -0
  58. package/dist/src/indexer/codeintel/typescript/analyzer.js.map +1 -0
  59. package/dist/src/indexer/codeintel/typescript/index.d.ts +7 -0
  60. package/dist/src/indexer/codeintel/typescript/index.d.ts.map +1 -0
  61. package/dist/src/indexer/codeintel/typescript/index.js +7 -0
  62. package/dist/src/indexer/codeintel/typescript/index.js.map +1 -0
  63. package/dist/src/indexer/codeintel/utils.d.ts +91 -0
  64. package/dist/src/indexer/codeintel/utils.d.ts.map +1 -0
  65. package/dist/src/indexer/codeintel/utils.js +145 -0
  66. package/dist/src/indexer/codeintel/utils.js.map +1 -0
  67. package/dist/src/indexer/codeintel.d.ts +33 -26
  68. package/dist/src/indexer/codeintel.d.ts.map +1 -1
  69. package/dist/src/indexer/codeintel.js +56 -1078
  70. package/dist/src/indexer/codeintel.js.map +1 -1
  71. package/package.json +10 -2
  72. package/dist/src/client/model-cli.d.ts +0 -12
  73. package/dist/src/client/model-cli.d.ts.map +0 -1
  74. package/dist/src/client/model-cli.js +0 -247
  75. package/dist/src/client/model-cli.js.map +0 -1
  76. package/dist/src/shared/utils/global-dirs.d.ts +0 -64
  77. package/dist/src/shared/utils/global-dirs.d.ts.map +0 -1
  78. package/dist/src/shared/utils/global-dirs.js +0 -134
  79. package/dist/src/shared/utils/global-dirs.js.map +0 -1
  80. package/dist/src/vss/config.d.ts +0 -66
  81. package/dist/src/vss/config.d.ts.map +0 -1
  82. package/dist/src/vss/config.js +0 -233
  83. package/dist/src/vss/config.js.map +0 -1
  84. package/dist/src/vss/index.d.ts +0 -9
  85. package/dist/src/vss/index.d.ts.map +0 -1
  86. package/dist/src/vss/index.js +0 -9
  87. package/dist/src/vss/index.js.map +0 -1
  88. package/dist/src/vss/model-downloader.d.ts +0 -101
  89. package/dist/src/vss/model-downloader.d.ts.map +0 -1
  90. package/dist/src/vss/model-downloader.js +0 -320
  91. package/dist/src/vss/model-downloader.js.map +0 -1
  92. package/dist/src/vss/provider.d.ts +0 -132
  93. package/dist/src/vss/provider.d.ts.map +0 -1
  94. package/dist/src/vss/provider.js +0 -254
  95. package/dist/src/vss/provider.js.map +0 -1
@@ -1,320 +0,0 @@
1
- /**
2
- * VSS Model Downloader
3
- *
4
- * Downloads and manages VSS models from HuggingFace Hub.
5
- * Models are stored in the global ~/.kiri/models/ directory.
6
- */
7
- import { createWriteStream, existsSync, mkdirSync, readdirSync, rmSync, statSync } from "node:fs";
8
- import { rename, rm } from "node:fs/promises";
9
- import { join } from "node:path";
10
- import { Readable } from "node:stream";
11
- import { pipeline } from "node:stream/promises";
12
- import { getModelPath, ensureModelsDir, isModelInstalled } from "../shared/utils/global-dirs.js";
13
- import { SUPPORTED_MODELS } from "./config.js";
14
- /**
15
- * Model registry with download information
16
- *
17
- * Note: ONNX-ready models (jina-embeddings, all-MiniLM) are auto-downloaded
18
- * by @huggingface/transformers and don't need manual download via this registry.
19
- */
20
- export const MODEL_REGISTRY = {
21
- "codebert-base": {
22
- repo: "microsoft/codebert-base",
23
- files: ["config.json", "tokenizer.json", "vocab.txt", "pytorch_model.bin"],
24
- sizeBytes: 500_000_000,
25
- sizeHuman: "~500MB",
26
- description: "Microsoft CodeBERT base model for code understanding",
27
- },
28
- "unixcoder-base": {
29
- repo: "microsoft/unixcoder-base",
30
- files: ["config.json", "tokenizer.json", "vocab.txt", "pytorch_model.bin"],
31
- sizeBytes: 500_000_000,
32
- sizeHuman: "~500MB",
33
- description: "Microsoft UniXcoder base model for code representation",
34
- },
35
- // ONNX-ready models: auto-downloaded by @huggingface/transformers
36
- "jina-embeddings-v2-base-code": {
37
- repo: "jinaai/jina-embeddings-v2-base-code",
38
- files: [], // Auto-managed by transformers.js
39
- sizeBytes: 322_000_000,
40
- sizeHuman: "~322MB",
41
- description: "Jina code embedding model (ONNX ready, 30+ languages)",
42
- },
43
- "all-MiniLM-L6-v2": {
44
- repo: "Xenova/all-MiniLM-L6-v2",
45
- files: [], // Auto-managed by transformers.js
46
- sizeBytes: 23_000_000,
47
- sizeHuman: "~23MB",
48
- description: "Lightweight general embedding model (ONNX ready)",
49
- },
50
- };
51
- /**
52
- * Get model information
53
- */
54
- export function getModelInfo(model) {
55
- return MODEL_REGISTRY[model];
56
- }
57
- /**
58
- * List all available models
59
- */
60
- export function listAvailableModels() {
61
- return SUPPORTED_MODELS.map((name) => ({
62
- name,
63
- info: MODEL_REGISTRY[name],
64
- installed: isModelInstalled(name),
65
- }));
66
- }
67
- /**
68
- * Build HuggingFace download URL
69
- */
70
- function buildHuggingFaceUrl(repo, file) {
71
- return `https://huggingface.co/${repo}/resolve/main/${file}`;
72
- }
73
- /**
74
- * Download a single file with progress reporting and resume support
75
- */
76
- async function downloadFile(url, destPath, onProgress) {
77
- // Ensure parent directory exists
78
- const dir = join(destPath, "..");
79
- if (!existsSync(dir)) {
80
- mkdirSync(dir, { recursive: true });
81
- }
82
- // Check for existing partial download (temp file with PID)
83
- const tempPath = `${destPath}.${process.pid}.tmp`;
84
- let resumeFrom = 0;
85
- if (existsSync(tempPath)) {
86
- try {
87
- const tempStat = statSync(tempPath);
88
- resumeFrom = tempStat.size;
89
- }
90
- catch {
91
- // Ignore stat errors, start fresh
92
- resumeFrom = 0;
93
- }
94
- }
95
- // Build request headers
96
- const headers = {
97
- "User-Agent": "kiri-mcp-server",
98
- };
99
- // Add Range header for resume if we have partial content
100
- if (resumeFrom > 0) {
101
- headers["Range"] = `bytes=${resumeFrom}-`;
102
- }
103
- const response = await fetch(url, { headers });
104
- // Handle response status
105
- if (!response.ok && response.status !== 206) {
106
- // 206 = Partial Content (resume success)
107
- throw new Error(`Failed to download ${url}: ${response.status} ${response.statusText}`);
108
- }
109
- // Calculate total size
110
- let total = 0;
111
- const contentLength = response.headers.get("content-length");
112
- const contentRange = response.headers.get("content-range");
113
- if (response.status === 206 && contentRange) {
114
- // Parse Content-Range: bytes 1000-9999/10000
115
- const match = contentRange.match(/\/(\d+)$/);
116
- if (match?.[1]) {
117
- total = parseInt(match[1], 10);
118
- }
119
- }
120
- else if (contentLength) {
121
- total = parseInt(contentLength, 10);
122
- // If server doesn't support resume, start fresh
123
- if (resumeFrom > 0 && response.status === 200) {
124
- resumeFrom = 0;
125
- // Remove partial file since we're starting over
126
- try {
127
- rmSync(tempPath);
128
- }
129
- catch {
130
- // Ignore
131
- }
132
- }
133
- }
134
- // Open file stream (append if resuming, otherwise create new)
135
- const fileStream = createWriteStream(tempPath, {
136
- flags: resumeFrom > 0 && response.status === 206 ? "a" : "w",
137
- });
138
- let downloaded = resumeFrom;
139
- const body = response.body;
140
- if (!body) {
141
- throw new Error(`No response body for ${url}`);
142
- }
143
- // Convert Web ReadableStream to Node.js Readable
144
- const reader = body.getReader();
145
- const nodeStream = new Readable({
146
- async read() {
147
- const { done, value } = await reader.read();
148
- if (done) {
149
- this.push(null);
150
- }
151
- else {
152
- downloaded += value.length;
153
- onProgress?.(downloaded, total);
154
- this.push(Buffer.from(value));
155
- }
156
- },
157
- });
158
- await pipeline(nodeStream, fileStream);
159
- // Rename temp file to final destination
160
- await rename(tempPath, destPath);
161
- }
162
- /**
163
- * Download a model from HuggingFace
164
- */
165
- export async function downloadModel(model, onProgress) {
166
- const info = getModelInfo(model);
167
- if (!info) {
168
- return {
169
- success: false,
170
- modelPath: "",
171
- error: `Unknown model: ${model}. Supported models: ${SUPPORTED_MODELS.join(", ")}`,
172
- };
173
- }
174
- // Ensure models directory exists
175
- ensureModelsDir();
176
- const modelPath = getModelPath(model);
177
- // Create model directory
178
- if (!existsSync(modelPath)) {
179
- mkdirSync(modelPath, { recursive: true });
180
- }
181
- try {
182
- // Download each file
183
- for (const file of info.files) {
184
- const url = buildHuggingFaceUrl(info.repo, file);
185
- const destPath = join(modelPath, file);
186
- // Skip if file already exists
187
- if (existsSync(destPath)) {
188
- onProgress?.({
189
- file,
190
- downloaded: 0,
191
- total: 0,
192
- percentage: 100,
193
- phase: "complete",
194
- });
195
- continue;
196
- }
197
- onProgress?.({
198
- file,
199
- downloaded: 0,
200
- total: 0,
201
- percentage: 0,
202
- phase: "downloading",
203
- });
204
- await downloadFile(url, destPath, (downloaded, total) => {
205
- const percentage = total > 0 ? Math.round((downloaded / total) * 100) : 0;
206
- onProgress?.({
207
- file,
208
- downloaded,
209
- total,
210
- percentage,
211
- phase: "downloading",
212
- });
213
- });
214
- onProgress?.({
215
- file,
216
- downloaded: 0,
217
- total: 0,
218
- percentage: 100,
219
- phase: "complete",
220
- });
221
- }
222
- // Verify installation
223
- if (!isModelInstalled(model)) {
224
- throw new Error("Model verification failed after download");
225
- }
226
- return {
227
- success: true,
228
- modelPath,
229
- };
230
- }
231
- catch (error) {
232
- // Clean up partial download
233
- try {
234
- if (existsSync(modelPath)) {
235
- rmSync(modelPath, { recursive: true, force: true });
236
- }
237
- }
238
- catch {
239
- // Ignore cleanup errors
240
- }
241
- const errorMessage = error instanceof Error ? error.message : String(error);
242
- onProgress?.({
243
- file: "",
244
- downloaded: 0,
245
- total: 0,
246
- percentage: 0,
247
- phase: "error",
248
- error: errorMessage,
249
- });
250
- return {
251
- success: false,
252
- modelPath: "",
253
- error: errorMessage,
254
- };
255
- }
256
- }
257
- /**
258
- * Remove an installed model
259
- */
260
- export async function removeModel(model) {
261
- const modelPath = getModelPath(model);
262
- if (!existsSync(modelPath)) {
263
- return {
264
- success: false,
265
- error: `Model "${model}" is not installed`,
266
- };
267
- }
268
- try {
269
- await rm(modelPath, { recursive: true, force: true });
270
- return { success: true };
271
- }
272
- catch (error) {
273
- return {
274
- success: false,
275
- error: error instanceof Error ? error.message : String(error),
276
- };
277
- }
278
- }
279
- /**
280
- * Get status of a specific model
281
- */
282
- export function getModelStatus(model) {
283
- const modelPath = getModelPath(model);
284
- const installed = isModelInstalled(model);
285
- const status = {
286
- name: model,
287
- installed,
288
- path: modelPath,
289
- };
290
- if (installed && existsSync(modelPath)) {
291
- const files = readdirSync(modelPath);
292
- status.files = files;
293
- let totalSize = 0;
294
- for (const file of files) {
295
- try {
296
- const fileStat = statSync(join(modelPath, file));
297
- totalSize += fileStat.size;
298
- }
299
- catch {
300
- // Ignore stat errors
301
- }
302
- }
303
- status.sizeOnDisk = totalSize;
304
- }
305
- return status;
306
- }
307
- /**
308
- * Format bytes to human-readable string
309
- */
310
- export function formatBytes(bytes) {
311
- if (!Number.isFinite(bytes) || bytes < 0)
312
- return "0 B";
313
- if (bytes === 0)
314
- return "0 B";
315
- const k = 1024;
316
- const sizes = ["B", "KB", "MB", "GB", "TB"];
317
- const i = Math.min(Math.floor(Math.log(bytes) / Math.log(k)), sizes.length - 1);
318
- return `${parseFloat((bytes / Math.pow(k, i)).toFixed(1))} ${sizes[i]}`;
319
- }
320
- //# sourceMappingURL=model-downloader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-downloader.js","sourceRoot":"","sources":["../../../src/vss/model-downloader.ts"],"names":[],"mappings":"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"}
@@ -1,132 +0,0 @@
1
- /**
2
- * VSS Embedding Provider Interface
3
- *
4
- * Defines the interface for generating semantic embeddings.
5
- * Implementations can use different backends (LSH, Transformers.js, external API).
6
- */
7
- import { type SupportedModel, type VSSConfig } from "./config.js";
8
- /**
9
- * Embedding result for a single text
10
- */
11
- export interface EmbeddingResult {
12
- /** Embedding dimensions */
13
- dims: number;
14
- /** Embedding vector values */
15
- values: number[];
16
- }
17
- /**
18
- * Batch embedding result
19
- */
20
- export interface BatchEmbeddingResult {
21
- /** Path to the file */
22
- path: string;
23
- /** Embedding result (null if generation failed) */
24
- embedding: EmbeddingResult | null;
25
- }
26
- /**
27
- * Embedding provider interface
28
- */
29
- export interface EmbeddingProvider {
30
- /** Provider name */
31
- readonly name: string;
32
- /** Embedding dimensions */
33
- readonly dims: number;
34
- /** Whether the provider is ready to use */
35
- readonly ready: boolean;
36
- /**
37
- * Generate embedding for a single text
38
- */
39
- generateEmbedding(text: string): Promise<EmbeddingResult | null>;
40
- /**
41
- * Generate embeddings for multiple texts (batch processing)
42
- */
43
- generateBatch(items: Array<{
44
- path: string;
45
- content: string;
46
- }>): Promise<BatchEmbeddingResult[]>;
47
- /**
48
- * Initialize the provider (e.g., load model)
49
- */
50
- initialize(): Promise<void>;
51
- /**
52
- * Clean up resources
53
- */
54
- dispose(): Promise<void>;
55
- }
56
- /**
57
- * LSH-based embedding provider (current implementation)
58
- * Uses locality-sensitive hashing for structural similarity
59
- */
60
- export declare class LSHEmbeddingProvider implements EmbeddingProvider {
61
- readonly name = "lsh";
62
- readonly dims = 64;
63
- readonly ready = true;
64
- generateEmbedding(text: string): Promise<EmbeddingResult | null>;
65
- generateBatch(items: Array<{
66
- path: string;
67
- content: string;
68
- }>): Promise<BatchEmbeddingResult[]>;
69
- initialize(): Promise<void>;
70
- dispose(): Promise<void>;
71
- }
72
- /**
73
- * Neural embedding provider (legacy, for non-ONNX models)
74
- * Uses CodeBERT/UniXcoder for semantic embeddings
75
- *
76
- * @deprecated Use TransformersEmbeddingProvider for ONNX-ready models
77
- */
78
- export declare class NeuralEmbeddingProvider implements EmbeddingProvider {
79
- readonly name: string;
80
- readonly dims = 768;
81
- private _ready;
82
- private modelPath;
83
- private model;
84
- constructor(model: SupportedModel);
85
- get ready(): boolean;
86
- generateEmbedding(text: string): Promise<EmbeddingResult | null>;
87
- generateBatch(items: Array<{
88
- path: string;
89
- content: string;
90
- }>): Promise<BatchEmbeddingResult[]>;
91
- initialize(): Promise<void>;
92
- dispose(): Promise<void>;
93
- }
94
- /**
95
- * Transformers.js embedding provider
96
- * Uses @huggingface/transformers for ONNX-based inference
97
- */
98
- export declare class TransformersEmbeddingProvider implements EmbeddingProvider {
99
- readonly name: string;
100
- readonly dims: number;
101
- private _ready;
102
- private model;
103
- private hfModelId;
104
- private extractor;
105
- constructor(model: SupportedModel);
106
- get ready(): boolean;
107
- generateEmbedding(text: string): Promise<EmbeddingResult | null>;
108
- generateBatch(items: Array<{
109
- path: string;
110
- content: string;
111
- }>): Promise<BatchEmbeddingResult[]>;
112
- initialize(): Promise<void>;
113
- dispose(): Promise<void>;
114
- }
115
- /**
116
- * Provider factory options
117
- */
118
- export interface ProviderOptions {
119
- /** Force use of a specific provider type */
120
- forceProvider?: "lsh" | "neural" | "transformers";
121
- /** VSS configuration override */
122
- config?: Partial<VSSConfig>;
123
- }
124
- /**
125
- * Create an embedding provider based on configuration
126
- */
127
- export declare function createEmbeddingProvider(options?: ProviderOptions): Promise<EmbeddingProvider>;
128
- /**
129
- * Get provider info string for logging
130
- */
131
- export declare function getProviderInfo(provider: EmbeddingProvider): string;
132
- //# sourceMappingURL=provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/vss/provider.ts"],"names":[],"mappings":"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"}