@mastra/core 1.17.0 → 1.18.0-alpha.1

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 (150) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/dist/agent/index.cjs +8 -8
  3. package/dist/agent/index.js +1 -1
  4. package/dist/{chunk-O2BVR6WC.cjs → chunk-2U4M4SGY.cjs} +16 -16
  5. package/dist/{chunk-O2BVR6WC.cjs.map → chunk-2U4M4SGY.cjs.map} +1 -1
  6. package/dist/{chunk-RUUHBB7U.js → chunk-3NMSFQPY.js} +4 -4
  7. package/dist/{chunk-RUUHBB7U.js.map → chunk-3NMSFQPY.js.map} +1 -1
  8. package/dist/{chunk-I7S3ZFOU.cjs → chunk-3O73Q6M2.cjs} +75 -75
  9. package/dist/{chunk-I7S3ZFOU.cjs.map → chunk-3O73Q6M2.cjs.map} +1 -1
  10. package/dist/{chunk-IYSW4VN7.js → chunk-3U4ZNZIF.js} +5 -5
  11. package/dist/{chunk-IYSW4VN7.js.map → chunk-3U4ZNZIF.js.map} +1 -1
  12. package/dist/{chunk-QVQ3PGG2.cjs → chunk-7IDACSBM.cjs} +206 -2
  13. package/dist/chunk-7IDACSBM.cjs.map +1 -0
  14. package/dist/{chunk-J2BSGWLR.js → chunk-A2Z26HFR.js} +9 -9
  15. package/dist/{chunk-J2BSGWLR.js.map → chunk-A2Z26HFR.js.map} +1 -1
  16. package/dist/{chunk-62GLEYP6.js → chunk-BYJDWJCX.js} +3 -3
  17. package/dist/{chunk-62GLEYP6.js.map → chunk-BYJDWJCX.js.map} +1 -1
  18. package/dist/{chunk-IPINMJOH.js → chunk-D4DCPE5Y.js} +3 -3
  19. package/dist/{chunk-IPINMJOH.js.map → chunk-D4DCPE5Y.js.map} +1 -1
  20. package/dist/{chunk-CYQ2TNSK.js → chunk-EYM6DWKD.js} +18 -3
  21. package/dist/{chunk-CYQ2TNSK.js.map → chunk-EYM6DWKD.js.map} +1 -1
  22. package/dist/{chunk-BKXCVT72.cjs → chunk-G62XEVSI.cjs} +3 -3
  23. package/dist/chunk-G62XEVSI.cjs.map +1 -0
  24. package/dist/{chunk-QLC3UBDY.cjs → chunk-GFBH7Q4W.cjs} +14 -14
  25. package/dist/{chunk-QLC3UBDY.cjs.map → chunk-GFBH7Q4W.cjs.map} +1 -1
  26. package/dist/{chunk-CVG4K4O3.js → chunk-HEHK7LXS.js} +4 -4
  27. package/dist/{chunk-CVG4K4O3.js.map → chunk-HEHK7LXS.js.map} +1 -1
  28. package/dist/{chunk-YE2NPWVL.cjs → chunk-JFPVUKPB.cjs} +50 -50
  29. package/dist/{chunk-YE2NPWVL.cjs.map → chunk-JFPVUKPB.cjs.map} +1 -1
  30. package/dist/{chunk-DIWGRQZT.js → chunk-K22Q6XPG.js} +3 -3
  31. package/dist/chunk-K22Q6XPG.js.map +1 -0
  32. package/dist/{chunk-TPJSYHLC.cjs → chunk-KL2IRBNK.cjs} +6107 -5697
  33. package/dist/chunk-KL2IRBNK.cjs.map +1 -0
  34. package/dist/{chunk-OXH67SS4.cjs → chunk-MSDZQ4DW.cjs} +9 -9
  35. package/dist/{chunk-OXH67SS4.cjs.map → chunk-MSDZQ4DW.cjs.map} +1 -1
  36. package/dist/{chunk-3H34KWBU.cjs → chunk-PK3X5KIF.cjs} +24 -9
  37. package/dist/{chunk-3H34KWBU.cjs.map → chunk-PK3X5KIF.cjs.map} +1 -1
  38. package/dist/{chunk-EWGUU5QC.cjs → chunk-PQWEJELD.cjs} +6 -6
  39. package/dist/{chunk-EWGUU5QC.cjs.map → chunk-PQWEJELD.cjs.map} +1 -1
  40. package/dist/{chunk-RX5ZKTWD.js → chunk-RB2QRGRV.js} +4 -4
  41. package/dist/{chunk-RX5ZKTWD.js.map → chunk-RB2QRGRV.js.map} +1 -1
  42. package/dist/{chunk-IOKPS5RD.js → chunk-TKKBZUWD.js} +6106 -5696
  43. package/dist/chunk-TKKBZUWD.js.map +1 -0
  44. package/dist/{chunk-FQMFXIUQ.cjs → chunk-UEZU2TA2.cjs} +185 -185
  45. package/dist/{chunk-FQMFXIUQ.cjs.map → chunk-UEZU2TA2.cjs.map} +1 -1
  46. package/dist/{chunk-XWGZAY4F.cjs → chunk-UPCNNWXW.cjs} +236 -20
  47. package/dist/chunk-UPCNNWXW.cjs.map +1 -0
  48. package/dist/{chunk-DGBPIUTG.js → chunk-UQ2HAEHL.js} +233 -17
  49. package/dist/chunk-UQ2HAEHL.js.map +1 -0
  50. package/dist/{chunk-AGEYVARR.js → chunk-VMKNS3YO.js} +204 -3
  51. package/dist/chunk-VMKNS3YO.js.map +1 -0
  52. package/dist/{chunk-KFYDUUVH.js → chunk-WYFCQAHY.js} +6 -6
  53. package/dist/{chunk-KFYDUUVH.js.map → chunk-WYFCQAHY.js.map} +1 -1
  54. package/dist/{chunk-ZOZHH547.cjs → chunk-Z3VUDCXI.cjs} +7 -7
  55. package/dist/{chunk-ZOZHH547.cjs.map → chunk-Z3VUDCXI.cjs.map} +1 -1
  56. package/dist/datasets/index.cjs +17 -17
  57. package/dist/datasets/index.js +2 -2
  58. package/dist/docs/SKILL.md +2 -1
  59. package/dist/docs/assets/SOURCE_MAP.json +350 -335
  60. package/dist/docs/references/reference-evals-run-evals.md +78 -3
  61. package/dist/docs/references/reference-evals-scorer-utils.md +184 -0
  62. package/dist/docs/references/reference-evals-trajectory-accuracy.md +613 -0
  63. package/dist/docs/references/reference.md +1 -0
  64. package/dist/evals/base.d.ts +8 -2
  65. package/dist/evals/base.d.ts.map +1 -1
  66. package/dist/evals/index.cjs +32 -20
  67. package/dist/evals/index.js +3 -3
  68. package/dist/evals/run/index.d.ts +28 -1
  69. package/dist/evals/run/index.d.ts.map +1 -1
  70. package/dist/evals/run/scorerAccumulator.d.ts +4 -1
  71. package/dist/evals/run/scorerAccumulator.d.ts.map +1 -1
  72. package/dist/evals/scoreTraces/index.cjs +5 -5
  73. package/dist/evals/scoreTraces/index.js +2 -2
  74. package/dist/evals/types.d.ts +305 -10
  75. package/dist/evals/types.d.ts.map +1 -1
  76. package/dist/harness/index.cjs +7 -7
  77. package/dist/harness/index.js +5 -5
  78. package/dist/index.cjs +2 -2
  79. package/dist/index.js +1 -1
  80. package/dist/llm/index.cjs +16 -16
  81. package/dist/llm/index.js +5 -5
  82. package/dist/llm/model/provider-types.generated.d.ts +2444 -2243
  83. package/dist/loop/index.cjs +14 -14
  84. package/dist/loop/index.js +1 -1
  85. package/dist/loop/network/index.d.ts +3 -3
  86. package/dist/loop/types.d.ts +1 -1
  87. package/dist/mastra/index.cjs +2 -2
  88. package/dist/mastra/index.js +1 -1
  89. package/dist/memory/index.cjs +14 -14
  90. package/dist/memory/index.js +1 -1
  91. package/dist/models-dev-3U6ICCNW.js +3 -0
  92. package/dist/{models-dev-U3LBEE4O.js.map → models-dev-3U6ICCNW.js.map} +1 -1
  93. package/dist/models-dev-BJHT4GXA.cjs +12 -0
  94. package/dist/{models-dev-3UNU47HO.cjs.map → models-dev-BJHT4GXA.cjs.map} +1 -1
  95. package/dist/netlify-DE3IXMT2.js +3 -0
  96. package/dist/{netlify-QVXFSZJQ.js.map → netlify-DE3IXMT2.js.map} +1 -1
  97. package/dist/netlify-UARJYMCW.cjs +12 -0
  98. package/dist/{netlify-ET5JT5FX.cjs.map → netlify-UARJYMCW.cjs.map} +1 -1
  99. package/dist/processor-provider/index.cjs +10 -10
  100. package/dist/processor-provider/index.js +1 -1
  101. package/dist/processors/index.cjs +44 -44
  102. package/dist/processors/index.js +1 -1
  103. package/dist/provider-registry-65CPGTUU.cjs +40 -0
  104. package/dist/{provider-registry-S6VYJ3GX.cjs.map → provider-registry-65CPGTUU.cjs.map} +1 -1
  105. package/dist/provider-registry-EQAT7FXK.js +3 -0
  106. package/dist/{provider-registry-IP3K4FE4.js.map → provider-registry-EQAT7FXK.js.map} +1 -1
  107. package/dist/provider-registry.json +6102 -5692
  108. package/dist/relevance/index.cjs +3 -3
  109. package/dist/relevance/index.js +1 -1
  110. package/dist/storage/constants.cjs +56 -56
  111. package/dist/storage/constants.d.ts +1 -1
  112. package/dist/storage/constants.js +1 -1
  113. package/dist/storage/domains/experiments/base.d.ts +2 -1
  114. package/dist/storage/domains/experiments/base.d.ts.map +1 -1
  115. package/dist/storage/domains/experiments/inmemory.d.ts +2 -1
  116. package/dist/storage/domains/experiments/inmemory.d.ts.map +1 -1
  117. package/dist/storage/domains/observability/tracing.d.ts +45 -45
  118. package/dist/storage/index.cjs +160 -160
  119. package/dist/storage/index.js +2 -2
  120. package/dist/storage/types.d.ts +12 -0
  121. package/dist/storage/types.d.ts.map +1 -1
  122. package/dist/stream/MastraAgentNetworkStream.d.ts +1 -1
  123. package/dist/stream/MastraWorkflowStream.d.ts +1 -1
  124. package/dist/stream/index.cjs +8 -8
  125. package/dist/stream/index.js +1 -1
  126. package/dist/tool-loop-agent/index.cjs +4 -4
  127. package/dist/tool-loop-agent/index.js +1 -1
  128. package/dist/vector/index.cjs +7 -7
  129. package/dist/vector/index.js +1 -1
  130. package/dist/workflows/evented/index.cjs +10 -10
  131. package/dist/workflows/evented/index.js +1 -1
  132. package/dist/workflows/index.cjs +24 -24
  133. package/dist/workflows/index.js +1 -1
  134. package/package.json +6 -6
  135. package/src/llm/model/provider-types.generated.d.ts +2444 -2243
  136. package/dist/chunk-AGEYVARR.js.map +0 -1
  137. package/dist/chunk-BKXCVT72.cjs.map +0 -1
  138. package/dist/chunk-DGBPIUTG.js.map +0 -1
  139. package/dist/chunk-DIWGRQZT.js.map +0 -1
  140. package/dist/chunk-IOKPS5RD.js.map +0 -1
  141. package/dist/chunk-QVQ3PGG2.cjs.map +0 -1
  142. package/dist/chunk-TPJSYHLC.cjs.map +0 -1
  143. package/dist/chunk-XWGZAY4F.cjs.map +0 -1
  144. package/dist/models-dev-3UNU47HO.cjs +0 -12
  145. package/dist/models-dev-U3LBEE4O.js +0 -3
  146. package/dist/netlify-ET5JT5FX.cjs +0 -12
  147. package/dist/netlify-QVXFSZJQ.js +0 -3
  148. package/dist/provider-registry-IP3K4FE4.js +0 -3
  149. package/dist/provider-registry-S6VYJ3GX.cjs +0 -40
  150. package/test-utils/llm-mock.d.ts +0 -1
@@ -106,6 +106,207 @@ var listScoresResponseSchema = v4.z.object({
106
106
  pagination: chunkG5HKDGNT_cjs.paginationInfoSchema,
107
107
  scores: v4.z.array(scoreRowDataSchema)
108
108
  });
109
+ function extractTrajectory(output) {
110
+ const steps = [];
111
+ for (const message of output) {
112
+ const toolInvocations = message?.content?.toolInvocations;
113
+ if (!toolInvocations) continue;
114
+ for (const invocation of toolInvocations) {
115
+ if (invocation && invocation.toolName && (invocation.state === "result" || invocation.state === "call")) {
116
+ const toolArgs = invocation.args != null && typeof invocation.args === "object" && !Array.isArray(invocation.args) ? invocation.args : invocation.args != null ? { value: invocation.args } : void 0;
117
+ const rawResult = invocation.state === "result" ? invocation.result : void 0;
118
+ const toolResult = rawResult != null && typeof rawResult === "object" && !Array.isArray(rawResult) ? rawResult : rawResult != null ? { value: rawResult } : void 0;
119
+ steps.push({
120
+ stepType: "tool_call",
121
+ name: invocation.toolName,
122
+ toolArgs,
123
+ toolResult,
124
+ success: invocation.state === "result"
125
+ });
126
+ }
127
+ }
128
+ }
129
+ return { steps, rawOutput: output };
130
+ }
131
+ function extractWorkflowTrajectory(stepResults, stepExecutionPath) {
132
+ const steps = [];
133
+ const stepIds = stepExecutionPath ?? Object.keys(stepResults);
134
+ let totalStartedAt;
135
+ let totalEndedAt;
136
+ for (const stepId of stepIds) {
137
+ const result = stepResults[stepId];
138
+ if (!result) continue;
139
+ if (result.startedAt != null) {
140
+ if (totalStartedAt == null || result.startedAt < totalStartedAt) {
141
+ totalStartedAt = result.startedAt;
142
+ }
143
+ }
144
+ const endedAt = "endedAt" in result ? result.endedAt : void 0;
145
+ if (endedAt != null) {
146
+ if (totalEndedAt == null || endedAt > totalEndedAt) {
147
+ totalEndedAt = endedAt;
148
+ }
149
+ }
150
+ const durationMs = result.startedAt != null && endedAt != null ? endedAt - result.startedAt : void 0;
151
+ const output = "output" in result && result.output != null && typeof result.output === "object" && !Array.isArray(result.output) ? result.output : "output" in result && result.output != null ? { value: result.output } : void 0;
152
+ steps.push({
153
+ stepType: "workflow_step",
154
+ name: stepId,
155
+ stepId,
156
+ status: result.status,
157
+ output,
158
+ durationMs,
159
+ metadata: result.metadata
160
+ });
161
+ }
162
+ const totalDurationMs = totalStartedAt != null && totalEndedAt != null ? totalEndedAt - totalStartedAt : void 0;
163
+ return {
164
+ steps,
165
+ totalDurationMs,
166
+ rawWorkflowResult: { stepResults, stepExecutionPath }
167
+ };
168
+ }
169
+ var SKIPPED_SPAN_TYPES = /* @__PURE__ */ new Set([
170
+ "generic" /* GENERIC */,
171
+ "model_step" /* MODEL_STEP */,
172
+ "model_chunk" /* MODEL_CHUNK */,
173
+ "workflow_conditional_eval" /* WORKFLOW_CONDITIONAL_EVAL */
174
+ ]);
175
+ function spanToTrajectorySteps(node) {
176
+ const { span, children: childNodes } = node;
177
+ if (SKIPPED_SPAN_TYPES.has(span.spanType)) {
178
+ return childNodes.flatMap(spanToTrajectorySteps);
179
+ }
180
+ const durationMs = span.endedAt != null && span.startedAt != null ? span.endedAt.getTime() - span.startedAt.getTime() : void 0;
181
+ const childSteps = childNodes.flatMap(spanToTrajectorySteps);
182
+ const base = {
183
+ name: span.name,
184
+ durationMs,
185
+ metadata: span.metadata,
186
+ ...childSteps.length > 0 ? { children: childSteps } : {}
187
+ };
188
+ const attrs = span.attributes ?? {};
189
+ switch (span.spanType) {
190
+ case "tool_call" /* TOOL_CALL */: {
191
+ const toolArgs = toRecordOrUndefined(span.input);
192
+ const toolResult = toRecordOrUndefined(span.output);
193
+ return [
194
+ {
195
+ ...base,
196
+ stepType: "tool_call",
197
+ toolArgs,
198
+ toolResult,
199
+ success: typeof attrs.success === "boolean" ? attrs.success : void 0
200
+ }
201
+ ];
202
+ }
203
+ case "mcp_tool_call" /* MCP_TOOL_CALL */: {
204
+ const toolArgs = toRecordOrUndefined(span.input);
205
+ const toolResult = toRecordOrUndefined(span.output);
206
+ return [
207
+ {
208
+ ...base,
209
+ stepType: "mcp_tool_call",
210
+ toolArgs,
211
+ toolResult,
212
+ mcpServer: typeof attrs.mcpServer === "string" ? attrs.mcpServer : void 0,
213
+ success: typeof attrs.success === "boolean" ? attrs.success : void 0
214
+ }
215
+ ];
216
+ }
217
+ case "model_generation" /* MODEL_GENERATION */: {
218
+ const usage = attrs.usage;
219
+ return [
220
+ {
221
+ ...base,
222
+ stepType: "model_generation",
223
+ modelId: typeof attrs.model === "string" ? attrs.model : void 0,
224
+ promptTokens: usage?.inputTokens,
225
+ completionTokens: usage?.outputTokens,
226
+ finishReason: typeof attrs.finishReason === "string" ? attrs.finishReason : void 0
227
+ }
228
+ ];
229
+ }
230
+ case "agent_run" /* AGENT_RUN */:
231
+ return [{ ...base, stepType: "agent_run", agentId: span.entityId ?? void 0 }];
232
+ case "workflow_run" /* WORKFLOW_RUN */:
233
+ return [{ ...base, stepType: "workflow_run", workflowId: span.entityId ?? void 0 }];
234
+ case "workflow_step" /* WORKFLOW_STEP */: {
235
+ const output = toRecordOrUndefined(span.output);
236
+ return [{ ...base, stepType: "workflow_step", stepId: span.name, output }];
237
+ }
238
+ case "workflow_conditional" /* WORKFLOW_CONDITIONAL */:
239
+ return [{ ...base, stepType: "workflow_conditional" }];
240
+ case "workflow_parallel" /* WORKFLOW_PARALLEL */:
241
+ return [{ ...base, stepType: "workflow_parallel" }];
242
+ case "workflow_loop" /* WORKFLOW_LOOP */:
243
+ return [{ ...base, stepType: "workflow_loop" }];
244
+ case "workflow_sleep" /* WORKFLOW_SLEEP */:
245
+ return [{ ...base, stepType: "workflow_sleep" }];
246
+ case "workflow_wait_event" /* WORKFLOW_WAIT_EVENT */:
247
+ return [{ ...base, stepType: "workflow_wait_event" }];
248
+ case "processor_run" /* PROCESSOR_RUN */:
249
+ return [{ ...base, stepType: "processor_run" }];
250
+ default:
251
+ return childSteps;
252
+ }
253
+ }
254
+ function toRecordOrUndefined(value) {
255
+ if (value == null) return void 0;
256
+ if (typeof value === "object" && !Array.isArray(value)) {
257
+ return value;
258
+ }
259
+ return { value };
260
+ }
261
+ function extractTrajectoryFromTrace(spans, rootSpanId) {
262
+ if (spans.length === 0) {
263
+ return { steps: [] };
264
+ }
265
+ const nodeMap = /* @__PURE__ */ new Map();
266
+ for (const span of spans) {
267
+ nodeMap.set(span.spanId, { span, children: [] });
268
+ }
269
+ const roots = [];
270
+ for (const span of spans) {
271
+ const node = nodeMap.get(span.spanId);
272
+ if (span.parentSpanId && nodeMap.has(span.parentSpanId)) {
273
+ nodeMap.get(span.parentSpanId).children.push(node);
274
+ } else {
275
+ roots.push(node);
276
+ }
277
+ }
278
+ for (const node of nodeMap.values()) {
279
+ node.children.sort((a, b) => a.span.startedAt.getTime() - b.span.startedAt.getTime());
280
+ }
281
+ let targetRoots;
282
+ if (rootSpanId) {
283
+ const rootNode = nodeMap.get(rootSpanId);
284
+ targetRoots = rootNode ? [rootNode] : roots;
285
+ } else {
286
+ targetRoots = roots;
287
+ }
288
+ let stepsToConvert;
289
+ if (targetRoots.length === 1) {
290
+ const root = targetRoots[0];
291
+ const containerTypes = /* @__PURE__ */ new Set(["workflow_run" /* WORKFLOW_RUN */, "agent_run" /* AGENT_RUN */]);
292
+ if (containerTypes.has(root.span.spanType)) {
293
+ stepsToConvert = root.children;
294
+ } else {
295
+ stepsToConvert = targetRoots;
296
+ }
297
+ } else {
298
+ stepsToConvert = targetRoots;
299
+ }
300
+ const steps = stepsToConvert.flatMap(spanToTrajectorySteps);
301
+ let totalDurationMs;
302
+ if (targetRoots.length === 1) {
303
+ const root = targetRoots[0].span;
304
+ if (root.endedAt && root.startedAt) {
305
+ totalDurationMs = root.endedAt.getTime() - root.startedAt.getTime();
306
+ }
307
+ }
308
+ return { steps, totalDurationMs };
309
+ }
109
310
 
110
311
  // src/storage/domains/observability/tracing.ts
111
312
  var createOmitKeys = (shape) => Object.fromEntries(Object.keys(shape).map((k) => [k, true]));
@@ -951,6 +1152,9 @@ exports.buildStorageSchema = buildStorageSchema;
951
1152
  exports.computeTraceStatus = computeTraceStatus;
952
1153
  exports.createSpanArgsSchema = createSpanArgsSchema;
953
1154
  exports.createSpanRecordSchema = createSpanRecordSchema;
1155
+ exports.extractTrajectory = extractTrajectory;
1156
+ exports.extractTrajectoryFromTrace = extractTrajectoryFromTrace;
1157
+ exports.extractWorkflowTrajectory = extractWorkflowTrajectory;
954
1158
  exports.getRootSpanArgsSchema = getRootSpanArgsSchema;
955
1159
  exports.getRootSpanResponseSchema = getRootSpanResponseSchema;
956
1160
  exports.getSpanArgsSchema = getSpanArgsSchema;
@@ -987,5 +1191,5 @@ exports.tracesOrderByFieldSchema = tracesOrderByFieldSchema;
987
1191
  exports.tracesOrderBySchema = tracesOrderBySchema;
988
1192
  exports.updateSpanArgsSchema = updateSpanArgsSchema;
989
1193
  exports.updateSpanRecordSchema = updateSpanRecordSchema;
990
- //# sourceMappingURL=chunk-QVQ3PGG2.cjs.map
991
- //# sourceMappingURL=chunk-QVQ3PGG2.cjs.map
1194
+ //# sourceMappingURL=chunk-7IDACSBM.cjs.map
1195
+ //# sourceMappingURL=chunk-7IDACSBM.cjs.map