@mastra/duckdb 1.0.1 → 1.1.0-alpha.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/CHANGELOG.md +49 -0
- package/LICENSE.md +15 -0
- package/dist/chunk-37GBWD4M.js +195 -0
- package/dist/chunk-37GBWD4M.js.map +1 -0
- package/dist/chunk-S2AWBPTS.cjs +198 -0
- package/dist/chunk-S2AWBPTS.cjs.map +1 -0
- package/dist/docs/SKILL.md +2 -2
- package/dist/docs/assets/SOURCE_MAP.json +8 -2
- package/dist/docs/references/reference-vectors-duckdb.md +46 -46
- package/dist/index.cjs +241 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +238 -6
- package/dist/index.js.map +1 -1
- package/dist/observability-PW6J27KS.js +1675 -0
- package/dist/observability-PW6J27KS.js.map +1 -0
- package/dist/observability-W2QRBK56.cjs +1677 -0
- package/dist/observability-W2QRBK56.cjs.map +1 -0
- package/dist/storage/db/index.d.ts +46 -0
- package/dist/storage/db/index.d.ts.map +1 -0
- package/dist/storage/domains/observability/ddl.d.ts +25 -0
- package/dist/storage/domains/observability/ddl.d.ts.map +1 -0
- package/dist/storage/domains/observability/discovery.d.ts +13 -0
- package/dist/storage/domains/observability/discovery.d.ts.map +1 -0
- package/dist/storage/domains/observability/feedback.d.ts +9 -0
- package/dist/storage/domains/observability/feedback.d.ts.map +1 -0
- package/dist/storage/domains/observability/filters.d.ts +27 -0
- package/dist/storage/domains/observability/filters.d.ts.map +1 -0
- package/dist/storage/domains/observability/helpers.d.ts +14 -0
- package/dist/storage/domains/observability/helpers.d.ts.map +1 -0
- package/dist/storage/domains/observability/index.d.ts +54 -0
- package/dist/storage/domains/observability/index.d.ts.map +1 -0
- package/dist/storage/domains/observability/logs.d.ts +7 -0
- package/dist/storage/domains/observability/logs.d.ts.map +1 -0
- package/dist/storage/domains/observability/metrics.d.ts +21 -0
- package/dist/storage/domains/observability/metrics.d.ts.map +1 -0
- package/dist/storage/domains/observability/scores.d.ts +9 -0
- package/dist/storage/domains/observability/scores.d.ts.map +1 -0
- package/dist/storage/domains/observability/tracing.d.ts +17 -0
- package/dist/storage/domains/observability/tracing.d.ts.map +1 -0
- package/dist/storage/index.d.ts +101 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/vector/filter-builder.d.ts +1 -0
- package/dist/vector/filter-builder.d.ts.map +1 -1
- package/dist/vector/index.d.ts +9 -0
- package/dist/vector/index.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# DuckDB vector store
|
|
2
2
|
|
|
3
3
|
The DuckDB storage implementation provides an embedded high-performance vector search solution using [DuckDB](https://duckdb.org/), an in-process analytical database. It uses the VSS extension for vector similarity search with HNSW indexing, offering a lightweight and efficient vector database that requires no external server.
|
|
4
4
|
|
|
@@ -73,59 +73,59 @@ const results = await store.query({
|
|
|
73
73
|
await store.close();
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
## Constructor
|
|
76
|
+
## Constructor options
|
|
77
77
|
|
|
78
|
-
**id
|
|
78
|
+
**id** (`string`): Unique identifier for the vector store instance
|
|
79
79
|
|
|
80
|
-
**path
|
|
80
|
+
**path** (`string`): Database file path. Use ':memory:' for in-memory database, or a file path like './vectors.duckdb' for persistence. (Default: `':memory:'`)
|
|
81
81
|
|
|
82
|
-
**dimensions
|
|
82
|
+
**dimensions** (`number`): Default dimension for vector embeddings (Default: `1536`)
|
|
83
83
|
|
|
84
|
-
**metric
|
|
84
|
+
**metric** (`'cosine' | 'euclidean' | 'dotproduct'`): Default distance metric for similarity search (Default: `cosine`)
|
|
85
85
|
|
|
86
86
|
## Methods
|
|
87
87
|
|
|
88
|
-
### createIndex()
|
|
88
|
+
### `createIndex()`
|
|
89
89
|
|
|
90
90
|
Creates a new vector collection with optional HNSW index for fast approximate nearest neighbor search.
|
|
91
91
|
|
|
92
|
-
**indexName
|
|
92
|
+
**indexName** (`string`): Name of the index to create
|
|
93
93
|
|
|
94
|
-
**dimension
|
|
94
|
+
**dimension** (`number`): Vector dimension size (must match your embedding model)
|
|
95
95
|
|
|
96
|
-
**metric
|
|
96
|
+
**metric** (`'cosine' | 'euclidean' | 'dotproduct'`): Distance metric for similarity search (Default: `cosine`)
|
|
97
97
|
|
|
98
|
-
### upsert()
|
|
98
|
+
### `upsert()`
|
|
99
99
|
|
|
100
100
|
Adds or updates vectors and their metadata in the index.
|
|
101
101
|
|
|
102
|
-
**indexName
|
|
102
|
+
**indexName** (`string`): Name of the index to insert into
|
|
103
103
|
|
|
104
|
-
**vectors
|
|
104
|
+
**vectors** (`number[][]`): Array of embedding vectors
|
|
105
105
|
|
|
106
|
-
**metadata
|
|
106
|
+
**metadata** (`Record<string, any>[]`): Metadata for each vector
|
|
107
107
|
|
|
108
|
-
**ids
|
|
108
|
+
**ids** (`string[]`): Optional vector IDs (auto-generated UUIDs if not provided)
|
|
109
109
|
|
|
110
|
-
### query()
|
|
110
|
+
### `query()`
|
|
111
111
|
|
|
112
112
|
Searches for similar vectors with optional metadata filtering.
|
|
113
113
|
|
|
114
|
-
**indexName
|
|
114
|
+
**indexName** (`string`): Name of the index to search in
|
|
115
115
|
|
|
116
|
-
**queryVector
|
|
116
|
+
**queryVector** (`number[]`): Query vector to find similar vectors for
|
|
117
117
|
|
|
118
|
-
**topK
|
|
118
|
+
**topK** (`number`): Number of results to return (Default: `10`)
|
|
119
119
|
|
|
120
|
-
**filter
|
|
120
|
+
**filter** (`Filter`): Metadata filters using MongoDB-like query syntax
|
|
121
121
|
|
|
122
|
-
**includeVector
|
|
122
|
+
**includeVector** (`boolean`): Whether to include vector data in results (Default: `false`)
|
|
123
123
|
|
|
124
|
-
### describeIndex()
|
|
124
|
+
### `describeIndex()`
|
|
125
125
|
|
|
126
126
|
Gets information about an index.
|
|
127
127
|
|
|
128
|
-
**indexName
|
|
128
|
+
**indexName** (`string`): Name of the index to describe
|
|
129
129
|
|
|
130
130
|
Returns:
|
|
131
131
|
|
|
@@ -137,53 +137,53 @@ interface IndexStats {
|
|
|
137
137
|
}
|
|
138
138
|
```
|
|
139
139
|
|
|
140
|
-
### deleteIndex()
|
|
140
|
+
### `deleteIndex()`
|
|
141
141
|
|
|
142
142
|
Deletes an index and all its data.
|
|
143
143
|
|
|
144
|
-
**indexName
|
|
144
|
+
**indexName** (`string`): Name of the index to delete
|
|
145
145
|
|
|
146
|
-
### listIndexes()
|
|
146
|
+
### `listIndexes()`
|
|
147
147
|
|
|
148
148
|
Lists all vector indexes in the database.
|
|
149
149
|
|
|
150
150
|
Returns: `Promise<string[]>`
|
|
151
151
|
|
|
152
|
-
### updateVector()
|
|
152
|
+
### `updateVector()`
|
|
153
153
|
|
|
154
154
|
Update a single vector by ID or by metadata filter. Either `id` or `filter` must be provided, but not both.
|
|
155
155
|
|
|
156
|
-
**indexName
|
|
156
|
+
**indexName** (`string`): Name of the index containing the vector
|
|
157
157
|
|
|
158
|
-
**id
|
|
158
|
+
**id** (`string`): ID of the vector entry to update (mutually exclusive with filter)
|
|
159
159
|
|
|
160
|
-
**filter
|
|
160
|
+
**filter** (`Record<string, any>`): Metadata filter to identify vector(s) to update (mutually exclusive with id)
|
|
161
161
|
|
|
162
|
-
**update
|
|
162
|
+
**update** (`object`): Update data containing vector and/or metadata
|
|
163
163
|
|
|
164
|
-
**update.vector
|
|
164
|
+
**update.vector** (`number[]`): New vector data to update
|
|
165
165
|
|
|
166
|
-
**update.metadata
|
|
166
|
+
**update.metadata** (`Record<string, any>`): New metadata to update
|
|
167
167
|
|
|
168
|
-
### deleteVector()
|
|
168
|
+
### `deleteVector()`
|
|
169
169
|
|
|
170
170
|
Deletes a specific vector entry from an index by its ID.
|
|
171
171
|
|
|
172
|
-
**indexName
|
|
172
|
+
**indexName** (`string`): Name of the index containing the vector
|
|
173
173
|
|
|
174
|
-
**id
|
|
174
|
+
**id** (`string`): ID of the vector entry to delete
|
|
175
175
|
|
|
176
|
-
### deleteVectors()
|
|
176
|
+
### `deleteVectors()`
|
|
177
177
|
|
|
178
178
|
Delete multiple vectors by IDs or by metadata filter. Either `ids` or `filter` must be provided, but not both.
|
|
179
179
|
|
|
180
|
-
**indexName
|
|
180
|
+
**indexName** (`string`): Name of the index containing the vectors to delete
|
|
181
181
|
|
|
182
|
-
**ids
|
|
182
|
+
**ids** (`string[]`): Array of vector IDs to delete (mutually exclusive with filter)
|
|
183
183
|
|
|
184
|
-
**filter
|
|
184
|
+
**filter** (`Record<string, any>`): Metadata filter to identify vectors to delete (mutually exclusive with ids)
|
|
185
185
|
|
|
186
|
-
### close()
|
|
186
|
+
### `close()`
|
|
187
187
|
|
|
188
188
|
Closes the database connection and releases resources.
|
|
189
189
|
|
|
@@ -191,7 +191,7 @@ Closes the database connection and releases resources.
|
|
|
191
191
|
await store.close()
|
|
192
192
|
```
|
|
193
193
|
|
|
194
|
-
## Response
|
|
194
|
+
## Response types
|
|
195
195
|
|
|
196
196
|
Query results are returned in this format:
|
|
197
197
|
|
|
@@ -204,7 +204,7 @@ interface QueryResult {
|
|
|
204
204
|
}
|
|
205
205
|
```
|
|
206
206
|
|
|
207
|
-
## Filter
|
|
207
|
+
## Filter operators
|
|
208
208
|
|
|
209
209
|
DuckDB vector store supports MongoDB-like filter operators:
|
|
210
210
|
|
|
@@ -239,7 +239,7 @@ const results = await store.query({
|
|
|
239
239
|
});
|
|
240
240
|
```
|
|
241
241
|
|
|
242
|
-
## Distance
|
|
242
|
+
## Distance metrics
|
|
243
243
|
|
|
244
244
|
| Metric | Description | Score Interpretation | Best For |
|
|
245
245
|
| ------------ | ----------------- | ---------------------- | ----------------------------------- |
|
|
@@ -247,7 +247,7 @@ const results = await store.query({
|
|
|
247
247
|
| `euclidean` | L2 distance | 0-∞ (0 = most similar) | Image embeddings, spatial data |
|
|
248
248
|
| `dotproduct` | Inner product | Higher = more similar | When vector magnitude matters |
|
|
249
249
|
|
|
250
|
-
## Error
|
|
250
|
+
## Error handling
|
|
251
251
|
|
|
252
252
|
The store throws specific errors for different failure cases:
|
|
253
253
|
|
|
@@ -276,7 +276,7 @@ Common error cases include:
|
|
|
276
276
|
- Empty filter or ids array in delete/update operations
|
|
277
277
|
- Mutual exclusivity violations (providing both `id` and `filter`)
|
|
278
278
|
|
|
279
|
-
## Use
|
|
279
|
+
## Use cases
|
|
280
280
|
|
|
281
281
|
### Embedded Semantic Search
|
|
282
282
|
|
package/dist/index.cjs
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var chunkS2AWBPTS_cjs = require('./chunk-S2AWBPTS.cjs');
|
|
3
4
|
var nodeApi = require('@duckdb/node-api');
|
|
4
5
|
var error = require('@mastra/core/error');
|
|
5
6
|
var storage = require('@mastra/core/storage');
|
|
6
7
|
var vector = require('@mastra/core/vector');
|
|
7
8
|
|
|
8
|
-
// src/vector/index.ts
|
|
9
|
-
|
|
10
9
|
// src/vector/filter-builder.ts
|
|
11
10
|
function escapeString(value) {
|
|
12
11
|
return value.replace(/'/g, "''");
|
|
@@ -253,7 +252,9 @@ var DuckDBVector = class extends vector.MastraVector {
|
|
|
253
252
|
let paramIndex = 0;
|
|
254
253
|
const preparedSql = sql.replace(/\?/g, () => `$${++paramIndex}`);
|
|
255
254
|
const stmt = await connection.prepare(preparedSql);
|
|
256
|
-
|
|
255
|
+
for (let i = 0; i < params.length; i++) {
|
|
256
|
+
chunkS2AWBPTS_cjs.bindParam(stmt, i + 1, params[i]);
|
|
257
|
+
}
|
|
257
258
|
const result = await stmt.run();
|
|
258
259
|
const rows = await result.getRows();
|
|
259
260
|
const columns = result.columnNames();
|
|
@@ -279,7 +280,9 @@ var DuckDBVector = class extends vector.MastraVector {
|
|
|
279
280
|
let paramIndex = 0;
|
|
280
281
|
const preparedSql = sql.replace(/\?/g, () => `$${++paramIndex}`);
|
|
281
282
|
const stmt = await connection.prepare(preparedSql);
|
|
282
|
-
|
|
283
|
+
for (let i = 0; i < params.length; i++) {
|
|
284
|
+
chunkS2AWBPTS_cjs.bindParam(stmt, i + 1, params[i]);
|
|
285
|
+
}
|
|
283
286
|
await stmt.run();
|
|
284
287
|
}
|
|
285
288
|
} finally {
|
|
@@ -309,6 +312,7 @@ var DuckDBVector = class extends vector.MastraVector {
|
|
|
309
312
|
return "array_cosine_distance";
|
|
310
313
|
}
|
|
311
314
|
}
|
|
315
|
+
/** Perform a vector similarity search with optional metadata filtering. */
|
|
312
316
|
async query(params) {
|
|
313
317
|
await this.initialize();
|
|
314
318
|
const { indexName, queryVector, topK = 10, filter, includeVector = false } = params;
|
|
@@ -364,6 +368,7 @@ var DuckDBVector = class extends vector.MastraVector {
|
|
|
364
368
|
return queryResult;
|
|
365
369
|
});
|
|
366
370
|
}
|
|
371
|
+
/** Insert or replace vectors with metadata. Returns the vector IDs. */
|
|
367
372
|
async upsert(params) {
|
|
368
373
|
await this.initialize();
|
|
369
374
|
const { indexName, vectors, metadata, ids } = params;
|
|
@@ -384,6 +389,7 @@ var DuckDBVector = class extends vector.MastraVector {
|
|
|
384
389
|
}
|
|
385
390
|
return vectorIds;
|
|
386
391
|
}
|
|
392
|
+
/** Create a vector table with HNSW index for similarity search. */
|
|
387
393
|
async createIndex(params) {
|
|
388
394
|
await this.initialize();
|
|
389
395
|
const { indexName, dimension, metric } = params;
|
|
@@ -412,6 +418,7 @@ var DuckDBVector = class extends vector.MastraVector {
|
|
|
412
418
|
this.logger.warn(`Could not create HNSW index for ${indexName}, falling back to linear scan`);
|
|
413
419
|
}
|
|
414
420
|
}
|
|
421
|
+
/** List all vector table names in the database. */
|
|
415
422
|
async listIndexes() {
|
|
416
423
|
await this.initialize();
|
|
417
424
|
const connection = await this.getConnection();
|
|
@@ -424,6 +431,7 @@ var DuckDBVector = class extends vector.MastraVector {
|
|
|
424
431
|
const rows = await result.getRows();
|
|
425
432
|
return rows.map((row) => row[0]);
|
|
426
433
|
}
|
|
434
|
+
/** Return dimension, row count, and metric for a vector index. */
|
|
427
435
|
async describeIndex(params) {
|
|
428
436
|
await this.initialize();
|
|
429
437
|
const { indexName } = params;
|
|
@@ -450,6 +458,7 @@ var DuckDBVector = class extends vector.MastraVector {
|
|
|
450
458
|
metric: this.config.metric || "cosine"
|
|
451
459
|
};
|
|
452
460
|
}
|
|
461
|
+
/** Drop a vector table and its HNSW index. */
|
|
453
462
|
async deleteIndex(params) {
|
|
454
463
|
await this.initialize();
|
|
455
464
|
const { indexName } = params;
|
|
@@ -457,6 +466,7 @@ var DuckDBVector = class extends vector.MastraVector {
|
|
|
457
466
|
const connection = await this.getConnection();
|
|
458
467
|
await connection.run(`DROP TABLE IF EXISTS ${tableName}`);
|
|
459
468
|
}
|
|
469
|
+
/** Update a vector's embedding and/or metadata by ID or filter. */
|
|
460
470
|
async updateVector(params) {
|
|
461
471
|
await this.initialize();
|
|
462
472
|
const { indexName, update } = params;
|
|
@@ -492,6 +502,7 @@ var DuckDBVector = class extends vector.MastraVector {
|
|
|
492
502
|
await this.runStatement(`UPDATE ${tableName} SET ${updates.join(", ")} WHERE ${clause}`);
|
|
493
503
|
}
|
|
494
504
|
}
|
|
505
|
+
/** Delete a single vector by ID. */
|
|
495
506
|
async deleteVector(params) {
|
|
496
507
|
await this.initialize();
|
|
497
508
|
const { indexName, id } = params;
|
|
@@ -499,6 +510,7 @@ var DuckDBVector = class extends vector.MastraVector {
|
|
|
499
510
|
const sql = `DELETE FROM ${tableName} WHERE id = ?`;
|
|
500
511
|
await this.runStatement(sql, [id]);
|
|
501
512
|
}
|
|
513
|
+
/** Delete multiple vectors by IDs or metadata filter (mutually exclusive). */
|
|
502
514
|
async deleteVectors(params) {
|
|
503
515
|
await this.initialize();
|
|
504
516
|
const { indexName, ids, filter } = params;
|
|
@@ -536,7 +548,232 @@ var DuckDBVector = class extends vector.MastraVector {
|
|
|
536
548
|
}
|
|
537
549
|
}
|
|
538
550
|
};
|
|
551
|
+
var OBSERVABILITY_UPGRADE_MESSAGE = "DuckDB observability storage requires `@mastra/core` with observability storage support. Upgrade `@mastra/core` to use this store.";
|
|
552
|
+
function isObservabilityCompatibilityError(error) {
|
|
553
|
+
if (!(error instanceof Error)) {
|
|
554
|
+
return false;
|
|
555
|
+
}
|
|
556
|
+
return error.message.includes("@mastra/core") && (error.message.includes("does not provide an export named") || error.message.includes("No matching export") || error.message.includes("Cannot find module") || error.message.includes("Cannot find package"));
|
|
557
|
+
}
|
|
558
|
+
var ObservabilityStorageDuckDB = class extends storage.ObservabilityStorage {
|
|
559
|
+
db;
|
|
560
|
+
delegate = null;
|
|
561
|
+
loadPromise = null;
|
|
562
|
+
unavailableError = null;
|
|
563
|
+
constructor(config) {
|
|
564
|
+
super();
|
|
565
|
+
this.db = config.db;
|
|
566
|
+
}
|
|
567
|
+
createUnavailableError(cause) {
|
|
568
|
+
return new error.MastraError(
|
|
569
|
+
{
|
|
570
|
+
id: "OBSERVABILITY_STORAGE_DUCKDB_CORE_UPGRADE_NOT_IMPLEMENTED",
|
|
571
|
+
domain: error.ErrorDomain.MASTRA_OBSERVABILITY,
|
|
572
|
+
category: error.ErrorCategory.SYSTEM,
|
|
573
|
+
text: OBSERVABILITY_UPGRADE_MESSAGE
|
|
574
|
+
},
|
|
575
|
+
cause
|
|
576
|
+
);
|
|
577
|
+
}
|
|
578
|
+
async loadDelegate() {
|
|
579
|
+
if (this.delegate) {
|
|
580
|
+
return this.delegate;
|
|
581
|
+
}
|
|
582
|
+
if (this.unavailableError) {
|
|
583
|
+
return null;
|
|
584
|
+
}
|
|
585
|
+
if (!this.loadPromise) {
|
|
586
|
+
this.loadPromise = import('./observability-W2QRBK56.cjs').then(({ ObservabilityStorageDuckDB: ObservabilityStorageDuckDB2 }) => {
|
|
587
|
+
const delegate = new ObservabilityStorageDuckDB2({ db: this.db });
|
|
588
|
+
this.delegate = delegate;
|
|
589
|
+
return delegate;
|
|
590
|
+
}).catch((error) => {
|
|
591
|
+
if (isObservabilityCompatibilityError(error)) {
|
|
592
|
+
this.unavailableError = this.createUnavailableError(error);
|
|
593
|
+
return null;
|
|
594
|
+
}
|
|
595
|
+
throw error;
|
|
596
|
+
});
|
|
597
|
+
}
|
|
598
|
+
return this.loadPromise;
|
|
599
|
+
}
|
|
600
|
+
async requireDelegate() {
|
|
601
|
+
const delegate = await this.loadDelegate();
|
|
602
|
+
if (!delegate) {
|
|
603
|
+
throw this.unavailableError ?? this.createUnavailableError();
|
|
604
|
+
}
|
|
605
|
+
return delegate;
|
|
606
|
+
}
|
|
607
|
+
get observabilityStrategy() {
|
|
608
|
+
return this.delegate?.observabilityStrategy ?? {
|
|
609
|
+
preferred: "event-sourced",
|
|
610
|
+
supported: ["event-sourced"]
|
|
611
|
+
};
|
|
612
|
+
}
|
|
613
|
+
get tracingStrategy() {
|
|
614
|
+
return this.delegate?.tracingStrategy ?? this.observabilityStrategy;
|
|
615
|
+
}
|
|
616
|
+
async init(...args) {
|
|
617
|
+
const delegate = await this.loadDelegate();
|
|
618
|
+
if (!delegate) {
|
|
619
|
+
return;
|
|
620
|
+
}
|
|
621
|
+
return delegate.init(...args);
|
|
622
|
+
}
|
|
623
|
+
async dangerouslyClearAll(...args) {
|
|
624
|
+
const delegate = await this.requireDelegate();
|
|
625
|
+
return delegate.dangerouslyClearAll(...args);
|
|
626
|
+
}
|
|
627
|
+
async createSpan(...args) {
|
|
628
|
+
const delegate = await this.requireDelegate();
|
|
629
|
+
return delegate.createSpan(...args);
|
|
630
|
+
}
|
|
631
|
+
async updateSpan(...args) {
|
|
632
|
+
const delegate = await this.requireDelegate();
|
|
633
|
+
return delegate.updateSpan(...args);
|
|
634
|
+
}
|
|
635
|
+
async getSpan(...args) {
|
|
636
|
+
const delegate = await this.requireDelegate();
|
|
637
|
+
return delegate.getSpan(...args);
|
|
638
|
+
}
|
|
639
|
+
async getRootSpan(...args) {
|
|
640
|
+
const delegate = await this.requireDelegate();
|
|
641
|
+
return delegate.getRootSpan(...args);
|
|
642
|
+
}
|
|
643
|
+
async getTrace(...args) {
|
|
644
|
+
const delegate = await this.requireDelegate();
|
|
645
|
+
return delegate.getTrace(...args);
|
|
646
|
+
}
|
|
647
|
+
async listTraces(...args) {
|
|
648
|
+
const delegate = await this.requireDelegate();
|
|
649
|
+
return delegate.listTraces(...args);
|
|
650
|
+
}
|
|
651
|
+
async batchCreateSpans(...args) {
|
|
652
|
+
const delegate = await this.requireDelegate();
|
|
653
|
+
return delegate.batchCreateSpans(...args);
|
|
654
|
+
}
|
|
655
|
+
async batchUpdateSpans(...args) {
|
|
656
|
+
const delegate = await this.requireDelegate();
|
|
657
|
+
return delegate.batchUpdateSpans(...args);
|
|
658
|
+
}
|
|
659
|
+
async batchDeleteTraces(...args) {
|
|
660
|
+
const delegate = await this.requireDelegate();
|
|
661
|
+
return delegate.batchDeleteTraces(...args);
|
|
662
|
+
}
|
|
663
|
+
async batchCreateLogs(...args) {
|
|
664
|
+
const delegate = await this.requireDelegate();
|
|
665
|
+
return delegate.batchCreateLogs(...args);
|
|
666
|
+
}
|
|
667
|
+
async listLogs(...args) {
|
|
668
|
+
const delegate = await this.requireDelegate();
|
|
669
|
+
return delegate.listLogs(...args);
|
|
670
|
+
}
|
|
671
|
+
async batchCreateMetrics(...args) {
|
|
672
|
+
const delegate = await this.requireDelegate();
|
|
673
|
+
return delegate.batchCreateMetrics(...args);
|
|
674
|
+
}
|
|
675
|
+
async listMetrics(...args) {
|
|
676
|
+
const delegate = await this.requireDelegate();
|
|
677
|
+
return delegate.listMetrics(...args);
|
|
678
|
+
}
|
|
679
|
+
async getMetricAggregate(...args) {
|
|
680
|
+
const delegate = await this.requireDelegate();
|
|
681
|
+
return delegate.getMetricAggregate(...args);
|
|
682
|
+
}
|
|
683
|
+
async getMetricBreakdown(...args) {
|
|
684
|
+
const delegate = await this.requireDelegate();
|
|
685
|
+
return delegate.getMetricBreakdown(...args);
|
|
686
|
+
}
|
|
687
|
+
async getMetricTimeSeries(...args) {
|
|
688
|
+
const delegate = await this.requireDelegate();
|
|
689
|
+
return delegate.getMetricTimeSeries(...args);
|
|
690
|
+
}
|
|
691
|
+
async getMetricPercentiles(...args) {
|
|
692
|
+
const delegate = await this.requireDelegate();
|
|
693
|
+
return delegate.getMetricPercentiles(...args);
|
|
694
|
+
}
|
|
695
|
+
async getMetricNames(...args) {
|
|
696
|
+
const delegate = await this.requireDelegate();
|
|
697
|
+
return delegate.getMetricNames(...args);
|
|
698
|
+
}
|
|
699
|
+
async getMetricLabelKeys(...args) {
|
|
700
|
+
const delegate = await this.requireDelegate();
|
|
701
|
+
return delegate.getMetricLabelKeys(...args);
|
|
702
|
+
}
|
|
703
|
+
async getMetricLabelValues(...args) {
|
|
704
|
+
const delegate = await this.requireDelegate();
|
|
705
|
+
return delegate.getMetricLabelValues(...args);
|
|
706
|
+
}
|
|
707
|
+
async getEntityTypes(...args) {
|
|
708
|
+
const delegate = await this.requireDelegate();
|
|
709
|
+
return delegate.getEntityTypes(...args);
|
|
710
|
+
}
|
|
711
|
+
async getEntityNames(...args) {
|
|
712
|
+
const delegate = await this.requireDelegate();
|
|
713
|
+
return delegate.getEntityNames(...args);
|
|
714
|
+
}
|
|
715
|
+
async getServiceNames(...args) {
|
|
716
|
+
const delegate = await this.requireDelegate();
|
|
717
|
+
return delegate.getServiceNames(...args);
|
|
718
|
+
}
|
|
719
|
+
async getEnvironments(...args) {
|
|
720
|
+
const delegate = await this.requireDelegate();
|
|
721
|
+
return delegate.getEnvironments(...args);
|
|
722
|
+
}
|
|
723
|
+
async getTags(...args) {
|
|
724
|
+
const delegate = await this.requireDelegate();
|
|
725
|
+
return delegate.getTags(...args);
|
|
726
|
+
}
|
|
727
|
+
async createScore(...args) {
|
|
728
|
+
const delegate = await this.requireDelegate();
|
|
729
|
+
return delegate.createScore(...args);
|
|
730
|
+
}
|
|
731
|
+
async batchCreateScores(...args) {
|
|
732
|
+
const delegate = await this.requireDelegate();
|
|
733
|
+
return delegate.batchCreateScores(...args);
|
|
734
|
+
}
|
|
735
|
+
async listScores(...args) {
|
|
736
|
+
const delegate = await this.requireDelegate();
|
|
737
|
+
return delegate.listScores(...args);
|
|
738
|
+
}
|
|
739
|
+
async createFeedback(...args) {
|
|
740
|
+
const delegate = await this.requireDelegate();
|
|
741
|
+
return delegate.createFeedback(...args);
|
|
742
|
+
}
|
|
743
|
+
async batchCreateFeedback(...args) {
|
|
744
|
+
const delegate = await this.requireDelegate();
|
|
745
|
+
return delegate.batchCreateFeedback(...args);
|
|
746
|
+
}
|
|
747
|
+
async listFeedback(...args) {
|
|
748
|
+
const delegate = await this.requireDelegate();
|
|
749
|
+
return delegate.listFeedback(...args);
|
|
750
|
+
}
|
|
751
|
+
};
|
|
752
|
+
var DuckDBStore = class extends storage.MastraCompositeStore {
|
|
753
|
+
db;
|
|
754
|
+
observabilityStore;
|
|
755
|
+
stores;
|
|
756
|
+
constructor(config = {}) {
|
|
757
|
+
const id = config.id ?? "duckdb";
|
|
758
|
+
super({ id, name: "DuckDBStore" });
|
|
759
|
+
this.db = new chunkS2AWBPTS_cjs.DuckDBConnection({ path: config.path });
|
|
760
|
+
this.observabilityStore = new ObservabilityStorageDuckDB({ db: this.db });
|
|
761
|
+
this.stores = {
|
|
762
|
+
observability: this.observabilityStore
|
|
763
|
+
};
|
|
764
|
+
}
|
|
765
|
+
/** Convenience accessor for the observability domain. */
|
|
766
|
+
get observability() {
|
|
767
|
+
return this.observabilityStore;
|
|
768
|
+
}
|
|
769
|
+
};
|
|
539
770
|
|
|
771
|
+
Object.defineProperty(exports, "DuckDBConnection", {
|
|
772
|
+
enumerable: true,
|
|
773
|
+
get: function () { return chunkS2AWBPTS_cjs.DuckDBConnection; }
|
|
774
|
+
});
|
|
775
|
+
exports.DuckDBStore = DuckDBStore;
|
|
540
776
|
exports.DuckDBVector = DuckDBVector;
|
|
777
|
+
exports.ObservabilityStorageDuckDB = ObservabilityStorageDuckDB;
|
|
541
778
|
//# sourceMappingURL=index.cjs.map
|
|
542
779
|
//# sourceMappingURL=index.cjs.map
|