@mastra/core 1.0.0-beta.6 → 1.0.0-beta.8

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 (203) hide show
  1. package/CHANGELOG.md +195 -0
  2. package/dist/agent/agent-legacy.d.ts.map +1 -1
  3. package/dist/agent/agent.d.ts.map +1 -1
  4. package/dist/agent/index.cjs +9 -9
  5. package/dist/agent/index.js +2 -2
  6. package/dist/agent/message-list/index.cjs +3 -3
  7. package/dist/agent/message-list/index.js +1 -1
  8. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
  9. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts.map +1 -1
  10. package/dist/agent/workflows/prepare-stream/schema.d.ts +2 -1
  11. package/dist/agent/workflows/prepare-stream/schema.d.ts.map +1 -1
  12. package/dist/{chunk-NHNXIYDG.cjs → chunk-3EYBRHB2.cjs} +2 -2
  13. package/dist/chunk-3EYBRHB2.cjs.map +1 -0
  14. package/dist/{chunk-AQAIS7FH.cjs → chunk-3JA6VPNM.cjs} +2 -2
  15. package/dist/chunk-3JA6VPNM.cjs.map +1 -0
  16. package/dist/{chunk-WDRA4WKG.js → chunk-4GTU7MB2.js} +5 -5
  17. package/dist/{chunk-WDRA4WKG.js.map → chunk-4GTU7MB2.js.map} +1 -1
  18. package/dist/{chunk-S5FPOCQF.cjs → chunk-6BYHQ52F.cjs} +24 -24
  19. package/dist/{chunk-S5FPOCQF.cjs.map → chunk-6BYHQ52F.cjs.map} +1 -1
  20. package/dist/{chunk-RTROJFEU.cjs → chunk-6C2PU6J4.cjs} +8 -8
  21. package/dist/{chunk-RTROJFEU.cjs.map → chunk-6C2PU6J4.cjs.map} +1 -1
  22. package/dist/{chunk-6GOLI2EY.js → chunk-7PXCGGMO.js} +8 -12
  23. package/dist/chunk-7PXCGGMO.js.map +1 -0
  24. package/dist/chunk-AZQMPE7G.cjs +4981 -0
  25. package/dist/chunk-AZQMPE7G.cjs.map +1 -0
  26. package/dist/{chunk-HNHZGFZY.cjs → chunk-CZEJQSWB.cjs} +10 -2
  27. package/dist/chunk-CZEJQSWB.cjs.map +1 -0
  28. package/dist/{chunk-APMPOYPI.js → chunk-DMPHPHMU.js} +3 -3
  29. package/dist/{chunk-APMPOYPI.js.map → chunk-DMPHPHMU.js.map} +1 -1
  30. package/dist/{chunk-45NA5ZD3.js → chunk-EDNHZZUP.js} +160 -60
  31. package/dist/chunk-EDNHZZUP.js.map +1 -0
  32. package/dist/{chunk-LEZIKVRQ.js → chunk-F54IK3GJ.js} +2 -2
  33. package/dist/chunk-F54IK3GJ.js.map +1 -0
  34. package/dist/{chunk-FYP3AT6W.js → chunk-FNSFXWDN.js} +2 -2
  35. package/dist/chunk-FNSFXWDN.js.map +1 -0
  36. package/dist/{chunk-XY337TTF.js → chunk-GW7BNMGA.js} +4 -4
  37. package/dist/{chunk-XY337TTF.js.map → chunk-GW7BNMGA.js.map} +1 -1
  38. package/dist/{chunk-OPALPWAM.js → chunk-HDMH5IDV.js} +42 -5
  39. package/dist/chunk-HDMH5IDV.js.map +1 -0
  40. package/dist/{chunk-NN3NOFRU.cjs → chunk-HP6TRJ2Q.cjs} +207 -106
  41. package/dist/chunk-HP6TRJ2Q.cjs.map +1 -0
  42. package/dist/{chunk-3TKNXJES.cjs → chunk-KBXFAF37.cjs} +46 -6
  43. package/dist/chunk-KBXFAF37.cjs.map +1 -0
  44. package/dist/{chunk-7ZADRRDW.js → chunk-PK2A5WBG.js} +3 -3
  45. package/dist/chunk-PK2A5WBG.js.map +1 -0
  46. package/dist/{chunk-DXMSVGJ6.js → chunk-QDIYYAA4.js} +28 -59
  47. package/dist/chunk-QDIYYAA4.js.map +1 -0
  48. package/dist/{chunk-TARWUQG6.js → chunk-QHJ7YVNX.js} +8 -8
  49. package/dist/{chunk-TARWUQG6.js.map → chunk-QHJ7YVNX.js.map} +1 -1
  50. package/dist/{chunk-IWTMMUQY.cjs → chunk-QYNZAPFE.cjs} +4 -4
  51. package/dist/{chunk-IWTMMUQY.cjs.map → chunk-QYNZAPFE.cjs.map} +1 -1
  52. package/dist/{chunk-TS7B26US.js → chunk-RWT3XPKO.js} +3 -3
  53. package/dist/{chunk-TS7B26US.js.map → chunk-RWT3XPKO.js.map} +1 -1
  54. package/dist/{chunk-LDWBLENZ.cjs → chunk-SD2BDUJ6.cjs} +28 -32
  55. package/dist/chunk-SD2BDUJ6.cjs.map +1 -0
  56. package/dist/{chunk-NIUEWICQ.js → chunk-SPIUKQDK.js} +8 -8
  57. package/dist/{chunk-NIUEWICQ.js.map → chunk-SPIUKQDK.js.map} +1 -1
  58. package/dist/chunk-TLLXRG2Z.js +4959 -0
  59. package/dist/chunk-TLLXRG2Z.js.map +1 -0
  60. package/dist/{chunk-SVLMF4UZ.cjs → chunk-TQB2HMEC.cjs} +45 -44
  61. package/dist/chunk-TQB2HMEC.cjs.map +1 -0
  62. package/dist/{chunk-KZLP6TPJ.js → chunk-URBPEE67.js} +4 -4
  63. package/dist/{chunk-KZLP6TPJ.js.map → chunk-URBPEE67.js.map} +1 -1
  64. package/dist/{chunk-6J4NRNT2.cjs → chunk-VWC5AUOQ.cjs} +29 -60
  65. package/dist/chunk-VWC5AUOQ.cjs.map +1 -0
  66. package/dist/{chunk-4KUOSXJ7.cjs → chunk-Y5SFNZUK.cjs} +11 -11
  67. package/dist/{chunk-4KUOSXJ7.cjs.map → chunk-Y5SFNZUK.cjs.map} +1 -1
  68. package/dist/{chunk-OIMB2SNZ.cjs → chunk-Y7YCQDML.cjs} +14 -14
  69. package/dist/{chunk-OIMB2SNZ.cjs.map → chunk-Y7YCQDML.cjs.map} +1 -1
  70. package/dist/{chunk-VRFSEZBA.cjs → chunk-YBEW5YWC.cjs} +6 -6
  71. package/dist/{chunk-VRFSEZBA.cjs.map → chunk-YBEW5YWC.cjs.map} +1 -1
  72. package/dist/{chunk-SQAX4OW6.cjs → chunk-YUXTDKYN.cjs} +15 -15
  73. package/dist/{chunk-SQAX4OW6.cjs.map → chunk-YUXTDKYN.cjs.map} +1 -1
  74. package/dist/{chunk-RHTV5C5D.cjs → chunk-YWMMBIOM.cjs} +9 -9
  75. package/dist/{chunk-RHTV5C5D.cjs.map → chunk-YWMMBIOM.cjs.map} +1 -1
  76. package/dist/{chunk-WMAMOYRR.js → chunk-Z57R5WS4.js} +4 -4
  77. package/dist/{chunk-WMAMOYRR.js.map → chunk-Z57R5WS4.js.map} +1 -1
  78. package/dist/{chunk-QM5SRDJX.js → chunk-ZUWJCGLM.js} +5 -4
  79. package/dist/chunk-ZUWJCGLM.js.map +1 -0
  80. package/dist/evals/index.cjs +9 -9
  81. package/dist/evals/index.js +2 -2
  82. package/dist/evals/scoreTraces/index.cjs +5 -5
  83. package/dist/evals/scoreTraces/index.js +2 -2
  84. package/dist/evals/types.d.ts +19 -18
  85. package/dist/evals/types.d.ts.map +1 -1
  86. package/dist/index.cjs +2 -2
  87. package/dist/index.js +1 -1
  88. package/dist/llm/index.cjs +15 -15
  89. package/dist/llm/index.js +5 -5
  90. package/dist/llm/model/gateways/constants.d.ts.map +1 -1
  91. package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
  92. package/dist/llm/model/model.loop.d.ts +1 -1
  93. package/dist/llm/model/model.loop.d.ts.map +1 -1
  94. package/dist/llm/model/provider-options.d.ts +4 -1
  95. package/dist/llm/model/provider-options.d.ts.map +1 -1
  96. package/dist/llm/model/provider-types.generated.d.ts +12 -22
  97. package/dist/loop/index.cjs +2 -2
  98. package/dist/loop/index.js +1 -1
  99. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  100. package/dist/loop/workflows/stream.d.ts.map +1 -1
  101. package/dist/mastra/index.cjs +2 -2
  102. package/dist/mastra/index.js +1 -1
  103. package/dist/memory/index.cjs +6 -6
  104. package/dist/memory/index.js +1 -1
  105. package/dist/models-dev-6GD3644V.js +3 -0
  106. package/dist/{models-dev-F6MTIYTO.js.map → models-dev-6GD3644V.js.map} +1 -1
  107. package/dist/models-dev-IUQBXJSS.cjs +12 -0
  108. package/dist/{models-dev-XIVR5EJV.cjs.map → models-dev-IUQBXJSS.cjs.map} +1 -1
  109. package/dist/netlify-GXJ5D5DD.js +3 -0
  110. package/dist/{netlify-C2YBIK7A.js.map → netlify-GXJ5D5DD.js.map} +1 -1
  111. package/dist/netlify-KJLY3GFS.cjs +12 -0
  112. package/dist/{netlify-XWROOTP4.cjs.map → netlify-KJLY3GFS.cjs.map} +1 -1
  113. package/dist/observability/index.cjs +10 -10
  114. package/dist/observability/index.js +1 -1
  115. package/dist/observability/types/tracing.d.ts +18 -0
  116. package/dist/observability/types/tracing.d.ts.map +1 -1
  117. package/dist/processors/index.cjs +17 -17
  118. package/dist/processors/index.js +1 -1
  119. package/dist/provider-registry-A5QZFI2X.js +3 -0
  120. package/dist/{provider-registry-GRYJWVEM.js.map → provider-registry-A5QZFI2X.js.map} +1 -1
  121. package/dist/provider-registry-V32PGH6F.cjs +40 -0
  122. package/dist/{provider-registry-BXX7CA3H.cjs.map → provider-registry-V32PGH6F.cjs.map} +1 -1
  123. package/dist/provider-registry.json +24 -55
  124. package/dist/relevance/index.cjs +2 -2
  125. package/dist/relevance/index.js +1 -1
  126. package/dist/storage/base.d.ts +22 -1
  127. package/dist/storage/base.d.ts.map +1 -1
  128. package/dist/storage/domains/scores/base.d.ts +2 -2
  129. package/dist/storage/domains/scores/base.d.ts.map +1 -1
  130. package/dist/storage/domains/scores/inmemory.d.ts +2 -2
  131. package/dist/storage/domains/scores/inmemory.d.ts.map +1 -1
  132. package/dist/storage/index.cjs +43 -31
  133. package/dist/storage/index.js +1 -1
  134. package/dist/storage/mock.d.ts +2 -2
  135. package/dist/storage/mock.d.ts.map +1 -1
  136. package/dist/storage/storageWithInit.d.ts.map +1 -1
  137. package/dist/storage/utils.d.ts +38 -0
  138. package/dist/storage/utils.d.ts.map +1 -1
  139. package/dist/stream/aisdk/v5/execute.d.ts +3 -2
  140. package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
  141. package/dist/stream/aisdk/v5/input.d.ts +4 -1
  142. package/dist/stream/aisdk/v5/input.d.ts.map +1 -1
  143. package/dist/stream/index.cjs +11 -11
  144. package/dist/stream/index.js +2 -2
  145. package/dist/test-utils/llm-mock.cjs +13 -13
  146. package/dist/test-utils/llm-mock.cjs.map +1 -1
  147. package/dist/test-utils/llm-mock.js +6 -6
  148. package/dist/test-utils/llm-mock.js.map +1 -1
  149. package/dist/tools/index.cjs +2 -2
  150. package/dist/tools/index.js +1 -1
  151. package/dist/tools/stream.d.ts +17 -1
  152. package/dist/tools/stream.d.ts.map +1 -1
  153. package/dist/tools/types.d.ts +2 -2
  154. package/dist/tools/types.d.ts.map +1 -1
  155. package/dist/utils.cjs +22 -22
  156. package/dist/utils.js +1 -1
  157. package/dist/vector/index.cjs +2 -2
  158. package/dist/vector/index.js +1 -1
  159. package/dist/workflows/default.d.ts +2 -2
  160. package/dist/workflows/default.d.ts.map +1 -1
  161. package/dist/workflows/evented/index.cjs +10 -10
  162. package/dist/workflows/evented/index.js +1 -1
  163. package/dist/workflows/evented/step-executor.d.ts.map +1 -1
  164. package/dist/workflows/handlers/control-flow.d.ts.map +1 -1
  165. package/dist/workflows/handlers/step.d.ts.map +1 -1
  166. package/dist/workflows/index.cjs +24 -20
  167. package/dist/workflows/index.js +1 -1
  168. package/dist/workflows/step.d.ts +5 -5
  169. package/dist/workflows/step.d.ts.map +1 -1
  170. package/dist/workflows/types.d.ts +1 -0
  171. package/dist/workflows/types.d.ts.map +1 -1
  172. package/dist/workflows/utils.d.ts +10 -1
  173. package/dist/workflows/utils.d.ts.map +1 -1
  174. package/dist/workflows/workflow.d.ts +1 -1
  175. package/dist/workflows/workflow.d.ts.map +1 -1
  176. package/package.json +5 -3
  177. package/src/llm/model/provider-types.generated.d.ts +12 -22
  178. package/dist/chunk-3TKNXJES.cjs.map +0 -1
  179. package/dist/chunk-45NA5ZD3.js.map +0 -1
  180. package/dist/chunk-6GOLI2EY.js.map +0 -1
  181. package/dist/chunk-6J4NRNT2.cjs.map +0 -1
  182. package/dist/chunk-7ZADRRDW.js.map +0 -1
  183. package/dist/chunk-AQAIS7FH.cjs.map +0 -1
  184. package/dist/chunk-DXMSVGJ6.js.map +0 -1
  185. package/dist/chunk-FYP3AT6W.js.map +0 -1
  186. package/dist/chunk-HNHZGFZY.cjs.map +0 -1
  187. package/dist/chunk-LDWBLENZ.cjs.map +0 -1
  188. package/dist/chunk-LEZIKVRQ.js.map +0 -1
  189. package/dist/chunk-NHNXIYDG.cjs.map +0 -1
  190. package/dist/chunk-NN3NOFRU.cjs.map +0 -1
  191. package/dist/chunk-OPALPWAM.js.map +0 -1
  192. package/dist/chunk-QGWNF2QJ.cjs +0 -1697
  193. package/dist/chunk-QGWNF2QJ.cjs.map +0 -1
  194. package/dist/chunk-QM5SRDJX.js.map +0 -1
  195. package/dist/chunk-SVLMF4UZ.cjs.map +0 -1
  196. package/dist/chunk-T2UNO766.js +0 -1694
  197. package/dist/chunk-T2UNO766.js.map +0 -1
  198. package/dist/models-dev-F6MTIYTO.js +0 -3
  199. package/dist/models-dev-XIVR5EJV.cjs +0 -12
  200. package/dist/netlify-C2YBIK7A.js +0 -3
  201. package/dist/netlify-XWROOTP4.cjs +0 -12
  202. package/dist/provider-registry-BXX7CA3H.cjs +0 -40
  203. package/dist/provider-registry-GRYJWVEM.js +0 -3
@@ -1,14 +1,14 @@
1
1
  import { DefaultVoice } from './chunk-F2GAJSBI.js';
2
2
  import { EMITTER_SYMBOL, STREAM_FORMAT_SYMBOL } from './chunk-NLNKQD2T.js';
3
- import { InMemoryStore } from './chunk-OPALPWAM.js';
4
- import { MessageList, DefaultGeneratedFile, DefaultGeneratedFileWithType } from './chunk-APMPOYPI.js';
5
- import { ModelRouterEmbeddingModel, resolveModelConfig } from './chunk-TARWUQG6.js';
6
- import { MastraLLMV1 } from './chunk-WDRA4WKG.js';
3
+ import { InMemoryStore } from './chunk-HDMH5IDV.js';
4
+ import { MessageList, DefaultGeneratedFile, DefaultGeneratedFileWithType } from './chunk-DMPHPHMU.js';
5
+ import { ModelRouterEmbeddingModel, resolveModelConfig } from './chunk-QHJ7YVNX.js';
6
+ import { MastraLLMV1 } from './chunk-4GTU7MB2.js';
7
7
  import { executeHook } from './chunk-L54GIUCB.js';
8
- import { removeUndefinedValues, deepMerge, ensureToolProperties, makeCoreTool, createMastraProxy, isZodType, selectFields, delay } from './chunk-KZLP6TPJ.js';
9
- import { getOrCreateSpan, wrapMastra, executeWithContextSync } from './chunk-FYP3AT6W.js';
8
+ import { removeUndefinedValues, deepMerge, ensureToolProperties, makeCoreTool, createMastraProxy, isZodType, selectFields, delay } from './chunk-URBPEE67.js';
9
+ import { getOrCreateSpan, wrapMastra, executeWithContextSync } from './chunk-FNSFXWDN.js';
10
10
  import { MastraError, getErrorFromUnknown } from './chunk-JJ5O45LH.js';
11
- import { ToolStream } from './chunk-LEZIKVRQ.js';
11
+ import { ToolStream } from './chunk-F54IK3GJ.js';
12
12
  import { Tool, createTool } from './chunk-4F6RAJFU.js';
13
13
  import { RequestContext, MASTRA_RESOURCE_ID_KEY, MASTRA_THREAD_ID_KEY } from './chunk-6TBWJV35.js';
14
14
  import { zodToJsonSchema as zodToJsonSchema$1 } from './chunk-PJKCPRYF.js';
@@ -977,14 +977,15 @@ async function validateStepResumeData({ resumeData, step }) {
977
977
  }
978
978
  async function validateStepSuspendData({
979
979
  suspendData,
980
- step
980
+ step,
981
+ validateInputs
981
982
  }) {
982
983
  if (!suspendData) {
983
984
  return { suspendData: void 0, validationError: void 0 };
984
985
  }
985
986
  let validationError;
986
987
  const suspendSchema = step.suspendSchema;
987
- if (suspendSchema) {
988
+ if (suspendSchema && validateInputs) {
988
989
  const validatedSuspendData = await suspendSchema.safeParseAsync(suspendData);
989
990
  if (!validatedSuspendData.success) {
990
991
  const errors = getZodErrors(validatedSuspendData.error);
@@ -996,6 +997,28 @@ async function validateStepSuspendData({
996
997
  }
997
998
  return { suspendData, validationError };
998
999
  }
1000
+ async function validateStepStateData({
1001
+ stateData,
1002
+ step,
1003
+ validateInputs
1004
+ }) {
1005
+ if (!stateData) {
1006
+ return { stateData: void 0, validationError: void 0 };
1007
+ }
1008
+ let validationError;
1009
+ const stateSchema = step.stateSchema;
1010
+ if (stateSchema && validateInputs) {
1011
+ const validatedStateData = await stateSchema.safeParseAsync(stateData);
1012
+ if (!validatedStateData.success) {
1013
+ const errors = getZodErrors(validatedStateData.error);
1014
+ const errorMessages = errors.map((e) => `- ${e.path?.join(".")}: ${e.message}`).join("\n");
1015
+ validationError = new Error("Step state data validation failed: \n" + errorMessages);
1016
+ } else {
1017
+ stateData = validatedStateData.data;
1018
+ }
1019
+ }
1020
+ return { stateData, validationError };
1021
+ }
999
1022
  function getResumeLabelsByStepId(resumeLabels, stepId) {
1000
1023
  return Object.entries(resumeLabels).filter(([_, value]) => value.stepId === stepId).reduce(
1001
1024
  (acc, [key, value]) => {
@@ -1315,18 +1338,12 @@ async function executeConditional(engine, params) {
1315
1338
  requestContext,
1316
1339
  inputData: prevOutput,
1317
1340
  state: executionContext.state,
1318
- setState: (state) => {
1319
- executionContext.state = state;
1320
- },
1321
1341
  retryCount: -1,
1322
1342
  tracingContext: {
1323
1343
  currentSpan: evalSpan
1324
1344
  },
1325
1345
  getInitData: () => stepResults?.input,
1326
1346
  getStepResult: getStepResult.bind(null, stepResults),
1327
- // TODO: this function shouldn't have suspend probably?
1328
- suspend: async (_suspendPayload) => {
1329
- },
1330
1347
  bail: () => {
1331
1348
  },
1332
1349
  abort: () => {
@@ -1566,9 +1583,6 @@ async function executeLoop(engine, params) {
1566
1583
  requestContext,
1567
1584
  inputData: result.output,
1568
1585
  state: executionContext.state,
1569
- setState: (state) => {
1570
- executionContext.state = state;
1571
- },
1572
1586
  retryCount: -1,
1573
1587
  tracingContext: {
1574
1588
  currentSpan: evalSpan
@@ -1576,8 +1590,6 @@ async function executeLoop(engine, params) {
1576
1590
  iterationCount: iteration + 1,
1577
1591
  getInitData: () => stepResults?.input,
1578
1592
  getStepResult: getStepResult.bind(null, stepResults),
1579
- suspend: async (_suspendPayload) => {
1580
- },
1581
1593
  bail: () => {
1582
1594
  },
1583
1595
  abort: () => {
@@ -2291,7 +2303,7 @@ async function executeSleep(engine, params) {
2291
2303
  requestContext,
2292
2304
  inputData: prevOutput,
2293
2305
  state: executionContext.state,
2294
- setState: (state) => {
2306
+ setState: async (state) => {
2295
2307
  executionContext.state = state;
2296
2308
  },
2297
2309
  retryCount: -1,
@@ -2372,7 +2384,7 @@ async function executeSleepUntil(engine, params) {
2372
2384
  requestContext,
2373
2385
  inputData: prevOutput,
2374
2386
  state: executionContext.state,
2375
- setState: (state) => {
2387
+ setState: async (state) => {
2376
2388
  executionContext.state = state;
2377
2389
  },
2378
2390
  retryCount: -1,
@@ -2581,9 +2593,16 @@ async function executeStep(engine, params) {
2581
2593
  requestContext,
2582
2594
  inputData,
2583
2595
  state: executionContext.state,
2584
- setState: (state) => {
2585
- executionContext.state = state;
2586
- contextMutations.stateUpdate = state;
2596
+ setState: async (state) => {
2597
+ const { stateData, validationError: stateValidationError } = await validateStepStateData({
2598
+ stateData: state,
2599
+ step,
2600
+ validateInputs: engine.options?.validateInputs ?? true
2601
+ });
2602
+ if (stateValidationError) {
2603
+ throw stateValidationError;
2604
+ }
2605
+ contextMutations.stateUpdate = stateData;
2587
2606
  },
2588
2607
  retryCount,
2589
2608
  resumeData: resumeDataToUse,
@@ -2594,7 +2613,8 @@ async function executeStep(engine, params) {
2594
2613
  suspend: async (suspendPayload, suspendOptions) => {
2595
2614
  const { suspendData, validationError: suspendValidationError } = await validateStepSuspendData({
2596
2615
  suspendData: suspendPayload,
2597
- step
2616
+ step,
2617
+ validateInputs: engine.options?.validateInputs ?? true
2598
2618
  });
2599
2619
  if (suspendValidationError) {
2600
2620
  throw suspendValidationError;
@@ -2669,9 +2689,6 @@ async function executeStep(engine, params) {
2669
2689
  const { result: durableResult } = stepRetryResult;
2670
2690
  Object.assign(executionContext.suspendedPaths, durableResult.contextMutations.suspendedPaths);
2671
2691
  Object.assign(executionContext.resumeLabels, durableResult.contextMutations.resumeLabels);
2672
- if (durableResult.contextMutations.stateUpdate !== null) {
2673
- executionContext.state = durableResult.contextMutations.stateUpdate;
2674
- }
2675
2692
  if (engine.requiresDurableContextSerialization() && durableResult.contextMutations.requestContextUpdate) {
2676
2693
  requestContext.clear();
2677
2694
  for (const [key, value] of Object.entries(durableResult.contextMutations.requestContextUpdate)) {
@@ -2729,7 +2746,10 @@ async function executeStep(engine, params) {
2729
2746
  return {
2730
2747
  result: stepResult,
2731
2748
  stepResults: { [step.id]: stepResult },
2732
- mutableContext: engine.buildMutableContext(executionContext),
2749
+ mutableContext: engine.buildMutableContext({
2750
+ ...executionContext,
2751
+ state: stepRetryResult.ok ? stepRetryResult.result.contextMutations.stateUpdate ?? executionContext.state : executionContext.state
2752
+ }),
2733
2753
  requestContext: engine.serializeRequestContext(requestContext)
2734
2754
  };
2735
2755
  }
@@ -3077,7 +3097,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
3077
3097
  * Apply mutable context changes back to the execution context.
3078
3098
  */
3079
3099
  applyMutableContext(executionContext, mutableContext) {
3080
- executionContext.state = mutableContext.state;
3100
+ Object.assign(executionContext.state, mutableContext.state);
3081
3101
  Object.assign(executionContext.suspendedPaths, mutableContext.suspendedPaths);
3082
3102
  Object.assign(executionContext.resumeLabels, mutableContext.resumeLabels);
3083
3103
  }
@@ -3203,10 +3223,11 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
3203
3223
  }
3204
3224
  });
3205
3225
  }
3206
- if (lastOutput.result.status === "suspended" && params.outputOptions?.includeResumeLabels) {
3207
- return { ...result2, resumeLabels: lastOutput.mutableContext.resumeLabels };
3208
- }
3209
- return result2;
3226
+ return {
3227
+ ...result2,
3228
+ ...lastOutput.result.status === "suspended" && params.outputOptions?.includeResumeLabels ? { resumeLabels: lastOutput.mutableContext.resumeLabels } : {},
3229
+ ...params.outputOptions?.includeState ? { state: lastState } : {}
3230
+ };
3210
3231
  }
3211
3232
  }
3212
3233
  const result = await this.fmtReturnValue(params.emitter, stepResults, lastOutput.result);
@@ -4040,7 +4061,7 @@ var Workflow = class extends MastraBase {
4040
4061
  return stepRes?.status === "suspended";
4041
4062
  });
4042
4063
  if (res.state) {
4043
- setState(res.state);
4064
+ await setState(res.state);
4044
4065
  }
4045
4066
  if (suspendedSteps?.length) {
4046
4067
  for (const [stepName, stepResult] of suspendedSteps) {
@@ -6250,18 +6271,39 @@ function convertMastraChunkToAISDKv5({
6250
6271
  }
6251
6272
 
6252
6273
  // src/stream/aisdk/v5/input.ts
6274
+ function isNumericId(id) {
6275
+ return /^\d+$/.test(id);
6276
+ }
6253
6277
  var AISDKV5InputStream = class extends MastraModelInput {
6254
- constructor({ component, name }) {
6278
+ #generateId;
6279
+ constructor({
6280
+ component,
6281
+ name,
6282
+ generateId: generateId3
6283
+ }) {
6255
6284
  super({ component, name });
6285
+ this.#generateId = generateId3 ?? generateId;
6256
6286
  }
6257
6287
  async transform({
6258
6288
  runId,
6259
6289
  stream,
6260
6290
  controller
6261
6291
  }) {
6292
+ const idMap = /* @__PURE__ */ new Map();
6262
6293
  for await (const chunk of stream) {
6263
- const transformedChunk = convertFullStreamChunkToMastra(chunk, { runId });
6294
+ const rawChunk = chunk;
6295
+ if (rawChunk.type === "stream-start") {
6296
+ idMap.clear();
6297
+ }
6298
+ const transformedChunk = convertFullStreamChunkToMastra(rawChunk, { runId });
6264
6299
  if (transformedChunk) {
6300
+ if ((transformedChunk.type === "text-start" || transformedChunk.type === "text-delta" || transformedChunk.type === "text-end") && transformedChunk.payload?.id && isNumericId(transformedChunk.payload.id)) {
6301
+ const originalId = transformedChunk.payload.id;
6302
+ if (!idMap.has(originalId)) {
6303
+ idMap.set(originalId, this.#generateId());
6304
+ }
6305
+ transformedChunk.payload.id = idMap.get(originalId);
6306
+ }
6265
6307
  controller.enqueue(transformedChunk);
6266
6308
  }
6267
6309
  }
@@ -6290,11 +6332,13 @@ function execute({
6290
6332
  structuredOutput,
6291
6333
  headers,
6292
6334
  shouldThrowError,
6293
- methodType
6335
+ methodType,
6336
+ generateId: generateId3
6294
6337
  }) {
6295
6338
  const v5 = new AISDKV5InputStream({
6296
6339
  component: "LLM",
6297
- name: model.modelId
6340
+ name: model.modelId,
6341
+ generateId: generateId3
6298
6342
  });
6299
6343
  const toolsAndToolChoice = prepareToolsAndToolChoice({
6300
6344
  tools,
@@ -6952,6 +6996,7 @@ function createLLMExecutionStep({
6952
6996
  structuredOutput,
6953
6997
  headers,
6954
6998
  methodType,
6999
+ generateId: _internal?.generateId,
6955
7000
  onResult: ({
6956
7001
  warnings: warningsFromStream,
6957
7002
  request: requestFromStream,
@@ -7767,6 +7812,31 @@ function workflowLoopStream({
7767
7812
  requestContext
7768
7813
  });
7769
7814
  if (executionResult.status !== "success") {
7815
+ if (executionResult.status === "failed") {
7816
+ let executionResultError = executionResult.error;
7817
+ if (typeof executionResult.error === "string") {
7818
+ const prependedErrorString = "Error: ";
7819
+ if (executionResult.error.startsWith(`${prependedErrorString}${prependedErrorString}`)) {
7820
+ executionResultError = executionResult.error.substring(
7821
+ `${prependedErrorString}${prependedErrorString}`.length
7822
+ );
7823
+ } else if (executionResult.error.startsWith(prependedErrorString)) {
7824
+ executionResultError = executionResult.error.substring(prependedErrorString.length);
7825
+ }
7826
+ }
7827
+ const error = getErrorFromUnknown(executionResultError, {
7828
+ fallbackMessage: "Unknown error in agent workflow stream"
7829
+ });
7830
+ controller.enqueue({
7831
+ type: "error",
7832
+ runId,
7833
+ from: "AGENT" /* AGENT */,
7834
+ payload: { error }
7835
+ });
7836
+ if (rest.options?.onError) {
7837
+ await rest.options?.onError?.({ error });
7838
+ }
7839
+ }
7770
7840
  controller.close();
7771
7841
  return;
7772
7842
  }
@@ -8015,6 +8085,7 @@ var MastraLLMVNext = class extends MastraBase {
8015
8085
  resourceId,
8016
8086
  structuredOutput,
8017
8087
  options,
8088
+ inputProcessors,
8018
8089
  outputProcessors,
8019
8090
  returnScorerData,
8020
8091
  providerOptions,
@@ -8078,6 +8149,7 @@ var MastraLLMVNext = class extends MastraBase {
8078
8149
  providerOptions,
8079
8150
  _internal,
8080
8151
  structuredOutput,
8152
+ inputProcessors,
8081
8153
  outputProcessors,
8082
8154
  returnScorerData,
8083
8155
  modelSpanTracker,
@@ -8148,7 +8220,9 @@ var MastraLLMVNext = class extends MastraBase {
8148
8220
  totalTokens: props?.totalUsage?.totalTokens,
8149
8221
  reasoningTokens: props?.totalUsage?.reasoningTokens,
8150
8222
  cachedInputTokens: props?.totalUsage?.cachedInputTokens
8151
- }
8223
+ },
8224
+ responseId: props?.response.id,
8225
+ responseModel: props?.response.modelId
8152
8226
  }
8153
8227
  });
8154
8228
  try {
@@ -9506,6 +9580,7 @@ var AgentLegacyHandler = class {
9506
9580
  },
9507
9581
  attributes: {
9508
9582
  agentId: this.capabilities.id,
9583
+ agentName: this.capabilities.name,
9509
9584
  instructions: this.capabilities.convertInstructionsToString(instructions),
9510
9585
  availableTools: [
9511
9586
  ...toolsets ? Object.keys(toolsets) : [],
@@ -12073,7 +12148,7 @@ var BatchPartsProcessor = class {
12073
12148
  const combinedText = textChunks.map((part) => part.type === "text-delta" ? part.payload.text : "").join("");
12074
12149
  const combinedChunk = {
12075
12150
  type: "text-delta",
12076
- payload: { text: combinedText, id: "1" },
12151
+ payload: { text: combinedText, id: "text-1" },
12077
12152
  runId: "1",
12078
12153
  from: "AGENT" /* AGENT */
12079
12154
  };
@@ -12760,6 +12835,9 @@ var isAugmentedSymbol = Symbol("isAugmented");
12760
12835
  function augmentWithInit(storage) {
12761
12836
  let hasInitialized = null;
12762
12837
  const ensureInit = async () => {
12838
+ if (storage.disableInit) {
12839
+ return;
12840
+ }
12763
12841
  if (!hasInitialized) {
12764
12842
  hasInitialized = storage.init();
12765
12843
  }
@@ -14063,6 +14141,9 @@ function createMapResultsStep({
14063
14141
  const structuredProcessor = new StructuredOutputProcessor(options.structuredOutput);
14064
14142
  effectiveOutputProcessors = effectiveOutputProcessors ? [...effectiveOutputProcessors, structuredProcessor] : [structuredProcessor];
14065
14143
  }
14144
+ const effectiveInputProcessors = options.inputProcessors || (capabilities.inputProcessors ? typeof capabilities.inputProcessors === "function" ? await capabilities.inputProcessors({
14145
+ requestContext: result.requestContext
14146
+ }) : capabilities.inputProcessors : []);
14066
14147
  const messageList = memoryData.messageList;
14067
14148
  const modelMethodType = getModelMethodFromAgentMethod(methodType);
14068
14149
  const loopOptions = {
@@ -14129,6 +14210,7 @@ function createMapResultsStep({
14129
14210
  abortSignal: options.abortSignal
14130
14211
  },
14131
14212
  structuredOutput: options.structuredOutput,
14213
+ inputProcessors: effectiveInputProcessors,
14132
14214
  outputProcessors: effectiveOutputProcessors,
14133
14215
  modelSettings: {
14134
14216
  temperature: 0,
@@ -14275,7 +14357,7 @@ function createPrepareMemoryStep({
14275
14357
  title: thread.title,
14276
14358
  memoryConfig,
14277
14359
  resourceId,
14278
- saveThread: false
14360
+ saveThread: true
14279
14361
  });
14280
14362
  }
14281
14363
  requestContext.set("MastraMemory", {
@@ -15774,10 +15856,10 @@ var Agent = class extends MastraBase {
15774
15856
  subAgentThreadId: z.string().describe("The thread ID of the agent").optional(),
15775
15857
  subAgentResourceId: z.string().describe("The resource ID of the agent").optional()
15776
15858
  });
15777
- const modelVersion = (await agent.getModel()).specificationVersion;
15859
+ const modelVersion = (await agent.getModel({ requestContext })).specificationVersion;
15778
15860
  const toolObj = createTool({
15779
15861
  id: `agent-${agentName}`,
15780
- description: `Agent: ${agentName}`,
15862
+ description: agent.getDescription() || `Agent: ${agentName}`,
15781
15863
  inputSchema: agentInputSchema,
15782
15864
  outputSchema: agentOutputSchema,
15783
15865
  mastra: this.#mastra,
@@ -15959,16 +16041,25 @@ var Agent = class extends MastraBase {
15959
16041
  threadId,
15960
16042
  resourceId
15961
16043
  });
15962
- const run = await workflow.createRun();
16044
+ const run = await workflow.createRun({ runId });
15963
16045
  const { initialState, inputData: workflowInputData } = inputData;
16046
+ const { resumeData, suspend } = context?.agent ?? {};
15964
16047
  let result = void 0;
15965
16048
  if (methodType === "generate" || methodType === "generateLegacy") {
15966
- result = await run.start({
15967
- inputData: workflowInputData,
15968
- requestContext,
15969
- tracingContext: context?.tracingContext,
15970
- ...initialState && { initialState }
15971
- });
16049
+ if (resumeData) {
16050
+ result = await run.resume({
16051
+ resumeData,
16052
+ requestContext,
16053
+ tracingContext: context?.tracingContext
16054
+ });
16055
+ } else {
16056
+ result = await run.start({
16057
+ inputData: workflowInputData,
16058
+ requestContext,
16059
+ tracingContext: context?.tracingContext,
16060
+ ...initialState && { initialState }
16061
+ });
16062
+ }
15972
16063
  } else if (methodType === "streamLegacy") {
15973
16064
  const streamResult = run.streamLegacy({
15974
16065
  inputData: workflowInputData,
@@ -15983,7 +16074,11 @@ var Agent = class extends MastraBase {
15983
16074
  }
15984
16075
  result = await streamResult.getWorkflowState();
15985
16076
  } else if (methodType === "stream") {
15986
- const streamResult = run.stream({
16077
+ const streamResult = resumeData ? run.resumeStream({
16078
+ resumeData,
16079
+ requestContext,
16080
+ tracingContext: context?.tracingContext
16081
+ }) : run.stream({
15987
16082
  inputData: workflowInputData,
15988
16083
  requestContext,
15989
16084
  tracingContext: context?.tracingContext,
@@ -16004,10 +16099,12 @@ var Agent = class extends MastraBase {
16004
16099
  runId: run.runId
16005
16100
  };
16006
16101
  } else if (result?.status === "suspended") {
16007
- return {
16008
- error: `Workflow ended with status: "suspended". This is not currently handled in the basic agent workflow tool transformation. To achieve this you'll need to write your own tool that uses a workflow internally.`,
16009
- runId: run.runId
16010
- };
16102
+ const suspendedStep = result?.suspended?.[0]?.[0];
16103
+ const suspendPayload = result?.steps?.[suspendedStep]?.suspendPayload;
16104
+ if (suspendPayload?.__workflow_meta) {
16105
+ delete suspendPayload.__workflow_meta;
16106
+ }
16107
+ return suspend?.(suspendPayload);
16011
16108
  } else {
16012
16109
  return {
16013
16110
  error: `Workflow should never reach this path, workflow returned no status`,
@@ -16423,6 +16520,8 @@ var Agent = class extends MastraBase {
16423
16520
  input: options.messages,
16424
16521
  attributes: {
16425
16522
  agentId: this.id,
16523
+ agentName: this.name,
16524
+ conversationId: threadFromArgs?.id,
16426
16525
  instructions: this.#convertInstructionsToString(instructions)
16427
16526
  },
16428
16527
  metadata: {
@@ -16456,6 +16555,7 @@ var Agent = class extends MastraBase {
16456
16555
  getMemoryMessages: this.getMemoryMessages.bind(this),
16457
16556
  runInputProcessors: this.__runInputProcessors.bind(this),
16458
16557
  executeOnFinish: this.#executeOnFinish.bind(this),
16558
+ inputProcessors: async ({ requestContext: requestContext2 }) => this.listResolvedInputProcessors(requestContext2),
16459
16559
  outputProcessors: async ({ requestContext: requestContext2 }) => this.listResolvedOutputProcessors(requestContext2),
16460
16560
  llm
16461
16561
  };
@@ -18730,6 +18830,6 @@ var MastraModelOutput = class extends MastraBase {
18730
18830
  }
18731
18831
  };
18732
18832
 
18733
- export { AISDKV5OutputStream, Agent, BatchPartsProcessor, ChunkFrom, DefaultExecutionEngine, ExecutionEngine, LanguageDetector, MastraAgentNetworkStream, MastraMemory, MastraModelOutput, MemoryProcessor, MessageHistory, MockMemory, ModerationProcessor, PIIDetector, ProcessorRunner, ProcessorState, PromptInjectionDetector, Run, SemanticRecall, StructuredOutputProcessor, SystemPromptScrubber, TokenLimiterProcessor, ToolCallFilter, TripWire, UnicodeNormalizer, Workflow, WorkflowRunOutput, WorkingMemory, augmentWithInit, cloneStep, cloneWorkflow, convertFullStreamChunkToUIMessageStream, convertMastraChunkToAISDKv5, createDeprecationProxy, createStep, createTimeTravelExecutionParams, createWorkflow, getResumeLabelsByStepId, getStepIds, getStepResult, getZodErrors, loop, mapVariable, memoryDefaultOptions, parseMemoryRuntimeContext, resolveThreadIdFromArgs, runCountDeprecationMessage, tryGenerateWithJsonFallback, tryStreamWithJsonFallback, validateStepInput, validateStepResumeData, validateStepSuspendData };
18734
- //# sourceMappingURL=chunk-45NA5ZD3.js.map
18735
- //# sourceMappingURL=chunk-45NA5ZD3.js.map
18833
+ export { AISDKV5OutputStream, Agent, BatchPartsProcessor, ChunkFrom, DefaultExecutionEngine, ExecutionEngine, LanguageDetector, MastraAgentNetworkStream, MastraMemory, MastraModelOutput, MemoryProcessor, MessageHistory, MockMemory, ModerationProcessor, PIIDetector, ProcessorRunner, ProcessorState, PromptInjectionDetector, Run, SemanticRecall, StructuredOutputProcessor, SystemPromptScrubber, TokenLimiterProcessor, ToolCallFilter, TripWire, UnicodeNormalizer, Workflow, WorkflowRunOutput, WorkingMemory, augmentWithInit, cloneStep, cloneWorkflow, convertFullStreamChunkToUIMessageStream, convertMastraChunkToAISDKv5, createDeprecationProxy, createStep, createTimeTravelExecutionParams, createWorkflow, getResumeLabelsByStepId, getStepIds, getStepResult, getZodErrors, loop, mapVariable, memoryDefaultOptions, parseMemoryRuntimeContext, resolveThreadIdFromArgs, runCountDeprecationMessage, tryGenerateWithJsonFallback, tryStreamWithJsonFallback, validateStepInput, validateStepResumeData, validateStepStateData, validateStepSuspendData };
18834
+ //# sourceMappingURL=chunk-EDNHZZUP.js.map
18835
+ //# sourceMappingURL=chunk-EDNHZZUP.js.map