@mhalder/qdrant-mcp-server 3.3.3 → 3.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +0 -2
- package/.github/workflows/claude-code-review.yml +1 -1
- package/CHANGELOG.md +6 -0
- package/README.md +1 -1
- package/biome.json +3 -2
- package/build/code/chunker/tree-sitter-chunker.d.ts.map +1 -1
- package/build/code/chunker/tree-sitter-chunker.js +2 -12
- package/build/code/chunker/tree-sitter-chunker.js.map +1 -1
- package/build/code/indexer.d.ts.map +1 -1
- package/build/code/indexer.js +12 -18
- package/build/code/indexer.js.map +1 -1
- package/build/code/scanner.js +1 -1
- package/build/code/scanner.js.map +1 -1
- package/build/embeddings/cohere.d.ts +1 -1
- package/build/embeddings/cohere.d.ts.map +1 -1
- package/build/embeddings/cohere.js +2 -2
- package/build/embeddings/cohere.js.map +1 -1
- package/build/embeddings/cohere.test.js +1 -5
- package/build/embeddings/cohere.test.js.map +1 -1
- package/build/embeddings/factory.d.ts +1 -1
- package/build/embeddings/factory.d.ts.map +1 -1
- package/build/embeddings/factory.js +7 -9
- package/build/embeddings/factory.js.map +1 -1
- package/build/embeddings/factory.test.js +3 -3
- package/build/embeddings/factory.test.js.map +1 -1
- package/build/embeddings/ollama.d.ts +1 -1
- package/build/embeddings/ollama.d.ts.map +1 -1
- package/build/embeddings/ollama.js +6 -8
- package/build/embeddings/ollama.js.map +1 -1
- package/build/embeddings/ollama.test.js +2 -6
- package/build/embeddings/ollama.test.js.map +1 -1
- package/build/embeddings/openai.d.ts +1 -1
- package/build/embeddings/openai.d.ts.map +1 -1
- package/build/embeddings/openai.js +4 -7
- package/build/embeddings/openai.js.map +1 -1
- package/build/embeddings/openai.test.js +3 -12
- package/build/embeddings/openai.test.js.map +1 -1
- package/build/embeddings/sparse.test.js +12 -2
- package/build/embeddings/sparse.test.js.map +1 -1
- package/build/embeddings/voyage.d.ts +1 -1
- package/build/embeddings/voyage.d.ts.map +1 -1
- package/build/embeddings/voyage.js +2 -3
- package/build/embeddings/voyage.js.map +1 -1
- package/build/embeddings/voyage.test.js +2 -6
- package/build/embeddings/voyage.test.js.map +1 -1
- package/build/git/chunker.d.ts.map +1 -1
- package/build/git/chunker.js +2 -2
- package/build/git/chunker.js.map +1 -1
- package/build/git/chunker.test.js +1 -1
- package/build/git/chunker.test.js.map +1 -1
- package/build/git/extractor.d.ts.map +1 -1
- package/build/git/extractor.integration.test.js +9 -5
- package/build/git/extractor.integration.test.js.map +1 -1
- package/build/git/extractor.js +1 -1
- package/build/git/extractor.js.map +1 -1
- package/build/git/extractor.test.js +2 -2
- package/build/git/extractor.test.js.map +1 -1
- package/build/git/index.d.ts +4 -4
- package/build/git/index.d.ts.map +1 -1
- package/build/git/index.js +3 -3
- package/build/git/index.js.map +1 -1
- package/build/git/indexer.d.ts.map +1 -1
- package/build/git/indexer.js +9 -21
- package/build/git/indexer.js.map +1 -1
- package/build/git/indexer.test.js +4 -8
- package/build/git/indexer.test.js.map +1 -1
- package/build/git/sync/synchronizer.d.ts.map +1 -1
- package/build/git/sync/synchronizer.js.map +1 -1
- package/build/git/sync/synchronizer.test.js +4 -2
- package/build/git/sync/synchronizer.test.js.map +1 -1
- package/build/index.js +5 -9
- package/build/index.js.map +1 -1
- package/build/index.test.js +3 -3
- package/build/index.test.js.map +1 -1
- package/build/logger.d.ts.map +1 -1
- package/build/logger.js +1 -9
- package/build/logger.js.map +1 -1
- package/build/prompts/register.d.ts.map +1 -1
- package/build/prompts/register.js.map +1 -1
- package/build/qdrant/client.d.ts.map +1 -1
- package/build/qdrant/client.js.map +1 -1
- package/build/qdrant/client.test.js +10 -34
- package/build/qdrant/client.test.js.map +1 -1
- package/build/resources/index.d.ts +1 -1
- package/build/resources/index.d.ts.map +1 -1
- package/build/resources/index.js +1 -1
- package/build/resources/index.js.map +1 -1
- package/build/tools/code.d.ts.map +1 -1
- package/build/tools/code.js +3 -9
- package/build/tools/code.js.map +1 -1
- package/build/tools/collection.d.ts.map +1 -1
- package/build/tools/collection.js +1 -3
- package/build/tools/collection.js.map +1 -1
- package/build/tools/document.d.ts.map +1 -1
- package/build/tools/document.js +1 -1
- package/build/tools/document.js.map +1 -1
- package/build/tools/federated.d.ts.map +1 -1
- package/build/tools/federated.js +15 -6
- package/build/tools/federated.js.map +1 -1
- package/build/tools/federated.test.js +18 -22
- package/build/tools/federated.test.js.map +1 -1
- package/build/tools/git-history.d.ts.map +1 -1
- package/build/tools/git-history.js +3 -7
- package/build/tools/git-history.js.map +1 -1
- package/build/tools/index.d.ts.map +1 -1
- package/build/tools/index.js.map +1 -1
- package/build/tools/logging.d.ts.map +1 -1
- package/build/tools/logging.js +1 -3
- package/build/tools/logging.js.map +1 -1
- package/build/tools/logging.test.js +1 -1
- package/build/tools/logging.test.js.map +1 -1
- package/build/tools/schemas.d.ts.map +1 -1
- package/build/tools/schemas.js +17 -64
- package/build/tools/schemas.js.map +1 -1
- package/build/tools/search.d.ts.map +1 -1
- package/build/tools/search.js +1 -1
- package/build/tools/search.js.map +1 -1
- package/commitlint.config.js +12 -23
- package/package.json +1 -1
- package/scripts/verify-providers.js +12 -32
- package/src/code/chunker/tree-sitter-chunker.ts +9 -35
- package/src/code/indexer.ts +45 -107
- package/src/code/scanner.ts +1 -1
- package/src/embeddings/cohere.test.ts +17 -45
- package/src/embeddings/cohere.ts +10 -17
- package/src/embeddings/factory.test.ts +18 -18
- package/src/embeddings/factory.ts +18 -25
- package/src/embeddings/ollama.test.ts +38 -67
- package/src/embeddings/ollama.ts +15 -27
- package/src/embeddings/openai.test.ts +17 -53
- package/src/embeddings/openai.ts +11 -22
- package/src/embeddings/sparse.test.ts +12 -2
- package/src/embeddings/voyage.test.ts +39 -80
- package/src/embeddings/voyage.ts +9 -13
- package/src/git/chunker.test.ts +1 -1
- package/src/git/chunker.ts +6 -22
- package/src/git/extractor.integration.test.ts +12 -16
- package/src/git/extractor.test.ts +21 -35
- package/src/git/extractor.ts +14 -36
- package/src/git/index.ts +9 -10
- package/src/git/indexer.test.ts +29 -57
- package/src/git/indexer.ts +38 -86
- package/src/git/sync/synchronizer.test.ts +6 -9
- package/src/git/sync/synchronizer.ts +2 -5
- package/src/index.test.ts +7 -9
- package/src/index.ts +34 -80
- package/src/logger.ts +3 -14
- package/src/prompts/register.ts +3 -10
- package/src/qdrant/client.test.ts +63 -169
- package/src/qdrant/client.ts +19 -45
- package/src/resources/index.ts +4 -10
- package/src/tools/code.ts +43 -66
- package/src/tools/collection.ts +19 -38
- package/src/tools/document.ts +10 -19
- package/src/tools/federated.test.ts +34 -57
- package/src/tools/federated.ts +88 -108
- package/src/tools/git-history.ts +32 -60
- package/src/tools/index.ts +1 -4
- package/src/tools/logging.test.ts +10 -10
- package/src/tools/logging.ts +8 -18
- package/src/tools/schemas.ts +23 -78
- package/src/tools/search.ts +77 -94
- package/tests/code/chunker/tree-sitter-chunker.test.ts +6 -19
- package/tests/code/indexer.test.ts +100 -192
- package/tests/code/integration.test.ts +61 -117
- package/tests/code/scanner.test.ts +12 -39
- package/tests/code/sync/snapshot.test.ts +4 -14
- package/tests/code/sync/synchronizer.test.ts +10 -40
|
@@ -14,7 +14,7 @@ describe("FileSynchronizer", () => {
|
|
|
14
14
|
// Create temporary directories for testing
|
|
15
15
|
tempDir = join(
|
|
16
16
|
tmpdir(),
|
|
17
|
-
`qdrant-mcp-test-${Date.now()}-${Math.random().toString(36).substring(7)}
|
|
17
|
+
`qdrant-mcp-test-${Date.now()}-${Math.random().toString(36).substring(7)}`
|
|
18
18
|
);
|
|
19
19
|
codebaseDir = join(tempDir, "codebase");
|
|
20
20
|
await fs.mkdir(codebaseDir, { recursive: true });
|
|
@@ -34,12 +34,7 @@ describe("FileSynchronizer", () => {
|
|
|
34
34
|
|
|
35
35
|
// Clean up snapshot file
|
|
36
36
|
try {
|
|
37
|
-
const snapshotPath = join(
|
|
38
|
-
homedir(),
|
|
39
|
-
".qdrant-mcp",
|
|
40
|
-
"snapshots",
|
|
41
|
-
`${collectionName}.json`,
|
|
42
|
-
);
|
|
37
|
+
const snapshotPath = join(homedir(), ".qdrant-mcp", "snapshots", `${collectionName}.json`);
|
|
43
38
|
await fs.rm(snapshotPath, { force: true });
|
|
44
39
|
} catch (_error) {
|
|
45
40
|
// Ignore cleanup errors
|
|
@@ -88,11 +83,7 @@ describe("FileSynchronizer", () => {
|
|
|
88
83
|
|
|
89
84
|
await synchronizer.updateSnapshot(["file1.ts", "file2.ts"]);
|
|
90
85
|
|
|
91
|
-
const newSync = new FileSynchronizer(
|
|
92
|
-
codebaseDir,
|
|
93
|
-
collectionName,
|
|
94
|
-
tempDir,
|
|
95
|
-
);
|
|
86
|
+
const newSync = new FileSynchronizer(codebaseDir, collectionName, tempDir);
|
|
96
87
|
const hasSnapshot = await newSync.initialize();
|
|
97
88
|
|
|
98
89
|
expect(hasSnapshot).toBe(true);
|
|
@@ -147,10 +138,7 @@ describe("FileSynchronizer", () => {
|
|
|
147
138
|
await createFile(codebaseDir, "file1.ts", "content1");
|
|
148
139
|
await createFile(codebaseDir, "file2.ts", "content2");
|
|
149
140
|
|
|
150
|
-
const changes = await synchronizer.detectChanges([
|
|
151
|
-
"file1.ts",
|
|
152
|
-
"file2.ts",
|
|
153
|
-
]);
|
|
141
|
+
const changes = await synchronizer.detectChanges(["file1.ts", "file2.ts"]);
|
|
154
142
|
|
|
155
143
|
expect(changes.added).toContain("file1.ts");
|
|
156
144
|
expect(changes.added).toContain("file2.ts");
|
|
@@ -198,10 +186,7 @@ describe("FileSynchronizer", () => {
|
|
|
198
186
|
|
|
199
187
|
// Delete file2
|
|
200
188
|
|
|
201
|
-
const changes = await synchronizer.detectChanges([
|
|
202
|
-
"file1.ts",
|
|
203
|
-
"file3.ts",
|
|
204
|
-
]);
|
|
189
|
+
const changes = await synchronizer.detectChanges(["file1.ts", "file3.ts"]);
|
|
205
190
|
|
|
206
191
|
expect(changes.added).toEqual(["file3.ts"]);
|
|
207
192
|
expect(changes.modified).toEqual(["file1.ts"]);
|
|
@@ -223,10 +208,7 @@ describe("FileSynchronizer", () => {
|
|
|
223
208
|
await createFile(codebaseDir, "file1.ts", "content1");
|
|
224
209
|
await createFile(codebaseDir, "file2.ts", "content2");
|
|
225
210
|
|
|
226
|
-
const changes = await synchronizer.detectChanges([
|
|
227
|
-
"file1.ts",
|
|
228
|
-
"file2.ts",
|
|
229
|
-
]);
|
|
211
|
+
const changes = await synchronizer.detectChanges(["file1.ts", "file2.ts"]);
|
|
230
212
|
|
|
231
213
|
expect(changes.added).toContain("file1.ts");
|
|
232
214
|
expect(changes.added).toContain("file2.ts");
|
|
@@ -276,10 +258,7 @@ describe("FileSynchronizer", () => {
|
|
|
276
258
|
|
|
277
259
|
await synchronizer.updateSnapshot(["file1.ts", "file2.ts"]);
|
|
278
260
|
|
|
279
|
-
const changes = await synchronizer.detectChanges([
|
|
280
|
-
"file1.ts",
|
|
281
|
-
"file2.ts",
|
|
282
|
-
]);
|
|
261
|
+
const changes = await synchronizer.detectChanges(["file1.ts", "file2.ts"]);
|
|
283
262
|
|
|
284
263
|
expect(changes.added).toEqual([]);
|
|
285
264
|
expect(changes.modified).toEqual([]);
|
|
@@ -336,9 +315,7 @@ describe("FileSynchronizer", () => {
|
|
|
336
315
|
|
|
337
316
|
await synchronizer.updateSnapshot(["src/components/Button.tsx"]);
|
|
338
317
|
|
|
339
|
-
const changes = await synchronizer.detectChanges([
|
|
340
|
-
"src/components/Button.tsx",
|
|
341
|
-
]);
|
|
318
|
+
const changes = await synchronizer.detectChanges(["src/components/Button.tsx"]);
|
|
342
319
|
|
|
343
320
|
expect(changes.modified).toEqual([]);
|
|
344
321
|
});
|
|
@@ -498,10 +475,7 @@ describe("FileSynchronizer", () => {
|
|
|
498
475
|
|
|
499
476
|
await createFile(codebaseDir, "file2.ts", "content2");
|
|
500
477
|
|
|
501
|
-
const needsReindex = await synchronizer.needsReindex([
|
|
502
|
-
"file1.ts",
|
|
503
|
-
"file2.ts",
|
|
504
|
-
]);
|
|
478
|
+
const needsReindex = await synchronizer.needsReindex(["file1.ts", "file2.ts"]);
|
|
505
479
|
|
|
506
480
|
expect(needsReindex).toBe(true);
|
|
507
481
|
});
|
|
@@ -565,11 +539,7 @@ describe("FileSynchronizer", () => {
|
|
|
565
539
|
});
|
|
566
540
|
|
|
567
541
|
// Helper function to create files in the test codebase
|
|
568
|
-
async function createFile(
|
|
569
|
-
baseDir: string,
|
|
570
|
-
relativePath: string,
|
|
571
|
-
content: string,
|
|
572
|
-
): Promise<void> {
|
|
542
|
+
async function createFile(baseDir: string, relativePath: string, content: string): Promise<void> {
|
|
573
543
|
const fullPath = join(baseDir, relativePath);
|
|
574
544
|
const dir = join(fullPath, "..");
|
|
575
545
|
await fs.mkdir(dir, { recursive: true });
|