{"version":3,"sources":["../src/logger/multi-logger.ts","../src/logger/dual-logger.ts","../src/logger/noop-logger.ts","../src/logger/transport.ts"],"names":["resolveCurrentSpan","Transform"],"mappings":"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","file":"chunk-FSPWJO33.cjs","sourcesContent":["import type { MastraError } from '../error';\nimport type { LogLevel } from './constants';\nimport type { IMastraLogger } from './logger';\nimport type { LoggerTransport } from './transport';\n\nexport class MultiLogger implements IMastraLogger {\n  private loggers: IMastraLogger[];\n\n  constructor(loggers: IMastraLogger[]) {\n    this.loggers = loggers;\n  }\n\n  debug(message: string, ...args: any[]): void {\n    this.loggers.forEach(logger => logger.debug(message, ...args));\n  }\n\n  info(message: string, ...args: any[]): void {\n    this.loggers.forEach(logger => logger.info(message, ...args));\n  }\n\n  warn(message: string, ...args: any[]): void {\n    this.loggers.forEach(logger => logger.warn(message, ...args));\n  }\n\n  error(message: string, ...args: any[]): void {\n    this.loggers.forEach(logger => logger.error(message, ...args));\n  }\n\n  trackException(error: MastraError, metadata?: Record<string, unknown>): void {\n    this.loggers.forEach(logger => logger.trackException(error, metadata));\n  }\n\n  getTransports(): Map<string, LoggerTransport> {\n    const transports: [string, LoggerTransport][] = [];\n    this.loggers.forEach(logger => transports.push(...logger.getTransports().entries()));\n    return new Map(transports);\n  }\n\n  async listLogs(\n    transportId: string,\n    params?: {\n      fromDate?: Date;\n      toDate?: Date;\n      logLevel?: LogLevel;\n      filters?: Record<string, any>;\n      returnPaginationResults?: boolean;\n      page?: number;\n      perPage?: number;\n    },\n  ) {\n    for (const logger of this.loggers) {\n      const logs = await logger.listLogs(transportId, params);\n      if (logs.total > 0) {\n        return logs;\n      }\n    }\n\n    return { logs: [], total: 0, page: params?.page ?? 1, perPage: params?.perPage ?? 100, hasMore: false };\n  }\n\n  async listLogsByRunId(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    for (const logger of this.loggers) {\n      const logs = await logger.listLogsByRunId(args);\n      if (logs.total > 0) {\n        return logs;\n      }\n    }\n\n    return { logs: [], total: 0, page: args.page ?? 1, perPage: args.perPage ?? 100, hasMore: false };\n  }\n}\n","import type { MastraError } from '../error';\nimport type { LoggerContext } from '../observability/types/logging';\nimport { resolveCurrentSpan } from '../observability/utils';\nimport type { LogLevel } from './constants';\nimport type { IMastraLogger } from './logger';\nimport type { BaseLogMessage, LoggerTransport } from './transport';\n\n/**\n * A transparent wrapper around IMastraLogger that also forwards log calls\n * to a LoggerContext (loggerVNext) for observability dual-write.\n *\n * All existing `this.logger.info(...)` call sites automatically get\n * dual-write when this wrapper is injected via `__setLogger()`.\n *\n * Span-aware: when called inside an executeWithContext() scope, forwards to\n * a span-correlated loggerVNext (with traceId/spanId). Otherwise falls back\n * to the global loggerVNext (no correlation, still persisted to storage).\n *\n * Uses a lazy getter function for loggerVNext so it always resolves the\n * current LoggerContext at call time (observability may initialize after the logger).\n */\nexport class DualLogger implements IMastraLogger {\n  #inner: IMastraLogger;\n  #getLoggerVNext: (() => LoggerContext | undefined) | undefined;\n\n  constructor(inner: IMastraLogger, getLoggerVNext?: () => LoggerContext | undefined) {\n    this.#inner = inner;\n    this.#getLoggerVNext = getLoggerVNext;\n  }\n\n  /**\n   * Set or update the loggerVNext getter.\n   * Called after observability initializes (which may happen after logger creation).\n   */\n  setLoggerVNext(getLoggerVNext: (() => LoggerContext | undefined) | undefined): void {\n    this.#getLoggerVNext = getLoggerVNext;\n  }\n\n  debug(message: string, ...args: any[]): void {\n    this.#inner.debug(message, ...args);\n    this.#forwardToVNext('debug', message, args);\n  }\n\n  info(message: string, ...args: any[]): void {\n    this.#inner.info(message, ...args);\n    this.#forwardToVNext('info', message, args);\n  }\n\n  warn(message: string, ...args: any[]): void {\n    this.#inner.warn(message, ...args);\n    this.#forwardToVNext('warn', message, args);\n  }\n\n  error(message: string, ...args: any[]): void {\n    this.#inner.error(message, ...args);\n    this.#forwardToVNext('error', message, args);\n  }\n\n  trackException(error: MastraError, metadata?: Record<string, unknown>): void {\n    this.#inner.trackException(error, metadata);\n    try {\n      const loggerVNext = this.#resolveLoggerVNext();\n      loggerVNext?.error(error.message, {\n        errorId: error.id,\n        domain: error.domain,\n        category: error.category,\n        details: error.details,\n        cause: error.cause?.message,\n        ...metadata,\n      });\n    } catch {\n      // Never let loggerVNext errors break the primary logger\n    }\n  }\n\n  getTransports(): Map<string, LoggerTransport> {\n    return this.#inner.getTransports();\n  }\n\n  async listLogs(\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    return this.#inner.listLogs(transportId, params);\n  }\n\n  async listLogsByRunId(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    return this.#inner.listLogsByRunId(args);\n  }\n\n  /**\n   * Resolve the best available LoggerContext:\n   * 1. Span-correlated loggerVNext from AsyncLocalStorage (has traceId/spanId)\n   * 2. Global loggerVNext from the lazy getter (no correlation, still persisted)\n   */\n  #resolveLoggerVNext(): LoggerContext | undefined {\n    // Check for a span in async context (set by executeWithContext)\n    const span = resolveCurrentSpan();\n    if (span) {\n      const correlated = span.observabilityInstance?.getLoggerContext?.(span);\n      if (correlated) return correlated;\n    }\n\n    // Fall back to global loggerVNext (no trace correlation)\n    return this.#getLoggerVNext?.();\n  }\n\n  /**\n   * Adapt IMastraLogger's variadic args to LoggerContext's structured data param.\n   * Extracts the first plain object as `data`, serializes Error args, and\n   * collects any remaining primitives so the dual write preserves all context.\n   */\n  #forwardToVNext(level: 'debug' | 'info' | 'warn' | 'error', message: string, args: any[]): void {\n    try {\n      const loggerVNext = this.#resolveLoggerVNext();\n      if (!loggerVNext) return;\n\n      const objectData = args.find(\n        (arg): arg is Record<string, unknown> =>\n          arg !== null && typeof arg === 'object' && !Array.isArray(arg) && !(arg instanceof Error),\n      );\n      const errorArg = args.find((arg): arg is Error => arg instanceof Error);\n      const extraArgs = args.filter(arg => arg !== objectData && arg !== errorArg);\n\n      loggerVNext[level](message, {\n        ...(objectData ?? {}),\n        ...(errorArg\n          ? {\n              error: {\n                name: errorArg.name,\n                message: errorArg.message,\n                stack: errorArg.stack,\n              },\n            }\n          : {}),\n        ...(extraArgs.length > 0 ? { args: extraArgs } : {}),\n      });\n    } catch {\n      // Never let loggerVNext errors break the primary logger\n    }\n  }\n}\n","import type { IMastraLogger } from './logger';\n\nexport const noopLogger = {\n  debug: () => {},\n  info: () => {},\n  warn: () => {},\n  error: () => {},\n  cleanup: async () => {},\n  getTransports: () => new Map(),\n  trackException: () => {},\n  listLogs: async () => ({ logs: [], total: 0, page: 1, perPage: 100, hasMore: false }),\n  listLogsByRunId: async () => ({ logs: [], total: 0, page: 1, perPage: 100, hasMore: false }),\n} as IMastraLogger;\n","import { Transform } from 'node:stream';\nimport type { LogLevel } from './constants';\n\nexport interface BaseLogMessage {\n  runId?: string;\n  msg: string;\n  level: LogLevel;\n  time: Date;\n  pid: number;\n  hostname: string;\n  name: string;\n}\n\nexport abstract class LoggerTransport extends Transform {\n  constructor(opts: any = {}) {\n    super({ ...opts, objectMode: true });\n  }\n\n  async listLogsByRunId(_args: {\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<{\n    logs: BaseLogMessage[];\n    total: number;\n    page: number;\n    perPage: number;\n    hasMore: boolean;\n  }> {\n    return { logs: [], total: 0, page: _args?.page ?? 1, perPage: _args?.perPage ?? 100, hasMore: false };\n  }\n  async listLogs(_args?: {\n    fromDate?: Date;\n    toDate?: Date;\n    logLevel?: LogLevel;\n    filters?: Record<string, any>;\n    returnPaginationResults?: boolean;\n    page?: number;\n    perPage?: number;\n  }): Promise<{\n    logs: BaseLogMessage[];\n    total: number;\n    page: number;\n    perPage: number;\n    hasMore: boolean;\n  }> {\n    return { logs: [], total: 0, page: _args?.page ?? 1, perPage: _args?.perPage ?? 100, hasMore: false };\n  }\n}\n\nexport const createCustomTransport = (\n  stream: Transform,\n  listLogs?: LoggerTransport['listLogs'],\n  listLogsByRunId?: LoggerTransport['listLogsByRunId'],\n) => {\n  let transport = stream as LoggerTransport;\n  if (listLogs) {\n    transport.listLogs = listLogs;\n  }\n  if (listLogsByRunId) {\n    transport.listLogsByRunId = listLogsByRunId;\n  }\n  return transport as LoggerTransport;\n};\n"]}