@mastra/duckdb 1.10.0-alpha.1 → 1.10.0-alpha.2

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.
@@ -3,7 +3,7 @@ name: mastra-duckdb
3
3
  description: Documentation for @mastra/duckdb. Use when working with @mastra/duckdb APIs, configuration, or implementation.
4
4
  metadata:
5
5
  package: "@mastra/duckdb"
6
- version: "1.10.0-alpha.1"
6
+ version: "1.10.0-alpha.2"
7
7
  ---
8
8
 
9
9
  ## When to use
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.10.0-alpha.1",
2
+ "version": "1.10.0-alpha.2",
3
3
  "package": "@mastra/duckdb",
4
4
  "exports": {},
5
5
  "modules": {}
package/dist/index.cjs CHANGED
@@ -532,7 +532,7 @@ var ObservabilityStorageDuckDB = class extends _mastra_core_storage.Observabilit
532
532
  async loadDelegate() {
533
533
  if (this.delegate) return this.delegate;
534
534
  if (this.unavailableError) return null;
535
- if (!this.loadPromise) this.loadPromise = Promise.resolve().then(() => require("./observability-CL_Bv53d.cjs")).then(({ ObservabilityStorageDuckDB }) => {
535
+ if (!this.loadPromise) this.loadPromise = Promise.resolve().then(() => require("./observability-CCPCADER.cjs")).then(({ ObservabilityStorageDuckDB }) => {
536
536
  const delegate = new ObservabilityStorageDuckDB({ db: this.db });
537
537
  this.delegate = delegate;
538
538
  return delegate;
package/dist/index.js CHANGED
@@ -531,7 +531,7 @@ var ObservabilityStorageDuckDB = class extends ObservabilityStorage {
531
531
  async loadDelegate() {
532
532
  if (this.delegate) return this.delegate;
533
533
  if (this.unavailableError) return null;
534
- if (!this.loadPromise) this.loadPromise = import("./observability-W6La6xQK.js").then(({ ObservabilityStorageDuckDB }) => {
534
+ if (!this.loadPromise) this.loadPromise = import("./observability-VRBKtkKz.js").then(({ ObservabilityStorageDuckDB }) => {
535
535
  const delegate = new ObservabilityStorageDuckDB({ db: this.db });
536
536
  this.delegate = delegate;
537
537
  return delegate;
@@ -2442,7 +2442,13 @@ async function createScore(db, args) {
2442
2442
  /** Insert multiple score events in a single statement. */
2443
2443
  async function batchCreateScores(db, args) {
2444
2444
  if (args.scores.length === 0) return;
2445
- const tuples = args.scores.map((s) => {
2445
+ const currentScores = /* @__PURE__ */ new Map();
2446
+ for (const score of args.scores) {
2447
+ const key = score.scoreId ?? Symbol();
2448
+ currentScores.delete(key);
2449
+ currentScores.set(key, score);
2450
+ }
2451
+ const tuples = [...currentScores.values()].map((s) => {
2446
2452
  const legacyScore = s;
2447
2453
  const scoreSource = legacyScore.scoreSource ?? legacyScore.source ?? null;
2448
2454
  return `(${[
@@ -3204,6 +3210,27 @@ LIMIT ?`,
3204
3210
  }
3205
3211
  const orderField = plan.orderBy.field;
3206
3212
  const direction = plan.orderBy.direction === "asc" ? "ASC" : "DESC";
3213
+ if (plan.paginationMode === "page") {
3214
+ values.push(plan.perPage, plan.page * plan.perPage);
3215
+ return {
3216
+ sql: `${candidates},
3217
+ page_rows AS (
3218
+ SELECT *, row_number() OVER (ORDER BY ${orderField} ${direction}, traceId ASC) AS __row_position
3219
+ FROM candidates
3220
+ ORDER BY ${orderField} ${direction}, traceId ASC
3221
+ LIMIT ? OFFSET ?
3222
+ ),
3223
+ page_total AS (
3224
+ SELECT COUNT(*) AS total
3225
+ FROM candidates
3226
+ )
3227
+ SELECT page_rows.*, page_total.total
3228
+ FROM page_total
3229
+ LEFT JOIN page_rows ON TRUE
3230
+ ORDER BY page_rows.__row_position ASC NULLS LAST`,
3231
+ values
3232
+ };
3233
+ }
3207
3234
  let pageCondition = "";
3208
3235
  if (plan.cursor) {
3209
3236
  pageCondition = `WHERE (${orderField} ${plan.orderBy.direction === "asc" ? ">" : "<"} CAST(? AS TIMESTAMP) OR (${orderField} = CAST(? AS TIMESTAMP) AND traceId > ?))`;
@@ -3366,6 +3393,38 @@ function asIsoTimestamp(value) {
3366
3393
  return value instanceof Date ? value.toISOString() : new Date(value).toISOString();
3367
3394
  }
3368
3395
  async function queryTraces(db, plan) {
3396
+ if (plan.paginationMode === "page") {
3397
+ const query = compileDuckDBTraceQuery(plan);
3398
+ const rows = await db.query(query.sql, query.values);
3399
+ const total = Number(rows[0]?.total ?? 0);
3400
+ const traces = rows.filter((row) => row.traceId != null).map((row) => ({
3401
+ traceId: String(row.traceId),
3402
+ rootSpanId: String(row.rootSpanId),
3403
+ name: row.name,
3404
+ entityId: row.entityId ?? null,
3405
+ parentSpanId: row.parentSpanId ?? null,
3406
+ createdAt: asIsoTimestamp(row.startedAt),
3407
+ metadata: parseJson(row.metadata) ?? null,
3408
+ inputPreview: _mastra_core_storage.buildInputPreview(row.input) ?? null,
3409
+ threadId: row.threadId == null ? null : String(row.threadId),
3410
+ resourceId: row.resourceId == null ? null : String(row.resourceId),
3411
+ startedAt: asIsoTimestamp(row.startedAt),
3412
+ endedAt: asIsoTimestamp(row.endedAt),
3413
+ entityName: row.entityName == null ? null : String(row.entityName),
3414
+ entityType: row.entityType == null ? null : String(row.entityType),
3415
+ environment: row.environment == null ? null : String(row.environment),
3416
+ status: row.status
3417
+ }));
3418
+ return _mastra_core_storage.traceQueryResponseSchema.parse({
3419
+ traces,
3420
+ pagination: {
3421
+ total,
3422
+ page: plan.page,
3423
+ perPage: plan.perPage,
3424
+ hasMore: (plan.page + 1) * plan.perPage < total
3425
+ }
3426
+ });
3427
+ }
3369
3428
  const query = compileDuckDBTraceQuery(plan);
3370
3429
  const rows = await db.query(query.sql, query.values);
3371
3430
  const visibleRows = rows.slice(0, plan.limit);
@@ -4872,4 +4931,4 @@ var ObservabilityStorageDuckDB = class ObservabilityStorageDuckDB extends _mastr
4872
4931
  //#endregion
4873
4932
  exports.ObservabilityStorageDuckDB = ObservabilityStorageDuckDB;
4874
4933
 
4875
- //# sourceMappingURL=observability-CL_Bv53d.cjs.map
4934
+ //# sourceMappingURL=observability-CCPCADER.cjs.map