@mastra/core 0.15.3-alpha.3 → 0.15.3-alpha.4

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 (166) hide show
  1. package/dist/agent/agent.types.d.ts +9 -4
  2. package/dist/agent/agent.types.d.ts.map +1 -1
  3. package/dist/agent/index.cjs +11 -11
  4. package/dist/agent/index.d.ts +33 -5
  5. package/dist/agent/index.d.ts.map +1 -1
  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/agent/types.d.ts +11 -6
  10. package/dist/agent/types.d.ts.map +1 -1
  11. package/dist/ai-tracing/context.d.ts.map +1 -1
  12. package/dist/ai-tracing/default.d.ts.map +1 -1
  13. package/dist/ai-tracing/index.cjs +43 -31
  14. package/dist/ai-tracing/index.js +1 -1
  15. package/dist/ai-tracing/no-op.d.ts +0 -1
  16. package/dist/ai-tracing/no-op.d.ts.map +1 -1
  17. package/dist/ai-tracing/types.d.ts +0 -2
  18. package/dist/ai-tracing/types.d.ts.map +1 -1
  19. package/dist/ai-tracing/utils.d.ts +44 -8
  20. package/dist/ai-tracing/utils.d.ts.map +1 -1
  21. package/dist/{chunk-TWNFR6MQ.cjs → chunk-5CJDO3UO.cjs} +8 -8
  22. package/dist/{chunk-TWNFR6MQ.cjs.map → chunk-5CJDO3UO.cjs.map} +1 -1
  23. package/dist/{chunk-ZAJTIZZF.cjs → chunk-ABRPHTOG.cjs} +2 -2
  24. package/dist/{chunk-ZAJTIZZF.cjs.map → chunk-ABRPHTOG.cjs.map} +1 -1
  25. package/dist/{chunk-GOG77M6R.js → chunk-BJGHUKKM.js} +2 -2
  26. package/dist/{chunk-GOG77M6R.js.map → chunk-BJGHUKKM.js.map} +1 -1
  27. package/dist/{chunk-5TFCIXWE.js → chunk-CKM2ESZF.js} +44 -21
  28. package/dist/chunk-CKM2ESZF.js.map +1 -0
  29. package/dist/{chunk-AYFN43FB.cjs → chunk-DZADAEAF.cjs} +68 -22
  30. package/dist/chunk-DZADAEAF.cjs.map +1 -0
  31. package/dist/{chunk-QHEB6ZLO.cjs → chunk-F2CAC2R2.cjs} +47 -24
  32. package/dist/chunk-F2CAC2R2.cjs.map +1 -0
  33. package/dist/{chunk-O7IQL4DX.js → chunk-F4SQXAXR.js} +7 -7
  34. package/dist/{chunk-O7IQL4DX.js.map → chunk-F4SQXAXR.js.map} +1 -1
  35. package/dist/{chunk-HXEHQLBD.cjs → chunk-F6XWBVVG.cjs} +4 -4
  36. package/dist/{chunk-HXEHQLBD.cjs.map → chunk-F6XWBVVG.cjs.map} +1 -1
  37. package/dist/{chunk-UGN2UU3K.cjs → chunk-FQRDHVZC.cjs} +4 -4
  38. package/dist/{chunk-UGN2UU3K.cjs.map → chunk-FQRDHVZC.cjs.map} +1 -1
  39. package/dist/{chunk-4DKPMUAC.cjs → chunk-I7OAONIW.cjs} +259 -177
  40. package/dist/chunk-I7OAONIW.cjs.map +1 -0
  41. package/dist/{chunk-EMAAAVRA.js → chunk-IODUKRQP.js} +3 -3
  42. package/dist/{chunk-EMAAAVRA.js.map → chunk-IODUKRQP.js.map} +1 -1
  43. package/dist/{chunk-DJKIK6ZB.cjs → chunk-KUNWELBC.cjs} +422 -250
  44. package/dist/chunk-KUNWELBC.cjs.map +1 -0
  45. package/dist/{chunk-WOTBMZCN.js → chunk-LOYT3WUA.js} +255 -176
  46. package/dist/chunk-LOYT3WUA.js.map +1 -0
  47. package/dist/{chunk-24TFSB6Z.cjs → chunk-LVGGMWSE.cjs} +8 -8
  48. package/dist/chunk-LVGGMWSE.cjs.map +1 -0
  49. package/dist/{chunk-TQRLZH64.js → chunk-OFPVAPUH.js} +4 -4
  50. package/dist/{chunk-TQRLZH64.js.map → chunk-OFPVAPUH.js.map} +1 -1
  51. package/dist/{chunk-BGOXFBFK.js → chunk-P2IJ74UW.js} +391 -219
  52. package/dist/chunk-P2IJ74UW.js.map +1 -0
  53. package/dist/{chunk-YTVX52NU.cjs → chunk-VVTB47UG.cjs} +6 -6
  54. package/dist/{chunk-YTVX52NU.cjs.map → chunk-VVTB47UG.cjs.map} +1 -1
  55. package/dist/{chunk-D2GH2HAK.cjs → chunk-W5CF7DLB.cjs} +9 -9
  56. package/dist/{chunk-D2GH2HAK.cjs.map → chunk-W5CF7DLB.cjs.map} +1 -1
  57. package/dist/{chunk-ZC64CG7J.js → chunk-WWQ3QRPF.js} +4 -4
  58. package/dist/chunk-WWQ3QRPF.js.map +1 -0
  59. package/dist/{chunk-WUQSFK7W.js → chunk-XPFWOBV4.js} +4 -4
  60. package/dist/{chunk-WUQSFK7W.js.map → chunk-XPFWOBV4.js.map} +1 -1
  61. package/dist/{chunk-MEROMP3Z.js → chunk-YAWYQH3N.js} +3 -3
  62. package/dist/{chunk-MEROMP3Z.js.map → chunk-YAWYQH3N.js.map} +1 -1
  63. package/dist/{chunk-APVV75XG.js → chunk-YVIYEC6R.js} +62 -16
  64. package/dist/chunk-YVIYEC6R.js.map +1 -0
  65. package/dist/index.cjs +44 -44
  66. package/dist/index.js +10 -10
  67. package/dist/integration/index.cjs +3 -3
  68. package/dist/integration/index.js +1 -1
  69. package/dist/llm/index.d.ts +2 -2
  70. package/dist/llm/index.d.ts.map +1 -1
  71. package/dist/llm/model/base.types.d.ts +2 -2
  72. package/dist/llm/model/base.types.d.ts.map +1 -1
  73. package/dist/llm/model/model.d.ts +4 -4
  74. package/dist/llm/model/model.d.ts.map +1 -1
  75. package/dist/llm/model/model.loop.d.ts +1 -1
  76. package/dist/llm/model/model.loop.d.ts.map +1 -1
  77. package/dist/llm/model/model.loop.types.d.ts +2 -0
  78. package/dist/llm/model/model.loop.types.d.ts.map +1 -1
  79. package/dist/loop/index.cjs +2 -2
  80. package/dist/loop/index.js +1 -1
  81. package/dist/loop/loop.d.ts +1 -1
  82. package/dist/loop/loop.d.ts.map +1 -1
  83. package/dist/loop/types.d.ts +2 -0
  84. package/dist/loop/types.d.ts.map +1 -1
  85. package/dist/loop/workflow/stream.d.ts +1 -1
  86. package/dist/loop/workflow/stream.d.ts.map +1 -1
  87. package/dist/mastra/hooks.d.ts.map +1 -1
  88. package/dist/mastra/index.cjs +2 -2
  89. package/dist/mastra/index.d.ts +8 -3
  90. package/dist/mastra/index.d.ts.map +1 -1
  91. package/dist/mastra/index.js +1 -1
  92. package/dist/memory/index.cjs +4 -4
  93. package/dist/memory/index.js +1 -1
  94. package/dist/network/index.cjs +4 -4
  95. package/dist/network/index.js +2 -2
  96. package/dist/network/vNext/index.cjs +14 -14
  97. package/dist/network/vNext/index.js +2 -2
  98. package/dist/processors/index.cjs +13 -11
  99. package/dist/processors/index.cjs.map +1 -1
  100. package/dist/processors/index.d.ts +4 -0
  101. package/dist/processors/index.d.ts.map +1 -1
  102. package/dist/processors/index.js +7 -5
  103. package/dist/processors/index.js.map +1 -1
  104. package/dist/processors/processors/moderation.d.ts +4 -0
  105. package/dist/processors/processors/moderation.d.ts.map +1 -1
  106. package/dist/processors/processors/pii-detector.d.ts +3 -0
  107. package/dist/processors/processors/pii-detector.d.ts.map +1 -1
  108. package/dist/processors/processors/prompt-injection-detector.d.ts +2 -0
  109. package/dist/processors/processors/prompt-injection-detector.d.ts.map +1 -1
  110. package/dist/processors/processors/system-prompt-scrubber.d.ts +2 -0
  111. package/dist/processors/processors/system-prompt-scrubber.d.ts.map +1 -1
  112. package/dist/processors/runner.d.ts +5 -4
  113. package/dist/processors/runner.d.ts.map +1 -1
  114. package/dist/relevance/index.cjs +4 -4
  115. package/dist/relevance/index.js +1 -1
  116. package/dist/scores/base.d.ts +2 -0
  117. package/dist/scores/base.d.ts.map +1 -1
  118. package/dist/scores/hooks.d.ts +3 -1
  119. package/dist/scores/hooks.d.ts.map +1 -1
  120. package/dist/scores/index.cjs +27 -18
  121. package/dist/scores/index.cjs.map +1 -1
  122. package/dist/scores/index.js +23 -14
  123. package/dist/scores/index.js.map +1 -1
  124. package/dist/scores/run-experiment/index.d.ts +2 -0
  125. package/dist/scores/run-experiment/index.d.ts.map +1 -1
  126. package/dist/scores/types.d.ts +3 -0
  127. package/dist/scores/types.d.ts.map +1 -1
  128. package/dist/storage/index.cjs +3 -3
  129. package/dist/storage/index.js +1 -1
  130. package/dist/stream/index.cjs +3 -3
  131. package/dist/stream/index.js +1 -1
  132. package/dist/test-utils/llm-mock.cjs +2 -2
  133. package/dist/test-utils/llm-mock.js +1 -1
  134. package/dist/tools/index.cjs +4 -4
  135. package/dist/tools/index.js +1 -1
  136. package/dist/tools/is-vercel-tool.cjs +2 -2
  137. package/dist/tools/is-vercel-tool.js +1 -1
  138. package/dist/tools/tool.d.ts +3 -1
  139. package/dist/tools/tool.d.ts.map +1 -1
  140. package/dist/utils.cjs +17 -17
  141. package/dist/utils.d.ts +3 -3
  142. package/dist/utils.d.ts.map +1 -1
  143. package/dist/utils.js +1 -1
  144. package/dist/workflows/default.d.ts +13 -3
  145. package/dist/workflows/default.d.ts.map +1 -1
  146. package/dist/workflows/evented/index.cjs +10 -10
  147. package/dist/workflows/evented/index.js +1 -1
  148. package/dist/workflows/execution-engine.d.ts +2 -2
  149. package/dist/workflows/execution-engine.d.ts.map +1 -1
  150. package/dist/workflows/index.cjs +10 -10
  151. package/dist/workflows/index.js +1 -1
  152. package/dist/workflows/legacy/index.cjs +22 -22
  153. package/dist/workflows/legacy/index.js +1 -1
  154. package/dist/workflows/workflow.d.ts +8 -8
  155. package/dist/workflows/workflow.d.ts.map +1 -1
  156. package/package.json +6 -6
  157. package/dist/chunk-24TFSB6Z.cjs.map +0 -1
  158. package/dist/chunk-4DKPMUAC.cjs.map +0 -1
  159. package/dist/chunk-5TFCIXWE.js.map +0 -1
  160. package/dist/chunk-APVV75XG.js.map +0 -1
  161. package/dist/chunk-AYFN43FB.cjs.map +0 -1
  162. package/dist/chunk-BGOXFBFK.js.map +0 -1
  163. package/dist/chunk-DJKIK6ZB.cjs.map +0 -1
  164. package/dist/chunk-QHEB6ZLO.cjs.map +0 -1
  165. package/dist/chunk-WOTBMZCN.js.map +0 -1
  166. package/dist/chunk-ZC64CG7J.js.map +0 -1
@@ -104,5 +104,5 @@ exports.Tool = Tool;
104
104
  exports.createTool = createTool;
105
105
  exports.isVercelTool = isVercelTool;
106
106
  exports.validateToolInput = validateToolInput;
107
- //# sourceMappingURL=chunk-ZAJTIZZF.cjs.map
108
- //# sourceMappingURL=chunk-ZAJTIZZF.cjs.map
107
+ //# sourceMappingURL=chunk-ABRPHTOG.cjs.map
108
+ //# sourceMappingURL=chunk-ABRPHTOG.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tools/validation.ts","../src/tools/tool.ts","../src/tools/toolchecks.ts"],"names":[],"mappings":"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","file":"chunk-ZAJTIZZF.cjs","sourcesContent":["import type { z } from 'zod';\n\nexport interface ValidationError<T = any> {\n error: true;\n message: string;\n validationErrors: z.ZodFormattedError<T>;\n}\n\n/**\n * Validates input against a Zod schema and returns a structured error if validation fails\n * @param schema The Zod schema to validate against\n * @param input The input to validate\n * @param toolId Optional tool ID for better error messages\n * @returns The validation error object if validation fails, undefined if successful\n */\nexport function validateToolInput<T = any>(\n schema: z.ZodSchema<T> | undefined,\n input: unknown,\n toolId?: string,\n): { data: T | unknown; error?: ValidationError<T> } {\n if (!schema || !('safeParse' in schema)) {\n return { data: input };\n }\n\n // Store validation results to avoid duplicate validation\n type ValidationAttempt = {\n result: z.SafeParseReturnType<any, T>;\n data: unknown;\n structure: 'direct' | 'context' | 'inputData';\n };\n\n const validationAttempts: ValidationAttempt[] = [];\n\n // Try validating the input directly first\n const directValidation = schema.safeParse(input);\n validationAttempts.push({\n result: directValidation,\n data: input,\n structure: 'direct',\n });\n\n if (directValidation.success) {\n return { data: input };\n }\n\n // Handle ToolExecutionContext format { context: data, ... }\n if (input && typeof input === 'object' && 'context' in input) {\n const contextData = (input as any).context;\n const contextValidation = schema.safeParse(contextData);\n validationAttempts.push({\n result: contextValidation,\n data: contextData,\n structure: 'context',\n });\n\n if (contextValidation.success) {\n return { data: { ...(input as object), context: contextValidation.data } };\n }\n\n // Handle StepExecutionContext format { context: { inputData: data, ... }, ... }\n if (contextData && typeof contextData === 'object' && 'inputData' in contextData) {\n const inputDataValue = (contextData as any).inputData;\n const inputDataValidation = schema.safeParse(inputDataValue);\n validationAttempts.push({\n result: inputDataValidation,\n data: inputDataValue,\n structure: 'inputData',\n });\n\n if (inputDataValidation.success) {\n // For inputData unwrapping, preserve the structure if the original context had additional properties\n // but return just the validated data if it was a pure inputData wrapper\n const contextKeys = Object.keys(contextData);\n\n // If context only has inputData, return the full structure with the validated data\n // Otherwise, return just the validated inputData\n if (contextKeys.length === 1 && contextKeys[0] === 'inputData') {\n return { data: { ...(input as object), context: { inputData: inputDataValidation.data } } };\n } else {\n // Multiple keys in context, return just the validated data\n return { data: inputDataValidation.data };\n }\n }\n }\n }\n\n // All validations failed, find the best error to return\n // Prefer the most specific error (deepest unwrapping level that has meaningful errors)\n let bestAttempt = validationAttempts[0]; // Start with direct validation\n\n for (const attempt of validationAttempts) {\n if (!attempt.result.success && attempt.result.error.issues.length > 0) {\n bestAttempt = attempt;\n }\n }\n\n // Use the best validation attempt for error reporting\n if (bestAttempt && !bestAttempt.result.success) {\n const errorMessages = bestAttempt.result.error.issues\n .map((e: z.ZodIssue) => `- ${e.path?.join('.') || 'root'}: ${e.message}`)\n .join('\\n');\n\n const error: ValidationError<T> = {\n error: true,\n message: `Tool validation failed${toolId ? ` for ${toolId}` : ''}. Please fix the following errors and try again:\\n${errorMessages}\\n\\nProvided arguments: ${JSON.stringify(bestAttempt.data, null, 2)}`,\n validationErrors: bestAttempt.result.error.format() as z.ZodFormattedError<T>,\n };\n\n return { data: input, error };\n }\n\n // This should not happen since we handle all valid cases above\n return { data: input };\n}\n","import type { ToolExecutionOptions } from 'ai';\nimport type { z } from 'zod';\n\nimport type { Mastra } from '../mastra';\nimport type { ToolAction, ToolExecutionContext } from './types';\nimport { validateToolInput } from './validation';\n\nexport class Tool<\n TSchemaIn extends z.ZodSchema | undefined = undefined,\n TSchemaOut extends z.ZodSchema | undefined = undefined,\n TContext extends ToolExecutionContext<TSchemaIn> = ToolExecutionContext<TSchemaIn>,\n> implements ToolAction<TSchemaIn, TSchemaOut, TContext>\n{\n id: string;\n description: string;\n inputSchema?: TSchemaIn;\n outputSchema?: TSchemaOut;\n execute?: ToolAction<TSchemaIn, TSchemaOut, TContext>['execute'];\n mastra?: Mastra;\n\n constructor(opts: ToolAction<TSchemaIn, TSchemaOut, TContext>) {\n this.id = opts.id;\n this.description = opts.description;\n this.inputSchema = opts.inputSchema;\n this.outputSchema = opts.outputSchema;\n this.mastra = opts.mastra;\n\n // Wrap the execute function with validation if it exists\n if (opts.execute) {\n const originalExecute = opts.execute;\n this.execute = async (context: TContext, options?: ToolExecutionOptions) => {\n // Validate input if schema exists\n const { data, error } = validateToolInput(this.inputSchema, context, this.id);\n if (error) {\n return error as any;\n }\n\n return originalExecute(data as TContext, options);\n };\n }\n }\n}\n\nexport function createTool<\n TSchemaIn extends z.ZodSchema | undefined = undefined,\n TSchemaOut extends z.ZodSchema | undefined = undefined,\n TContext extends ToolExecutionContext<TSchemaIn> = ToolExecutionContext<TSchemaIn>,\n TExecute extends ToolAction<TSchemaIn, TSchemaOut, TContext>['execute'] = ToolAction<\n TSchemaIn,\n TSchemaOut,\n TContext\n >['execute'],\n>(\n opts: ToolAction<TSchemaIn, TSchemaOut, TContext> & {\n execute?: TExecute;\n },\n): [TSchemaIn, TSchemaOut, TExecute] extends [z.ZodSchema, z.ZodSchema, Function]\n ? Tool<TSchemaIn, TSchemaOut, TContext> & {\n inputSchema: TSchemaIn;\n outputSchema: TSchemaOut;\n execute: (context: TContext) => Promise<any>;\n }\n : Tool<TSchemaIn, TSchemaOut, TContext> {\n return new Tool(opts) as any;\n}\n","import { Tool } from './tool';\nimport type { ToolToConvert } from './tool-builder/builder';\nimport type { VercelTool } from './types';\n\n/**\n * Checks if a tool is a Vercel Tool\n * @param tool - The tool to check\n * @returns True if the tool is a Vercel Tool, false otherwise\n */\nexport function isVercelTool(tool?: ToolToConvert): tool is VercelTool {\n // Checks if this tool is not an instance of Tool\n return !!(tool && !(tool instanceof Tool) && 'parameters' in tool);\n}\n"]}
1
+ {"version":3,"sources":["../src/tools/validation.ts","../src/tools/tool.ts","../src/tools/toolchecks.ts"],"names":[],"mappings":"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","file":"chunk-ABRPHTOG.cjs","sourcesContent":["import type { z } from 'zod';\n\nexport interface ValidationError<T = any> {\n error: true;\n message: string;\n validationErrors: z.ZodFormattedError<T>;\n}\n\n/**\n * Validates input against a Zod schema and returns a structured error if validation fails\n * @param schema The Zod schema to validate against\n * @param input The input to validate\n * @param toolId Optional tool ID for better error messages\n * @returns The validation error object if validation fails, undefined if successful\n */\nexport function validateToolInput<T = any>(\n schema: z.ZodSchema<T> | undefined,\n input: unknown,\n toolId?: string,\n): { data: T | unknown; error?: ValidationError<T> } {\n if (!schema || !('safeParse' in schema)) {\n return { data: input };\n }\n\n // Store validation results to avoid duplicate validation\n type ValidationAttempt = {\n result: z.SafeParseReturnType<any, T>;\n data: unknown;\n structure: 'direct' | 'context' | 'inputData';\n };\n\n const validationAttempts: ValidationAttempt[] = [];\n\n // Try validating the input directly first\n const directValidation = schema.safeParse(input);\n validationAttempts.push({\n result: directValidation,\n data: input,\n structure: 'direct',\n });\n\n if (directValidation.success) {\n return { data: input };\n }\n\n // Handle ToolExecutionContext format { context: data, ... }\n if (input && typeof input === 'object' && 'context' in input) {\n const contextData = (input as any).context;\n const contextValidation = schema.safeParse(contextData);\n validationAttempts.push({\n result: contextValidation,\n data: contextData,\n structure: 'context',\n });\n\n if (contextValidation.success) {\n return { data: { ...(input as object), context: contextValidation.data } };\n }\n\n // Handle StepExecutionContext format { context: { inputData: data, ... }, ... }\n if (contextData && typeof contextData === 'object' && 'inputData' in contextData) {\n const inputDataValue = (contextData as any).inputData;\n const inputDataValidation = schema.safeParse(inputDataValue);\n validationAttempts.push({\n result: inputDataValidation,\n data: inputDataValue,\n structure: 'inputData',\n });\n\n if (inputDataValidation.success) {\n // For inputData unwrapping, preserve the structure if the original context had additional properties\n // but return just the validated data if it was a pure inputData wrapper\n const contextKeys = Object.keys(contextData);\n\n // If context only has inputData, return the full structure with the validated data\n // Otherwise, return just the validated inputData\n if (contextKeys.length === 1 && contextKeys[0] === 'inputData') {\n return { data: { ...(input as object), context: { inputData: inputDataValidation.data } } };\n } else {\n // Multiple keys in context, return just the validated data\n return { data: inputDataValidation.data };\n }\n }\n }\n }\n\n // All validations failed, find the best error to return\n // Prefer the most specific error (deepest unwrapping level that has meaningful errors)\n let bestAttempt = validationAttempts[0]; // Start with direct validation\n\n for (const attempt of validationAttempts) {\n if (!attempt.result.success && attempt.result.error.issues.length > 0) {\n bestAttempt = attempt;\n }\n }\n\n // Use the best validation attempt for error reporting\n if (bestAttempt && !bestAttempt.result.success) {\n const errorMessages = bestAttempt.result.error.issues\n .map((e: z.ZodIssue) => `- ${e.path?.join('.') || 'root'}: ${e.message}`)\n .join('\\n');\n\n const error: ValidationError<T> = {\n error: true,\n message: `Tool validation failed${toolId ? ` for ${toolId}` : ''}. Please fix the following errors and try again:\\n${errorMessages}\\n\\nProvided arguments: ${JSON.stringify(bestAttempt.data, null, 2)}`,\n validationErrors: bestAttempt.result.error.format() as z.ZodFormattedError<T>,\n };\n\n return { data: input, error };\n }\n\n // This should not happen since we handle all valid cases above\n return { data: input };\n}\n","import type { ToolExecutionOptions } from 'ai';\nimport type { ToolCallOptions } from 'ai-v5';\nimport type { z } from 'zod';\n\nimport type { Mastra } from '../mastra';\nimport type { ToolAction, ToolExecutionContext } from './types';\nimport { validateToolInput } from './validation';\n\nexport class Tool<\n TSchemaIn extends z.ZodSchema | undefined = undefined,\n TSchemaOut extends z.ZodSchema | undefined = undefined,\n TContext extends ToolExecutionContext<TSchemaIn> = ToolExecutionContext<TSchemaIn>,\n> implements ToolAction<TSchemaIn, TSchemaOut, TContext>\n{\n id: string;\n description: string;\n inputSchema?: TSchemaIn;\n outputSchema?: TSchemaOut;\n execute?: ToolAction<TSchemaIn, TSchemaOut, TContext>['execute'];\n mastra?: Mastra;\n\n constructor(opts: ToolAction<TSchemaIn, TSchemaOut, TContext>) {\n this.id = opts.id;\n this.description = opts.description;\n this.inputSchema = opts.inputSchema;\n this.outputSchema = opts.outputSchema;\n this.mastra = opts.mastra;\n\n // Wrap the execute function with validation if it exists\n if (opts.execute) {\n const originalExecute = opts.execute;\n this.execute = async (context: TContext, options?: ToolExecutionOptions) => {\n // Validate input if schema exists\n const { data, error } = validateToolInput(this.inputSchema, context, this.id);\n if (error) {\n return error as any;\n }\n\n return originalExecute(data as TContext, options);\n };\n }\n }\n}\n\nexport function createTool<\n TSchemaIn extends z.ZodSchema | undefined = undefined,\n TSchemaOut extends z.ZodSchema | undefined = undefined,\n TContext extends ToolExecutionContext<TSchemaIn> = ToolExecutionContext<TSchemaIn>,\n TExecute extends ToolAction<TSchemaIn, TSchemaOut, TContext>['execute'] = ToolAction<\n TSchemaIn,\n TSchemaOut,\n TContext\n >['execute'],\n>(\n opts: ToolAction<TSchemaIn, TSchemaOut, TContext> & {\n execute?: TExecute;\n },\n): [TSchemaIn, TSchemaOut, TExecute] extends [z.ZodSchema, z.ZodSchema, Function]\n ? Tool<TSchemaIn, TSchemaOut, TContext> & {\n inputSchema: TSchemaIn;\n outputSchema: TSchemaOut;\n execute: (context: TContext, options: ToolExecutionOptions | ToolCallOptions) => Promise<any>;\n }\n : Tool<TSchemaIn, TSchemaOut, TContext> {\n return new Tool(opts) as any;\n}\n","import { Tool } from './tool';\nimport type { ToolToConvert } from './tool-builder/builder';\nimport type { VercelTool } from './types';\n\n/**\n * Checks if a tool is a Vercel Tool\n * @param tool - The tool to check\n * @returns True if the tool is a Vercel Tool, false otherwise\n */\nexport function isVercelTool(tool?: ToolToConvert): tool is VercelTool {\n // Checks if this tool is not an instance of Tool\n return !!(tool && !(tool instanceof Tool) && 'parameters' in tool);\n}\n"]}
@@ -99,5 +99,5 @@ function isVercelTool(tool) {
99
99
  }
100
100
 
101
101
  export { Tool, createTool, isVercelTool, validateToolInput };
102
- //# sourceMappingURL=chunk-GOG77M6R.js.map
103
- //# sourceMappingURL=chunk-GOG77M6R.js.map
102
+ //# sourceMappingURL=chunk-BJGHUKKM.js.map
103
+ //# sourceMappingURL=chunk-BJGHUKKM.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tools/validation.ts","../src/tools/tool.ts","../src/tools/toolchecks.ts"],"names":[],"mappings":"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","file":"chunk-GOG77M6R.js","sourcesContent":["import type { z } from 'zod';\n\nexport interface ValidationError<T = any> {\n error: true;\n message: string;\n validationErrors: z.ZodFormattedError<T>;\n}\n\n/**\n * Validates input against a Zod schema and returns a structured error if validation fails\n * @param schema The Zod schema to validate against\n * @param input The input to validate\n * @param toolId Optional tool ID for better error messages\n * @returns The validation error object if validation fails, undefined if successful\n */\nexport function validateToolInput<T = any>(\n schema: z.ZodSchema<T> | undefined,\n input: unknown,\n toolId?: string,\n): { data: T | unknown; error?: ValidationError<T> } {\n if (!schema || !('safeParse' in schema)) {\n return { data: input };\n }\n\n // Store validation results to avoid duplicate validation\n type ValidationAttempt = {\n result: z.SafeParseReturnType<any, T>;\n data: unknown;\n structure: 'direct' | 'context' | 'inputData';\n };\n\n const validationAttempts: ValidationAttempt[] = [];\n\n // Try validating the input directly first\n const directValidation = schema.safeParse(input);\n validationAttempts.push({\n result: directValidation,\n data: input,\n structure: 'direct',\n });\n\n if (directValidation.success) {\n return { data: input };\n }\n\n // Handle ToolExecutionContext format { context: data, ... }\n if (input && typeof input === 'object' && 'context' in input) {\n const contextData = (input as any).context;\n const contextValidation = schema.safeParse(contextData);\n validationAttempts.push({\n result: contextValidation,\n data: contextData,\n structure: 'context',\n });\n\n if (contextValidation.success) {\n return { data: { ...(input as object), context: contextValidation.data } };\n }\n\n // Handle StepExecutionContext format { context: { inputData: data, ... }, ... }\n if (contextData && typeof contextData === 'object' && 'inputData' in contextData) {\n const inputDataValue = (contextData as any).inputData;\n const inputDataValidation = schema.safeParse(inputDataValue);\n validationAttempts.push({\n result: inputDataValidation,\n data: inputDataValue,\n structure: 'inputData',\n });\n\n if (inputDataValidation.success) {\n // For inputData unwrapping, preserve the structure if the original context had additional properties\n // but return just the validated data if it was a pure inputData wrapper\n const contextKeys = Object.keys(contextData);\n\n // If context only has inputData, return the full structure with the validated data\n // Otherwise, return just the validated inputData\n if (contextKeys.length === 1 && contextKeys[0] === 'inputData') {\n return { data: { ...(input as object), context: { inputData: inputDataValidation.data } } };\n } else {\n // Multiple keys in context, return just the validated data\n return { data: inputDataValidation.data };\n }\n }\n }\n }\n\n // All validations failed, find the best error to return\n // Prefer the most specific error (deepest unwrapping level that has meaningful errors)\n let bestAttempt = validationAttempts[0]; // Start with direct validation\n\n for (const attempt of validationAttempts) {\n if (!attempt.result.success && attempt.result.error.issues.length > 0) {\n bestAttempt = attempt;\n }\n }\n\n // Use the best validation attempt for error reporting\n if (bestAttempt && !bestAttempt.result.success) {\n const errorMessages = bestAttempt.result.error.issues\n .map((e: z.ZodIssue) => `- ${e.path?.join('.') || 'root'}: ${e.message}`)\n .join('\\n');\n\n const error: ValidationError<T> = {\n error: true,\n message: `Tool validation failed${toolId ? ` for ${toolId}` : ''}. Please fix the following errors and try again:\\n${errorMessages}\\n\\nProvided arguments: ${JSON.stringify(bestAttempt.data, null, 2)}`,\n validationErrors: bestAttempt.result.error.format() as z.ZodFormattedError<T>,\n };\n\n return { data: input, error };\n }\n\n // This should not happen since we handle all valid cases above\n return { data: input };\n}\n","import type { ToolExecutionOptions } from 'ai';\nimport type { z } from 'zod';\n\nimport type { Mastra } from '../mastra';\nimport type { ToolAction, ToolExecutionContext } from './types';\nimport { validateToolInput } from './validation';\n\nexport class Tool<\n TSchemaIn extends z.ZodSchema | undefined = undefined,\n TSchemaOut extends z.ZodSchema | undefined = undefined,\n TContext extends ToolExecutionContext<TSchemaIn> = ToolExecutionContext<TSchemaIn>,\n> implements ToolAction<TSchemaIn, TSchemaOut, TContext>\n{\n id: string;\n description: string;\n inputSchema?: TSchemaIn;\n outputSchema?: TSchemaOut;\n execute?: ToolAction<TSchemaIn, TSchemaOut, TContext>['execute'];\n mastra?: Mastra;\n\n constructor(opts: ToolAction<TSchemaIn, TSchemaOut, TContext>) {\n this.id = opts.id;\n this.description = opts.description;\n this.inputSchema = opts.inputSchema;\n this.outputSchema = opts.outputSchema;\n this.mastra = opts.mastra;\n\n // Wrap the execute function with validation if it exists\n if (opts.execute) {\n const originalExecute = opts.execute;\n this.execute = async (context: TContext, options?: ToolExecutionOptions) => {\n // Validate input if schema exists\n const { data, error } = validateToolInput(this.inputSchema, context, this.id);\n if (error) {\n return error as any;\n }\n\n return originalExecute(data as TContext, options);\n };\n }\n }\n}\n\nexport function createTool<\n TSchemaIn extends z.ZodSchema | undefined = undefined,\n TSchemaOut extends z.ZodSchema | undefined = undefined,\n TContext extends ToolExecutionContext<TSchemaIn> = ToolExecutionContext<TSchemaIn>,\n TExecute extends ToolAction<TSchemaIn, TSchemaOut, TContext>['execute'] = ToolAction<\n TSchemaIn,\n TSchemaOut,\n TContext\n >['execute'],\n>(\n opts: ToolAction<TSchemaIn, TSchemaOut, TContext> & {\n execute?: TExecute;\n },\n): [TSchemaIn, TSchemaOut, TExecute] extends [z.ZodSchema, z.ZodSchema, Function]\n ? Tool<TSchemaIn, TSchemaOut, TContext> & {\n inputSchema: TSchemaIn;\n outputSchema: TSchemaOut;\n execute: (context: TContext) => Promise<any>;\n }\n : Tool<TSchemaIn, TSchemaOut, TContext> {\n return new Tool(opts) as any;\n}\n","import { Tool } from './tool';\nimport type { ToolToConvert } from './tool-builder/builder';\nimport type { VercelTool } from './types';\n\n/**\n * Checks if a tool is a Vercel Tool\n * @param tool - The tool to check\n * @returns True if the tool is a Vercel Tool, false otherwise\n */\nexport function isVercelTool(tool?: ToolToConvert): tool is VercelTool {\n // Checks if this tool is not an instance of Tool\n return !!(tool && !(tool instanceof Tool) && 'parameters' in tool);\n}\n"]}
1
+ {"version":3,"sources":["../src/tools/validation.ts","../src/tools/tool.ts","../src/tools/toolchecks.ts"],"names":[],"mappings":"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","file":"chunk-BJGHUKKM.js","sourcesContent":["import type { z } from 'zod';\n\nexport interface ValidationError<T = any> {\n error: true;\n message: string;\n validationErrors: z.ZodFormattedError<T>;\n}\n\n/**\n * Validates input against a Zod schema and returns a structured error if validation fails\n * @param schema The Zod schema to validate against\n * @param input The input to validate\n * @param toolId Optional tool ID for better error messages\n * @returns The validation error object if validation fails, undefined if successful\n */\nexport function validateToolInput<T = any>(\n schema: z.ZodSchema<T> | undefined,\n input: unknown,\n toolId?: string,\n): { data: T | unknown; error?: ValidationError<T> } {\n if (!schema || !('safeParse' in schema)) {\n return { data: input };\n }\n\n // Store validation results to avoid duplicate validation\n type ValidationAttempt = {\n result: z.SafeParseReturnType<any, T>;\n data: unknown;\n structure: 'direct' | 'context' | 'inputData';\n };\n\n const validationAttempts: ValidationAttempt[] = [];\n\n // Try validating the input directly first\n const directValidation = schema.safeParse(input);\n validationAttempts.push({\n result: directValidation,\n data: input,\n structure: 'direct',\n });\n\n if (directValidation.success) {\n return { data: input };\n }\n\n // Handle ToolExecutionContext format { context: data, ... }\n if (input && typeof input === 'object' && 'context' in input) {\n const contextData = (input as any).context;\n const contextValidation = schema.safeParse(contextData);\n validationAttempts.push({\n result: contextValidation,\n data: contextData,\n structure: 'context',\n });\n\n if (contextValidation.success) {\n return { data: { ...(input as object), context: contextValidation.data } };\n }\n\n // Handle StepExecutionContext format { context: { inputData: data, ... }, ... }\n if (contextData && typeof contextData === 'object' && 'inputData' in contextData) {\n const inputDataValue = (contextData as any).inputData;\n const inputDataValidation = schema.safeParse(inputDataValue);\n validationAttempts.push({\n result: inputDataValidation,\n data: inputDataValue,\n structure: 'inputData',\n });\n\n if (inputDataValidation.success) {\n // For inputData unwrapping, preserve the structure if the original context had additional properties\n // but return just the validated data if it was a pure inputData wrapper\n const contextKeys = Object.keys(contextData);\n\n // If context only has inputData, return the full structure with the validated data\n // Otherwise, return just the validated inputData\n if (contextKeys.length === 1 && contextKeys[0] === 'inputData') {\n return { data: { ...(input as object), context: { inputData: inputDataValidation.data } } };\n } else {\n // Multiple keys in context, return just the validated data\n return { data: inputDataValidation.data };\n }\n }\n }\n }\n\n // All validations failed, find the best error to return\n // Prefer the most specific error (deepest unwrapping level that has meaningful errors)\n let bestAttempt = validationAttempts[0]; // Start with direct validation\n\n for (const attempt of validationAttempts) {\n if (!attempt.result.success && attempt.result.error.issues.length > 0) {\n bestAttempt = attempt;\n }\n }\n\n // Use the best validation attempt for error reporting\n if (bestAttempt && !bestAttempt.result.success) {\n const errorMessages = bestAttempt.result.error.issues\n .map((e: z.ZodIssue) => `- ${e.path?.join('.') || 'root'}: ${e.message}`)\n .join('\\n');\n\n const error: ValidationError<T> = {\n error: true,\n message: `Tool validation failed${toolId ? ` for ${toolId}` : ''}. Please fix the following errors and try again:\\n${errorMessages}\\n\\nProvided arguments: ${JSON.stringify(bestAttempt.data, null, 2)}`,\n validationErrors: bestAttempt.result.error.format() as z.ZodFormattedError<T>,\n };\n\n return { data: input, error };\n }\n\n // This should not happen since we handle all valid cases above\n return { data: input };\n}\n","import type { ToolExecutionOptions } from 'ai';\nimport type { ToolCallOptions } from 'ai-v5';\nimport type { z } from 'zod';\n\nimport type { Mastra } from '../mastra';\nimport type { ToolAction, ToolExecutionContext } from './types';\nimport { validateToolInput } from './validation';\n\nexport class Tool<\n TSchemaIn extends z.ZodSchema | undefined = undefined,\n TSchemaOut extends z.ZodSchema | undefined = undefined,\n TContext extends ToolExecutionContext<TSchemaIn> = ToolExecutionContext<TSchemaIn>,\n> implements ToolAction<TSchemaIn, TSchemaOut, TContext>\n{\n id: string;\n description: string;\n inputSchema?: TSchemaIn;\n outputSchema?: TSchemaOut;\n execute?: ToolAction<TSchemaIn, TSchemaOut, TContext>['execute'];\n mastra?: Mastra;\n\n constructor(opts: ToolAction<TSchemaIn, TSchemaOut, TContext>) {\n this.id = opts.id;\n this.description = opts.description;\n this.inputSchema = opts.inputSchema;\n this.outputSchema = opts.outputSchema;\n this.mastra = opts.mastra;\n\n // Wrap the execute function with validation if it exists\n if (opts.execute) {\n const originalExecute = opts.execute;\n this.execute = async (context: TContext, options?: ToolExecutionOptions) => {\n // Validate input if schema exists\n const { data, error } = validateToolInput(this.inputSchema, context, this.id);\n if (error) {\n return error as any;\n }\n\n return originalExecute(data as TContext, options);\n };\n }\n }\n}\n\nexport function createTool<\n TSchemaIn extends z.ZodSchema | undefined = undefined,\n TSchemaOut extends z.ZodSchema | undefined = undefined,\n TContext extends ToolExecutionContext<TSchemaIn> = ToolExecutionContext<TSchemaIn>,\n TExecute extends ToolAction<TSchemaIn, TSchemaOut, TContext>['execute'] = ToolAction<\n TSchemaIn,\n TSchemaOut,\n TContext\n >['execute'],\n>(\n opts: ToolAction<TSchemaIn, TSchemaOut, TContext> & {\n execute?: TExecute;\n },\n): [TSchemaIn, TSchemaOut, TExecute] extends [z.ZodSchema, z.ZodSchema, Function]\n ? Tool<TSchemaIn, TSchemaOut, TContext> & {\n inputSchema: TSchemaIn;\n outputSchema: TSchemaOut;\n execute: (context: TContext, options: ToolExecutionOptions | ToolCallOptions) => Promise<any>;\n }\n : Tool<TSchemaIn, TSchemaOut, TContext> {\n return new Tool(opts) as any;\n}\n","import { Tool } from './tool';\nimport type { ToolToConvert } from './tool-builder/builder';\nimport type { VercelTool } from './types';\n\n/**\n * Checks if a tool is a Vercel Tool\n * @param tool - The tool to check\n * @returns True if the tool is a Vercel Tool, false otherwise\n */\nexport function isVercelTool(tool?: ToolToConvert): tool is VercelTool {\n // Checks if this tool is not an instance of Tool\n return !!(tool && !(tool instanceof Tool) && 'parameters' in tool);\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { isZodType, delay } from './chunk-ZC64CG7J.js';
1
+ import { isZodType, delay } from './chunk-WWQ3QRPF.js';
2
2
  import { MastraError } from './chunk-MCOVMKIS.js';
3
3
  import { MastraBase } from './chunk-6GF5M4GX.js';
4
4
  import { OpenAIReasoningSchemaCompatLayer, OpenAISchemaCompatLayer, GoogleSchemaCompatLayer, AnthropicSchemaCompatLayer, DeepSeekSchemaCompatLayer, MetaSchemaCompatLayer, applyCompatLayer } from '@mastra/schema-compat';
@@ -63,8 +63,9 @@ var MastraLLMV1 = class extends MastraBase {
63
63
  mode: "aiSdkSchema"
64
64
  });
65
65
  }
66
- _startAISpan(model, agentAISpan, name, streaming, options) {
67
- return agentAISpan?.createChildSpan({
66
+ _startAISpan(params) {
67
+ const { model, tracingContext, name, streaming, options } = params;
68
+ return tracingContext.currentSpan?.createChildSpan({
68
69
  name,
69
70
  type: "llm_generation" /* LLM_GENERATION */,
70
71
  input: options.prompt,
@@ -83,15 +84,21 @@ var MastraLLMV1 = class extends MastraBase {
83
84
  }
84
85
  });
85
86
  }
86
- _wrapModel(model, agentAISpan) {
87
- if (!agentAISpan) {
87
+ _wrapModel(model, tracingContext) {
88
+ if (!tracingContext.currentSpan) {
88
89
  return model;
89
90
  }
90
91
  const wrappedDoGenerate = async (options) => {
91
- const llmSpan = this._startAISpan(model, agentAISpan, `llm generate: '${model.modelId}'`, false, options);
92
+ const llmSpan = this._startAISpan({
93
+ model,
94
+ tracingContext,
95
+ name: `llm generate: '${model.modelId}'`,
96
+ streaming: false,
97
+ options
98
+ });
92
99
  try {
93
100
  const result = await model.doGenerate(options);
94
- llmSpan.end({
101
+ llmSpan?.end({
95
102
  output: result.text,
96
103
  attributes: {
97
104
  usage: result.usage ? {
@@ -102,12 +109,18 @@ var MastraLLMV1 = class extends MastraBase {
102
109
  });
103
110
  return result;
104
111
  } catch (error) {
105
- llmSpan.error({ error });
112
+ llmSpan?.error({ error });
106
113
  throw error;
107
114
  }
108
115
  };
109
116
  const wrappedDoStream = async (options) => {
110
- const llmSpan = this._startAISpan(model, agentAISpan, `llm stream: '${model.modelId}'`, true, options);
117
+ const llmSpan = this._startAISpan({
118
+ model,
119
+ tracingContext,
120
+ name: `llm stream: '${model.modelId}'`,
121
+ streaming: true,
122
+ options
123
+ });
111
124
  try {
112
125
  const result = await model.doStream(options);
113
126
  const originalStream = result.stream;
@@ -117,6 +130,16 @@ var MastraLLMV1 = class extends MastraBase {
117
130
  new TransformStream({
118
131
  // this gets called on each chunk output
119
132
  transform(chunk, controller) {
133
+ if (chunk.type === "text-delta") {
134
+ llmSpan?.createEventSpan({
135
+ type: "llm_chunk" /* LLM_CHUNK */,
136
+ name: `llm chunk: ${chunk.type}`,
137
+ output: chunk.textDelta,
138
+ attributes: {
139
+ chunkType: chunk.type
140
+ }
141
+ });
142
+ }
120
143
  if (chunk.type === "finish") {
121
144
  finishReason = chunk.finishReason;
122
145
  finalUsage = chunk.usage;
@@ -125,7 +148,7 @@ var MastraLLMV1 = class extends MastraBase {
125
148
  },
126
149
  // this gets called at the end of the stream
127
150
  flush() {
128
- llmSpan.end({
151
+ llmSpan?.end({
129
152
  attributes: {
130
153
  usage: finalUsage ? {
131
154
  promptTokens: finalUsage.promptTokens,
@@ -145,7 +168,7 @@ var MastraLLMV1 = class extends MastraBase {
145
168
  stream: wrappedStream
146
169
  };
147
170
  } catch (error) {
148
- llmSpan.error({ error });
171
+ llmSpan?.error({ error });
149
172
  throw error;
150
173
  }
151
174
  };
@@ -170,7 +193,7 @@ var MastraLLMV1 = class extends MastraBase {
170
193
  threadId,
171
194
  resourceId,
172
195
  runtimeContext,
173
- agentAISpan,
196
+ tracingContext,
174
197
  ...rest
175
198
  }) {
176
199
  const model = this.#model;
@@ -209,7 +232,7 @@ var MastraLLMV1 = class extends MastraBase {
209
232
  const argsForExecute = {
210
233
  ...rest,
211
234
  messages,
212
- model: this._wrapModel(model, agentAISpan),
235
+ model: this._wrapModel(model, tracingContext),
213
236
  temperature,
214
237
  tools: {
215
238
  ...tools
@@ -295,7 +318,7 @@ var MastraLLMV1 = class extends MastraBase {
295
318
  threadId,
296
319
  resourceId,
297
320
  runtimeContext,
298
- agentAISpan,
321
+ tracingContext,
299
322
  ...rest
300
323
  }) {
301
324
  const model = this.#model;
@@ -310,7 +333,7 @@ var MastraLLMV1 = class extends MastraBase {
310
333
  const argsForExecute = {
311
334
  ...rest,
312
335
  messages,
313
- model: this._wrapModel(model, agentAISpan),
336
+ model: this._wrapModel(model, tracingContext),
314
337
  // @ts-expect-error - output in our implementation can only be object or array
315
338
  output,
316
339
  schema: processedSchema,
@@ -375,7 +398,7 @@ var MastraLLMV1 = class extends MastraBase {
375
398
  threadId,
376
399
  resourceId,
377
400
  runtimeContext,
378
- agentAISpan,
401
+ tracingContext,
379
402
  ...rest
380
403
  }) {
381
404
  const model = this.#model;
@@ -402,7 +425,7 @@ var MastraLLMV1 = class extends MastraBase {
402
425
  }
403
426
  }
404
427
  const argsForExecute = {
405
- model: this._wrapModel(model, agentAISpan),
428
+ model: this._wrapModel(model, tracingContext),
406
429
  temperature,
407
430
  tools: {
408
431
  ...tools
@@ -525,7 +548,7 @@ var MastraLLMV1 = class extends MastraBase {
525
548
  onFinish,
526
549
  structuredOutput,
527
550
  telemetry,
528
- agentAISpan,
551
+ tracingContext,
529
552
  ...rest
530
553
  }) {
531
554
  const model = this.#model;
@@ -542,7 +565,7 @@ var MastraLLMV1 = class extends MastraBase {
542
565
  const processedSchema = this._applySchemaCompat(structuredOutput);
543
566
  const argsForExecute = {
544
567
  ...rest,
545
- model: this._wrapModel(model, agentAISpan),
568
+ model: this._wrapModel(model, tracingContext),
546
569
  onFinish: async (props) => {
547
570
  try {
548
571
  await onFinish?.({ ...props, runId });
@@ -691,5 +714,5 @@ var MastraLLMV1 = class extends MastraBase {
691
714
  };
692
715
 
693
716
  export { MastraLLMV1 };
694
- //# sourceMappingURL=chunk-5TFCIXWE.js.map
695
- //# sourceMappingURL=chunk-5TFCIXWE.js.map
717
+ //# sourceMappingURL=chunk-CKM2ESZF.js.map
718
+ //# sourceMappingURL=chunk-CKM2ESZF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/llm/model/model.ts"],"names":[],"mappings":"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","file":"chunk-CKM2ESZF.js","sourcesContent":["import type { LanguageModelV1FinishReason } from '@ai-sdk/provider';\nimport {\n AnthropicSchemaCompatLayer,\n applyCompatLayer,\n DeepSeekSchemaCompatLayer,\n GoogleSchemaCompatLayer,\n MetaSchemaCompatLayer,\n OpenAIReasoningSchemaCompatLayer,\n OpenAISchemaCompatLayer,\n} from '@mastra/schema-compat';\nimport type { CoreMessage, LanguageModel, Schema, StreamObjectOnFinishCallback, StreamTextOnFinishCallback } from 'ai';\nimport { generateObject, generateText, jsonSchema, Output, streamObject, streamText } from 'ai';\nimport type { JSONSchema7 } from 'json-schema';\nimport type { ZodSchema } from 'zod';\nimport { z } from 'zod';\n\nimport { zodToJsonSchema } from 'zod-to-json-schema';\nimport type { MastraPrimitives } from '../../action';\nimport { AISpanType } from '../../ai-tracing';\nimport type { AnyAISpan, TracingContext } from '../../ai-tracing';\nimport { MastraBase } from '../../base';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../../error';\nimport type { Mastra } from '../../mastra';\nimport { delay, isZodType } from '../../utils';\n\nimport type {\n GenerateObjectWithMessagesArgs,\n GenerateTextResult,\n GenerateObjectResult,\n GenerateTextWithMessagesArgs,\n OriginalGenerateTextOptions,\n ToolSet,\n GenerateReturn,\n OriginalGenerateObjectOptions,\n StreamTextWithMessagesArgs,\n StreamTextResult,\n OriginalStreamTextOptions,\n StreamObjectWithMessagesArgs,\n OriginalStreamObjectOptions,\n StreamObjectResult,\n StreamReturn,\n} from './base.types';\nimport type { inferOutput } from './shared.types';\n\nexport class MastraLLMV1 extends MastraBase {\n #model: LanguageModel;\n #mastra?: Mastra;\n\n constructor({ model, mastra }: { model: LanguageModel; mastra?: Mastra }) {\n super({ name: 'aisdk' });\n\n this.#model = model;\n\n if (mastra) {\n this.#mastra = mastra;\n if (mastra.getLogger()) {\n this.__setLogger(this.#mastra.getLogger());\n }\n }\n }\n\n __registerPrimitives(p: MastraPrimitives) {\n if (p.telemetry) {\n this.__setTelemetry(p.telemetry);\n }\n\n if (p.logger) {\n this.__setLogger(p.logger);\n }\n }\n\n __registerMastra(p: Mastra) {\n this.#mastra = p;\n }\n\n getProvider() {\n return this.#model.provider;\n }\n\n getModelId() {\n return this.#model.modelId;\n }\n\n getModel() {\n return this.#model;\n }\n\n private _applySchemaCompat(schema: ZodSchema | JSONSchema7): Schema {\n const model = this.#model;\n\n const schemaCompatLayers = [];\n\n if (model) {\n const modelInfo = {\n modelId: model.modelId,\n supportsStructuredOutputs: model.supportsStructuredOutputs ?? false,\n provider: model.provider,\n };\n schemaCompatLayers.push(\n new OpenAIReasoningSchemaCompatLayer(modelInfo),\n new OpenAISchemaCompatLayer(modelInfo),\n new GoogleSchemaCompatLayer(modelInfo),\n new AnthropicSchemaCompatLayer(modelInfo),\n new DeepSeekSchemaCompatLayer(modelInfo),\n new MetaSchemaCompatLayer(modelInfo),\n );\n }\n\n return applyCompatLayer({\n schema: schema as any,\n compatLayers: schemaCompatLayers,\n mode: 'aiSdkSchema',\n });\n }\n\n private _startAISpan(params: {\n model: LanguageModel;\n tracingContext: TracingContext;\n name: string;\n streaming: boolean;\n options: any;\n }): AnyAISpan | undefined {\n const { model, tracingContext, name, streaming, options } = params;\n return tracingContext.currentSpan?.createChildSpan({\n name,\n type: AISpanType.LLM_GENERATION,\n input: options.prompt,\n attributes: {\n model: model.modelId,\n provider: model.provider,\n parameters: {\n temperature: options.temperature,\n maxTokens: options.maxTokens,\n topP: options.topP,\n frequencyPenalty: options.frequencyPenalty,\n presencePenalty: options.presencePenalty,\n stop: options.stop,\n },\n streaming,\n },\n });\n }\n\n private _wrapModel(model: LanguageModel, tracingContext: TracingContext): LanguageModel {\n if (!tracingContext.currentSpan) {\n return model;\n }\n\n const wrappedDoGenerate = async (options: any) => {\n const llmSpan = this._startAISpan({\n model,\n tracingContext,\n name: `llm generate: '${model.modelId}'`,\n streaming: false,\n options,\n });\n\n try {\n const result = await model.doGenerate(options);\n\n llmSpan?.end({\n output: result.text,\n attributes: {\n usage: result.usage\n ? {\n promptTokens: result.usage.promptTokens,\n completionTokens: result.usage.completionTokens,\n }\n : undefined,\n },\n });\n return result;\n } catch (error) {\n llmSpan?.error({ error: error as Error });\n throw error;\n }\n };\n\n const wrappedDoStream = async (options: any) => {\n const llmSpan = this._startAISpan({\n model,\n tracingContext,\n name: `llm stream: '${model.modelId}'`,\n streaming: true,\n options,\n });\n\n try {\n const result = await model.doStream(options);\n\n // Create a wrapped stream that tracks the final result\n const originalStream = result.stream;\n let finishReason: LanguageModelV1FinishReason;\n let finalUsage: any = null;\n\n const wrappedStream = originalStream.pipeThrough(\n new TransformStream({\n // this gets called on each chunk output\n transform(chunk, controller) {\n // Create event spans for text chunks\n if (chunk.type === 'text-delta') {\n llmSpan?.createEventSpan({\n type: AISpanType.LLM_CHUNK,\n name: `llm chunk: ${chunk.type}`,\n output: chunk.textDelta,\n attributes: {\n chunkType: chunk.type,\n },\n });\n }\n\n //TODO: Figure out how to get the final usage\n // if (chunk.type === 'response-metadata' && chunk.usage) {\n // finalUsage = chunk.usage;\n // }\n if (chunk.type === 'finish') {\n finishReason = chunk.finishReason;\n finalUsage = chunk.usage;\n }\n controller.enqueue(chunk);\n },\n // this gets called at the end of the stream\n flush() {\n llmSpan?.end({\n attributes: {\n usage: finalUsage\n ? {\n promptTokens: finalUsage.promptTokens,\n completionTokens: finalUsage.completionTokens,\n totalTokens: finalUsage.totalTokens,\n }\n : undefined,\n },\n metadata: {\n finishReason,\n },\n });\n },\n }),\n );\n\n return {\n ...result,\n stream: wrappedStream,\n };\n } catch (error) {\n llmSpan?.error({ error: error as Error });\n throw error;\n }\n };\n\n // Create a proper proxy to preserve all model properties including getters/setters\n return new Proxy(model, {\n get(target, prop) {\n if (prop === 'doGenerate') return wrappedDoGenerate;\n if (prop === 'doStream') return wrappedDoStream;\n return target[prop as keyof typeof target];\n },\n });\n }\n\n async __text<Tools extends ToolSet, Z extends ZodSchema | JSONSchema7 | undefined>({\n runId,\n messages,\n maxSteps = 5,\n tools = {},\n temperature,\n toolChoice = 'auto',\n onStepFinish,\n experimental_output,\n telemetry,\n threadId,\n resourceId,\n runtimeContext,\n tracingContext,\n ...rest\n }: GenerateTextWithMessagesArgs<Tools, Z>): Promise<GenerateTextResult<Tools, Z>> {\n const model = this.#model;\n\n this.logger.debug(`[LLM] - Generating text`, {\n runId,\n messages,\n maxSteps,\n threadId,\n resourceId,\n tools: Object.keys(tools),\n });\n\n let schema: z.ZodType<inferOutput<Z>> | Schema<inferOutput<Z>> | undefined = undefined;\n\n if (experimental_output) {\n this.logger.debug('[LLM] - Using experimental output', {\n runId,\n });\n\n if (isZodType(experimental_output)) {\n schema = experimental_output as z.ZodType<inferOutput<Z>>;\n if (schema instanceof z.ZodArray) {\n schema = schema._def.type as z.ZodType<inferOutput<Z>>;\n }\n\n let jsonSchemaToUse;\n if ('toJSONSchema' in z) {\n // Use dynamic property access to avoid import errors in Zod v3\n // @ts-ignore\n jsonSchemaToUse = (z as any)['toJSONSchema'](schema) as JSONSchema7;\n } else {\n jsonSchemaToUse = zodToJsonSchema(schema, {\n $refStrategy: 'none',\n target: 'jsonSchema7',\n }) as JSONSchema7;\n }\n\n schema = jsonSchema(jsonSchemaToUse) as Schema<inferOutput<Z>>;\n } else {\n schema = jsonSchema(experimental_output as JSONSchema7) as Schema<inferOutput<Z>>;\n }\n }\n\n const argsForExecute: OriginalGenerateTextOptions<Tools, Z> = {\n ...rest,\n messages,\n model: this._wrapModel(model, tracingContext),\n temperature,\n tools: {\n ...(tools as Tools),\n },\n toolChoice,\n maxSteps,\n onStepFinish: async props => {\n try {\n await onStepFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_TEXT_ON_STEP_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n finishReason: props?.finishReason,\n toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n throw mastraError;\n }\n\n this.logger.debug('[LLM] - Text Step Change:', {\n text: props?.text,\n toolCalls: props?.toolCalls,\n toolResults: props?.toolResults,\n finishReason: props?.finishReason,\n usage: props?.usage,\n runId,\n });\n\n if (\n props?.response?.headers?.['x-ratelimit-remaining-tokens'] &&\n parseInt(props?.response?.headers?.['x-ratelimit-remaining-tokens'], 10) < 2000\n ) {\n this.logger.warn('Rate limit approaching, waiting 10 seconds', { runId });\n await delay(10 * 1000);\n }\n },\n experimental_telemetry: {\n ...this.experimental_telemetry,\n ...telemetry,\n },\n experimental_output: schema\n ? Output.object({\n schema,\n })\n : undefined,\n };\n\n try {\n const result: GenerateTextResult<Tools, Z> = await generateText(argsForExecute);\n\n if (schema && result.finishReason === 'stop') {\n result.object = (result as any).experimental_output;\n }\n\n return result;\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_GENERATE_TEXT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n throw mastraError;\n }\n }\n\n async __textObject<Z extends ZodSchema | JSONSchema7>({\n messages,\n structuredOutput,\n runId,\n telemetry,\n threadId,\n resourceId,\n runtimeContext,\n tracingContext,\n ...rest\n }: GenerateObjectWithMessagesArgs<Z>): Promise<GenerateObjectResult<Z>> {\n const model = this.#model;\n\n this.logger.debug(`[LLM] - Generating a text object`, { runId });\n\n try {\n let output: 'object' | 'array' = 'object';\n if (structuredOutput instanceof z.ZodArray) {\n output = 'array';\n structuredOutput = structuredOutput._def.type;\n }\n\n const processedSchema = this._applySchemaCompat(structuredOutput!);\n\n const argsForExecute: OriginalGenerateObjectOptions<Z> = {\n ...rest,\n messages,\n model: this._wrapModel(model, tracingContext),\n // @ts-expect-error - output in our implementation can only be object or array\n output,\n schema: processedSchema as Schema<Z>,\n experimental_telemetry: {\n ...this.experimental_telemetry,\n ...telemetry,\n },\n };\n\n try {\n // @ts-expect-error - output in our implementation can only be object or array\n return await generateObject(argsForExecute);\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_GENERATE_OBJECT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n throw mastraError;\n }\n } catch (e: unknown) {\n if (e instanceof MastraError) {\n throw e;\n }\n\n const mastraError = new MastraError(\n {\n id: 'LLM_GENERATE_OBJECT_AI_SDK_SCHEMA_CONVERSION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n throw mastraError;\n }\n }\n\n __stream<Tools extends ToolSet, Z extends ZodSchema | JSONSchema7 | undefined = undefined>({\n messages,\n onStepFinish,\n onFinish,\n maxSteps = 5,\n tools = {},\n runId,\n temperature,\n toolChoice = 'auto',\n experimental_output,\n telemetry,\n threadId,\n resourceId,\n runtimeContext,\n tracingContext,\n ...rest\n }: StreamTextWithMessagesArgs<Tools, Z>): StreamTextResult<Tools, Z> {\n const model = this.#model;\n this.logger.debug(`[LLM] - Streaming text`, {\n runId,\n threadId,\n resourceId,\n messages,\n maxSteps,\n tools: Object.keys(tools || {}),\n });\n\n let schema: z.ZodType<Z> | Schema<Z> | undefined;\n if (experimental_output) {\n this.logger.debug('[LLM] - Using experimental output', {\n runId,\n });\n if (typeof (experimental_output as any).parse === 'function') {\n schema = experimental_output as z.ZodType<Z>;\n if (schema instanceof z.ZodArray) {\n schema = schema._def.type as z.ZodType<Z>;\n }\n } else {\n schema = jsonSchema(experimental_output as JSONSchema7) as Schema<Z>;\n }\n }\n\n const argsForExecute: OriginalStreamTextOptions<Tools, Z> = {\n model: this._wrapModel(model, tracingContext),\n temperature,\n tools: {\n ...(tools as Tools),\n },\n maxSteps,\n toolChoice,\n onStepFinish: async props => {\n try {\n await onStepFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_ON_STEP_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n finishReason: props?.finishReason,\n toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n this.logger.trackException(mastraError);\n throw mastraError;\n }\n\n this.logger.debug('[LLM] - Stream Step Change:', {\n text: props?.text,\n toolCalls: props?.toolCalls,\n toolResults: props?.toolResults,\n finishReason: props?.finishReason,\n usage: props?.usage,\n runId,\n });\n\n if (\n props?.response?.headers?.['x-ratelimit-remaining-tokens'] &&\n parseInt(props?.response?.headers?.['x-ratelimit-remaining-tokens'], 10) < 2000\n ) {\n this.logger.warn('Rate limit approaching, waiting 10 seconds', { runId });\n await delay(10 * 1000);\n }\n },\n onFinish: async props => {\n try {\n await onFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_ON_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n finishReason: props?.finishReason,\n toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n this.logger.trackException(mastraError);\n throw mastraError;\n }\n\n this.logger.debug('[LLM] - Stream Finished:', {\n text: props?.text,\n toolCalls: props?.toolCalls,\n toolResults: props?.toolResults,\n finishReason: props?.finishReason,\n usage: props?.usage,\n runId,\n threadId,\n resourceId,\n });\n },\n ...rest,\n messages,\n experimental_telemetry: {\n ...this.experimental_telemetry,\n ...telemetry,\n },\n experimental_output: schema\n ? (Output.object({\n schema,\n }) as any)\n : undefined,\n };\n\n try {\n return streamText(argsForExecute);\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_TEXT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n throw mastraError;\n }\n }\n\n __streamObject<T extends ZodSchema | JSONSchema7>({\n messages,\n runId,\n runtimeContext,\n threadId,\n resourceId,\n onFinish,\n structuredOutput,\n telemetry,\n tracingContext,\n ...rest\n }: StreamObjectWithMessagesArgs<T>): StreamObjectResult<T> {\n const model = this.#model;\n this.logger.debug(`[LLM] - Streaming structured output`, {\n runId,\n messages,\n });\n\n try {\n let output: 'object' | 'array' = 'object';\n if (structuredOutput instanceof z.ZodArray) {\n output = 'array';\n structuredOutput = structuredOutput._def.type;\n }\n\n const processedSchema = this._applySchemaCompat(structuredOutput!);\n\n const argsForExecute: OriginalStreamObjectOptions<T> = {\n ...rest,\n model: this._wrapModel(model, tracingContext),\n onFinish: async props => {\n try {\n // @ts-expect-error - onFinish is not inferred correctly\n await onFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_OBJECT_ON_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n toolCalls: '',\n toolResults: '',\n finishReason: '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n this.logger.trackException(mastraError);\n throw mastraError;\n }\n\n this.logger.debug('[LLM] - Object Stream Finished:', {\n usage: props?.usage,\n runId,\n threadId,\n resourceId,\n });\n },\n messages,\n // @ts-expect-error - output in our implementation can only be object or array\n output,\n experimental_telemetry: {\n ...this.experimental_telemetry,\n ...telemetry,\n },\n schema: processedSchema as Schema<inferOutput<T>>,\n };\n\n try {\n return streamObject(argsForExecute as any);\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_OBJECT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n throw mastraError;\n }\n } catch (e: unknown) {\n if (e instanceof MastraError) {\n throw e;\n }\n\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_OBJECT_AI_SDK_SCHEMA_CONVERSION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n throw mastraError;\n }\n }\n\n convertToMessages(messages: string | string[] | CoreMessage[]): CoreMessage[] {\n if (Array.isArray(messages)) {\n return messages.map(m => {\n if (typeof m === 'string') {\n return {\n role: 'user',\n content: m,\n };\n }\n return m;\n });\n }\n\n return [\n {\n role: 'user',\n content: messages,\n },\n ];\n }\n\n async generate<\n Output extends ZodSchema | JSONSchema7 | undefined = undefined,\n StructuredOutput extends ZodSchema | JSONSchema7 | undefined = undefined,\n Tools extends ToolSet = ToolSet,\n >(\n messages: string | string[] | CoreMessage[],\n {\n output,\n ...rest\n }: Omit<\n Output extends undefined\n ? GenerateTextWithMessagesArgs<Tools, StructuredOutput>\n : Omit<GenerateObjectWithMessagesArgs<NonNullable<Output>>, 'structuredOutput' | 'output'>,\n 'messages'\n > & { output?: Output },\n ): Promise<GenerateReturn<Tools, Output, StructuredOutput>> {\n const msgs = this.convertToMessages(messages);\n\n if (!output) {\n const { maxSteps, onStepFinish, ...textOptions } = rest as Omit<\n GenerateTextWithMessagesArgs<Tools, StructuredOutput>,\n 'messages'\n >;\n return (await this.__text<Tools, StructuredOutput>({\n messages: msgs,\n maxSteps,\n onStepFinish,\n ...textOptions,\n })) as unknown as GenerateReturn<Tools, Output, StructuredOutput>;\n }\n\n return (await this.__textObject({\n messages: msgs,\n structuredOutput: output as NonNullable<Output>,\n ...rest,\n })) as unknown as GenerateReturn<Tools, Output, StructuredOutput>;\n }\n\n stream<\n Output extends ZodSchema | JSONSchema7 | undefined = undefined,\n StructuredOutput extends ZodSchema | JSONSchema7 | undefined = undefined,\n Tools extends ToolSet = ToolSet,\n >(\n messages: string | string[] | CoreMessage[],\n {\n maxSteps = 5,\n output,\n onFinish,\n ...rest\n }: Omit<\n Output extends undefined\n ? StreamTextWithMessagesArgs<Tools, StructuredOutput>\n : Omit<StreamObjectWithMessagesArgs<NonNullable<Output>>, 'structuredOutput' | 'output'> & { maxSteps?: never },\n 'messages'\n > & { output?: Output },\n ): StreamReturn<Tools, Output, StructuredOutput> {\n const msgs = this.convertToMessages(messages);\n\n if (!output) {\n return this.__stream({\n messages: msgs,\n maxSteps,\n onFinish: onFinish as StreamTextOnFinishCallback<Tools> | undefined,\n ...rest,\n }) as unknown as StreamReturn<Tools, Output, StructuredOutput>;\n }\n\n return this.__streamObject({\n messages: msgs,\n structuredOutput: output as NonNullable<Output>,\n onFinish: onFinish as StreamObjectOnFinishCallback<inferOutput<Output>> | undefined,\n ...rest,\n }) as unknown as StreamReturn<Tools, Output, StructuredOutput>;\n }\n}\n"]}
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkD2GH2HAK_cjs = require('./chunk-D2GH2HAK.cjs');
3
+ var chunkW5CF7DLB_cjs = require('./chunk-W5CF7DLB.cjs');
4
4
  var chunkV3VLOOSW_cjs = require('./chunk-V3VLOOSW.cjs');
5
5
  var chunk4D4KB75Y_cjs = require('./chunk-4D4KB75Y.cjs');
6
6
  var chunkZOU4K5MI_cjs = require('./chunk-ZOU4K5MI.cjs');
7
7
  var chunkTSNDVBUU_cjs = require('./chunk-TSNDVBUU.cjs');
8
- var chunk4DKPMUAC_cjs = require('./chunk-4DKPMUAC.cjs');
8
+ var chunkI7OAONIW_cjs = require('./chunk-I7OAONIW.cjs');
9
9
  var chunk6TEQIYXV_cjs = require('./chunk-6TEQIYXV.cjs');
10
10
  var chunkC73WLCY3_cjs = require('./chunk-C73WLCY3.cjs');
11
11
  var chunkV5WKCX3G_cjs = require('./chunk-V5WKCX3G.cjs');
@@ -50,19 +50,8 @@ function createOnScorerHook(mastra) {
50
50
  const entityId = hookData.entity.id;
51
51
  const entityType = hookData.entityType;
52
52
  const scorer = hookData.scorer;
53
- let scorerToUse;
54
53
  try {
55
- if (entityType === "AGENT") {
56
- const agent = mastra.getAgentById(entityId);
57
- const scorers = await agent.getScorers();
58
- scorerToUse = scorers[scorer.id];
59
- } else if (entityType === "WORKFLOW") {
60
- const workflow = mastra.getWorkflowById(entityId);
61
- const scorers = await workflow.getScorers();
62
- scorerToUse = scorers[scorer.id];
63
- } else {
64
- return;
65
- }
54
+ const scorerToUse = await findScorer(mastra, entityId, entityType, scorer.id);
66
55
  if (!scorerToUse) {
67
56
  throw new chunkC73WLCY3_cjs.MastraError({
68
57
  id: "MASTRA_SCORER_NOT_FOUND",
@@ -113,6 +102,23 @@ function createOnScorerHook(mastra) {
113
102
  }
114
103
  };
115
104
  }
105
+ async function findScorer(mastra, entityId, entityType, scorerId) {
106
+ let scorerToUse;
107
+ if (entityType === "AGENT") {
108
+ const scorers = await mastra.getAgentById(entityId).getScorers();
109
+ scorerToUse = scorers[scorerId];
110
+ } else if (entityType === "WORKFLOW") {
111
+ const scorers = await mastra.getWorkflowById(entityId).getScorers();
112
+ scorerToUse = scorers[scorerId];
113
+ }
114
+ if (!scorerToUse) {
115
+ const mastraRegisteredScorer = mastra.getScorerByName(scorerId);
116
+ scorerToUse = mastraRegisteredScorer ? {
117
+ scorer: mastraRegisteredScorer
118
+ } : void 0;
119
+ }
120
+ return scorerToUse;
121
+ }
116
122
 
117
123
  // src/mastra/index.ts
118
124
  var _Mastra_decorators, _init;
@@ -134,6 +140,7 @@ exports.Mastra = class Mastra {
134
140
  #memory;
135
141
  #networks;
136
142
  #vnext_networks;
143
+ #scorers;
137
144
  #server;
138
145
  #mcpServers;
139
146
  #bundler;
@@ -208,7 +215,7 @@ exports.Mastra = class Mastra {
208
215
  this.#events[topic] = config?.events?.[topic] ?? [];
209
216
  }
210
217
  }
211
- const workflowEventProcessor = new chunkD2GH2HAK_cjs.WorkflowEventProcessor({
218
+ const workflowEventProcessor = new chunkW5CF7DLB_cjs.WorkflowEventProcessor({
212
219
  mastra: this
213
220
  });
214
221
  const workflowEventCb = async (event, cb) => {
@@ -248,7 +255,7 @@ exports.Mastra = class Mastra {
248
255
  this.#logger?.warn(`Mastra telemetry is enabled, but the required instrumentation file was not loaded. If you are using Mastra outside of the mastra server environment, see: https://mastra.ai/en/docs/observability/tracing#tracing-outside-mastra-server-environment`, `If you are using a custom instrumentation file or want to disable this warning, set the globalThis.___MASTRA_TELEMETRY___ variable to true in your instrumentation file.`);
249
256
  }
250
257
  if (config?.observability) {
251
- chunk4DKPMUAC_cjs.setupAITracing(config.observability);
258
+ chunkI7OAONIW_cjs.setupAITracing(config.observability);
252
259
  }
253
260
  if (this.#telemetry && storage) {
254
261
  this.#storage = this.#telemetry.traceClass(storage, {
@@ -364,6 +371,13 @@ do:
364
371
  this.#vnext_networks[key] = network;
365
372
  });
366
373
  }
374
+ const scorers = {};
375
+ if (config?.scorers) {
376
+ Object.entries(config.scorers).forEach(([key, scorer]) => {
377
+ scorers[key] = scorer;
378
+ });
379
+ }
380
+ this.#scorers = scorers;
367
381
  this.#legacy_workflows = {};
368
382
  if (config?.legacy_workflows) {
369
383
  Object.entries(config.legacy_workflows).forEach(([key, workflow]) => {
@@ -418,7 +432,7 @@ do:
418
432
  * Register this Mastra instance with AI tracing exporters that need it
419
433
  */
420
434
  registerAITracingExporters() {
421
- const allTracingInstances = chunk4DKPMUAC_cjs.getAllAITracing();
435
+ const allTracingInstances = chunkI7OAONIW_cjs.getAllAITracing();
422
436
  allTracingInstances.forEach(tracing => {
423
437
  const exporters = tracing.getExporters();
424
438
  exporters.forEach(exporter => {
@@ -432,7 +446,7 @@ do:
432
446
  * Initialize all AI tracing exporters after registration is complete
433
447
  */
434
448
  initAITracingExporters() {
435
- const allTracingInstances = chunk4DKPMUAC_cjs.getAllAITracing();
449
+ const allTracingInstances = chunkI7OAONIW_cjs.getAllAITracing();
436
450
  allTracingInstances.forEach(tracing => {
437
451
  const exporters = tracing.getExporters();
438
452
  exporters.forEach(exporter => {
@@ -609,6 +623,38 @@ do:
609
623
  }
610
624
  return this.#legacy_workflows;
611
625
  }
626
+ getScorers() {
627
+ return this.#scorers;
628
+ }
629
+ getScorer(key) {
630
+ const scorer = this.#scorers?.[key];
631
+ if (!scorer) {
632
+ const error = new chunkC73WLCY3_cjs.MastraError({
633
+ id: "MASTRA_GET_SCORER_NOT_FOUND",
634
+ domain: "MASTRA" /* MASTRA */,
635
+ category: "USER" /* USER */,
636
+ text: `Scorer with ${String(key)} not found`
637
+ });
638
+ this.#logger?.trackException(error);
639
+ throw error;
640
+ }
641
+ return scorer;
642
+ }
643
+ getScorerByName(name) {
644
+ for (const [_key, value] of Object.entries(this.#scorers ?? {})) {
645
+ if (value.name === name) {
646
+ return value;
647
+ }
648
+ }
649
+ const error = new chunkC73WLCY3_cjs.MastraError({
650
+ id: "MASTRA_GET_SCORER_BY_NAME_NOT_FOUND",
651
+ domain: "MASTRA" /* MASTRA */,
652
+ category: "USER" /* USER */,
653
+ text: `Scorer with name ${String(name)} not found`
654
+ });
655
+ this.#logger?.trackException(error);
656
+ throw error;
657
+ }
612
658
  getWorkflows(props = {}) {
613
659
  if (props.serialized) {
614
660
  return Object.entries(this.#workflows).reduce((acc, [k, v]) => {
@@ -658,7 +704,7 @@ do:
658
704
  this.#mcpServers?.[key]?.__setLogger(this.#logger);
659
705
  });
660
706
  }
661
- const allTracingInstances = chunk4DKPMUAC_cjs.getAllAITracing();
707
+ const allTracingInstances = chunkI7OAONIW_cjs.getAllAITracing();
662
708
  allTracingInstances.forEach(instance => {
663
709
  instance.__setLogger(this.#logger);
664
710
  });
@@ -956,7 +1002,7 @@ do:
956
1002
  * Shutdown Mastra and clean up all resources
957
1003
  */
958
1004
  async shutdown() {
959
- await chunk4DKPMUAC_cjs.shutdownAITracingRegistry();
1005
+ await chunkI7OAONIW_cjs.shutdownAITracingRegistry();
960
1006
  await this.stopEventEngine();
961
1007
  this.#logger?.info("Mastra shutdown completed");
962
1008
  }
@@ -967,5 +1013,5 @@ exports.Mastra = /*@__PURE__*/(_ => {
967
1013
  chunkEBVYYC2Q_cjs.__runInitializers(_init, 1, exports.Mastra);
968
1014
  return exports.Mastra;
969
1015
  })();
970
- //# sourceMappingURL=chunk-AYFN43FB.cjs.map
971
- //# sourceMappingURL=chunk-AYFN43FB.cjs.map
1016
+ //# sourceMappingURL=chunk-DZADAEAF.cjs.map
1017
+ //# sourceMappingURL=chunk-DZADAEAF.cjs.map