@mastra/core 0.13.0-alpha.3 → 0.13.0

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 (135) hide show
  1. package/ai-tracing.d.ts +1 -0
  2. package/dist/agent/index.cjs +10 -10
  3. package/dist/agent/index.js +2 -2
  4. package/dist/agent/input-processor/processors/index.cjs +6 -6
  5. package/dist/agent/input-processor/processors/index.js +1 -1
  6. package/dist/ai-tracing/base.d.ts +87 -0
  7. package/dist/ai-tracing/base.d.ts.map +1 -0
  8. package/dist/ai-tracing/default.d.ts +26 -0
  9. package/dist/ai-tracing/default.d.ts.map +1 -0
  10. package/dist/ai-tracing/index.cjs +585 -0
  11. package/dist/ai-tracing/index.cjs.map +1 -0
  12. package/dist/ai-tracing/index.d.ts +8 -0
  13. package/dist/ai-tracing/index.d.ts.map +1 -0
  14. package/dist/ai-tracing/index.js +571 -0
  15. package/dist/ai-tracing/index.js.map +1 -0
  16. package/dist/ai-tracing/no-op.d.ts +22 -0
  17. package/dist/ai-tracing/no-op.d.ts.map +1 -0
  18. package/dist/ai-tracing/registry.d.ts +27 -0
  19. package/dist/ai-tracing/registry.d.ts.map +1 -0
  20. package/dist/ai-tracing/types.d.ts +281 -0
  21. package/dist/ai-tracing/types.d.ts.map +1 -0
  22. package/dist/base.cjs +2 -2
  23. package/dist/base.js +1 -1
  24. package/dist/bundler/index.cjs +2 -2
  25. package/dist/bundler/index.js +1 -1
  26. package/dist/{chunk-YZMDLTKU.js → chunk-2ED6PVVF.js} +3 -3
  27. package/dist/{chunk-YZMDLTKU.js.map → chunk-2ED6PVVF.js.map} +1 -1
  28. package/dist/{chunk-LQGUSOL6.cjs → chunk-2EXWZ3PI.cjs} +4 -4
  29. package/dist/{chunk-LQGUSOL6.cjs.map → chunk-2EXWZ3PI.cjs.map} +1 -1
  30. package/dist/{chunk-IXLNZWTK.cjs → chunk-4JPOVSKQ.cjs} +12 -12
  31. package/dist/{chunk-IXLNZWTK.cjs.map → chunk-4JPOVSKQ.cjs.map} +1 -1
  32. package/dist/{chunk-5BGXG7RU.cjs → chunk-4L6RV2TV.cjs} +5 -5
  33. package/dist/{chunk-5BGXG7RU.cjs.map → chunk-4L6RV2TV.cjs.map} +1 -1
  34. package/dist/{chunk-ISULVM3M.js → chunk-57EVKFM5.js} +5 -5
  35. package/dist/{chunk-ISULVM3M.js.map → chunk-57EVKFM5.js.map} +1 -1
  36. package/dist/{chunk-R3SQUADS.js → chunk-6AR2Z5ZG.js} +3 -2
  37. package/dist/chunk-6AR2Z5ZG.js.map +1 -0
  38. package/dist/{chunk-MZBE4M4N.cjs → chunk-6S7RRJON.cjs} +31 -31
  39. package/dist/{chunk-MZBE4M4N.cjs.map → chunk-6S7RRJON.cjs.map} +1 -1
  40. package/dist/{chunk-3FPS3OWO.cjs → chunk-A3BSP25E.cjs} +9 -9
  41. package/dist/{chunk-3FPS3OWO.cjs.map → chunk-A3BSP25E.cjs.map} +1 -1
  42. package/dist/{chunk-GTU3WRLN.js → chunk-B7JOIJJU.js} +3 -3
  43. package/dist/{chunk-GTU3WRLN.js.map → chunk-B7JOIJJU.js.map} +1 -1
  44. package/dist/{chunk-WVIY3V3E.cjs → chunk-CP7L3XWF.cjs} +4 -4
  45. package/dist/{chunk-WVIY3V3E.cjs.map → chunk-CP7L3XWF.cjs.map} +1 -1
  46. package/dist/{chunk-WHQWL4G5.cjs → chunk-DSMC4VSS.cjs} +4 -4
  47. package/dist/{chunk-WHQWL4G5.cjs.map → chunk-DSMC4VSS.cjs.map} +1 -1
  48. package/dist/{chunk-GCHV2EI2.cjs → chunk-EKPRMZND.cjs} +4 -4
  49. package/dist/{chunk-GCHV2EI2.cjs.map → chunk-EKPRMZND.cjs.map} +1 -1
  50. package/dist/{chunk-65L3POQE.js → chunk-FTPL7ILZ.js} +3 -3
  51. package/dist/{chunk-65L3POQE.js.map → chunk-FTPL7ILZ.js.map} +1 -1
  52. package/dist/{chunk-FQ4W6KBT.js → chunk-FUERFM46.js} +3 -3
  53. package/dist/{chunk-FQ4W6KBT.js.map → chunk-FUERFM46.js.map} +1 -1
  54. package/dist/{chunk-2RI6A7KD.cjs → chunk-GRL3ZK5B.cjs} +4 -4
  55. package/dist/{chunk-2RI6A7KD.cjs.map → chunk-GRL3ZK5B.cjs.map} +1 -1
  56. package/dist/{chunk-TXGTGUX2.cjs → chunk-IDDUQR6P.cjs} +3 -2
  57. package/dist/chunk-IDDUQR6P.cjs.map +1 -0
  58. package/dist/chunk-J7PCL3MN.cjs +14 -0
  59. package/dist/{chunk-64G2N4FJ.cjs.map → chunk-J7PCL3MN.cjs.map} +1 -1
  60. package/dist/{chunk-Q3XNHNLP.cjs → chunk-JGCB7U4Y.cjs} +9 -9
  61. package/dist/{chunk-Q3XNHNLP.cjs.map → chunk-JGCB7U4Y.cjs.map} +1 -1
  62. package/dist/{chunk-EOQURKKG.cjs → chunk-MSXZK7BL.cjs} +5 -5
  63. package/dist/{chunk-EOQURKKG.cjs.map → chunk-MSXZK7BL.cjs.map} +1 -1
  64. package/dist/{chunk-4ZERI5QT.js → chunk-OFCCIPH2.js} +3 -3
  65. package/dist/{chunk-4ZERI5QT.js.map → chunk-OFCCIPH2.js.map} +1 -1
  66. package/dist/{chunk-JIYY2P56.js → chunk-OM556XHR.js} +5 -5
  67. package/dist/{chunk-JIYY2P56.js.map → chunk-OM556XHR.js.map} +1 -1
  68. package/dist/{chunk-YUVS5EDM.js → chunk-OXARRBRN.js} +3 -3
  69. package/dist/{chunk-YUVS5EDM.js.map → chunk-OXARRBRN.js.map} +1 -1
  70. package/dist/{chunk-R6WBSG4Q.js → chunk-QEGM6FNZ.js} +3 -3
  71. package/dist/{chunk-R6WBSG4Q.js.map → chunk-QEGM6FNZ.js.map} +1 -1
  72. package/dist/{chunk-HPWP7KJY.js → chunk-QVCKOYRP.js} +3 -3
  73. package/dist/{chunk-HPWP7KJY.js.map → chunk-QVCKOYRP.js.map} +1 -1
  74. package/dist/{chunk-PBAJIFCU.js → chunk-RLQIQX4O.js} +5 -5
  75. package/dist/{chunk-PBAJIFCU.js.map → chunk-RLQIQX4O.js.map} +1 -1
  76. package/dist/{chunk-YVAWHTHK.cjs → chunk-U2CK6AN5.cjs} +4 -4
  77. package/dist/{chunk-YVAWHTHK.cjs.map → chunk-U2CK6AN5.cjs.map} +1 -1
  78. package/dist/{chunk-K2243MGP.js → chunk-UAQURMQJ.js} +3 -3
  79. package/dist/{chunk-K2243MGP.js.map → chunk-UAQURMQJ.js.map} +1 -1
  80. package/dist/{chunk-6Y3RTBPF.cjs → chunk-VZUGB775.cjs} +4 -4
  81. package/dist/{chunk-6Y3RTBPF.cjs.map → chunk-VZUGB775.cjs.map} +1 -1
  82. package/dist/{chunk-LQ54NO3E.js → chunk-YBY6XXFX.js} +3 -3
  83. package/dist/{chunk-LQ54NO3E.js.map → chunk-YBY6XXFX.js.map} +1 -1
  84. package/dist/{chunk-2WZYQCRK.cjs → chunk-YT4RGZYO.cjs} +8 -8
  85. package/dist/{chunk-2WZYQCRK.cjs.map → chunk-YT4RGZYO.cjs.map} +1 -1
  86. package/dist/{chunk-E26T2PAG.js → chunk-ZRRHATKS.js} +8 -8
  87. package/dist/{chunk-E26T2PAG.js.map → chunk-ZRRHATKS.js.map} +1 -1
  88. package/dist/{chunk-WNSZ4ZMC.js → chunk-ZYQFY2H5.js} +3 -3
  89. package/dist/{chunk-WNSZ4ZMC.js.map → chunk-ZYQFY2H5.js.map} +1 -1
  90. package/dist/deployer/index.cjs +2 -2
  91. package/dist/deployer/index.js +1 -1
  92. package/dist/index.cjs +50 -50
  93. package/dist/index.js +14 -14
  94. package/dist/logger/constants.d.ts +1 -0
  95. package/dist/logger/constants.d.ts.map +1 -1
  96. package/dist/logger/index.cjs +6 -6
  97. package/dist/logger/index.js +1 -1
  98. package/dist/mastra/index.cjs +2 -2
  99. package/dist/mastra/index.js +1 -1
  100. package/dist/mcp/index.cjs +4 -4
  101. package/dist/mcp/index.js +2 -2
  102. package/dist/memory/index.cjs +4 -4
  103. package/dist/memory/index.js +1 -1
  104. package/dist/network/index.cjs +6 -6
  105. package/dist/network/index.js +3 -3
  106. package/dist/network/vNext/index.cjs +17 -17
  107. package/dist/network/vNext/index.js +4 -4
  108. package/dist/relevance/index.cjs +4 -4
  109. package/dist/relevance/index.js +1 -1
  110. package/dist/scores/index.cjs +5 -5
  111. package/dist/scores/index.js +2 -2
  112. package/dist/server/index.cjs +2 -2
  113. package/dist/server/index.js +1 -1
  114. package/dist/storage/index.cjs +15 -15
  115. package/dist/storage/index.js +4 -4
  116. package/dist/test-utils/llm-mock.cjs +2 -2
  117. package/dist/test-utils/llm-mock.js +1 -1
  118. package/dist/tts/index.cjs +2 -2
  119. package/dist/tts/index.js +1 -1
  120. package/dist/utils.cjs +15 -15
  121. package/dist/utils.js +1 -1
  122. package/dist/vector/index.cjs +2 -2
  123. package/dist/vector/index.js +1 -1
  124. package/dist/voice/index.cjs +4 -4
  125. package/dist/voice/index.js +1 -1
  126. package/dist/workflows/index.cjs +10 -10
  127. package/dist/workflows/index.js +1 -1
  128. package/dist/workflows/legacy/index.cjs +22 -22
  129. package/dist/workflows/legacy/index.js +1 -1
  130. package/dist/workflows/types.d.ts +1 -0
  131. package/dist/workflows/types.d.ts.map +1 -1
  132. package/package.json +4 -4
  133. package/dist/chunk-64G2N4FJ.cjs +0 -14
  134. package/dist/chunk-R3SQUADS.js.map +0 -1
  135. package/dist/chunk-TXGTGUX2.cjs.map +0 -1
@@ -5,7 +5,7 @@ var chunkV6NA7QLK_cjs = require('./chunk-V6NA7QLK.cjs');
5
5
  var chunkTSNDVBUU_cjs = require('./chunk-TSNDVBUU.cjs');
6
6
  var chunk6TEQIYXV_cjs = require('./chunk-6TEQIYXV.cjs');
7
7
  var chunk3BFAQTC3_cjs = require('./chunk-3BFAQTC3.cjs');
8
- var chunkTXGTGUX2_cjs = require('./chunk-TXGTGUX2.cjs');
8
+ var chunkIDDUQR6P_cjs = require('./chunk-IDDUQR6P.cjs');
9
9
  var chunkEBVYYC2Q_cjs = require('./chunk-EBVYYC2Q.cjs');
10
10
 
11
11
  // src/mastra/hooks.ts
@@ -165,8 +165,8 @@ exports.Mastra = class Mastra {
165
165
  if (config?.logger) {
166
166
  logger = config.logger;
167
167
  } else {
168
- const levelOnEnv = process.env.NODE_ENV === "production" && process.env.MASTRA_DEV !== "true" ? chunkTXGTGUX2_cjs.LogLevel.WARN : chunkTXGTGUX2_cjs.LogLevel.INFO;
169
- logger = new chunkTXGTGUX2_cjs.ConsoleLogger({
168
+ const levelOnEnv = process.env.NODE_ENV === "production" && process.env.MASTRA_DEV !== "true" ? chunkIDDUQR6P_cjs.LogLevel.WARN : chunkIDDUQR6P_cjs.LogLevel.INFO;
169
+ logger = new chunkIDDUQR6P_cjs.ConsoleLogger({
170
170
  name: "Mastra",
171
171
  level: levelOnEnv
172
172
  });
@@ -819,5 +819,5 @@ exports.Mastra = /*@__PURE__*/(_ => {
819
819
  chunkEBVYYC2Q_cjs.__runInitializers(_init, 1, exports.Mastra);
820
820
  return exports.Mastra;
821
821
  })();
822
- //# sourceMappingURL=chunk-5BGXG7RU.cjs.map
823
- //# sourceMappingURL=chunk-5BGXG7RU.cjs.map
822
+ //# sourceMappingURL=chunk-4L6RV2TV.cjs.map
823
+ //# sourceMappingURL=chunk-4L6RV2TV.cjs.map
@@ -1 +1 @@
1
- {"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-5BGXG7RU.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 try {\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 output = { object: hookData.output };\n }\n const { structuredOutput, ...rest } = hookData as any; // temporary fix;\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 await storage?.saveScore(payload);\n } catch (error) {\n const mastraError = new MastraError(\n {\n id: 'MASTR_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","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"]}
1
+ {"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-4L6RV2TV.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 try {\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 output = { object: hookData.output };\n }\n const { structuredOutput, ...rest } = hookData as any; // temporary fix;\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 await storage?.saveScore(payload);\n } catch (error) {\n const mastraError = new MastraError(\n {\n id: 'MASTR_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","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"]}
@@ -1,7 +1,7 @@
1
1
  import { augmentWithInit } from './chunk-436FFEF6.js';
2
- import { MessageList } from './chunk-4ZERI5QT.js';
3
- import { deepMerge } from './chunk-GTU3WRLN.js';
4
- import { MastraBase } from './chunk-FQ4W6KBT.js';
2
+ import { MessageList } from './chunk-OFCCIPH2.js';
3
+ import { deepMerge } from './chunk-B7JOIJJU.js';
4
+ import { MastraBase } from './chunk-FUERFM46.js';
5
5
 
6
6
  // src/memory/memory.ts
7
7
  var MemoryProcessor = class extends MastraBase {
@@ -248,5 +248,5 @@ https://mastra.ai/en/docs/memory/overview`
248
248
  };
249
249
 
250
250
  export { MastraMemory, MemoryProcessor, memoryDefaultOptions };
251
- //# sourceMappingURL=chunk-ISULVM3M.js.map
252
- //# sourceMappingURL=chunk-ISULVM3M.js.map
251
+ //# sourceMappingURL=chunk-57EVKFM5.js.map
252
+ //# sourceMappingURL=chunk-57EVKFM5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/memory/memory.ts"],"names":[],"mappings":"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","file":"chunk-ISULVM3M.js","sourcesContent":["import type { AssistantContent, UserContent, CoreMessage, EmbeddingModel } from 'ai';\n\nimport { MessageList } from '../agent/message-list';\nimport type { MastraMessageV2, UIMessageWithMetadata } from '../agent/message-list';\nimport { MastraBase } from '../base';\nimport type { Mastra } from '../mastra';\nimport type { MastraStorage, PaginationInfo, StorageGetMessagesArg, ThreadSortOptions } from '../storage';\nimport { augmentWithInit } from '../storage/storageWithInit';\nimport type { CoreTool } from '../tools';\nimport { deepMerge } from '../utils';\nimport type { MastraVector } from '../vector';\n\nimport type {\n SharedMemoryConfig,\n StorageThreadType,\n MemoryConfig,\n MastraMessageV1,\n WorkingMemoryTemplate,\n} from './types';\n\nexport type MemoryProcessorOpts = {\n systemMessage?: string;\n memorySystemMessage?: string;\n newMessages?: CoreMessage[];\n};\n/**\n * Interface for message processors that can filter or transform messages\n * before they're sent to the LLM.\n */\nexport abstract class MemoryProcessor extends MastraBase {\n /**\n * Process a list of messages and return a filtered or transformed list.\n * @param messages The messages to process\n * @returns The processed messages\n */\n process(messages: CoreMessage[], _opts: MemoryProcessorOpts): CoreMessage[] {\n return messages;\n }\n}\n\nexport const memoryDefaultOptions = {\n lastMessages: 10,\n semanticRecall: false,\n threads: {\n generateTitle: false,\n },\n workingMemory: {\n enabled: false,\n template: `\n# User Information\n- **First Name**: \n- **Last Name**: \n- **Location**: \n- **Occupation**: \n- **Interests**: \n- **Goals**: \n- **Events**: \n- **Facts**: \n- **Projects**: \n`,\n },\n} satisfies MemoryConfig;\n\n/**\n * Abstract Memory class that defines the interface for storing and retrieving\n * conversation threads and messages.\n */\nexport abstract class MastraMemory extends MastraBase {\n MAX_CONTEXT_TOKENS?: number;\n\n protected _storage?: MastraStorage;\n vector?: MastraVector;\n embedder?: EmbeddingModel<string>;\n private processors: MemoryProcessor[] = [];\n protected threadConfig: MemoryConfig = { ...memoryDefaultOptions };\n #mastra?: Mastra;\n\n constructor(config: { name: string } & SharedMemoryConfig) {\n super({ component: 'MEMORY', name: config.name });\n\n if (config.options) this.threadConfig = this.getMergedThreadConfig(config.options);\n if (config.processors) this.processors = config.processors;\n if (config.storage) {\n this._storage = augmentWithInit(config.storage);\n this._hasOwnStorage = true;\n }\n\n if (this.threadConfig.semanticRecall) {\n if (!config.vector) {\n throw new Error(\n `Semantic recall requires a vector store to be configured.\\n\\nhttps://mastra.ai/en/docs/memory/semantic-recall`,\n );\n }\n this.vector = config.vector;\n\n if (!config.embedder) {\n throw new Error(\n `Semantic recall requires an embedder to be configured.\\n\\nhttps://mastra.ai/en/docs/memory/semantic-recall`,\n );\n }\n this.embedder = config.embedder;\n }\n }\n\n /**\n * Internal method used by Mastra to register itself with the memory.\n * @param mastra The Mastra instance.\n * @internal\n */\n __registerMastra(mastra: Mastra): void {\n this.#mastra = mastra;\n }\n\n protected _hasOwnStorage = false;\n get hasOwnStorage() {\n return this._hasOwnStorage;\n }\n\n get storage() {\n if (!this._storage) {\n throw new Error(\n `Memory requires a storage provider to function. Add a storage configuration to Memory or to your Mastra instance.\\n\\nhttps://mastra.ai/en/docs/memory/overview`,\n );\n }\n return this._storage;\n }\n\n public setStorage(storage: MastraStorage) {\n this._storage = augmentWithInit(storage);\n }\n\n public setVector(vector: MastraVector) {\n this.vector = vector;\n }\n\n public setEmbedder(embedder: EmbeddingModel<string>) {\n this.embedder = embedder;\n }\n\n /**\n * Get a system message to inject into the conversation.\n * This will be called before each conversation turn.\n * Implementations can override this to inject custom system messages.\n */\n public async getSystemMessage(_input: {\n threadId: string;\n resourceId?: string;\n memoryConfig?: MemoryConfig;\n }): Promise<string | null> {\n return null;\n }\n\n /**\n * Get tools that should be available to the agent.\n * This will be called when converting tools for the agent.\n * Implementations can override this to provide additional tools.\n */\n public getTools(_config?: MemoryConfig): Record<string, CoreTool> {\n return {};\n }\n\n protected async createEmbeddingIndex(dimensions?: number): Promise<{ indexName: string }> {\n const defaultDimensions = 1536;\n const isDefault = dimensions === defaultDimensions;\n const usedDimensions = dimensions ?? defaultDimensions;\n const separator = this.vector?.indexSeparator ?? '_';\n const indexName = isDefault\n ? `memory${separator}messages`\n : `memory${separator}messages${separator}${usedDimensions}`;\n\n if (typeof this.vector === `undefined`) {\n throw new Error(`Tried to create embedding index but no vector db is attached to this Memory instance.`);\n }\n await this.vector.createIndex({\n indexName,\n dimension: usedDimensions,\n });\n return { indexName };\n }\n\n public getMergedThreadConfig(config?: MemoryConfig): MemoryConfig {\n if (config?.workingMemory && 'use' in config.workingMemory) {\n throw new Error('The workingMemory.use option has been removed. Working memory always uses tool-call mode.');\n }\n const mergedConfig = deepMerge(this.threadConfig, config || {});\n\n if (config?.workingMemory?.schema) {\n if (mergedConfig.workingMemory) {\n mergedConfig.workingMemory.schema = config.workingMemory.schema;\n }\n }\n\n return mergedConfig;\n }\n\n /**\n * Apply all configured message processors to a list of messages.\n * @param messages The messages to process\n * @returns The processed messages\n */\n protected applyProcessors(\n messages: CoreMessage[],\n opts: {\n processors?: MemoryProcessor[];\n } & MemoryProcessorOpts,\n ): CoreMessage[] {\n const processors = opts.processors || this.processors;\n if (!processors || processors.length === 0) {\n return messages;\n }\n\n let processedMessages = [...messages];\n\n for (const processor of processors) {\n processedMessages = processor.process(processedMessages, {\n systemMessage: opts.systemMessage,\n newMessages: opts.newMessages,\n memorySystemMessage: opts.memorySystemMessage,\n });\n }\n\n return processedMessages;\n }\n\n processMessages({\n messages,\n processors,\n ...opts\n }: {\n messages: CoreMessage[];\n processors?: MemoryProcessor[];\n } & MemoryProcessorOpts) {\n return this.applyProcessors(messages, { processors: processors || this.processors, ...opts });\n }\n\n abstract rememberMessages({\n threadId,\n resourceId,\n vectorMessageSearch,\n config,\n }: {\n threadId: string;\n resourceId?: string;\n vectorMessageSearch?: string;\n config?: MemoryConfig;\n }): Promise<{ messages: MastraMessageV1[]; messagesV2: MastraMessageV2[] }>;\n\n estimateTokens(text: string): number {\n return Math.ceil(text.split(' ').length * 1.3);\n }\n\n /**\n * Retrieves a specific thread by its ID\n * @param threadId - The unique identifier of the thread\n * @returns Promise resolving to the thread or null if not found\n */\n abstract getThreadById({ threadId }: { threadId: string }): Promise<StorageThreadType | null>;\n\n /**\n * Retrieves all threads that belong to the specified resource.\n * @param resourceId - The unique identifier of the resource\n * @param orderBy - Which timestamp field to sort by (`'createdAt'` or `'updatedAt'`);\n * defaults to `'createdAt'`\n * @param sortDirection - Sort order for the results (`'ASC'` or `'DESC'`);\n * defaults to `'DESC'`\n * @returns Promise resolving to an array of matching threads; resolves to an empty array\n * if the resource has no threads\n */\n abstract getThreadsByResourceId({\n resourceId,\n orderBy,\n sortDirection,\n }: { resourceId: string } & ThreadSortOptions): Promise<StorageThreadType[]>;\n\n abstract getThreadsByResourceIdPaginated(\n args: {\n resourceId: string;\n page: number;\n perPage: number;\n } & ThreadSortOptions,\n ): Promise<PaginationInfo & { threads: StorageThreadType[] }>;\n\n /**\n * Saves or updates a thread\n * @param thread - The thread data to save\n * @returns Promise resolving to the saved thread\n */\n abstract saveThread({\n thread,\n memoryConfig,\n }: {\n thread: StorageThreadType;\n memoryConfig?: MemoryConfig;\n }): Promise<StorageThreadType>;\n\n /**\n * Saves messages to a thread\n * @param messages - Array of messages to save\n * @returns Promise resolving to the saved messages\n */\n abstract saveMessages(args: {\n messages: (MastraMessageV1 | MastraMessageV2)[] | MastraMessageV1[] | MastraMessageV2[];\n memoryConfig?: MemoryConfig | undefined;\n format?: 'v1';\n }): Promise<MastraMessageV1[]>;\n abstract saveMessages(args: {\n messages: (MastraMessageV1 | MastraMessageV2)[] | MastraMessageV1[] | MastraMessageV2[];\n memoryConfig?: MemoryConfig | undefined;\n format: 'v2';\n }): Promise<MastraMessageV2[]>;\n abstract saveMessages(args: {\n messages: (MastraMessageV1 | MastraMessageV2)[] | MastraMessageV1[] | MastraMessageV2[];\n memoryConfig?: MemoryConfig | undefined;\n format?: 'v1' | 'v2';\n }): Promise<MastraMessageV2[] | MastraMessageV1[]>;\n\n /**\n * Retrieves all messages for a specific thread\n * @param threadId - The unique identifier of the thread\n * @returns Promise resolving to array of messages and uiMessages\n */\n abstract query({\n threadId,\n resourceId,\n selectBy,\n }: StorageGetMessagesArg): Promise<{ messages: CoreMessage[]; uiMessages: UIMessageWithMetadata[] }>;\n\n /**\n * Helper method to create a new thread\n * @param title - Optional title for the thread\n * @param metadata - Optional metadata for the thread\n * @returns Promise resolving to the created thread\n */\n async createThread({\n threadId,\n resourceId,\n title,\n metadata,\n memoryConfig,\n saveThread = true,\n }: {\n resourceId: string;\n threadId?: string;\n title?: string;\n metadata?: Record<string, unknown>;\n memoryConfig?: MemoryConfig;\n saveThread?: boolean;\n }): Promise<StorageThreadType> {\n const thread: StorageThreadType = {\n id: threadId || this.generateId(),\n title: title || `New Thread ${new Date().toISOString()}`,\n resourceId,\n createdAt: new Date(),\n updatedAt: new Date(),\n metadata,\n };\n\n return saveThread ? this.saveThread({ thread, memoryConfig }) : thread;\n }\n\n /**\n * Helper method to delete a thread\n * @param threadId - the id of the thread to delete\n */\n abstract deleteThread(threadId: string): Promise<void>;\n\n /**\n * Helper method to add a single message to a thread\n * @param threadId - The thread to add the message to\n * @param content - The message content\n * @param role - The role of the message sender\n * @param type - The type of the message\n * @param toolNames - Optional array of tool names that were called\n * @param toolCallArgs - Optional array of tool call arguments\n * @param toolCallIds - Optional array of tool call ids\n * @returns Promise resolving to the saved message\n * @deprecated use saveMessages instead\n */\n async addMessage({\n threadId,\n resourceId,\n config,\n content,\n role,\n type,\n toolNames,\n toolCallArgs,\n toolCallIds,\n }: {\n threadId: string;\n resourceId: string;\n config?: MemoryConfig;\n content: UserContent | AssistantContent;\n role: 'user' | 'assistant';\n type: 'text' | 'tool-call' | 'tool-result';\n toolNames?: string[];\n toolCallArgs?: Record<string, unknown>[];\n toolCallIds?: string[];\n }): Promise<MastraMessageV1> {\n const message: MastraMessageV1 = {\n id: this.generateId(),\n content,\n role,\n createdAt: new Date(),\n threadId,\n resourceId,\n type,\n toolNames,\n toolCallArgs,\n toolCallIds,\n };\n\n const savedMessages = await this.saveMessages({ messages: [message], memoryConfig: config });\n const list = new MessageList({ threadId, resourceId }).add(savedMessages[0]!, 'memory');\n return list.get.all.v1()[0]!;\n }\n\n /**\n * Generates a unique identifier\n * @returns A unique string ID\n */\n public generateId(): string {\n return this.#mastra?.generateId() || crypto.randomUUID();\n }\n\n /**\n * Retrieves working memory for a specific thread\n * @param threadId - The unique identifier of the thread\n * @param resourceId - The unique identifier of the resource\n * @param memoryConfig - Optional memory configuration\n * @returns Promise resolving to working memory data or null if not found\n */\n abstract getWorkingMemory({\n threadId,\n resourceId,\n memoryConfig,\n }: {\n threadId: string;\n resourceId?: string;\n memoryConfig?: MemoryConfig;\n }): Promise<string | null>;\n\n /**\n * Retrieves working memory template for a specific thread\n * @param memoryConfig - Optional memory configuration\n * @returns Promise resolving to working memory template or null if not found\n */\n abstract getWorkingMemoryTemplate({\n memoryConfig,\n }?: {\n memoryConfig?: MemoryConfig;\n }): Promise<WorkingMemoryTemplate | null>;\n\n abstract updateWorkingMemory({\n threadId,\n resourceId,\n workingMemory,\n memoryConfig,\n }: {\n threadId: string;\n resourceId?: string;\n workingMemory: string;\n memoryConfig?: MemoryConfig;\n }): Promise<void>;\n\n /**\n * @warning experimental! can be removed or changed at any time\n */\n abstract __experimental_updateWorkingMemoryVNext({\n threadId,\n resourceId,\n workingMemory,\n searchString,\n memoryConfig,\n }: {\n threadId: string;\n resourceId?: string;\n workingMemory: string;\n searchString?: string;\n memoryConfig?: MemoryConfig;\n }): Promise<{ success: boolean; reason: string }>;\n\n /**\n * Deletes multiple messages by their IDs\n * @param messageIds - Array of message IDs to delete\n * @returns Promise that resolves when all messages are deleted\n */\n abstract deleteMessages(messageIds: string[]): Promise<void>;\n}\n"]}
1
+ {"version":3,"sources":["../src/memory/memory.ts"],"names":[],"mappings":"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","file":"chunk-57EVKFM5.js","sourcesContent":["import type { AssistantContent, UserContent, CoreMessage, EmbeddingModel } from 'ai';\n\nimport { MessageList } from '../agent/message-list';\nimport type { MastraMessageV2, UIMessageWithMetadata } from '../agent/message-list';\nimport { MastraBase } from '../base';\nimport type { Mastra } from '../mastra';\nimport type { MastraStorage, PaginationInfo, StorageGetMessagesArg, ThreadSortOptions } from '../storage';\nimport { augmentWithInit } from '../storage/storageWithInit';\nimport type { CoreTool } from '../tools';\nimport { deepMerge } from '../utils';\nimport type { MastraVector } from '../vector';\n\nimport type {\n SharedMemoryConfig,\n StorageThreadType,\n MemoryConfig,\n MastraMessageV1,\n WorkingMemoryTemplate,\n} from './types';\n\nexport type MemoryProcessorOpts = {\n systemMessage?: string;\n memorySystemMessage?: string;\n newMessages?: CoreMessage[];\n};\n/**\n * Interface for message processors that can filter or transform messages\n * before they're sent to the LLM.\n */\nexport abstract class MemoryProcessor extends MastraBase {\n /**\n * Process a list of messages and return a filtered or transformed list.\n * @param messages The messages to process\n * @returns The processed messages\n */\n process(messages: CoreMessage[], _opts: MemoryProcessorOpts): CoreMessage[] {\n return messages;\n }\n}\n\nexport const memoryDefaultOptions = {\n lastMessages: 10,\n semanticRecall: false,\n threads: {\n generateTitle: false,\n },\n workingMemory: {\n enabled: false,\n template: `\n# User Information\n- **First Name**: \n- **Last Name**: \n- **Location**: \n- **Occupation**: \n- **Interests**: \n- **Goals**: \n- **Events**: \n- **Facts**: \n- **Projects**: \n`,\n },\n} satisfies MemoryConfig;\n\n/**\n * Abstract Memory class that defines the interface for storing and retrieving\n * conversation threads and messages.\n */\nexport abstract class MastraMemory extends MastraBase {\n MAX_CONTEXT_TOKENS?: number;\n\n protected _storage?: MastraStorage;\n vector?: MastraVector;\n embedder?: EmbeddingModel<string>;\n private processors: MemoryProcessor[] = [];\n protected threadConfig: MemoryConfig = { ...memoryDefaultOptions };\n #mastra?: Mastra;\n\n constructor(config: { name: string } & SharedMemoryConfig) {\n super({ component: 'MEMORY', name: config.name });\n\n if (config.options) this.threadConfig = this.getMergedThreadConfig(config.options);\n if (config.processors) this.processors = config.processors;\n if (config.storage) {\n this._storage = augmentWithInit(config.storage);\n this._hasOwnStorage = true;\n }\n\n if (this.threadConfig.semanticRecall) {\n if (!config.vector) {\n throw new Error(\n `Semantic recall requires a vector store to be configured.\\n\\nhttps://mastra.ai/en/docs/memory/semantic-recall`,\n );\n }\n this.vector = config.vector;\n\n if (!config.embedder) {\n throw new Error(\n `Semantic recall requires an embedder to be configured.\\n\\nhttps://mastra.ai/en/docs/memory/semantic-recall`,\n );\n }\n this.embedder = config.embedder;\n }\n }\n\n /**\n * Internal method used by Mastra to register itself with the memory.\n * @param mastra The Mastra instance.\n * @internal\n */\n __registerMastra(mastra: Mastra): void {\n this.#mastra = mastra;\n }\n\n protected _hasOwnStorage = false;\n get hasOwnStorage() {\n return this._hasOwnStorage;\n }\n\n get storage() {\n if (!this._storage) {\n throw new Error(\n `Memory requires a storage provider to function. Add a storage configuration to Memory or to your Mastra instance.\\n\\nhttps://mastra.ai/en/docs/memory/overview`,\n );\n }\n return this._storage;\n }\n\n public setStorage(storage: MastraStorage) {\n this._storage = augmentWithInit(storage);\n }\n\n public setVector(vector: MastraVector) {\n this.vector = vector;\n }\n\n public setEmbedder(embedder: EmbeddingModel<string>) {\n this.embedder = embedder;\n }\n\n /**\n * Get a system message to inject into the conversation.\n * This will be called before each conversation turn.\n * Implementations can override this to inject custom system messages.\n */\n public async getSystemMessage(_input: {\n threadId: string;\n resourceId?: string;\n memoryConfig?: MemoryConfig;\n }): Promise<string | null> {\n return null;\n }\n\n /**\n * Get tools that should be available to the agent.\n * This will be called when converting tools for the agent.\n * Implementations can override this to provide additional tools.\n */\n public getTools(_config?: MemoryConfig): Record<string, CoreTool> {\n return {};\n }\n\n protected async createEmbeddingIndex(dimensions?: number): Promise<{ indexName: string }> {\n const defaultDimensions = 1536;\n const isDefault = dimensions === defaultDimensions;\n const usedDimensions = dimensions ?? defaultDimensions;\n const separator = this.vector?.indexSeparator ?? '_';\n const indexName = isDefault\n ? `memory${separator}messages`\n : `memory${separator}messages${separator}${usedDimensions}`;\n\n if (typeof this.vector === `undefined`) {\n throw new Error(`Tried to create embedding index but no vector db is attached to this Memory instance.`);\n }\n await this.vector.createIndex({\n indexName,\n dimension: usedDimensions,\n });\n return { indexName };\n }\n\n public getMergedThreadConfig(config?: MemoryConfig): MemoryConfig {\n if (config?.workingMemory && 'use' in config.workingMemory) {\n throw new Error('The workingMemory.use option has been removed. Working memory always uses tool-call mode.');\n }\n const mergedConfig = deepMerge(this.threadConfig, config || {});\n\n if (config?.workingMemory?.schema) {\n if (mergedConfig.workingMemory) {\n mergedConfig.workingMemory.schema = config.workingMemory.schema;\n }\n }\n\n return mergedConfig;\n }\n\n /**\n * Apply all configured message processors to a list of messages.\n * @param messages The messages to process\n * @returns The processed messages\n */\n protected applyProcessors(\n messages: CoreMessage[],\n opts: {\n processors?: MemoryProcessor[];\n } & MemoryProcessorOpts,\n ): CoreMessage[] {\n const processors = opts.processors || this.processors;\n if (!processors || processors.length === 0) {\n return messages;\n }\n\n let processedMessages = [...messages];\n\n for (const processor of processors) {\n processedMessages = processor.process(processedMessages, {\n systemMessage: opts.systemMessage,\n newMessages: opts.newMessages,\n memorySystemMessage: opts.memorySystemMessage,\n });\n }\n\n return processedMessages;\n }\n\n processMessages({\n messages,\n processors,\n ...opts\n }: {\n messages: CoreMessage[];\n processors?: MemoryProcessor[];\n } & MemoryProcessorOpts) {\n return this.applyProcessors(messages, { processors: processors || this.processors, ...opts });\n }\n\n abstract rememberMessages({\n threadId,\n resourceId,\n vectorMessageSearch,\n config,\n }: {\n threadId: string;\n resourceId?: string;\n vectorMessageSearch?: string;\n config?: MemoryConfig;\n }): Promise<{ messages: MastraMessageV1[]; messagesV2: MastraMessageV2[] }>;\n\n estimateTokens(text: string): number {\n return Math.ceil(text.split(' ').length * 1.3);\n }\n\n /**\n * Retrieves a specific thread by its ID\n * @param threadId - The unique identifier of the thread\n * @returns Promise resolving to the thread or null if not found\n */\n abstract getThreadById({ threadId }: { threadId: string }): Promise<StorageThreadType | null>;\n\n /**\n * Retrieves all threads that belong to the specified resource.\n * @param resourceId - The unique identifier of the resource\n * @param orderBy - Which timestamp field to sort by (`'createdAt'` or `'updatedAt'`);\n * defaults to `'createdAt'`\n * @param sortDirection - Sort order for the results (`'ASC'` or `'DESC'`);\n * defaults to `'DESC'`\n * @returns Promise resolving to an array of matching threads; resolves to an empty array\n * if the resource has no threads\n */\n abstract getThreadsByResourceId({\n resourceId,\n orderBy,\n sortDirection,\n }: { resourceId: string } & ThreadSortOptions): Promise<StorageThreadType[]>;\n\n abstract getThreadsByResourceIdPaginated(\n args: {\n resourceId: string;\n page: number;\n perPage: number;\n } & ThreadSortOptions,\n ): Promise<PaginationInfo & { threads: StorageThreadType[] }>;\n\n /**\n * Saves or updates a thread\n * @param thread - The thread data to save\n * @returns Promise resolving to the saved thread\n */\n abstract saveThread({\n thread,\n memoryConfig,\n }: {\n thread: StorageThreadType;\n memoryConfig?: MemoryConfig;\n }): Promise<StorageThreadType>;\n\n /**\n * Saves messages to a thread\n * @param messages - Array of messages to save\n * @returns Promise resolving to the saved messages\n */\n abstract saveMessages(args: {\n messages: (MastraMessageV1 | MastraMessageV2)[] | MastraMessageV1[] | MastraMessageV2[];\n memoryConfig?: MemoryConfig | undefined;\n format?: 'v1';\n }): Promise<MastraMessageV1[]>;\n abstract saveMessages(args: {\n messages: (MastraMessageV1 | MastraMessageV2)[] | MastraMessageV1[] | MastraMessageV2[];\n memoryConfig?: MemoryConfig | undefined;\n format: 'v2';\n }): Promise<MastraMessageV2[]>;\n abstract saveMessages(args: {\n messages: (MastraMessageV1 | MastraMessageV2)[] | MastraMessageV1[] | MastraMessageV2[];\n memoryConfig?: MemoryConfig | undefined;\n format?: 'v1' | 'v2';\n }): Promise<MastraMessageV2[] | MastraMessageV1[]>;\n\n /**\n * Retrieves all messages for a specific thread\n * @param threadId - The unique identifier of the thread\n * @returns Promise resolving to array of messages and uiMessages\n */\n abstract query({\n threadId,\n resourceId,\n selectBy,\n }: StorageGetMessagesArg): Promise<{ messages: CoreMessage[]; uiMessages: UIMessageWithMetadata[] }>;\n\n /**\n * Helper method to create a new thread\n * @param title - Optional title for the thread\n * @param metadata - Optional metadata for the thread\n * @returns Promise resolving to the created thread\n */\n async createThread({\n threadId,\n resourceId,\n title,\n metadata,\n memoryConfig,\n saveThread = true,\n }: {\n resourceId: string;\n threadId?: string;\n title?: string;\n metadata?: Record<string, unknown>;\n memoryConfig?: MemoryConfig;\n saveThread?: boolean;\n }): Promise<StorageThreadType> {\n const thread: StorageThreadType = {\n id: threadId || this.generateId(),\n title: title || `New Thread ${new Date().toISOString()}`,\n resourceId,\n createdAt: new Date(),\n updatedAt: new Date(),\n metadata,\n };\n\n return saveThread ? this.saveThread({ thread, memoryConfig }) : thread;\n }\n\n /**\n * Helper method to delete a thread\n * @param threadId - the id of the thread to delete\n */\n abstract deleteThread(threadId: string): Promise<void>;\n\n /**\n * Helper method to add a single message to a thread\n * @param threadId - The thread to add the message to\n * @param content - The message content\n * @param role - The role of the message sender\n * @param type - The type of the message\n * @param toolNames - Optional array of tool names that were called\n * @param toolCallArgs - Optional array of tool call arguments\n * @param toolCallIds - Optional array of tool call ids\n * @returns Promise resolving to the saved message\n * @deprecated use saveMessages instead\n */\n async addMessage({\n threadId,\n resourceId,\n config,\n content,\n role,\n type,\n toolNames,\n toolCallArgs,\n toolCallIds,\n }: {\n threadId: string;\n resourceId: string;\n config?: MemoryConfig;\n content: UserContent | AssistantContent;\n role: 'user' | 'assistant';\n type: 'text' | 'tool-call' | 'tool-result';\n toolNames?: string[];\n toolCallArgs?: Record<string, unknown>[];\n toolCallIds?: string[];\n }): Promise<MastraMessageV1> {\n const message: MastraMessageV1 = {\n id: this.generateId(),\n content,\n role,\n createdAt: new Date(),\n threadId,\n resourceId,\n type,\n toolNames,\n toolCallArgs,\n toolCallIds,\n };\n\n const savedMessages = await this.saveMessages({ messages: [message], memoryConfig: config });\n const list = new MessageList({ threadId, resourceId }).add(savedMessages[0]!, 'memory');\n return list.get.all.v1()[0]!;\n }\n\n /**\n * Generates a unique identifier\n * @returns A unique string ID\n */\n public generateId(): string {\n return this.#mastra?.generateId() || crypto.randomUUID();\n }\n\n /**\n * Retrieves working memory for a specific thread\n * @param threadId - The unique identifier of the thread\n * @param resourceId - The unique identifier of the resource\n * @param memoryConfig - Optional memory configuration\n * @returns Promise resolving to working memory data or null if not found\n */\n abstract getWorkingMemory({\n threadId,\n resourceId,\n memoryConfig,\n }: {\n threadId: string;\n resourceId?: string;\n memoryConfig?: MemoryConfig;\n }): Promise<string | null>;\n\n /**\n * Retrieves working memory template for a specific thread\n * @param memoryConfig - Optional memory configuration\n * @returns Promise resolving to working memory template or null if not found\n */\n abstract getWorkingMemoryTemplate({\n memoryConfig,\n }?: {\n memoryConfig?: MemoryConfig;\n }): Promise<WorkingMemoryTemplate | null>;\n\n abstract updateWorkingMemory({\n threadId,\n resourceId,\n workingMemory,\n memoryConfig,\n }: {\n threadId: string;\n resourceId?: string;\n workingMemory: string;\n memoryConfig?: MemoryConfig;\n }): Promise<void>;\n\n /**\n * @warning experimental! can be removed or changed at any time\n */\n abstract __experimental_updateWorkingMemoryVNext({\n threadId,\n resourceId,\n workingMemory,\n searchString,\n memoryConfig,\n }: {\n threadId: string;\n resourceId?: string;\n workingMemory: string;\n searchString?: string;\n memoryConfig?: MemoryConfig;\n }): Promise<{ success: boolean; reason: string }>;\n\n /**\n * Deletes multiple messages by their IDs\n * @param messageIds - Array of message IDs to delete\n * @returns Promise that resolves when all messages are deleted\n */\n abstract deleteMessages(messageIds: string[]): Promise<void>;\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  // src/logger/constants.ts
2
2
  var RegisteredLogger = {
3
3
  AGENT: "AGENT",
4
+ AI_TELEMETRY: "AI_TELEMETRY",
4
5
  AUTH: "AUTH",
5
6
  NETWORK: "NETWORK",
6
7
  WORKFLOW: "WORKFLOW",
@@ -112,5 +113,5 @@ var ConsoleLogger = class extends MastraLogger {
112
113
  };
113
114
 
114
115
  export { ConsoleLogger, LogLevel, MastraLogger, RegisteredLogger, createLogger };
115
- //# sourceMappingURL=chunk-R3SQUADS.js.map
116
- //# sourceMappingURL=chunk-R3SQUADS.js.map
116
+ //# sourceMappingURL=chunk-6AR2Z5ZG.js.map
117
+ //# sourceMappingURL=chunk-6AR2Z5ZG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/logger/constants.ts","../src/logger/logger.ts","../src/logger/default-logger.ts"],"names":[],"mappings":"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","file":"chunk-6AR2Z5ZG.js","sourcesContent":["// Constants and Types (keeping from original implementation)\nexport const RegisteredLogger = {\n AGENT: 'AGENT',\n AI_TELEMETRY: 'AI_TELEMETRY',\n AUTH: 'AUTH',\n NETWORK: 'NETWORK',\n WORKFLOW: 'WORKFLOW',\n LLM: 'LLM',\n TTS: 'TTS',\n VOICE: 'VOICE',\n VECTOR: 'VECTOR',\n BUNDLER: 'BUNDLER',\n DEPLOYER: 'DEPLOYER',\n MEMORY: 'MEMORY',\n STORAGE: 'STORAGE',\n EMBEDDINGS: 'EMBEDDINGS',\n MCP_SERVER: 'MCP_SERVER',\n} as const;\n\nexport type RegisteredLogger = (typeof RegisteredLogger)[keyof typeof RegisteredLogger];\n\nexport const LogLevel = {\n DEBUG: 'debug',\n INFO: 'info',\n WARN: 'warn',\n ERROR: 'error',\n NONE: 'silent',\n} as const;\n\nexport type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];\n","import type { MastraError } from '../error';\nimport { LogLevel } from './constants';\nimport type { BaseLogMessage, LoggerTransport } from './transport';\n\nexport interface IMastraLogger {\n debug(message: string, ...args: any[]): void;\n info(message: string, ...args: any[]): void;\n warn(message: string, ...args: any[]): void;\n error(message: string, ...args: any[]): void;\n trackException(error: MastraError): void;\n\n getTransports(): Map<string, LoggerTransport>;\n 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 ): Promise<{ logs: BaseLogMessage[]; total: number; page: number; perPage: number; hasMore: boolean }>;\n getLogsByRunId(_args: {\n transportId: string;\n runId: string;\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n page?: number;\n perPage?: number;\n }): Promise<{ logs: BaseLogMessage[]; total: number; page: number; perPage: number; hasMore: boolean }>;\n}\n\nexport abstract class MastraLogger implements IMastraLogger {\n protected name: string;\n protected level: LogLevel;\n protected transports: Map<string, LoggerTransport>;\n\n constructor(\n options: {\n name?: string;\n level?: LogLevel;\n transports?: Record<string, LoggerTransport>;\n } = {},\n ) {\n this.name = options.name || 'Mastra';\n this.level = options.level || LogLevel.ERROR;\n this.transports = new Map(Object.entries(options.transports || {}));\n }\n\n abstract debug(message: string, ...args: any[]): void;\n abstract info(message: string, ...args: any[]): void;\n abstract warn(message: string, ...args: any[]): void;\n abstract error(message: string, ...args: any[]): void;\n\n getTransports() {\n return this.transports;\n }\n\n trackException(_error: MastraError) {}\n\n 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 || !this.transports.has(transportId)) {\n return { logs: [], total: 0, page: params?.page ?? 1, perPage: params?.perPage ?? 100, hasMore: false };\n }\n\n return (\n this.transports.get(transportId)!.getLogs(params) ?? {\n logs: [],\n total: 0,\n page: params?.page ?? 1,\n perPage: params?.perPage ?? 100,\n hasMore: false,\n }\n );\n }\n\n async getLogsByRunId({\n transportId,\n runId,\n fromDate,\n toDate,\n logLevel,\n filters,\n page,\n perPage,\n }: {\n transportId: string;\n runId: 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 || !this.transports.has(transportId) || !runId) {\n return { logs: [], total: 0, page: page ?? 1, perPage: perPage ?? 100, hasMore: false };\n }\n\n return (\n this.transports\n .get(transportId)!\n .getLogsByRunId({ runId, fromDate, toDate, logLevel, filters, page, perPage }) ?? {\n logs: [],\n total: 0,\n page: page ?? 1,\n perPage: perPage ?? 100,\n hasMore: false,\n }\n );\n }\n}\n","import { LogLevel } from './constants';\nimport { MastraLogger } from './logger';\nimport type { LoggerTransport } from './transport';\n\nexport const createLogger = (options: {\n name?: string;\n level?: LogLevel;\n transports?: Record<string, LoggerTransport>;\n}) => {\n const logger = new ConsoleLogger(options);\n\n logger.warn(`createLogger is deprecated. Please use \"new ConsoleLogger()\" from \"@mastra/core/logger\" instead.`);\n\n return logger;\n};\n\nexport class ConsoleLogger extends MastraLogger {\n constructor(\n options: {\n name?: string;\n level?: LogLevel;\n } = {},\n ) {\n super(options);\n }\n\n debug(message: string, ...args: any[]): void {\n if (this.level === LogLevel.DEBUG) {\n console.debug(message, ...args);\n }\n }\n\n info(message: string, ...args: any[]): void {\n if (this.level === LogLevel.INFO || this.level === LogLevel.DEBUG) {\n console.info(message, ...args);\n }\n }\n\n warn(message: string, ...args: any[]): void {\n if (this.level === LogLevel.WARN || this.level === LogLevel.INFO || this.level === LogLevel.DEBUG) {\n console.warn(message, ...args);\n }\n }\n\n error(message: string, ...args: any[]): void {\n if (\n this.level === LogLevel.ERROR ||\n this.level === LogLevel.WARN ||\n this.level === LogLevel.INFO ||\n this.level === LogLevel.DEBUG\n ) {\n console.error(message, ...args);\n }\n }\n\n 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 return { logs: [], total: 0, page: _params?.page ?? 1, perPage: _params?.perPage ?? 100, hasMore: false };\n }\n\n async getLogsByRunId(_args: {\n transportId: string;\n runId: string;\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n page?: number;\n perPage?: number;\n }) {\n return { logs: [], total: 0, page: _args.page ?? 1, perPage: _args.perPage ?? 100, hasMore: false };\n }\n}\n"]}