@mastra/pg 0.1.6-alpha.1 → 0.1.6-alpha.3

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.
@@ -1,18 +1,23 @@
1
1
 
2
- > @mastra/pg@0.1.6-alpha.1 build /home/runner/work/mastra/mastra/stores/pg
3
- > tsup src/index.ts --format esm --experimental-dts --clean --treeshake
2
+ > @mastra/pg@0.1.6-alpha.3 build /home/runner/work/mastra/mastra/stores/pg
3
+ > tsup src/index.ts --format esm,cjs --experimental-dts --clean --treeshake
4
4
 
5
5
  CLI Building entry: src/index.ts
6
6
  CLI Using tsconfig: tsconfig.json
7
7
  CLI tsup v8.3.6
8
8
  TSC Build start
9
- TSC ⚡️ Build success in 10385ms
9
+ TSC ⚡️ Build success in 11801ms
10
10
  DTS Build start
11
11
  CLI Target: es2022
12
12
  Analysis will use the bundled TypeScript version 5.7.3
13
13
  Writing package typings: /home/runner/work/mastra/mastra/stores/pg/dist/_tsup-dts-rollup.d.ts
14
- DTS ⚡️ Build success in 5525ms
14
+ Analysis will use the bundled TypeScript version 5.7.3
15
+ Writing package typings: /home/runner/work/mastra/mastra/stores/pg/dist/_tsup-dts-rollup.d.cts
16
+ DTS ⚡️ Build success in 12369ms
15
17
  CLI Cleaning output folder
16
18
  ESM Build start
17
- ESM dist/index.js 32.82 KB
18
- ESM ⚡️ Build success in 642ms
19
+ CJS Build start
20
+ ESM dist/index.js 33.20 KB
21
+ ESM ⚡️ Build success in 1143ms
22
+ CJS dist/index.cjs 33.60 KB
23
+ CJS ⚡️ Build success in 1147ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # @mastra/pg
2
2
 
3
+ ## 0.1.6-alpha.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 0fd78ac: Update vector store functions to use object params
8
+ - fd14a3f: Updating filter location from @mastra/core/filter to @mastra/core/vector/filter
9
+ - 4d4e1e1: Updated vector tests and pinecone
10
+ - bb4f447: Add support for commonjs
11
+ - Updated dependencies [0fd78ac]
12
+ - Updated dependencies [0d25b75]
13
+ - Updated dependencies [fd14a3f]
14
+ - Updated dependencies [3f369a2]
15
+ - Updated dependencies [4d4e1e1]
16
+ - Updated dependencies [bb4f447]
17
+ - @mastra/core@0.4.3-alpha.3
18
+
19
+ ## 0.1.6-alpha.2
20
+
21
+ ### Patch Changes
22
+
23
+ - 5325d6a: A bug fix earlier today unmasked that the next/prev settings for PG semantic recall were swapped
24
+ - Updated dependencies [2512a93]
25
+ - Updated dependencies [e62de74]
26
+ - @mastra/core@0.4.3-alpha.2
27
+
3
28
  ## 0.1.6-alpha.1
4
29
 
5
30
  ### Patch Changes
package/README.md CHANGED
@@ -23,24 +23,28 @@ import { PgVector } from '@mastra/pg';
23
23
  const vectorStore = new PgVector('postgresql://user:pass@localhost:5432/db');
24
24
 
25
25
  // Create a new table with vector support
26
- await vectorStore.createIndex('my_vectors', 1536, 'cosine');
26
+ await vectorStore.createIndex({
27
+ indexName: 'my_vectors',
28
+ dimension: 1536,
29
+ metric: 'cosine',
30
+ });
27
31
 
28
32
  // Add vectors
29
- const ids = await vectorStore.upsert(
30
- 'my_vectors',
31
- [[0.1, 0.2, ...], [0.3, 0.4, ...]],
32
- [{ text: 'doc1' }, { text: 'doc2' }]
33
- );
33
+ const ids = await vectorStore.upsert({
34
+ indexName: 'my_vectors',
35
+ vectors: [[0.1, 0.2, ...], [0.3, 0.4, ...]],
36
+ metadata: [{ text: 'doc1' }, { text: 'doc2' }],
37
+ });
34
38
 
35
39
  // Query vectors
36
- const results = await vectorStore.query(
37
- 'my_vectors',
38
- [0.1, 0.2, ...],
39
- 10, // topK
40
- { text: 'doc1' }, // filter
41
- false, // includeVector
42
- 0.5 // minScore
43
- );
40
+ const results = await vectorStore.query({
41
+ indexName: 'my_vectors',
42
+ queryVector: [0.1, 0.2, ...],
43
+ topK: 10, // topK
44
+ filter: { text: 'doc1' }, // filter
45
+ includeVector: false, // includeVector
46
+ minScore: 0.5, // minScore
47
+ });
44
48
 
45
49
  // Clean up
46
50
  await vectorStore.disconnect();
@@ -137,9 +141,10 @@ Example filter:
137
141
 
138
142
  ## Vector Store Methods
139
143
 
140
- - `createIndex(indexName, dimension, metric?)`: Create a new table with vector support
141
- - `upsert(indexName, vectors, metadata?, ids?)`: Add or update vectors
142
- - `query(indexName, queryVector, topK?, filter?, includeVector?, minScore?)`: Search for similar vectors
144
+ - `createIndex({indexName, dimension, metric?, indexConfig?, defineIndex?})`: Create a new table with vector support
145
+ - `upsert({indexName, vectors, metadata?, ids?})`: Add or update vectors
146
+ - `query({indexName, queryVector, topK?, filter?, includeVector?, minScore?})`: Search for similar vectors
147
+ - `defineIndex({indexName, metric?, indexConfig?})`: Define an index
143
148
  - `listIndexes()`: List all vector-enabled tables
144
149
  - `describeIndex(indexName)`: Get table statistics
145
150
  - `deleteIndex(indexName)`: Delete a table
@@ -0,0 +1,329 @@
1
+ import type { ArrayOperator } from '@mastra/core/vector/filter';
2
+ import { BaseFilterTranslator } from '@mastra/core/vector/filter';
3
+ import type { BasicOperator } from '@mastra/core/vector/filter';
4
+ import type { CreateIndexParams } from '@mastra/core/vector';
5
+ import type { ElementOperator } from '@mastra/core/vector/filter';
6
+ import type { EvalRow } from '@mastra/core/storage';
7
+ import type { IndexStats } from '@mastra/core/vector';
8
+ import type { LogicalOperator } from '@mastra/core/vector/filter';
9
+ import { MastraStorage } from '@mastra/core/storage';
10
+ import { MastraVector } from '@mastra/core/vector';
11
+ import type { MessageType } from '@mastra/core/memory';
12
+ import type { NumericOperator } from '@mastra/core/vector/filter';
13
+ import type { OperatorSupport } from '@mastra/core/vector/filter';
14
+ import type { ParamsToArgs } from '@mastra/core/vector';
15
+ import type { QueryResult } from '@mastra/core/vector';
16
+ import type { QueryVectorParams } from '@mastra/core/vector';
17
+ import type { RegexOperator } from '@mastra/core/vector/filter';
18
+ import type { StorageColumn } from '@mastra/core/storage';
19
+ import type { StorageGetMessagesArg } from '@mastra/core/storage';
20
+ import type { StorageThreadType } from '@mastra/core/memory';
21
+ import type { TABLE_NAMES } from '@mastra/core/storage';
22
+ import type { UpsertVectorParams } from '@mastra/core/vector';
23
+ import type { VectorFilter } from '@mastra/core/vector/filter';
24
+ import type { WorkflowRunState } from '@mastra/core/workflows';
25
+
26
+ export declare const baseTestConfigs: {
27
+ smokeTests: {
28
+ dimension: number;
29
+ size: number;
30
+ k: number;
31
+ queryCount: number;
32
+ }[];
33
+ '64': {
34
+ dimension: number;
35
+ size: number;
36
+ k: number;
37
+ queryCount: number;
38
+ }[];
39
+ '384': {
40
+ dimension: number;
41
+ size: number;
42
+ k: number;
43
+ queryCount: number;
44
+ }[];
45
+ '1024': {
46
+ dimension: number;
47
+ size: number;
48
+ k: number;
49
+ queryCount: number;
50
+ }[];
51
+ stressTests: {
52
+ dimension: number;
53
+ size: number;
54
+ k: number;
55
+ queryCount: number;
56
+ }[];
57
+ };
58
+
59
+ export declare function buildFilterQuery(filter: VectorFilter, minScore: number): FilterResult;
60
+
61
+ export declare const calculateRecall: (actual: number[], expected: number[], k: number) => number;
62
+
63
+ export declare const calculateTimeout: (dimension: number, size: number, k: number) => number;
64
+
65
+ export declare function cosineSimilarity(a: number[], b: number[]): number;
66
+
67
+ export declare const FILTER_OPERATORS: Record<string, OperatorFn>;
68
+
69
+ declare type FilterOperator = {
70
+ sql: string;
71
+ needsValue: boolean;
72
+ transformValue?: (value: any) => any;
73
+ };
74
+
75
+ export declare interface FilterResult {
76
+ sql: string;
77
+ values: any[];
78
+ }
79
+
80
+ export declare const findNearestBruteForce: (query: number[], vectors: number[][], k: number) => number[];
81
+
82
+ export declare const formatTable: (data: any[], columns: string[]) => string;
83
+
84
+ export declare const generateClusteredVectors: (count: number, dim: number, numClusters?: number) => number[][];
85
+
86
+ export declare const generateRandomVectors: (count: number, dim: number) => number[][];
87
+
88
+ export declare const generateSkewedVectors: (count: number, dim: number) => number[][];
89
+
90
+ export declare const getHNSWConfig: (indexConfig: IndexConfig) => {
91
+ m: number;
92
+ efConstruction: number;
93
+ };
94
+
95
+ export declare function getIndexDescription({ type, hnsw, }: {
96
+ type: IndexType;
97
+ hnsw: {
98
+ m: number;
99
+ efConstruction: number;
100
+ };
101
+ }): string;
102
+
103
+ export declare const getListCount: (indexConfig: IndexConfig, size: number) => number | undefined;
104
+
105
+ export declare function getSearchEf(k: number, m: number): {
106
+ default: number;
107
+ lower: number;
108
+ higher: number;
109
+ };
110
+
111
+ export declare const groupBy: <T, K extends keyof T>(array: T[], key: K | ((item: T) => string), reducer?: (group: T[]) => any) => Record<string, any>;
112
+
113
+ export declare const handleKey: (key: string) => string;
114
+
115
+ declare interface HNSWConfig {
116
+ m?: number;
117
+ efConstruction?: number;
118
+ }
119
+
120
+ export declare interface IndexConfig {
121
+ type?: IndexType;
122
+ ivf?: IVFConfig;
123
+ hnsw?: HNSWConfig;
124
+ }
125
+
126
+ export declare type IndexType = 'ivfflat' | 'hnsw' | 'flat';
127
+
128
+ declare interface IVFConfig {
129
+ lists?: number;
130
+ }
131
+
132
+ export declare function measureLatency<T>(fn: () => Promise<T>): Promise<[number, T]>;
133
+
134
+ declare type OperatorFn = (key: string, paramIndex: number, value?: any) => FilterOperator;
135
+
136
+ export declare type OperatorType = BasicOperator | NumericOperator | ArrayOperator | ElementOperator | LogicalOperator | '$contains' | Exclude<RegexOperator, '$options'>;
137
+
138
+ declare interface PgCreateIndexParams extends CreateIndexParams {
139
+ indexConfig?: IndexConfig;
140
+ buildIndex?: boolean;
141
+ }
142
+
143
+ declare interface PgDefineIndexParams {
144
+ indexName: string;
145
+ metric: 'cosine' | 'euclidean' | 'dotproduct';
146
+ indexConfig: IndexConfig;
147
+ }
148
+
149
+ /**
150
+ * Translates MongoDB-style filters to PG compatible filters.
151
+ *
152
+ * Key differences from MongoDB:
153
+ *
154
+ * Logical Operators ($and, $or, $nor):
155
+ * - Can be used at the top level or nested within fields
156
+ * - Can take either a single condition or an array of conditions
157
+ *
158
+ */
159
+ export declare class PGFilterTranslator extends BaseFilterTranslator {
160
+ protected getSupportedOperators(): OperatorSupport;
161
+ translate(filter?: VectorFilter): VectorFilter;
162
+ private translateNode;
163
+ private translateRegexPattern;
164
+ }
165
+
166
+ declare interface PGIndexStats extends IndexStats {
167
+ type: IndexType;
168
+ config: {
169
+ m?: number;
170
+ efConstruction?: number;
171
+ lists?: number;
172
+ probes?: number;
173
+ };
174
+ }
175
+ export { PGIndexStats }
176
+ export { PGIndexStats as PGIndexStats_alias_1 }
177
+
178
+ declare interface PgQueryVectorParams extends QueryVectorParams {
179
+ minScore?: number;
180
+ /**
181
+ * HNSW search parameter. Controls the size of the dynamic candidate
182
+ * list during search. Higher values improve accuracy at the cost of speed.
183
+ */
184
+ ef?: number;
185
+ /**
186
+ * IVFFlat probe parameter. Number of cells to visit during search.
187
+ * Higher values improve accuracy at the cost of speed.
188
+ */
189
+ probes?: number;
190
+ }
191
+
192
+ declare class PgVector extends MastraVector {
193
+ private pool;
194
+ private indexCache;
195
+ constructor(connectionString: string);
196
+ transformFilter(filter?: VectorFilter): VectorFilter;
197
+ getIndexInfo(indexName: string): Promise<PGIndexStats>;
198
+ query(...args: ParamsToArgs<PgQueryVectorParams>): Promise<QueryResult[]>;
199
+ upsert(...args: ParamsToArgs<UpsertVectorParams>): Promise<string[]>;
200
+ createIndex(...args: ParamsToArgs<PgCreateIndexParams>): Promise<void>;
201
+ /**
202
+ * @deprecated This function is deprecated. Use buildIndex instead
203
+ */
204
+ defineIndex(indexName: string, metric: "cosine" | "euclidean" | "dotproduct" | undefined, indexConfig: IndexConfig): Promise<void>;
205
+ buildIndex(...args: ParamsToArgs<PgDefineIndexParams>): Promise<void>;
206
+ listIndexes(): Promise<string[]>;
207
+ describeIndex(indexName: string): Promise<PGIndexStats>;
208
+ deleteIndex(indexName: string): Promise<void>;
209
+ truncateIndex(indexName: string): Promise<void>;
210
+ disconnect(): Promise<void>;
211
+ }
212
+ export { PgVector }
213
+ export { PgVector as PgVector_alias_1 }
214
+
215
+ declare type PostgresConfig = {
216
+ host: string;
217
+ port: number;
218
+ database: string;
219
+ user: string;
220
+ password: string;
221
+ } | {
222
+ connectionString: string;
223
+ };
224
+ export { PostgresConfig }
225
+ export { PostgresConfig as PostgresConfig_alias_1 }
226
+
227
+ declare class PostgresStore extends MastraStorage {
228
+ private db;
229
+ private pgp;
230
+ constructor(config: PostgresConfig);
231
+ getEvalsByAgentName(_agentName: string, _type?: 'test' | 'live'): Promise<EvalRow[]>;
232
+ batchInsert({ tableName, records }: {
233
+ tableName: TABLE_NAMES;
234
+ records: Record<string, any>[];
235
+ }): Promise<void>;
236
+ getTraces({ name, scope, page, perPage, attributes, }: {
237
+ name?: string;
238
+ scope?: string;
239
+ page: number;
240
+ perPage: number;
241
+ attributes?: Record<string, string>;
242
+ }): Promise<any[]>;
243
+ createTable({ tableName, schema, }: {
244
+ tableName: TABLE_NAMES;
245
+ schema: Record<string, StorageColumn>;
246
+ }): Promise<void>;
247
+ clearTable({ tableName }: {
248
+ tableName: TABLE_NAMES;
249
+ }): Promise<void>;
250
+ insert({ tableName, record }: {
251
+ tableName: TABLE_NAMES;
252
+ record: Record<string, any>;
253
+ }): Promise<void>;
254
+ load<R>({ tableName, keys }: {
255
+ tableName: TABLE_NAMES;
256
+ keys: Record<string, string>;
257
+ }): Promise<R | null>;
258
+ getThreadById({ threadId }: {
259
+ threadId: string;
260
+ }): Promise<StorageThreadType | null>;
261
+ getThreadsByResourceId({ resourceId }: {
262
+ resourceId: string;
263
+ }): Promise<StorageThreadType[]>;
264
+ saveThread({ thread }: {
265
+ thread: StorageThreadType;
266
+ }): Promise<StorageThreadType>;
267
+ updateThread({ id, title, metadata, }: {
268
+ id: string;
269
+ title: string;
270
+ metadata: Record<string, unknown>;
271
+ }): Promise<StorageThreadType>;
272
+ deleteThread({ threadId }: {
273
+ threadId: string;
274
+ }): Promise<void>;
275
+ getMessages<T = unknown>({ threadId, selectBy }: StorageGetMessagesArg): Promise<T>;
276
+ saveMessages({ messages }: {
277
+ messages: MessageType[];
278
+ }): Promise<MessageType[]>;
279
+ persistWorkflowSnapshot({ workflowName, runId, snapshot, }: {
280
+ workflowName: string;
281
+ runId: string;
282
+ snapshot: WorkflowRunState;
283
+ }): Promise<void>;
284
+ loadWorkflowSnapshot({ workflowName, runId, }: {
285
+ workflowName: string;
286
+ runId: string;
287
+ }): Promise<WorkflowRunState | null>;
288
+ close(): Promise<void>;
289
+ }
290
+ export { PostgresStore }
291
+ export { PostgresStore as PostgresStore_alias_1 }
292
+
293
+ export declare interface TestConfig {
294
+ dimension: number;
295
+ size: number;
296
+ k: number;
297
+ queryCount: number;
298
+ }
299
+
300
+ export declare interface TestResult {
301
+ distribution: string;
302
+ dimension: number;
303
+ type: IndexType;
304
+ size: number;
305
+ k?: number;
306
+ metrics: {
307
+ recall?: number;
308
+ minRecall?: number;
309
+ maxRecall?: number;
310
+ latency?: {
311
+ p50: number;
312
+ p95: number;
313
+ lists?: number;
314
+ vectorsPerList?: number;
315
+ m?: number;
316
+ ef?: number;
317
+ };
318
+ clustering?: {
319
+ numLists?: number;
320
+ avgVectorsPerList?: number;
321
+ recommendedLists?: number;
322
+ distribution?: string;
323
+ };
324
+ };
325
+ }
326
+
327
+ export declare function warmupQuery(vectorDB: PgVector, indexName: string, dimension: number, k: number): Promise<void>;
328
+
329
+ export { }
@@ -1,22 +1,26 @@
1
- import type { ArrayOperator } from '@mastra/core/filter';
2
- import { BaseFilterTranslator } from '@mastra/core/filter';
3
- import type { BasicOperator } from '@mastra/core/filter';
4
- import type { ElementOperator } from '@mastra/core/filter';
1
+ import type { ArrayOperator } from '@mastra/core/vector/filter';
2
+ import { BaseFilterTranslator } from '@mastra/core/vector/filter';
3
+ import type { BasicOperator } from '@mastra/core/vector/filter';
4
+ import type { CreateIndexParams } from '@mastra/core/vector';
5
+ import type { ElementOperator } from '@mastra/core/vector/filter';
5
6
  import type { EvalRow } from '@mastra/core/storage';
6
- import type { Filter } from '@mastra/core/filter';
7
7
  import type { IndexStats } from '@mastra/core/vector';
8
- import type { LogicalOperator } from '@mastra/core/filter';
8
+ import type { LogicalOperator } from '@mastra/core/vector/filter';
9
9
  import { MastraStorage } from '@mastra/core/storage';
10
10
  import { MastraVector } from '@mastra/core/vector';
11
11
  import type { MessageType } from '@mastra/core/memory';
12
- import type { NumericOperator } from '@mastra/core/filter';
13
- import type { OperatorSupport } from '@mastra/core/filter';
12
+ import type { NumericOperator } from '@mastra/core/vector/filter';
13
+ import type { OperatorSupport } from '@mastra/core/vector/filter';
14
+ import type { ParamsToArgs } from '@mastra/core/vector';
14
15
  import type { QueryResult } from '@mastra/core/vector';
15
- import type { RegexOperator } from '@mastra/core/filter';
16
+ import type { QueryVectorParams } from '@mastra/core/vector';
17
+ import type { RegexOperator } from '@mastra/core/vector/filter';
16
18
  import type { StorageColumn } from '@mastra/core/storage';
17
19
  import type { StorageGetMessagesArg } from '@mastra/core/storage';
18
20
  import type { StorageThreadType } from '@mastra/core/memory';
19
21
  import type { TABLE_NAMES } from '@mastra/core/storage';
22
+ import type { UpsertVectorParams } from '@mastra/core/vector';
23
+ import type { VectorFilter } from '@mastra/core/vector/filter';
20
24
  import type { WorkflowRunState } from '@mastra/core/workflows';
21
25
 
22
26
  export declare const baseTestConfigs: {
@@ -52,7 +56,7 @@ export declare const baseTestConfigs: {
52
56
  }[];
53
57
  };
54
58
 
55
- export declare function buildFilterQuery(filter: Filter, minScore: number): FilterResult;
59
+ export declare function buildFilterQuery(filter: VectorFilter, minScore: number): FilterResult;
56
60
 
57
61
  export declare const calculateRecall: (actual: number[], expected: number[], k: number) => number;
58
62
 
@@ -131,6 +135,17 @@ declare type OperatorFn = (key: string, paramIndex: number, value?: any) => Filt
131
135
 
132
136
  export declare type OperatorType = BasicOperator | NumericOperator | ArrayOperator | ElementOperator | LogicalOperator | '$contains' | Exclude<RegexOperator, '$options'>;
133
137
 
138
+ declare interface PgCreateIndexParams extends CreateIndexParams {
139
+ indexConfig?: IndexConfig;
140
+ buildIndex?: boolean;
141
+ }
142
+
143
+ declare interface PgDefineIndexParams {
144
+ indexName: string;
145
+ metric: 'cosine' | 'euclidean' | 'dotproduct';
146
+ indexConfig: IndexConfig;
147
+ }
148
+
134
149
  /**
135
150
  * Translates MongoDB-style filters to PG compatible filters.
136
151
  *
@@ -143,7 +158,7 @@ export declare type OperatorType = BasicOperator | NumericOperator | ArrayOperat
143
158
  */
144
159
  export declare class PGFilterTranslator extends BaseFilterTranslator {
145
160
  protected getSupportedOperators(): OperatorSupport;
146
- translate(filter: Filter): Filter;
161
+ translate(filter?: VectorFilter): VectorFilter;
147
162
  private translateNode;
148
163
  private translateRegexPattern;
149
164
  }
@@ -160,24 +175,34 @@ declare interface PGIndexStats extends IndexStats {
160
175
  export { PGIndexStats }
161
176
  export { PGIndexStats as PGIndexStats_alias_1 }
162
177
 
178
+ declare interface PgQueryVectorParams extends QueryVectorParams {
179
+ minScore?: number;
180
+ /**
181
+ * HNSW search parameter. Controls the size of the dynamic candidate
182
+ * list during search. Higher values improve accuracy at the cost of speed.
183
+ */
184
+ ef?: number;
185
+ /**
186
+ * IVFFlat probe parameter. Number of cells to visit during search.
187
+ * Higher values improve accuracy at the cost of speed.
188
+ */
189
+ probes?: number;
190
+ }
191
+
163
192
  declare class PgVector extends MastraVector {
164
193
  private pool;
165
194
  private indexCache;
166
195
  constructor(connectionString: string);
167
- transformFilter(filter?: Filter): Filter;
196
+ transformFilter(filter?: VectorFilter): VectorFilter;
168
197
  getIndexInfo(indexName: string): Promise<PGIndexStats>;
169
- query(indexName: string, queryVector: number[], topK?: number, filter?: Filter, includeVector?: boolean, minScore?: number, // Optional minimum score threshold
170
- options?: {
171
- ef?: number;
172
- probes?: number;
173
- }): Promise<QueryResult[]>;
174
- upsert(indexName: string, vectors: number[][], metadata?: Record<string, any>[], ids?: string[]): Promise<string[]>;
175
- createIndex(indexName: string, dimension: number, metric?: 'cosine' | 'euclidean' | 'dotproduct', indexConfig?: IndexConfig, defineIndex?: boolean): Promise<void>;
198
+ query(...args: ParamsToArgs<PgQueryVectorParams>): Promise<QueryResult[]>;
199
+ upsert(...args: ParamsToArgs<UpsertVectorParams>): Promise<string[]>;
200
+ createIndex(...args: ParamsToArgs<PgCreateIndexParams>): Promise<void>;
176
201
  /**
177
202
  * @deprecated This function is deprecated. Use buildIndex instead
178
203
  */
179
204
  defineIndex(indexName: string, metric: "cosine" | "euclidean" | "dotproduct" | undefined, indexConfig: IndexConfig): Promise<void>;
180
- buildIndex(indexName: string, metric: "cosine" | "euclidean" | "dotproduct" | undefined, indexConfig: IndexConfig): Promise<void>;
205
+ buildIndex(...args: ParamsToArgs<PgDefineIndexParams>): Promise<void>;
181
206
  listIndexes(): Promise<string[]>;
182
207
  describeIndex(indexName: string): Promise<PGIndexStats>;
183
208
  deleteIndex(indexName: string): Promise<void>;