@mastra/cloudflare 1.7.5-alpha.0 → 1.7.6-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/dist/do/index.cjs +1 -1
- package/dist/do/index.js +1 -2
- package/dist/do/storage/db/index.d.ts.map +1 -1
- package/dist/{do-D4lAj_Bf.js → do-BWVFzDmS.js} +46 -47
- package/dist/do-BWVFzDmS.js.map +1 -0
- package/dist/{do-CjtUyEjN.cjs → do-DLpNbVvV.cjs} +46 -47
- package/dist/do-DLpNbVvV.cjs.map +1 -0
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/docs/references/integrations-databases-cloudflare-kv.md +4 -0
- package/dist/index.cjs +2 -2
- package/dist/index.js +2 -2
- package/dist/kv/index.cjs +1 -1
- package/dist/kv/index.js +1 -2
- package/dist/{kv-CJ02qv2x.js → kv-BWTdU3Nl.js} +19 -21
- package/dist/kv-BWTdU3Nl.js.map +1 -0
- package/dist/{kv-DDF-qbWq.cjs → kv-sSeIiUri.cjs} +21 -24
- package/dist/kv-sSeIiUri.cjs.map +1 -0
- package/package.json +14 -15
- package/dist/do-CjtUyEjN.cjs.map +0 -1
- package/dist/do-D4lAj_Bf.js.map +0 -1
- package/dist/kv-CJ02qv2x.js.map +0 -1
- package/dist/kv-DDF-qbWq.cjs.map +0 -1
|
@@ -4,7 +4,7 @@ let _mastra_core_agent = require("@mastra/core/agent");
|
|
|
4
4
|
let _mastra_core_base = require("@mastra/core/base");
|
|
5
5
|
let _mastra_core_evals = require("@mastra/core/evals");
|
|
6
6
|
let _mastra_core_utils = require("@mastra/core/utils");
|
|
7
|
-
|
|
7
|
+
// src/do/storage/domains/utils.ts
|
|
8
8
|
function isArrayOfRecords(value) {
|
|
9
9
|
return value !== null && value !== void 0 && Array.isArray(value);
|
|
10
10
|
}
|
|
@@ -23,8 +23,7 @@ function deserializeValue(value, type) {
|
|
|
23
23
|
}
|
|
24
24
|
return value;
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
//#region src/do/storage/sql-builder.ts
|
|
26
|
+
// src/do/storage/sql-builder.ts
|
|
28
27
|
/**
|
|
29
28
|
* SQL Builder class for constructing type-safe SQL queries
|
|
30
29
|
* This helps create maintainable and secure SQL queries with proper parameter handling
|
|
@@ -267,8 +266,7 @@ function parseSelectIdentifier(column) {
|
|
|
267
266
|
if (column !== "*" && !SQL_IDENTIFIER_PATTERN.test(column)) throw new Error(`Invalid column name: "${column}". Must be "*" or a valid identifier (letters, numbers, underscores), optionally with "AS alias".`);
|
|
268
267
|
return column;
|
|
269
268
|
}
|
|
270
|
-
|
|
271
|
-
//#region src/do/storage/db/run-fencing.ts
|
|
269
|
+
// src/do/storage/db/run-fencing.ts
|
|
272
270
|
/**
|
|
273
271
|
* Epoch milliseconds on the database clock. `julianday('now')` rather than
|
|
274
272
|
* `unixepoch('subsec')`, which needs SQLite 3.42.
|
|
@@ -299,10 +297,11 @@ async function assertRunFence(db, { claimsTable, fence, operation }) {
|
|
|
299
297
|
params: [fence.runId],
|
|
300
298
|
first: true
|
|
301
299
|
});
|
|
302
|
-
|
|
300
|
+
const current = row ? {
|
|
303
301
|
generation: Number(row.generation),
|
|
304
302
|
ownerId: String(row.ownerId)
|
|
305
|
-
} : null
|
|
303
|
+
} : null;
|
|
304
|
+
if (!(0, _mastra_core_storage.matchesRunFence)(current, fence)) throw new _mastra_core_storage.RunFenceConflictError(fence, operation);
|
|
306
305
|
}
|
|
307
306
|
/**
|
|
308
307
|
* Runs one statement of a fenced write. With a check, `statement` must carry
|
|
@@ -328,8 +327,7 @@ async function executeFenced(db, check, { sql, params }) {
|
|
|
328
327
|
});
|
|
329
328
|
if (Array.isArray(rows) && rows.length === 0) await assertRunFence(db, check);
|
|
330
329
|
}
|
|
331
|
-
|
|
332
|
-
//#region src/do/storage/db/index.ts
|
|
330
|
+
// src/do/storage/db/index.ts
|
|
333
331
|
var DODB = class extends _mastra_core_base.MastraBase {
|
|
334
332
|
sql;
|
|
335
333
|
tablePrefix;
|
|
@@ -635,8 +633,7 @@ var DODB = class extends _mastra_core_base.MastraBase {
|
|
|
635
633
|
}
|
|
636
634
|
}
|
|
637
635
|
};
|
|
638
|
-
|
|
639
|
-
//#region src/do/storage/domains/background-tasks/index.ts
|
|
636
|
+
// src/do/storage/domains/background-tasks/index.ts
|
|
640
637
|
function serializeJson(v) {
|
|
641
638
|
if (typeof v === "object" && v != null) return JSON.stringify(v);
|
|
642
639
|
return v ?? void 0;
|
|
@@ -941,8 +938,7 @@ var BackgroundTasksStorageDO = class extends _mastra_core_storage.BackgroundTask
|
|
|
941
938
|
return total;
|
|
942
939
|
}
|
|
943
940
|
};
|
|
944
|
-
|
|
945
|
-
//#region src/do/storage/domains/memory/index.ts
|
|
941
|
+
// src/do/storage/domains/memory/index.ts
|
|
946
942
|
function addSqliteMetadataFilter(conditions, params, metadataFilter) {
|
|
947
943
|
if (!metadataFilter) return;
|
|
948
944
|
for (const [key, value] of Object.entries(metadataFilter)) {
|
|
@@ -1013,13 +1009,14 @@ var MemoryStorageDO = class MemoryStorageDO extends _mastra_core_storage.MemoryS
|
|
|
1013
1009
|
});
|
|
1014
1010
|
}
|
|
1015
1011
|
async prune(policies, options) {
|
|
1012
|
+
const targets = (0, _mastra_core_storage.resolveRetentionTargets)({
|
|
1013
|
+
policies,
|
|
1014
|
+
descriptor: MemoryStorageDO.retentionTables,
|
|
1015
|
+
order: ["runFences"]
|
|
1016
|
+
});
|
|
1016
1017
|
return (0, _mastra_core_storage.executeRetentionPrune)({
|
|
1017
1018
|
domain: "memory",
|
|
1018
|
-
targets
|
|
1019
|
-
policies,
|
|
1020
|
-
descriptor: MemoryStorageDO.retentionTables,
|
|
1021
|
-
order: ["runFences"]
|
|
1022
|
-
}),
|
|
1019
|
+
targets,
|
|
1023
1020
|
options,
|
|
1024
1021
|
cutoffFor: (target, now) => (0, _mastra_core_storage.retentionCutoffMs)(target.policy, now),
|
|
1025
1022
|
deleteBatch: (_target, cutoff, limit) => this.#db.pruneRunRows({
|
|
@@ -1794,15 +1791,17 @@ var MemoryStorageDO = class MemoryStorageDO extends _mastra_core_storage.MemoryS
|
|
|
1794
1791
|
const existing = existingMessagesMap.get(update.id);
|
|
1795
1792
|
if (!existing) continue;
|
|
1796
1793
|
let mergedContent = existing.content;
|
|
1797
|
-
if (update.content)
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1794
|
+
if (update.content) {
|
|
1795
|
+
if (typeof mergedContent === "object" && mergedContent !== null) mergedContent = {
|
|
1796
|
+
...mergedContent,
|
|
1797
|
+
...update.content,
|
|
1798
|
+
metadata: {
|
|
1799
|
+
...mergedContent.metadata,
|
|
1800
|
+
...update.content.metadata
|
|
1801
|
+
}
|
|
1802
|
+
};
|
|
1803
|
+
else mergedContent = update.content;
|
|
1804
|
+
}
|
|
1806
1805
|
updatedMessages.push({
|
|
1807
1806
|
...existing,
|
|
1808
1807
|
...update,
|
|
@@ -1867,8 +1866,7 @@ var MemoryStorageDO = class MemoryStorageDO extends _mastra_core_storage.MemoryS
|
|
|
1867
1866
|
}
|
|
1868
1867
|
}
|
|
1869
1868
|
};
|
|
1870
|
-
|
|
1871
|
-
//#region src/do/storage/domains/scores/index.ts
|
|
1869
|
+
// src/do/storage/domains/scores/index.ts
|
|
1872
1870
|
/** Appends multi-tenant scope conditions to a SQL builder query (no-op when no filters). */
|
|
1873
1871
|
function applyTenancyFilters(query, filters) {
|
|
1874
1872
|
if (filters?.organizationId !== void 0) query.andWhere("organizationId = ?", filters.organizationId);
|
|
@@ -1942,9 +1940,10 @@ var ScoresStorageDO = class extends _mastra_core_storage.ScoresStorage {
|
|
|
1942
1940
|
try {
|
|
1943
1941
|
const fullTableName = this.#db.getTableName(_mastra_core_storage.TABLE_SCORERS);
|
|
1944
1942
|
const serializedRecord = {};
|
|
1945
|
-
for (const [key, value] of Object.entries(parsedScore)) if (value !== null && value !== void 0)
|
|
1946
|
-
|
|
1947
|
-
|
|
1943
|
+
for (const [key, value] of Object.entries(parsedScore)) if (value !== null && value !== void 0) {
|
|
1944
|
+
if (typeof value === "object") serializedRecord[key] = JSON.stringify(value);
|
|
1945
|
+
else serializedRecord[key] = value;
|
|
1946
|
+
} else serializedRecord[key] = null;
|
|
1948
1947
|
const now = /* @__PURE__ */ new Date();
|
|
1949
1948
|
serializedRecord.id = id;
|
|
1950
1949
|
serializedRecord.createdAt = now.toISOString();
|
|
@@ -2166,8 +2165,7 @@ var ScoresStorageDO = class extends _mastra_core_storage.ScoresStorage {
|
|
|
2166
2165
|
}
|
|
2167
2166
|
}
|
|
2168
2167
|
};
|
|
2169
|
-
|
|
2170
|
-
//#region src/do/storage/domains/workflows/index.ts
|
|
2168
|
+
// src/do/storage/domains/workflows/index.ts
|
|
2171
2169
|
const RUN_OWNER_COLUMNS = `generation, ownerId, leaseExpiresAt, ${DB_NOW_MS} AS nowMs`;
|
|
2172
2170
|
/**
|
|
2173
2171
|
* A run's first generation is the database clock, so a run claimed again after
|
|
@@ -2215,13 +2213,14 @@ var WorkflowsStorageDO = class WorkflowsStorageDO extends _mastra_core_storage.W
|
|
|
2215
2213
|
});
|
|
2216
2214
|
}
|
|
2217
2215
|
async prune(policies, options) {
|
|
2216
|
+
const targets = (0, _mastra_core_storage.resolveRetentionTargets)({
|
|
2217
|
+
policies,
|
|
2218
|
+
descriptor: WorkflowsStorageDO.retentionTables,
|
|
2219
|
+
order: ["runOwnership"]
|
|
2220
|
+
});
|
|
2218
2221
|
return (0, _mastra_core_storage.executeRetentionPrune)({
|
|
2219
2222
|
domain: "workflows",
|
|
2220
|
-
targets
|
|
2221
|
-
policies,
|
|
2222
|
-
descriptor: WorkflowsStorageDO.retentionTables,
|
|
2223
|
-
order: ["runOwnership"]
|
|
2224
|
-
}),
|
|
2223
|
+
targets,
|
|
2225
2224
|
options,
|
|
2226
2225
|
cutoffFor: (target, now) => (0, _mastra_core_storage.retentionCutoffMs)(target.policy, now),
|
|
2227
2226
|
deleteBatch: (_target, cutoff, limit) => this.#db.pruneRunRows({
|
|
@@ -2486,10 +2485,12 @@ var WorkflowsStorageDO = class WorkflowsStorageDO extends _mastra_core_storage.W
|
|
|
2486
2485
|
builder.whereAnd("CASE WHEN json_valid(snapshot) THEN json_extract(snapshot, '$.status') END = ?", status);
|
|
2487
2486
|
countBuilder.whereAnd("CASE WHEN json_valid(snapshot) THEN json_extract(snapshot, '$.status') END = ?", status);
|
|
2488
2487
|
}
|
|
2489
|
-
if (resourceId)
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2488
|
+
if (resourceId) {
|
|
2489
|
+
if (await this.#db.hasColumn(fullTableName, "resourceId")) {
|
|
2490
|
+
builder.whereAnd("resourceId = ?", resourceId);
|
|
2491
|
+
countBuilder.whereAnd("resourceId = ?", resourceId);
|
|
2492
|
+
} else this.logger.warn(`[${fullTableName}] resourceId column not found. Skipping resourceId filter.`);
|
|
2493
|
+
}
|
|
2493
2494
|
if (fromDate) {
|
|
2494
2495
|
builder.whereAnd("createdAt >= ?", fromDate instanceof Date ? fromDate.toISOString() : fromDate);
|
|
2495
2496
|
countBuilder.whereAnd("createdAt >= ?", fromDate instanceof Date ? fromDate.toISOString() : fromDate);
|
|
@@ -2594,8 +2595,7 @@ var WorkflowsStorageDO = class WorkflowsStorageDO extends _mastra_core_storage.W
|
|
|
2594
2595
|
}
|
|
2595
2596
|
}
|
|
2596
2597
|
};
|
|
2597
|
-
|
|
2598
|
-
//#region src/do/index.ts
|
|
2598
|
+
// src/do/index.ts
|
|
2599
2599
|
/**
|
|
2600
2600
|
* Cloudflare Durable Objects storage adapter for Mastra.
|
|
2601
2601
|
*
|
|
@@ -2673,7 +2673,6 @@ var CloudflareDOStorage = class extends _mastra_core_storage.MastraCompositeStor
|
|
|
2673
2673
|
* @deprecated Use CloudflareDOStorage instead
|
|
2674
2674
|
*/
|
|
2675
2675
|
const DOStore = CloudflareDOStorage;
|
|
2676
|
-
//#endregion
|
|
2677
2676
|
Object.defineProperty(exports, "BackgroundTasksStorageDO", {
|
|
2678
2677
|
enumerable: true,
|
|
2679
2678
|
get: function() {
|
|
@@ -2717,4 +2716,4 @@ Object.defineProperty(exports, "WorkflowsStorageDO", {
|
|
|
2717
2716
|
}
|
|
2718
2717
|
});
|
|
2719
2718
|
|
|
2720
|
-
//# sourceMappingURL=do-
|
|
2719
|
+
//# sourceMappingURL=do-DLpNbVvV.cjs.map
|