@pleaseai/context-please-core 0.1.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 +24 -0
- package/README.md +287 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/context.d.ts +276 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +1072 -0
- package/dist/context.js.map +1 -0
- package/dist/embedding/base-embedding.d.ts +51 -0
- package/dist/embedding/base-embedding.d.ts.map +1 -0
- package/dist/embedding/base-embedding.js +36 -0
- package/dist/embedding/base-embedding.js.map +1 -0
- package/dist/embedding/gemini-embedding.d.ts +53 -0
- package/dist/embedding/gemini-embedding.d.ts.map +1 -0
- package/dist/embedding/gemini-embedding.js +152 -0
- package/dist/embedding/gemini-embedding.js.map +1 -0
- package/dist/embedding/index.d.ts +6 -0
- package/dist/embedding/index.d.ts.map +1 -0
- package/dist/embedding/index.js +24 -0
- package/dist/embedding/index.js.map +1 -0
- package/dist/embedding/ollama-embedding.d.ts +55 -0
- package/dist/embedding/ollama-embedding.d.ts.map +1 -0
- package/dist/embedding/ollama-embedding.js +192 -0
- package/dist/embedding/ollama-embedding.js.map +1 -0
- package/dist/embedding/openai-embedding.d.ts +36 -0
- package/dist/embedding/openai-embedding.d.ts.map +1 -0
- package/dist/embedding/openai-embedding.js +159 -0
- package/dist/embedding/openai-embedding.js.map +1 -0
- package/dist/embedding/voyageai-embedding.d.ts +44 -0
- package/dist/embedding/voyageai-embedding.d.ts.map +1 -0
- package/dist/embedding/voyageai-embedding.js +227 -0
- package/dist/embedding/voyageai-embedding.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/splitter/ast-splitter.d.ts +22 -0
- package/dist/splitter/ast-splitter.d.ts.map +1 -0
- package/dist/splitter/ast-splitter.js +234 -0
- package/dist/splitter/ast-splitter.js.map +1 -0
- package/dist/splitter/index.d.ts +41 -0
- package/dist/splitter/index.d.ts.map +1 -0
- package/dist/splitter/index.js +27 -0
- package/dist/splitter/index.js.map +1 -0
- package/dist/splitter/langchain-splitter.d.ts +13 -0
- package/dist/splitter/langchain-splitter.d.ts.map +1 -0
- package/dist/splitter/langchain-splitter.js +118 -0
- package/dist/splitter/langchain-splitter.js.map +1 -0
- package/dist/sync/merkle.d.ts +26 -0
- package/dist/sync/merkle.d.ts.map +1 -0
- package/dist/sync/merkle.js +112 -0
- package/dist/sync/merkle.js.map +1 -0
- package/dist/sync/synchronizer.d.ts +30 -0
- package/dist/sync/synchronizer.d.ts.map +1 -0
- package/dist/sync/synchronizer.js +339 -0
- package/dist/sync/synchronizer.js.map +1 -0
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/env-manager.d.ts +19 -0
- package/dist/utils/env-manager.d.ts.map +1 -0
- package/dist/utils/env-manager.js +125 -0
- package/dist/utils/env-manager.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/vectordb/base/base-vector-database.d.ts +58 -0
- package/dist/vectordb/base/base-vector-database.d.ts.map +1 -0
- package/dist/vectordb/base/base-vector-database.js +32 -0
- package/dist/vectordb/base/base-vector-database.js.map +1 -0
- package/dist/vectordb/factory.d.ts +80 -0
- package/dist/vectordb/factory.d.ts.map +1 -0
- package/dist/vectordb/factory.js +89 -0
- package/dist/vectordb/factory.js.map +1 -0
- package/dist/vectordb/index.d.ts +12 -0
- package/dist/vectordb/index.d.ts.map +1 -0
- package/dist/vectordb/index.js +27 -0
- package/dist/vectordb/index.js.map +1 -0
- package/dist/vectordb/milvus-restful-vectordb.d.ts +75 -0
- package/dist/vectordb/milvus-restful-vectordb.d.ts.map +1 -0
- package/dist/vectordb/milvus-restful-vectordb.js +707 -0
- package/dist/vectordb/milvus-restful-vectordb.js.map +1 -0
- package/dist/vectordb/milvus-vectordb.d.ts +59 -0
- package/dist/vectordb/milvus-vectordb.d.ts.map +1 -0
- package/dist/vectordb/milvus-vectordb.js +641 -0
- package/dist/vectordb/milvus-vectordb.js.map +1 -0
- package/dist/vectordb/qdrant-vectordb.d.ts +124 -0
- package/dist/vectordb/qdrant-vectordb.d.ts.map +1 -0
- package/dist/vectordb/qdrant-vectordb.js +582 -0
- package/dist/vectordb/qdrant-vectordb.js.map +1 -0
- package/dist/vectordb/sparse/index.d.ts +4 -0
- package/dist/vectordb/sparse/index.d.ts.map +1 -0
- package/dist/vectordb/sparse/index.js +23 -0
- package/dist/vectordb/sparse/index.js.map +1 -0
- package/dist/vectordb/sparse/simple-bm25.d.ts +104 -0
- package/dist/vectordb/sparse/simple-bm25.d.ts.map +1 -0
- package/dist/vectordb/sparse/simple-bm25.js +189 -0
- package/dist/vectordb/sparse/simple-bm25.js.map +1 -0
- package/dist/vectordb/sparse/sparse-vector-generator.d.ts +54 -0
- package/dist/vectordb/sparse/sparse-vector-generator.d.ts.map +1 -0
- package/dist/vectordb/sparse/sparse-vector-generator.js +3 -0
- package/dist/vectordb/sparse/sparse-vector-generator.js.map +1 -0
- package/dist/vectordb/sparse/types.d.ts +38 -0
- package/dist/vectordb/sparse/types.d.ts.map +1 -0
- package/dist/vectordb/sparse/types.js +3 -0
- package/dist/vectordb/sparse/types.js.map +1 -0
- package/dist/vectordb/types.d.ts +120 -0
- package/dist/vectordb/types.d.ts.map +1 -0
- package/dist/vectordb/types.js +9 -0
- package/dist/vectordb/types.js.map +1 -0
- package/dist/vectordb/zilliz-utils.d.ts +135 -0
- package/dist/vectordb/zilliz-utils.d.ts.map +1 -0
- package/dist/vectordb/zilliz-utils.js +192 -0
- package/dist/vectordb/zilliz-utils.js.map +1 -0
- package/package.json +61 -0
@@ -0,0 +1,135 @@
|
|
1
|
+
export interface ZillizConfig {
|
2
|
+
baseUrl?: string;
|
3
|
+
token?: string;
|
4
|
+
}
|
5
|
+
export interface Project {
|
6
|
+
projectId: string;
|
7
|
+
projectName: string;
|
8
|
+
instanceCount: number;
|
9
|
+
createTime: string;
|
10
|
+
}
|
11
|
+
export interface Cluster {
|
12
|
+
clusterId: string;
|
13
|
+
clusterName: string;
|
14
|
+
description: string;
|
15
|
+
regionId: string;
|
16
|
+
plan: string;
|
17
|
+
cuType: string;
|
18
|
+
cuSize: number;
|
19
|
+
status: string;
|
20
|
+
connectAddress: string;
|
21
|
+
privateLinkAddress: string;
|
22
|
+
projectId: string;
|
23
|
+
createTime: string;
|
24
|
+
}
|
25
|
+
export interface CreateFreeClusterRequest {
|
26
|
+
clusterName: string;
|
27
|
+
projectId: string;
|
28
|
+
regionId: string;
|
29
|
+
}
|
30
|
+
export interface CreateFreeClusterResponse {
|
31
|
+
clusterId: string;
|
32
|
+
username: string;
|
33
|
+
password: string;
|
34
|
+
prompt: string;
|
35
|
+
}
|
36
|
+
export interface CreateFreeClusterWithDetailsResponse extends CreateFreeClusterResponse {
|
37
|
+
clusterDetails: DescribeClusterResponse;
|
38
|
+
}
|
39
|
+
export interface ListProjectsResponse {
|
40
|
+
code: number;
|
41
|
+
data: Project[];
|
42
|
+
}
|
43
|
+
export interface ListClustersResponse {
|
44
|
+
code: number;
|
45
|
+
data: {
|
46
|
+
count: number;
|
47
|
+
currentPage: number;
|
48
|
+
pageSize: number;
|
49
|
+
clusters: Cluster[];
|
50
|
+
};
|
51
|
+
}
|
52
|
+
export interface CreateFreeClusterApiResponse {
|
53
|
+
code: number;
|
54
|
+
data: CreateFreeClusterResponse;
|
55
|
+
}
|
56
|
+
export interface DescribeClusterResponse {
|
57
|
+
clusterId: string;
|
58
|
+
clusterName: string;
|
59
|
+
projectId: string;
|
60
|
+
description: string;
|
61
|
+
regionId: string;
|
62
|
+
cuType: string;
|
63
|
+
plan: string;
|
64
|
+
status: string;
|
65
|
+
connectAddress: string;
|
66
|
+
privateLinkAddress: string;
|
67
|
+
createTime: string;
|
68
|
+
cuSize: number;
|
69
|
+
storageSize: number;
|
70
|
+
snapshotNumber: number;
|
71
|
+
createProgress: number;
|
72
|
+
}
|
73
|
+
export interface DescribeClusterApiResponse {
|
74
|
+
code: number;
|
75
|
+
data: DescribeClusterResponse;
|
76
|
+
}
|
77
|
+
export interface ErrorResponse {
|
78
|
+
code: number;
|
79
|
+
message: string;
|
80
|
+
}
|
81
|
+
/**
|
82
|
+
* Zilliz Cloud cluster manager
|
83
|
+
* For managing Zilliz Cloud projects and clusters
|
84
|
+
* See https://docs.zilliz.com/reference/restful/list-clusters-v2 for more details
|
85
|
+
*/
|
86
|
+
export declare class ClusterManager {
|
87
|
+
private baseUrl;
|
88
|
+
private token;
|
89
|
+
constructor(config?: ZillizConfig);
|
90
|
+
/**
|
91
|
+
* Generic method for sending HTTP requests
|
92
|
+
*/
|
93
|
+
private makeRequest;
|
94
|
+
/**
|
95
|
+
* List all projects
|
96
|
+
* @returns List of projects
|
97
|
+
*/
|
98
|
+
listProjects(): Promise<Project[]>;
|
99
|
+
/**
|
100
|
+
* List all clusters
|
101
|
+
* @param projectId Optional project ID filter
|
102
|
+
* @param pageSize Page size, default 10
|
103
|
+
* @param currentPage Current page number, default 1
|
104
|
+
* @returns Cluster list with pagination info
|
105
|
+
*/
|
106
|
+
listClusters(projectId?: string, pageSize?: number, currentPage?: number): Promise<{
|
107
|
+
clusters: Cluster[];
|
108
|
+
count: number;
|
109
|
+
currentPage: number;
|
110
|
+
pageSize: number;
|
111
|
+
}>;
|
112
|
+
/**
|
113
|
+
* Describe cluster details
|
114
|
+
* @param clusterId Cluster ID to describe
|
115
|
+
* @returns Cluster details
|
116
|
+
*/
|
117
|
+
describeCluster(clusterId: string): Promise<DescribeClusterResponse>;
|
118
|
+
/**
|
119
|
+
* Create free cluster and wait for it to be ready
|
120
|
+
* @param request Request parameters for creating cluster
|
121
|
+
* @param timeoutMs Timeout in milliseconds, default 5 minutes
|
122
|
+
* @param pollIntervalMs Polling interval in milliseconds, default 5 seconds
|
123
|
+
* @returns Creation result including cluster ID, username, password and cluster details
|
124
|
+
*/
|
125
|
+
createFreeCluster(request: CreateFreeClusterRequest, timeoutMs?: number, // 5 minutes default
|
126
|
+
pollIntervalMs?: number): Promise<CreateFreeClusterWithDetailsResponse>;
|
127
|
+
/**
|
128
|
+
* Static utility method to get address from token using Zilliz Cloud API
|
129
|
+
* This method will find or create a cluster and return its connect address
|
130
|
+
* @param token Zilliz Cloud API token
|
131
|
+
* @returns Connect address for the cluster
|
132
|
+
*/
|
133
|
+
static getAddressFromToken(token?: string): Promise<string>;
|
134
|
+
}
|
135
|
+
//# sourceMappingURL=zilliz-utils.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"zilliz-utils.d.ts","sourceRoot":"","sources":["../../src/vectordb/zilliz-utils.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oCAAqC,SAAQ,yBAAyB;IACnF,cAAc,EAAE,uBAAuB,CAAC;CAC3C;AAED,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QACF,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,OAAO,EAAE,CAAC;KACvB,CAAC;CACL;AAED,MAAM,WAAW,4BAA4B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,yBAAyB,CAAC;CACnC;AAED,MAAM,WAAW,uBAAuB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,uBAAuB,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,CAAC,EAAE,YAAY;IAUjC;;OAEG;YACW,WAAW;IA4CzB;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAUxC;;;;;;OAMG;IACG,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,EAAE,WAAW,GAAE,MAAU,GAAG,OAAO,CAAC;QAC5F,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC;IAeF;;;;GAID;IACO,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAU1E;;;;;;GAMD;IACO,iBAAiB,CACnB,OAAO,EAAE,wBAAwB,EACjC,SAAS,GAAE,MAAsB,EAAE,oBAAoB;IACvD,cAAc,GAAE,MAAiB,GAClC,OAAO,CAAC,oCAAoC,CAAC;IA4ChD;;;;;OAKG;WACU,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAwCpE"}
|
@@ -0,0 +1,192 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ClusterManager = void 0;
|
4
|
+
const env_manager_1 = require("../utils/env-manager");
|
5
|
+
/**
|
6
|
+
* Zilliz Cloud cluster manager
|
7
|
+
* For managing Zilliz Cloud projects and clusters
|
8
|
+
* See https://docs.zilliz.com/reference/restful/list-clusters-v2 for more details
|
9
|
+
*/
|
10
|
+
class ClusterManager {
|
11
|
+
constructor(config) {
|
12
|
+
// Get from environment variables first, otherwise use passed configuration
|
13
|
+
this.baseUrl = env_manager_1.envManager.get('ZILLIZ_BASE_URL') || config?.baseUrl || 'https://api.cloud.zilliz.com';
|
14
|
+
this.token = env_manager_1.envManager.get('MILVUS_TOKEN') || config?.token || '';
|
15
|
+
if (!this.token) {
|
16
|
+
throw new Error('Zilliz API token is required. Please provide it via MILVUS_TOKEN environment variable or config parameter.');
|
17
|
+
}
|
18
|
+
}
|
19
|
+
/**
|
20
|
+
* Generic method for sending HTTP requests
|
21
|
+
*/
|
22
|
+
async makeRequest(endpoint, method = 'GET', data) {
|
23
|
+
const url = `${this.baseUrl}${endpoint}`;
|
24
|
+
const headers = {
|
25
|
+
'Authorization': `Bearer ${this.token}`,
|
26
|
+
'Accept': 'application/json',
|
27
|
+
'Content-Type': 'application/json',
|
28
|
+
};
|
29
|
+
const options = {
|
30
|
+
method,
|
31
|
+
headers,
|
32
|
+
};
|
33
|
+
if (data && method === 'POST') {
|
34
|
+
options.body = JSON.stringify(data);
|
35
|
+
}
|
36
|
+
try {
|
37
|
+
const response = await fetch(url, options);
|
38
|
+
if (!response.ok) {
|
39
|
+
const errorText = await response.text();
|
40
|
+
let errorMessage;
|
41
|
+
try {
|
42
|
+
const errorJson = JSON.parse(errorText);
|
43
|
+
errorMessage = errorJson.message || `HTTP ${response.status}: ${response.statusText}`;
|
44
|
+
}
|
45
|
+
catch {
|
46
|
+
errorMessage = `HTTP ${response.status}: ${response.statusText}`;
|
47
|
+
}
|
48
|
+
throw new Error(errorMessage);
|
49
|
+
}
|
50
|
+
const result = await response.json();
|
51
|
+
return result;
|
52
|
+
}
|
53
|
+
catch (error) {
|
54
|
+
// Log the original error for more details, especially for fetch errors
|
55
|
+
console.error('[ZillizUtils] ❌ Original error in makeRequest:', error);
|
56
|
+
throw new Error(`Zilliz API request failed: ${error.message}`);
|
57
|
+
}
|
58
|
+
}
|
59
|
+
/**
|
60
|
+
* List all projects
|
61
|
+
* @returns List of projects
|
62
|
+
*/
|
63
|
+
async listProjects() {
|
64
|
+
const response = await this.makeRequest('/v2/projects');
|
65
|
+
if (response.code !== 0) {
|
66
|
+
throw new Error(`Failed to list projects: ${JSON.stringify(response)}`);
|
67
|
+
}
|
68
|
+
return response.data;
|
69
|
+
}
|
70
|
+
/**
|
71
|
+
* List all clusters
|
72
|
+
* @param projectId Optional project ID filter
|
73
|
+
* @param pageSize Page size, default 10
|
74
|
+
* @param currentPage Current page number, default 1
|
75
|
+
* @returns Cluster list with pagination info
|
76
|
+
*/
|
77
|
+
async listClusters(projectId, pageSize = 10, currentPage = 1) {
|
78
|
+
let endpoint = `/v2/clusters?pageSize=${pageSize}¤tPage=${currentPage}`;
|
79
|
+
if (projectId) {
|
80
|
+
endpoint += `&projectId=${projectId}`;
|
81
|
+
}
|
82
|
+
const response = await this.makeRequest(endpoint);
|
83
|
+
if (response.code !== 0) {
|
84
|
+
throw new Error(`Failed to list clusters: ${JSON.stringify(response)}`);
|
85
|
+
}
|
86
|
+
return response.data;
|
87
|
+
}
|
88
|
+
/**
|
89
|
+
* Describe cluster details
|
90
|
+
* @param clusterId Cluster ID to describe
|
91
|
+
* @returns Cluster details
|
92
|
+
*/
|
93
|
+
async describeCluster(clusterId) {
|
94
|
+
const response = await this.makeRequest(`/v2/clusters/${clusterId}`);
|
95
|
+
if (response.code !== 0) {
|
96
|
+
throw new Error(`Failed to describe cluster: ${JSON.stringify(response)}`);
|
97
|
+
}
|
98
|
+
return response.data;
|
99
|
+
}
|
100
|
+
/**
|
101
|
+
* Create free cluster and wait for it to be ready
|
102
|
+
* @param request Request parameters for creating cluster
|
103
|
+
* @param timeoutMs Timeout in milliseconds, default 5 minutes
|
104
|
+
* @param pollIntervalMs Polling interval in milliseconds, default 5 seconds
|
105
|
+
* @returns Creation result including cluster ID, username, password and cluster details
|
106
|
+
*/
|
107
|
+
async createFreeCluster(request, timeoutMs = 5 * 60 * 1000, // 5 minutes default
|
108
|
+
pollIntervalMs = 5 * 1000 // 5 seconds default
|
109
|
+
) {
|
110
|
+
// Create the cluster
|
111
|
+
const response = await this.makeRequest('/v2/clusters/createFree', 'POST', request);
|
112
|
+
if (response.code !== 0) {
|
113
|
+
throw new Error(`Failed to create free cluster: ${JSON.stringify(response)}`);
|
114
|
+
}
|
115
|
+
const { clusterId } = response.data;
|
116
|
+
const startTime = Date.now();
|
117
|
+
// Poll cluster status until it's ready or timeout
|
118
|
+
while (Date.now() - startTime < timeoutMs) {
|
119
|
+
try {
|
120
|
+
const clusterInfo = await this.describeCluster(clusterId);
|
121
|
+
if (clusterInfo.status === 'RUNNING') {
|
122
|
+
// Cluster is ready, return creation data with cluster details
|
123
|
+
return {
|
124
|
+
...response.data,
|
125
|
+
clusterDetails: clusterInfo
|
126
|
+
};
|
127
|
+
}
|
128
|
+
else if (clusterInfo.status === 'DELETED' || clusterInfo.status === 'ABNORMAL') {
|
129
|
+
// Cluster creation failed
|
130
|
+
throw new Error(`Cluster creation failed with status: ${clusterInfo.status}`);
|
131
|
+
}
|
132
|
+
// Wait before next poll
|
133
|
+
await new Promise(resolve => setTimeout(resolve, pollIntervalMs));
|
134
|
+
}
|
135
|
+
catch (error) {
|
136
|
+
// If it's a describe cluster error, continue polling
|
137
|
+
// The cluster might not be immediately available for describe
|
138
|
+
if (error.message.includes('Failed to describe cluster')) {
|
139
|
+
await new Promise(resolve => setTimeout(resolve, pollIntervalMs));
|
140
|
+
continue;
|
141
|
+
}
|
142
|
+
throw error;
|
143
|
+
}
|
144
|
+
}
|
145
|
+
// Timeout reached
|
146
|
+
throw new Error(`Timeout waiting for cluster ${clusterId} to be ready after ${timeoutMs}ms`);
|
147
|
+
}
|
148
|
+
/**
|
149
|
+
* Static utility method to get address from token using Zilliz Cloud API
|
150
|
+
* This method will find or create a cluster and return its connect address
|
151
|
+
* @param token Zilliz Cloud API token
|
152
|
+
* @returns Connect address for the cluster
|
153
|
+
*/
|
154
|
+
static async getAddressFromToken(token) {
|
155
|
+
if (!token) {
|
156
|
+
throw new Error('Token is required when address is not provided');
|
157
|
+
}
|
158
|
+
try {
|
159
|
+
const clusterManager = new ClusterManager({ token });
|
160
|
+
// Get Default Project ID
|
161
|
+
const projects = await clusterManager.listProjects();
|
162
|
+
const defaultProject = projects.find(p => p.projectName === 'Default Project');
|
163
|
+
if (!defaultProject) {
|
164
|
+
throw new Error('Default Project not found');
|
165
|
+
}
|
166
|
+
// List clusters in the default project
|
167
|
+
const clustersResponse = await clusterManager.listClusters(defaultProject.projectId);
|
168
|
+
if (clustersResponse.clusters.length > 0) {
|
169
|
+
// Use the first available cluster
|
170
|
+
const cluster = clustersResponse.clusters[0];
|
171
|
+
console.log(`🎯 Using existing cluster: ${cluster.clusterName} (${cluster.clusterId})`);
|
172
|
+
return cluster.connectAddress;
|
173
|
+
}
|
174
|
+
else {
|
175
|
+
// No clusters found, create a free cluster
|
176
|
+
console.log('📝 No clusters found, creating a new free cluster...');
|
177
|
+
const createResponse = await clusterManager.createFreeCluster({
|
178
|
+
clusterName: `auto-cluster-${Date.now()}`,
|
179
|
+
projectId: defaultProject.projectId,
|
180
|
+
regionId: 'gcp-us-west1' // Default region
|
181
|
+
});
|
182
|
+
console.log(`[ZillizUtils] ✅ Created new cluster: ${createResponse.clusterId}`);
|
183
|
+
return createResponse.clusterDetails.connectAddress;
|
184
|
+
}
|
185
|
+
}
|
186
|
+
catch (error) {
|
187
|
+
throw new Error(`Failed to get address from token: ${error.message}`);
|
188
|
+
}
|
189
|
+
}
|
190
|
+
}
|
191
|
+
exports.ClusterManager = ClusterManager;
|
192
|
+
//# sourceMappingURL=zilliz-utils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"zilliz-utils.js","sourceRoot":"","sources":["../../src/vectordb/zilliz-utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
{
|
2
|
+
"name": "@pleaseai/context-please-core",
|
3
|
+
"version": "0.1.0",
|
4
|
+
"description": "Core indexing engine for Context Please (fork of claude-context-core)",
|
5
|
+
"main": "dist/index.js",
|
6
|
+
"types": "dist/index.d.ts",
|
7
|
+
"dependencies": {
|
8
|
+
"@google/genai": "^1.9.0",
|
9
|
+
"@qdrant/js-client-grpc": "^1.15.1",
|
10
|
+
"@zilliz/milvus2-sdk-node": "^2.5.10",
|
11
|
+
"faiss-node": "^0.5.1",
|
12
|
+
"fs-extra": "^11.0.0",
|
13
|
+
"glob": "^10.0.0",
|
14
|
+
"langchain": "^0.3.27",
|
15
|
+
"ollama": "^0.5.16",
|
16
|
+
"openai": "^5.1.1",
|
17
|
+
"tree-sitter": "^0.21.1",
|
18
|
+
"tree-sitter-c-sharp": "^0.21.0",
|
19
|
+
"tree-sitter-cpp": "^0.22.0",
|
20
|
+
"tree-sitter-go": "^0.21.0",
|
21
|
+
"tree-sitter-java": "^0.21.0",
|
22
|
+
"tree-sitter-javascript": "^0.21.0",
|
23
|
+
"tree-sitter-python": "^0.21.0",
|
24
|
+
"tree-sitter-rust": "^0.21.0",
|
25
|
+
"tree-sitter-scala": "^0.24.0",
|
26
|
+
"tree-sitter-typescript": "^0.21.0",
|
27
|
+
"typescript": "^5.0.0",
|
28
|
+
"voyageai": "^0.0.4"
|
29
|
+
},
|
30
|
+
"devDependencies": {
|
31
|
+
"@types/fs-extra": "^11.0.0",
|
32
|
+
"@types/node": "^20.0.0",
|
33
|
+
"@vitest/coverage-v8": "^2.1.8",
|
34
|
+
"memfs": "^4.14.0",
|
35
|
+
"vitest": "^2.1.8"
|
36
|
+
},
|
37
|
+
"files": [
|
38
|
+
"dist",
|
39
|
+
"README.md"
|
40
|
+
],
|
41
|
+
"repository": {
|
42
|
+
"type": "git",
|
43
|
+
"url": "https://github.com/pleaseai/context-please.git",
|
44
|
+
"directory": "packages/core"
|
45
|
+
},
|
46
|
+
"license": "MIT",
|
47
|
+
"publishConfig": {
|
48
|
+
"access": "public"
|
49
|
+
},
|
50
|
+
"scripts": {
|
51
|
+
"build": "pnpm clean && tsc --build --force",
|
52
|
+
"dev": "tsc --watch",
|
53
|
+
"clean": "rimraf dist",
|
54
|
+
"lint": "eslint src --ext .ts",
|
55
|
+
"lint:fix": "eslint src --ext .ts --fix",
|
56
|
+
"typecheck": "tsc --noEmit",
|
57
|
+
"test": "vitest run",
|
58
|
+
"test:watch": "vitest",
|
59
|
+
"test:coverage": "vitest run --coverage"
|
60
|
+
}
|
61
|
+
}
|