@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.
Files changed (48) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/LICENSE.md +15 -0
  3. package/dist/chunk-37GBWD4M.js +195 -0
  4. package/dist/chunk-37GBWD4M.js.map +1 -0
  5. package/dist/chunk-S2AWBPTS.cjs +198 -0
  6. package/dist/chunk-S2AWBPTS.cjs.map +1 -0
  7. package/dist/docs/SKILL.md +2 -2
  8. package/dist/docs/assets/SOURCE_MAP.json +8 -2
  9. package/dist/docs/references/reference-vectors-duckdb.md +46 -46
  10. package/dist/index.cjs +241 -4
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.ts +5 -2
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +238 -6
  15. package/dist/index.js.map +1 -1
  16. package/dist/observability-PW6J27KS.js +1675 -0
  17. package/dist/observability-PW6J27KS.js.map +1 -0
  18. package/dist/observability-W2QRBK56.cjs +1677 -0
  19. package/dist/observability-W2QRBK56.cjs.map +1 -0
  20. package/dist/storage/db/index.d.ts +46 -0
  21. package/dist/storage/db/index.d.ts.map +1 -0
  22. package/dist/storage/domains/observability/ddl.d.ts +25 -0
  23. package/dist/storage/domains/observability/ddl.d.ts.map +1 -0
  24. package/dist/storage/domains/observability/discovery.d.ts +13 -0
  25. package/dist/storage/domains/observability/discovery.d.ts.map +1 -0
  26. package/dist/storage/domains/observability/feedback.d.ts +9 -0
  27. package/dist/storage/domains/observability/feedback.d.ts.map +1 -0
  28. package/dist/storage/domains/observability/filters.d.ts +27 -0
  29. package/dist/storage/domains/observability/filters.d.ts.map +1 -0
  30. package/dist/storage/domains/observability/helpers.d.ts +14 -0
  31. package/dist/storage/domains/observability/helpers.d.ts.map +1 -0
  32. package/dist/storage/domains/observability/index.d.ts +54 -0
  33. package/dist/storage/domains/observability/index.d.ts.map +1 -0
  34. package/dist/storage/domains/observability/logs.d.ts +7 -0
  35. package/dist/storage/domains/observability/logs.d.ts.map +1 -0
  36. package/dist/storage/domains/observability/metrics.d.ts +21 -0
  37. package/dist/storage/domains/observability/metrics.d.ts.map +1 -0
  38. package/dist/storage/domains/observability/scores.d.ts +9 -0
  39. package/dist/storage/domains/observability/scores.d.ts.map +1 -0
  40. package/dist/storage/domains/observability/tracing.d.ts +17 -0
  41. package/dist/storage/domains/observability/tracing.d.ts.map +1 -0
  42. package/dist/storage/index.d.ts +101 -0
  43. package/dist/storage/index.d.ts.map +1 -0
  44. package/dist/vector/filter-builder.d.ts +1 -0
  45. package/dist/vector/filter-builder.d.ts.map +1 -1
  46. package/dist/vector/index.d.ts +9 -0
  47. package/dist/vector/index.d.ts.map +1 -1
  48. package/package.json +7 -7
@@ -1,4 +1,4 @@
1
- # DuckDBVector Store
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 Options
76
+ ## Constructor options
77
77
 
78
- **id:** (`string`): Unique identifier for the vector store instance
78
+ **id** (`string`): Unique identifier for the vector store instance
79
79
 
80
- **path?:** (`string`): Database file path. Use ':memory:' for in-memory database, or a file path like './vectors.duckdb' for persistence. (Default: `':memory:'`)
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?:** (`number`): Default dimension for vector embeddings (Default: `1536`)
82
+ **dimensions** (`number`): Default dimension for vector embeddings (Default: `1536`)
83
83
 
84
- **metric?:** (`'cosine' | 'euclidean' | 'dotproduct'`): Default distance metric for similarity search (Default: `cosine`)
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:** (`string`): Name of the index to create
92
+ **indexName** (`string`): Name of the index to create
93
93
 
94
- **dimension:** (`number`): Vector dimension size (must match your embedding model)
94
+ **dimension** (`number`): Vector dimension size (must match your embedding model)
95
95
 
96
- **metric?:** (`'cosine' | 'euclidean' | 'dotproduct'`): Distance metric for similarity search (Default: `cosine`)
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:** (`string`): Name of the index to insert into
102
+ **indexName** (`string`): Name of the index to insert into
103
103
 
104
- **vectors:** (`number[][]`): Array of embedding vectors
104
+ **vectors** (`number[][]`): Array of embedding vectors
105
105
 
106
- **metadata?:** (`Record<string, any>[]`): Metadata for each vector
106
+ **metadata** (`Record<string, any>[]`): Metadata for each vector
107
107
 
108
- **ids?:** (`string[]`): Optional vector IDs (auto-generated UUIDs if not provided)
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:** (`string`): Name of the index to search in
114
+ **indexName** (`string`): Name of the index to search in
115
115
 
116
- **queryVector:** (`number[]`): Query vector to find similar vectors for
116
+ **queryVector** (`number[]`): Query vector to find similar vectors for
117
117
 
118
- **topK?:** (`number`): Number of results to return (Default: `10`)
118
+ **topK** (`number`): Number of results to return (Default: `10`)
119
119
 
120
- **filter?:** (`Filter`): Metadata filters using MongoDB-like query syntax
120
+ **filter** (`Filter`): Metadata filters using MongoDB-like query syntax
121
121
 
122
- **includeVector?:** (`boolean`): Whether to include vector data in results (Default: `false`)
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:** (`string`): Name of the index to describe
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:** (`string`): Name of the index to delete
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:** (`string`): Name of the index containing the vector
156
+ **indexName** (`string`): Name of the index containing the vector
157
157
 
158
- **id?:** (`string`): ID of the vector entry to update (mutually exclusive with filter)
158
+ **id** (`string`): ID of the vector entry to update (mutually exclusive with filter)
159
159
 
160
- **filter?:** (`Record<string, any>`): Metadata filter to identify vector(s) to update (mutually exclusive with id)
160
+ **filter** (`Record<string, any>`): Metadata filter to identify vector(s) to update (mutually exclusive with id)
161
161
 
162
- **update:** (`object`): Update data containing vector and/or metadata
162
+ **update** (`object`): Update data containing vector and/or metadata
163
163
 
164
- **update.vector?:** (`number[]`): New vector data to update
164
+ **update.vector** (`number[]`): New vector data to update
165
165
 
166
- **update.metadata?:** (`Record<string, any>`): New metadata to update
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:** (`string`): Name of the index containing the vector
172
+ **indexName** (`string`): Name of the index containing the vector
173
173
 
174
- **id:** (`string`): ID of the vector entry to delete
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:** (`string`): Name of the index containing the vectors to delete
180
+ **indexName** (`string`): Name of the index containing the vectors to delete
181
181
 
182
- **ids?:** (`string[]`): Array of vector IDs to delete (mutually exclusive with filter)
182
+ **ids** (`string[]`): Array of vector IDs to delete (mutually exclusive with filter)
183
183
 
184
- **filter?:** (`Record<string, any>`): Metadata filter to identify vectors to delete (mutually exclusive with ids)
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 Types
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 Operators
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 Metrics
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 Handling
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 Cases
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
- stmt.bind(params);
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
- stmt.bind(params);
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