@mastra/cloudflare 0.10.2-alpha.1 → 0.10.2-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/_tsup-dts-rollup.d.cts +20 -8
- package/dist/_tsup-dts-rollup.d.ts +20 -8
- package/dist/index.cjs +23 -7
- package/dist/index.js +23 -7
- package/package.json +3 -3
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { EvalRow } from '@mastra/core/storage';
|
|
2
2
|
import type { KVNamespace as KVNamespace_2 } from '@cloudflare/workers-types';
|
|
3
3
|
import { KVNamespaceListKey as KVNamespaceListKey_2 } from '@cloudflare/workers-types';
|
|
4
|
+
import type { MastraMessageV1 } from '@mastra/core/memory';
|
|
5
|
+
import type { MastraMessageV2 } from '@mastra/core/agent';
|
|
6
|
+
import type { MastraMessageV2 as MastraMessageV2_2 } from '@mastra/core/memory';
|
|
7
|
+
import type { MastraMessageV2 as MastraMessageV2_3 } from '@mastra/core';
|
|
4
8
|
import { MastraStorage } from '@mastra/core/storage';
|
|
5
|
-
import type { MessageType } from '@mastra/core/memory';
|
|
6
|
-
import type { MessageType as MessageType_2 } from '@mastra/core';
|
|
7
9
|
import type { StorageColumn } from '@mastra/core/storage';
|
|
8
10
|
import type { StorageGetMessagesArg } from '@mastra/core/storage';
|
|
9
11
|
import type { StorageThreadType } from '@mastra/core/memory';
|
|
@@ -144,10 +146,20 @@ declare class CloudflareStore extends MastraStorage {
|
|
|
144
146
|
}): Promise<void>;
|
|
145
147
|
private getMessageKey;
|
|
146
148
|
private getThreadMessagesKey;
|
|
147
|
-
saveMessages(
|
|
148
|
-
messages:
|
|
149
|
-
|
|
150
|
-
|
|
149
|
+
saveMessages(args: {
|
|
150
|
+
messages: MastraMessageV1[];
|
|
151
|
+
format?: undefined | 'v1';
|
|
152
|
+
}): Promise<MastraMessageV1[]>;
|
|
153
|
+
saveMessages(args: {
|
|
154
|
+
messages: MastraMessageV2[];
|
|
155
|
+
format: 'v2';
|
|
156
|
+
}): Promise<MastraMessageV2[]>;
|
|
157
|
+
getMessages(args: StorageGetMessagesArg & {
|
|
158
|
+
format?: 'v1';
|
|
159
|
+
}): Promise<MastraMessageV1[]>;
|
|
160
|
+
getMessages(args: StorageGetMessagesArg & {
|
|
161
|
+
format: 'v2';
|
|
162
|
+
}): Promise<MastraMessageV2[]>;
|
|
151
163
|
private validateWorkflowParams;
|
|
152
164
|
private validateWorkflowState;
|
|
153
165
|
private normalizeSteps;
|
|
@@ -216,7 +228,7 @@ export declare interface CloudflareWorkersConfig {
|
|
|
216
228
|
keyPrefix?: string;
|
|
217
229
|
}
|
|
218
230
|
|
|
219
|
-
export declare const createSampleMessage: (threadId: string) =>
|
|
231
|
+
export declare const createSampleMessage: (threadId: string, parts?: MastraMessageV2_3["content"]["parts"]) => MastraMessageV2_3;
|
|
220
232
|
|
|
221
233
|
export declare const createSampleThread: () => {
|
|
222
234
|
id: string;
|
|
@@ -278,7 +290,7 @@ export declare type ListOptions = {
|
|
|
278
290
|
|
|
279
291
|
export declare type RecordTypes = {
|
|
280
292
|
[TABLE_THREADS]: StorageThreadType;
|
|
281
|
-
[TABLE_MESSAGES]:
|
|
293
|
+
[TABLE_MESSAGES]: MastraMessageV2_2;
|
|
282
294
|
[TABLE_WORKFLOW_SNAPSHOT]: WorkflowRunState;
|
|
283
295
|
[TABLE_EVALS]: EvalRow;
|
|
284
296
|
[TABLE_TRACES]: any;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { EvalRow } from '@mastra/core/storage';
|
|
2
2
|
import type { KVNamespace as KVNamespace_2 } from '@cloudflare/workers-types';
|
|
3
3
|
import { KVNamespaceListKey as KVNamespaceListKey_2 } from '@cloudflare/workers-types';
|
|
4
|
+
import type { MastraMessageV1 } from '@mastra/core/memory';
|
|
5
|
+
import type { MastraMessageV2 } from '@mastra/core/agent';
|
|
6
|
+
import type { MastraMessageV2 as MastraMessageV2_2 } from '@mastra/core/memory';
|
|
7
|
+
import type { MastraMessageV2 as MastraMessageV2_3 } from '@mastra/core';
|
|
4
8
|
import { MastraStorage } from '@mastra/core/storage';
|
|
5
|
-
import type { MessageType } from '@mastra/core/memory';
|
|
6
|
-
import type { MessageType as MessageType_2 } from '@mastra/core';
|
|
7
9
|
import type { StorageColumn } from '@mastra/core/storage';
|
|
8
10
|
import type { StorageGetMessagesArg } from '@mastra/core/storage';
|
|
9
11
|
import type { StorageThreadType } from '@mastra/core/memory';
|
|
@@ -144,10 +146,20 @@ declare class CloudflareStore extends MastraStorage {
|
|
|
144
146
|
}): Promise<void>;
|
|
145
147
|
private getMessageKey;
|
|
146
148
|
private getThreadMessagesKey;
|
|
147
|
-
saveMessages(
|
|
148
|
-
messages:
|
|
149
|
-
|
|
150
|
-
|
|
149
|
+
saveMessages(args: {
|
|
150
|
+
messages: MastraMessageV1[];
|
|
151
|
+
format?: undefined | 'v1';
|
|
152
|
+
}): Promise<MastraMessageV1[]>;
|
|
153
|
+
saveMessages(args: {
|
|
154
|
+
messages: MastraMessageV2[];
|
|
155
|
+
format: 'v2';
|
|
156
|
+
}): Promise<MastraMessageV2[]>;
|
|
157
|
+
getMessages(args: StorageGetMessagesArg & {
|
|
158
|
+
format?: 'v1';
|
|
159
|
+
}): Promise<MastraMessageV1[]>;
|
|
160
|
+
getMessages(args: StorageGetMessagesArg & {
|
|
161
|
+
format: 'v2';
|
|
162
|
+
}): Promise<MastraMessageV2[]>;
|
|
151
163
|
private validateWorkflowParams;
|
|
152
164
|
private validateWorkflowState;
|
|
153
165
|
private normalizeSteps;
|
|
@@ -216,7 +228,7 @@ export declare interface CloudflareWorkersConfig {
|
|
|
216
228
|
keyPrefix?: string;
|
|
217
229
|
}
|
|
218
230
|
|
|
219
|
-
export declare const createSampleMessage: (threadId: string) =>
|
|
231
|
+
export declare const createSampleMessage: (threadId: string, parts?: MastraMessageV2_3["content"]["parts"]) => MastraMessageV2_3;
|
|
220
232
|
|
|
221
233
|
export declare const createSampleThread: () => {
|
|
222
234
|
id: string;
|
|
@@ -278,7 +290,7 @@ export declare type ListOptions = {
|
|
|
278
290
|
|
|
279
291
|
export declare type RecordTypes = {
|
|
280
292
|
[TABLE_THREADS]: StorageThreadType;
|
|
281
|
-
[TABLE_MESSAGES]:
|
|
293
|
+
[TABLE_MESSAGES]: MastraMessageV2_2;
|
|
282
294
|
[TABLE_WORKFLOW_SNAPSHOT]: WorkflowRunState;
|
|
283
295
|
[TABLE_EVALS]: EvalRow;
|
|
284
296
|
[TABLE_TRACES]: any;
|
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var agent = require('@mastra/core/agent');
|
|
3
4
|
var storage = require('@mastra/core/storage');
|
|
4
5
|
var Cloudflare = require('cloudflare');
|
|
5
6
|
|
|
@@ -812,7 +813,8 @@ var CloudflareStore = class extends storage.MastraStorage {
|
|
|
812
813
|
throw error;
|
|
813
814
|
}
|
|
814
815
|
}
|
|
815
|
-
async saveMessages(
|
|
816
|
+
async saveMessages(args) {
|
|
817
|
+
const { messages, format = "v1" } = args;
|
|
816
818
|
if (!Array.isArray(messages) || messages.length === 0) return [];
|
|
817
819
|
try {
|
|
818
820
|
const validatedMessages = messages.map((message, index) => {
|
|
@@ -833,10 +835,12 @@ var CloudflareStore = class extends storage.MastraStorage {
|
|
|
833
835
|
};
|
|
834
836
|
});
|
|
835
837
|
const messagesByThread = validatedMessages.reduce((acc, message) => {
|
|
836
|
-
if (!acc.has(message.threadId)) {
|
|
838
|
+
if (message.threadId && !acc.has(message.threadId)) {
|
|
837
839
|
acc.set(message.threadId, []);
|
|
838
840
|
}
|
|
839
|
-
|
|
841
|
+
if (message.threadId) {
|
|
842
|
+
acc.get(message.threadId).push(message);
|
|
843
|
+
}
|
|
840
844
|
return acc;
|
|
841
845
|
}, /* @__PURE__ */ new Map());
|
|
842
846
|
await Promise.all(
|
|
@@ -848,7 +852,7 @@ var CloudflareStore = class extends storage.MastraStorage {
|
|
|
848
852
|
}
|
|
849
853
|
await Promise.all(
|
|
850
854
|
threadMessages.map(async (message) => {
|
|
851
|
-
const key =
|
|
855
|
+
const key = this.getMessageKey(threadId, message.id);
|
|
852
856
|
const { _index, ...cleanMessage } = message;
|
|
853
857
|
const serializedMessage = {
|
|
854
858
|
...cleanMessage,
|
|
@@ -867,16 +871,24 @@ var CloudflareStore = class extends storage.MastraStorage {
|
|
|
867
871
|
}
|
|
868
872
|
})
|
|
869
873
|
);
|
|
870
|
-
|
|
874
|
+
const prepared = validatedMessages.map(
|
|
871
875
|
({ _index, ...message }) => ({ ...message, type: message.type !== "v2" ? message.type : void 0 })
|
|
872
876
|
);
|
|
877
|
+
const list = new agent.MessageList().add(prepared, "memory");
|
|
878
|
+
if (format === `v2`) return list.get.all.v2();
|
|
879
|
+
return list.get.all.v1();
|
|
873
880
|
} catch (error) {
|
|
874
881
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
875
882
|
this.logger.error(`Error saving messages: ${errorMessage}`);
|
|
876
883
|
throw error;
|
|
877
884
|
}
|
|
878
885
|
}
|
|
879
|
-
async getMessages({
|
|
886
|
+
async getMessages({
|
|
887
|
+
threadId,
|
|
888
|
+
resourceId,
|
|
889
|
+
selectBy,
|
|
890
|
+
format
|
|
891
|
+
}) {
|
|
880
892
|
if (!threadId) throw new Error("threadId is required");
|
|
881
893
|
let limit = 40;
|
|
882
894
|
if (typeof selectBy?.last === "number") {
|
|
@@ -908,11 +920,14 @@ var CloudflareStore = class extends storage.MastraStorage {
|
|
|
908
920
|
this.logger.warn(`Error sorting messages, falling back to creation time: ${errorMessage}`);
|
|
909
921
|
messages.sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime());
|
|
910
922
|
}
|
|
911
|
-
|
|
923
|
+
const prepared = messages.map(({ _index, ...message }) => ({
|
|
912
924
|
...message,
|
|
913
925
|
type: message.type === `v2` ? void 0 : message.type,
|
|
914
926
|
createdAt: this.ensureDate(message.createdAt)
|
|
915
927
|
}));
|
|
928
|
+
const list = new agent.MessageList({ threadId, resourceId }).add(prepared, "memory");
|
|
929
|
+
if (format === `v1`) return list.get.all.v1();
|
|
930
|
+
return list.get.all.v2();
|
|
916
931
|
} catch (error) {
|
|
917
932
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
918
933
|
this.logger.error(`Error retrieving messages for thread ${threadId}: ${errorMessage}`);
|
|
@@ -946,6 +961,7 @@ var CloudflareStore = class extends storage.MastraStorage {
|
|
|
946
961
|
runId: data.runId,
|
|
947
962
|
value: data.value,
|
|
948
963
|
context: data.context,
|
|
964
|
+
serializedStepGraph: data.serializedStepGraph,
|
|
949
965
|
suspendedPaths: data.suspendedPaths || {},
|
|
950
966
|
activePaths: data.activePaths || [],
|
|
951
967
|
timestamp: data.timestamp || Date.now()
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { MessageList } from '@mastra/core/agent';
|
|
1
2
|
import { MastraStorage, TABLE_THREADS, TABLE_MESSAGES, TABLE_WORKFLOW_SNAPSHOT, TABLE_EVALS, TABLE_TRACES } from '@mastra/core/storage';
|
|
2
3
|
import Cloudflare from 'cloudflare';
|
|
3
4
|
|
|
@@ -806,7 +807,8 @@ var CloudflareStore = class extends MastraStorage {
|
|
|
806
807
|
throw error;
|
|
807
808
|
}
|
|
808
809
|
}
|
|
809
|
-
async saveMessages(
|
|
810
|
+
async saveMessages(args) {
|
|
811
|
+
const { messages, format = "v1" } = args;
|
|
810
812
|
if (!Array.isArray(messages) || messages.length === 0) return [];
|
|
811
813
|
try {
|
|
812
814
|
const validatedMessages = messages.map((message, index) => {
|
|
@@ -827,10 +829,12 @@ var CloudflareStore = class extends MastraStorage {
|
|
|
827
829
|
};
|
|
828
830
|
});
|
|
829
831
|
const messagesByThread = validatedMessages.reduce((acc, message) => {
|
|
830
|
-
if (!acc.has(message.threadId)) {
|
|
832
|
+
if (message.threadId && !acc.has(message.threadId)) {
|
|
831
833
|
acc.set(message.threadId, []);
|
|
832
834
|
}
|
|
833
|
-
|
|
835
|
+
if (message.threadId) {
|
|
836
|
+
acc.get(message.threadId).push(message);
|
|
837
|
+
}
|
|
834
838
|
return acc;
|
|
835
839
|
}, /* @__PURE__ */ new Map());
|
|
836
840
|
await Promise.all(
|
|
@@ -842,7 +846,7 @@ var CloudflareStore = class extends MastraStorage {
|
|
|
842
846
|
}
|
|
843
847
|
await Promise.all(
|
|
844
848
|
threadMessages.map(async (message) => {
|
|
845
|
-
const key =
|
|
849
|
+
const key = this.getMessageKey(threadId, message.id);
|
|
846
850
|
const { _index, ...cleanMessage } = message;
|
|
847
851
|
const serializedMessage = {
|
|
848
852
|
...cleanMessage,
|
|
@@ -861,16 +865,24 @@ var CloudflareStore = class extends MastraStorage {
|
|
|
861
865
|
}
|
|
862
866
|
})
|
|
863
867
|
);
|
|
864
|
-
|
|
868
|
+
const prepared = validatedMessages.map(
|
|
865
869
|
({ _index, ...message }) => ({ ...message, type: message.type !== "v2" ? message.type : void 0 })
|
|
866
870
|
);
|
|
871
|
+
const list = new MessageList().add(prepared, "memory");
|
|
872
|
+
if (format === `v2`) return list.get.all.v2();
|
|
873
|
+
return list.get.all.v1();
|
|
867
874
|
} catch (error) {
|
|
868
875
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
869
876
|
this.logger.error(`Error saving messages: ${errorMessage}`);
|
|
870
877
|
throw error;
|
|
871
878
|
}
|
|
872
879
|
}
|
|
873
|
-
async getMessages({
|
|
880
|
+
async getMessages({
|
|
881
|
+
threadId,
|
|
882
|
+
resourceId,
|
|
883
|
+
selectBy,
|
|
884
|
+
format
|
|
885
|
+
}) {
|
|
874
886
|
if (!threadId) throw new Error("threadId is required");
|
|
875
887
|
let limit = 40;
|
|
876
888
|
if (typeof selectBy?.last === "number") {
|
|
@@ -902,11 +914,14 @@ var CloudflareStore = class extends MastraStorage {
|
|
|
902
914
|
this.logger.warn(`Error sorting messages, falling back to creation time: ${errorMessage}`);
|
|
903
915
|
messages.sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime());
|
|
904
916
|
}
|
|
905
|
-
|
|
917
|
+
const prepared = messages.map(({ _index, ...message }) => ({
|
|
906
918
|
...message,
|
|
907
919
|
type: message.type === `v2` ? void 0 : message.type,
|
|
908
920
|
createdAt: this.ensureDate(message.createdAt)
|
|
909
921
|
}));
|
|
922
|
+
const list = new MessageList({ threadId, resourceId }).add(prepared, "memory");
|
|
923
|
+
if (format === `v1`) return list.get.all.v1();
|
|
924
|
+
return list.get.all.v2();
|
|
910
925
|
} catch (error) {
|
|
911
926
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
912
927
|
this.logger.error(`Error retrieving messages for thread ${threadId}: ${errorMessage}`);
|
|
@@ -940,6 +955,7 @@ var CloudflareStore = class extends MastraStorage {
|
|
|
940
955
|
runId: data.runId,
|
|
941
956
|
value: data.value,
|
|
942
957
|
context: data.context,
|
|
958
|
+
serializedStepGraph: data.serializedStepGraph,
|
|
943
959
|
suspendedPaths: data.suspendedPaths || {},
|
|
944
960
|
activePaths: data.activePaths || [],
|
|
945
961
|
timestamp: data.timestamp || Date.now()
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/cloudflare",
|
|
3
|
-
"version": "0.10.2-alpha.
|
|
3
|
+
"version": "0.10.2-alpha.3",
|
|
4
4
|
"description": "Cloudflare provider for Mastra - includes db storage capabilities",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -36,10 +36,10 @@
|
|
|
36
36
|
"typescript": "^5.8.2",
|
|
37
37
|
"vitest": "^3.1.2",
|
|
38
38
|
"@internal/lint": "0.0.7",
|
|
39
|
-
"@mastra/core": "0.10.2-alpha.
|
|
39
|
+
"@mastra/core": "0.10.2-alpha.4"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"@mastra/core": "^0.10.0"
|
|
42
|
+
"@mastra/core": "^0.10.0-alpha.0"
|
|
43
43
|
},
|
|
44
44
|
"scripts": {
|
|
45
45
|
"build": "tsup src/index.ts --format esm,cjs --experimental-dts --clean --treeshake=smallest --splitting",
|