@mastra/core 0.16.1-alpha.1 → 0.16.1-alpha.2

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 (76) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/agent/agent.types.d.ts +10 -2
  3. package/dist/agent/agent.types.d.ts.map +1 -1
  4. package/dist/agent/index.cjs +8 -8
  5. package/dist/agent/index.d.ts.map +1 -1
  6. package/dist/agent/index.js +1 -1
  7. package/dist/agent/input-processor/index.cjs +6 -6
  8. package/dist/agent/input-processor/index.js +1 -1
  9. package/dist/agent/test-utils.d.ts +3 -0
  10. package/dist/agent/test-utils.d.ts.map +1 -1
  11. package/dist/{chunk-U3OYPZHX.js → chunk-BIJYFZVF.js} +3 -3
  12. package/dist/{chunk-U3OYPZHX.js.map → chunk-BIJYFZVF.js.map} +1 -1
  13. package/dist/{chunk-OF4TXRIV.js → chunk-HJ2UGNRG.js} +3 -3
  14. package/dist/{chunk-OF4TXRIV.js.map → chunk-HJ2UGNRG.js.map} +1 -1
  15. package/dist/{chunk-GJKJXY3K.js → chunk-IU367D3M.js} +3 -3
  16. package/dist/{chunk-GJKJXY3K.js.map → chunk-IU367D3M.js.map} +1 -1
  17. package/dist/{chunk-LZWM7RVY.cjs → chunk-ONGPJVTY.cjs} +7 -7
  18. package/dist/{chunk-LZWM7RVY.cjs.map → chunk-ONGPJVTY.cjs.map} +1 -1
  19. package/dist/{chunk-2PWFUEQA.cjs → chunk-PHS6DKEV.cjs} +4 -4
  20. package/dist/{chunk-2PWFUEQA.cjs.map → chunk-PHS6DKEV.cjs.map} +1 -1
  21. package/dist/{chunk-DYLYA6HQ.cjs → chunk-R467FTA7.cjs} +6 -6
  22. package/dist/{chunk-DYLYA6HQ.cjs.map → chunk-R467FTA7.cjs.map} +1 -1
  23. package/dist/{chunk-U2RCB3FQ.js → chunk-TOCMMZ2Y.js} +4 -4
  24. package/dist/{chunk-U2RCB3FQ.js.map → chunk-TOCMMZ2Y.js.map} +1 -1
  25. package/dist/{chunk-C3R2Q3NN.cjs → chunk-WJXZMK43.cjs} +72 -51
  26. package/dist/chunk-WJXZMK43.cjs.map +1 -0
  27. package/dist/{chunk-WGX5V6DE.cjs → chunk-XS5PJKTF.cjs} +7 -7
  28. package/dist/{chunk-WGX5V6DE.cjs.map → chunk-XS5PJKTF.cjs.map} +1 -1
  29. package/dist/{chunk-UM4XJM3Y.js → chunk-ZGSS7RCP.js} +72 -51
  30. package/dist/chunk-ZGSS7RCP.js.map +1 -0
  31. package/dist/index.cjs +17 -17
  32. package/dist/index.js +4 -4
  33. package/dist/llm/model/model.loop.d.ts +1 -1
  34. package/dist/llm/model/model.loop.d.ts.map +1 -1
  35. package/dist/llm/model/model.loop.types.d.ts +4 -2
  36. package/dist/llm/model/model.loop.types.d.ts.map +1 -1
  37. package/dist/loop/index.cjs +2 -2
  38. package/dist/loop/index.js +1 -1
  39. package/dist/loop/test-utils/fullStream.d.ts.map +1 -1
  40. package/dist/loop/test-utils/generateText.d.ts.map +1 -1
  41. package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
  42. package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
  43. package/dist/loop/test-utils/tools.d.ts.map +1 -1
  44. package/dist/loop/test-utils/utils.d.ts +1 -0
  45. package/dist/loop/test-utils/utils.d.ts.map +1 -1
  46. package/dist/loop/types.d.ts +0 -1
  47. package/dist/loop/types.d.ts.map +1 -1
  48. package/dist/loop/workflow/outer-llm-step.d.ts.map +1 -1
  49. package/dist/loop/workflow/schema.d.ts +12 -0
  50. package/dist/loop/workflow/schema.d.ts.map +1 -1
  51. package/dist/loop/workflow/tool-call-step.d.ts +12 -0
  52. package/dist/loop/workflow/tool-call-step.d.ts.map +1 -1
  53. package/dist/mastra/index.cjs +2 -2
  54. package/dist/mastra/index.js +1 -1
  55. package/dist/network/index.cjs +2 -2
  56. package/dist/network/index.js +1 -1
  57. package/dist/network/vNext/index.cjs +12 -12
  58. package/dist/network/vNext/index.js +1 -1
  59. package/dist/processors/index.cjs +8 -8
  60. package/dist/processors/index.js +2 -2
  61. package/dist/relevance/index.cjs +4 -4
  62. package/dist/relevance/index.js +1 -1
  63. package/dist/scores/index.cjs +8 -8
  64. package/dist/scores/index.js +1 -1
  65. package/dist/stream/base/output.d.ts.map +1 -1
  66. package/dist/stream/index.cjs +3 -3
  67. package/dist/stream/index.js +1 -1
  68. package/dist/workflows/evented/index.cjs +10 -10
  69. package/dist/workflows/evented/index.js +1 -1
  70. package/dist/workflows/index.cjs +10 -10
  71. package/dist/workflows/index.js +1 -1
  72. package/dist/workflows/legacy/index.cjs +22 -22
  73. package/dist/workflows/legacy/index.js +1 -1
  74. package/package.json +1 -1
  75. package/dist/chunk-C3R2Q3NN.cjs.map +0 -1
  76. package/dist/chunk-UM4XJM3Y.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/events/event-emitter.ts","../src/mastra/hooks.ts","../src/mastra/index.ts"],"names":[],"mappings":"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","file":"chunk-U2RCB3FQ.js","sourcesContent":["import EventEmitter from 'events';\nimport { PubSub } from './pubsub';\nimport type { Event } from './types';\n\nexport class EventEmitterPubSub extends PubSub {\n private emitter: EventEmitter;\n\n constructor() {\n super();\n this.emitter = new EventEmitter();\n }\n\n async publish(topic: string, event: Omit<Event, 'id' | 'createdAt'>): Promise<void> {\n const id = crypto.randomUUID();\n const createdAt = new Date();\n this.emitter.emit(topic, {\n ...event,\n id,\n createdAt,\n });\n }\n\n async subscribe(topic: string, cb: (event: Event, ack?: () => Promise<void>) => void): Promise<void> {\n this.emitter.on(topic, cb);\n }\n\n async unsubscribe(topic: string, cb: (event: Event, ack?: () => Promise<void>) => void): Promise<void> {\n this.emitter.off(topic, cb);\n }\n\n async flush(): Promise<void> {\n // no-op\n }\n}\n","import type { Mastra } from '..';\nimport { ErrorCategory, ErrorDomain, MastraError } from '../error';\nimport { saveScorePayloadSchema } from '../scores';\nimport type { ScoringHookInput } from '../scores/types';\nimport type { MastraStorage } from '../storage';\n\nexport function createOnScorerHook(mastra: Mastra) {\n return async (hookData: ScoringHookInput) => {\n const storage = mastra.getStorage();\n\n if (!storage) {\n mastra.getLogger()?.warn('Storage not found, skipping score validation and saving');\n return;\n }\n\n const entityId = hookData.entity.id;\n const entityType = hookData.entityType;\n const scorer = hookData.scorer;\n try {\n const scorerToUse = await findScorer(mastra, entityId, entityType, scorer.id);\n\n if (!scorerToUse) {\n throw new MastraError({\n id: 'MASTRA_SCORER_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Scorer with ID ${hookData.scorer.id} not found`,\n });\n }\n\n let input = hookData.input;\n let output = hookData.output;\n\n if (entityType !== 'AGENT') {\n output = { object: hookData.output };\n }\n\n const { structuredOutput, ...rest } = hookData;\n\n const runResult = await scorerToUse.scorer.run({\n ...rest,\n input,\n output,\n });\n\n const payload = {\n ...rest,\n ...runResult,\n entityId,\n scorerId: hookData.scorer.id,\n metadata: {\n structuredOutput: !!structuredOutput,\n },\n };\n\n await validateAndSaveScore(storage, payload);\n } catch (error) {\n const mastraError = new MastraError(\n {\n id: 'MASTRA_SCORER_FAILED_TO_RUN_HOOK',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.USER,\n details: {\n scorerId: scorer.id,\n entityId,\n entityType,\n },\n },\n error,\n );\n\n mastra.getLogger()?.trackException(mastraError);\n mastra.getLogger()?.error(mastraError.toString());\n }\n };\n}\n\nexport async function validateAndSaveScore(storage: MastraStorage, payload: unknown) {\n const payloadToSave = saveScorePayloadSchema.parse(payload);\n await storage?.saveScore(payloadToSave);\n}\n\nasync function findScorer(mastra: Mastra, entityId: string, entityType: string, scorerId: string) {\n let scorerToUse;\n if (entityType === 'AGENT') {\n const scorers = await mastra.getAgentById(entityId).getScorers();\n scorerToUse = scorers[scorerId];\n } else if (entityType === 'WORKFLOW') {\n const scorers = await mastra.getWorkflowById(entityId).getScorers();\n scorerToUse = scorers[scorerId];\n }\n\n // Fallback to mastra-registered scorer\n if (!scorerToUse) {\n const mastraRegisteredScorer = mastra.getScorerByName(scorerId);\n scorerToUse = mastraRegisteredScorer ? { scorer: mastraRegisteredScorer } : undefined;\n }\n\n return scorerToUse;\n}\n","import type { Agent } from '../agent';\nimport { getAllAITracing, setupAITracing, shutdownAITracingRegistry } from '../ai-tracing';\nimport type { AITracingConfig } from '../ai-tracing';\nimport type { BundlerConfig } from '../bundler/types';\nimport type { MastraDeployer } from '../deployer';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../error';\nimport { EventEmitterPubSub } from '../events/event-emitter';\nimport type { PubSub } from '../events/pubsub';\nimport type { Event } from '../events/types';\nimport { AvailableHooks, registerHook } from '../hooks';\nimport { LogLevel, noopLogger, ConsoleLogger } from '../logger';\nimport type { IMastraLogger } from '../logger';\nimport type { MCPServerBase } from '../mcp';\nimport type { MastraMemory } from '../memory/memory';\nimport type { AgentNetwork } from '../network';\nimport type { NewAgentNetwork } from '../network/vNext';\nimport type { MastraScorer } from '../scores';\nimport type { Middleware, ServerConfig } from '../server/types';\nimport type { MastraStorage } from '../storage';\nimport { augmentWithInit } from '../storage/storageWithInit';\nimport { InstrumentClass, Telemetry } from '../telemetry';\nimport type { OtelConfig } from '../telemetry';\nimport type { MastraTTS } from '../tts';\nimport type { MastraIdGenerator } from '../types';\nimport type { MastraVector } from '../vector';\nimport type { Workflow } from '../workflows';\nimport { WorkflowEventProcessor } from '../workflows/evented/workflow-event-processor';\nimport type { LegacyWorkflow } from '../workflows/legacy';\nimport { createOnScorerHook } from './hooks';\n\nexport interface Config<\n TAgents extends Record<string, Agent<any>> = Record<string, Agent<any>>,\n TLegacyWorkflows extends Record<string, LegacyWorkflow> = Record<string, LegacyWorkflow>,\n TWorkflows extends Record<string, Workflow> = Record<string, Workflow>,\n TVectors extends Record<string, MastraVector> = Record<string, MastraVector>,\n TTTS extends Record<string, MastraTTS> = Record<string, MastraTTS>,\n TLogger extends IMastraLogger = IMastraLogger,\n TNetworks extends Record<string, AgentNetwork> = Record<string, AgentNetwork>,\n TVNextNetworks extends Record<string, NewAgentNetwork> = Record<string, NewAgentNetwork>,\n TMCPServers extends Record<string, MCPServerBase> = Record<string, MCPServerBase>,\n TScorers extends Record<string, MastraScorer<any, any, any, any>> = Record<string, MastraScorer<any, any, any, any>>,\n> {\n agents?: TAgents;\n networks?: TNetworks;\n vnext_networks?: TVNextNetworks;\n storage?: MastraStorage;\n vectors?: TVectors;\n logger?: TLogger | false;\n legacy_workflows?: TLegacyWorkflows;\n workflows?: TWorkflows;\n tts?: TTTS;\n telemetry?: OtelConfig;\n observability?: AITracingConfig;\n idGenerator?: MastraIdGenerator;\n deployer?: MastraDeployer;\n server?: ServerConfig;\n mcpServers?: TMCPServers;\n bundler?: BundlerConfig;\n pubsub?: PubSub;\n scorers?: TScorers;\n\n /**\n * Server middleware functions to be applied to API routes\n * Each middleware can specify a path pattern (defaults to '/api/*')\n * @deprecated use server.middleware instead\n */\n serverMiddleware?: Array<{\n handler: (c: any, next: () => Promise<void>) => Promise<Response | void>;\n path?: string;\n }>;\n\n // @deprecated add memory to your Agent directly instead\n memory?: never;\n\n events?: {\n [topic: string]: (\n event: Event,\n cb?: () => Promise<void>,\n ) => Promise<void> | ((event: Event, cb?: () => Promise<void>) => Promise<void>)[];\n };\n}\n\n@InstrumentClass({\n prefix: 'mastra',\n excludeMethods: ['getLogger', 'getTelemetry'],\n})\nexport class Mastra<\n TAgents extends Record<string, Agent<any>> = Record<string, Agent<any>>,\n TLegacyWorkflows extends Record<string, LegacyWorkflow> = Record<string, LegacyWorkflow>,\n TWorkflows extends Record<string, Workflow> = Record<string, Workflow>,\n TVectors extends Record<string, MastraVector> = Record<string, MastraVector>,\n TTTS extends Record<string, MastraTTS> = Record<string, MastraTTS>,\n TLogger extends IMastraLogger = IMastraLogger,\n TNetworks extends Record<string, AgentNetwork> = Record<string, AgentNetwork>,\n TVNextNetworks extends Record<string, NewAgentNetwork> = Record<string, NewAgentNetwork>,\n TMCPServers extends Record<string, MCPServerBase> = Record<string, MCPServerBase>,\n TScorers extends Record<string, MastraScorer<any, any, any, any>> = Record<string, MastraScorer<any, any, any, any>>,\n> {\n #vectors?: TVectors;\n #agents: TAgents;\n #logger: TLogger;\n #legacy_workflows: TLegacyWorkflows;\n #workflows: TWorkflows;\n #tts?: TTTS;\n #deployer?: MastraDeployer;\n #serverMiddleware: Array<{\n handler: (c: any, next: () => Promise<void>) => Promise<Response | void>;\n path: string;\n }> = [];\n #telemetry?: Telemetry;\n #storage?: MastraStorage;\n #memory?: MastraMemory;\n #networks?: TNetworks;\n #vnext_networks?: TVNextNetworks;\n #scorers?: TScorers;\n #server?: ServerConfig;\n #mcpServers?: TMCPServers;\n #bundler?: BundlerConfig;\n #idGenerator?: MastraIdGenerator;\n #pubsub: PubSub;\n #events: {\n [topic: string]: ((event: Event, cb?: () => Promise<void>) => Promise<void>)[];\n } = {};\n\n /**\n * @deprecated use getTelemetry() instead\n */\n get telemetry() {\n return this.#telemetry;\n }\n\n /**\n * @deprecated use getStorage() instead\n */\n get storage() {\n return this.#storage;\n }\n\n /**\n * @deprecated use getMemory() instead\n */\n get memory() {\n return this.#memory;\n }\n\n get pubsub() {\n return this.#pubsub;\n }\n\n public getIdGenerator() {\n return this.#idGenerator;\n }\n\n /**\n * Generate a unique identifier using the configured generator or default to crypto.randomUUID()\n * @returns A unique string ID\n */\n public generateId(): string {\n if (this.#idGenerator) {\n const id = this.#idGenerator();\n if (!id) {\n const error = new MastraError({\n id: 'MASTRA_ID_GENERATOR_RETURNED_EMPTY_STRING',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: 'ID generator returned an empty string, which is not allowed',\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return id;\n }\n return crypto.randomUUID();\n }\n\n public setIdGenerator(idGenerator: MastraIdGenerator) {\n this.#idGenerator = idGenerator;\n }\n\n constructor(\n config?: Config<\n TAgents,\n TLegacyWorkflows,\n TWorkflows,\n TVectors,\n TTTS,\n TLogger,\n TNetworks,\n TVNextNetworks,\n TMCPServers,\n TScorers\n >,\n ) {\n // Store server middleware with default path\n if (config?.serverMiddleware) {\n this.#serverMiddleware = config.serverMiddleware.map(m => ({\n handler: m.handler,\n path: m.path || '/api/*',\n }));\n }\n\n /*\n Events\n */\n if (config?.pubsub) {\n this.#pubsub = config.pubsub;\n } else {\n this.#pubsub = new EventEmitterPubSub();\n }\n\n this.#events = {};\n for (const topic in config?.events ?? {}) {\n if (!Array.isArray(config?.events?.[topic])) {\n this.#events[topic] = [config?.events?.[topic] as any];\n } else {\n this.#events[topic] = config?.events?.[topic] ?? [];\n }\n }\n\n const workflowEventProcessor = new WorkflowEventProcessor({ mastra: this });\n const workflowEventCb = async (event: Event, cb?: () => Promise<void>): Promise<void> => {\n try {\n await workflowEventProcessor.process(event, cb);\n } catch (e) {\n console.error('Error processing event', e);\n }\n };\n if (this.#events.workflows) {\n this.#events.workflows.push(workflowEventCb);\n } else {\n this.#events.workflows = [workflowEventCb];\n }\n\n /*\n Logger\n */\n\n let logger: TLogger;\n if (config?.logger === false) {\n logger = noopLogger as unknown as TLogger;\n } else {\n if (config?.logger) {\n logger = config.logger;\n } else {\n const levelOnEnv =\n process.env.NODE_ENV === 'production' && process.env.MASTRA_DEV !== 'true' ? LogLevel.WARN : LogLevel.INFO;\n logger = new ConsoleLogger({ name: 'Mastra', level: levelOnEnv }) as unknown as TLogger;\n }\n }\n this.#logger = logger;\n\n this.#idGenerator = config?.idGenerator;\n\n let storage = config?.storage;\n\n if (storage) {\n storage = augmentWithInit(storage);\n }\n\n /*\n Telemetry\n */\n\n this.#telemetry = Telemetry.init(config?.telemetry);\n\n // Warn if telemetry is enabled but the instrumentation global is not set\n if (\n config?.telemetry?.enabled !== false &&\n typeof globalThis !== 'undefined' &&\n (globalThis as any).___MASTRA_TELEMETRY___ !== true\n ) {\n this.#logger?.warn(\n `Mastra telemetry is enabled, but the required instrumentation file was not loaded. ` +\n `If you are using Mastra outside of the mastra server environment, see: https://mastra.ai/en/docs/observability/tracing#tracing-outside-mastra-server-environment`,\n `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.`,\n );\n }\n\n /*\n AI Tracing\n */\n\n if (config?.observability) {\n setupAITracing(config.observability);\n }\n\n /*\n Storage\n */\n if (this.#telemetry && storage) {\n this.#storage = this.#telemetry.traceClass(storage, {\n excludeMethods: ['__setTelemetry', '__getTelemetry', 'batchTraceInsert', 'getTraces', 'getEvalsByAgentName'],\n });\n this.#storage.__setTelemetry(this.#telemetry);\n } else {\n this.#storage = storage;\n }\n\n /*\n Vectors\n */\n if (config?.vectors) {\n let vectors: Record<string, MastraVector> = {};\n Object.entries(config.vectors).forEach(([key, vector]) => {\n if (this.#telemetry) {\n vectors[key] = this.#telemetry.traceClass(vector, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n vectors[key].__setTelemetry(this.#telemetry);\n } else {\n vectors[key] = vector;\n }\n });\n\n this.#vectors = vectors as TVectors;\n }\n\n if (config?.networks) {\n this.#networks = config.networks;\n }\n\n if (config?.vnext_networks) {\n this.#vnext_networks = config.vnext_networks;\n }\n\n if (config?.mcpServers) {\n this.#mcpServers = config.mcpServers;\n\n // Set logger/telemetry/Mastra instance/id for MCP servers\n Object.entries(this.#mcpServers).forEach(([key, server]) => {\n server.setId(key);\n if (this.#telemetry) {\n server.__setTelemetry(this.#telemetry);\n }\n\n server.__registerMastra(this);\n server.__setLogger(this.getLogger());\n });\n }\n\n if (config && `memory` in config) {\n const error = new MastraError({\n id: 'MASTRA_CONSTRUCTOR_INVALID_MEMORY_CONFIG',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `\n Memory should be added to Agents, not to Mastra.\n\nInstead of:\n new Mastra({ memory: new Memory() })\n\ndo:\n new Agent({ memory: new Memory() })\n`,\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (config?.tts) {\n this.#tts = config.tts;\n Object.entries(this.#tts).forEach(([key, ttsCl]) => {\n if (this.#tts?.[key]) {\n if (this.#telemetry) {\n // @ts-ignore\n this.#tts[key] = this.#telemetry.traceClass(ttsCl, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n this.#tts[key].__setTelemetry(this.#telemetry);\n }\n }\n });\n }\n\n /*\n Agents\n */\n const agents: Record<string, Agent> = {};\n if (config?.agents) {\n Object.entries(config.agents).forEach(([key, agent]) => {\n if (agents[key]) {\n const error = new MastraError({\n id: 'MASTRA_AGENT_REGISTRATION_DUPLICATE_ID',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Agent with name ID:${key} already exists`,\n details: {\n agentId: key,\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n agent.__registerMastra(this);\n\n agent.__registerPrimitives({\n logger: this.getLogger(),\n telemetry: this.#telemetry,\n storage: this.storage,\n memory: this.memory,\n agents: agents,\n tts: this.#tts,\n vectors: this.#vectors,\n });\n\n agents[key] = agent;\n });\n }\n\n this.#agents = agents as TAgents;\n\n /*\n Networks\n */\n this.#networks = {} as TNetworks;\n this.#vnext_networks = {} as TVNextNetworks;\n\n if (config?.networks) {\n Object.entries(config.networks).forEach(([key, network]) => {\n network.__registerMastra(this);\n // @ts-ignore\n this.#networks[key] = network;\n });\n }\n\n if (config?.vnext_networks) {\n Object.entries(config.vnext_networks).forEach(([key, network]) => {\n network.__registerMastra(this);\n // @ts-ignore\n this.#vnext_networks[key] = network;\n });\n }\n\n /**\n * Scorers\n */\n\n const scorers = {} as Record<string, MastraScorer<any, any, any, any>>;\n if (config?.scorers) {\n Object.entries(config.scorers).forEach(([key, scorer]) => {\n scorers[key] = scorer;\n });\n }\n this.#scorers = scorers as TScorers;\n\n /*\n Legacy Workflows\n */\n this.#legacy_workflows = {} as TLegacyWorkflows;\n\n if (config?.legacy_workflows) {\n Object.entries(config.legacy_workflows).forEach(([key, workflow]) => {\n workflow.__registerMastra(this);\n workflow.__registerPrimitives({\n logger: this.getLogger(),\n telemetry: this.#telemetry,\n storage: this.storage,\n memory: this.memory,\n agents: agents,\n tts: this.#tts,\n vectors: this.#vectors,\n });\n // @ts-ignore\n this.#legacy_workflows[key] = workflow;\n\n const workflowSteps = Object.values(workflow.steps).filter(step => !!step.workflowId && !!step.workflow);\n if (workflowSteps.length > 0) {\n workflowSteps.forEach(step => {\n // @ts-ignore\n this.#legacy_workflows[step.workflowId] = step.workflow;\n });\n }\n });\n }\n\n this.#workflows = {} as TWorkflows;\n if (config?.workflows) {\n Object.entries(config.workflows).forEach(([key, workflow]) => {\n workflow.__registerMastra(this);\n workflow.__registerPrimitives({\n logger: this.getLogger(),\n telemetry: this.#telemetry,\n storage: this.storage,\n memory: this.memory,\n agents: agents,\n tts: this.#tts,\n vectors: this.#vectors,\n });\n // @ts-ignore\n this.#workflows[key] = workflow;\n });\n }\n\n if (config?.server) {\n this.#server = config.server;\n }\n\n registerHook(AvailableHooks.ON_SCORER_RUN, createOnScorerHook(this));\n\n /*\n Register Mastra instance with AI tracing exporters and initialize them\n */\n if (config?.observability) {\n this.registerAITracingExporters();\n this.initAITracingExporters();\n }\n\n this.setLogger({ logger });\n }\n\n /**\n * Register this Mastra instance with AI tracing exporters that need it\n */\n private registerAITracingExporters(): void {\n const allTracingInstances = getAllAITracing();\n allTracingInstances.forEach(tracing => {\n const exporters = tracing.getExporters();\n exporters.forEach(exporter => {\n // Check if exporter has __registerMastra method\n if ('__registerMastra' in exporter && typeof (exporter as any).__registerMastra === 'function') {\n (exporter as any).__registerMastra(this);\n }\n });\n });\n }\n\n /**\n * Initialize all AI tracing exporters after registration is complete\n */\n private initAITracingExporters(): void {\n const allTracingInstances = getAllAITracing();\n\n allTracingInstances.forEach(tracing => {\n const exporters = tracing.getExporters();\n exporters.forEach(exporter => {\n // Initialize exporter if it has an init method\n if ('init' in exporter && typeof exporter.init === 'function') {\n try {\n exporter.init();\n } catch (error) {\n this.#logger?.warn('Failed to initialize AI tracing exporter', {\n exporterName: exporter.name,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n });\n });\n }\n\n public getAgent<TAgentName extends keyof TAgents>(name: TAgentName): TAgents[TAgentName] {\n const agent = this.#agents?.[name];\n if (!agent) {\n const error = new MastraError({\n id: 'MASTRA_GET_AGENT_BY_NAME_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Agent with name ${String(name)} not found`,\n details: {\n status: 404,\n agentName: String(name),\n agents: Object.keys(this.#agents ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return this.#agents[name];\n }\n\n public getAgentById(id: string): Agent {\n let agent = Object.values(this.#agents).find(a => a.id === id);\n\n if (!agent) {\n try {\n agent = this.getAgent(id as any);\n } catch {\n // do nothing\n }\n }\n\n if (!agent) {\n const error = new MastraError({\n id: 'MASTRA_GET_AGENT_BY_AGENT_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Agent with id ${String(id)} not found`,\n details: {\n status: 404,\n agentId: String(id),\n agents: Object.keys(this.#agents ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n return agent;\n }\n\n public getAgents() {\n return this.#agents;\n }\n\n public getVector<TVectorName extends keyof TVectors>(name: TVectorName): TVectors[TVectorName] {\n const vector = this.#vectors?.[name];\n if (!vector) {\n const error = new MastraError({\n id: 'MASTRA_GET_VECTOR_BY_NAME_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Vector with name ${String(name)} not found`,\n details: {\n status: 404,\n vectorName: String(name),\n vectors: Object.keys(this.#vectors ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return vector;\n }\n\n public getVectors() {\n return this.#vectors;\n }\n\n public getDeployer() {\n return this.#deployer;\n }\n\n public legacy_getWorkflow<TWorkflowId extends keyof TLegacyWorkflows>(\n id: TWorkflowId,\n { serialized }: { serialized?: boolean } = {},\n ): TLegacyWorkflows[TWorkflowId] {\n const workflow = this.#legacy_workflows?.[id];\n if (!workflow) {\n const error = new MastraError({\n id: 'MASTRA_GET_LEGACY_WORKFLOW_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Workflow with ID ${String(id)} not found`,\n details: {\n status: 404,\n workflowId: String(id),\n workflows: Object.keys(this.#legacy_workflows ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (serialized) {\n return { name: workflow.name } as TLegacyWorkflows[TWorkflowId];\n }\n\n return workflow;\n }\n\n public getWorkflow<TWorkflowId extends keyof TWorkflows>(\n id: TWorkflowId,\n { serialized }: { serialized?: boolean } = {},\n ): TWorkflows[TWorkflowId] {\n const workflow = this.#workflows?.[id];\n if (!workflow) {\n const error = new MastraError({\n id: 'MASTRA_GET_WORKFLOW_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Workflow with ID ${String(id)} not found`,\n details: {\n status: 404,\n workflowId: String(id),\n workflows: Object.keys(this.#workflows ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (serialized) {\n return { name: workflow.name } as TWorkflows[TWorkflowId];\n }\n\n return workflow;\n }\n\n public getWorkflowById(id: string): Workflow {\n let workflow = Object.values(this.#workflows).find(a => a.id === id);\n\n if (!workflow) {\n try {\n workflow = this.getWorkflow(id as any);\n } catch {\n // do nothing\n }\n }\n\n if (!workflow) {\n const error = new MastraError({\n id: 'MASTRA_GET_WORKFLOW_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Workflow with id ${String(id)} not found`,\n details: {\n status: 404,\n workflowId: String(id),\n workflows: Object.keys(this.#workflows ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n return workflow;\n }\n\n public legacy_getWorkflows(props: { serialized?: boolean } = {}): Record<string, LegacyWorkflow> {\n if (props.serialized) {\n return Object.entries(this.#legacy_workflows).reduce((acc, [k, v]) => {\n return {\n ...acc,\n [k]: { name: v.name },\n };\n }, {});\n }\n return this.#legacy_workflows;\n }\n\n public getScorers() {\n return this.#scorers;\n }\n\n public getScorer<TScorerKey extends keyof TScorers>(key: TScorerKey): TScorers[TScorerKey] {\n const scorer = this.#scorers?.[key];\n if (!scorer) {\n const error = new MastraError({\n id: 'MASTRA_GET_SCORER_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Scorer with ${String(key)} not found`,\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return scorer;\n }\n\n public getScorerByName(name: string): MastraScorer<any, any, any, any> {\n for (const [_key, value] of Object.entries(this.#scorers ?? {})) {\n if (value.name === name) {\n return value;\n }\n }\n\n const error = new MastraError({\n id: 'MASTRA_GET_SCORER_BY_NAME_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Scorer with name ${String(name)} not found`,\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n public getWorkflows(props: { serialized?: boolean } = {}): Record<string, Workflow> {\n if (props.serialized) {\n return Object.entries(this.#workflows).reduce((acc, [k, v]) => {\n return {\n ...acc,\n [k]: { name: v.name },\n };\n }, {});\n }\n return this.#workflows;\n }\n\n public setStorage(storage: MastraStorage) {\n this.#storage = augmentWithInit(storage);\n }\n\n public setLogger({ logger }: { logger: TLogger }) {\n this.#logger = logger;\n\n if (this.#agents) {\n Object.keys(this.#agents).forEach(key => {\n this.#agents?.[key]?.__setLogger(this.#logger);\n });\n }\n\n if (this.#memory) {\n this.#memory.__setLogger(this.#logger);\n }\n\n if (this.#deployer) {\n this.#deployer.__setLogger(this.#logger);\n }\n\n if (this.#tts) {\n Object.keys(this.#tts).forEach(key => {\n this.#tts?.[key]?.__setLogger(this.#logger);\n });\n }\n\n if (this.#storage) {\n this.#storage.__setLogger(this.#logger);\n }\n\n if (this.#vectors) {\n Object.keys(this.#vectors).forEach(key => {\n this.#vectors?.[key]?.__setLogger(this.#logger);\n });\n }\n\n if (this.#mcpServers) {\n Object.keys(this.#mcpServers).forEach(key => {\n this.#mcpServers?.[key]?.__setLogger(this.#logger);\n });\n }\n\n // Set logger for AI tracing instances\n const allTracingInstances = getAllAITracing();\n allTracingInstances.forEach(instance => {\n instance.__setLogger(this.#logger);\n });\n }\n\n public setTelemetry(telemetry: OtelConfig) {\n this.#telemetry = Telemetry.init(telemetry);\n\n if (this.#agents) {\n Object.keys(this.#agents).forEach(key => {\n if (this.#telemetry) {\n this.#agents?.[key]?.__setTelemetry(this.#telemetry);\n }\n });\n }\n\n if (this.#memory) {\n this.#memory = this.#telemetry.traceClass(this.#memory, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n this.#memory.__setTelemetry(this.#telemetry);\n }\n\n if (this.#deployer) {\n this.#deployer = this.#telemetry.traceClass(this.#deployer, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n this.#deployer.__setTelemetry(this.#telemetry);\n }\n\n if (this.#tts) {\n let tts = {} as Record<string, MastraTTS>;\n Object.entries(this.#tts).forEach(([key, ttsCl]) => {\n if (this.#telemetry) {\n tts[key] = this.#telemetry.traceClass(ttsCl, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n tts[key].__setTelemetry(this.#telemetry);\n }\n });\n this.#tts = tts as TTTS;\n }\n\n if (this.#storage) {\n this.#storage = this.#telemetry.traceClass(this.#storage, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n this.#storage.__setTelemetry(this.#telemetry);\n }\n\n if (this.#vectors) {\n let vectors = {} as Record<string, MastraVector>;\n Object.entries(this.#vectors).forEach(([key, vector]) => {\n if (this.#telemetry) {\n vectors[key] = this.#telemetry.traceClass(vector, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n vectors[key].__setTelemetry(this.#telemetry);\n }\n });\n this.#vectors = vectors as TVectors;\n }\n }\n\n public getTTS() {\n return this.#tts;\n }\n\n public getLogger() {\n return this.#logger;\n }\n\n public getTelemetry() {\n return this.#telemetry;\n }\n\n public getMemory() {\n return this.#memory;\n }\n\n public getStorage() {\n return this.#storage;\n }\n\n public getServerMiddleware() {\n return this.#serverMiddleware;\n }\n\n public setServerMiddleware(serverMiddleware: Middleware | Middleware[]) {\n if (typeof serverMiddleware === 'function') {\n this.#serverMiddleware = [\n {\n handler: serverMiddleware,\n path: '/api/*',\n },\n ];\n return;\n }\n\n if (!Array.isArray(serverMiddleware)) {\n const error = new MastraError({\n id: 'MASTRA_SET_SERVER_MIDDLEWARE_INVALID_TYPE',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Invalid middleware: expected a function or array, received ${typeof serverMiddleware}`,\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n this.#serverMiddleware = serverMiddleware.map(m => {\n if (typeof m === 'function') {\n return {\n handler: m,\n path: '/api/*',\n };\n }\n return {\n handler: m.handler,\n path: m.path || '/api/*',\n };\n });\n }\n\n public getNetworks() {\n return Object.values(this.#networks || {});\n }\n\n public vnext_getNetworks() {\n return Object.values(this.#vnext_networks || {});\n }\n\n public getServer() {\n return this.#server;\n }\n\n public getBundlerConfig() {\n return this.#bundler;\n }\n\n /**\n * Get a specific network by ID\n * @param networkId - The ID of the network to retrieve\n * @returns The network with the specified ID, or undefined if not found\n */\n public getNetwork(networkId: string): AgentNetwork | undefined {\n const networks = this.getNetworks();\n return networks.find(network => {\n const routingAgent = network.getRoutingAgent();\n return network.formatAgentId(routingAgent.name) === networkId;\n });\n }\n\n public vnext_getNetwork(networkId: string): NewAgentNetwork | undefined {\n const networks = this.vnext_getNetworks();\n return networks.find(network => network.id === networkId);\n }\n\n public async getLogsByRunId({\n runId,\n transportId,\n fromDate,\n toDate,\n logLevel,\n filters,\n page,\n perPage,\n }: {\n runId: string;\n transportId: string;\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n page?: number;\n perPage?: number;\n }) {\n if (!transportId) {\n const error = new MastraError({\n id: 'MASTRA_GET_LOGS_BY_RUN_ID_MISSING_TRANSPORT',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: 'Transport ID is required',\n details: {\n runId,\n transportId,\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (!this.#logger?.getLogsByRunId) {\n const error = new MastraError({\n id: 'MASTRA_GET_LOGS_BY_RUN_ID_LOGGER_NOT_CONFIGURED',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.SYSTEM,\n text: 'Logger is not configured or does not support getLogsByRunId operation',\n details: {\n runId,\n transportId,\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n return await this.#logger.getLogsByRunId({\n runId,\n transportId,\n fromDate,\n toDate,\n logLevel,\n filters,\n page,\n perPage,\n });\n }\n\n public async getLogs(\n transportId: string,\n params?: {\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n page?: number;\n perPage?: number;\n },\n ) {\n if (!transportId) {\n const error = new MastraError({\n id: 'MASTRA_GET_LOGS_MISSING_TRANSPORT',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: 'Transport ID is required',\n details: {\n transportId,\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (!this.#logger) {\n const error = new MastraError({\n id: 'MASTRA_GET_LOGS_LOGGER_NOT_CONFIGURED',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.SYSTEM,\n text: 'Logger is not set',\n details: {\n transportId,\n },\n });\n throw error;\n }\n\n return await this.#logger.getLogs(transportId, params);\n }\n\n /**\n * Get all registered MCP server instances.\n * @returns A record of MCP server ID to MCPServerBase instance, or undefined if none are registered.\n */\n public getMCPServers(): Record<string, MCPServerBase> | undefined {\n return this.#mcpServers;\n }\n\n /**\n * Get a specific MCP server instance.\n * If a version is provided, it attempts to find the server with that exact logical ID and version.\n * If no version is provided, it returns the server with the specified logical ID that has the most recent releaseDate.\n * The logical ID should match the `id` property of the MCPServer instance (typically set via MCPServerConfig.id).\n * @param serverId - The logical ID of the MCP server to retrieve.\n * @param version - Optional specific version of the MCP server to retrieve.\n * @returns The MCP server instance, or undefined if not found or if the specific version is not found.\n */\n public getMCPServer(serverId: string, version?: string): MCPServerBase | undefined {\n if (!this.#mcpServers) {\n return undefined;\n }\n\n const allRegisteredServers = Object.values(this.#mcpServers || {});\n\n const matchingLogicalIdServers = allRegisteredServers.filter(server => server.id === serverId);\n\n if (matchingLogicalIdServers.length === 0) {\n this.#logger?.debug(`No MCP servers found with logical ID: ${serverId}`);\n return undefined;\n }\n\n if (version) {\n const specificVersionServer = matchingLogicalIdServers.find(server => server.version === version);\n if (!specificVersionServer) {\n this.#logger?.debug(`MCP server with logical ID '${serverId}' found, but not version '${version}'.`);\n }\n return specificVersionServer;\n } else {\n // No version specified, find the one with the most recent releaseDate\n if (matchingLogicalIdServers.length === 1) {\n return matchingLogicalIdServers[0];\n }\n\n matchingLogicalIdServers.sort((a, b) => {\n // Ensure releaseDate exists and is a string before creating a Date object\n const dateAVal = a.releaseDate && typeof a.releaseDate === 'string' ? new Date(a.releaseDate).getTime() : NaN;\n const dateBVal = b.releaseDate && typeof b.releaseDate === 'string' ? new Date(b.releaseDate).getTime() : NaN;\n\n if (isNaN(dateAVal) && isNaN(dateBVal)) return 0;\n if (isNaN(dateAVal)) return 1; // Treat invalid/missing dates as older\n if (isNaN(dateBVal)) return -1; // Treat invalid/missing dates as older\n\n return dateBVal - dateAVal; // Sorts in descending order of time (latest first)\n });\n\n // After sorting, the first element should be the latest if its date is valid\n if (matchingLogicalIdServers.length > 0) {\n const latestServer = matchingLogicalIdServers[0];\n if (\n latestServer &&\n latestServer.releaseDate &&\n typeof latestServer.releaseDate === 'string' &&\n !isNaN(new Date(latestServer.releaseDate).getTime())\n ) {\n return latestServer;\n }\n }\n this.#logger?.warn(\n `Could not determine the latest server for logical ID '${serverId}' due to invalid or missing release dates, or no servers left after filtering.`,\n );\n return undefined;\n }\n }\n\n public async addTopicListener(topic: string, listener: (event: any) => Promise<void>) {\n await this.#pubsub.subscribe(topic, listener);\n }\n\n public async removeTopicListener(topic: string, listener: (event: any) => Promise<void>) {\n await this.#pubsub.unsubscribe(topic, listener);\n }\n\n public async startEventEngine() {\n for (const topic in this.#events) {\n if (!this.#events[topic]) {\n continue;\n }\n\n const listeners = Array.isArray(this.#events[topic]) ? this.#events[topic] : [this.#events[topic]];\n for (const listener of listeners) {\n await this.#pubsub.subscribe(topic, listener);\n }\n }\n }\n\n public async stopEventEngine() {\n for (const topic in this.#events) {\n if (!this.#events[topic]) {\n continue;\n }\n\n const listeners = Array.isArray(this.#events[topic]) ? this.#events[topic] : [this.#events[topic]];\n for (const listener of listeners) {\n await this.#pubsub.unsubscribe(topic, listener);\n }\n }\n\n await this.#pubsub.flush();\n }\n\n /**\n * Shutdown Mastra and clean up all resources\n */\n async shutdown(): Promise<void> {\n // Shutdown AI tracing registry and all instances\n await shutdownAITracingRegistry();\n await this.stopEventEngine();\n\n this.#logger?.info('Mastra shutdown completed');\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/events/event-emitter.ts","../src/mastra/hooks.ts","../src/mastra/index.ts"],"names":[],"mappings":"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","file":"chunk-TOCMMZ2Y.js","sourcesContent":["import EventEmitter from 'events';\nimport { PubSub } from './pubsub';\nimport type { Event } from './types';\n\nexport class EventEmitterPubSub extends PubSub {\n private emitter: EventEmitter;\n\n constructor() {\n super();\n this.emitter = new EventEmitter();\n }\n\n async publish(topic: string, event: Omit<Event, 'id' | 'createdAt'>): Promise<void> {\n const id = crypto.randomUUID();\n const createdAt = new Date();\n this.emitter.emit(topic, {\n ...event,\n id,\n createdAt,\n });\n }\n\n async subscribe(topic: string, cb: (event: Event, ack?: () => Promise<void>) => void): Promise<void> {\n this.emitter.on(topic, cb);\n }\n\n async unsubscribe(topic: string, cb: (event: Event, ack?: () => Promise<void>) => void): Promise<void> {\n this.emitter.off(topic, cb);\n }\n\n async flush(): Promise<void> {\n // no-op\n }\n}\n","import type { Mastra } from '..';\nimport { ErrorCategory, ErrorDomain, MastraError } from '../error';\nimport { saveScorePayloadSchema } from '../scores';\nimport type { ScoringHookInput } from '../scores/types';\nimport type { MastraStorage } from '../storage';\n\nexport function createOnScorerHook(mastra: Mastra) {\n return async (hookData: ScoringHookInput) => {\n const storage = mastra.getStorage();\n\n if (!storage) {\n mastra.getLogger()?.warn('Storage not found, skipping score validation and saving');\n return;\n }\n\n const entityId = hookData.entity.id;\n const entityType = hookData.entityType;\n const scorer = hookData.scorer;\n try {\n const scorerToUse = await findScorer(mastra, entityId, entityType, scorer.id);\n\n if (!scorerToUse) {\n throw new MastraError({\n id: 'MASTRA_SCORER_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Scorer with ID ${hookData.scorer.id} not found`,\n });\n }\n\n let input = hookData.input;\n let output = hookData.output;\n\n if (entityType !== 'AGENT') {\n output = { object: hookData.output };\n }\n\n const { structuredOutput, ...rest } = hookData;\n\n const runResult = await scorerToUse.scorer.run({\n ...rest,\n input,\n output,\n });\n\n const payload = {\n ...rest,\n ...runResult,\n entityId,\n scorerId: hookData.scorer.id,\n metadata: {\n structuredOutput: !!structuredOutput,\n },\n };\n\n await validateAndSaveScore(storage, payload);\n } catch (error) {\n const mastraError = new MastraError(\n {\n id: 'MASTRA_SCORER_FAILED_TO_RUN_HOOK',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.USER,\n details: {\n scorerId: scorer.id,\n entityId,\n entityType,\n },\n },\n error,\n );\n\n mastra.getLogger()?.trackException(mastraError);\n mastra.getLogger()?.error(mastraError.toString());\n }\n };\n}\n\nexport async function validateAndSaveScore(storage: MastraStorage, payload: unknown) {\n const payloadToSave = saveScorePayloadSchema.parse(payload);\n await storage?.saveScore(payloadToSave);\n}\n\nasync function findScorer(mastra: Mastra, entityId: string, entityType: string, scorerId: string) {\n let scorerToUse;\n if (entityType === 'AGENT') {\n const scorers = await mastra.getAgentById(entityId).getScorers();\n scorerToUse = scorers[scorerId];\n } else if (entityType === 'WORKFLOW') {\n const scorers = await mastra.getWorkflowById(entityId).getScorers();\n scorerToUse = scorers[scorerId];\n }\n\n // Fallback to mastra-registered scorer\n if (!scorerToUse) {\n const mastraRegisteredScorer = mastra.getScorerByName(scorerId);\n scorerToUse = mastraRegisteredScorer ? { scorer: mastraRegisteredScorer } : undefined;\n }\n\n return scorerToUse;\n}\n","import type { Agent } from '../agent';\nimport { getAllAITracing, setupAITracing, shutdownAITracingRegistry } from '../ai-tracing';\nimport type { AITracingConfig } from '../ai-tracing';\nimport type { BundlerConfig } from '../bundler/types';\nimport type { MastraDeployer } from '../deployer';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../error';\nimport { EventEmitterPubSub } from '../events/event-emitter';\nimport type { PubSub } from '../events/pubsub';\nimport type { Event } from '../events/types';\nimport { AvailableHooks, registerHook } from '../hooks';\nimport { LogLevel, noopLogger, ConsoleLogger } from '../logger';\nimport type { IMastraLogger } from '../logger';\nimport type { MCPServerBase } from '../mcp';\nimport type { MastraMemory } from '../memory/memory';\nimport type { AgentNetwork } from '../network';\nimport type { NewAgentNetwork } from '../network/vNext';\nimport type { MastraScorer } from '../scores';\nimport type { Middleware, ServerConfig } from '../server/types';\nimport type { MastraStorage } from '../storage';\nimport { augmentWithInit } from '../storage/storageWithInit';\nimport { InstrumentClass, Telemetry } from '../telemetry';\nimport type { OtelConfig } from '../telemetry';\nimport type { MastraTTS } from '../tts';\nimport type { MastraIdGenerator } from '../types';\nimport type { MastraVector } from '../vector';\nimport type { Workflow } from '../workflows';\nimport { WorkflowEventProcessor } from '../workflows/evented/workflow-event-processor';\nimport type { LegacyWorkflow } from '../workflows/legacy';\nimport { createOnScorerHook } from './hooks';\n\nexport interface Config<\n TAgents extends Record<string, Agent<any>> = Record<string, Agent<any>>,\n TLegacyWorkflows extends Record<string, LegacyWorkflow> = Record<string, LegacyWorkflow>,\n TWorkflows extends Record<string, Workflow> = Record<string, Workflow>,\n TVectors extends Record<string, MastraVector> = Record<string, MastraVector>,\n TTTS extends Record<string, MastraTTS> = Record<string, MastraTTS>,\n TLogger extends IMastraLogger = IMastraLogger,\n TNetworks extends Record<string, AgentNetwork> = Record<string, AgentNetwork>,\n TVNextNetworks extends Record<string, NewAgentNetwork> = Record<string, NewAgentNetwork>,\n TMCPServers extends Record<string, MCPServerBase> = Record<string, MCPServerBase>,\n TScorers extends Record<string, MastraScorer<any, any, any, any>> = Record<string, MastraScorer<any, any, any, any>>,\n> {\n agents?: TAgents;\n networks?: TNetworks;\n vnext_networks?: TVNextNetworks;\n storage?: MastraStorage;\n vectors?: TVectors;\n logger?: TLogger | false;\n legacy_workflows?: TLegacyWorkflows;\n workflows?: TWorkflows;\n tts?: TTTS;\n telemetry?: OtelConfig;\n observability?: AITracingConfig;\n idGenerator?: MastraIdGenerator;\n deployer?: MastraDeployer;\n server?: ServerConfig;\n mcpServers?: TMCPServers;\n bundler?: BundlerConfig;\n pubsub?: PubSub;\n scorers?: TScorers;\n\n /**\n * Server middleware functions to be applied to API routes\n * Each middleware can specify a path pattern (defaults to '/api/*')\n * @deprecated use server.middleware instead\n */\n serverMiddleware?: Array<{\n handler: (c: any, next: () => Promise<void>) => Promise<Response | void>;\n path?: string;\n }>;\n\n // @deprecated add memory to your Agent directly instead\n memory?: never;\n\n events?: {\n [topic: string]: (\n event: Event,\n cb?: () => Promise<void>,\n ) => Promise<void> | ((event: Event, cb?: () => Promise<void>) => Promise<void>)[];\n };\n}\n\n@InstrumentClass({\n prefix: 'mastra',\n excludeMethods: ['getLogger', 'getTelemetry'],\n})\nexport class Mastra<\n TAgents extends Record<string, Agent<any>> = Record<string, Agent<any>>,\n TLegacyWorkflows extends Record<string, LegacyWorkflow> = Record<string, LegacyWorkflow>,\n TWorkflows extends Record<string, Workflow> = Record<string, Workflow>,\n TVectors extends Record<string, MastraVector> = Record<string, MastraVector>,\n TTTS extends Record<string, MastraTTS> = Record<string, MastraTTS>,\n TLogger extends IMastraLogger = IMastraLogger,\n TNetworks extends Record<string, AgentNetwork> = Record<string, AgentNetwork>,\n TVNextNetworks extends Record<string, NewAgentNetwork> = Record<string, NewAgentNetwork>,\n TMCPServers extends Record<string, MCPServerBase> = Record<string, MCPServerBase>,\n TScorers extends Record<string, MastraScorer<any, any, any, any>> = Record<string, MastraScorer<any, any, any, any>>,\n> {\n #vectors?: TVectors;\n #agents: TAgents;\n #logger: TLogger;\n #legacy_workflows: TLegacyWorkflows;\n #workflows: TWorkflows;\n #tts?: TTTS;\n #deployer?: MastraDeployer;\n #serverMiddleware: Array<{\n handler: (c: any, next: () => Promise<void>) => Promise<Response | void>;\n path: string;\n }> = [];\n #telemetry?: Telemetry;\n #storage?: MastraStorage;\n #memory?: MastraMemory;\n #networks?: TNetworks;\n #vnext_networks?: TVNextNetworks;\n #scorers?: TScorers;\n #server?: ServerConfig;\n #mcpServers?: TMCPServers;\n #bundler?: BundlerConfig;\n #idGenerator?: MastraIdGenerator;\n #pubsub: PubSub;\n #events: {\n [topic: string]: ((event: Event, cb?: () => Promise<void>) => Promise<void>)[];\n } = {};\n\n /**\n * @deprecated use getTelemetry() instead\n */\n get telemetry() {\n return this.#telemetry;\n }\n\n /**\n * @deprecated use getStorage() instead\n */\n get storage() {\n return this.#storage;\n }\n\n /**\n * @deprecated use getMemory() instead\n */\n get memory() {\n return this.#memory;\n }\n\n get pubsub() {\n return this.#pubsub;\n }\n\n public getIdGenerator() {\n return this.#idGenerator;\n }\n\n /**\n * Generate a unique identifier using the configured generator or default to crypto.randomUUID()\n * @returns A unique string ID\n */\n public generateId(): string {\n if (this.#idGenerator) {\n const id = this.#idGenerator();\n if (!id) {\n const error = new MastraError({\n id: 'MASTRA_ID_GENERATOR_RETURNED_EMPTY_STRING',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: 'ID generator returned an empty string, which is not allowed',\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return id;\n }\n return crypto.randomUUID();\n }\n\n public setIdGenerator(idGenerator: MastraIdGenerator) {\n this.#idGenerator = idGenerator;\n }\n\n constructor(\n config?: Config<\n TAgents,\n TLegacyWorkflows,\n TWorkflows,\n TVectors,\n TTTS,\n TLogger,\n TNetworks,\n TVNextNetworks,\n TMCPServers,\n TScorers\n >,\n ) {\n // Store server middleware with default path\n if (config?.serverMiddleware) {\n this.#serverMiddleware = config.serverMiddleware.map(m => ({\n handler: m.handler,\n path: m.path || '/api/*',\n }));\n }\n\n /*\n Events\n */\n if (config?.pubsub) {\n this.#pubsub = config.pubsub;\n } else {\n this.#pubsub = new EventEmitterPubSub();\n }\n\n this.#events = {};\n for (const topic in config?.events ?? {}) {\n if (!Array.isArray(config?.events?.[topic])) {\n this.#events[topic] = [config?.events?.[topic] as any];\n } else {\n this.#events[topic] = config?.events?.[topic] ?? [];\n }\n }\n\n const workflowEventProcessor = new WorkflowEventProcessor({ mastra: this });\n const workflowEventCb = async (event: Event, cb?: () => Promise<void>): Promise<void> => {\n try {\n await workflowEventProcessor.process(event, cb);\n } catch (e) {\n console.error('Error processing event', e);\n }\n };\n if (this.#events.workflows) {\n this.#events.workflows.push(workflowEventCb);\n } else {\n this.#events.workflows = [workflowEventCb];\n }\n\n /*\n Logger\n */\n\n let logger: TLogger;\n if (config?.logger === false) {\n logger = noopLogger as unknown as TLogger;\n } else {\n if (config?.logger) {\n logger = config.logger;\n } else {\n const levelOnEnv =\n process.env.NODE_ENV === 'production' && process.env.MASTRA_DEV !== 'true' ? LogLevel.WARN : LogLevel.INFO;\n logger = new ConsoleLogger({ name: 'Mastra', level: levelOnEnv }) as unknown as TLogger;\n }\n }\n this.#logger = logger;\n\n this.#idGenerator = config?.idGenerator;\n\n let storage = config?.storage;\n\n if (storage) {\n storage = augmentWithInit(storage);\n }\n\n /*\n Telemetry\n */\n\n this.#telemetry = Telemetry.init(config?.telemetry);\n\n // Warn if telemetry is enabled but the instrumentation global is not set\n if (\n config?.telemetry?.enabled !== false &&\n typeof globalThis !== 'undefined' &&\n (globalThis as any).___MASTRA_TELEMETRY___ !== true\n ) {\n this.#logger?.warn(\n `Mastra telemetry is enabled, but the required instrumentation file was not loaded. ` +\n `If you are using Mastra outside of the mastra server environment, see: https://mastra.ai/en/docs/observability/tracing#tracing-outside-mastra-server-environment`,\n `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.`,\n );\n }\n\n /*\n AI Tracing\n */\n\n if (config?.observability) {\n setupAITracing(config.observability);\n }\n\n /*\n Storage\n */\n if (this.#telemetry && storage) {\n this.#storage = this.#telemetry.traceClass(storage, {\n excludeMethods: ['__setTelemetry', '__getTelemetry', 'batchTraceInsert', 'getTraces', 'getEvalsByAgentName'],\n });\n this.#storage.__setTelemetry(this.#telemetry);\n } else {\n this.#storage = storage;\n }\n\n /*\n Vectors\n */\n if (config?.vectors) {\n let vectors: Record<string, MastraVector> = {};\n Object.entries(config.vectors).forEach(([key, vector]) => {\n if (this.#telemetry) {\n vectors[key] = this.#telemetry.traceClass(vector, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n vectors[key].__setTelemetry(this.#telemetry);\n } else {\n vectors[key] = vector;\n }\n });\n\n this.#vectors = vectors as TVectors;\n }\n\n if (config?.networks) {\n this.#networks = config.networks;\n }\n\n if (config?.vnext_networks) {\n this.#vnext_networks = config.vnext_networks;\n }\n\n if (config?.mcpServers) {\n this.#mcpServers = config.mcpServers;\n\n // Set logger/telemetry/Mastra instance/id for MCP servers\n Object.entries(this.#mcpServers).forEach(([key, server]) => {\n server.setId(key);\n if (this.#telemetry) {\n server.__setTelemetry(this.#telemetry);\n }\n\n server.__registerMastra(this);\n server.__setLogger(this.getLogger());\n });\n }\n\n if (config && `memory` in config) {\n const error = new MastraError({\n id: 'MASTRA_CONSTRUCTOR_INVALID_MEMORY_CONFIG',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `\n Memory should be added to Agents, not to Mastra.\n\nInstead of:\n new Mastra({ memory: new Memory() })\n\ndo:\n new Agent({ memory: new Memory() })\n`,\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (config?.tts) {\n this.#tts = config.tts;\n Object.entries(this.#tts).forEach(([key, ttsCl]) => {\n if (this.#tts?.[key]) {\n if (this.#telemetry) {\n // @ts-ignore\n this.#tts[key] = this.#telemetry.traceClass(ttsCl, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n this.#tts[key].__setTelemetry(this.#telemetry);\n }\n }\n });\n }\n\n /*\n Agents\n */\n const agents: Record<string, Agent> = {};\n if (config?.agents) {\n Object.entries(config.agents).forEach(([key, agent]) => {\n if (agents[key]) {\n const error = new MastraError({\n id: 'MASTRA_AGENT_REGISTRATION_DUPLICATE_ID',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Agent with name ID:${key} already exists`,\n details: {\n agentId: key,\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n agent.__registerMastra(this);\n\n agent.__registerPrimitives({\n logger: this.getLogger(),\n telemetry: this.#telemetry,\n storage: this.storage,\n memory: this.memory,\n agents: agents,\n tts: this.#tts,\n vectors: this.#vectors,\n });\n\n agents[key] = agent;\n });\n }\n\n this.#agents = agents as TAgents;\n\n /*\n Networks\n */\n this.#networks = {} as TNetworks;\n this.#vnext_networks = {} as TVNextNetworks;\n\n if (config?.networks) {\n Object.entries(config.networks).forEach(([key, network]) => {\n network.__registerMastra(this);\n // @ts-ignore\n this.#networks[key] = network;\n });\n }\n\n if (config?.vnext_networks) {\n Object.entries(config.vnext_networks).forEach(([key, network]) => {\n network.__registerMastra(this);\n // @ts-ignore\n this.#vnext_networks[key] = network;\n });\n }\n\n /**\n * Scorers\n */\n\n const scorers = {} as Record<string, MastraScorer<any, any, any, any>>;\n if (config?.scorers) {\n Object.entries(config.scorers).forEach(([key, scorer]) => {\n scorers[key] = scorer;\n });\n }\n this.#scorers = scorers as TScorers;\n\n /*\n Legacy Workflows\n */\n this.#legacy_workflows = {} as TLegacyWorkflows;\n\n if (config?.legacy_workflows) {\n Object.entries(config.legacy_workflows).forEach(([key, workflow]) => {\n workflow.__registerMastra(this);\n workflow.__registerPrimitives({\n logger: this.getLogger(),\n telemetry: this.#telemetry,\n storage: this.storage,\n memory: this.memory,\n agents: agents,\n tts: this.#tts,\n vectors: this.#vectors,\n });\n // @ts-ignore\n this.#legacy_workflows[key] = workflow;\n\n const workflowSteps = Object.values(workflow.steps).filter(step => !!step.workflowId && !!step.workflow);\n if (workflowSteps.length > 0) {\n workflowSteps.forEach(step => {\n // @ts-ignore\n this.#legacy_workflows[step.workflowId] = step.workflow;\n });\n }\n });\n }\n\n this.#workflows = {} as TWorkflows;\n if (config?.workflows) {\n Object.entries(config.workflows).forEach(([key, workflow]) => {\n workflow.__registerMastra(this);\n workflow.__registerPrimitives({\n logger: this.getLogger(),\n telemetry: this.#telemetry,\n storage: this.storage,\n memory: this.memory,\n agents: agents,\n tts: this.#tts,\n vectors: this.#vectors,\n });\n // @ts-ignore\n this.#workflows[key] = workflow;\n });\n }\n\n if (config?.server) {\n this.#server = config.server;\n }\n\n registerHook(AvailableHooks.ON_SCORER_RUN, createOnScorerHook(this));\n\n /*\n Register Mastra instance with AI tracing exporters and initialize them\n */\n if (config?.observability) {\n this.registerAITracingExporters();\n this.initAITracingExporters();\n }\n\n this.setLogger({ logger });\n }\n\n /**\n * Register this Mastra instance with AI tracing exporters that need it\n */\n private registerAITracingExporters(): void {\n const allTracingInstances = getAllAITracing();\n allTracingInstances.forEach(tracing => {\n const exporters = tracing.getExporters();\n exporters.forEach(exporter => {\n // Check if exporter has __registerMastra method\n if ('__registerMastra' in exporter && typeof (exporter as any).__registerMastra === 'function') {\n (exporter as any).__registerMastra(this);\n }\n });\n });\n }\n\n /**\n * Initialize all AI tracing exporters after registration is complete\n */\n private initAITracingExporters(): void {\n const allTracingInstances = getAllAITracing();\n\n allTracingInstances.forEach(tracing => {\n const exporters = tracing.getExporters();\n exporters.forEach(exporter => {\n // Initialize exporter if it has an init method\n if ('init' in exporter && typeof exporter.init === 'function') {\n try {\n exporter.init();\n } catch (error) {\n this.#logger?.warn('Failed to initialize AI tracing exporter', {\n exporterName: exporter.name,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n });\n });\n }\n\n public getAgent<TAgentName extends keyof TAgents>(name: TAgentName): TAgents[TAgentName] {\n const agent = this.#agents?.[name];\n if (!agent) {\n const error = new MastraError({\n id: 'MASTRA_GET_AGENT_BY_NAME_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Agent with name ${String(name)} not found`,\n details: {\n status: 404,\n agentName: String(name),\n agents: Object.keys(this.#agents ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return this.#agents[name];\n }\n\n public getAgentById(id: string): Agent {\n let agent = Object.values(this.#agents).find(a => a.id === id);\n\n if (!agent) {\n try {\n agent = this.getAgent(id as any);\n } catch {\n // do nothing\n }\n }\n\n if (!agent) {\n const error = new MastraError({\n id: 'MASTRA_GET_AGENT_BY_AGENT_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Agent with id ${String(id)} not found`,\n details: {\n status: 404,\n agentId: String(id),\n agents: Object.keys(this.#agents ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n return agent;\n }\n\n public getAgents() {\n return this.#agents;\n }\n\n public getVector<TVectorName extends keyof TVectors>(name: TVectorName): TVectors[TVectorName] {\n const vector = this.#vectors?.[name];\n if (!vector) {\n const error = new MastraError({\n id: 'MASTRA_GET_VECTOR_BY_NAME_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Vector with name ${String(name)} not found`,\n details: {\n status: 404,\n vectorName: String(name),\n vectors: Object.keys(this.#vectors ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return vector;\n }\n\n public getVectors() {\n return this.#vectors;\n }\n\n public getDeployer() {\n return this.#deployer;\n }\n\n public legacy_getWorkflow<TWorkflowId extends keyof TLegacyWorkflows>(\n id: TWorkflowId,\n { serialized }: { serialized?: boolean } = {},\n ): TLegacyWorkflows[TWorkflowId] {\n const workflow = this.#legacy_workflows?.[id];\n if (!workflow) {\n const error = new MastraError({\n id: 'MASTRA_GET_LEGACY_WORKFLOW_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Workflow with ID ${String(id)} not found`,\n details: {\n status: 404,\n workflowId: String(id),\n workflows: Object.keys(this.#legacy_workflows ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (serialized) {\n return { name: workflow.name } as TLegacyWorkflows[TWorkflowId];\n }\n\n return workflow;\n }\n\n public getWorkflow<TWorkflowId extends keyof TWorkflows>(\n id: TWorkflowId,\n { serialized }: { serialized?: boolean } = {},\n ): TWorkflows[TWorkflowId] {\n const workflow = this.#workflows?.[id];\n if (!workflow) {\n const error = new MastraError({\n id: 'MASTRA_GET_WORKFLOW_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Workflow with ID ${String(id)} not found`,\n details: {\n status: 404,\n workflowId: String(id),\n workflows: Object.keys(this.#workflows ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (serialized) {\n return { name: workflow.name } as TWorkflows[TWorkflowId];\n }\n\n return workflow;\n }\n\n public getWorkflowById(id: string): Workflow {\n let workflow = Object.values(this.#workflows).find(a => a.id === id);\n\n if (!workflow) {\n try {\n workflow = this.getWorkflow(id as any);\n } catch {\n // do nothing\n }\n }\n\n if (!workflow) {\n const error = new MastraError({\n id: 'MASTRA_GET_WORKFLOW_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Workflow with id ${String(id)} not found`,\n details: {\n status: 404,\n workflowId: String(id),\n workflows: Object.keys(this.#workflows ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n return workflow;\n }\n\n public legacy_getWorkflows(props: { serialized?: boolean } = {}): Record<string, LegacyWorkflow> {\n if (props.serialized) {\n return Object.entries(this.#legacy_workflows).reduce((acc, [k, v]) => {\n return {\n ...acc,\n [k]: { name: v.name },\n };\n }, {});\n }\n return this.#legacy_workflows;\n }\n\n public getScorers() {\n return this.#scorers;\n }\n\n public getScorer<TScorerKey extends keyof TScorers>(key: TScorerKey): TScorers[TScorerKey] {\n const scorer = this.#scorers?.[key];\n if (!scorer) {\n const error = new MastraError({\n id: 'MASTRA_GET_SCORER_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Scorer with ${String(key)} not found`,\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return scorer;\n }\n\n public getScorerByName(name: string): MastraScorer<any, any, any, any> {\n for (const [_key, value] of Object.entries(this.#scorers ?? {})) {\n if (value.name === name) {\n return value;\n }\n }\n\n const error = new MastraError({\n id: 'MASTRA_GET_SCORER_BY_NAME_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Scorer with name ${String(name)} not found`,\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n public getWorkflows(props: { serialized?: boolean } = {}): Record<string, Workflow> {\n if (props.serialized) {\n return Object.entries(this.#workflows).reduce((acc, [k, v]) => {\n return {\n ...acc,\n [k]: { name: v.name },\n };\n }, {});\n }\n return this.#workflows;\n }\n\n public setStorage(storage: MastraStorage) {\n this.#storage = augmentWithInit(storage);\n }\n\n public setLogger({ logger }: { logger: TLogger }) {\n this.#logger = logger;\n\n if (this.#agents) {\n Object.keys(this.#agents).forEach(key => {\n this.#agents?.[key]?.__setLogger(this.#logger);\n });\n }\n\n if (this.#memory) {\n this.#memory.__setLogger(this.#logger);\n }\n\n if (this.#deployer) {\n this.#deployer.__setLogger(this.#logger);\n }\n\n if (this.#tts) {\n Object.keys(this.#tts).forEach(key => {\n this.#tts?.[key]?.__setLogger(this.#logger);\n });\n }\n\n if (this.#storage) {\n this.#storage.__setLogger(this.#logger);\n }\n\n if (this.#vectors) {\n Object.keys(this.#vectors).forEach(key => {\n this.#vectors?.[key]?.__setLogger(this.#logger);\n });\n }\n\n if (this.#mcpServers) {\n Object.keys(this.#mcpServers).forEach(key => {\n this.#mcpServers?.[key]?.__setLogger(this.#logger);\n });\n }\n\n // Set logger for AI tracing instances\n const allTracingInstances = getAllAITracing();\n allTracingInstances.forEach(instance => {\n instance.__setLogger(this.#logger);\n });\n }\n\n public setTelemetry(telemetry: OtelConfig) {\n this.#telemetry = Telemetry.init(telemetry);\n\n if (this.#agents) {\n Object.keys(this.#agents).forEach(key => {\n if (this.#telemetry) {\n this.#agents?.[key]?.__setTelemetry(this.#telemetry);\n }\n });\n }\n\n if (this.#memory) {\n this.#memory = this.#telemetry.traceClass(this.#memory, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n this.#memory.__setTelemetry(this.#telemetry);\n }\n\n if (this.#deployer) {\n this.#deployer = this.#telemetry.traceClass(this.#deployer, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n this.#deployer.__setTelemetry(this.#telemetry);\n }\n\n if (this.#tts) {\n let tts = {} as Record<string, MastraTTS>;\n Object.entries(this.#tts).forEach(([key, ttsCl]) => {\n if (this.#telemetry) {\n tts[key] = this.#telemetry.traceClass(ttsCl, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n tts[key].__setTelemetry(this.#telemetry);\n }\n });\n this.#tts = tts as TTTS;\n }\n\n if (this.#storage) {\n this.#storage = this.#telemetry.traceClass(this.#storage, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n this.#storage.__setTelemetry(this.#telemetry);\n }\n\n if (this.#vectors) {\n let vectors = {} as Record<string, MastraVector>;\n Object.entries(this.#vectors).forEach(([key, vector]) => {\n if (this.#telemetry) {\n vectors[key] = this.#telemetry.traceClass(vector, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n vectors[key].__setTelemetry(this.#telemetry);\n }\n });\n this.#vectors = vectors as TVectors;\n }\n }\n\n public getTTS() {\n return this.#tts;\n }\n\n public getLogger() {\n return this.#logger;\n }\n\n public getTelemetry() {\n return this.#telemetry;\n }\n\n public getMemory() {\n return this.#memory;\n }\n\n public getStorage() {\n return this.#storage;\n }\n\n public getServerMiddleware() {\n return this.#serverMiddleware;\n }\n\n public setServerMiddleware(serverMiddleware: Middleware | Middleware[]) {\n if (typeof serverMiddleware === 'function') {\n this.#serverMiddleware = [\n {\n handler: serverMiddleware,\n path: '/api/*',\n },\n ];\n return;\n }\n\n if (!Array.isArray(serverMiddleware)) {\n const error = new MastraError({\n id: 'MASTRA_SET_SERVER_MIDDLEWARE_INVALID_TYPE',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Invalid middleware: expected a function or array, received ${typeof serverMiddleware}`,\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n this.#serverMiddleware = serverMiddleware.map(m => {\n if (typeof m === 'function') {\n return {\n handler: m,\n path: '/api/*',\n };\n }\n return {\n handler: m.handler,\n path: m.path || '/api/*',\n };\n });\n }\n\n public getNetworks() {\n return Object.values(this.#networks || {});\n }\n\n public vnext_getNetworks() {\n return Object.values(this.#vnext_networks || {});\n }\n\n public getServer() {\n return this.#server;\n }\n\n public getBundlerConfig() {\n return this.#bundler;\n }\n\n /**\n * Get a specific network by ID\n * @param networkId - The ID of the network to retrieve\n * @returns The network with the specified ID, or undefined if not found\n */\n public getNetwork(networkId: string): AgentNetwork | undefined {\n const networks = this.getNetworks();\n return networks.find(network => {\n const routingAgent = network.getRoutingAgent();\n return network.formatAgentId(routingAgent.name) === networkId;\n });\n }\n\n public vnext_getNetwork(networkId: string): NewAgentNetwork | undefined {\n const networks = this.vnext_getNetworks();\n return networks.find(network => network.id === networkId);\n }\n\n public async getLogsByRunId({\n runId,\n transportId,\n fromDate,\n toDate,\n logLevel,\n filters,\n page,\n perPage,\n }: {\n runId: string;\n transportId: string;\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n page?: number;\n perPage?: number;\n }) {\n if (!transportId) {\n const error = new MastraError({\n id: 'MASTRA_GET_LOGS_BY_RUN_ID_MISSING_TRANSPORT',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: 'Transport ID is required',\n details: {\n runId,\n transportId,\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (!this.#logger?.getLogsByRunId) {\n const error = new MastraError({\n id: 'MASTRA_GET_LOGS_BY_RUN_ID_LOGGER_NOT_CONFIGURED',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.SYSTEM,\n text: 'Logger is not configured or does not support getLogsByRunId operation',\n details: {\n runId,\n transportId,\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n return await this.#logger.getLogsByRunId({\n runId,\n transportId,\n fromDate,\n toDate,\n logLevel,\n filters,\n page,\n perPage,\n });\n }\n\n public async getLogs(\n transportId: string,\n params?: {\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n page?: number;\n perPage?: number;\n },\n ) {\n if (!transportId) {\n const error = new MastraError({\n id: 'MASTRA_GET_LOGS_MISSING_TRANSPORT',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: 'Transport ID is required',\n details: {\n transportId,\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (!this.#logger) {\n const error = new MastraError({\n id: 'MASTRA_GET_LOGS_LOGGER_NOT_CONFIGURED',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.SYSTEM,\n text: 'Logger is not set',\n details: {\n transportId,\n },\n });\n throw error;\n }\n\n return await this.#logger.getLogs(transportId, params);\n }\n\n /**\n * Get all registered MCP server instances.\n * @returns A record of MCP server ID to MCPServerBase instance, or undefined if none are registered.\n */\n public getMCPServers(): Record<string, MCPServerBase> | undefined {\n return this.#mcpServers;\n }\n\n /**\n * Get a specific MCP server instance.\n * If a version is provided, it attempts to find the server with that exact logical ID and version.\n * If no version is provided, it returns the server with the specified logical ID that has the most recent releaseDate.\n * The logical ID should match the `id` property of the MCPServer instance (typically set via MCPServerConfig.id).\n * @param serverId - The logical ID of the MCP server to retrieve.\n * @param version - Optional specific version of the MCP server to retrieve.\n * @returns The MCP server instance, or undefined if not found or if the specific version is not found.\n */\n public getMCPServer(serverId: string, version?: string): MCPServerBase | undefined {\n if (!this.#mcpServers) {\n return undefined;\n }\n\n const allRegisteredServers = Object.values(this.#mcpServers || {});\n\n const matchingLogicalIdServers = allRegisteredServers.filter(server => server.id === serverId);\n\n if (matchingLogicalIdServers.length === 0) {\n this.#logger?.debug(`No MCP servers found with logical ID: ${serverId}`);\n return undefined;\n }\n\n if (version) {\n const specificVersionServer = matchingLogicalIdServers.find(server => server.version === version);\n if (!specificVersionServer) {\n this.#logger?.debug(`MCP server with logical ID '${serverId}' found, but not version '${version}'.`);\n }\n return specificVersionServer;\n } else {\n // No version specified, find the one with the most recent releaseDate\n if (matchingLogicalIdServers.length === 1) {\n return matchingLogicalIdServers[0];\n }\n\n matchingLogicalIdServers.sort((a, b) => {\n // Ensure releaseDate exists and is a string before creating a Date object\n const dateAVal = a.releaseDate && typeof a.releaseDate === 'string' ? new Date(a.releaseDate).getTime() : NaN;\n const dateBVal = b.releaseDate && typeof b.releaseDate === 'string' ? new Date(b.releaseDate).getTime() : NaN;\n\n if (isNaN(dateAVal) && isNaN(dateBVal)) return 0;\n if (isNaN(dateAVal)) return 1; // Treat invalid/missing dates as older\n if (isNaN(dateBVal)) return -1; // Treat invalid/missing dates as older\n\n return dateBVal - dateAVal; // Sorts in descending order of time (latest first)\n });\n\n // After sorting, the first element should be the latest if its date is valid\n if (matchingLogicalIdServers.length > 0) {\n const latestServer = matchingLogicalIdServers[0];\n if (\n latestServer &&\n latestServer.releaseDate &&\n typeof latestServer.releaseDate === 'string' &&\n !isNaN(new Date(latestServer.releaseDate).getTime())\n ) {\n return latestServer;\n }\n }\n this.#logger?.warn(\n `Could not determine the latest server for logical ID '${serverId}' due to invalid or missing release dates, or no servers left after filtering.`,\n );\n return undefined;\n }\n }\n\n public async addTopicListener(topic: string, listener: (event: any) => Promise<void>) {\n await this.#pubsub.subscribe(topic, listener);\n }\n\n public async removeTopicListener(topic: string, listener: (event: any) => Promise<void>) {\n await this.#pubsub.unsubscribe(topic, listener);\n }\n\n public async startEventEngine() {\n for (const topic in this.#events) {\n if (!this.#events[topic]) {\n continue;\n }\n\n const listeners = Array.isArray(this.#events[topic]) ? this.#events[topic] : [this.#events[topic]];\n for (const listener of listeners) {\n await this.#pubsub.subscribe(topic, listener);\n }\n }\n }\n\n public async stopEventEngine() {\n for (const topic in this.#events) {\n if (!this.#events[topic]) {\n continue;\n }\n\n const listeners = Array.isArray(this.#events[topic]) ? this.#events[topic] : [this.#events[topic]];\n for (const listener of listeners) {\n await this.#pubsub.unsubscribe(topic, listener);\n }\n }\n\n await this.#pubsub.flush();\n }\n\n /**\n * Shutdown Mastra and clean up all resources\n */\n async shutdown(): Promise<void> {\n // Shutdown AI tracing registry and all instances\n await shutdownAITracingRegistry();\n await this.stopEventEngine();\n\n this.#logger?.info('Mastra shutdown completed');\n }\n}\n"]}
@@ -2239,7 +2239,8 @@ var MastraModelOutput = class extends chunkKXCUCBEI_cjs.MastraBase {
2239
2239
  } = chunk.payload.metadata;
2240
2240
  response = {
2241
2241
  ...otherMetadata,
2242
- messages: messageList.get.response.aiV5.model()
2242
+ messages: messageList.get.response.aiV5.model(),
2243
+ uiMessages: messageList.get.response.aiV5.ui()
2243
2244
  };
2244
2245
  }
2245
2246
  this.populateUsageCount(chunk.payload.output.usage);
@@ -2266,7 +2267,8 @@ var MastraModelOutput = class extends chunkKXCUCBEI_cjs.MastraBase {
2266
2267
  } = chunk.payload.metadata;
2267
2268
  response = {
2268
2269
  ...otherMetadata,
2269
- messages: messageList.get.response.aiV5.model()
2270
+ messages: messageList.get.response.aiV5.model(),
2271
+ uiMessages: messageList.get.response.aiV5.ui()
2270
2272
  };
2271
2273
  }
2272
2274
  } else {
@@ -2621,7 +2623,6 @@ var MastraModelOutput = class extends chunkKXCUCBEI_cjs.MastraBase {
2621
2623
  scoringData
2622
2624
  } : {})
2623
2625
  };
2624
- fullOutput.response.messages = this.messageList.get.response.aiV5.model();
2625
2626
  return fullOutput;
2626
2627
  }
2627
2628
  /**
@@ -3115,7 +3116,9 @@ var toolCallInputSchema = z__default.default.object({
3115
3116
  toolCallId: z__default.default.string(),
3116
3117
  toolName: z__default.default.string(),
3117
3118
  args: z__default.default.any(),
3118
- providerMetadata: z__default.default.any()
3119
+ providerMetadata: z__default.default.any(),
3120
+ providerExecuted: z__default.default.boolean().optional(),
3121
+ output: z__default.default.any().optional()
3119
3122
  });
3120
3123
  var toolCallOutputSchema = toolCallInputSchema.extend({
3121
3124
  result: z__default.default.any(),
@@ -3636,6 +3639,32 @@ function createToolCallStep({
3636
3639
  execute: async ({
3637
3640
  inputData
3638
3641
  }) => {
3642
+ if (inputData.providerExecuted) {
3643
+ const tracer2 = getTracer({
3644
+ isEnabled: telemetry_settings?.isEnabled,
3645
+ tracer: telemetry_settings?.tracer
3646
+ });
3647
+ const span2 = tracer2.startSpan("mastra.stream.toolCall").setAttributes({
3648
+ ...assembleOperationName({
3649
+ operationId: "mastra.stream.toolCall",
3650
+ telemetry: telemetry_settings
3651
+ }),
3652
+ "stream.toolCall.toolName": inputData.toolName,
3653
+ "stream.toolCall.toolCallId": inputData.toolCallId,
3654
+ "stream.toolCall.args": JSON.stringify(inputData.args),
3655
+ "stream.toolCall.providerExecuted": true
3656
+ });
3657
+ if (inputData.output) {
3658
+ span2.setAttributes({
3659
+ "stream.toolCall.result": JSON.stringify(inputData.output)
3660
+ });
3661
+ }
3662
+ span2.end();
3663
+ return {
3664
+ ...inputData,
3665
+ result: inputData.output
3666
+ };
3667
+ }
3639
3668
  const tool = tools?.[inputData.toolName] || Object.values(tools || {})?.find(tool2 => `id` in tool2 && tool2.id === inputData.toolName);
3640
3669
  if (!tool) {
3641
3670
  throw new Error(`Tool ${inputData.toolName} not found`);
@@ -3777,7 +3806,8 @@ function createOuterLLMWorkflow({
3777
3806
  toolCallId: toolCall.toolCallId,
3778
3807
  toolName: toolCall.toolName,
3779
3808
  result: toolCall.result,
3780
- providerMetadata: toolCall.providerMetadata
3809
+ providerMetadata: toolCall.providerMetadata,
3810
+ providerExecuted: toolCall.providerExecuted
3781
3811
  }
3782
3812
  };
3783
3813
  rest.controller.enqueue(chunk);
@@ -4156,7 +4186,6 @@ var MastraLLMVNext = class extends chunkKXCUCBEI_cjs.MastraBase {
4156
4186
  }];
4157
4187
  }
4158
4188
  stream({
4159
- messages,
4160
4189
  stopWhen = aiV5.stepCountIs(5),
4161
4190
  maxSteps,
4162
4191
  tools = {},
@@ -4171,7 +4200,9 @@ var MastraLLMVNext = class extends chunkKXCUCBEI_cjs.MastraBase {
4171
4200
  outputProcessors,
4172
4201
  returnScorerData,
4173
4202
  providerOptions,
4174
- tracingContext
4203
+ tracingContext,
4204
+ messageList,
4205
+ _internal
4175
4206
  // ...rest
4176
4207
  }) {
4177
4208
  let stopWhenToUse;
@@ -4180,6 +4211,7 @@ var MastraLLMVNext = class extends chunkKXCUCBEI_cjs.MastraBase {
4180
4211
  } else {
4181
4212
  stopWhenToUse = stopWhen;
4182
4213
  }
4214
+ const messages = messageList.get.all.aiV5.model();
4183
4215
  const model = this.#model;
4184
4216
  this.logger.debug(`[LLM] - Streaming text`, {
4185
4217
  runId,
@@ -4203,11 +4235,6 @@ var MastraLLMVNext = class extends chunkKXCUCBEI_cjs.MastraBase {
4203
4235
  }
4204
4236
  });
4205
4237
  try {
4206
- const messageList = new chunkD3UG2YLU_cjs.MessageList({
4207
- threadId,
4208
- resourceId
4209
- });
4210
- messageList.add(messages, "input");
4211
4238
  const loopOptions = {
4212
4239
  messageList,
4213
4240
  model: this.#model,
@@ -4220,6 +4247,7 @@ var MastraLLMVNext = class extends chunkKXCUCBEI_cjs.MastraBase {
4220
4247
  ...this.experimental_telemetry,
4221
4248
  ...telemetry_settings
4222
4249
  },
4250
+ _internal,
4223
4251
  output,
4224
4252
  outputProcessors,
4225
4253
  returnScorerData,
@@ -9542,16 +9570,17 @@ exports.Agent = class Agent extends (_a = chunkKXCUCBEI_cjs.MastraBase) {
9542
9570
  const systemInstructions = await this.resolveTitleInstructions(runtimeContext, instructions);
9543
9571
  let text = "";
9544
9572
  if (llm.getModel().specificationVersion === "v2") {
9573
+ const messageList = new chunkD3UG2YLU_cjs.MessageList().add([{
9574
+ role: "system",
9575
+ content: systemInstructions
9576
+ }], "system").add([{
9577
+ role: "user",
9578
+ content: JSON.stringify(partsToGen)
9579
+ }], "input");
9545
9580
  const result = llm.stream({
9546
9581
  runtimeContext,
9547
9582
  tracingContext,
9548
- messages: [{
9549
- role: "system",
9550
- content: systemInstructions
9551
- }, {
9552
- role: "user",
9553
- content: JSON.stringify(partsToGen)
9554
- }]
9583
+ messageList
9555
9584
  });
9556
9585
  text = await result.text;
9557
9586
  } else {
@@ -10007,7 +10036,7 @@ exports.Agent = class Agent extends (_a = chunkKXCUCBEI_cjs.MastraBase) {
10007
10036
  threadId,
10008
10037
  resourceId
10009
10038
  });
10010
- const run = workflow.createRun();
10039
+ const run = await workflow.createRunAsync();
10011
10040
  let result;
10012
10041
  if (methodType === "generate") {
10013
10042
  result = await run.start({
@@ -10538,14 +10567,7 @@ Message ${msg.threadId && msg.threadId !== threadObject.id ? "from previous conv
10538
10567
  }];
10539
10568
  }
10540
10569
  if (responseMessages) {
10541
- const messagesWithoutIds = responseMessages.map(m => {
10542
- const {
10543
- id,
10544
- ...messageWithoutId
10545
- } = m;
10546
- return messageWithoutId;
10547
- });
10548
- messageList.add(messagesWithoutIds, "response");
10570
+ messageList.add(responseMessages, "response");
10549
10571
  }
10550
10572
  if (!threadExists) {
10551
10573
  await memory.createThread({
@@ -11060,7 +11082,6 @@ Message ${msg.threadId && msg.threadId !== threadObject.id ? "from previous conv
11060
11082
  id: "prepare-memory-step",
11061
11083
  inputSchema: z.z.any(),
11062
11084
  outputSchema: z.z.object({
11063
- messageObjects: z.z.array(z.z.any()),
11064
11085
  threadExists: z.z.boolean(),
11065
11086
  thread: z.z.any(),
11066
11087
  messageList: z.z.any(),
@@ -11092,7 +11113,6 @@ Message ${msg.threadId && msg.threadId !== threadObject.id ? "from previous conv
11092
11113
  messageList
11093
11114
  });
11094
11115
  return {
11095
- messageObjects: messageList.get.all.prompt(),
11096
11116
  threadExists: false,
11097
11117
  thread: void 0,
11098
11118
  messageList,
@@ -11237,12 +11257,11 @@ the following messages are from ${ymd}
11237
11257
  generateMessageId: this.#mastra?.generateId?.bind(this.#mastra),
11238
11258
  // @ts-ignore Flag for agent network messages
11239
11259
  _agentNetworkAppend: this._agentNetworkAppend
11240
- }).addSystem(instructions || `${this.instructions}.`).addSystem(memorySystemMessage).add(options.context || [], "context").add(processedMemoryMessages, "memory").add(messageList.get.input.v2(), "user").get.all.prompt();
11260
+ }).addSystem(instructions || `${this.instructions}.`).addSystem(memorySystemMessage).add(options.context || [], "context").add(processedMemoryMessages, "memory").add(messageList.get.input.v2(), "user");
11241
11261
  return {
11242
11262
  thread: threadObject,
11243
- messageList,
11263
+ messageList: processedList,
11244
11264
  // add old processed messages + new input messages
11245
- messageObjects: processedList,
11246
11265
  ...(tripwireTriggered && {
11247
11266
  tripwire: true,
11248
11267
  tripwireReason
@@ -11269,7 +11288,10 @@ the following messages are from ${ymd}
11269
11288
  ...inputData,
11270
11289
  outputProcessors,
11271
11290
  returnScorerData: options.returnScorerData,
11272
- tracingContext
11291
+ tracingContext,
11292
+ _internal: {
11293
+ generateId: inputData.experimental_generateMessageId || this.#mastra?.generateId?.bind(this.#mastra)
11294
+ }
11273
11295
  });
11274
11296
  if (format === "aisdk") {
11275
11297
  return streamResult.aisdk.v5;
@@ -11289,7 +11311,6 @@ the following messages are from ${ymd}
11289
11311
  }) => {
11290
11312
  const result2 = {
11291
11313
  ...options,
11292
- messages: inputData["prepare-memory-step"].messageObjects,
11293
11314
  tools: inputData["prepare-tools-step"].convertedTools,
11294
11315
  runId,
11295
11316
  temperature: options.modelSettings?.temperature,
@@ -11391,7 +11412,6 @@ the following messages are from ${ymd}
11391
11412
  effectiveOutputProcessors = effectiveOutputProcessors ? [...effectiveOutputProcessors, structuredProcessor] : [structuredProcessor];
11392
11413
  }
11393
11414
  const loopOptions = {
11394
- messages: result2.messages,
11395
11415
  runtimeContext: result2.runtimeContext,
11396
11416
  tracingContext: {
11397
11417
  currentSpan: agentAISpan
@@ -11415,7 +11435,6 @@ the following messages are from ${ymd}
11415
11435
  return;
11416
11436
  }
11417
11437
  const messageList = inputData["prepare-memory-step"].messageList;
11418
- messageList.add(payload.response.messages, "response");
11419
11438
  try {
11420
11439
  const outputText = messageList.get.all.core().map(m => m.content).join("\n");
11421
11440
  await this.#executeOnFinish({
@@ -11449,14 +11468,20 @@ the following messages are from ${ymd}
11449
11468
  totalUsage: payload.totalUsage
11450
11469
  });
11451
11470
  },
11452
- onStepFinish: result2.onStepFinish
11471
+ onStepFinish: result2.onStepFinish,
11472
+ onChunk: options.onChunk,
11473
+ onError: options.onError,
11474
+ onAbort: options.onAbort,
11475
+ activeTools: options.activeTools,
11476
+ abortSignal: options.abortSignal
11453
11477
  },
11454
11478
  output: options.output,
11455
11479
  outputProcessors: effectiveOutputProcessors,
11456
11480
  modelSettings: {
11457
11481
  temperature: 0,
11458
11482
  ...(options.modelSettings || {})
11459
- }
11483
+ },
11484
+ messageList: inputData["prepare-memory-step"].messageList
11460
11485
  };
11461
11486
  return loopOptions;
11462
11487
  }).then(streamStep).commit();
@@ -11533,14 +11558,8 @@ the following messages are from ${ymd}
11533
11558
  }];
11534
11559
  }
11535
11560
  if (responseMessages) {
11536
- const messagesWithoutIds = responseMessages.map(m => {
11537
- const {
11538
- id,
11539
- ...messageWithoutId
11540
- } = m;
11541
- return messageWithoutId;
11542
- }).filter(m => m.role !== "user");
11543
- messageList.add(messagesWithoutIds, "response");
11561
+ const filteredMessages = responseMessages.filter(m => m.role !== "user");
11562
+ messageList.add(filteredMessages, "response");
11544
11563
  }
11545
11564
  if (!threadExists) {
11546
11565
  await memory.createThread({
@@ -11690,7 +11709,8 @@ the following messages are from ${ymd}
11690
11709
  });
11691
11710
  const mergedGenerateOptions = {
11692
11711
  ...defaultGenerateOptions,
11693
- ...generateOptions
11712
+ ...generateOptions,
11713
+ experimental_generateMessageId: defaultGenerateOptions.experimental_generateMessageId || this.#mastra?.generateId?.bind(this.#mastra)
11694
11714
  };
11695
11715
  const {
11696
11716
  llm,
@@ -11944,7 +11964,8 @@ the following messages are from ${ymd}
11944
11964
  const mergedStreamOptions = {
11945
11965
  ...defaultStreamOptions,
11946
11966
  ...streamOptions,
11947
- onFinish: this.#mergeOnFinishWithTelemetry(streamOptions, defaultStreamOptions)
11967
+ onFinish: this.#mergeOnFinishWithTelemetry(streamOptions, defaultStreamOptions),
11968
+ experimental_generateMessageId: defaultStreamOptions.experimental_generateMessageId || this.#mastra?.generateId?.bind(this.#mastra)
11948
11969
  };
11949
11970
  const {
11950
11971
  llm,
@@ -15991,5 +16012,5 @@ exports.recursivelyCheckForFinalState = recursivelyCheckForFinalState;
15991
16012
  exports.resolveVariables = resolveVariables;
15992
16013
  exports.updateStepInHierarchy = updateStepInHierarchy;
15993
16014
  exports.workflowToStep = workflowToStep;
15994
- //# sourceMappingURL=chunk-C3R2Q3NN.cjs.map
15995
- //# sourceMappingURL=chunk-C3R2Q3NN.cjs.map
16015
+ //# sourceMappingURL=chunk-WJXZMK43.cjs.map
16016
+ //# sourceMappingURL=chunk-WJXZMK43.cjs.map