@mastra/dynamodb 0.13.3 → 0.14.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 (44) hide show
  1. package/dist/entities/eval.d.ts +102 -0
  2. package/dist/entities/eval.d.ts.map +1 -0
  3. package/dist/entities/index.d.ts +746 -0
  4. package/dist/entities/index.d.ts.map +1 -0
  5. package/dist/entities/message.d.ts +100 -0
  6. package/dist/entities/message.d.ts.map +1 -0
  7. package/dist/entities/resource.d.ts +54 -0
  8. package/dist/entities/resource.d.ts.map +1 -0
  9. package/dist/entities/score.d.ts +229 -0
  10. package/dist/entities/score.d.ts.map +1 -0
  11. package/dist/entities/thread.d.ts +69 -0
  12. package/dist/entities/thread.d.ts.map +1 -0
  13. package/dist/entities/trace.d.ts +127 -0
  14. package/dist/entities/trace.d.ts.map +1 -0
  15. package/dist/entities/utils.d.ts +21 -0
  16. package/dist/entities/utils.d.ts.map +1 -0
  17. package/dist/entities/workflow-snapshot.d.ts +74 -0
  18. package/dist/entities/workflow-snapshot.d.ts.map +1 -0
  19. package/dist/index.cjs +36 -2
  20. package/dist/index.cjs.map +1 -0
  21. package/dist/index.d.ts +2 -2
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +36 -2
  24. package/dist/index.js.map +1 -0
  25. package/dist/storage/domains/legacy-evals/index.d.ts +19 -0
  26. package/dist/storage/domains/legacy-evals/index.d.ts.map +1 -0
  27. package/dist/storage/domains/memory/index.d.ts +77 -0
  28. package/dist/storage/domains/memory/index.d.ts.map +1 -0
  29. package/dist/storage/domains/operations/index.d.ts +69 -0
  30. package/dist/storage/domains/operations/index.d.ts.map +1 -0
  31. package/dist/storage/domains/score/index.d.ts +42 -0
  32. package/dist/storage/domains/score/index.d.ts.map +1 -0
  33. package/dist/storage/domains/traces/index.d.ts +28 -0
  34. package/dist/storage/domains/traces/index.d.ts.map +1 -0
  35. package/dist/storage/domains/workflows/index.d.ts +32 -0
  36. package/dist/storage/domains/workflows/index.d.ts.map +1 -0
  37. package/dist/storage/index.d.ts +220 -0
  38. package/dist/storage/index.d.ts.map +1 -0
  39. package/package.json +6 -6
  40. package/src/entities/score.ts +32 -0
  41. package/src/storage/domains/score/index.ts +6 -3
  42. package/dist/_tsup-dts-rollup.d.cts +0 -1977
  43. package/dist/_tsup-dts-rollup.d.ts +0 -1977
  44. package/dist/index.d.cts +0 -2
@@ -0,0 +1,77 @@
1
+ import type { MastraMessageContentV2 } from '@mastra/core/agent';
2
+ import type { StorageThreadType, MastraMessageV1, MastraMessageV2 } from '@mastra/core/memory';
3
+ import { MemoryStorage } from '@mastra/core/storage';
4
+ import type { PaginationInfo, StorageGetMessagesArg, StorageResourceType } from '@mastra/core/storage';
5
+ import type { Service } from 'electrodb';
6
+ export declare class MemoryStorageDynamoDB extends MemoryStorage {
7
+ private service;
8
+ constructor({ service }: {
9
+ service: Service<Record<string, any>>;
10
+ });
11
+ private parseMessageData;
12
+ getThreadById({ threadId }: {
13
+ threadId: string;
14
+ }): Promise<StorageThreadType | null>;
15
+ getThreadsByResourceId({ resourceId }: {
16
+ resourceId: string;
17
+ }): Promise<StorageThreadType[]>;
18
+ saveThread({ thread }: {
19
+ thread: StorageThreadType;
20
+ }): Promise<StorageThreadType>;
21
+ updateThread({ id, title, metadata, }: {
22
+ id: string;
23
+ title: string;
24
+ metadata: Record<string, unknown>;
25
+ }): Promise<StorageThreadType>;
26
+ deleteThread({ threadId }: {
27
+ threadId: string;
28
+ }): Promise<void>;
29
+ getMessages(args: StorageGetMessagesArg & {
30
+ format?: 'v1';
31
+ }): Promise<MastraMessageV1[]>;
32
+ getMessages(args: StorageGetMessagesArg & {
33
+ format: 'v2';
34
+ }): Promise<MastraMessageV2[]>;
35
+ saveMessages(args: {
36
+ messages: MastraMessageV1[];
37
+ format?: undefined | 'v1';
38
+ }): Promise<MastraMessageV1[]>;
39
+ saveMessages(args: {
40
+ messages: MastraMessageV2[];
41
+ format: 'v2';
42
+ }): Promise<MastraMessageV2[]>;
43
+ getThreadsByResourceIdPaginated(args: {
44
+ resourceId: string;
45
+ page?: number;
46
+ perPage?: number;
47
+ }): Promise<PaginationInfo & {
48
+ threads: StorageThreadType[];
49
+ }>;
50
+ getMessagesPaginated(args: StorageGetMessagesArg & {
51
+ format?: 'v1' | 'v2';
52
+ }): Promise<PaginationInfo & {
53
+ messages: MastraMessageV1[] | MastraMessageV2[];
54
+ }>;
55
+ private _getIncludedMessages;
56
+ updateMessages(args: {
57
+ messages: Partial<Omit<MastraMessageV2, 'createdAt'>> & {
58
+ id: string;
59
+ content?: {
60
+ metadata?: MastraMessageContentV2['metadata'];
61
+ content?: MastraMessageContentV2['content'];
62
+ };
63
+ }[];
64
+ }): Promise<MastraMessageV2[]>;
65
+ getResourceById({ resourceId }: {
66
+ resourceId: string;
67
+ }): Promise<StorageResourceType | null>;
68
+ saveResource({ resource }: {
69
+ resource: StorageResourceType;
70
+ }): Promise<StorageResourceType>;
71
+ updateResource({ resourceId, workingMemory, metadata, }: {
72
+ resourceId: string;
73
+ workingMemory?: string;
74
+ metadata?: Record<string, unknown>;
75
+ }): Promise<StorageResourceType>;
76
+ }
77
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/memory/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import type { DynamoDBDocumentClient } from '@aws-sdk/lib-dynamodb';
2
+ import { StoreOperations } from '@mastra/core/storage';
3
+ import type { StorageColumn, TABLE_NAMES } from '@mastra/core/storage';
4
+ import type { Service } from 'electrodb';
5
+ export declare class StoreOperationsDynamoDB extends StoreOperations {
6
+ client: DynamoDBDocumentClient;
7
+ tableName: string;
8
+ service: Service<Record<string, any>>;
9
+ constructor({ service, tableName, client, }: {
10
+ service: Service<Record<string, any>>;
11
+ tableName: string;
12
+ client: DynamoDBDocumentClient;
13
+ });
14
+ hasColumn(): Promise<boolean>;
15
+ dropTable(): Promise<void>;
16
+ private getEntityNameForTable;
17
+ /**
18
+ * Pre-processes a record to ensure Date objects are converted to ISO strings
19
+ * This is necessary because ElectroDB validation happens before setters are applied
20
+ */
21
+ private preprocessRecord;
22
+ /**
23
+ * Validates that the required DynamoDB table exists and is accessible.
24
+ * This does not check the table structure - it assumes the table
25
+ * was created with the correct structure via CDK/CloudFormation.
26
+ */
27
+ private validateTableExists;
28
+ /**
29
+ * This method is modified for DynamoDB with ElectroDB single-table design.
30
+ * It assumes the table is created and managed externally via CDK/CloudFormation.
31
+ *
32
+ * This implementation only validates that the required table exists and is accessible.
33
+ * No table creation is attempted - we simply check if we can access the table.
34
+ */
35
+ createTable({ tableName }: {
36
+ tableName: TABLE_NAMES;
37
+ schema: Record<string, any>;
38
+ }): Promise<void>;
39
+ insert({ tableName, record }: {
40
+ tableName: TABLE_NAMES;
41
+ record: Record<string, any>;
42
+ }): Promise<void>;
43
+ alterTable(_args: {
44
+ tableName: TABLE_NAMES;
45
+ schema: Record<string, StorageColumn>;
46
+ ifNotExists: string[];
47
+ }): Promise<void>;
48
+ /**
49
+ * Clear all items from a logical "table" (entity type)
50
+ */
51
+ clearTable({ tableName }: {
52
+ tableName: TABLE_NAMES;
53
+ }): Promise<void>;
54
+ /**
55
+ * Insert multiple records as a batch
56
+ */
57
+ batchInsert({ tableName, records }: {
58
+ tableName: TABLE_NAMES;
59
+ records: Record<string, any>[];
60
+ }): Promise<void>;
61
+ /**
62
+ * Load a record by its keys
63
+ */
64
+ load<R>({ tableName, keys }: {
65
+ tableName: TABLE_NAMES;
66
+ keys: Record<string, string>;
67
+ }): Promise<R | null>;
68
+ }
69
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/operations/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,EACL,eAAe,EAQhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,qBAAa,uBAAwB,SAAQ,eAAe;IAC1D,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC1B,EACV,OAAO,EACP,SAAS,EACT,MAAM,GACP,EAAE;QACD,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACtC,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,sBAAsB,CAAC;KAChC;IAOK,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAGhC,OAAO,CAAC,qBAAqB;IAa7B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAsDxB;;;;OAIG;YACW,mBAAmB;IA6BjC;;;;;;OAMG;IACG,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,WAAW,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BlG,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE;QAAE,SAAS,EAAE,WAAW,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BrG,UAAU,CAAC,KAAK,EAAE;QACtB,SAAS,EAAE,WAAW,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACtC,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjB;;OAEG;IACG,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmG1E;;OAEG;IACG,WAAW,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;QAAE,SAAS,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDpH;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;QAAE,SAAS,EAAE,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;CA+ChH"}
@@ -0,0 +1,42 @@
1
+ import type { ScoreRowData } from '@mastra/core/scores';
2
+ import { ScoresStorage } from '@mastra/core/storage';
3
+ import type { PaginationInfo, StoragePagination } from '@mastra/core/storage';
4
+ import type { Service } from 'electrodb';
5
+ export declare class ScoresStorageDynamoDB extends ScoresStorage {
6
+ private service;
7
+ constructor({ service }: {
8
+ service: Service<Record<string, any>>;
9
+ });
10
+ private parseScoreData;
11
+ getScoreById({ id }: {
12
+ id: string;
13
+ }): Promise<ScoreRowData | null>;
14
+ saveScore(score: Omit<ScoreRowData, 'id' | 'createdAt' | 'updatedAt'>): Promise<{
15
+ score: ScoreRowData;
16
+ }>;
17
+ getScoresByScorerId({ scorerId, pagination, entityId, entityType, }: {
18
+ scorerId: string;
19
+ pagination: StoragePagination;
20
+ entityId?: string;
21
+ entityType?: string;
22
+ }): Promise<{
23
+ pagination: PaginationInfo;
24
+ scores: ScoreRowData[];
25
+ }>;
26
+ getScoresByRunId({ runId, pagination, }: {
27
+ runId: string;
28
+ pagination: StoragePagination;
29
+ }): Promise<{
30
+ pagination: PaginationInfo;
31
+ scores: ScoreRowData[];
32
+ }>;
33
+ getScoresByEntityId({ entityId, entityType, pagination, }: {
34
+ entityId: string;
35
+ entityType: string;
36
+ pagination: StoragePagination;
37
+ }): Promise<{
38
+ pagination: PaginationInfo;
39
+ scores: ScoreRowData[];
40
+ }>;
41
+ }
42
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/score/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAO,CAAC,OAAO,CAA+B;gBAClC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;KAAE;IAMlE,OAAO,CAAC,cAAc;IAUhB,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAuBlE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC;IAiExG,mBAAmB,CAAC,EACxB,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,UAAU,GACX,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,iBAAiB,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IA2D7D,gBAAgB,CAAC,EACrB,KAAK,EACL,UAAU,GACX,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,iBAAiB,CAAC;KAC/B,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IA6C7D,mBAAmB,CAAC,EACxB,QAAQ,EACR,UAAU,EACV,UAAU,GACX,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,iBAAiB,CAAC;KAC/B,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;CA+CpE"}
@@ -0,0 +1,28 @@
1
+ import { TracesStorage } from '@mastra/core/storage';
2
+ import type { PaginationInfo, StorageGetTracesPaginatedArg } from '@mastra/core/storage';
3
+ import type { Trace } from '@mastra/core/telemetry';
4
+ import type { Service } from 'electrodb';
5
+ import type { StoreOperationsDynamoDB } from '../operations';
6
+ export declare class TracesStorageDynamoDB extends TracesStorage {
7
+ private service;
8
+ private operations;
9
+ constructor({ service, operations }: {
10
+ service: Service<Record<string, any>>;
11
+ operations: StoreOperationsDynamoDB;
12
+ });
13
+ getTraces(args: {
14
+ name?: string;
15
+ scope?: string;
16
+ page: number;
17
+ perPage: number;
18
+ attributes?: Record<string, string>;
19
+ filters?: Record<string, any>;
20
+ }): Promise<any[]>;
21
+ batchTraceInsert({ records }: {
22
+ records: Record<string, any>[];
23
+ }): Promise<void>;
24
+ getTracesPaginated(args: StorageGetTracesPaginatedArg): Promise<PaginationInfo & {
25
+ traces: Trace[];
26
+ }>;
27
+ }
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/traces/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE7D,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,UAAU,CAA0B;gBAChC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QAAC,UAAU,EAAE,uBAAuB,CAAA;KAAE;IAQ7G,SAAS,CAAC,IAAI,EAAE;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC/B,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAiDZ,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhF,kBAAkB,CAAC,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC,cAAc,GAAG;QAAE,MAAM,EAAE,KAAK,EAAE,CAAA;KAAE,CAAC;CAwL5G"}
@@ -0,0 +1,32 @@
1
+ import { WorkflowsStorage } from '@mastra/core/storage';
2
+ import type { WorkflowRun, WorkflowRuns } from '@mastra/core/storage';
3
+ import type { WorkflowRunState } from '@mastra/core/workflows';
4
+ import type { Service } from 'electrodb';
5
+ export declare class WorkflowStorageDynamoDB extends WorkflowsStorage {
6
+ private service;
7
+ constructor({ service }: {
8
+ service: Service<Record<string, any>>;
9
+ });
10
+ persistWorkflowSnapshot({ workflowName, runId, snapshot, }: {
11
+ workflowName: string;
12
+ runId: string;
13
+ snapshot: WorkflowRunState;
14
+ }): Promise<void>;
15
+ loadWorkflowSnapshot({ workflowName, runId, }: {
16
+ workflowName: string;
17
+ runId: string;
18
+ }): Promise<WorkflowRunState | null>;
19
+ getWorkflowRuns(args?: {
20
+ workflowName?: string;
21
+ fromDate?: Date;
22
+ toDate?: Date;
23
+ limit?: number;
24
+ offset?: number;
25
+ resourceId?: string;
26
+ }): Promise<WorkflowRuns>;
27
+ getWorkflowRunById(args: {
28
+ runId: string;
29
+ workflowName?: string;
30
+ }): Promise<WorkflowRun | null>;
31
+ }
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/workflows/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBzC,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC3D,OAAO,CAAC,OAAO,CAA+B;gBAClC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;KAAE;IAO5D,uBAAuB,CAAC,EAC5B,YAAY,EACZ,KAAK,EACL,QAAQ,GACT,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,gBAAgB,CAAC;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BX,oBAAoB,CAAC,EACzB,YAAY,EACZ,KAAK,GACN,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAiC9B,eAAe,CAAC,IAAI,CAAC,EAAE;QAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,IAAI,CAAC;QAChB,MAAM,CAAC,EAAE,IAAI,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,YAAY,CAAC;IA2FnB,kBAAkB,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;CAmFtG"}
@@ -0,0 +1,220 @@
1
+ import type { MastraMessageContentV2 } from '@mastra/core/agent';
2
+ import type { StorageThreadType, MastraMessageV2, MastraMessageV1 } from '@mastra/core/memory';
3
+ import type { ScoreRowData } from '@mastra/core/scores';
4
+ import { MastraStorage } from '@mastra/core/storage';
5
+ import type { EvalRow, StorageGetMessagesArg, WorkflowRun, WorkflowRuns, TABLE_NAMES, StorageGetTracesArg, PaginationInfo, StorageColumn, StoragePagination, StorageDomains, PaginationArgs, StorageResourceType } from '@mastra/core/storage';
6
+ import type { Trace } from '@mastra/core/telemetry';
7
+ import type { WorkflowRunState } from '@mastra/core/workflows';
8
+ export interface DynamoDBStoreConfig {
9
+ region?: string;
10
+ tableName: string;
11
+ endpoint?: string;
12
+ credentials?: {
13
+ accessKeyId: string;
14
+ secretAccessKey: string;
15
+ };
16
+ }
17
+ export declare class DynamoDBStore extends MastraStorage {
18
+ private tableName;
19
+ private client;
20
+ private service;
21
+ protected hasInitialized: Promise<boolean> | null;
22
+ stores: StorageDomains;
23
+ constructor({ name, config }: {
24
+ name: string;
25
+ config: DynamoDBStoreConfig;
26
+ });
27
+ get supports(): {
28
+ selectByIncludeResourceScope: boolean;
29
+ resourceWorkingMemory: boolean;
30
+ hasColumn: boolean;
31
+ createTable: boolean;
32
+ deleteMessages: boolean;
33
+ };
34
+ /**
35
+ * Validates that the required DynamoDB table exists and is accessible.
36
+ * This does not check the table structure - it assumes the table
37
+ * was created with the correct structure via CDK/CloudFormation.
38
+ */
39
+ private validateTableExists;
40
+ /**
41
+ * Initialize storage, validating the externally managed table is accessible.
42
+ * For the single-table design, we only validate once that we can access
43
+ * the table that was created via CDK/CloudFormation.
44
+ */
45
+ init(): Promise<void>;
46
+ /**
47
+ * Performs the actual table validation and stores the promise.
48
+ * Handles resetting the stored promise on failure to allow retries.
49
+ */
50
+ private _performInitializationAndStore;
51
+ createTable({ tableName, schema }: {
52
+ tableName: TABLE_NAMES;
53
+ schema: Record<string, any>;
54
+ }): Promise<void>;
55
+ alterTable(_args: {
56
+ tableName: TABLE_NAMES;
57
+ schema: Record<string, StorageColumn>;
58
+ ifNotExists: string[];
59
+ }): Promise<void>;
60
+ clearTable({ tableName }: {
61
+ tableName: TABLE_NAMES;
62
+ }): Promise<void>;
63
+ dropTable({ tableName }: {
64
+ tableName: TABLE_NAMES;
65
+ }): Promise<void>;
66
+ insert({ tableName, record }: {
67
+ tableName: TABLE_NAMES;
68
+ record: Record<string, any>;
69
+ }): Promise<void>;
70
+ batchInsert({ tableName, records }: {
71
+ tableName: TABLE_NAMES;
72
+ records: Record<string, any>[];
73
+ }): Promise<void>;
74
+ load<R>({ tableName, keys }: {
75
+ tableName: TABLE_NAMES;
76
+ keys: Record<string, string>;
77
+ }): Promise<R | null>;
78
+ getThreadById({ threadId }: {
79
+ threadId: string;
80
+ }): Promise<StorageThreadType | null>;
81
+ getThreadsByResourceId({ resourceId }: {
82
+ resourceId: string;
83
+ }): Promise<StorageThreadType[]>;
84
+ saveThread({ thread }: {
85
+ thread: StorageThreadType;
86
+ }): Promise<StorageThreadType>;
87
+ updateThread({ id, title, metadata, }: {
88
+ id: string;
89
+ title: string;
90
+ metadata: Record<string, unknown>;
91
+ }): Promise<StorageThreadType>;
92
+ deleteThread({ threadId }: {
93
+ threadId: string;
94
+ }): Promise<void>;
95
+ getMessages(args: StorageGetMessagesArg & {
96
+ format?: 'v1';
97
+ }): Promise<MastraMessageV1[]>;
98
+ getMessages(args: StorageGetMessagesArg & {
99
+ format: 'v2';
100
+ }): Promise<MastraMessageV2[]>;
101
+ saveMessages(args: {
102
+ messages: MastraMessageV1[];
103
+ format?: undefined | 'v1';
104
+ }): Promise<MastraMessageV1[]>;
105
+ saveMessages(args: {
106
+ messages: MastraMessageV2[];
107
+ format: 'v2';
108
+ }): Promise<MastraMessageV2[]>;
109
+ getThreadsByResourceIdPaginated(args: {
110
+ resourceId: string;
111
+ page: number;
112
+ perPage: number;
113
+ }): Promise<PaginationInfo & {
114
+ threads: StorageThreadType[];
115
+ }>;
116
+ getMessagesPaginated(args: StorageGetMessagesArg & {
117
+ format?: 'v1' | 'v2';
118
+ }): Promise<PaginationInfo & {
119
+ messages: MastraMessageV1[] | MastraMessageV2[];
120
+ }>;
121
+ updateMessages(_args: {
122
+ messages: Partial<Omit<MastraMessageV2, 'createdAt'>> & {
123
+ id: string;
124
+ content?: {
125
+ metadata?: MastraMessageContentV2['metadata'];
126
+ content?: MastraMessageContentV2['content'];
127
+ };
128
+ }[];
129
+ }): Promise<MastraMessageV2[]>;
130
+ getTraces(args: {
131
+ name?: string;
132
+ scope?: string;
133
+ page: number;
134
+ perPage: number;
135
+ attributes?: Record<string, string>;
136
+ filters?: Record<string, any>;
137
+ }): Promise<any[]>;
138
+ batchTraceInsert({ records }: {
139
+ records: Record<string, any>[];
140
+ }): Promise<void>;
141
+ getTracesPaginated(_args: StorageGetTracesArg): Promise<PaginationInfo & {
142
+ traces: Trace[];
143
+ }>;
144
+ persistWorkflowSnapshot({ workflowName, runId, snapshot, }: {
145
+ workflowName: string;
146
+ runId: string;
147
+ snapshot: WorkflowRunState;
148
+ }): Promise<void>;
149
+ loadWorkflowSnapshot({ workflowName, runId, }: {
150
+ workflowName: string;
151
+ runId: string;
152
+ }): Promise<WorkflowRunState | null>;
153
+ getWorkflowRuns(args?: {
154
+ workflowName?: string;
155
+ fromDate?: Date;
156
+ toDate?: Date;
157
+ limit?: number;
158
+ offset?: number;
159
+ resourceId?: string;
160
+ }): Promise<WorkflowRuns>;
161
+ getWorkflowRunById(args: {
162
+ runId: string;
163
+ workflowName?: string;
164
+ }): Promise<WorkflowRun | null>;
165
+ getResourceById({ resourceId }: {
166
+ resourceId: string;
167
+ }): Promise<StorageResourceType | null>;
168
+ saveResource({ resource }: {
169
+ resource: StorageResourceType;
170
+ }): Promise<StorageResourceType>;
171
+ updateResource({ resourceId, workingMemory, metadata, }: {
172
+ resourceId: string;
173
+ workingMemory?: string;
174
+ metadata?: Record<string, any>;
175
+ }): Promise<StorageResourceType>;
176
+ getEvalsByAgentName(agentName: string, type?: 'test' | 'live'): Promise<EvalRow[]>;
177
+ getEvals(options: {
178
+ agentName?: string;
179
+ type?: 'test' | 'live';
180
+ } & PaginationArgs): Promise<PaginationInfo & {
181
+ evals: EvalRow[];
182
+ }>;
183
+ /**
184
+ * Closes the DynamoDB client connection and cleans up resources.
185
+ * Should be called when the store is no longer needed, e.g., at the end of tests or application shutdown.
186
+ */
187
+ close(): Promise<void>;
188
+ /**
189
+ * SCORERS - Not implemented
190
+ */
191
+ getScoreById({ id: _id }: {
192
+ id: string;
193
+ }): Promise<ScoreRowData | null>;
194
+ saveScore(_score: ScoreRowData): Promise<{
195
+ score: ScoreRowData;
196
+ }>;
197
+ getScoresByRunId({ runId: _runId, pagination: _pagination, }: {
198
+ runId: string;
199
+ pagination: StoragePagination;
200
+ }): Promise<{
201
+ pagination: PaginationInfo;
202
+ scores: ScoreRowData[];
203
+ }>;
204
+ getScoresByEntityId({ entityId: _entityId, entityType: _entityType, pagination: _pagination, }: {
205
+ pagination: StoragePagination;
206
+ entityId: string;
207
+ entityType: string;
208
+ }): Promise<{
209
+ pagination: PaginationInfo;
210
+ scores: ScoreRowData[];
211
+ }>;
212
+ getScoresByScorerId({ scorerId: _scorerId, pagination: _pagination, }: {
213
+ scorerId: string;
214
+ pagination: StoragePagination;
215
+ }): Promise<{
216
+ pagination: PaginationInfo;
217
+ scores: ScoreRowData[];
218
+ }>;
219
+ }
220
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/dynamodb",
3
- "version": "0.13.3",
3
+ "version": "0.14.0-alpha.0",
4
4
  "description": "DynamoDB storage adapter for Mastra",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -40,13 +40,13 @@
40
40
  "tsup": "^8.5.0",
41
41
  "typescript": "^5.8.3",
42
42
  "vitest": "^3.2.4",
43
- "@internal/lint": "0.0.24",
44
- "@internal/storage-test-utils": "0.0.20",
45
- "@mastra/core": "0.12.0"
43
+ "@internal/lint": "0.0.26",
44
+ "@internal/storage-test-utils": "0.0.22",
45
+ "@mastra/core": "0.13.0-alpha.1"
46
46
  },
47
47
  "scripts": {
48
- "build": "tsup src/index.ts --format esm,cjs --experimental-dts --clean --treeshake=smallest --splitting",
49
- "dev": "tsup --watch",
48
+ "build": "tsup --silent --config tsup.config.ts",
49
+ "dev": "tsup --watch && tsc -p tsconfig.build.json",
50
50
  "clean": "rm -rf dist",
51
51
  "lint": "eslint .",
52
52
  "pretest": "docker compose up -d",
@@ -73,6 +73,28 @@ export const scoreEntity = new Entity({
73
73
  return value;
74
74
  },
75
75
  },
76
+ preprocessStepResult: {
77
+ type: 'string',
78
+ required: false,
79
+ set: (value?: Record<string, unknown> | string) => {
80
+ if (value && typeof value !== 'string') {
81
+ return JSON.stringify(value);
82
+ }
83
+ return value;
84
+ },
85
+ get: (value?: string) => {
86
+ if (value && typeof value === 'string') {
87
+ try {
88
+ if (value.startsWith('{') || value.startsWith('[')) {
89
+ return JSON.parse(value);
90
+ }
91
+ } catch {
92
+ return value;
93
+ }
94
+ }
95
+ return value;
96
+ },
97
+ },
76
98
  analyzeStepResult: {
77
99
  type: 'string',
78
100
  required: false,
@@ -111,10 +133,20 @@ export const scoreEntity = new Entity({
111
133
  type: 'string',
112
134
  required: false,
113
135
  },
136
+
137
+ // Deprecated in favor of generateReasonPrompt
114
138
  reasonPrompt: {
115
139
  type: 'string',
116
140
  required: false,
117
141
  },
142
+ generateScorePrompt: {
143
+ type: 'string',
144
+ required: false,
145
+ },
146
+ generateReasonPrompt: {
147
+ type: 'string',
148
+ required: false,
149
+ },
118
150
  input: {
119
151
  type: 'string',
120
152
  required: true,
@@ -58,13 +58,16 @@ export class ScoresStorageDynamoDB extends ScoresStorage {
58
58
  traceId: score.traceId || '',
59
59
  runId: score.runId,
60
60
  scorer: typeof score.scorer === 'string' ? score.scorer : JSON.stringify(score.scorer),
61
- extractStepResult:
62
- typeof score.extractStepResult === 'string' ? score.extractStepResult : JSON.stringify(score.extractStepResult),
61
+ preprocessStepResult:
62
+ typeof score.preprocessStepResult === 'string'
63
+ ? score.preprocessStepResult
64
+ : JSON.stringify(score.preprocessStepResult),
63
65
  analyzeStepResult:
64
66
  typeof score.analyzeStepResult === 'string' ? score.analyzeStepResult : JSON.stringify(score.analyzeStepResult),
65
67
  score: score.score,
66
68
  reason: score.reason,
67
- extractPrompt: score.extractPrompt,
69
+ preprocessPrompt: score.preprocessPrompt,
70
+ generateScorePrompt: score.generateScorePrompt,
68
71
  analyzePrompt: score.analyzePrompt,
69
72
  reasonPrompt: score.reasonPrompt,
70
73
  input: typeof score.input === 'string' ? score.input : JSON.stringify(score.input),