@mastra/auth-workos 0.10.3 → 0.10.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
1
 
2
- > @mastra/auth-workos@0.10.3-alpha.0 build /home/runner/work/mastra/mastra/auth/workos
2
+ > @mastra/auth-workos@0.10.3 build /home/runner/work/mastra/mastra/auth/workos
3
3
  > tsup --silent --config tsup.config.ts
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @mastra/auth-workos
2
2
 
3
+ ## 0.10.4
4
+
5
+ ### Patch Changes
6
+
7
+ - [`c6113ed`](https://github.com/mastra-ai/mastra/commit/c6113ed7f9df297e130d94436ceee310273d6430) Thanks [@wardpeet](https://github.com/wardpeet)! - Fix peerdpes for @mastra/core
8
+
9
+ - Updated dependencies [[`c6113ed`](https://github.com/mastra-ai/mastra/commit/c6113ed7f9df297e130d94436ceee310273d6430)]:
10
+ - @mastra/auth@0.1.2
11
+
3
12
  ## 0.10.3
4
13
 
5
14
  ### Patch Changes
package/dist/index.cjs CHANGED
@@ -4,7 +4,7 @@ var chunkB2N25K77_cjs = require('./chunk-B2N25K77.cjs');
4
4
  var auth = require('@mastra/auth');
5
5
  var node = require('@workos-inc/node');
6
6
 
7
- // ../../packages/core/dist/chunk-FXGALG5A.js
7
+ // ../../packages/core/dist/chunk-76MWMAR7.js
8
8
  function hasActiveTelemetry(tracerName = "default-tracer") {
9
9
  try {
10
10
  return !!chunkB2N25K77_cjs.trace.getTracer(tracerName);
@@ -27,6 +27,53 @@ function getBaggageValues(ctx) {
27
27
  resourceId
28
28
  };
29
29
  }
30
+ function isStreamingResult(result, methodName) {
31
+ if (methodName === "stream" || methodName === "streamVNext") {
32
+ return true;
33
+ }
34
+ if (result && typeof result === "object" && result !== null) {
35
+ const obj = result;
36
+ return "textStream" in obj || "objectStream" in obj || "usagePromise" in obj || "finishReasonPromise" in obj;
37
+ }
38
+ return false;
39
+ }
40
+ function enhanceStreamingArgumentsWithTelemetry(args, span, spanName, methodName) {
41
+ if (methodName === "stream" || methodName === "streamVNext") {
42
+ const enhancedArgs = [...args];
43
+ const streamOptions = enhancedArgs.length > 1 && enhancedArgs[1] || {};
44
+ const enhancedStreamOptions = { ...streamOptions };
45
+ const originalOnFinish = enhancedStreamOptions.onFinish;
46
+ enhancedStreamOptions.onFinish = async (finishData) => {
47
+ try {
48
+ const telemetryData = {
49
+ text: finishData.text,
50
+ usage: finishData.usage,
51
+ finishReason: finishData.finishReason,
52
+ toolCalls: finishData.toolCalls,
53
+ toolResults: finishData.toolResults,
54
+ warnings: finishData.warnings,
55
+ ...finishData.object !== void 0 && { object: finishData.object }
56
+ };
57
+ span.setAttribute(`${spanName}.result`, JSON.stringify(telemetryData));
58
+ span.setStatus({ code: chunkB2N25K77_cjs.SpanStatusCode.OK });
59
+ span.end();
60
+ } catch (error) {
61
+ debugger;
62
+ console.warn("Telemetry capture failed:", error);
63
+ span.setAttribute(`${spanName}.result`, "[Telemetry Capture Error]");
64
+ span.setStatus({ code: chunkB2N25K77_cjs.SpanStatusCode.ERROR });
65
+ span.end();
66
+ }
67
+ if (originalOnFinish) {
68
+ return await originalOnFinish(finishData);
69
+ }
70
+ };
71
+ enhancedArgs[1] = enhancedStreamOptions;
72
+ span.__mastraStreamingSpan = true;
73
+ return enhancedArgs;
74
+ }
75
+ return args;
76
+ }
30
77
  function withSpan(options) {
31
78
  return function(_target, propertyKey, descriptor) {
32
79
  if (!descriptor || typeof descriptor === "number") return;
@@ -69,9 +116,12 @@ function withSpan(options) {
69
116
  if (componentName) {
70
117
  span.setAttribute("componentName", componentName);
71
118
  span.setAttribute("runId", runId);
72
- } else if (this && this.name) {
73
- span.setAttribute("componentName", this.name);
74
- span.setAttribute("runId", this.runId);
119
+ } else if (this && typeof this === "object" && "name" in this) {
120
+ const contextObj = this;
121
+ span.setAttribute("componentName", contextObj.name);
122
+ if (contextObj.runId) {
123
+ span.setAttribute("runId", contextObj.runId);
124
+ }
75
125
  ctx = chunkB2N25K77_cjs.propagation.setBaggage(
76
126
  ctx,
77
127
  chunkB2N25K77_cjs.propagation.createBaggage({
@@ -90,21 +140,32 @@ function withSpan(options) {
90
140
  }
91
141
  let result;
92
142
  try {
93
- result = chunkB2N25K77_cjs.context.with(ctx, () => originalMethod.apply(this, args));
143
+ const enhancedArgs = isStreamingResult(result, methodName) ? enhanceStreamingArgumentsWithTelemetry(args, span, spanName, methodName) : args;
144
+ result = chunkB2N25K77_cjs.context.with(ctx, () => originalMethod.apply(this, enhancedArgs));
94
145
  if (result instanceof Promise) {
95
146
  return result.then((resolvedValue) => {
96
- try {
97
- span.setAttribute(`${spanName}.result`, JSON.stringify(resolvedValue));
98
- } catch {
99
- span.setAttribute(`${spanName}.result`, "[Not Serializable]");
147
+ if (isStreamingResult(resolvedValue, methodName)) {
148
+ return resolvedValue;
149
+ } else {
150
+ try {
151
+ span.setAttribute(`${spanName}.result`, JSON.stringify(resolvedValue));
152
+ } catch {
153
+ span.setAttribute(`${spanName}.result`, "[Not Serializable]");
154
+ }
155
+ return resolvedValue;
100
156
  }
101
- return resolvedValue;
102
- }).finally(() => span.end());
157
+ }).finally(() => {
158
+ if (!span.__mastraStreamingSpan) {
159
+ span.end();
160
+ }
161
+ });
103
162
  }
104
- try {
105
- span.setAttribute(`${spanName}.result`, JSON.stringify(result));
106
- } catch {
107
- span.setAttribute(`${spanName}.result`, "[Not Serializable]");
163
+ if (!isStreamingResult(result, methodName)) {
164
+ try {
165
+ span.setAttribute(`${spanName}.result`, JSON.stringify(result));
166
+ } catch {
167
+ span.setAttribute(`${spanName}.result`, "[Not Serializable]");
168
+ }
108
169
  }
109
170
  return result;
110
171
  } catch (error) {
@@ -117,7 +178,7 @@ function withSpan(options) {
117
178
  }
118
179
  throw error;
119
180
  } finally {
120
- if (!(result instanceof Promise)) {
181
+ if (!(result instanceof Promise) && !isStreamingResult(result, methodName)) {
121
182
  span.end();
122
183
  }
123
184
  }
@@ -149,7 +210,7 @@ function InstrumentClass(options) {
149
210
  };
150
211
  }
151
212
 
152
- // ../../packages/core/dist/chunk-6AR2Z5ZG.js
213
+ // ../../packages/core/dist/chunk-X3GXU6TZ.js
153
214
  var RegisteredLogger = {
154
215
  LLM: "LLM"};
155
216
  var LogLevel = {
@@ -237,7 +298,7 @@ var ConsoleLogger = class extends MastraLogger {
237
298
  }
238
299
  };
239
300
 
240
- // ../../packages/core/dist/chunk-FUERFM46.js
301
+ // ../../packages/core/dist/chunk-6GF5M4GX.js
241
302
  var MastraBase = class {
242
303
  component = RegisteredLogger.LLM;
243
304
  logger;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../packages/core/src/telemetry/utility.ts","../../../packages/core/src/telemetry/telemetry.decorators.ts","../../../packages/core/src/logger/constants.ts","../../../packages/core/src/logger/logger.ts","../../../packages/core/src/logger/default-logger.ts","../../../packages/core/src/base.ts","../../../packages/core/dist/chunk-3HXBPDKN.js","../../../packages/core/src/server/auth.ts","../src/index.ts"],"names":["trace","propagation","context","SpanStatusCode","SpanKind","WorkOS","verifyJwks","org"],"mappings":"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","file":"index.cjs","sourcesContent":["import { propagation, trace } from '@opentelemetry/api';\nimport type { Context } from '@opentelemetry/api';\n\n// Helper function to check if telemetry is active\nexport function hasActiveTelemetry(tracerName: string = 'default-tracer'): boolean {\n try {\n return !!trace.getTracer(tracerName);\n } catch {\n return false;\n }\n}\n\n/**\n * Get baggage values from context\n * @param ctx The context to get baggage values from\n * @returns\n */\nexport function getBaggageValues(ctx: Context) {\n const currentBaggage = propagation.getBaggage(ctx);\n const requestId = currentBaggage?.getEntry('http.request_id')?.value;\n const componentName = currentBaggage?.getEntry('componentName')?.value;\n const runId = currentBaggage?.getEntry('runId')?.value;\n const threadId = currentBaggage?.getEntry('threadId')?.value;\n const resourceId = currentBaggage?.getEntry('resourceId')?.value;\n return {\n requestId,\n componentName,\n runId,\n threadId,\n resourceId,\n };\n}\n","import { trace, context, SpanStatusCode, SpanKind, propagation } from '@opentelemetry/api';\n\nimport { hasActiveTelemetry, getBaggageValues } from './utility';\n\n// Decorator factory that takes optional spanName\nexport function withSpan(options: {\n spanName?: string;\n skipIfNoTelemetry?: boolean;\n spanKind?: SpanKind;\n tracerName?: string;\n}): any {\n return function (_target: any, propertyKey: string | symbol, descriptor?: PropertyDescriptor | number) {\n if (!descriptor || typeof descriptor === 'number') return;\n\n const originalMethod = descriptor.value;\n const methodName = String(propertyKey);\n\n descriptor.value = function (...args: any[]) {\n // Skip if no telemetry is available and skipIfNoTelemetry is true\n if (options?.skipIfNoTelemetry && !hasActiveTelemetry(options?.tracerName)) {\n return originalMethod.apply(this, args);\n }\n\n const tracer = trace.getTracer(options?.tracerName ?? 'default-tracer');\n\n // Determine span name and kind\n let spanName: string;\n let spanKind: SpanKind | undefined;\n\n if (typeof options === 'string') {\n spanName = options;\n } else if (options) {\n spanName = options.spanName || methodName;\n spanKind = options.spanKind;\n } else {\n spanName = methodName;\n }\n\n // Start the span with optional kind\n const span = tracer.startSpan(spanName, { kind: spanKind });\n let ctx = trace.setSpan(context.active(), span);\n\n // Record input arguments as span attributes\n args.forEach((arg, index) => {\n try {\n span.setAttribute(`${spanName}.argument.${index}`, JSON.stringify(arg));\n } catch {\n span.setAttribute(`${spanName}.argument.${index}`, '[Not Serializable]');\n }\n });\n\n const { requestId, componentName, runId, threadId, resourceId } = getBaggageValues(ctx);\n if (requestId) {\n span.setAttribute('http.request_id', requestId);\n }\n\n if (threadId) {\n span.setAttribute('threadId', threadId);\n }\n\n if (resourceId) {\n span.setAttribute('resourceId', resourceId);\n }\n\n if (componentName) {\n span.setAttribute('componentName', componentName);\n // @ts-ignore\n span.setAttribute('runId', runId);\n // @ts-ignore\n } else if (this && this.name) {\n // @ts-ignore\n span.setAttribute('componentName', this.name);\n // @ts-ignore\n span.setAttribute('runId', this.runId);\n ctx = propagation.setBaggage(\n ctx,\n propagation.createBaggage({\n // @ts-ignore\n componentName: { value: this.name },\n // @ts-ignore\n runId: { value: this.runId },\n // @ts-ignore\n 'http.request_id': { value: requestId },\n // @ts-ignore\n threadId: { value: threadId },\n // @ts-ignore\n resourceId: { value: resourceId },\n }),\n );\n }\n\n let result;\n try {\n // Call the original method within the context\n result = context.with(ctx, () => originalMethod.apply(this, args));\n\n // Handle promises\n if (result instanceof Promise) {\n return result\n .then(resolvedValue => {\n try {\n span.setAttribute(`${spanName}.result`, JSON.stringify(resolvedValue));\n } catch {\n span.setAttribute(`${spanName}.result`, '[Not Serializable]');\n }\n return resolvedValue;\n })\n .finally(() => span.end());\n }\n\n // Record result for non-promise returns\n try {\n span.setAttribute(`${spanName}.result`, JSON.stringify(result));\n } catch {\n span.setAttribute(`${spanName}.result`, '[Not Serializable]');\n }\n\n // Return regular results\n return result;\n } catch (error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error instanceof Error ? error.message : 'Unknown error',\n });\n if (error instanceof Error) {\n span.recordException(error);\n }\n throw error;\n } finally {\n // End span for non-promise returns\n if (!(result instanceof Promise)) {\n span.end();\n }\n }\n };\n\n return descriptor;\n };\n}\n\n// class-telemetry.decorator.ts\nexport function InstrumentClass(options?: {\n prefix?: string;\n spanKind?: SpanKind;\n excludeMethods?: string[];\n methodFilter?: (methodName: string) => boolean;\n tracerName?: string;\n}) {\n return function (target: any) {\n const methods = Object.getOwnPropertyNames(target.prototype);\n\n methods.forEach(method => {\n // Skip excluded methods\n if (options?.excludeMethods?.includes(method) || method === 'constructor') return;\n // Apply method filter if provided\n if (options?.methodFilter && !options.methodFilter(method)) return;\n\n const descriptor = Object.getOwnPropertyDescriptor(target.prototype, method);\n if (descriptor && typeof descriptor.value === 'function') {\n Object.defineProperty(\n target.prototype,\n method,\n withSpan({\n spanName: options?.prefix ? `${options.prefix}.${method}` : method,\n skipIfNoTelemetry: true,\n spanKind: options?.spanKind || SpanKind.INTERNAL,\n tracerName: options?.tracerName,\n })(target, method, descriptor),\n );\n }\n });\n\n return target;\n };\n}\n","// 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","import type { IMastraLogger } from './logger';\nimport { RegisteredLogger } from './logger/constants';\nimport { ConsoleLogger } from './logger/default-logger';\n\nimport type { Telemetry } from './telemetry';\n\nexport class MastraBase {\n component: RegisteredLogger = RegisteredLogger.LLM;\n protected logger: IMastraLogger;\n name?: string;\n telemetry?: Telemetry;\n\n constructor({ component, name }: { component?: RegisteredLogger; name?: string }) {\n this.component = component || RegisteredLogger.LLM;\n this.name = name;\n this.logger = new ConsoleLogger({ name: `${this.component} - ${this.name}` });\n }\n\n /**\n * Set the logger for the agent\n * @param logger\n */\n __setLogger(logger: IMastraLogger) {\n this.logger = logger;\n\n if (this.component !== RegisteredLogger.LLM) {\n this.logger.debug(`Logger updated [component=${this.component}] [name=${this.name}]`);\n }\n }\n\n /**\n * Set the telemetry for the\n * @param telemetry\n */\n __setTelemetry(telemetry: Telemetry) {\n this.telemetry = telemetry;\n\n if (this.component !== RegisteredLogger.LLM) {\n this.logger.debug(`Telemetry updated [component=${this.component}] [name=${this.telemetry.name}]`);\n }\n }\n\n /**\n * Get the telemetry on the vector\n * @returns telemetry\n */\n __getTelemetry() {\n return this.telemetry;\n }\n\n /* \n get experimental_telemetry config\n */\n get experimental_telemetry() {\n return this.telemetry\n ? {\n // tracer: this.telemetry.tracer,\n tracer: this.telemetry.getBaggageTracer(),\n isEnabled: !!this.telemetry.tracer,\n }\n : undefined;\n }\n}\n\nexport * from './types';\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for(\"Symbol.\" + name);\nvar __typeError = msg => {\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj[key] = value;\nvar __name = (target, value) => __defProp(target, \"name\", {\n value,\n configurable: true\n});\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = {\n exports: {}\n }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n get: () => from[key],\n enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n// If the importer is in node compatibility mode or this is not an ESM\n// file that has been converted to a CommonJS file using a Babel-\n// compatible transform (i.e. \"__esModule\" has not been set), then set\n// \"default\" to the CommonJS \"module.exports\" for node compatibility.\nisNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", {\n value: mod,\n enumerable: true\n}) : target, mod));\nvar __decoratorStart = base => [,,, __create(base?.[__knownSymbol(\"metadata\")] ?? null)];\nvar __decoratorStrings = [\"class\", \"method\", \"getter\", \"setter\", \"accessor\", \"field\", \"value\", \"get\", \"set\"];\nvar __expectFn = fn => fn !== void 0 && typeof fn !== \"function\" ? __typeError(\"Function expected\") : fn;\nvar __decoratorContext = (kind, name, done, metadata, fns) => ({\n kind: __decoratorStrings[kind],\n name,\n metadata,\n addInitializer: fn => done._ ? __typeError(\"Already initialized\") : fns.push(__expectFn(fn || null))\n});\nvar __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol(\"metadata\"), array[3]);\nvar __runInitializers = (array, flags, self, value) => {\n for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);\n return value;\n};\nvar __decorateElement = (array, flags, name, decorators, target, extra) => {\n var fn,\n it,\n done,\n ctx,\n access,\n k = flags & 7,\n s = !!(flags & 8),\n p = !!(flags & 16);\n var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0,\n key = __decoratorStrings[k + 5];\n var initializers = k > 3 && (array[j - 1] = []),\n extraInitializers = array[j] || (array[j] = []);\n var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : {\n get [name]() {\n return __privateGet(this, extra);\n },\n set [name](x) {\n return __privateSet(this, extra, x);\n }\n }, name));\n k ? p && k < 4 && __name(extra, (k > 2 ? \"set \" : k > 1 ? \"get \" : \"\") + name) : __name(target, name);\n for (var i = decorators.length - 1; i >= 0; i--) {\n ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);\n if (k) {\n ctx.static = s, ctx.private = p, access = ctx.access = {\n has: p ? x => __privateIn(target, x) : x => name in x\n };\n if (k ^ 3) access.get = p ? x => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : x => x[name];\n if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;\n }\n it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : {\n get: desc.get,\n set: desc.set\n } : target, ctx), done._ = 1;\n if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);else if (typeof it !== \"object\" || it === null) __typeError(\"Object expected\");else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);\n }\n return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the \"in\" operator on this value') : member.has(obj);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar __privateMethod = (obj, member, method) => (__accessCheck(obj, member, \"access private method\"), method);\n\nexport { __commonJS, __decorateElement, __decoratorStart, __runInitializers, __toESM };\n//# sourceMappingURL=chunk-3HXBPDKN.js.map\n//# sourceMappingURL=chunk-3HXBPDKN.js.map","import type { HonoRequest } from 'hono';\nimport { MastraBase } from '../base';\nimport { InstrumentClass } from '../telemetry';\n\nexport interface MastraAuthProviderOptions<TUser = unknown> {\n name?: string;\n authorizeUser?: (user: TUser, request: HonoRequest) => Promise<boolean> | boolean;\n}\n\n@InstrumentClass({\n prefix: 'auth',\n excludeMethods: ['__setTools', '__setLogger', '__setTelemetry', '#log'],\n})\nexport abstract class MastraAuthProvider<TUser = unknown> extends MastraBase {\n constructor(options?: MastraAuthProviderOptions<TUser>) {\n super({ component: 'AUTH', name: options?.name });\n\n if (options?.authorizeUser) {\n this.authorizeUser = options.authorizeUser.bind(this);\n }\n }\n\n /**\n * Authenticate a token and return the payload\n * @param token - The token to authenticate\n * @param request - The request\n * @returns The payload\n */\n abstract authenticateToken(token: string, request: HonoRequest): Promise<TUser | null>;\n\n /**\n * Authorize a user for a path and method\n * @param user - The user to authorize\n * @param request - The request\n * @returns The authorization result\n */\n abstract authorizeUser(user: TUser, request: HonoRequest): Promise<boolean> | boolean;\n\n protected registerOptions(opts?: MastraAuthProviderOptions<TUser>) {\n if (opts?.authorizeUser) {\n this.authorizeUser = opts.authorizeUser.bind(this);\n }\n }\n}\n","import { verifyJwks } from '@mastra/auth';\nimport type { JwtPayload } from '@mastra/auth';\nimport type { MastraAuthProviderOptions } from '@mastra/core/server';\nimport { MastraAuthProvider } from '@mastra/core/server';\nimport { WorkOS } from '@workos-inc/node';\n\ntype WorkosUser = JwtPayload;\n\ninterface MastraAuthWorkosOptions extends MastraAuthProviderOptions<WorkosUser> {\n apiKey?: string;\n clientId?: string;\n}\n\nexport class MastraAuthWorkos extends MastraAuthProvider<WorkosUser> {\n protected workos: WorkOS;\n\n constructor(options?: MastraAuthWorkosOptions) {\n super({ name: options?.name ?? 'workos' });\n\n const apiKey = options?.apiKey ?? process.env.WORKOS_API_KEY;\n const clientId = options?.clientId ?? process.env.WORKOS_CLIENT_ID;\n\n if (!apiKey || !clientId) {\n throw new Error(\n 'WorkOS API key and client ID are required, please provide them in the options or set the environment variables WORKOS_API_KEY and WORKOS_CLIENT_ID',\n );\n }\n\n this.workos = new WorkOS(apiKey, {\n clientId,\n });\n\n this.registerOptions(options);\n }\n\n async authenticateToken(token: string): Promise<WorkosUser | null> {\n const jwksUri = this.workos.userManagement.getJwksUrl(process.env.WORKOS_CLIENT_ID!);\n const user = await verifyJwks(token, jwksUri);\n return user;\n }\n\n async authorizeUser(user: WorkosUser) {\n if (!user) {\n return false;\n }\n\n const org = await this.workos.userManagement.listOrganizationMemberships({\n userId: user.sub,\n });\n\n const roles = org.data.map(org => org.role);\n\n const isAdmin = roles.some(role => role.slug === 'admin');\n\n return isAdmin;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../packages/core/src/telemetry/utility.ts","../../../packages/core/src/telemetry/telemetry.decorators.ts","../../../packages/core/src/logger/constants.ts","../../../packages/core/src/logger/logger.ts","../../../packages/core/src/logger/default-logger.ts","../../../packages/core/src/base.ts","../../../packages/core/dist/chunk-3HXBPDKN.js","../../../packages/core/src/server/auth.ts","../src/index.ts"],"names":["trace","propagation","SpanStatusCode","context","SpanKind","WorkOS","verifyJwks","org"],"mappings":"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","file":"index.cjs","sourcesContent":["import { propagation, trace } from '@opentelemetry/api';\nimport type { Context } from '@opentelemetry/api';\n\n// Helper function to check if telemetry is active\nexport function hasActiveTelemetry(tracerName: string = 'default-tracer'): boolean {\n try {\n return !!trace.getTracer(tracerName);\n } catch {\n return false;\n }\n}\n\n/**\n * Get baggage values from context\n * @param ctx The context to get baggage values from\n * @returns\n */\nexport function getBaggageValues(ctx: Context) {\n const currentBaggage = propagation.getBaggage(ctx);\n const requestId = currentBaggage?.getEntry('http.request_id')?.value;\n const componentName = currentBaggage?.getEntry('componentName')?.value;\n const runId = currentBaggage?.getEntry('runId')?.value;\n const threadId = currentBaggage?.getEntry('threadId')?.value;\n const resourceId = currentBaggage?.getEntry('resourceId')?.value;\n return {\n requestId,\n componentName,\n runId,\n threadId,\n resourceId,\n };\n}\n","import { trace, context, SpanStatusCode, SpanKind, propagation } from '@opentelemetry/api';\nimport type { Span } from '@opentelemetry/api';\n\nimport { hasActiveTelemetry, getBaggageValues } from './utility';\n\n// Type interfaces for better type safety\ninterface StreamFinishData {\n text?: string;\n usage?: {\n promptTokens?: number;\n completionTokens?: number;\n totalTokens?: number;\n };\n finishReason?: string;\n toolCalls?: unknown[];\n toolResults?: unknown[];\n warnings?: unknown;\n object?: unknown; // For structured output\n}\n\ninterface StreamOptions {\n onFinish?: (data: StreamFinishData) => Promise<void> | void;\n [key: string]: unknown;\n}\n\ninterface EnhancedSpan extends Span {\n __mastraStreamingSpan?: boolean;\n}\n\nfunction isStreamingResult(result: unknown, methodName: string): boolean {\n if (methodName === 'stream' || methodName === 'streamVNext') {\n return true;\n }\n\n if (result && typeof result === 'object' && result !== null) {\n const obj = result as Record<string, unknown>;\n return 'textStream' in obj || 'objectStream' in obj || 'usagePromise' in obj || 'finishReasonPromise' in obj;\n }\n\n return false;\n}\n\nfunction enhanceStreamingArgumentsWithTelemetry(\n args: unknown[],\n span: EnhancedSpan,\n spanName: string,\n methodName: string,\n): unknown[] {\n if (methodName === 'stream' || methodName === 'streamVNext') {\n const enhancedArgs = [...args];\n const streamOptions = (enhancedArgs.length > 1 && (enhancedArgs[1] as StreamOptions)) || ({} as StreamOptions);\n const enhancedStreamOptions: StreamOptions = { ...streamOptions };\n const originalOnFinish = enhancedStreamOptions.onFinish;\n\n enhancedStreamOptions.onFinish = async (finishData: StreamFinishData) => {\n try {\n const telemetryData = {\n text: finishData.text,\n usage: finishData.usage,\n finishReason: finishData.finishReason,\n toolCalls: finishData.toolCalls,\n toolResults: finishData.toolResults,\n warnings: finishData.warnings,\n ...(finishData.object !== undefined && { object: finishData.object }),\n };\n\n span.setAttribute(`${spanName}.result`, JSON.stringify(telemetryData));\n span.setStatus({ code: SpanStatusCode.OK });\n span.end();\n } catch (error) {\n debugger;\n console.warn('Telemetry capture failed:', error);\n span.setAttribute(`${spanName}.result`, '[Telemetry Capture Error]');\n span.setStatus({ code: SpanStatusCode.ERROR });\n span.end();\n }\n\n if (originalOnFinish) {\n return await originalOnFinish(finishData);\n }\n };\n\n enhancedArgs[1] = enhancedStreamOptions;\n span.__mastraStreamingSpan = true;\n\n return enhancedArgs;\n }\n\n return args;\n}\n\n// Decorator factory that takes optional spanName\nexport function withSpan(options: {\n spanName?: string;\n skipIfNoTelemetry?: boolean;\n spanKind?: SpanKind;\n tracerName?: string;\n}): any {\n return function (_target: any, propertyKey: string | symbol, descriptor?: PropertyDescriptor | number) {\n if (!descriptor || typeof descriptor === 'number') return;\n\n const originalMethod = descriptor.value as Function;\n const methodName = String(propertyKey);\n\n descriptor.value = function (this: unknown, ...args: unknown[]) {\n // Skip if no telemetry is available and skipIfNoTelemetry is true\n if (options?.skipIfNoTelemetry && !hasActiveTelemetry(options?.tracerName)) {\n return originalMethod.apply(this, args);\n }\n\n const tracer = trace.getTracer(options?.tracerName ?? 'default-tracer');\n\n // Determine span name and kind\n let spanName: string;\n let spanKind: SpanKind | undefined;\n\n if (typeof options === 'string') {\n spanName = options;\n } else if (options) {\n spanName = options.spanName || methodName;\n spanKind = options.spanKind;\n } else {\n spanName = methodName;\n }\n\n // Start the span with optional kind\n const span = tracer.startSpan(spanName, { kind: spanKind }) as EnhancedSpan;\n let ctx = trace.setSpan(context.active(), span);\n\n // Record input arguments as span attributes\n args.forEach((arg, index) => {\n try {\n span.setAttribute(`${spanName}.argument.${index}`, JSON.stringify(arg));\n } catch {\n span.setAttribute(`${spanName}.argument.${index}`, '[Not Serializable]');\n }\n });\n\n const { requestId, componentName, runId, threadId, resourceId } = getBaggageValues(ctx);\n if (requestId) {\n span.setAttribute('http.request_id', requestId);\n }\n\n if (threadId) {\n span.setAttribute('threadId', threadId);\n }\n\n if (resourceId) {\n span.setAttribute('resourceId', resourceId);\n }\n\n if (componentName) {\n span.setAttribute('componentName', componentName);\n // @ts-ignore - These properties may exist on the context\n span.setAttribute('runId', runId);\n } else if (this && typeof this === 'object' && 'name' in this) {\n const contextObj = this as { name: string; runId?: string };\n span.setAttribute('componentName', contextObj.name);\n if (contextObj.runId) {\n span.setAttribute('runId', contextObj.runId);\n }\n ctx = propagation.setBaggage(\n ctx,\n propagation.createBaggage({\n // @ts-ignore\n componentName: { value: this.name },\n // @ts-ignore\n runId: { value: this.runId },\n // @ts-ignore\n 'http.request_id': { value: requestId },\n // @ts-ignore\n threadId: { value: threadId },\n // @ts-ignore\n resourceId: { value: resourceId },\n }),\n );\n }\n\n let result: unknown;\n try {\n // For streaming methods, enhance arguments with telemetry capture before calling\n const enhancedArgs = isStreamingResult(result, methodName)\n ? enhanceStreamingArgumentsWithTelemetry(args, span, spanName, methodName)\n : args;\n\n // Call the original method within the context\n result = context.with(ctx, () => originalMethod.apply(this, enhancedArgs));\n\n // Handle promises\n if (result instanceof Promise) {\n return result\n .then(resolvedValue => {\n if (isStreamingResult(resolvedValue, methodName)) {\n return resolvedValue;\n } else {\n try {\n span.setAttribute(`${spanName}.result`, JSON.stringify(resolvedValue));\n } catch {\n span.setAttribute(`${spanName}.result`, '[Not Serializable]');\n }\n return resolvedValue;\n }\n })\n .finally(() => {\n if (!span.__mastraStreamingSpan) {\n span.end();\n }\n });\n }\n\n // Record result for non-promise returns\n if (!isStreamingResult(result, methodName)) {\n try {\n span.setAttribute(`${spanName}.result`, JSON.stringify(result));\n } catch {\n span.setAttribute(`${spanName}.result`, '[Not Serializable]');\n }\n }\n\n // Return regular results\n return result;\n } catch (error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error instanceof Error ? error.message : 'Unknown error',\n });\n if (error instanceof Error) {\n span.recordException(error);\n }\n throw error;\n } finally {\n // End span for non-promise returns\n if (!(result instanceof Promise) && !isStreamingResult(result, methodName)) {\n span.end();\n }\n }\n };\n\n return descriptor;\n };\n}\n\n// class-telemetry.decorator.ts\nexport function InstrumentClass(options?: {\n prefix?: string;\n spanKind?: SpanKind;\n excludeMethods?: string[];\n methodFilter?: (methodName: string) => boolean;\n tracerName?: string;\n}) {\n return function (target: any) {\n const methods = Object.getOwnPropertyNames(target.prototype);\n\n methods.forEach(method => {\n // Skip excluded methods\n if (options?.excludeMethods?.includes(method) || method === 'constructor') return;\n // Apply method filter if provided\n if (options?.methodFilter && !options.methodFilter(method)) return;\n\n const descriptor = Object.getOwnPropertyDescriptor(target.prototype, method);\n if (descriptor && typeof descriptor.value === 'function') {\n Object.defineProperty(\n target.prototype,\n method,\n withSpan({\n spanName: options?.prefix ? `${options.prefix}.${method}` : method,\n skipIfNoTelemetry: true,\n spanKind: options?.spanKind || SpanKind.INTERNAL,\n tracerName: options?.tracerName,\n })(target, method, descriptor),\n );\n }\n });\n\n return target;\n };\n}\n","// Constants and Types (keeping from original implementation)\nexport const RegisteredLogger = {\n AGENT: 'AGENT',\n AI_TRACING: 'AI_TRACING',\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","import type { IMastraLogger } from './logger';\nimport { RegisteredLogger } from './logger/constants';\nimport { ConsoleLogger } from './logger/default-logger';\n\nimport type { Telemetry } from './telemetry';\n\nexport class MastraBase {\n component: RegisteredLogger = RegisteredLogger.LLM;\n protected logger: IMastraLogger;\n name?: string;\n telemetry?: Telemetry;\n\n constructor({ component, name }: { component?: RegisteredLogger; name?: string }) {\n this.component = component || RegisteredLogger.LLM;\n this.name = name;\n this.logger = new ConsoleLogger({ name: `${this.component} - ${this.name}` });\n }\n\n /**\n * Set the logger for the agent\n * @param logger\n */\n __setLogger(logger: IMastraLogger) {\n this.logger = logger;\n\n if (this.component !== RegisteredLogger.LLM) {\n this.logger.debug(`Logger updated [component=${this.component}] [name=${this.name}]`);\n }\n }\n\n /**\n * Set the telemetry for the\n * @param telemetry\n */\n __setTelemetry(telemetry: Telemetry) {\n this.telemetry = telemetry;\n\n if (this.component !== RegisteredLogger.LLM) {\n this.logger.debug(`Telemetry updated [component=${this.component}] [name=${this.telemetry.name}]`);\n }\n }\n\n /**\n * Get the telemetry on the vector\n * @returns telemetry\n */\n __getTelemetry() {\n return this.telemetry;\n }\n\n /* \n get experimental_telemetry config\n */\n get experimental_telemetry() {\n return this.telemetry\n ? {\n // tracer: this.telemetry.tracer,\n tracer: this.telemetry.getBaggageTracer(),\n isEnabled: !!this.telemetry.tracer,\n }\n : undefined;\n }\n}\n\nexport * from './types';\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for(\"Symbol.\" + name);\nvar __typeError = msg => {\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj[key] = value;\nvar __name = (target, value) => __defProp(target, \"name\", {\n value,\n configurable: true\n});\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = {\n exports: {}\n }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n get: () => from[key],\n enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n// If the importer is in node compatibility mode or this is not an ESM\n// file that has been converted to a CommonJS file using a Babel-\n// compatible transform (i.e. \"__esModule\" has not been set), then set\n// \"default\" to the CommonJS \"module.exports\" for node compatibility.\nisNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", {\n value: mod,\n enumerable: true\n}) : target, mod));\nvar __decoratorStart = base => [,,, __create(base?.[__knownSymbol(\"metadata\")] ?? null)];\nvar __decoratorStrings = [\"class\", \"method\", \"getter\", \"setter\", \"accessor\", \"field\", \"value\", \"get\", \"set\"];\nvar __expectFn = fn => fn !== void 0 && typeof fn !== \"function\" ? __typeError(\"Function expected\") : fn;\nvar __decoratorContext = (kind, name, done, metadata, fns) => ({\n kind: __decoratorStrings[kind],\n name,\n metadata,\n addInitializer: fn => done._ ? __typeError(\"Already initialized\") : fns.push(__expectFn(fn || null))\n});\nvar __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol(\"metadata\"), array[3]);\nvar __runInitializers = (array, flags, self, value) => {\n for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);\n return value;\n};\nvar __decorateElement = (array, flags, name, decorators, target, extra) => {\n var fn,\n it,\n done,\n ctx,\n access,\n k = flags & 7,\n s = !!(flags & 8),\n p = !!(flags & 16);\n var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0,\n key = __decoratorStrings[k + 5];\n var initializers = k > 3 && (array[j - 1] = []),\n extraInitializers = array[j] || (array[j] = []);\n var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : {\n get [name]() {\n return __privateGet(this, extra);\n },\n set [name](x) {\n return __privateSet(this, extra, x);\n }\n }, name));\n k ? p && k < 4 && __name(extra, (k > 2 ? \"set \" : k > 1 ? \"get \" : \"\") + name) : __name(target, name);\n for (var i = decorators.length - 1; i >= 0; i--) {\n ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);\n if (k) {\n ctx.static = s, ctx.private = p, access = ctx.access = {\n has: p ? x => __privateIn(target, x) : x => name in x\n };\n if (k ^ 3) access.get = p ? x => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : x => x[name];\n if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;\n }\n it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : {\n get: desc.get,\n set: desc.set\n } : target, ctx), done._ = 1;\n if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);else if (typeof it !== \"object\" || it === null) __typeError(\"Object expected\");else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);\n }\n return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the \"in\" operator on this value') : member.has(obj);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar __privateMethod = (obj, member, method) => (__accessCheck(obj, member, \"access private method\"), method);\n\nexport { __commonJS, __decorateElement, __decoratorStart, __runInitializers, __toESM };\n//# sourceMappingURL=chunk-3HXBPDKN.js.map\n//# sourceMappingURL=chunk-3HXBPDKN.js.map","import type { HonoRequest } from 'hono';\nimport { MastraBase } from '../base';\nimport { InstrumentClass } from '../telemetry';\n\nexport interface MastraAuthProviderOptions<TUser = unknown> {\n name?: string;\n authorizeUser?: (user: TUser, request: HonoRequest) => Promise<boolean> | boolean;\n}\n\n@InstrumentClass({\n prefix: 'auth',\n excludeMethods: ['__setTools', '__setLogger', '__setTelemetry', '#log'],\n})\nexport abstract class MastraAuthProvider<TUser = unknown> extends MastraBase {\n constructor(options?: MastraAuthProviderOptions<TUser>) {\n super({ component: 'AUTH', name: options?.name });\n\n if (options?.authorizeUser) {\n this.authorizeUser = options.authorizeUser.bind(this);\n }\n }\n\n /**\n * Authenticate a token and return the payload\n * @param token - The token to authenticate\n * @param request - The request\n * @returns The payload\n */\n abstract authenticateToken(token: string, request: HonoRequest): Promise<TUser | null>;\n\n /**\n * Authorize a user for a path and method\n * @param user - The user to authorize\n * @param request - The request\n * @returns The authorization result\n */\n abstract authorizeUser(user: TUser, request: HonoRequest): Promise<boolean> | boolean;\n\n protected registerOptions(opts?: MastraAuthProviderOptions<TUser>) {\n if (opts?.authorizeUser) {\n this.authorizeUser = opts.authorizeUser.bind(this);\n }\n }\n}\n","import { verifyJwks } from '@mastra/auth';\nimport type { JwtPayload } from '@mastra/auth';\nimport type { MastraAuthProviderOptions } from '@mastra/core/server';\nimport { MastraAuthProvider } from '@mastra/core/server';\nimport { WorkOS } from '@workos-inc/node';\n\ntype WorkosUser = JwtPayload;\n\ninterface MastraAuthWorkosOptions extends MastraAuthProviderOptions<WorkosUser> {\n apiKey?: string;\n clientId?: string;\n}\n\nexport class MastraAuthWorkos extends MastraAuthProvider<WorkosUser> {\n protected workos: WorkOS;\n\n constructor(options?: MastraAuthWorkosOptions) {\n super({ name: options?.name ?? 'workos' });\n\n const apiKey = options?.apiKey ?? process.env.WORKOS_API_KEY;\n const clientId = options?.clientId ?? process.env.WORKOS_CLIENT_ID;\n\n if (!apiKey || !clientId) {\n throw new Error(\n 'WorkOS API key and client ID are required, please provide them in the options or set the environment variables WORKOS_API_KEY and WORKOS_CLIENT_ID',\n );\n }\n\n this.workos = new WorkOS(apiKey, {\n clientId,\n });\n\n this.registerOptions(options);\n }\n\n async authenticateToken(token: string): Promise<WorkosUser | null> {\n const jwksUri = this.workos.userManagement.getJwksUrl(process.env.WORKOS_CLIENT_ID!);\n const user = await verifyJwks(token, jwksUri);\n return user;\n }\n\n async authorizeUser(user: WorkosUser) {\n if (!user) {\n return false;\n }\n\n const org = await this.workos.userManagement.listOrganizationMemberships({\n userId: user.sub,\n });\n\n const roles = org.data.map(org => org.role);\n\n const isAdmin = roles.some(role => role.slug === 'admin');\n\n return isAdmin;\n }\n}\n"]}
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import { trace, context, propagation, SpanStatusCode, SpanKind } from './chunk-3
2
2
  import { verifyJwks } from '@mastra/auth';
3
3
  import { WorkOS } from '@workos-inc/node';
4
4
 
5
- // ../../packages/core/dist/chunk-FXGALG5A.js
5
+ // ../../packages/core/dist/chunk-76MWMAR7.js
6
6
  function hasActiveTelemetry(tracerName = "default-tracer") {
7
7
  try {
8
8
  return !!trace.getTracer(tracerName);
@@ -25,6 +25,53 @@ function getBaggageValues(ctx) {
25
25
  resourceId
26
26
  };
27
27
  }
28
+ function isStreamingResult(result, methodName) {
29
+ if (methodName === "stream" || methodName === "streamVNext") {
30
+ return true;
31
+ }
32
+ if (result && typeof result === "object" && result !== null) {
33
+ const obj = result;
34
+ return "textStream" in obj || "objectStream" in obj || "usagePromise" in obj || "finishReasonPromise" in obj;
35
+ }
36
+ return false;
37
+ }
38
+ function enhanceStreamingArgumentsWithTelemetry(args, span, spanName, methodName) {
39
+ if (methodName === "stream" || methodName === "streamVNext") {
40
+ const enhancedArgs = [...args];
41
+ const streamOptions = enhancedArgs.length > 1 && enhancedArgs[1] || {};
42
+ const enhancedStreamOptions = { ...streamOptions };
43
+ const originalOnFinish = enhancedStreamOptions.onFinish;
44
+ enhancedStreamOptions.onFinish = async (finishData) => {
45
+ try {
46
+ const telemetryData = {
47
+ text: finishData.text,
48
+ usage: finishData.usage,
49
+ finishReason: finishData.finishReason,
50
+ toolCalls: finishData.toolCalls,
51
+ toolResults: finishData.toolResults,
52
+ warnings: finishData.warnings,
53
+ ...finishData.object !== void 0 && { object: finishData.object }
54
+ };
55
+ span.setAttribute(`${spanName}.result`, JSON.stringify(telemetryData));
56
+ span.setStatus({ code: SpanStatusCode.OK });
57
+ span.end();
58
+ } catch (error) {
59
+ debugger;
60
+ console.warn("Telemetry capture failed:", error);
61
+ span.setAttribute(`${spanName}.result`, "[Telemetry Capture Error]");
62
+ span.setStatus({ code: SpanStatusCode.ERROR });
63
+ span.end();
64
+ }
65
+ if (originalOnFinish) {
66
+ return await originalOnFinish(finishData);
67
+ }
68
+ };
69
+ enhancedArgs[1] = enhancedStreamOptions;
70
+ span.__mastraStreamingSpan = true;
71
+ return enhancedArgs;
72
+ }
73
+ return args;
74
+ }
28
75
  function withSpan(options) {
29
76
  return function(_target, propertyKey, descriptor) {
30
77
  if (!descriptor || typeof descriptor === "number") return;
@@ -67,9 +114,12 @@ function withSpan(options) {
67
114
  if (componentName) {
68
115
  span.setAttribute("componentName", componentName);
69
116
  span.setAttribute("runId", runId);
70
- } else if (this && this.name) {
71
- span.setAttribute("componentName", this.name);
72
- span.setAttribute("runId", this.runId);
117
+ } else if (this && typeof this === "object" && "name" in this) {
118
+ const contextObj = this;
119
+ span.setAttribute("componentName", contextObj.name);
120
+ if (contextObj.runId) {
121
+ span.setAttribute("runId", contextObj.runId);
122
+ }
73
123
  ctx = propagation.setBaggage(
74
124
  ctx,
75
125
  propagation.createBaggage({
@@ -88,21 +138,32 @@ function withSpan(options) {
88
138
  }
89
139
  let result;
90
140
  try {
91
- result = context.with(ctx, () => originalMethod.apply(this, args));
141
+ const enhancedArgs = isStreamingResult(result, methodName) ? enhanceStreamingArgumentsWithTelemetry(args, span, spanName, methodName) : args;
142
+ result = context.with(ctx, () => originalMethod.apply(this, enhancedArgs));
92
143
  if (result instanceof Promise) {
93
144
  return result.then((resolvedValue) => {
94
- try {
95
- span.setAttribute(`${spanName}.result`, JSON.stringify(resolvedValue));
96
- } catch {
97
- span.setAttribute(`${spanName}.result`, "[Not Serializable]");
145
+ if (isStreamingResult(resolvedValue, methodName)) {
146
+ return resolvedValue;
147
+ } else {
148
+ try {
149
+ span.setAttribute(`${spanName}.result`, JSON.stringify(resolvedValue));
150
+ } catch {
151
+ span.setAttribute(`${spanName}.result`, "[Not Serializable]");
152
+ }
153
+ return resolvedValue;
98
154
  }
99
- return resolvedValue;
100
- }).finally(() => span.end());
155
+ }).finally(() => {
156
+ if (!span.__mastraStreamingSpan) {
157
+ span.end();
158
+ }
159
+ });
101
160
  }
102
- try {
103
- span.setAttribute(`${spanName}.result`, JSON.stringify(result));
104
- } catch {
105
- span.setAttribute(`${spanName}.result`, "[Not Serializable]");
161
+ if (!isStreamingResult(result, methodName)) {
162
+ try {
163
+ span.setAttribute(`${spanName}.result`, JSON.stringify(result));
164
+ } catch {
165
+ span.setAttribute(`${spanName}.result`, "[Not Serializable]");
166
+ }
106
167
  }
107
168
  return result;
108
169
  } catch (error) {
@@ -115,7 +176,7 @@ function withSpan(options) {
115
176
  }
116
177
  throw error;
117
178
  } finally {
118
- if (!(result instanceof Promise)) {
179
+ if (!(result instanceof Promise) && !isStreamingResult(result, methodName)) {
119
180
  span.end();
120
181
  }
121
182
  }
@@ -147,7 +208,7 @@ function InstrumentClass(options) {
147
208
  };
148
209
  }
149
210
 
150
- // ../../packages/core/dist/chunk-6AR2Z5ZG.js
211
+ // ../../packages/core/dist/chunk-X3GXU6TZ.js
151
212
  var RegisteredLogger = {
152
213
  LLM: "LLM"};
153
214
  var LogLevel = {
@@ -235,7 +296,7 @@ var ConsoleLogger = class extends MastraLogger {
235
296
  }
236
297
  };
237
298
 
238
- // ../../packages/core/dist/chunk-FUERFM46.js
299
+ // ../../packages/core/dist/chunk-6GF5M4GX.js
239
300
  var MastraBase = class {
240
301
  component = RegisteredLogger.LLM;
241
302
  logger;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../packages/core/src/telemetry/utility.ts","../../../packages/core/src/telemetry/telemetry.decorators.ts","../../../packages/core/src/logger/constants.ts","../../../packages/core/src/logger/logger.ts","../../../packages/core/src/logger/default-logger.ts","../../../packages/core/src/base.ts","../../../packages/core/dist/chunk-3HXBPDKN.js","../../../packages/core/src/server/auth.ts","../src/index.ts"],"names":["trace","propagation","org"],"mappings":"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","file":"index.js","sourcesContent":["import { propagation, trace } from '@opentelemetry/api';\nimport type { Context } from '@opentelemetry/api';\n\n// Helper function to check if telemetry is active\nexport function hasActiveTelemetry(tracerName: string = 'default-tracer'): boolean {\n try {\n return !!trace.getTracer(tracerName);\n } catch {\n return false;\n }\n}\n\n/**\n * Get baggage values from context\n * @param ctx The context to get baggage values from\n * @returns\n */\nexport function getBaggageValues(ctx: Context) {\n const currentBaggage = propagation.getBaggage(ctx);\n const requestId = currentBaggage?.getEntry('http.request_id')?.value;\n const componentName = currentBaggage?.getEntry('componentName')?.value;\n const runId = currentBaggage?.getEntry('runId')?.value;\n const threadId = currentBaggage?.getEntry('threadId')?.value;\n const resourceId = currentBaggage?.getEntry('resourceId')?.value;\n return {\n requestId,\n componentName,\n runId,\n threadId,\n resourceId,\n };\n}\n","import { trace, context, SpanStatusCode, SpanKind, propagation } from '@opentelemetry/api';\n\nimport { hasActiveTelemetry, getBaggageValues } from './utility';\n\n// Decorator factory that takes optional spanName\nexport function withSpan(options: {\n spanName?: string;\n skipIfNoTelemetry?: boolean;\n spanKind?: SpanKind;\n tracerName?: string;\n}): any {\n return function (_target: any, propertyKey: string | symbol, descriptor?: PropertyDescriptor | number) {\n if (!descriptor || typeof descriptor === 'number') return;\n\n const originalMethod = descriptor.value;\n const methodName = String(propertyKey);\n\n descriptor.value = function (...args: any[]) {\n // Skip if no telemetry is available and skipIfNoTelemetry is true\n if (options?.skipIfNoTelemetry && !hasActiveTelemetry(options?.tracerName)) {\n return originalMethod.apply(this, args);\n }\n\n const tracer = trace.getTracer(options?.tracerName ?? 'default-tracer');\n\n // Determine span name and kind\n let spanName: string;\n let spanKind: SpanKind | undefined;\n\n if (typeof options === 'string') {\n spanName = options;\n } else if (options) {\n spanName = options.spanName || methodName;\n spanKind = options.spanKind;\n } else {\n spanName = methodName;\n }\n\n // Start the span with optional kind\n const span = tracer.startSpan(spanName, { kind: spanKind });\n let ctx = trace.setSpan(context.active(), span);\n\n // Record input arguments as span attributes\n args.forEach((arg, index) => {\n try {\n span.setAttribute(`${spanName}.argument.${index}`, JSON.stringify(arg));\n } catch {\n span.setAttribute(`${spanName}.argument.${index}`, '[Not Serializable]');\n }\n });\n\n const { requestId, componentName, runId, threadId, resourceId } = getBaggageValues(ctx);\n if (requestId) {\n span.setAttribute('http.request_id', requestId);\n }\n\n if (threadId) {\n span.setAttribute('threadId', threadId);\n }\n\n if (resourceId) {\n span.setAttribute('resourceId', resourceId);\n }\n\n if (componentName) {\n span.setAttribute('componentName', componentName);\n // @ts-ignore\n span.setAttribute('runId', runId);\n // @ts-ignore\n } else if (this && this.name) {\n // @ts-ignore\n span.setAttribute('componentName', this.name);\n // @ts-ignore\n span.setAttribute('runId', this.runId);\n ctx = propagation.setBaggage(\n ctx,\n propagation.createBaggage({\n // @ts-ignore\n componentName: { value: this.name },\n // @ts-ignore\n runId: { value: this.runId },\n // @ts-ignore\n 'http.request_id': { value: requestId },\n // @ts-ignore\n threadId: { value: threadId },\n // @ts-ignore\n resourceId: { value: resourceId },\n }),\n );\n }\n\n let result;\n try {\n // Call the original method within the context\n result = context.with(ctx, () => originalMethod.apply(this, args));\n\n // Handle promises\n if (result instanceof Promise) {\n return result\n .then(resolvedValue => {\n try {\n span.setAttribute(`${spanName}.result`, JSON.stringify(resolvedValue));\n } catch {\n span.setAttribute(`${spanName}.result`, '[Not Serializable]');\n }\n return resolvedValue;\n })\n .finally(() => span.end());\n }\n\n // Record result for non-promise returns\n try {\n span.setAttribute(`${spanName}.result`, JSON.stringify(result));\n } catch {\n span.setAttribute(`${spanName}.result`, '[Not Serializable]');\n }\n\n // Return regular results\n return result;\n } catch (error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error instanceof Error ? error.message : 'Unknown error',\n });\n if (error instanceof Error) {\n span.recordException(error);\n }\n throw error;\n } finally {\n // End span for non-promise returns\n if (!(result instanceof Promise)) {\n span.end();\n }\n }\n };\n\n return descriptor;\n };\n}\n\n// class-telemetry.decorator.ts\nexport function InstrumentClass(options?: {\n prefix?: string;\n spanKind?: SpanKind;\n excludeMethods?: string[];\n methodFilter?: (methodName: string) => boolean;\n tracerName?: string;\n}) {\n return function (target: any) {\n const methods = Object.getOwnPropertyNames(target.prototype);\n\n methods.forEach(method => {\n // Skip excluded methods\n if (options?.excludeMethods?.includes(method) || method === 'constructor') return;\n // Apply method filter if provided\n if (options?.methodFilter && !options.methodFilter(method)) return;\n\n const descriptor = Object.getOwnPropertyDescriptor(target.prototype, method);\n if (descriptor && typeof descriptor.value === 'function') {\n Object.defineProperty(\n target.prototype,\n method,\n withSpan({\n spanName: options?.prefix ? `${options.prefix}.${method}` : method,\n skipIfNoTelemetry: true,\n spanKind: options?.spanKind || SpanKind.INTERNAL,\n tracerName: options?.tracerName,\n })(target, method, descriptor),\n );\n }\n });\n\n return target;\n };\n}\n","// 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","import type { IMastraLogger } from './logger';\nimport { RegisteredLogger } from './logger/constants';\nimport { ConsoleLogger } from './logger/default-logger';\n\nimport type { Telemetry } from './telemetry';\n\nexport class MastraBase {\n component: RegisteredLogger = RegisteredLogger.LLM;\n protected logger: IMastraLogger;\n name?: string;\n telemetry?: Telemetry;\n\n constructor({ component, name }: { component?: RegisteredLogger; name?: string }) {\n this.component = component || RegisteredLogger.LLM;\n this.name = name;\n this.logger = new ConsoleLogger({ name: `${this.component} - ${this.name}` });\n }\n\n /**\n * Set the logger for the agent\n * @param logger\n */\n __setLogger(logger: IMastraLogger) {\n this.logger = logger;\n\n if (this.component !== RegisteredLogger.LLM) {\n this.logger.debug(`Logger updated [component=${this.component}] [name=${this.name}]`);\n }\n }\n\n /**\n * Set the telemetry for the\n * @param telemetry\n */\n __setTelemetry(telemetry: Telemetry) {\n this.telemetry = telemetry;\n\n if (this.component !== RegisteredLogger.LLM) {\n this.logger.debug(`Telemetry updated [component=${this.component}] [name=${this.telemetry.name}]`);\n }\n }\n\n /**\n * Get the telemetry on the vector\n * @returns telemetry\n */\n __getTelemetry() {\n return this.telemetry;\n }\n\n /* \n get experimental_telemetry config\n */\n get experimental_telemetry() {\n return this.telemetry\n ? {\n // tracer: this.telemetry.tracer,\n tracer: this.telemetry.getBaggageTracer(),\n isEnabled: !!this.telemetry.tracer,\n }\n : undefined;\n }\n}\n\nexport * from './types';\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for(\"Symbol.\" + name);\nvar __typeError = msg => {\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj[key] = value;\nvar __name = (target, value) => __defProp(target, \"name\", {\n value,\n configurable: true\n});\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = {\n exports: {}\n }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n get: () => from[key],\n enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n// If the importer is in node compatibility mode or this is not an ESM\n// file that has been converted to a CommonJS file using a Babel-\n// compatible transform (i.e. \"__esModule\" has not been set), then set\n// \"default\" to the CommonJS \"module.exports\" for node compatibility.\nisNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", {\n value: mod,\n enumerable: true\n}) : target, mod));\nvar __decoratorStart = base => [,,, __create(base?.[__knownSymbol(\"metadata\")] ?? null)];\nvar __decoratorStrings = [\"class\", \"method\", \"getter\", \"setter\", \"accessor\", \"field\", \"value\", \"get\", \"set\"];\nvar __expectFn = fn => fn !== void 0 && typeof fn !== \"function\" ? __typeError(\"Function expected\") : fn;\nvar __decoratorContext = (kind, name, done, metadata, fns) => ({\n kind: __decoratorStrings[kind],\n name,\n metadata,\n addInitializer: fn => done._ ? __typeError(\"Already initialized\") : fns.push(__expectFn(fn || null))\n});\nvar __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol(\"metadata\"), array[3]);\nvar __runInitializers = (array, flags, self, value) => {\n for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);\n return value;\n};\nvar __decorateElement = (array, flags, name, decorators, target, extra) => {\n var fn,\n it,\n done,\n ctx,\n access,\n k = flags & 7,\n s = !!(flags & 8),\n p = !!(flags & 16);\n var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0,\n key = __decoratorStrings[k + 5];\n var initializers = k > 3 && (array[j - 1] = []),\n extraInitializers = array[j] || (array[j] = []);\n var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : {\n get [name]() {\n return __privateGet(this, extra);\n },\n set [name](x) {\n return __privateSet(this, extra, x);\n }\n }, name));\n k ? p && k < 4 && __name(extra, (k > 2 ? \"set \" : k > 1 ? \"get \" : \"\") + name) : __name(target, name);\n for (var i = decorators.length - 1; i >= 0; i--) {\n ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);\n if (k) {\n ctx.static = s, ctx.private = p, access = ctx.access = {\n has: p ? x => __privateIn(target, x) : x => name in x\n };\n if (k ^ 3) access.get = p ? x => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : x => x[name];\n if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;\n }\n it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : {\n get: desc.get,\n set: desc.set\n } : target, ctx), done._ = 1;\n if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);else if (typeof it !== \"object\" || it === null) __typeError(\"Object expected\");else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);\n }\n return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the \"in\" operator on this value') : member.has(obj);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar __privateMethod = (obj, member, method) => (__accessCheck(obj, member, \"access private method\"), method);\n\nexport { __commonJS, __decorateElement, __decoratorStart, __runInitializers, __toESM };\n//# sourceMappingURL=chunk-3HXBPDKN.js.map\n//# sourceMappingURL=chunk-3HXBPDKN.js.map","import type { HonoRequest } from 'hono';\nimport { MastraBase } from '../base';\nimport { InstrumentClass } from '../telemetry';\n\nexport interface MastraAuthProviderOptions<TUser = unknown> {\n name?: string;\n authorizeUser?: (user: TUser, request: HonoRequest) => Promise<boolean> | boolean;\n}\n\n@InstrumentClass({\n prefix: 'auth',\n excludeMethods: ['__setTools', '__setLogger', '__setTelemetry', '#log'],\n})\nexport abstract class MastraAuthProvider<TUser = unknown> extends MastraBase {\n constructor(options?: MastraAuthProviderOptions<TUser>) {\n super({ component: 'AUTH', name: options?.name });\n\n if (options?.authorizeUser) {\n this.authorizeUser = options.authorizeUser.bind(this);\n }\n }\n\n /**\n * Authenticate a token and return the payload\n * @param token - The token to authenticate\n * @param request - The request\n * @returns The payload\n */\n abstract authenticateToken(token: string, request: HonoRequest): Promise<TUser | null>;\n\n /**\n * Authorize a user for a path and method\n * @param user - The user to authorize\n * @param request - The request\n * @returns The authorization result\n */\n abstract authorizeUser(user: TUser, request: HonoRequest): Promise<boolean> | boolean;\n\n protected registerOptions(opts?: MastraAuthProviderOptions<TUser>) {\n if (opts?.authorizeUser) {\n this.authorizeUser = opts.authorizeUser.bind(this);\n }\n }\n}\n","import { verifyJwks } from '@mastra/auth';\nimport type { JwtPayload } from '@mastra/auth';\nimport type { MastraAuthProviderOptions } from '@mastra/core/server';\nimport { MastraAuthProvider } from '@mastra/core/server';\nimport { WorkOS } from '@workos-inc/node';\n\ntype WorkosUser = JwtPayload;\n\ninterface MastraAuthWorkosOptions extends MastraAuthProviderOptions<WorkosUser> {\n apiKey?: string;\n clientId?: string;\n}\n\nexport class MastraAuthWorkos extends MastraAuthProvider<WorkosUser> {\n protected workos: WorkOS;\n\n constructor(options?: MastraAuthWorkosOptions) {\n super({ name: options?.name ?? 'workos' });\n\n const apiKey = options?.apiKey ?? process.env.WORKOS_API_KEY;\n const clientId = options?.clientId ?? process.env.WORKOS_CLIENT_ID;\n\n if (!apiKey || !clientId) {\n throw new Error(\n 'WorkOS API key and client ID are required, please provide them in the options or set the environment variables WORKOS_API_KEY and WORKOS_CLIENT_ID',\n );\n }\n\n this.workos = new WorkOS(apiKey, {\n clientId,\n });\n\n this.registerOptions(options);\n }\n\n async authenticateToken(token: string): Promise<WorkosUser | null> {\n const jwksUri = this.workos.userManagement.getJwksUrl(process.env.WORKOS_CLIENT_ID!);\n const user = await verifyJwks(token, jwksUri);\n return user;\n }\n\n async authorizeUser(user: WorkosUser) {\n if (!user) {\n return false;\n }\n\n const org = await this.workos.userManagement.listOrganizationMemberships({\n userId: user.sub,\n });\n\n const roles = org.data.map(org => org.role);\n\n const isAdmin = roles.some(role => role.slug === 'admin');\n\n return isAdmin;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../packages/core/src/telemetry/utility.ts","../../../packages/core/src/telemetry/telemetry.decorators.ts","../../../packages/core/src/logger/constants.ts","../../../packages/core/src/logger/logger.ts","../../../packages/core/src/logger/default-logger.ts","../../../packages/core/src/base.ts","../../../packages/core/dist/chunk-3HXBPDKN.js","../../../packages/core/src/server/auth.ts","../src/index.ts"],"names":["trace","propagation","org"],"mappings":"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","file":"index.js","sourcesContent":["import { propagation, trace } from '@opentelemetry/api';\nimport type { Context } from '@opentelemetry/api';\n\n// Helper function to check if telemetry is active\nexport function hasActiveTelemetry(tracerName: string = 'default-tracer'): boolean {\n try {\n return !!trace.getTracer(tracerName);\n } catch {\n return false;\n }\n}\n\n/**\n * Get baggage values from context\n * @param ctx The context to get baggage values from\n * @returns\n */\nexport function getBaggageValues(ctx: Context) {\n const currentBaggage = propagation.getBaggage(ctx);\n const requestId = currentBaggage?.getEntry('http.request_id')?.value;\n const componentName = currentBaggage?.getEntry('componentName')?.value;\n const runId = currentBaggage?.getEntry('runId')?.value;\n const threadId = currentBaggage?.getEntry('threadId')?.value;\n const resourceId = currentBaggage?.getEntry('resourceId')?.value;\n return {\n requestId,\n componentName,\n runId,\n threadId,\n resourceId,\n };\n}\n","import { trace, context, SpanStatusCode, SpanKind, propagation } from '@opentelemetry/api';\nimport type { Span } from '@opentelemetry/api';\n\nimport { hasActiveTelemetry, getBaggageValues } from './utility';\n\n// Type interfaces for better type safety\ninterface StreamFinishData {\n text?: string;\n usage?: {\n promptTokens?: number;\n completionTokens?: number;\n totalTokens?: number;\n };\n finishReason?: string;\n toolCalls?: unknown[];\n toolResults?: unknown[];\n warnings?: unknown;\n object?: unknown; // For structured output\n}\n\ninterface StreamOptions {\n onFinish?: (data: StreamFinishData) => Promise<void> | void;\n [key: string]: unknown;\n}\n\ninterface EnhancedSpan extends Span {\n __mastraStreamingSpan?: boolean;\n}\n\nfunction isStreamingResult(result: unknown, methodName: string): boolean {\n if (methodName === 'stream' || methodName === 'streamVNext') {\n return true;\n }\n\n if (result && typeof result === 'object' && result !== null) {\n const obj = result as Record<string, unknown>;\n return 'textStream' in obj || 'objectStream' in obj || 'usagePromise' in obj || 'finishReasonPromise' in obj;\n }\n\n return false;\n}\n\nfunction enhanceStreamingArgumentsWithTelemetry(\n args: unknown[],\n span: EnhancedSpan,\n spanName: string,\n methodName: string,\n): unknown[] {\n if (methodName === 'stream' || methodName === 'streamVNext') {\n const enhancedArgs = [...args];\n const streamOptions = (enhancedArgs.length > 1 && (enhancedArgs[1] as StreamOptions)) || ({} as StreamOptions);\n const enhancedStreamOptions: StreamOptions = { ...streamOptions };\n const originalOnFinish = enhancedStreamOptions.onFinish;\n\n enhancedStreamOptions.onFinish = async (finishData: StreamFinishData) => {\n try {\n const telemetryData = {\n text: finishData.text,\n usage: finishData.usage,\n finishReason: finishData.finishReason,\n toolCalls: finishData.toolCalls,\n toolResults: finishData.toolResults,\n warnings: finishData.warnings,\n ...(finishData.object !== undefined && { object: finishData.object }),\n };\n\n span.setAttribute(`${spanName}.result`, JSON.stringify(telemetryData));\n span.setStatus({ code: SpanStatusCode.OK });\n span.end();\n } catch (error) {\n debugger;\n console.warn('Telemetry capture failed:', error);\n span.setAttribute(`${spanName}.result`, '[Telemetry Capture Error]');\n span.setStatus({ code: SpanStatusCode.ERROR });\n span.end();\n }\n\n if (originalOnFinish) {\n return await originalOnFinish(finishData);\n }\n };\n\n enhancedArgs[1] = enhancedStreamOptions;\n span.__mastraStreamingSpan = true;\n\n return enhancedArgs;\n }\n\n return args;\n}\n\n// Decorator factory that takes optional spanName\nexport function withSpan(options: {\n spanName?: string;\n skipIfNoTelemetry?: boolean;\n spanKind?: SpanKind;\n tracerName?: string;\n}): any {\n return function (_target: any, propertyKey: string | symbol, descriptor?: PropertyDescriptor | number) {\n if (!descriptor || typeof descriptor === 'number') return;\n\n const originalMethod = descriptor.value as Function;\n const methodName = String(propertyKey);\n\n descriptor.value = function (this: unknown, ...args: unknown[]) {\n // Skip if no telemetry is available and skipIfNoTelemetry is true\n if (options?.skipIfNoTelemetry && !hasActiveTelemetry(options?.tracerName)) {\n return originalMethod.apply(this, args);\n }\n\n const tracer = trace.getTracer(options?.tracerName ?? 'default-tracer');\n\n // Determine span name and kind\n let spanName: string;\n let spanKind: SpanKind | undefined;\n\n if (typeof options === 'string') {\n spanName = options;\n } else if (options) {\n spanName = options.spanName || methodName;\n spanKind = options.spanKind;\n } else {\n spanName = methodName;\n }\n\n // Start the span with optional kind\n const span = tracer.startSpan(spanName, { kind: spanKind }) as EnhancedSpan;\n let ctx = trace.setSpan(context.active(), span);\n\n // Record input arguments as span attributes\n args.forEach((arg, index) => {\n try {\n span.setAttribute(`${spanName}.argument.${index}`, JSON.stringify(arg));\n } catch {\n span.setAttribute(`${spanName}.argument.${index}`, '[Not Serializable]');\n }\n });\n\n const { requestId, componentName, runId, threadId, resourceId } = getBaggageValues(ctx);\n if (requestId) {\n span.setAttribute('http.request_id', requestId);\n }\n\n if (threadId) {\n span.setAttribute('threadId', threadId);\n }\n\n if (resourceId) {\n span.setAttribute('resourceId', resourceId);\n }\n\n if (componentName) {\n span.setAttribute('componentName', componentName);\n // @ts-ignore - These properties may exist on the context\n span.setAttribute('runId', runId);\n } else if (this && typeof this === 'object' && 'name' in this) {\n const contextObj = this as { name: string; runId?: string };\n span.setAttribute('componentName', contextObj.name);\n if (contextObj.runId) {\n span.setAttribute('runId', contextObj.runId);\n }\n ctx = propagation.setBaggage(\n ctx,\n propagation.createBaggage({\n // @ts-ignore\n componentName: { value: this.name },\n // @ts-ignore\n runId: { value: this.runId },\n // @ts-ignore\n 'http.request_id': { value: requestId },\n // @ts-ignore\n threadId: { value: threadId },\n // @ts-ignore\n resourceId: { value: resourceId },\n }),\n );\n }\n\n let result: unknown;\n try {\n // For streaming methods, enhance arguments with telemetry capture before calling\n const enhancedArgs = isStreamingResult(result, methodName)\n ? enhanceStreamingArgumentsWithTelemetry(args, span, spanName, methodName)\n : args;\n\n // Call the original method within the context\n result = context.with(ctx, () => originalMethod.apply(this, enhancedArgs));\n\n // Handle promises\n if (result instanceof Promise) {\n return result\n .then(resolvedValue => {\n if (isStreamingResult(resolvedValue, methodName)) {\n return resolvedValue;\n } else {\n try {\n span.setAttribute(`${spanName}.result`, JSON.stringify(resolvedValue));\n } catch {\n span.setAttribute(`${spanName}.result`, '[Not Serializable]');\n }\n return resolvedValue;\n }\n })\n .finally(() => {\n if (!span.__mastraStreamingSpan) {\n span.end();\n }\n });\n }\n\n // Record result for non-promise returns\n if (!isStreamingResult(result, methodName)) {\n try {\n span.setAttribute(`${spanName}.result`, JSON.stringify(result));\n } catch {\n span.setAttribute(`${spanName}.result`, '[Not Serializable]');\n }\n }\n\n // Return regular results\n return result;\n } catch (error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error instanceof Error ? error.message : 'Unknown error',\n });\n if (error instanceof Error) {\n span.recordException(error);\n }\n throw error;\n } finally {\n // End span for non-promise returns\n if (!(result instanceof Promise) && !isStreamingResult(result, methodName)) {\n span.end();\n }\n }\n };\n\n return descriptor;\n };\n}\n\n// class-telemetry.decorator.ts\nexport function InstrumentClass(options?: {\n prefix?: string;\n spanKind?: SpanKind;\n excludeMethods?: string[];\n methodFilter?: (methodName: string) => boolean;\n tracerName?: string;\n}) {\n return function (target: any) {\n const methods = Object.getOwnPropertyNames(target.prototype);\n\n methods.forEach(method => {\n // Skip excluded methods\n if (options?.excludeMethods?.includes(method) || method === 'constructor') return;\n // Apply method filter if provided\n if (options?.methodFilter && !options.methodFilter(method)) return;\n\n const descriptor = Object.getOwnPropertyDescriptor(target.prototype, method);\n if (descriptor && typeof descriptor.value === 'function') {\n Object.defineProperty(\n target.prototype,\n method,\n withSpan({\n spanName: options?.prefix ? `${options.prefix}.${method}` : method,\n skipIfNoTelemetry: true,\n spanKind: options?.spanKind || SpanKind.INTERNAL,\n tracerName: options?.tracerName,\n })(target, method, descriptor),\n );\n }\n });\n\n return target;\n };\n}\n","// Constants and Types (keeping from original implementation)\nexport const RegisteredLogger = {\n AGENT: 'AGENT',\n AI_TRACING: 'AI_TRACING',\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","import type { IMastraLogger } from './logger';\nimport { RegisteredLogger } from './logger/constants';\nimport { ConsoleLogger } from './logger/default-logger';\n\nimport type { Telemetry } from './telemetry';\n\nexport class MastraBase {\n component: RegisteredLogger = RegisteredLogger.LLM;\n protected logger: IMastraLogger;\n name?: string;\n telemetry?: Telemetry;\n\n constructor({ component, name }: { component?: RegisteredLogger; name?: string }) {\n this.component = component || RegisteredLogger.LLM;\n this.name = name;\n this.logger = new ConsoleLogger({ name: `${this.component} - ${this.name}` });\n }\n\n /**\n * Set the logger for the agent\n * @param logger\n */\n __setLogger(logger: IMastraLogger) {\n this.logger = logger;\n\n if (this.component !== RegisteredLogger.LLM) {\n this.logger.debug(`Logger updated [component=${this.component}] [name=${this.name}]`);\n }\n }\n\n /**\n * Set the telemetry for the\n * @param telemetry\n */\n __setTelemetry(telemetry: Telemetry) {\n this.telemetry = telemetry;\n\n if (this.component !== RegisteredLogger.LLM) {\n this.logger.debug(`Telemetry updated [component=${this.component}] [name=${this.telemetry.name}]`);\n }\n }\n\n /**\n * Get the telemetry on the vector\n * @returns telemetry\n */\n __getTelemetry() {\n return this.telemetry;\n }\n\n /* \n get experimental_telemetry config\n */\n get experimental_telemetry() {\n return this.telemetry\n ? {\n // tracer: this.telemetry.tracer,\n tracer: this.telemetry.getBaggageTracer(),\n isEnabled: !!this.telemetry.tracer,\n }\n : undefined;\n }\n}\n\nexport * from './types';\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for(\"Symbol.\" + name);\nvar __typeError = msg => {\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj[key] = value;\nvar __name = (target, value) => __defProp(target, \"name\", {\n value,\n configurable: true\n});\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = {\n exports: {}\n }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n get: () => from[key],\n enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n// If the importer is in node compatibility mode or this is not an ESM\n// file that has been converted to a CommonJS file using a Babel-\n// compatible transform (i.e. \"__esModule\" has not been set), then set\n// \"default\" to the CommonJS \"module.exports\" for node compatibility.\nisNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", {\n value: mod,\n enumerable: true\n}) : target, mod));\nvar __decoratorStart = base => [,,, __create(base?.[__knownSymbol(\"metadata\")] ?? null)];\nvar __decoratorStrings = [\"class\", \"method\", \"getter\", \"setter\", \"accessor\", \"field\", \"value\", \"get\", \"set\"];\nvar __expectFn = fn => fn !== void 0 && typeof fn !== \"function\" ? __typeError(\"Function expected\") : fn;\nvar __decoratorContext = (kind, name, done, metadata, fns) => ({\n kind: __decoratorStrings[kind],\n name,\n metadata,\n addInitializer: fn => done._ ? __typeError(\"Already initialized\") : fns.push(__expectFn(fn || null))\n});\nvar __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol(\"metadata\"), array[3]);\nvar __runInitializers = (array, flags, self, value) => {\n for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);\n return value;\n};\nvar __decorateElement = (array, flags, name, decorators, target, extra) => {\n var fn,\n it,\n done,\n ctx,\n access,\n k = flags & 7,\n s = !!(flags & 8),\n p = !!(flags & 16);\n var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0,\n key = __decoratorStrings[k + 5];\n var initializers = k > 3 && (array[j - 1] = []),\n extraInitializers = array[j] || (array[j] = []);\n var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : {\n get [name]() {\n return __privateGet(this, extra);\n },\n set [name](x) {\n return __privateSet(this, extra, x);\n }\n }, name));\n k ? p && k < 4 && __name(extra, (k > 2 ? \"set \" : k > 1 ? \"get \" : \"\") + name) : __name(target, name);\n for (var i = decorators.length - 1; i >= 0; i--) {\n ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);\n if (k) {\n ctx.static = s, ctx.private = p, access = ctx.access = {\n has: p ? x => __privateIn(target, x) : x => name in x\n };\n if (k ^ 3) access.get = p ? x => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : x => x[name];\n if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;\n }\n it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : {\n get: desc.get,\n set: desc.set\n } : target, ctx), done._ = 1;\n if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);else if (typeof it !== \"object\" || it === null) __typeError(\"Object expected\");else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);\n }\n return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the \"in\" operator on this value') : member.has(obj);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar __privateMethod = (obj, member, method) => (__accessCheck(obj, member, \"access private method\"), method);\n\nexport { __commonJS, __decorateElement, __decoratorStart, __runInitializers, __toESM };\n//# sourceMappingURL=chunk-3HXBPDKN.js.map\n//# sourceMappingURL=chunk-3HXBPDKN.js.map","import type { HonoRequest } from 'hono';\nimport { MastraBase } from '../base';\nimport { InstrumentClass } from '../telemetry';\n\nexport interface MastraAuthProviderOptions<TUser = unknown> {\n name?: string;\n authorizeUser?: (user: TUser, request: HonoRequest) => Promise<boolean> | boolean;\n}\n\n@InstrumentClass({\n prefix: 'auth',\n excludeMethods: ['__setTools', '__setLogger', '__setTelemetry', '#log'],\n})\nexport abstract class MastraAuthProvider<TUser = unknown> extends MastraBase {\n constructor(options?: MastraAuthProviderOptions<TUser>) {\n super({ component: 'AUTH', name: options?.name });\n\n if (options?.authorizeUser) {\n this.authorizeUser = options.authorizeUser.bind(this);\n }\n }\n\n /**\n * Authenticate a token and return the payload\n * @param token - The token to authenticate\n * @param request - The request\n * @returns The payload\n */\n abstract authenticateToken(token: string, request: HonoRequest): Promise<TUser | null>;\n\n /**\n * Authorize a user for a path and method\n * @param user - The user to authorize\n * @param request - The request\n * @returns The authorization result\n */\n abstract authorizeUser(user: TUser, request: HonoRequest): Promise<boolean> | boolean;\n\n protected registerOptions(opts?: MastraAuthProviderOptions<TUser>) {\n if (opts?.authorizeUser) {\n this.authorizeUser = opts.authorizeUser.bind(this);\n }\n }\n}\n","import { verifyJwks } from '@mastra/auth';\nimport type { JwtPayload } from '@mastra/auth';\nimport type { MastraAuthProviderOptions } from '@mastra/core/server';\nimport { MastraAuthProvider } from '@mastra/core/server';\nimport { WorkOS } from '@workos-inc/node';\n\ntype WorkosUser = JwtPayload;\n\ninterface MastraAuthWorkosOptions extends MastraAuthProviderOptions<WorkosUser> {\n apiKey?: string;\n clientId?: string;\n}\n\nexport class MastraAuthWorkos extends MastraAuthProvider<WorkosUser> {\n protected workos: WorkOS;\n\n constructor(options?: MastraAuthWorkosOptions) {\n super({ name: options?.name ?? 'workos' });\n\n const apiKey = options?.apiKey ?? process.env.WORKOS_API_KEY;\n const clientId = options?.clientId ?? process.env.WORKOS_CLIENT_ID;\n\n if (!apiKey || !clientId) {\n throw new Error(\n 'WorkOS API key and client ID are required, please provide them in the options or set the environment variables WORKOS_API_KEY and WORKOS_CLIENT_ID',\n );\n }\n\n this.workos = new WorkOS(apiKey, {\n clientId,\n });\n\n this.registerOptions(options);\n }\n\n async authenticateToken(token: string): Promise<WorkosUser | null> {\n const jwksUri = this.workos.userManagement.getJwksUrl(process.env.WORKOS_CLIENT_ID!);\n const user = await verifyJwks(token, jwksUri);\n return user;\n }\n\n async authorizeUser(user: WorkosUser) {\n if (!user) {\n return false;\n }\n\n const org = await this.workos.userManagement.listOrganizationMemberships({\n userId: user.sub,\n });\n\n const roles = org.data.map(org => org.role);\n\n const isAdmin = roles.some(role => role.slug === 'admin');\n\n return isAdmin;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/auth-workos",
3
- "version": "0.10.3",
3
+ "version": "0.10.4",
4
4
  "description": "Mastra WorkOS Auth integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -21,7 +21,7 @@
21
21
  "license": "Apache-2.0",
22
22
  "dependencies": {
23
23
  "@workos-inc/node": "^7.57.0",
24
- "@mastra/auth": "0.1.1"
24
+ "@mastra/auth": "0.1.2"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/node": "^20.19.0",
@@ -29,9 +29,9 @@
29
29
  "tsup": "^8.5.0",
30
30
  "typescript": "^5.8.3",
31
31
  "vitest": "^3.2.4",
32
- "@internal/lint": "0.0.27",
33
- "@mastra/core": "0.13.0",
34
- "@internal/types-builder": "0.0.2"
32
+ "@mastra/core": "0.15.2",
33
+ "@internal/lint": "0.0.34",
34
+ "@internal/types-builder": "0.0.9"
35
35
  },
36
36
  "scripts": {
37
37
  "build": "tsup --silent --config tsup.config.ts",