@zilliz/claude-context-core 0.0.1

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 (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +275 -0
  3. package/dist/context.d.ts +234 -0
  4. package/dist/context.d.ts.map +1 -0
  5. package/dist/context.js +879 -0
  6. package/dist/context.js.map +1 -0
  7. package/dist/embedding/base-embedding.d.ts +45 -0
  8. package/dist/embedding/base-embedding.d.ts.map +1 -0
  9. package/dist/embedding/base-embedding.js +36 -0
  10. package/dist/embedding/base-embedding.js.map +1 -0
  11. package/dist/embedding/gemini-embedding.d.ts +51 -0
  12. package/dist/embedding/gemini-embedding.d.ts.map +1 -0
  13. package/dist/embedding/gemini-embedding.js +143 -0
  14. package/dist/embedding/gemini-embedding.js.map +1 -0
  15. package/dist/embedding/index.d.ts +6 -0
  16. package/dist/embedding/index.d.ts.map +1 -0
  17. package/dist/embedding/index.js +24 -0
  18. package/dist/embedding/index.js.map +1 -0
  19. package/dist/embedding/ollama-embedding.d.ts +64 -0
  20. package/dist/embedding/ollama-embedding.d.ts.map +1 -0
  21. package/dist/embedding/ollama-embedding.js +205 -0
  22. package/dist/embedding/ollama-embedding.js.map +1 -0
  23. package/dist/embedding/openai-embedding.d.ts +36 -0
  24. package/dist/embedding/openai-embedding.d.ts.map +1 -0
  25. package/dist/embedding/openai-embedding.js +103 -0
  26. package/dist/embedding/openai-embedding.js.map +1 -0
  27. package/dist/embedding/voyageai-embedding.d.ts +43 -0
  28. package/dist/embedding/voyageai-embedding.d.ts.map +1 -0
  29. package/dist/embedding/voyageai-embedding.js +223 -0
  30. package/dist/embedding/voyageai-embedding.js.map +1 -0
  31. package/dist/index.d.ts +8 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +24 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/splitter/ast-splitter.d.ts +22 -0
  36. package/dist/splitter/ast-splitter.d.ts.map +1 -0
  37. package/dist/splitter/ast-splitter.js +227 -0
  38. package/dist/splitter/ast-splitter.js.map +1 -0
  39. package/dist/splitter/index.d.ts +41 -0
  40. package/dist/splitter/index.d.ts.map +1 -0
  41. package/dist/splitter/index.js +27 -0
  42. package/dist/splitter/index.js.map +1 -0
  43. package/dist/splitter/langchain-splitter.d.ts +13 -0
  44. package/dist/splitter/langchain-splitter.d.ts.map +1 -0
  45. package/dist/splitter/langchain-splitter.js +118 -0
  46. package/dist/splitter/langchain-splitter.js.map +1 -0
  47. package/dist/sync/merkle.d.ts +26 -0
  48. package/dist/sync/merkle.d.ts.map +1 -0
  49. package/dist/sync/merkle.js +112 -0
  50. package/dist/sync/merkle.js.map +1 -0
  51. package/dist/sync/synchronizer.d.ts +30 -0
  52. package/dist/sync/synchronizer.d.ts.map +1 -0
  53. package/dist/sync/synchronizer.js +339 -0
  54. package/dist/sync/synchronizer.js.map +1 -0
  55. package/dist/types.d.ts +14 -0
  56. package/dist/types.d.ts.map +1 -0
  57. package/dist/types.js +3 -0
  58. package/dist/types.js.map +1 -0
  59. package/dist/utils/env-manager.d.ts +19 -0
  60. package/dist/utils/env-manager.d.ts.map +1 -0
  61. package/dist/utils/env-manager.js +125 -0
  62. package/dist/utils/env-manager.js.map +1 -0
  63. package/dist/utils/index.d.ts +2 -0
  64. package/dist/utils/index.d.ts.map +1 -0
  65. package/dist/utils/index.js +7 -0
  66. package/dist/utils/index.js.map +1 -0
  67. package/dist/vectordb/index.d.ts +5 -0
  68. package/dist/vectordb/index.d.ts.map +1 -0
  69. package/dist/vectordb/index.js +14 -0
  70. package/dist/vectordb/index.js.map +1 -0
  71. package/dist/vectordb/milvus-restful-vectordb.d.ts +51 -0
  72. package/dist/vectordb/milvus-restful-vectordb.d.ts.map +1 -0
  73. package/dist/vectordb/milvus-restful-vectordb.js +406 -0
  74. package/dist/vectordb/milvus-restful-vectordb.js.map +1 -0
  75. package/dist/vectordb/milvus-vectordb.d.ts +34 -0
  76. package/dist/vectordb/milvus-vectordb.d.ts.map +1 -0
  77. package/dist/vectordb/milvus-vectordb.js +248 -0
  78. package/dist/vectordb/milvus-vectordb.js.map +1 -0
  79. package/dist/vectordb/types.d.ts +75 -0
  80. package/dist/vectordb/types.d.ts.map +1 -0
  81. package/dist/vectordb/types.js +9 -0
  82. package/dist/vectordb/types.js.map +1 -0
  83. package/dist/vectordb/zilliz-utils.d.ts +135 -0
  84. package/dist/vectordb/zilliz-utils.d.ts.map +1 -0
  85. package/dist/vectordb/zilliz-utils.js +192 -0
  86. package/dist/vectordb/zilliz-utils.js.map +1 -0
  87. package/package.json +56 -0
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.envManager = exports.EnvManager = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const os = __importStar(require("os"));
40
+ class EnvManager {
41
+ constructor() {
42
+ const homeDir = os.homedir();
43
+ this.envFilePath = path.join(homeDir, '.codecontext', '.env');
44
+ }
45
+ /**
46
+ * Get environment variable by name
47
+ * Priority: process.env > .env file > undefined
48
+ */
49
+ get(name) {
50
+ // First try to get from process environment variables
51
+ if (process.env[name]) {
52
+ return process.env[name];
53
+ }
54
+ // If not found in process env, try to read from .env file
55
+ try {
56
+ if (fs.existsSync(this.envFilePath)) {
57
+ const content = fs.readFileSync(this.envFilePath, 'utf-8');
58
+ const lines = content.split('\n');
59
+ for (const line of lines) {
60
+ const trimmedLine = line.trim();
61
+ if (trimmedLine.startsWith(`${name}=`)) {
62
+ return trimmedLine.substring(name.length + 1);
63
+ }
64
+ }
65
+ }
66
+ }
67
+ catch (error) {
68
+ // Ignore file read errors
69
+ }
70
+ return undefined;
71
+ }
72
+ /**
73
+ * Set environment variable to the .env file
74
+ */
75
+ set(name, value) {
76
+ try {
77
+ // Ensure directory exists
78
+ const envDir = path.dirname(this.envFilePath);
79
+ if (!fs.existsSync(envDir)) {
80
+ fs.mkdirSync(envDir, { recursive: true });
81
+ }
82
+ let content = '';
83
+ let found = false;
84
+ // Read existing content if file exists
85
+ if (fs.existsSync(this.envFilePath)) {
86
+ content = fs.readFileSync(this.envFilePath, 'utf-8');
87
+ // Update existing variable
88
+ const lines = content.split('\n');
89
+ for (let i = 0; i < lines.length; i++) {
90
+ if (lines[i].trim().startsWith(`${name}=`)) {
91
+ // Replace the existing value
92
+ lines[i] = `${name}=${value}`;
93
+ found = true;
94
+ console.log(`✅ Updated ${name} in ${this.envFilePath}`);
95
+ break;
96
+ }
97
+ }
98
+ content = lines.join('\n');
99
+ }
100
+ // If variable not found, append it
101
+ if (!found) {
102
+ if (content && !content.endsWith('\n')) {
103
+ content += '\n';
104
+ }
105
+ content += `${name}=${value}\n`;
106
+ console.log(`✅ Added ${name} to ${this.envFilePath}`);
107
+ }
108
+ fs.writeFileSync(this.envFilePath, content, 'utf-8');
109
+ }
110
+ catch (error) {
111
+ console.error(`Failed to write env file: ${error}`);
112
+ throw error;
113
+ }
114
+ }
115
+ /**
116
+ * Get the path to the .env file
117
+ */
118
+ getEnvFilePath() {
119
+ return this.envFilePath;
120
+ }
121
+ }
122
+ exports.EnvManager = EnvManager;
123
+ // Export a default instance for convenience
124
+ exports.envManager = new EnvManager();
125
+ //# sourceMappingURL=env-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-manager.js","sourceRoot":"","sources":["../../src/utils/env-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { EnvManager, envManager } from './env-manager';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.envManager = exports.EnvManager = void 0;
4
+ var env_manager_1 = require("./env-manager");
5
+ Object.defineProperty(exports, "EnvManager", { enumerable: true, get: function () { return env_manager_1.EnvManager; } });
6
+ Object.defineProperty(exports, "envManager", { enumerable: true, get: function () { return env_manager_1.envManager; } });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,6CAAuD;AAA9C,yGAAA,UAAU,OAAA;AAAE,yGAAA,UAAU,OAAA"}
@@ -0,0 +1,5 @@
1
+ export { VectorDocument, SearchOptions, VectorSearchResult, VectorDatabase, COLLECTION_LIMIT_MESSAGE } from './types';
2
+ export { MilvusRestfulVectorDatabase, MilvusRestfulConfig } from './milvus-restful-vectordb';
3
+ export { MilvusVectorDatabase, MilvusConfig } from './milvus-vectordb';
4
+ export { ClusterManager, ZillizConfig, Project, Cluster, CreateFreeClusterRequest, CreateFreeClusterResponse, CreateFreeClusterWithDetailsResponse, DescribeClusterResponse } from './zilliz-utils';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vectordb/index.ts"],"names":[],"mappings":"AACA,OAAO,EACH,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EAC3B,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACH,cAAc,EACd,YAAY,EACZ,OAAO,EACP,OAAO,EACP,wBAAwB,EACxB,yBAAyB,EACzB,oCAAoC,EACpC,uBAAuB,EAC1B,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClusterManager = exports.MilvusVectorDatabase = exports.MilvusRestfulVectorDatabase = exports.COLLECTION_LIMIT_MESSAGE = void 0;
4
+ // Re-export types and interfaces
5
+ var types_1 = require("./types");
6
+ Object.defineProperty(exports, "COLLECTION_LIMIT_MESSAGE", { enumerable: true, get: function () { return types_1.COLLECTION_LIMIT_MESSAGE; } });
7
+ // Implementation class exports
8
+ var milvus_restful_vectordb_1 = require("./milvus-restful-vectordb");
9
+ Object.defineProperty(exports, "MilvusRestfulVectorDatabase", { enumerable: true, get: function () { return milvus_restful_vectordb_1.MilvusRestfulVectorDatabase; } });
10
+ var milvus_vectordb_1 = require("./milvus-vectordb");
11
+ Object.defineProperty(exports, "MilvusVectorDatabase", { enumerable: true, get: function () { return milvus_vectordb_1.MilvusVectorDatabase; } });
12
+ var zilliz_utils_1 = require("./zilliz-utils");
13
+ Object.defineProperty(exports, "ClusterManager", { enumerable: true, get: function () { return zilliz_utils_1.ClusterManager; } });
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vectordb/index.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,iCAMiB;AADb,iHAAA,wBAAwB,OAAA;AAG5B,+BAA+B;AAC/B,qEAA6F;AAApF,sIAAA,2BAA2B,OAAA;AACpC,qDAAuE;AAA9D,uHAAA,oBAAoB,OAAA;AAC7B,+CASwB;AARpB,8GAAA,cAAc,OAAA"}
@@ -0,0 +1,51 @@
1
+ import { VectorDocument, SearchOptions, VectorSearchResult, VectorDatabase } from './types';
2
+ export interface MilvusRestfulConfig {
3
+ address?: string;
4
+ token?: string;
5
+ username?: string;
6
+ password?: string;
7
+ database?: string;
8
+ }
9
+ /**
10
+ * Milvus Vector Database implementation using REST API
11
+ * This implementation is designed for environments where gRPC is not available,
12
+ * such as VSCode extensions or browser environments.
13
+ */
14
+ export declare class MilvusRestfulVectorDatabase implements VectorDatabase {
15
+ protected config: MilvusRestfulConfig;
16
+ private baseUrl;
17
+ protected initializationPromise: Promise<void>;
18
+ constructor(config: MilvusRestfulConfig);
19
+ private initialize;
20
+ private initializeClient;
21
+ /**
22
+ * Resolve address from config or token
23
+ * Common logic for both gRPC and REST implementations
24
+ */
25
+ protected resolveAddress(): Promise<string>;
26
+ /**
27
+ * Ensure initialization is complete before method execution
28
+ */
29
+ protected ensureInitialized(): Promise<void>;
30
+ /**
31
+ * Make HTTP request to Milvus REST API
32
+ */
33
+ private makeRequest;
34
+ createCollection(collectionName: string, dimension: number, description?: string): Promise<void>;
35
+ /**
36
+ * Create index for vector field using the Index Create API
37
+ */
38
+ private createIndex;
39
+ /**
40
+ * Load collection to memory for searching
41
+ */
42
+ private loadCollection;
43
+ dropCollection(collectionName: string): Promise<void>;
44
+ hasCollection(collectionName: string): Promise<boolean>;
45
+ listCollections(): Promise<string[]>;
46
+ insert(collectionName: string, documents: VectorDocument[]): Promise<void>;
47
+ search(collectionName: string, queryVector: number[], options?: SearchOptions): Promise<VectorSearchResult[]>;
48
+ delete(collectionName: string, ids: string[]): Promise<void>;
49
+ query(collectionName: string, filter: string, outputFields: string[], limit?: number): Promise<Record<string, any>[]>;
50
+ }
51
+ //# sourceMappingURL=milvus-restful-vectordb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"milvus-restful-vectordb.d.ts","sourceRoot":"","sources":["../../src/vectordb/milvus-restful-vectordb.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,cAAc,EAEjB,MAAM,SAAS,CAAC;AAGjB,MAAM,WAAW,mBAAmB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAwBD;;;;GAIG;AACH,qBAAa,2BAA4B,YAAW,cAAc;IAC9D,SAAS,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACtC,OAAO,CAAC,OAAO,CAAuB;IACtC,SAAS,CAAC,qBAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAEnC,MAAM,EAAE,mBAAmB;YAOzB,UAAU;YAKV,gBAAgB;IAY9B;;;OAGG;cACa,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAejD;;OAEG;cACa,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOlD;;OAEG;YACW,WAAW;IA4CnB,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoFtG;;OAEG;YACW,WAAW;IAuBzB;;OAEG;YACW,cAAc;IAatB,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAerD,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBvD,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAgBpC,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B1E,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAgE7G,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB5D,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;CA2B9H"}
@@ -0,0 +1,406 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MilvusRestfulVectorDatabase = void 0;
4
+ const types_1 = require("./types");
5
+ const zilliz_utils_1 = require("./zilliz-utils");
6
+ /**
7
+ * Wrapper function to handle collection creation with limit detection
8
+ * This is the single point where collection limit errors are detected and handled
9
+ */
10
+ async function createCollectionWithLimitCheck(makeRequestFn, collectionSchema) {
11
+ try {
12
+ await makeRequestFn('/collections/create', 'POST', collectionSchema);
13
+ }
14
+ catch (error) {
15
+ // Check if the error message contains the collection limit exceeded pattern
16
+ const errorMessage = error.message || error.toString() || '';
17
+ if (/exceeded the limit number of collections/i.test(errorMessage)) {
18
+ // Throw the exact message string, not an Error object
19
+ throw types_1.COLLECTION_LIMIT_MESSAGE;
20
+ }
21
+ // Re-throw other errors as-is
22
+ throw error;
23
+ }
24
+ }
25
+ /**
26
+ * Milvus Vector Database implementation using REST API
27
+ * This implementation is designed for environments where gRPC is not available,
28
+ * such as VSCode extensions or browser environments.
29
+ */
30
+ class MilvusRestfulVectorDatabase {
31
+ constructor(config) {
32
+ this.baseUrl = null;
33
+ this.config = config;
34
+ // Start initialization asynchronously without waiting
35
+ this.initializationPromise = this.initialize();
36
+ }
37
+ async initialize() {
38
+ const resolvedAddress = await this.resolveAddress();
39
+ await this.initializeClient(resolvedAddress);
40
+ }
41
+ async initializeClient(address) {
42
+ // Ensure address has protocol prefix
43
+ let processedAddress = address;
44
+ if (!processedAddress.startsWith('http://') && !processedAddress.startsWith('https://')) {
45
+ processedAddress = `http://${processedAddress}`;
46
+ }
47
+ this.baseUrl = processedAddress.replace(/\/$/, '') + '/v2/vectordb';
48
+ console.log(`🔌 Connecting to Milvus REST API at: ${processedAddress}`);
49
+ }
50
+ /**
51
+ * Resolve address from config or token
52
+ * Common logic for both gRPC and REST implementations
53
+ */
54
+ async resolveAddress() {
55
+ let finalConfig = { ...this.config };
56
+ // If address is not provided, get it using token
57
+ if (!finalConfig.address && finalConfig.token) {
58
+ finalConfig.address = await zilliz_utils_1.ClusterManager.getAddressFromToken(finalConfig.token);
59
+ }
60
+ if (!finalConfig.address) {
61
+ throw new Error('Address is required and could not be resolved from token');
62
+ }
63
+ return finalConfig.address;
64
+ }
65
+ /**
66
+ * Ensure initialization is complete before method execution
67
+ */
68
+ async ensureInitialized() {
69
+ await this.initializationPromise;
70
+ if (!this.baseUrl) {
71
+ throw new Error('Base URL not initialized');
72
+ }
73
+ }
74
+ /**
75
+ * Make HTTP request to Milvus REST API
76
+ */
77
+ async makeRequest(endpoint, method = 'POST', data) {
78
+ const url = `${this.baseUrl}${endpoint}`;
79
+ const headers = {
80
+ 'Content-Type': 'application/json',
81
+ 'Accept': 'application/json'
82
+ };
83
+ // Handle authentication
84
+ if (this.config.token) {
85
+ headers['Authorization'] = `Bearer ${this.config.token}`;
86
+ }
87
+ else if (this.config.username && this.config.password) {
88
+ headers['Authorization'] = `Bearer ${this.config.username}:${this.config.password}`;
89
+ }
90
+ const requestOptions = {
91
+ method,
92
+ headers,
93
+ };
94
+ if (data && method === 'POST') {
95
+ requestOptions.body = JSON.stringify(data);
96
+ }
97
+ try {
98
+ const response = await fetch(url, requestOptions);
99
+ if (!response.ok) {
100
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
101
+ }
102
+ const result = await response.json();
103
+ if (result.code !== 0 && result.code !== 200) {
104
+ throw new Error(`Milvus API error: ${result.message || 'Unknown error'}`);
105
+ }
106
+ return result;
107
+ }
108
+ catch (error) {
109
+ console.error(`Milvus REST API request failed:`, error);
110
+ throw error;
111
+ }
112
+ }
113
+ async createCollection(collectionName, dimension, description) {
114
+ await this.ensureInitialized();
115
+ try {
116
+ const restfulConfig = this.config;
117
+ // Build collection schema based on the original milvus-vectordb.ts implementation
118
+ // Note: REST API doesn't support description parameter in collection creation
119
+ // Unlike gRPC version, the description parameter is ignored in REST API
120
+ const collectionSchema = {
121
+ collectionName,
122
+ dbName: restfulConfig.database,
123
+ schema: {
124
+ enableDynamicField: false,
125
+ fields: [
126
+ {
127
+ fieldName: "id",
128
+ dataType: "VarChar",
129
+ isPrimary: true,
130
+ elementTypeParams: {
131
+ max_length: 512
132
+ }
133
+ },
134
+ {
135
+ fieldName: "vector",
136
+ dataType: "FloatVector",
137
+ elementTypeParams: {
138
+ dim: dimension
139
+ }
140
+ },
141
+ {
142
+ fieldName: "content",
143
+ dataType: "VarChar",
144
+ elementTypeParams: {
145
+ max_length: 65535
146
+ }
147
+ },
148
+ {
149
+ fieldName: "relativePath",
150
+ dataType: "VarChar",
151
+ elementTypeParams: {
152
+ max_length: 1024
153
+ }
154
+ },
155
+ {
156
+ fieldName: "startLine",
157
+ dataType: "Int64"
158
+ },
159
+ {
160
+ fieldName: "endLine",
161
+ dataType: "Int64"
162
+ },
163
+ {
164
+ fieldName: "fileExtension",
165
+ dataType: "VarChar",
166
+ elementTypeParams: {
167
+ max_length: 32
168
+ }
169
+ },
170
+ {
171
+ fieldName: "metadata",
172
+ dataType: "VarChar",
173
+ elementTypeParams: {
174
+ max_length: 65535
175
+ }
176
+ }
177
+ ]
178
+ }
179
+ };
180
+ // Step 1: Create collection with schema
181
+ await createCollectionWithLimitCheck(this.makeRequest.bind(this), collectionSchema);
182
+ // Step 2: Create index for vector field (separate API call)
183
+ await this.createIndex(collectionName);
184
+ // Step 3: Load collection to memory for searching
185
+ await this.loadCollection(collectionName);
186
+ }
187
+ catch (error) {
188
+ console.error(`❌ Failed to create collection '${collectionName}':`, error);
189
+ throw error;
190
+ }
191
+ }
192
+ /**
193
+ * Create index for vector field using the Index Create API
194
+ */
195
+ async createIndex(collectionName) {
196
+ try {
197
+ const restfulConfig = this.config;
198
+ const indexParams = {
199
+ collectionName,
200
+ dbName: restfulConfig.database,
201
+ indexParams: [
202
+ {
203
+ fieldName: "vector",
204
+ indexName: "vector_index",
205
+ metricType: "COSINE",
206
+ index_type: "AUTOINDEX"
207
+ }
208
+ ]
209
+ };
210
+ await this.makeRequest('/indexes/create', 'POST', indexParams);
211
+ }
212
+ catch (error) {
213
+ console.error(`❌ Failed to create index for collection '${collectionName}':`, error);
214
+ throw error;
215
+ }
216
+ }
217
+ /**
218
+ * Load collection to memory for searching
219
+ */
220
+ async loadCollection(collectionName) {
221
+ try {
222
+ const restfulConfig = this.config;
223
+ await this.makeRequest('/collections/load', 'POST', {
224
+ collectionName,
225
+ dbName: restfulConfig.database
226
+ });
227
+ }
228
+ catch (error) {
229
+ console.error(`❌ Failed to load collection '${collectionName}':`, error);
230
+ throw error;
231
+ }
232
+ }
233
+ async dropCollection(collectionName) {
234
+ await this.ensureInitialized();
235
+ try {
236
+ const restfulConfig = this.config;
237
+ await this.makeRequest('/collections/drop', 'POST', {
238
+ collectionName,
239
+ dbName: restfulConfig.database
240
+ });
241
+ }
242
+ catch (error) {
243
+ console.error(`❌ Failed to drop collection '${collectionName}':`, error);
244
+ throw error;
245
+ }
246
+ }
247
+ async hasCollection(collectionName) {
248
+ await this.ensureInitialized();
249
+ try {
250
+ const restfulConfig = this.config;
251
+ const response = await this.makeRequest('/collections/has', 'POST', {
252
+ collectionName,
253
+ dbName: restfulConfig.database
254
+ });
255
+ const exists = response.data?.has || false;
256
+ return exists;
257
+ }
258
+ catch (error) {
259
+ console.error(`❌ Failed to check collection '${collectionName}' existence:`, error);
260
+ throw error;
261
+ }
262
+ }
263
+ async listCollections() {
264
+ await this.ensureInitialized();
265
+ try {
266
+ const restfulConfig = this.config;
267
+ const response = await this.makeRequest('/collections/list', 'POST', {
268
+ dbName: restfulConfig.database
269
+ });
270
+ return response.data || [];
271
+ }
272
+ catch (error) {
273
+ console.error(`❌ Failed to list collections:`, error);
274
+ throw error;
275
+ }
276
+ }
277
+ async insert(collectionName, documents) {
278
+ await this.ensureInitialized();
279
+ try {
280
+ const restfulConfig = this.config;
281
+ // Transform VectorDocument array to Milvus entity format
282
+ const data = documents.map(doc => ({
283
+ id: doc.id,
284
+ vector: doc.vector,
285
+ content: doc.content,
286
+ relativePath: doc.relativePath,
287
+ startLine: doc.startLine,
288
+ endLine: doc.endLine,
289
+ fileExtension: doc.fileExtension,
290
+ metadata: JSON.stringify(doc.metadata) // Convert metadata object to JSON string
291
+ }));
292
+ const insertRequest = {
293
+ collectionName,
294
+ data,
295
+ dbName: restfulConfig.database
296
+ };
297
+ await this.makeRequest('/entities/insert', 'POST', insertRequest);
298
+ }
299
+ catch (error) {
300
+ console.error(`❌ Failed to insert documents into collection '${collectionName}':`, error);
301
+ throw error;
302
+ }
303
+ }
304
+ async search(collectionName, queryVector, options) {
305
+ await this.ensureInitialized();
306
+ const topK = options?.topK || 10;
307
+ try {
308
+ const restfulConfig = this.config;
309
+ // Build search request according to Milvus REST API specification
310
+ const searchRequest = {
311
+ collectionName,
312
+ dbName: restfulConfig.database,
313
+ data: [queryVector], // Array of query vectors
314
+ annsField: "vector", // Vector field name
315
+ limit: topK,
316
+ outputFields: [
317
+ "content",
318
+ "relativePath",
319
+ "startLine",
320
+ "endLine",
321
+ "fileExtension",
322
+ "metadata"
323
+ ],
324
+ searchParams: {
325
+ metricType: "COSINE", // Match the index metric type
326
+ params: {}
327
+ }
328
+ };
329
+ const response = await this.makeRequest('/entities/search', 'POST', searchRequest);
330
+ // Transform response to VectorSearchResult format
331
+ const results = (response.data || []).map((item) => {
332
+ // Parse metadata from JSON string
333
+ let metadata = {};
334
+ try {
335
+ metadata = JSON.parse(item.metadata || '{}');
336
+ }
337
+ catch (error) {
338
+ console.warn(`Failed to parse metadata for item ${item.id}:`, error);
339
+ metadata = {};
340
+ }
341
+ return {
342
+ document: {
343
+ id: item.id?.toString() || '',
344
+ vector: queryVector, // Vector not returned in search results
345
+ content: item.content || '',
346
+ relativePath: item.relativePath || '',
347
+ startLine: item.startLine || 0,
348
+ endLine: item.endLine || 0,
349
+ fileExtension: item.fileExtension || '',
350
+ metadata: metadata
351
+ },
352
+ score: item.distance || 0
353
+ };
354
+ });
355
+ return results;
356
+ }
357
+ catch (error) {
358
+ console.error(`❌ Failed to search in collection '${collectionName}':`, error);
359
+ throw error;
360
+ }
361
+ }
362
+ async delete(collectionName, ids) {
363
+ await this.ensureInitialized();
364
+ try {
365
+ const restfulConfig = this.config;
366
+ // Build filter expression for deleting by IDs
367
+ // Format: id in ["id1", "id2", "id3"]
368
+ const filter = `id in [${ids.map(id => `"${id}"`).join(', ')}]`;
369
+ const deleteRequest = {
370
+ collectionName,
371
+ filter,
372
+ dbName: restfulConfig.database
373
+ };
374
+ await this.makeRequest('/entities/delete', 'POST', deleteRequest);
375
+ }
376
+ catch (error) {
377
+ console.error(`❌ Failed to delete documents from collection '${collectionName}':`, error);
378
+ throw error;
379
+ }
380
+ }
381
+ async query(collectionName, filter, outputFields, limit) {
382
+ await this.ensureInitialized();
383
+ try {
384
+ const restfulConfig = this.config;
385
+ const queryRequest = {
386
+ collectionName,
387
+ dbName: restfulConfig.database,
388
+ filter,
389
+ outputFields,
390
+ limit: limit || 16384, // Use provided limit or default
391
+ offset: 0
392
+ };
393
+ const response = await this.makeRequest('/entities/query', 'POST', queryRequest);
394
+ if (response.code !== 0) {
395
+ throw new Error(`Failed to query Milvus: ${response.message || 'Unknown error'}`);
396
+ }
397
+ return response.data || [];
398
+ }
399
+ catch (error) {
400
+ console.error(`❌ Failed to query collection '${collectionName}':`, error);
401
+ throw error;
402
+ }
403
+ }
404
+ }
405
+ exports.MilvusRestfulVectorDatabase = MilvusRestfulVectorDatabase;
406
+ //# sourceMappingURL=milvus-restful-vectordb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"milvus-restful-vectordb.js","sourceRoot":"","sources":["../../src/vectordb/milvus-restful-vectordb.ts"],"names":[],"mappings":"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"}