@mastra/core 0.17.0-alpha.4 → 0.17.0-alpha.6

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 (207) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/cache.d.ts +1 -0
  3. package/dist/agent/agent.d.ts +1 -1
  4. package/dist/agent/agent.d.ts.map +1 -1
  5. package/dist/agent/index.cjs +11 -11
  6. package/dist/agent/index.js +2 -2
  7. package/dist/agent/input-processor/index.cjs +6 -6
  8. package/dist/agent/input-processor/index.js +1 -1
  9. package/dist/ai-tracing/index.cjs +32 -32
  10. package/dist/ai-tracing/index.js +1 -1
  11. package/dist/base.cjs +2 -2
  12. package/dist/base.js +1 -1
  13. package/dist/bundler/index.cjs +2 -2
  14. package/dist/bundler/index.js +1 -1
  15. package/dist/cache/base.d.ts +14 -0
  16. package/dist/cache/base.d.ts.map +1 -0
  17. package/dist/cache/index.cjs +16 -0
  18. package/dist/cache/index.cjs.map +1 -0
  19. package/dist/cache/index.d.ts +3 -0
  20. package/dist/cache/index.d.ts.map +1 -0
  21. package/dist/cache/index.js +3 -0
  22. package/dist/cache/index.js.map +1 -0
  23. package/dist/cache/inmemory.d.ts +13 -0
  24. package/dist/cache/inmemory.d.ts.map +1 -0
  25. package/dist/{chunk-XKVDOO2O.js → chunk-2V7YKWZX.js} +3 -3
  26. package/dist/{chunk-XKVDOO2O.js.map → chunk-2V7YKWZX.js.map} +1 -1
  27. package/dist/chunk-3PQNUWJM.js +62 -0
  28. package/dist/chunk-3PQNUWJM.js.map +1 -0
  29. package/dist/{chunk-CP4TZ4HO.cjs → chunk-3ZWRKJSW.cjs} +15 -15
  30. package/dist/{chunk-CP4TZ4HO.cjs.map → chunk-3ZWRKJSW.cjs.map} +1 -1
  31. package/dist/{chunk-QHDT3QQC.cjs → chunk-4HWB6PCC.cjs} +4 -4
  32. package/dist/{chunk-QHDT3QQC.cjs.map → chunk-4HWB6PCC.cjs.map} +1 -1
  33. package/dist/{chunk-KXCUCBEI.cjs → chunk-4L3P3PCP.cjs} +8 -8
  34. package/dist/{chunk-KXCUCBEI.cjs.map → chunk-4L3P3PCP.cjs.map} +1 -1
  35. package/dist/{chunk-UWUM3F3X.js → chunk-5GPOS52F.js} +38 -27
  36. package/dist/chunk-5GPOS52F.js.map +1 -0
  37. package/dist/{chunk-X3MOJJYH.cjs → chunk-5HQNR726.cjs} +7 -7
  38. package/dist/{chunk-X3MOJJYH.cjs.map → chunk-5HQNR726.cjs.map} +1 -1
  39. package/dist/{chunk-TLJPVRO5.js → chunk-5QXPHYHO.js} +2 -3
  40. package/dist/chunk-5QXPHYHO.js.map +1 -0
  41. package/dist/{chunk-7NKIBBCV.cjs → chunk-725O36VY.cjs} +6 -6
  42. package/dist/{chunk-7NKIBBCV.cjs.map → chunk-725O36VY.cjs.map} +1 -1
  43. package/dist/{chunk-VXJFKEON.js → chunk-B5G6KT7N.js} +5 -5
  44. package/dist/{chunk-VXJFKEON.js.map → chunk-B5G6KT7N.js.map} +1 -1
  45. package/dist/{chunk-6GF5M4GX.js → chunk-BMVFEBPE.js} +3 -3
  46. package/dist/{chunk-6GF5M4GX.js.map → chunk-BMVFEBPE.js.map} +1 -1
  47. package/dist/{chunk-X3GXU6TZ.js → chunk-BN2M4UK5.js} +5 -4
  48. package/dist/chunk-BN2M4UK5.js.map +1 -0
  49. package/dist/{chunk-HBQSSMAD.cjs → chunk-BZ6PR75D.cjs} +8 -8
  50. package/dist/{chunk-HBQSSMAD.cjs.map → chunk-BZ6PR75D.cjs.map} +1 -1
  51. package/dist/{chunk-IODUKRQP.js → chunk-C7EN3GVU.js} +3 -3
  52. package/dist/{chunk-IODUKRQP.js.map → chunk-C7EN3GVU.js.map} +1 -1
  53. package/dist/{chunk-6MDSS7WL.cjs → chunk-D6AHONH5.cjs} +4 -4
  54. package/dist/{chunk-6MDSS7WL.cjs.map → chunk-D6AHONH5.cjs.map} +1 -1
  55. package/dist/{chunk-YFAHGS45.js → chunk-DH34KXOJ.js} +4 -4
  56. package/dist/{chunk-YFAHGS45.js.map → chunk-DH34KXOJ.js.map} +1 -1
  57. package/dist/{chunk-BY37WSX5.js → chunk-DLLUCABV.js} +18 -33
  58. package/dist/chunk-DLLUCABV.js.map +1 -0
  59. package/dist/{chunk-BGAJ72HJ.cjs → chunk-EQHKK6BB.cjs} +71 -59
  60. package/dist/chunk-EQHKK6BB.cjs.map +1 -0
  61. package/dist/{chunk-RNJ4GD7U.cjs → chunk-F5DBJ235.cjs} +9 -9
  62. package/dist/{chunk-RNJ4GD7U.cjs.map → chunk-F5DBJ235.cjs.map} +1 -1
  63. package/dist/{chunk-HZGYVRVN.cjs → chunk-F6N4JWKV.cjs} +13 -13
  64. package/dist/{chunk-HZGYVRVN.cjs.map → chunk-F6N4JWKV.cjs.map} +1 -1
  65. package/dist/{chunk-2PQSZI63.js → chunk-GBW5ZDLZ.js} +3 -3
  66. package/dist/{chunk-2PQSZI63.js.map → chunk-GBW5ZDLZ.js.map} +1 -1
  67. package/dist/{chunk-K3JIDVC4.js → chunk-ITD7IHN5.js} +3 -3
  68. package/dist/{chunk-K3JIDVC4.js.map → chunk-ITD7IHN5.js.map} +1 -1
  69. package/dist/{chunk-MRZHPP3G.cjs → chunk-JAJMFWRT.cjs} +4 -4
  70. package/dist/{chunk-MRZHPP3G.cjs.map → chunk-JAJMFWRT.cjs.map} +1 -1
  71. package/dist/chunk-KTCBGNCZ.cjs +69 -0
  72. package/dist/chunk-KTCBGNCZ.cjs.map +1 -0
  73. package/dist/{chunk-QQIBOVFQ.js → chunk-NRJQMZLW.js} +4 -4
  74. package/dist/{chunk-QQIBOVFQ.js.map → chunk-NRJQMZLW.js.map} +1 -1
  75. package/dist/{chunk-Z73WO76N.js → chunk-NTXNE4YR.js} +3 -3
  76. package/dist/{chunk-Z73WO76N.js.map → chunk-NTXNE4YR.js.map} +1 -1
  77. package/dist/{chunk-S5QJEY5X.cjs → chunk-O6PQYYT6.cjs} +4 -4
  78. package/dist/{chunk-S5QJEY5X.cjs.map → chunk-O6PQYYT6.cjs.map} +1 -1
  79. package/dist/{chunk-AHJY7RHO.cjs → chunk-OT25QTJ2.cjs} +6 -6
  80. package/dist/{chunk-AHJY7RHO.cjs.map → chunk-OT25QTJ2.cjs.map} +1 -1
  81. package/dist/{chunk-ABRPHTOG.cjs → chunk-PRVMPHNQ.cjs} +2 -2
  82. package/dist/{chunk-ABRPHTOG.cjs.map → chunk-PRVMPHNQ.cjs.map} +1 -1
  83. package/dist/{chunk-G366B5BY.js → chunk-PYVA36ZV.js} +3 -3
  84. package/dist/{chunk-G366B5BY.js.map → chunk-PYVA36ZV.js.map} +1 -1
  85. package/dist/{chunk-4OT7CXAS.js → chunk-Q3KDKDXZ.js} +6 -6
  86. package/dist/{chunk-4OT7CXAS.js.map → chunk-Q3KDKDXZ.js.map} +1 -1
  87. package/dist/chunk-QLYANYE2.cjs +14 -0
  88. package/dist/{chunk-QPOJZU26.cjs.map → chunk-QLYANYE2.cjs.map} +1 -1
  89. package/dist/{chunk-BJGHUKKM.js → chunk-RAQ4VAQ4.js} +2 -2
  90. package/dist/{chunk-BJGHUKKM.js.map → chunk-RAQ4VAQ4.js.map} +1 -1
  91. package/dist/{chunk-PL3B3FZM.js → chunk-SPD7FTTH.js} +5 -5
  92. package/dist/{chunk-PL3B3FZM.js.map → chunk-SPD7FTTH.js.map} +1 -1
  93. package/dist/{chunk-XRJDA7BI.js → chunk-SPZSVMEW.js} +3 -3
  94. package/dist/{chunk-XRJDA7BI.js.map → chunk-SPZSVMEW.js.map} +1 -1
  95. package/dist/{chunk-F3XF7MEZ.cjs → chunk-WM4KFRLA.cjs} +30 -45
  96. package/dist/chunk-WM4KFRLA.cjs.map +1 -0
  97. package/dist/{chunk-F6XWBVVG.cjs → chunk-WOC5SCZF.cjs} +4 -4
  98. package/dist/{chunk-F6XWBVVG.cjs.map → chunk-WOC5SCZF.cjs.map} +1 -1
  99. package/dist/{chunk-V5WKCX3G.cjs → chunk-WVCEJBDR.cjs} +5 -4
  100. package/dist/chunk-WVCEJBDR.cjs.map +1 -0
  101. package/dist/{chunk-TUXCO343.js → chunk-XBBHFBQL.js} +3 -3
  102. package/dist/{chunk-TUXCO343.js.map → chunk-XBBHFBQL.js.map} +1 -1
  103. package/dist/{chunk-4VHC2F5H.js → chunk-YVLIR34D.js} +4 -4
  104. package/dist/{chunk-4VHC2F5H.js.map → chunk-YVLIR34D.js.map} +1 -1
  105. package/dist/{chunk-GEPX327P.cjs → chunk-YWXSGDDO.cjs} +4 -4
  106. package/dist/{chunk-GEPX327P.cjs.map → chunk-YWXSGDDO.cjs.map} +1 -1
  107. package/dist/{chunk-BHB4PDNV.cjs → chunk-ZBINIUJL.cjs} +2 -3
  108. package/dist/chunk-ZBINIUJL.cjs.map +1 -0
  109. package/dist/deployer/index.cjs +2 -2
  110. package/dist/deployer/index.js +1 -1
  111. package/dist/index.cjs +66 -66
  112. package/dist/index.js +18 -18
  113. package/dist/integration/index.cjs +3 -3
  114. package/dist/integration/index.js +1 -1
  115. package/dist/logger/constants.d.ts +1 -0
  116. package/dist/logger/constants.d.ts.map +1 -1
  117. package/dist/logger/index.cjs +6 -6
  118. package/dist/logger/index.js +1 -1
  119. package/dist/loop/index.cjs +2 -2
  120. package/dist/loop/index.js +1 -1
  121. package/dist/loop/network/index.d.ts.map +1 -1
  122. package/dist/loop/test-utils/generateText.d.ts.map +1 -1
  123. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  124. package/dist/mastra/index.cjs +2 -2
  125. package/dist/mastra/index.d.ts +6 -12
  126. package/dist/mastra/index.d.ts.map +1 -1
  127. package/dist/mastra/index.js +1 -1
  128. package/dist/mcp/index.cjs +4 -4
  129. package/dist/mcp/index.js +2 -2
  130. package/dist/memory/index.cjs +4 -4
  131. package/dist/memory/index.js +1 -1
  132. package/dist/network/vNext/index.cjs +34 -34
  133. package/dist/network/vNext/index.cjs.map +1 -1
  134. package/dist/network/vNext/index.js +5 -5
  135. package/dist/network/vNext/index.js.map +1 -1
  136. package/dist/processors/index.cjs +8 -8
  137. package/dist/processors/index.js +2 -2
  138. package/dist/processors/processors/prompt-injection-detector.d.ts.map +1 -1
  139. package/dist/relevance/index.cjs +4 -4
  140. package/dist/relevance/index.js +1 -1
  141. package/dist/scores/index.cjs +8 -8
  142. package/dist/scores/index.js +1 -1
  143. package/dist/server/index.cjs +4 -4
  144. package/dist/server/index.js +2 -2
  145. package/dist/storage/index.cjs +17 -17
  146. package/dist/storage/index.js +4 -4
  147. package/dist/stream/MastraWorkflowStream.d.ts +5 -4
  148. package/dist/stream/MastraWorkflowStream.d.ts.map +1 -1
  149. package/dist/stream/base/output.d.ts.map +1 -1
  150. package/dist/stream/index.cjs +7 -3
  151. package/dist/stream/index.d.ts +1 -0
  152. package/dist/stream/index.d.ts.map +1 -1
  153. package/dist/stream/index.js +1 -1
  154. package/dist/telemetry/index.cjs +7 -7
  155. package/dist/telemetry/index.js +1 -1
  156. package/dist/telemetry/telemetry.decorators.d.ts.map +1 -1
  157. package/dist/test-utils/llm-mock.cjs +2 -2
  158. package/dist/test-utils/llm-mock.js +1 -1
  159. package/dist/tools/index.cjs +4 -4
  160. package/dist/tools/index.js +1 -1
  161. package/dist/tools/is-vercel-tool.cjs +2 -2
  162. package/dist/tools/is-vercel-tool.js +1 -1
  163. package/dist/tools/tool-builder/builder.d.ts.map +1 -1
  164. package/dist/tools/tool.d.ts +2 -4
  165. package/dist/tools/tool.d.ts.map +1 -1
  166. package/dist/tools/types.d.ts +5 -4
  167. package/dist/tools/types.d.ts.map +1 -1
  168. package/dist/tts/index.cjs +2 -2
  169. package/dist/tts/index.js +1 -1
  170. package/dist/utils.cjs +17 -17
  171. package/dist/utils.d.ts +1 -1
  172. package/dist/utils.d.ts.map +1 -1
  173. package/dist/utils.js +1 -1
  174. package/dist/vector/index.cjs +4 -4
  175. package/dist/vector/index.js +1 -1
  176. package/dist/voice/index.cjs +4 -4
  177. package/dist/voice/index.js +1 -1
  178. package/dist/workflows/default.d.ts.map +1 -1
  179. package/dist/workflows/evented/index.cjs +10 -10
  180. package/dist/workflows/evented/index.js +1 -1
  181. package/dist/workflows/index.cjs +10 -10
  182. package/dist/workflows/index.js +1 -1
  183. package/dist/workflows/legacy/index.cjs +22 -22
  184. package/dist/workflows/legacy/index.js +1 -1
  185. package/dist/workflows/workflow.d.ts +44 -4
  186. package/dist/workflows/workflow.d.ts.map +1 -1
  187. package/package.json +5 -4
  188. package/dist/chunk-BGAJ72HJ.cjs.map +0 -1
  189. package/dist/chunk-BHB4PDNV.cjs.map +0 -1
  190. package/dist/chunk-BY37WSX5.js.map +0 -1
  191. package/dist/chunk-F3XF7MEZ.cjs.map +0 -1
  192. package/dist/chunk-QPOJZU26.cjs +0 -14
  193. package/dist/chunk-TLJPVRO5.js.map +0 -1
  194. package/dist/chunk-UWUM3F3X.js.map +0 -1
  195. package/dist/chunk-V5WKCX3G.cjs.map +0 -1
  196. package/dist/chunk-X3GXU6TZ.js.map +0 -1
  197. package/dist/network/index.cjs +0 -316
  198. package/dist/network/index.cjs.map +0 -1
  199. package/dist/network/index.d.ts +0 -3
  200. package/dist/network/index.d.ts.map +0 -1
  201. package/dist/network/index.js +0 -314
  202. package/dist/network/index.js.map +0 -1
  203. package/dist/network/network.d.ts +0 -124
  204. package/dist/network/network.d.ts.map +0 -1
  205. package/dist/network/types.d.ts +0 -9
  206. package/dist/network/types.d.ts.map +0 -1
  207. package/network.d.ts +0 -1
@@ -1,4 +1,4 @@
1
- import { MastraBundler } from './chunk-G366B5BY.js';
1
+ import { MastraBundler } from './chunk-PYVA36ZV.js';
2
2
 
3
3
  // src/deployer/index.ts
4
4
  var MastraDeployer = class extends MastraBundler {
@@ -8,5 +8,5 @@ var MastraDeployer = class extends MastraBundler {
8
8
  };
9
9
 
10
10
  export { MastraDeployer };
11
- //# sourceMappingURL=chunk-2PQSZI63.js.map
12
- //# sourceMappingURL=chunk-2PQSZI63.js.map
11
+ //# sourceMappingURL=chunk-GBW5ZDLZ.js.map
12
+ //# sourceMappingURL=chunk-GBW5ZDLZ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/deployer/index.ts"],"names":[],"mappings":";;;AAOO,IAAe,cAAA,GAAf,cAAsC,aAAA,CAAmC;AAAA,EAC9E,WAAA,CAAY,EAAE,IAAA,EAAK,EAAqB;AACtC,IAAA,KAAA,CAAM,EAAE,SAAA,EAAW,UAAA,EAAY,IAAA,EAAM,CAAA;AAAA,EACvC;AAGF","file":"chunk-2PQSZI63.js","sourcesContent":["import { MastraBundler } from '../bundler';\nimport type { IBundler } from '../bundler';\n\nexport interface IDeployer extends IBundler {\n deploy(outputDirectory: string): Promise<void>;\n}\n\nexport abstract class MastraDeployer extends MastraBundler implements IDeployer {\n constructor({ name }: { name: string }) {\n super({ component: 'DEPLOYER', name });\n }\n\n abstract deploy(outputDirectory: string): Promise<void>;\n}\n"]}
1
+ {"version":3,"sources":["../src/deployer/index.ts"],"names":[],"mappings":";;;AAOO,IAAe,cAAA,GAAf,cAAsC,aAAA,CAAmC;AAAA,EAC9E,WAAA,CAAY,EAAE,IAAA,EAAK,EAAqB;AACtC,IAAA,KAAA,CAAM,EAAE,SAAA,EAAW,UAAA,EAAY,IAAA,EAAM,CAAA;AAAA,EACvC;AAGF","file":"chunk-GBW5ZDLZ.js","sourcesContent":["import { MastraBundler } from '../bundler';\nimport type { IBundler } from '../bundler';\n\nexport interface IDeployer extends IBundler {\n deploy(outputDirectory: string): Promise<void>;\n}\n\nexport abstract class MastraDeployer extends MastraBundler implements IDeployer {\n constructor({ name }: { name: string }) {\n super({ component: 'DEPLOYER', name });\n }\n\n abstract deploy(outputDirectory: string): Promise<void>;\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { TABLE_WORKFLOW_SNAPSHOT, TABLE_EVALS, TABLE_MESSAGES, TABLE_THREADS, TABLE_TRACES, TABLE_SCHEMAS, TABLE_SCORERS, TABLE_RESOURCES, TABLE_AI_SPANS } from './chunk-R5GESRGB.js';
2
2
  import { MastraError } from './chunk-MCOVMKIS.js';
3
- import { MastraBase } from './chunk-6GF5M4GX.js';
3
+ import { MastraBase } from './chunk-BMVFEBPE.js';
4
4
 
5
5
  // src/storage/base.ts
6
6
  function ensureDate(date) {
@@ -409,5 +409,5 @@ var MastraStorage = class extends MastraBase {
409
409
  };
410
410
 
411
411
  export { MastraStorage, ensureDate, resolveMessageLimit, serializeDate };
412
- //# sourceMappingURL=chunk-K3JIDVC4.js.map
413
- //# sourceMappingURL=chunk-K3JIDVC4.js.map
412
+ //# sourceMappingURL=chunk-ITD7IHN5.js.map
413
+ //# sourceMappingURL=chunk-ITD7IHN5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/storage/base.ts"],"names":[],"mappings":"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","file":"chunk-K3JIDVC4.js","sourcesContent":["import type { MastraMessageContentV2, MastraMessageV2 } from '../agent';\nimport type { TracingStrategy } from '../ai-tracing';\nimport { MastraBase } from '../base';\nimport { ErrorCategory, ErrorDomain, MastraError } from '../error';\nimport type { MastraMessageV1, StorageThreadType } from '../memory/types';\nimport type { ScoreRowData, ScoringSource, ValidatedSaveScorePayload } from '../scores';\nimport type { Trace } from '../telemetry';\nimport type { StepResult, WorkflowRunState } from '../workflows/types';\n\nimport {\n TABLE_WORKFLOW_SNAPSHOT,\n TABLE_EVALS,\n TABLE_MESSAGES,\n TABLE_THREADS,\n TABLE_TRACES,\n TABLE_RESOURCES,\n TABLE_SCORERS,\n TABLE_SCHEMAS,\n TABLE_AI_SPANS,\n} from './constants';\nimport type { TABLE_NAMES } from './constants';\nimport type {\n ScoresStorage,\n StoreOperations,\n WorkflowsStorage,\n TracesStorage,\n MemoryStorage,\n LegacyEvalsStorage,\n ObservabilityStorage,\n} from './domains';\nimport type {\n EvalRow,\n PaginationInfo,\n StorageColumn,\n StorageGetMessagesArg,\n StorageResourceType,\n StoragePagination,\n ThreadSortOptions,\n WorkflowRun,\n WorkflowRuns,\n StorageGetTracesArg,\n PaginationArgs,\n StorageGetTracesPaginatedArg,\n AISpanRecord,\n AITraceRecord,\n AITracesPaginatedArg,\n CreateIndexOptions,\n IndexInfo,\n StorageIndexStats,\n} from './types';\n\nexport type StorageDomains = {\n legacyEvals: LegacyEvalsStorage;\n operations: StoreOperations;\n workflows: WorkflowsStorage;\n scores: ScoresStorage;\n traces: TracesStorage;\n memory: MemoryStorage;\n observability?: ObservabilityStorage;\n};\n\nexport function ensureDate(date: Date | string | undefined): Date | undefined {\n if (!date) return undefined;\n return date instanceof Date ? date : new Date(date);\n}\n\nexport function serializeDate(date: Date | string | undefined): string | undefined {\n if (!date) return undefined;\n const dateObj = ensureDate(date);\n return dateObj?.toISOString();\n}\n\nexport function resolveMessageLimit({\n last,\n defaultLimit,\n}: {\n last: number | false | undefined;\n defaultLimit: number;\n}): number {\n // TODO: Figure out consistent default limit for all stores as some stores use 40 and some use no limit (Number.MAX_SAFE_INTEGER)\n if (typeof last === 'number') return Math.max(0, last);\n if (last === false) return 0;\n return defaultLimit;\n}\nexport abstract class MastraStorage extends MastraBase {\n /** @deprecated import from { TABLE_WORKFLOW_SNAPSHOT } '@mastra/core/storage' instead */\n static readonly TABLE_WORKFLOW_SNAPSHOT = TABLE_WORKFLOW_SNAPSHOT;\n /** @deprecated import from { TABLE_EVALS } '@mastra/core/storage' instead */\n static readonly TABLE_EVALS = TABLE_EVALS;\n /** @deprecated import from { TABLE_MESSAGES } '@mastra/core/storage' instead */\n static readonly TABLE_MESSAGES = TABLE_MESSAGES;\n /** @deprecated import from { TABLE_THREADS } '@mastra/core/storage' instead */\n static readonly TABLE_THREADS = TABLE_THREADS;\n /** @deprecated import { TABLE_TRACES } from '@mastra/core/storage' instead */\n static readonly TABLE_TRACES = TABLE_TRACES;\n\n protected hasInitialized: null | Promise<boolean> = null;\n protected shouldCacheInit = true;\n\n stores?: StorageDomains;\n\n constructor({ name }: { name: string }) {\n super({\n component: 'STORAGE',\n name,\n });\n }\n\n public get supports(): {\n selectByIncludeResourceScope: boolean;\n resourceWorkingMemory: boolean;\n hasColumn: boolean;\n createTable: boolean;\n deleteMessages: boolean;\n aiTracing?: boolean;\n indexManagement?: boolean;\n } {\n return {\n selectByIncludeResourceScope: false,\n resourceWorkingMemory: false,\n hasColumn: false,\n createTable: false,\n deleteMessages: false,\n aiTracing: false,\n indexManagement: false,\n };\n }\n\n protected ensureDate(date: Date | string | undefined): Date | undefined {\n return ensureDate(date);\n }\n\n protected serializeDate(date: Date | string | undefined): string | undefined {\n return serializeDate(date);\n }\n\n /**\n * Resolves limit for how many messages to fetch\n *\n * @param last The number of messages to fetch\n * @param defaultLimit The default limit to use if last is not provided\n * @returns The resolved limit\n */\n protected resolveMessageLimit({\n last,\n defaultLimit,\n }: {\n last: number | false | undefined;\n defaultLimit: number;\n }): number {\n return resolveMessageLimit({ last, defaultLimit });\n }\n\n protected getSqlType(type: StorageColumn['type']): string {\n switch (type) {\n case 'text':\n return 'TEXT';\n case 'timestamp':\n return 'TIMESTAMP';\n case 'float':\n return 'FLOAT';\n case 'integer':\n return 'INTEGER';\n case 'bigint':\n return 'BIGINT';\n case 'jsonb':\n return 'JSONB';\n default:\n return 'TEXT';\n }\n }\n\n protected getDefaultValue(type: StorageColumn['type']): string {\n switch (type) {\n case 'text':\n case 'uuid':\n return \"DEFAULT ''\";\n case 'timestamp':\n return \"DEFAULT '1970-01-01 00:00:00'\";\n case 'integer':\n case 'float':\n case 'bigint':\n return 'DEFAULT 0';\n case 'jsonb':\n return \"DEFAULT '{}'\";\n default:\n return \"DEFAULT ''\";\n }\n }\n\n abstract createTable({ tableName }: { tableName: TABLE_NAMES; schema: Record<string, StorageColumn> }): Promise<void>;\n\n abstract clearTable({ tableName }: { tableName: TABLE_NAMES }): Promise<void>;\n\n abstract dropTable({ tableName }: { tableName: TABLE_NAMES }): Promise<void>;\n\n abstract alterTable(args: {\n tableName: TABLE_NAMES;\n schema: Record<string, StorageColumn>;\n ifNotExists: string[];\n }): Promise<void>;\n\n abstract insert({ tableName, record }: { tableName: TABLE_NAMES; record: Record<string, any> }): Promise<void>;\n\n abstract batchInsert({\n tableName,\n records,\n }: {\n tableName: TABLE_NAMES;\n records: Record<string, any>[];\n }): Promise<void>;\n\n batchTraceInsert({ records }: { records: Record<string, any>[] }): Promise<void> {\n if (this.stores?.traces) {\n return this.stores.traces.batchTraceInsert({ records });\n }\n return this.batchInsert({ tableName: TABLE_TRACES, records });\n }\n\n abstract load<R>({ tableName, keys }: { tableName: TABLE_NAMES; keys: Record<string, any> }): Promise<R | null>;\n\n abstract getThreadById({ threadId }: { threadId: string }): Promise<StorageThreadType | null>;\n\n abstract getThreadsByResourceId({\n resourceId,\n orderBy,\n sortDirection,\n }: { resourceId: string } & ThreadSortOptions): Promise<StorageThreadType[]>;\n\n abstract saveThread({ thread }: { thread: StorageThreadType }): Promise<StorageThreadType>;\n\n abstract updateThread({\n id,\n title,\n metadata,\n }: {\n id: string;\n title: string;\n metadata: Record<string, unknown>;\n }): Promise<StorageThreadType>;\n\n abstract deleteThread({ threadId }: { threadId: string }): Promise<void>;\n\n async getResourceById(_: { resourceId: string }): Promise<StorageResourceType | null> {\n throw new Error(\n `Resource working memory is not supported by this storage adapter (${this.constructor.name}). ` +\n `Supported storage adapters: LibSQL (@mastra/libsql), PostgreSQL (@mastra/pg), Upstash (@mastra/upstash). ` +\n `To use per-resource working memory, switch to one of these supported storage adapters.`,\n );\n }\n\n async saveResource(_: { resource: StorageResourceType }): Promise<StorageResourceType> {\n throw new Error(\n `Resource working memory is not supported by this storage adapter (${this.constructor.name}). ` +\n `Supported storage adapters: LibSQL (@mastra/libsql), PostgreSQL (@mastra/pg), Upstash (@mastra/upstash). ` +\n `To use per-resource working memory, switch to one of these supported storage adapters.`,\n );\n }\n\n async updateResource(_: {\n resourceId: string;\n workingMemory?: string;\n metadata?: Record<string, unknown>;\n }): Promise<StorageResourceType> {\n throw new Error(\n `Resource working memory is not supported by this storage adapter (${this.constructor.name}). ` +\n `Supported storage adapters: LibSQL (@mastra/libsql), PostgreSQL (@mastra/pg), Upstash (@mastra/upstash). ` +\n `To use per-resource working memory, switch to one of these supported storage adapters.`,\n );\n }\n\n abstract getMessages(args: StorageGetMessagesArg & { format?: 'v1' }): Promise<MastraMessageV1[]>;\n abstract getMessages(args: StorageGetMessagesArg & { format: 'v2' }): Promise<MastraMessageV2[]>;\n abstract getMessages({\n threadId,\n resourceId,\n selectBy,\n format,\n }: StorageGetMessagesArg & { format?: 'v1' | 'v2' }): Promise<MastraMessageV1[] | MastraMessageV2[]>;\n abstract getMessagesById({ messageIds }: { messageIds: string[]; format: 'v1' }): Promise<MastraMessageV1[]>;\n abstract getMessagesById({ messageIds }: { messageIds: string[]; format?: 'v2' }): Promise<MastraMessageV2[]>;\n abstract getMessagesById({\n messageIds,\n }: {\n messageIds: string[];\n format?: 'v1' | 'v2';\n }): Promise<MastraMessageV1[] | MastraMessageV2[]>;\n\n abstract saveMessages(args: { messages: MastraMessageV1[]; format?: undefined | 'v1' }): Promise<MastraMessageV1[]>;\n abstract saveMessages(args: { messages: MastraMessageV2[]; format: 'v2' }): Promise<MastraMessageV2[]>;\n abstract saveMessages(\n args: { messages: MastraMessageV1[]; format?: undefined | 'v1' } | { messages: MastraMessageV2[]; format: 'v2' },\n ): Promise<MastraMessageV2[] | MastraMessageV1[]>;\n\n abstract updateMessages(args: {\n messages: Partial<Omit<MastraMessageV2, 'createdAt'>> &\n {\n id: string;\n content?: { metadata?: MastraMessageContentV2['metadata']; content?: MastraMessageContentV2['content'] };\n }[];\n }): Promise<MastraMessageV2[]>;\n\n async deleteMessages(_messageIds: string[]): Promise<void> {\n throw new Error(\n `Message deletion is not supported by this storage adapter (${this.constructor.name}). ` +\n `The deleteMessages method needs to be implemented in the storage adapter.`,\n );\n }\n\n abstract getTraces(args: StorageGetTracesArg): Promise<Trace[]>;\n\n abstract getTracesPaginated(args: StorageGetTracesPaginatedArg): Promise<PaginationInfo & { traces: Trace[] }>;\n\n async init(): Promise<void> {\n // to prevent race conditions, await any current init\n if (this.shouldCacheInit && (await this.hasInitialized)) {\n return;\n }\n\n const tableCreationTasks = [\n this.createTable({\n tableName: TABLE_WORKFLOW_SNAPSHOT,\n schema: TABLE_SCHEMAS[TABLE_WORKFLOW_SNAPSHOT],\n }),\n\n this.createTable({\n tableName: TABLE_EVALS,\n schema: TABLE_SCHEMAS[TABLE_EVALS],\n }),\n\n this.createTable({\n tableName: TABLE_THREADS,\n schema: TABLE_SCHEMAS[TABLE_THREADS],\n }),\n\n this.createTable({\n tableName: TABLE_MESSAGES,\n schema: TABLE_SCHEMAS[TABLE_MESSAGES],\n }),\n\n this.createTable({\n tableName: TABLE_TRACES,\n schema: TABLE_SCHEMAS[TABLE_TRACES],\n }),\n\n this.createTable({\n tableName: TABLE_SCORERS,\n schema: TABLE_SCHEMAS[TABLE_SCORERS],\n }),\n ];\n\n // Only create resources table for storage adapters that support it\n if (this.supports.resourceWorkingMemory) {\n tableCreationTasks.push(\n this.createTable({\n tableName: TABLE_RESOURCES,\n schema: TABLE_SCHEMAS[TABLE_RESOURCES],\n }),\n );\n }\n\n if (this.supports.aiTracing) {\n tableCreationTasks.push(\n this.createTable({\n tableName: TABLE_AI_SPANS,\n schema: TABLE_SCHEMAS[TABLE_AI_SPANS],\n }),\n );\n }\n\n this.hasInitialized = Promise.all(tableCreationTasks).then(() => true);\n\n await this.hasInitialized;\n\n await this?.alterTable?.({\n tableName: TABLE_MESSAGES,\n schema: TABLE_SCHEMAS[TABLE_MESSAGES],\n ifNotExists: ['resourceId'],\n });\n await this?.alterTable?.({\n tableName: TABLE_WORKFLOW_SNAPSHOT,\n schema: TABLE_SCHEMAS[TABLE_WORKFLOW_SNAPSHOT],\n ifNotExists: ['resourceId'],\n });\n }\n\n async persistWorkflowSnapshot({\n workflowName,\n runId,\n resourceId,\n snapshot,\n }: {\n workflowName: string;\n runId: string;\n resourceId?: string;\n snapshot: WorkflowRunState;\n }): Promise<void> {\n await this.init();\n\n const data = {\n workflow_name: workflowName,\n run_id: runId,\n resourceId,\n snapshot,\n createdAt: new Date(),\n updatedAt: new Date(),\n };\n this.logger.debug('Persisting workflow snapshot', { workflowName, runId, data });\n await this.insert({\n tableName: TABLE_WORKFLOW_SNAPSHOT,\n record: data,\n });\n }\n\n abstract updateWorkflowResults({\n workflowName,\n runId,\n stepId,\n result,\n }: {\n workflowName: string;\n runId: string;\n stepId: string;\n result: StepResult<any, any, any, any>;\n runtimeContext: Record<string, any>;\n }): Promise<Record<string, StepResult<any, any, any, any>>>;\n\n abstract updateWorkflowState({\n workflowName,\n runId,\n opts,\n }: {\n workflowName: string;\n runId: string;\n opts: {\n status: string;\n result?: StepResult<any, any, any, any>;\n error?: string;\n suspendedPaths?: Record<string, number[]>;\n waitingPaths?: Record<string, number[]>;\n };\n }): Promise<WorkflowRunState | undefined>;\n\n async loadWorkflowSnapshot({\n workflowName,\n runId,\n }: {\n workflowName: string;\n runId: string;\n }): Promise<WorkflowRunState | null> {\n if (!this.hasInitialized) {\n await this.init();\n }\n this.logger.debug('Loading workflow snapshot', { workflowName, runId });\n const d = await this.load<{ snapshot: WorkflowRunState }>({\n tableName: TABLE_WORKFLOW_SNAPSHOT,\n keys: { workflow_name: workflowName, run_id: runId },\n });\n\n return d ? d.snapshot : null;\n }\n\n /**\n * SCORERS\n */\n\n abstract getScoreById({ id }: { id: string }): Promise<ScoreRowData | null>;\n\n abstract saveScore(score: ValidatedSaveScorePayload): Promise<{ score: ScoreRowData }>;\n\n abstract getScoresByScorerId({\n scorerId,\n pagination,\n entityId,\n entityType,\n source,\n }: {\n scorerId: string;\n pagination: StoragePagination;\n entityId?: string;\n entityType?: string;\n source?: ScoringSource;\n }): Promise<{ pagination: PaginationInfo; scores: ScoreRowData[] }>;\n\n abstract getScoresByRunId({\n runId,\n pagination,\n }: {\n runId: string;\n pagination: StoragePagination;\n }): Promise<{ pagination: PaginationInfo; scores: ScoreRowData[] }>;\n\n abstract getScoresByEntityId({\n entityId,\n entityType,\n pagination,\n }: {\n pagination: StoragePagination;\n entityId: string;\n entityType: string;\n }): Promise<{ pagination: PaginationInfo; scores: ScoreRowData[] }>;\n\n abstract getEvals(\n options: {\n agentName?: string;\n type?: 'test' | 'live';\n } & PaginationArgs,\n ): Promise<PaginationInfo & { evals: EvalRow[] }>;\n\n abstract getEvalsByAgentName(agentName: string, type?: 'test' | 'live'): Promise<EvalRow[]>;\n\n abstract getWorkflowRuns(args?: {\n workflowName?: string;\n fromDate?: Date;\n toDate?: Date;\n limit?: number;\n offset?: number;\n resourceId?: string;\n }): Promise<WorkflowRuns>;\n\n abstract getWorkflowRunById(args: { runId: string; workflowName?: string }): Promise<WorkflowRun | null>;\n\n abstract getThreadsByResourceIdPaginated(\n args: {\n resourceId: string;\n page: number;\n perPage: number;\n } & ThreadSortOptions,\n ): Promise<PaginationInfo & { threads: StorageThreadType[] }>;\n\n abstract getMessagesPaginated(\n args: StorageGetMessagesArg & { format?: 'v1' | 'v2' },\n ): Promise<PaginationInfo & { messages: MastraMessageV1[] | MastraMessageV2[] }>;\n\n /**\n * OBSERVABILITY\n */\n\n /**\n * Provides hints for AI tracing strategy selection by the DefaultExporter.\n * Storage adapters can override this to specify their preferred and supported strategies.\n */\n public get aiTracingStrategy(): {\n preferred: TracingStrategy;\n supported: TracingStrategy[];\n } {\n if (this.stores?.observability) {\n return this.stores.observability.aiTracingStrategy;\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_TRACING_STRATEGY_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `AI tracing is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Creates a single AI span record in the storage provider.\n */\n async createAISpan(span: AISpanRecord): Promise<void> {\n if (this.stores?.observability) {\n return this.stores.observability.createAISpan(span);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_CREATE_AI_SPAN_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `AI tracing is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Updates a single AI span with partial data. Primarily used for realtime trace creation.\n */\n async updateAISpan(params: {\n spanId: string;\n traceId: string;\n updates: Partial<Omit<AISpanRecord, 'spanId' | 'traceId'>>;\n }): Promise<void> {\n if (this.stores?.observability) {\n return this.stores.observability.updateAISpan(params);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_UPDATE_AI_SPAN_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `AI tracing is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Retrieves a single AI trace with all its associated spans.\n */\n async getAITrace(traceId: string): Promise<AITraceRecord | null> {\n if (this.stores?.observability) {\n return this.stores.observability.getAITrace(traceId);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_GET_AI_TRACE_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `AI tracing is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Retrieves a paginated list of AI traces with optional filtering.\n */\n async getAITracesPaginated(\n args: AITracesPaginatedArg,\n ): Promise<{ pagination: PaginationInfo; spans: AISpanRecord[] }> {\n if (this.stores?.observability) {\n return this.stores.observability.getAITracesPaginated(args);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_GET_AI_TRACES_PAGINATED_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `AI tracing is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Creates multiple AI spans in a single batch.\n */\n async batchCreateAISpans(args: { records: AISpanRecord[] }): Promise<void> {\n if (this.stores?.observability) {\n return this.stores.observability.batchCreateAISpans(args);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_BATCH_CREATE_AI_SPANS_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `AI tracing is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Updates multiple AI spans in a single batch.\n */\n async batchUpdateAISpans(args: {\n records: {\n traceId: string;\n spanId: string;\n updates: Partial<Omit<AISpanRecord, 'spanId' | 'traceId'>>;\n }[];\n }): Promise<void> {\n if (this.stores?.observability) {\n return this.stores.observability.batchUpdateAISpans(args);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_BATCH_UPDATE_AI_SPANS_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `AI tracing is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Deletes multiple AI traces and all their associated spans in a single batch operation.\n */\n async batchDeleteAITraces(args: { traceIds: string[] }): Promise<void> {\n if (this.stores?.observability) {\n return this.stores.observability.batchDeleteAITraces(args);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_BATCH_DELETE_AI_TRACES_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `AI tracing is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * DATABASE INDEX MANAGEMENT\n * These methods delegate to the operations store for index management.\n * Storage adapters that support indexes should implement these in their operations class.\n */\n\n /**\n * Creates a database index on specified columns\n * @throws {MastraError} if not supported by the storage adapter\n */\n async createIndex(options: CreateIndexOptions): Promise<void> {\n if (this.stores?.operations) {\n return this.stores.operations.createIndex(options);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_CREATE_INDEX_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `Index management is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Drops a database index by name\n * @throws {MastraError} if not supported by the storage adapter\n */\n async dropIndex(indexName: string): Promise<void> {\n if (this.stores?.operations) {\n return this.stores.operations.dropIndex(indexName);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_DROP_INDEX_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `Index management is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Lists database indexes for a table or all tables\n * @throws {MastraError} if not supported by the storage adapter\n */\n async listIndexes(tableName?: string): Promise<IndexInfo[]> {\n if (this.stores?.operations) {\n return this.stores.operations.listIndexes(tableName);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_LIST_INDEXES_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `Index management is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Gets detailed statistics for a specific index\n * @throws {MastraError} if not supported by the storage adapter\n */\n async describeIndex(indexName: string): Promise<StorageIndexStats> {\n if (this.stores?.operations) {\n return this.stores.operations.describeIndex(indexName);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_DESCRIBE_INDEX_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `Index management is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/storage/base.ts"],"names":[],"mappings":"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","file":"chunk-ITD7IHN5.js","sourcesContent":["import type { MastraMessageContentV2, MastraMessageV2 } from '../agent';\nimport type { TracingStrategy } from '../ai-tracing';\nimport { MastraBase } from '../base';\nimport { ErrorCategory, ErrorDomain, MastraError } from '../error';\nimport type { MastraMessageV1, StorageThreadType } from '../memory/types';\nimport type { ScoreRowData, ScoringSource, ValidatedSaveScorePayload } from '../scores';\nimport type { Trace } from '../telemetry';\nimport type { StepResult, WorkflowRunState } from '../workflows/types';\n\nimport {\n TABLE_WORKFLOW_SNAPSHOT,\n TABLE_EVALS,\n TABLE_MESSAGES,\n TABLE_THREADS,\n TABLE_TRACES,\n TABLE_RESOURCES,\n TABLE_SCORERS,\n TABLE_SCHEMAS,\n TABLE_AI_SPANS,\n} from './constants';\nimport type { TABLE_NAMES } from './constants';\nimport type {\n ScoresStorage,\n StoreOperations,\n WorkflowsStorage,\n TracesStorage,\n MemoryStorage,\n LegacyEvalsStorage,\n ObservabilityStorage,\n} from './domains';\nimport type {\n EvalRow,\n PaginationInfo,\n StorageColumn,\n StorageGetMessagesArg,\n StorageResourceType,\n StoragePagination,\n ThreadSortOptions,\n WorkflowRun,\n WorkflowRuns,\n StorageGetTracesArg,\n PaginationArgs,\n StorageGetTracesPaginatedArg,\n AISpanRecord,\n AITraceRecord,\n AITracesPaginatedArg,\n CreateIndexOptions,\n IndexInfo,\n StorageIndexStats,\n} from './types';\n\nexport type StorageDomains = {\n legacyEvals: LegacyEvalsStorage;\n operations: StoreOperations;\n workflows: WorkflowsStorage;\n scores: ScoresStorage;\n traces: TracesStorage;\n memory: MemoryStorage;\n observability?: ObservabilityStorage;\n};\n\nexport function ensureDate(date: Date | string | undefined): Date | undefined {\n if (!date) return undefined;\n return date instanceof Date ? date : new Date(date);\n}\n\nexport function serializeDate(date: Date | string | undefined): string | undefined {\n if (!date) return undefined;\n const dateObj = ensureDate(date);\n return dateObj?.toISOString();\n}\n\nexport function resolveMessageLimit({\n last,\n defaultLimit,\n}: {\n last: number | false | undefined;\n defaultLimit: number;\n}): number {\n // TODO: Figure out consistent default limit for all stores as some stores use 40 and some use no limit (Number.MAX_SAFE_INTEGER)\n if (typeof last === 'number') return Math.max(0, last);\n if (last === false) return 0;\n return defaultLimit;\n}\nexport abstract class MastraStorage extends MastraBase {\n /** @deprecated import from { TABLE_WORKFLOW_SNAPSHOT } '@mastra/core/storage' instead */\n static readonly TABLE_WORKFLOW_SNAPSHOT = TABLE_WORKFLOW_SNAPSHOT;\n /** @deprecated import from { TABLE_EVALS } '@mastra/core/storage' instead */\n static readonly TABLE_EVALS = TABLE_EVALS;\n /** @deprecated import from { TABLE_MESSAGES } '@mastra/core/storage' instead */\n static readonly TABLE_MESSAGES = TABLE_MESSAGES;\n /** @deprecated import from { TABLE_THREADS } '@mastra/core/storage' instead */\n static readonly TABLE_THREADS = TABLE_THREADS;\n /** @deprecated import { TABLE_TRACES } from '@mastra/core/storage' instead */\n static readonly TABLE_TRACES = TABLE_TRACES;\n\n protected hasInitialized: null | Promise<boolean> = null;\n protected shouldCacheInit = true;\n\n stores?: StorageDomains;\n\n constructor({ name }: { name: string }) {\n super({\n component: 'STORAGE',\n name,\n });\n }\n\n public get supports(): {\n selectByIncludeResourceScope: boolean;\n resourceWorkingMemory: boolean;\n hasColumn: boolean;\n createTable: boolean;\n deleteMessages: boolean;\n aiTracing?: boolean;\n indexManagement?: boolean;\n } {\n return {\n selectByIncludeResourceScope: false,\n resourceWorkingMemory: false,\n hasColumn: false,\n createTable: false,\n deleteMessages: false,\n aiTracing: false,\n indexManagement: false,\n };\n }\n\n protected ensureDate(date: Date | string | undefined): Date | undefined {\n return ensureDate(date);\n }\n\n protected serializeDate(date: Date | string | undefined): string | undefined {\n return serializeDate(date);\n }\n\n /**\n * Resolves limit for how many messages to fetch\n *\n * @param last The number of messages to fetch\n * @param defaultLimit The default limit to use if last is not provided\n * @returns The resolved limit\n */\n protected resolveMessageLimit({\n last,\n defaultLimit,\n }: {\n last: number | false | undefined;\n defaultLimit: number;\n }): number {\n return resolveMessageLimit({ last, defaultLimit });\n }\n\n protected getSqlType(type: StorageColumn['type']): string {\n switch (type) {\n case 'text':\n return 'TEXT';\n case 'timestamp':\n return 'TIMESTAMP';\n case 'float':\n return 'FLOAT';\n case 'integer':\n return 'INTEGER';\n case 'bigint':\n return 'BIGINT';\n case 'jsonb':\n return 'JSONB';\n default:\n return 'TEXT';\n }\n }\n\n protected getDefaultValue(type: StorageColumn['type']): string {\n switch (type) {\n case 'text':\n case 'uuid':\n return \"DEFAULT ''\";\n case 'timestamp':\n return \"DEFAULT '1970-01-01 00:00:00'\";\n case 'integer':\n case 'float':\n case 'bigint':\n return 'DEFAULT 0';\n case 'jsonb':\n return \"DEFAULT '{}'\";\n default:\n return \"DEFAULT ''\";\n }\n }\n\n abstract createTable({ tableName }: { tableName: TABLE_NAMES; schema: Record<string, StorageColumn> }): Promise<void>;\n\n abstract clearTable({ tableName }: { tableName: TABLE_NAMES }): Promise<void>;\n\n abstract dropTable({ tableName }: { tableName: TABLE_NAMES }): Promise<void>;\n\n abstract alterTable(args: {\n tableName: TABLE_NAMES;\n schema: Record<string, StorageColumn>;\n ifNotExists: string[];\n }): Promise<void>;\n\n abstract insert({ tableName, record }: { tableName: TABLE_NAMES; record: Record<string, any> }): Promise<void>;\n\n abstract batchInsert({\n tableName,\n records,\n }: {\n tableName: TABLE_NAMES;\n records: Record<string, any>[];\n }): Promise<void>;\n\n batchTraceInsert({ records }: { records: Record<string, any>[] }): Promise<void> {\n if (this.stores?.traces) {\n return this.stores.traces.batchTraceInsert({ records });\n }\n return this.batchInsert({ tableName: TABLE_TRACES, records });\n }\n\n abstract load<R>({ tableName, keys }: { tableName: TABLE_NAMES; keys: Record<string, any> }): Promise<R | null>;\n\n abstract getThreadById({ threadId }: { threadId: string }): Promise<StorageThreadType | null>;\n\n abstract getThreadsByResourceId({\n resourceId,\n orderBy,\n sortDirection,\n }: { resourceId: string } & ThreadSortOptions): Promise<StorageThreadType[]>;\n\n abstract saveThread({ thread }: { thread: StorageThreadType }): Promise<StorageThreadType>;\n\n abstract updateThread({\n id,\n title,\n metadata,\n }: {\n id: string;\n title: string;\n metadata: Record<string, unknown>;\n }): Promise<StorageThreadType>;\n\n abstract deleteThread({ threadId }: { threadId: string }): Promise<void>;\n\n async getResourceById(_: { resourceId: string }): Promise<StorageResourceType | null> {\n throw new Error(\n `Resource working memory is not supported by this storage adapter (${this.constructor.name}). ` +\n `Supported storage adapters: LibSQL (@mastra/libsql), PostgreSQL (@mastra/pg), Upstash (@mastra/upstash). ` +\n `To use per-resource working memory, switch to one of these supported storage adapters.`,\n );\n }\n\n async saveResource(_: { resource: StorageResourceType }): Promise<StorageResourceType> {\n throw new Error(\n `Resource working memory is not supported by this storage adapter (${this.constructor.name}). ` +\n `Supported storage adapters: LibSQL (@mastra/libsql), PostgreSQL (@mastra/pg), Upstash (@mastra/upstash). ` +\n `To use per-resource working memory, switch to one of these supported storage adapters.`,\n );\n }\n\n async updateResource(_: {\n resourceId: string;\n workingMemory?: string;\n metadata?: Record<string, unknown>;\n }): Promise<StorageResourceType> {\n throw new Error(\n `Resource working memory is not supported by this storage adapter (${this.constructor.name}). ` +\n `Supported storage adapters: LibSQL (@mastra/libsql), PostgreSQL (@mastra/pg), Upstash (@mastra/upstash). ` +\n `To use per-resource working memory, switch to one of these supported storage adapters.`,\n );\n }\n\n abstract getMessages(args: StorageGetMessagesArg & { format?: 'v1' }): Promise<MastraMessageV1[]>;\n abstract getMessages(args: StorageGetMessagesArg & { format: 'v2' }): Promise<MastraMessageV2[]>;\n abstract getMessages({\n threadId,\n resourceId,\n selectBy,\n format,\n }: StorageGetMessagesArg & { format?: 'v1' | 'v2' }): Promise<MastraMessageV1[] | MastraMessageV2[]>;\n abstract getMessagesById({ messageIds }: { messageIds: string[]; format: 'v1' }): Promise<MastraMessageV1[]>;\n abstract getMessagesById({ messageIds }: { messageIds: string[]; format?: 'v2' }): Promise<MastraMessageV2[]>;\n abstract getMessagesById({\n messageIds,\n }: {\n messageIds: string[];\n format?: 'v1' | 'v2';\n }): Promise<MastraMessageV1[] | MastraMessageV2[]>;\n\n abstract saveMessages(args: { messages: MastraMessageV1[]; format?: undefined | 'v1' }): Promise<MastraMessageV1[]>;\n abstract saveMessages(args: { messages: MastraMessageV2[]; format: 'v2' }): Promise<MastraMessageV2[]>;\n abstract saveMessages(\n args: { messages: MastraMessageV1[]; format?: undefined | 'v1' } | { messages: MastraMessageV2[]; format: 'v2' },\n ): Promise<MastraMessageV2[] | MastraMessageV1[]>;\n\n abstract updateMessages(args: {\n messages: Partial<Omit<MastraMessageV2, 'createdAt'>> &\n {\n id: string;\n content?: { metadata?: MastraMessageContentV2['metadata']; content?: MastraMessageContentV2['content'] };\n }[];\n }): Promise<MastraMessageV2[]>;\n\n async deleteMessages(_messageIds: string[]): Promise<void> {\n throw new Error(\n `Message deletion is not supported by this storage adapter (${this.constructor.name}). ` +\n `The deleteMessages method needs to be implemented in the storage adapter.`,\n );\n }\n\n abstract getTraces(args: StorageGetTracesArg): Promise<Trace[]>;\n\n abstract getTracesPaginated(args: StorageGetTracesPaginatedArg): Promise<PaginationInfo & { traces: Trace[] }>;\n\n async init(): Promise<void> {\n // to prevent race conditions, await any current init\n if (this.shouldCacheInit && (await this.hasInitialized)) {\n return;\n }\n\n const tableCreationTasks = [\n this.createTable({\n tableName: TABLE_WORKFLOW_SNAPSHOT,\n schema: TABLE_SCHEMAS[TABLE_WORKFLOW_SNAPSHOT],\n }),\n\n this.createTable({\n tableName: TABLE_EVALS,\n schema: TABLE_SCHEMAS[TABLE_EVALS],\n }),\n\n this.createTable({\n tableName: TABLE_THREADS,\n schema: TABLE_SCHEMAS[TABLE_THREADS],\n }),\n\n this.createTable({\n tableName: TABLE_MESSAGES,\n schema: TABLE_SCHEMAS[TABLE_MESSAGES],\n }),\n\n this.createTable({\n tableName: TABLE_TRACES,\n schema: TABLE_SCHEMAS[TABLE_TRACES],\n }),\n\n this.createTable({\n tableName: TABLE_SCORERS,\n schema: TABLE_SCHEMAS[TABLE_SCORERS],\n }),\n ];\n\n // Only create resources table for storage adapters that support it\n if (this.supports.resourceWorkingMemory) {\n tableCreationTasks.push(\n this.createTable({\n tableName: TABLE_RESOURCES,\n schema: TABLE_SCHEMAS[TABLE_RESOURCES],\n }),\n );\n }\n\n if (this.supports.aiTracing) {\n tableCreationTasks.push(\n this.createTable({\n tableName: TABLE_AI_SPANS,\n schema: TABLE_SCHEMAS[TABLE_AI_SPANS],\n }),\n );\n }\n\n this.hasInitialized = Promise.all(tableCreationTasks).then(() => true);\n\n await this.hasInitialized;\n\n await this?.alterTable?.({\n tableName: TABLE_MESSAGES,\n schema: TABLE_SCHEMAS[TABLE_MESSAGES],\n ifNotExists: ['resourceId'],\n });\n await this?.alterTable?.({\n tableName: TABLE_WORKFLOW_SNAPSHOT,\n schema: TABLE_SCHEMAS[TABLE_WORKFLOW_SNAPSHOT],\n ifNotExists: ['resourceId'],\n });\n }\n\n async persistWorkflowSnapshot({\n workflowName,\n runId,\n resourceId,\n snapshot,\n }: {\n workflowName: string;\n runId: string;\n resourceId?: string;\n snapshot: WorkflowRunState;\n }): Promise<void> {\n await this.init();\n\n const data = {\n workflow_name: workflowName,\n run_id: runId,\n resourceId,\n snapshot,\n createdAt: new Date(),\n updatedAt: new Date(),\n };\n this.logger.debug('Persisting workflow snapshot', { workflowName, runId, data });\n await this.insert({\n tableName: TABLE_WORKFLOW_SNAPSHOT,\n record: data,\n });\n }\n\n abstract updateWorkflowResults({\n workflowName,\n runId,\n stepId,\n result,\n }: {\n workflowName: string;\n runId: string;\n stepId: string;\n result: StepResult<any, any, any, any>;\n runtimeContext: Record<string, any>;\n }): Promise<Record<string, StepResult<any, any, any, any>>>;\n\n abstract updateWorkflowState({\n workflowName,\n runId,\n opts,\n }: {\n workflowName: string;\n runId: string;\n opts: {\n status: string;\n result?: StepResult<any, any, any, any>;\n error?: string;\n suspendedPaths?: Record<string, number[]>;\n waitingPaths?: Record<string, number[]>;\n };\n }): Promise<WorkflowRunState | undefined>;\n\n async loadWorkflowSnapshot({\n workflowName,\n runId,\n }: {\n workflowName: string;\n runId: string;\n }): Promise<WorkflowRunState | null> {\n if (!this.hasInitialized) {\n await this.init();\n }\n this.logger.debug('Loading workflow snapshot', { workflowName, runId });\n const d = await this.load<{ snapshot: WorkflowRunState }>({\n tableName: TABLE_WORKFLOW_SNAPSHOT,\n keys: { workflow_name: workflowName, run_id: runId },\n });\n\n return d ? d.snapshot : null;\n }\n\n /**\n * SCORERS\n */\n\n abstract getScoreById({ id }: { id: string }): Promise<ScoreRowData | null>;\n\n abstract saveScore(score: ValidatedSaveScorePayload): Promise<{ score: ScoreRowData }>;\n\n abstract getScoresByScorerId({\n scorerId,\n pagination,\n entityId,\n entityType,\n source,\n }: {\n scorerId: string;\n pagination: StoragePagination;\n entityId?: string;\n entityType?: string;\n source?: ScoringSource;\n }): Promise<{ pagination: PaginationInfo; scores: ScoreRowData[] }>;\n\n abstract getScoresByRunId({\n runId,\n pagination,\n }: {\n runId: string;\n pagination: StoragePagination;\n }): Promise<{ pagination: PaginationInfo; scores: ScoreRowData[] }>;\n\n abstract getScoresByEntityId({\n entityId,\n entityType,\n pagination,\n }: {\n pagination: StoragePagination;\n entityId: string;\n entityType: string;\n }): Promise<{ pagination: PaginationInfo; scores: ScoreRowData[] }>;\n\n abstract getEvals(\n options: {\n agentName?: string;\n type?: 'test' | 'live';\n } & PaginationArgs,\n ): Promise<PaginationInfo & { evals: EvalRow[] }>;\n\n abstract getEvalsByAgentName(agentName: string, type?: 'test' | 'live'): Promise<EvalRow[]>;\n\n abstract getWorkflowRuns(args?: {\n workflowName?: string;\n fromDate?: Date;\n toDate?: Date;\n limit?: number;\n offset?: number;\n resourceId?: string;\n }): Promise<WorkflowRuns>;\n\n abstract getWorkflowRunById(args: { runId: string; workflowName?: string }): Promise<WorkflowRun | null>;\n\n abstract getThreadsByResourceIdPaginated(\n args: {\n resourceId: string;\n page: number;\n perPage: number;\n } & ThreadSortOptions,\n ): Promise<PaginationInfo & { threads: StorageThreadType[] }>;\n\n abstract getMessagesPaginated(\n args: StorageGetMessagesArg & { format?: 'v1' | 'v2' },\n ): Promise<PaginationInfo & { messages: MastraMessageV1[] | MastraMessageV2[] }>;\n\n /**\n * OBSERVABILITY\n */\n\n /**\n * Provides hints for AI tracing strategy selection by the DefaultExporter.\n * Storage adapters can override this to specify their preferred and supported strategies.\n */\n public get aiTracingStrategy(): {\n preferred: TracingStrategy;\n supported: TracingStrategy[];\n } {\n if (this.stores?.observability) {\n return this.stores.observability.aiTracingStrategy;\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_TRACING_STRATEGY_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `AI tracing is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Creates a single AI span record in the storage provider.\n */\n async createAISpan(span: AISpanRecord): Promise<void> {\n if (this.stores?.observability) {\n return this.stores.observability.createAISpan(span);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_CREATE_AI_SPAN_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `AI tracing is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Updates a single AI span with partial data. Primarily used for realtime trace creation.\n */\n async updateAISpan(params: {\n spanId: string;\n traceId: string;\n updates: Partial<Omit<AISpanRecord, 'spanId' | 'traceId'>>;\n }): Promise<void> {\n if (this.stores?.observability) {\n return this.stores.observability.updateAISpan(params);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_UPDATE_AI_SPAN_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `AI tracing is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Retrieves a single AI trace with all its associated spans.\n */\n async getAITrace(traceId: string): Promise<AITraceRecord | null> {\n if (this.stores?.observability) {\n return this.stores.observability.getAITrace(traceId);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_GET_AI_TRACE_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `AI tracing is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Retrieves a paginated list of AI traces with optional filtering.\n */\n async getAITracesPaginated(\n args: AITracesPaginatedArg,\n ): Promise<{ pagination: PaginationInfo; spans: AISpanRecord[] }> {\n if (this.stores?.observability) {\n return this.stores.observability.getAITracesPaginated(args);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_GET_AI_TRACES_PAGINATED_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `AI tracing is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Creates multiple AI spans in a single batch.\n */\n async batchCreateAISpans(args: { records: AISpanRecord[] }): Promise<void> {\n if (this.stores?.observability) {\n return this.stores.observability.batchCreateAISpans(args);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_BATCH_CREATE_AI_SPANS_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `AI tracing is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Updates multiple AI spans in a single batch.\n */\n async batchUpdateAISpans(args: {\n records: {\n traceId: string;\n spanId: string;\n updates: Partial<Omit<AISpanRecord, 'spanId' | 'traceId'>>;\n }[];\n }): Promise<void> {\n if (this.stores?.observability) {\n return this.stores.observability.batchUpdateAISpans(args);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_BATCH_UPDATE_AI_SPANS_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `AI tracing is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Deletes multiple AI traces and all their associated spans in a single batch operation.\n */\n async batchDeleteAITraces(args: { traceIds: string[] }): Promise<void> {\n if (this.stores?.observability) {\n return this.stores.observability.batchDeleteAITraces(args);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_BATCH_DELETE_AI_TRACES_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `AI tracing is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * DATABASE INDEX MANAGEMENT\n * These methods delegate to the operations store for index management.\n * Storage adapters that support indexes should implement these in their operations class.\n */\n\n /**\n * Creates a database index on specified columns\n * @throws {MastraError} if not supported by the storage adapter\n */\n async createIndex(options: CreateIndexOptions): Promise<void> {\n if (this.stores?.operations) {\n return this.stores.operations.createIndex(options);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_CREATE_INDEX_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `Index management is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Drops a database index by name\n * @throws {MastraError} if not supported by the storage adapter\n */\n async dropIndex(indexName: string): Promise<void> {\n if (this.stores?.operations) {\n return this.stores.operations.dropIndex(indexName);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_DROP_INDEX_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `Index management is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Lists database indexes for a table or all tables\n * @throws {MastraError} if not supported by the storage adapter\n */\n async listIndexes(tableName?: string): Promise<IndexInfo[]> {\n if (this.stores?.operations) {\n return this.stores.operations.listIndexes(tableName);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_LIST_INDEXES_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `Index management is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n\n /**\n * Gets detailed statistics for a specific index\n * @throws {MastraError} if not supported by the storage adapter\n */\n async describeIndex(indexName: string): Promise<StorageIndexStats> {\n if (this.stores?.operations) {\n return this.stores.operations.describeIndex(indexName);\n }\n throw new MastraError({\n id: 'MASTRA_STORAGE_DESCRIBE_INDEX_NOT_SUPPORTED',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: `Index management is not supported by this storage adapter (${this.constructor.name})`,\n });\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkCP4TZ4HO_cjs = require('./chunk-CP4TZ4HO.cjs');
3
+ var chunk3ZWRKJSW_cjs = require('./chunk-3ZWRKJSW.cjs');
4
4
  var chunkC73WLCY3_cjs = require('./chunk-C73WLCY3.cjs');
5
5
  var crypto = require('crypto');
6
6
  var AIV4 = require('ai');
@@ -613,7 +613,7 @@ function convertDataContentToBase64String(content) {
613
613
  var downloadFromUrl = async ({ url, downloadRetries }) => {
614
614
  const urlText = url.toString();
615
615
  try {
616
- const response = await chunkCP4TZ4HO_cjs.fetchWithRetry(
616
+ const response = await chunk3ZWRKJSW_cjs.fetchWithRetry(
617
617
  urlText,
618
618
  {
619
619
  method: "GET"
@@ -2982,5 +2982,5 @@ exports.DefaultGeneratedFile = DefaultGeneratedFile;
2982
2982
  exports.DefaultGeneratedFileWithType = DefaultGeneratedFileWithType;
2983
2983
  exports.MessageList = MessageList;
2984
2984
  exports.convertMessages = convertMessages;
2985
- //# sourceMappingURL=chunk-MRZHPP3G.cjs.map
2986
- //# sourceMappingURL=chunk-MRZHPP3G.cjs.map
2985
+ //# sourceMappingURL=chunk-JAJMFWRT.cjs.map
2986
+ //# sourceMappingURL=chunk-JAJMFWRT.cjs.map