{"version":3,"sources":["../src/mastra/hooks.ts","../src/mastra/index.ts"],"names":["MastraError","InstrumentClass","Mastra","noopLogger","LogLevel","ConsoleLogger","augmentWithInit","Telemetry","registerHook","__decoratorStart","__decorateElement","__runInitializers"],"mappings":"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","file":"chunk-VP22CDTX.cjs","sourcesContent":["import type { Mastra } from '..';\nimport { ErrorCategory, ErrorDomain, MastraError } from '../error';\nimport type { ScoringHookInput } from '../scores';\n\nexport function createOnScorerHook(mastra: Mastra) {\n  return async (hookData: ScoringHookInput) => {\n    if (!mastra.getStorage()) {\n      return;\n    }\n\n    const storage = mastra.getStorage();\n    const entityId = hookData.entity.id;\n    const entityType = hookData.entityType;\n    const scorer = hookData.scorer;\n\n    let scorerToUse;\n\n    if (entityType === 'AGENT') {\n      const agent = mastra.getAgentById(entityId);\n      const scorers = await agent.getScorers();\n      scorerToUse = scorers[scorer.id];\n    } else if (entityType === 'WORKFLOW') {\n      const workflow = mastra.getWorkflowById(entityId);\n      const scorers = await workflow.getScorers();\n      scorerToUse = scorers[scorer.id];\n    } else {\n      return;\n    }\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      input = hookData.input.filter(m => m.role === 'user');\n    } else {\n      output = { object: hookData.output };\n    }\n\n    const score = await scorerToUse.scorer.run({\n      ...hookData,\n      input,\n      output,\n    });\n\n    const { structuredOutput, ...rest } = hookData;\n    await storage?.saveScore({\n      ...rest,\n      ...score,\n      entityId,\n      scorerId: hookData.scorer.id,\n      metadata: {\n        structuredOutput: !!structuredOutput,\n      },\n    });\n  };\n}\n","import type { Agent } from '../agent';\nimport type { BundlerConfig } from '../bundler/types';\nimport type { MastraDeployer } from '../deployer';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../error';\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 { 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 { MastraVector } from '../vector';\nimport type { Workflow } from '../workflows';\nimport type { LegacyWorkflow } from '../workflows/legacy';\nimport { createOnScorerHook } from './hooks';\n\ntype NonEmpty<T extends string> = T extends '' ? never : T;\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> {\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  idGenerator?: () => NonEmpty<string>;\n  deployer?: MastraDeployer;\n  server?: ServerConfig;\n  mcpServers?: TMCPServers;\n  bundler?: BundlerConfig;\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\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> {\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  #server?: ServerConfig;\n  #mcpServers?: TMCPServers;\n  #bundler?: BundlerConfig;\n  #idGenerator?: () => NonEmpty<string>;\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  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: () => NonEmpty<string>) {\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    >,\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      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      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    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    this.setLogger({ logger });\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 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\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"]}