@mastra/duckdb 1.19.0-alpha.1 → 1.19.0-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.
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +3 -3
- package/dist/index.cjs +9 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/{observability-BFd3wUzd.js → observability-CAZKL0je.js} +30 -6
- package/dist/observability-CAZKL0je.js.map +1 -0
- package/dist/{observability-YXMSShsG.cjs → observability-DGLhUhwg.cjs} +30 -6
- package/dist/observability-DGLhUhwg.cjs.map +1 -0
- package/dist/storage/domains/observability/feedback.d.ts +1 -1
- package/dist/storage/domains/observability/feedback.d.ts.map +1 -1
- package/dist/storage/domains/observability/index.d.ts +3 -1
- package/dist/storage/domains/observability/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +2 -0
- package/dist/storage/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/observability-BFd3wUzd.js.map +0 -1
- package/dist/observability-YXMSShsG.cjs.map +0 -1
|
@@ -1151,11 +1151,11 @@ function getComparisonDateRange$1(comparePeriod, timestamp) {
|
|
|
1151
1151
|
}
|
|
1152
1152
|
}
|
|
1153
1153
|
/** Insert a single feedback event. */
|
|
1154
|
-
async function createFeedback(db, args) {
|
|
1154
|
+
async function createFeedback(db, args, preserveIdentity = false) {
|
|
1155
1155
|
const f = args.feedback;
|
|
1156
1156
|
const feedbackSource = f.feedbackSource ?? f.source ?? "";
|
|
1157
1157
|
const feedbackUserId = f.feedbackUserId !== void 0 ? f.feedbackUserId : f.userId ?? null;
|
|
1158
|
-
|
|
1158
|
+
const sql = `INSERT INTO feedback_events (
|
|
1159
1159
|
feedbackId, timestamp, cursorId, traceId, spanId, experimentId,
|
|
1160
1160
|
entityType, entityId, entityName, entityVersionId, parentEntityVersionId, parentEntityType, parentEntityId, parentEntityName, rootEntityVersionId, rootEntityType, rootEntityId, rootEntityName,
|
|
1161
1161
|
userId, organizationId, resourceId, runId, sessionId, threadId, requestId, environment, executionSource, serviceName,
|
|
@@ -1203,12 +1203,25 @@ async function createFeedback(db, args) {
|
|
|
1203
1203
|
jsonV(f.metadata),
|
|
1204
1204
|
jsonV(f.scope ?? null)
|
|
1205
1205
|
].join(", ")})
|
|
1206
|
-
${FEEDBACK_UPSERT_CLAUSE}
|
|
1206
|
+
${args.onConflict === "ignore" ? "ON CONFLICT DO NOTHING" : FEEDBACK_UPSERT_CLAUSE}`;
|
|
1207
|
+
if (preserveIdentity) {
|
|
1208
|
+
if (!(await db.query(`${sql}
|
|
1209
|
+
WHERE feedback_events.traceId IS NOT DISTINCT FROM excluded.traceId
|
|
1210
|
+
AND feedback_events.timestamp IS NOT DISTINCT FROM excluded.timestamp
|
|
1211
|
+
AND feedback_events.organizationId IS NOT DISTINCT FROM excluded.organizationId
|
|
1212
|
+
AND feedback_events.resourceId IS NOT DISTINCT FROM excluded.resourceId
|
|
1213
|
+
RETURNING feedbackId`)).length) throw new _mastra_core_error.MastraError({
|
|
1214
|
+
id: "OBSERVABILITY_FEEDBACK_IDENTITY_CONFLICT",
|
|
1215
|
+
domain: _mastra_core_error.ErrorDomain.MASTRA_OBSERVABILITY,
|
|
1216
|
+
category: _mastra_core_error.ErrorCategory.USER,
|
|
1217
|
+
text: "Feedback replacement must preserve its trace, timestamp, and tenant"
|
|
1218
|
+
});
|
|
1219
|
+
} else await db.execute(sql);
|
|
1207
1220
|
}
|
|
1208
1221
|
/** Insert multiple feedback events in a single statement. */
|
|
1209
1222
|
async function batchCreateFeedback(db, args) {
|
|
1210
1223
|
if (args.feedbacks.length === 0) return;
|
|
1211
|
-
const tuples = [...new Map(args.feedbacks.map((feedback) => [feedback.feedbackId, feedback])).values()].map((f) => {
|
|
1224
|
+
const tuples = [...new Map((args.onConflict === "ignore" ? [...args.feedbacks].reverse() : args.feedbacks).map((feedback) => [feedback.feedbackId, feedback])).values()].map((f) => {
|
|
1212
1225
|
const legacyFeedback = f;
|
|
1213
1226
|
const feedbackSource = legacyFeedback.feedbackSource ?? legacyFeedback.source ?? "";
|
|
1214
1227
|
const feedbackUserId = legacyFeedback.feedbackUserId !== void 0 ? legacyFeedback.feedbackUserId : legacyFeedback.userId ?? null;
|
|
@@ -1262,7 +1275,7 @@ async function batchCreateFeedback(db, args) {
|
|
|
1262
1275
|
feedbackUserId, sourceId, reviewStatus, feedbackSource, feedbackType, value, valueString, valueNumber, comment, tags, metadata, scope
|
|
1263
1276
|
)
|
|
1264
1277
|
VALUES ${tuples.join(",\n ")}
|
|
1265
|
-
${FEEDBACK_UPSERT_CLAUSE}`);
|
|
1278
|
+
${args.onConflict === "ignore" ? "ON CONFLICT DO NOTHING" : FEEDBACK_UPSERT_CLAUSE}`);
|
|
1266
1279
|
}
|
|
1267
1280
|
/**
|
|
1268
1281
|
* Delete feedback events by feedbackId. Optional `organizationId` and
|
|
@@ -6372,6 +6385,9 @@ ${args.tables.map((table) => ` - ${table.table}`).join("\n")}\n\nTo fix this, r
|
|
|
6372
6385
|
* Uses an append-only event-sourced model with SQL-based reconstruction for spans.
|
|
6373
6386
|
*/
|
|
6374
6387
|
var ObservabilityStorageDuckDB = class ObservabilityStorageDuckDB extends _mastra_core_storage.ObservabilityStorage {
|
|
6388
|
+
get persistenceLocation() {
|
|
6389
|
+
return "local";
|
|
6390
|
+
}
|
|
6375
6391
|
static retentionTables = {
|
|
6376
6392
|
spans: {
|
|
6377
6393
|
table: "span_events",
|
|
@@ -6497,6 +6513,7 @@ var ObservabilityStorageDuckDB = class ObservabilityStorageDuckDB extends _mastr
|
|
|
6497
6513
|
"thread-query",
|
|
6498
6514
|
"trace-query-tenant-scope",
|
|
6499
6515
|
"feedback",
|
|
6516
|
+
"feedback-replacement",
|
|
6500
6517
|
"trace-query-context-ids",
|
|
6501
6518
|
...require_features.contextFieldFeatures,
|
|
6502
6519
|
...require_features.timingFeatures,
|
|
@@ -6525,6 +6542,7 @@ var ObservabilityStorageDuckDB = class ObservabilityStorageDuckDB extends _mastr
|
|
|
6525
6542
|
"thread-query",
|
|
6526
6543
|
"trace-query-tenant-scope",
|
|
6527
6544
|
"feedback",
|
|
6545
|
+
"feedback-replacement",
|
|
6528
6546
|
"trace-query-context-ids",
|
|
6529
6547
|
...require_features.contextFieldFeatures,
|
|
6530
6548
|
...require_features.timingFeatures,
|
|
@@ -6667,6 +6685,12 @@ var ObservabilityStorageDuckDB = class ObservabilityStorageDuckDB extends _mastr
|
|
|
6667
6685
|
async getScorePercentiles(args) {
|
|
6668
6686
|
return getScorePercentiles(this.db, args);
|
|
6669
6687
|
}
|
|
6688
|
+
async writeFeedbackReplacement(args) {
|
|
6689
|
+
return createFeedback(this.db, {
|
|
6690
|
+
feedback: args.feedback,
|
|
6691
|
+
onConflict: "replace"
|
|
6692
|
+
}, true);
|
|
6693
|
+
}
|
|
6670
6694
|
async createFeedback(args) {
|
|
6671
6695
|
return createFeedback(this.db, args);
|
|
6672
6696
|
}
|
|
@@ -6697,4 +6721,4 @@ var ObservabilityStorageDuckDB = class ObservabilityStorageDuckDB extends _mastr
|
|
|
6697
6721
|
};
|
|
6698
6722
|
exports.ObservabilityStorageDuckDB = ObservabilityStorageDuckDB;
|
|
6699
6723
|
|
|
6700
|
-
//# sourceMappingURL=observability-
|
|
6724
|
+
//# sourceMappingURL=observability-DGLhUhwg.cjs.map
|