@mastra/core 1.18.0-alpha.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 (147) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/agent/index.cjs +8 -8
  3. package/dist/agent/index.js +1 -1
  4. package/dist/{chunk-3ECYXW43.cjs → chunk-2U4M4SGY.cjs} +16 -16
  5. package/dist/{chunk-3ECYXW43.cjs.map → chunk-2U4M4SGY.cjs.map} +1 -1
  6. package/dist/{chunk-JEEYINIB.js → chunk-3NMSFQPY.js} +4 -4
  7. package/dist/{chunk-JEEYINIB.js.map → chunk-3NMSFQPY.js.map} +1 -1
  8. package/dist/{chunk-7CDFI4GW.cjs → chunk-3O73Q6M2.cjs} +76 -76
  9. package/dist/{chunk-7CDFI4GW.cjs.map → chunk-3O73Q6M2.cjs.map} +1 -1
  10. package/dist/{chunk-ZOPIN73X.js → chunk-3U4ZNZIF.js} +4 -4
  11. package/dist/{chunk-ZOPIN73X.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-YFYB3Q5L.js → chunk-A2Z26HFR.js} +9 -9
  15. package/dist/{chunk-YFYB3Q5L.js.map → chunk-A2Z26HFR.js.map} +1 -1
  16. package/dist/{chunk-AIYWGXK7.js → chunk-BYJDWJCX.js} +3 -3
  17. package/dist/{chunk-AIYWGXK7.js.map → chunk-BYJDWJCX.js.map} +1 -1
  18. package/dist/{chunk-F7YLMJSQ.js → chunk-D4DCPE5Y.js} +4 -4
  19. package/dist/{chunk-F7YLMJSQ.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-3LH5QX5F.cjs → chunk-G62XEVSI.cjs} +3 -3
  23. package/dist/{chunk-3LH5QX5F.cjs.map → chunk-G62XEVSI.cjs.map} +1 -1
  24. package/dist/{chunk-BHVF4Z5D.cjs → chunk-GFBH7Q4W.cjs} +13 -13
  25. package/dist/{chunk-BHVF4Z5D.cjs.map → chunk-GFBH7Q4W.cjs.map} +1 -1
  26. package/dist/{chunk-3DDJ33AU.js → chunk-HEHK7LXS.js} +4 -4
  27. package/dist/{chunk-3DDJ33AU.js.map → chunk-HEHK7LXS.js.map} +1 -1
  28. package/dist/{chunk-TG4U3K3I.cjs → chunk-JFPVUKPB.cjs} +50 -50
  29. package/dist/{chunk-TG4U3K3I.cjs.map → chunk-JFPVUKPB.cjs.map} +1 -1
  30. package/dist/{chunk-AIEKKCJ7.js → chunk-K22Q6XPG.js} +3 -3
  31. package/dist/{chunk-AIEKKCJ7.js.map → chunk-K22Q6XPG.js.map} +1 -1
  32. package/dist/{chunk-V54LY5HR.cjs → chunk-KL2IRBNK.cjs} +6107 -5697
  33. package/dist/chunk-KL2IRBNK.cjs.map +1 -0
  34. package/dist/{chunk-DV7FIKOO.cjs → chunk-MSDZQ4DW.cjs} +10 -10
  35. package/dist/{chunk-DV7FIKOO.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-SLG7AUBK.cjs → chunk-PQWEJELD.cjs} +6 -6
  39. package/dist/{chunk-SLG7AUBK.cjs.map → chunk-PQWEJELD.cjs.map} +1 -1
  40. package/dist/{chunk-P2C4NFMY.js → chunk-RB2QRGRV.js} +4 -4
  41. package/dist/{chunk-P2C4NFMY.js.map → chunk-RB2QRGRV.js.map} +1 -1
  42. package/dist/{chunk-BIB2LCIR.js → chunk-TKKBZUWD.js} +6106 -5696
  43. package/dist/chunk-TKKBZUWD.js.map +1 -0
  44. package/dist/{chunk-AEIPJW4F.cjs → chunk-UEZU2TA2.cjs} +185 -185
  45. package/dist/{chunk-AEIPJW4F.cjs.map → chunk-UEZU2TA2.cjs.map} +1 -1
  46. package/dist/{chunk-DL4A7URO.cjs → chunk-UPCNNWXW.cjs} +236 -20
  47. package/dist/chunk-UPCNNWXW.cjs.map +1 -0
  48. package/dist/{chunk-KMVGT2JI.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-YXNO6AHV.js → chunk-WYFCQAHY.js} +7 -7
  53. package/dist/{chunk-YXNO6AHV.js.map → chunk-WYFCQAHY.js.map} +1 -1
  54. package/dist/{chunk-A5JHKGFY.cjs → chunk-Z3VUDCXI.cjs} +7 -7
  55. package/dist/{chunk-A5JHKGFY.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 +349 -334
  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-JEMMVJFN.js.map → models-dev-3U6ICCNW.js.map} +1 -1
  93. package/dist/models-dev-BJHT4GXA.cjs +12 -0
  94. package/dist/{models-dev-MU7QGI4O.cjs.map → models-dev-BJHT4GXA.cjs.map} +1 -1
  95. package/dist/netlify-DE3IXMT2.js +3 -0
  96. package/dist/{netlify-BROEKRZF.js.map → netlify-DE3IXMT2.js.map} +1 -1
  97. package/dist/netlify-UARJYMCW.cjs +12 -0
  98. package/dist/{netlify-GOEIG6IC.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-CKFMYEBK.cjs.map → provider-registry-65CPGTUU.cjs.map} +1 -1
  105. package/dist/provider-registry-EQAT7FXK.js +3 -0
  106. package/dist/{provider-registry-P7EMCVJI.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 +5 -5
  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-BIB2LCIR.js.map +0 -1
  138. package/dist/chunk-DL4A7URO.cjs.map +0 -1
  139. package/dist/chunk-KMVGT2JI.js.map +0 -1
  140. package/dist/chunk-QVQ3PGG2.cjs.map +0 -1
  141. package/dist/chunk-V54LY5HR.cjs.map +0 -1
  142. package/dist/models-dev-JEMMVJFN.js +0 -3
  143. package/dist/models-dev-MU7QGI4O.cjs +0 -12
  144. package/dist/netlify-BROEKRZF.js +0 -3
  145. package/dist/netlify-GOEIG6IC.cjs +0 -12
  146. package/dist/provider-registry-CKFMYEBK.cjs +0 -40
  147. package/dist/provider-registry-P7EMCVJI.js +0 -3
@@ -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