{"version":3,"sources":["../src/utils.ts","../src/index.ts"],"names":["ReadableStream","randomUUID","stream","messageList","MessageList","MastraModelOutput","getOrCreateSpan","SpanType","EntityType","executeWithContext","TransformStream","ChunkFrom","standardSchemaToJSONSchema","toStandardSchema","schema","Agent","requestContext","RequestContext","OpenAIAgent","run"],"mappings":"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","file":"index.cjs","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { ReadableStream, TransformStream } from 'node:stream/web';\nimport type { ReadableStreamDefaultController } from 'node:stream/web';\n\nimport type { AgentExecutionOptionsBase, MastraLanguageModel, PublicStructuredOutputOptions } from '@mastra/core/agent';\nimport { MessageList } from '@mastra/core/agent/message-list';\nimport type { MessageListInput } from '@mastra/core/agent/message-list';\nimport type { Mastra } from '@mastra/core/mastra';\nimport { EntityType, executeWithContext, getOrCreateSpan, SpanType } from '@mastra/core/observability';\nimport type {\n  AIModelGenerationSpan,\n  CostContext,\n  IModelSpanTracker,\n  Span,\n  UsageStats,\n} from '@mastra/core/observability';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport { standardSchemaToJSONSchema, toStandardSchema } from '@mastra/core/schema';\nimport type { ChunkType, FullOutput, JSONValue, LanguageModelUsage, ProviderMetadata } from '@mastra/core/stream';\nimport { ChunkFrom, MastraModelOutput } from '@mastra/core/stream';\n\ntype MastraModelOutputOptions<OUTPUT = undefined> = ConstructorParameters<\n  typeof MastraModelOutput<OUTPUT>\n>[0]['options'];\n\nexport type SDKAgentRunOptions<OUTPUT = unknown> = AgentExecutionOptionsBase<OUTPUT> & {\n  signal?: AbortSignal;\n  structuredOutput?: OUTPUT extends {} ? PublicStructuredOutputOptions<OUTPUT> : never;\n  [key: string]: unknown;\n};\n\nexport type V3Usage = {\n  inputTokens: {\n    total: number | undefined;\n    noCache?: number;\n    cacheRead?: number;\n    cacheWrite?: number;\n  };\n  outputTokens: {\n    total: number | undefined;\n    text?: number;\n    reasoning?: number;\n  };\n};\n\nexport type SDKModelGenerateResult = {\n  content: Array<{ type: 'text'; text: string }>;\n  finishReason: { unified: 'stop'; raw: 'stop' };\n  usage: V3Usage;\n  response: {\n    id?: string;\n    modelId: string;\n    timestamp: Date;\n  };\n  providerMetadata?: ProviderMetadata;\n  costContext?: CostContext;\n  object?: unknown;\n};\n\nexport function createNoopModel({ modelId, provider }: { modelId: string; provider: string }): MastraLanguageModel {\n  return {\n    modelId,\n    provider,\n    specificationVersion: 'v3',\n    supportedUrls: {},\n    doGenerate: async () => createNoopStreamResult(),\n    doStream: async () => createNoopStreamResult(),\n  } as MastraLanguageModel;\n}\n\nfunction createNoopStreamResult(): { stream: ReadableStream<never> } {\n  return {\n    stream: new ReadableStream<never>({\n      start: controller => controller.close(),\n    }),\n  };\n}\n\nexport function createCompletedMastraStream({\n  runId,\n  prompt,\n  text,\n  responseId,\n  modelId,\n  usage,\n  providerMetadata,\n  costContext,\n  object,\n}: {\n  runId: string;\n  prompt: string;\n  text: string;\n  responseId?: string;\n  modelId: string;\n  usage: LanguageModelUsage;\n  providerMetadata?: ProviderMetadata;\n  costContext?: CostContext;\n  object?: unknown;\n}): ReadableStream<ChunkType> {\n  return new ReadableStream<ChunkType>({\n    start(controller) {\n      const textId = randomUUID();\n      enqueueStartChunks(controller, {\n        runId,\n        prompt,\n        textId,\n        responseId,\n        modelId,\n        providerMetadata,\n      });\n      if (text) {\n        enqueueTextDelta(controller, runId, textId, text);\n      }\n      enqueueFinishChunks(controller, {\n        runId,\n        prompt,\n        textId,\n        text,\n        responseId,\n        modelId,\n        usage,\n        providerMetadata,\n        costContext,\n        object,\n      });\n      controller.close();\n    },\n  });\n}\n\nexport function createMastraOutput<OUTPUT>({\n  messages,\n  runId,\n  modelId,\n  provider,\n  stream,\n  options,\n}: {\n  messages: MessageListInput;\n  runId: string;\n  modelId: string;\n  provider: string;\n  stream: ReadableStream<ChunkType>;\n  options?: Partial<MastraModelOutputOptions<OUTPUT>>;\n}): MastraModelOutput<OUTPUT> {\n  const messageList = new MessageList();\n  messageList.add(messages, 'input');\n  messageList.add([{ role: 'assistant', content: '' }], 'response');\n\n  return new MastraModelOutput<OUTPUT>({\n    model: {\n      modelId,\n      provider,\n      version: 'v3',\n    },\n    stream: stream as ReadableStream<ChunkType<OUTPUT>>,\n    messageList,\n    messageId: randomUUID(),\n    options: {\n      ...options,\n      runId,\n    },\n  });\n}\n\nexport function toFullOutput<OUTPUT>({\n  messages,\n  runId,\n  provider,\n  result,\n  options,\n}: {\n  messages: MessageListInput;\n  runId: string;\n  provider: string;\n  result: SDKModelGenerateResult;\n  options?: Partial<MastraModelOutputOptions<OUTPUT>>;\n}): Promise<FullOutput<OUTPUT>> {\n  const text = result.content.map(part => part.text).join('');\n  const stream = createCompletedMastraStream({\n    runId,\n    prompt: promptToText(messages),\n    text,\n    responseId: result.response.id,\n    modelId: result.response.modelId,\n    usage: toLanguageModelUsage(result.usage),\n    providerMetadata: result.providerMetadata,\n    costContext: result.costContext,\n    object: result.object,\n  });\n\n  return createMastraOutput<OUTPUT>({\n    messages,\n    runId,\n    modelId: result.response.modelId,\n    provider,\n    stream,\n    options,\n  }).getFullOutput();\n}\n\nexport type SDKAgentTelemetryOptions<OUTPUT = unknown> = {\n  agentId: string;\n  agentName: string;\n  provider: string;\n  modelId: string;\n  messages: MessageListInput;\n  prompt: string;\n  runId: string;\n  streaming: boolean;\n  method: 'generate' | 'stream';\n  requestContext: RequestContext;\n  instructions?: string;\n  maxSteps?: SDKAgentRunOptions<OUTPUT>['maxSteps'];\n  tracingOptions?: SDKAgentRunOptions<OUTPUT>['tracingOptions'];\n  tracingContext?: SDKAgentRunOptions<OUTPUT>['tracingContext'];\n  onFinish?: SDKAgentRunOptions<OUTPUT>['onFinish'];\n  onStepFinish?: SDKAgentRunOptions<OUTPUT>['onStepFinish'];\n  mastra?: Mastra;\n};\n\nexport type SDKAgentTelemetry<OUTPUT = unknown> = {\n  execute<T>(fn: () => Promise<T>): Promise<T>;\n  endGenerate(result: SDKModelGenerateResult): void;\n  fail(error: unknown): void;\n  startToolCall(input: SDKAgentToolCallInput): void;\n  endToolCall(output: SDKAgentToolCallOutput): void;\n  wrapStream(stream: ReadableStream<ChunkType>): ReadableStream<ChunkType>;\n  outputOptions(): Partial<MastraModelOutputOptions<OUTPUT>>;\n};\n\nexport type SDKAgentToolCallInput = {\n  toolCallId: string;\n  toolName: string;\n  input?: unknown;\n};\n\nexport type SDKAgentToolCallOutput = {\n  toolCallId: string;\n  output?: unknown;\n  isError?: boolean;\n};\n\nexport function createSDKAgentTelemetry<OUTPUT>({\n  agentId,\n  agentName,\n  provider,\n  modelId,\n  messages,\n  prompt,\n  runId,\n  streaming,\n  method,\n  requestContext,\n  instructions,\n  maxSteps,\n  tracingOptions,\n  tracingContext,\n  onFinish,\n  onStepFinish,\n  mastra,\n}: SDKAgentTelemetryOptions<OUTPUT>): SDKAgentTelemetry<OUTPUT> {\n  const agentSpan = getOrCreateSpan({\n    type: SpanType.AGENT_RUN,\n    name: `agent run: '${agentId}'`,\n    entityType: EntityType.AGENT,\n    entityId: agentId,\n    entityName: agentName,\n    input: messages,\n    attributes: {\n      prompt,\n      instructions,\n      maxSteps,\n    },\n    metadata: {\n      runId,\n      sdkAgent: true,\n      sdkProvider: provider,\n      sdkMethod: method,\n    },\n    tracingOptions,\n    tracingContext,\n    requestContext,\n    mastra,\n  });\n\n  const modelSpan = agentSpan?.createChildSpan({\n    type: SpanType.MODEL_GENERATION,\n    name: `llm: '${modelId}'`,\n    input: {\n      messages,\n    },\n    attributes: {\n      model: modelId,\n      provider,\n      streaming,\n    },\n    metadata: {\n      runId,\n      sdkAgent: true,\n      sdkProvider: provider,\n      sdkMethod: method,\n    },\n    requestContext,\n  });\n  const modelSpanTracker = getModelSpanTracker(modelSpan);\n  const toolSpans = new Map<string, Span<SpanType.TOOL_CALL> | Span<SpanType.MCP_TOOL_CALL>>();\n\n  let ended = false;\n\n  const startToolCall = ({ toolCallId, toolName, input }: SDKAgentToolCallInput) => {\n    if (toolSpans.has(toolCallId)) {\n      return;\n    }\n\n    const parentSpan = agentSpan ?? modelSpan;\n    if (!parentSpan) {\n      return;\n    }\n\n    const mcp = parseMcpToolName(toolName);\n    const span = mcp\n      ? parentSpan.createChildSpan({\n          type: SpanType.MCP_TOOL_CALL,\n          name: `mcp_tool: '${toolName}' on '${mcp.serverName}'`,\n          input,\n          entityType: EntityType.TOOL,\n          entityId: toolName,\n          entityName: toolName,\n          attributes: {\n            mcpServer: mcp.serverName,\n          },\n          metadata: {\n            runId,\n            sdkAgent: true,\n            sdkProvider: provider,\n            sdkMethod: method,\n            toolCallId,\n          },\n          requestContext,\n        })\n      : parentSpan.createChildSpan({\n          type: SpanType.TOOL_CALL,\n          name: `tool: '${toolName}'`,\n          input,\n          entityType: EntityType.TOOL,\n          entityId: toolName,\n          entityName: toolName,\n          attributes: {\n            toolType: 'tool',\n          },\n          metadata: {\n            runId,\n            sdkAgent: true,\n            sdkProvider: provider,\n            sdkMethod: method,\n            toolCallId,\n          },\n          requestContext,\n        });\n\n    toolSpans.set(toolCallId, span);\n  };\n\n  const endToolCall = ({ toolCallId, output, isError }: SDKAgentToolCallOutput) => {\n    const span = toolSpans.get(toolCallId);\n    if (!span) {\n      return;\n    }\n\n    toolSpans.delete(toolCallId);\n    if (isError) {\n      span.error({\n        error:\n          output instanceof Error ? output : new Error(typeof output === 'string' ? output : 'SDK tool call failed'),\n        attributes: { success: false },\n      });\n      return;\n    }\n\n    span.end({\n      output,\n      attributes: { success: true },\n    });\n  };\n\n  const closeOpenToolSpans = (success: boolean, error?: unknown) => {\n    for (const [toolCallId, span] of toolSpans) {\n      toolSpans.delete(toolCallId);\n      if (success) {\n        span.end({ attributes: { success: true } });\n        continue;\n      }\n\n      const normalized = error instanceof Error ? error : new Error(String(error ?? 'SDK agent run failed'));\n      span.error({ error: normalized, attributes: { success: false } });\n    }\n  };\n\n  const endModel = ({\n    text,\n    usage,\n    providerMetadata,\n    finishReason = 'stop',\n    responseId,\n    responseModel,\n    costContext,\n  }: {\n    text: string;\n    usage?: LanguageModelUsage;\n    providerMetadata?: ProviderMetadata;\n    finishReason?: string;\n    responseId?: string;\n    responseModel?: string;\n    costContext?: CostContext;\n  }) => {\n    if (modelSpanTracker) {\n      modelSpanTracker.endGeneration({\n        output: {\n          text,\n        },\n        attributes: {\n          finishReason,\n          responseId,\n          responseModel,\n          costContext,\n        },\n        usage,\n        providerMetadata,\n      });\n      return;\n    }\n\n    modelSpan?.end({\n      output: {\n        text,\n      },\n      attributes: {\n        finishReason,\n        responseId,\n        responseModel,\n        usage: usage ? toUsageStats(usage) : undefined,\n        costContext,\n      },\n    });\n  };\n\n  const end = (result: {\n    text: string;\n    usage?: LanguageModelUsage;\n    providerMetadata?: ProviderMetadata;\n    finishReason?: string;\n    responseId?: string;\n    responseModel?: string;\n    costContext?: CostContext;\n  }) => {\n    if (ended) {\n      return;\n    }\n\n    ended = true;\n    closeOpenToolSpans(true);\n    endModel(result);\n    agentSpan?.end({\n      output: {\n        text: result.text,\n      },\n    });\n  };\n\n  const fail = (error: unknown) => {\n    if (ended) {\n      return;\n    }\n\n    ended = true;\n    const normalized = error instanceof Error ? error : new Error(String(error));\n    closeOpenToolSpans(false, normalized);\n    if (modelSpanTracker) {\n      modelSpanTracker.reportGenerationError({ error: normalized });\n    } else {\n      modelSpan?.error({ error: normalized });\n    }\n    agentSpan?.error({ error: normalized });\n  };\n\n  return {\n    execute: fn => executeWithContext({ span: modelSpan ?? agentSpan, fn }),\n    endGenerate(result) {\n      end({\n        text: result.content.map(part => part.text).join(''),\n        usage: toLanguageModelUsage(result.usage),\n        providerMetadata: result.providerMetadata,\n        finishReason: result.finishReason.unified,\n        responseId: result.response.id,\n        responseModel: result.response.modelId,\n        costContext: result.costContext,\n      });\n    },\n    fail,\n    startToolCall,\n    endToolCall,\n    wrapStream(stream) {\n      const trackedStream = (modelSpanTracker?.wrapStream(stream) ?? stream) as ReadableStream<ChunkType>;\n      return wrapStreamForAgentSpan(trackedStream, {\n        end,\n        fail,\n      });\n    },\n    outputOptions() {\n      return {\n        onFinish,\n        onStepFinish,\n        requestContext,\n        tracingContext: agentSpan ? { currentSpan: agentSpan } : tracingContext,\n      };\n    },\n  };\n}\n\nfunction parseMcpToolName(toolName: string): { serverName: string; toolName: string } | undefined {\n  const match = /^mcp__([^_].*?)__(.+)$/.exec(toolName);\n  if (!match?.[1] || !match[2]) {\n    return undefined;\n  }\n\n  return {\n    serverName: match[1],\n    toolName: match[2],\n  };\n}\n\nfunction getModelSpanTracker(\n  modelSpan: Span<SpanType.MODEL_GENERATION> | AIModelGenerationSpan | undefined,\n): IModelSpanTracker | undefined {\n  if (!modelSpan || !('createTracker' in modelSpan)) {\n    return undefined;\n  }\n\n  return modelSpan.createTracker();\n}\n\nfunction wrapStreamForAgentSpan(\n  stream: ReadableStream<ChunkType>,\n  telemetry: {\n    end: (result: {\n      text: string;\n      usage?: LanguageModelUsage;\n      providerMetadata?: ProviderMetadata;\n      finishReason?: string;\n      responseId?: string;\n      responseModel?: string;\n      costContext?: CostContext;\n    }) => void;\n    fail: (error: unknown) => void;\n  },\n): ReadableStream<ChunkType> {\n  let text = '';\n\n  return stream.pipeThrough(\n    new TransformStream<ChunkType, ChunkType>({\n      transform(chunk, controller) {\n        if (chunk.type === 'text-delta') {\n          text += chunk.payload.text;\n        }\n\n        if (chunk.type === 'finish') {\n          telemetry.end({\n            text,\n            usage: chunk.payload.output.usage,\n            providerMetadata: chunk.payload.providerMetadata,\n            finishReason: chunk.payload.stepResult.reason,\n            responseId: chunk.payload.response?.id,\n            responseModel: chunk.payload.response?.modelId,\n            costContext: getCostContext(chunk.payload.metadata?.costContext),\n          });\n        }\n\n        if (chunk.type === 'error') {\n          telemetry.fail(chunk.payload.error);\n        }\n\n        controller.enqueue(chunk);\n      },\n      flush() {\n        telemetry.end({ text });\n      },\n    }),\n  );\n}\n\nfunction toUsageStats(usage: LanguageModelUsage): UsageStats {\n  return {\n    inputTokens: usage.inputTokens,\n    outputTokens: usage.outputTokens,\n    inputDetails: {\n      cacheRead: usage.cachedInputTokens,\n      cacheWrite: usage.cacheCreationInputTokens,\n    },\n    outputDetails: {\n      text: usage.outputTokens,\n      reasoning: usage.reasoningTokens,\n    },\n  };\n}\n\nfunction getCostContext(value: unknown): CostContext | undefined {\n  if (!value || typeof value !== 'object') {\n    return undefined;\n  }\n\n  return value as CostContext;\n}\n\nexport function enqueueStartChunks(\n  controller: ReadableStreamDefaultController<ChunkType>,\n  {\n    runId,\n    prompt,\n    textId,\n    responseId,\n    modelId,\n    providerMetadata,\n  }: {\n    runId: string;\n    prompt: string;\n    textId: string;\n    responseId?: string;\n    modelId: string;\n    providerMetadata?: ProviderMetadata;\n  },\n): void {\n  controller.enqueue({\n    type: 'start',\n    runId,\n    from: ChunkFrom.AGENT,\n    payload: {},\n  });\n  controller.enqueue({\n    type: 'step-start',\n    runId,\n    from: ChunkFrom.AGENT,\n    payload: {\n      request: { body: prompt },\n    },\n  });\n  controller.enqueue({\n    type: 'response-metadata',\n    runId,\n    from: ChunkFrom.AGENT,\n    payload: {\n      ...(responseId ? { id: responseId } : {}),\n      modelId,\n      timestamp: new Date().toISOString(),\n    },\n  });\n  controller.enqueue({\n    type: 'text-start',\n    runId,\n    from: ChunkFrom.AGENT,\n    payload: {\n      id: textId,\n      providerMetadata,\n    },\n  });\n}\n\nexport function enqueueTextDelta(\n  controller: ReadableStreamDefaultController<ChunkType>,\n  runId: string,\n  textId: string,\n  text: string,\n): void {\n  controller.enqueue({\n    type: 'text-delta',\n    runId,\n    from: ChunkFrom.AGENT,\n    payload: {\n      id: textId,\n      text,\n    },\n  });\n}\n\nexport function enqueueFinishChunks(\n  controller: ReadableStreamDefaultController<ChunkType>,\n  {\n    runId,\n    prompt,\n    textId,\n    text,\n    responseId,\n    modelId,\n    usage,\n    providerMetadata,\n    costContext,\n    object,\n  }: {\n    runId: string;\n    prompt: string;\n    textId: string;\n    text: string;\n    responseId?: string;\n    modelId: string;\n    usage: LanguageModelUsage;\n    providerMetadata?: ProviderMetadata;\n    costContext?: CostContext;\n    object?: unknown;\n  },\n): void {\n  const timestamp = new Date();\n  const response = {\n    ...(responseId ? { id: responseId } : {}),\n    modelId,\n    timestamp,\n  };\n  const metadata = {\n    providerMetadata,\n    costContext,\n    request: { body: prompt },\n    modelId,\n    timestamp,\n  };\n\n  controller.enqueue({\n    type: 'text-end',\n    runId,\n    from: ChunkFrom.AGENT,\n    payload: {\n      id: textId,\n      providerMetadata,\n    },\n  });\n  if (object !== undefined) {\n    controller.enqueue({\n      type: 'object-result',\n      runId,\n      from: ChunkFrom.AGENT,\n      object,\n    } as unknown as ChunkType);\n  }\n  controller.enqueue({\n    type: 'step-finish',\n    runId,\n    from: ChunkFrom.AGENT,\n    payload: {\n      ...(responseId ? { id: responseId } : {}),\n      providerMetadata,\n      totalUsage: usage,\n      response,\n      stepResult: {\n        reason: 'stop',\n        warnings: [],\n      },\n      output: {\n        text,\n        usage,\n        steps: [],\n      },\n      metadata,\n    },\n  });\n  controller.enqueue({\n    type: 'finish',\n    runId,\n    from: ChunkFrom.AGENT,\n    payload: {\n      stepResult: {\n        reason: 'stop',\n        warnings: [],\n      },\n      output: {\n        usage,\n        steps: [],\n      },\n      metadata,\n      providerMetadata,\n      messages: {\n        all: [],\n        user: [],\n        nonUser: [],\n      },\n      response,\n    },\n  });\n}\n\nexport function toLanguageModelUsage(usage: V3Usage): LanguageModelUsage {\n  const inputTokens = usage.inputTokens.total ?? 0;\n  const outputTokens = usage.outputTokens.total ?? 0;\n\n  return {\n    inputTokens,\n    outputTokens,\n    totalTokens: inputTokens + outputTokens,\n    cachedInputTokens: usage.inputTokens.cacheRead,\n    cacheCreationInputTokens: usage.inputTokens.cacheWrite,\n    reasoningTokens: usage.outputTokens.reasoning,\n    raw: usage,\n  };\n}\n\nexport function createProviderMetadata(provider: string, metadata: Record<string, unknown>): ProviderMetadata {\n  return {\n    [provider]: toJsonRecord(metadata),\n  };\n}\n\nfunction toJsonRecord(record: Record<string, unknown>): Record<string, JSONValue> {\n  return Object.fromEntries(\n    Object.entries(record)\n      .filter((entry): entry is [string, Exclude<unknown, undefined>] => entry[1] !== undefined)\n      .map(([key, value]) => [key, toJsonValue(value)]),\n  );\n}\n\nfunction toJsonValue(value: unknown): JSONValue {\n  if (value === null || typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n    return value;\n  }\n\n  if (Array.isArray(value)) {\n    return value.filter(item => item !== undefined).map(toJsonValue);\n  }\n\n  if (value instanceof Date) {\n    return value.toISOString();\n  }\n\n  if (typeof value === 'object') {\n    return toJsonRecord(value as Record<string, unknown>);\n  }\n\n  return String(value);\n}\n\nexport function promptToText(prompt: unknown): string {\n  if (typeof prompt === 'string') {\n    return prompt;\n  }\n\n  if (Array.isArray(prompt)) {\n    return prompt.map(promptToText).filter(Boolean).join('\\n');\n  }\n\n  if (!prompt || typeof prompt !== 'object') {\n    return '';\n  }\n\n  const record = prompt as Record<string, unknown>;\n  if (typeof record.text === 'string') {\n    return record.text;\n  }\n  if (typeof record.content === 'string') {\n    return record.content;\n  }\n  if (record.content) {\n    return promptToText(record.content);\n  }\n\n  return '';\n}\n\nexport function withStructuredOutputPrompt<OUTPUT>(\n  prompt: string,\n  structuredOutput?: PublicStructuredOutputOptions<OUTPUT>,\n): string {\n  if (!structuredOutput?.schema) {\n    return prompt;\n  }\n\n  const schema = standardSchemaToJSONSchema(toStandardSchema(structuredOutput.schema));\n  const instructions =\n    structuredOutput.instructions ??\n    'Return only valid JSON that matches the JSON Schema. Do not include markdown fences or explanatory text.';\n\n  return `${prompt}\\n\\n${instructions}\\n\\nJSON Schema:\\n${JSON.stringify(schema)}`;\n}\n\nexport function getStructuredOutputSchema<OUTPUT>(\n  structuredOutput?: PublicStructuredOutputOptions<OUTPUT>,\n): Record<string, unknown> | undefined {\n  if (!structuredOutput?.schema) {\n    return undefined;\n  }\n\n  return {\n    type: 'json_schema',\n    name: 'mastra_output',\n    strict: false,\n    schema: standardSchemaToJSONSchema(toStandardSchema(structuredOutput.schema)) as Record<string, unknown>,\n  };\n}\n\nexport async function getStructuredOutput<OUTPUT>(\n  text: string,\n  structuredOutput?: PublicStructuredOutputOptions<OUTPUT>,\n): Promise<OUTPUT | undefined> {\n  return getStructuredOutputFromValue(text, structuredOutput);\n}\n\nexport async function getStructuredOutputFromValue<OUTPUT>(\n  value: unknown,\n  structuredOutput?: PublicStructuredOutputOptions<OUTPUT>,\n): Promise<OUTPUT | undefined> {\n  if (!structuredOutput?.schema) {\n    return undefined;\n  }\n\n  let parsed: unknown;\n  if (typeof value === 'string') {\n    try {\n      parsed = JSON.parse(value);\n    } catch (error) {\n      return handleStructuredOutputError(\n        new Error('Structured output must be valid JSON.', { cause: error }),\n        structuredOutput,\n      );\n    }\n  } else {\n    parsed = value;\n  }\n\n  const schema = toStandardSchema(structuredOutput.schema);\n  const result = await schema['~standard'].validate(parsed);\n  if (!result.issues) {\n    return result.value as OUTPUT;\n  }\n\n  const message = result.issues.map(issue => `- ${issue.path?.join('.') || 'root'}: ${issue.message}`).join('\\n');\n  return handleStructuredOutputError(new Error(`Structured output validation failed:\\n${message}`), structuredOutput);\n}\n\nfunction handleStructuredOutputError<OUTPUT>(\n  error: Error,\n  structuredOutput: PublicStructuredOutputOptions<OUTPUT>,\n): OUTPUT | undefined {\n  if (structuredOutput.errorStrategy === 'fallback') {\n    return structuredOutput.fallbackValue;\n  }\n\n  if (structuredOutput.errorStrategy === 'warn') {\n    structuredOutput.logger?.warn(error.message);\n    return undefined;\n  }\n\n  throw error;\n}\n\nexport function sumDefined(...values: Array<number | undefined>): number | undefined {\n  const defined = values.filter((value): value is number => typeof value === 'number');\n  if (defined.length === 0) {\n    return undefined;\n  }\n\n  return defined.reduce((sum, value) => sum + value, 0);\n}\n","import { randomUUID } from 'node:crypto';\nimport { ReadableStream } from 'node:stream/web';\n\nimport { Agent } from '@mastra/core/agent';\nimport type { StructuredOutputOptions } from '@mastra/core/agent';\nimport type { MessageListInput } from '@mastra/core/agent/message-list';\nimport type { Mastra } from '@mastra/core/mastra';\nimport { RequestContext } from '@mastra/core/request-context';\nimport type { ChunkType, FullOutput, ProviderMetadata, MastraModelOutput } from '@mastra/core/stream';\nimport { ChunkFrom } from '@mastra/core/stream';\nimport { Agent as OpenAIAgent, run } from '@openai/agents';\nimport type { AgentOptions as OpenAIAgentOptions, RunItem, RunStreamEvent } from '@openai/agents';\nimport {\n  createMastraOutput,\n  createNoopModel,\n  createProviderMetadata,\n  createSDKAgentTelemetry,\n  enqueueFinishChunks,\n  enqueueStartChunks,\n  enqueueTextDelta,\n  getStructuredOutputFromValue,\n  getStructuredOutputSchema,\n  promptToText,\n  sumDefined,\n  toFullOutput,\n  toLanguageModelUsage,\n} from './utils';\nimport type { SDKAgentRunOptions, SDKAgentTelemetry, SDKModelGenerateResult, V3Usage } from './utils';\n\nconst PROVIDER = '@openai/agents';\nconst MODEL_ID = 'openai-agents-sdk';\n\ntype OpenAIUsageTotals = {\n  inputTokens?: number;\n  outputTokens?: number;\n  cacheReadInputTokens?: number;\n  cacheCreationInputTokens?: number;\n  reasoningTokens?: number;\n  requests?: number;\n  requestUsageEntries?: unknown[];\n};\n\ntype OpenAIToolTelemetry = Pick<SDKAgentTelemetry, 'startToolCall' | 'endToolCall'>;\ntype OpenAIStructuredOutputOption<OUTPUT> = OUTPUT extends {} ? StructuredOutputOptions<OUTPUT> : never;\n\nexport type OpenAISDKAgentResumeData = {\n  /**\n   * Message to send while continuing the OpenAI Agents SDK run.\n   */\n  message: MessageListInput;\n  /**\n   * Previous OpenAI response id to continue from.\n   */\n  previousResponseId?: string;\n  /**\n   * OpenAI conversation id for server-managed conversation state.\n   */\n  conversationId?: string;\n  /**\n   * OpenAI Agents SDK session object for client-managed conversation state.\n   */\n  session?: unknown;\n};\n\ntype OpenAISDKAgentBaseOptions = {\n  /**\n   * Mastra agent id used when registering this wrapper with Mastra.\n   */\n  id: string;\n  /**\n   * Optional display name for the Mastra agent. Defaults to `id`.\n   */\n  name?: string;\n  /**\n   * Description surfaced by Mastra when listing or selecting agents.\n   */\n  description: string;\n};\n\nexport type OpenAISDKAgentOptions = OpenAISDKAgentBaseOptions &\n  (\n    | {\n        /**\n         * Pre-created OpenAI Agents SDK agent. Pass this when you manage the\n         * SDK agent lifecycle yourself.\n         */\n        agent: OpenAIAgent;\n        sdkOptions?: never;\n      }\n    | {\n        agent?: never;\n        /**\n         * OpenAI Agents SDK options used to create an SDK agent.\n         */\n        sdkOptions: OpenAIAgentOptions;\n      }\n  );\n\nexport class OpenAISDKAgent extends Agent {\n  readonly options: OpenAISDKAgentOptions;\n  #mastra?: Mastra;\n  #createdAgent?: OpenAIAgent;\n\n  constructor(options: OpenAISDKAgentOptions) {\n    super({\n      id: options.id,\n      name: options.name ?? options.id,\n      description: options.description,\n      instructions: '',\n      model: createNoopModel({\n        modelId: getModelId(options),\n        provider: PROVIDER,\n      }),\n    });\n    this.options = options;\n  }\n\n  override __registerMastra(mastra: Mastra): void {\n    super.__registerMastra(mastra);\n    this.#mastra = mastra;\n  }\n\n  supportsMemory(): boolean {\n    return false;\n  }\n\n  async generate<OUTPUT = undefined>(\n    messages: MessageListInput,\n    options?: SDKAgentRunOptions<OUTPUT>,\n  ): Promise<FullOutput<OUTPUT>> {\n    const prompt = promptToText(messages);\n    const runId = options?.runId ?? randomUUID();\n    const sdkAgent = getRunOpenAIAgent(this.resolveOpenAIAgent(), options);\n    const modelId = getModelId(this.options, sdkAgent);\n    const requestContext = options?.requestContext ?? new RequestContext();\n    const instructions = options?.instructions ? promptToText(options.instructions) : undefined;\n    const telemetry = createSDKAgentTelemetry({\n      agentId: this.id,\n      agentName: this.name,\n      provider: PROVIDER,\n      modelId,\n      messages,\n      prompt,\n      runId,\n      streaming: false,\n      method: 'generate',\n      requestContext,\n      instructions,\n      maxSteps: options?.maxSteps,\n      tracingOptions: options?.tracingOptions,\n      tracingContext: options?.tracingContext,\n      onFinish: options?.onFinish,\n      onStepFinish: options?.onStepFinish,\n      mastra: this.#mastra,\n    });\n    let result: SDKModelGenerateResult;\n\n    try {\n      result = await telemetry.execute(() => runOpenAIGenerate(prompt, sdkAgent, runId, telemetry, options));\n      telemetry.endGenerate(result);\n    } catch (error) {\n      telemetry.fail(error);\n      throw error;\n    }\n\n    return toFullOutput<OUTPUT>({\n      messages,\n      runId,\n      provider: PROVIDER,\n      result,\n      options: { ...telemetry.outputOptions(), structuredOutput: getStructuredOutputOption(options) },\n    });\n  }\n\n  async stream<OUTPUT = undefined>(\n    messages: MessageListInput,\n    options?: SDKAgentRunOptions<OUTPUT>,\n  ): Promise<MastraModelOutput<OUTPUT>> {\n    const prompt = promptToText(messages);\n    const runId = options?.runId ?? randomUUID();\n    const sdkAgent = getRunOpenAIAgent(this.resolveOpenAIAgent(), options);\n    const modelId = getModelId(this.options, sdkAgent);\n    const requestContext = options?.requestContext ?? new RequestContext();\n    const instructions = options?.instructions ? promptToText(options.instructions) : undefined;\n    const telemetry = createSDKAgentTelemetry({\n      agentId: this.id,\n      agentName: this.name,\n      provider: PROVIDER,\n      modelId,\n      messages,\n      prompt,\n      runId,\n      streaming: true,\n      method: 'stream',\n      requestContext,\n      instructions,\n      maxSteps: options?.maxSteps,\n      tracingOptions: options?.tracingOptions,\n      tracingContext: options?.tracingContext,\n      onFinish: options?.onFinish,\n      onStepFinish: options?.onStepFinish,\n      mastra: this.#mastra,\n    });\n\n    return createMastraOutput<OUTPUT>({\n      messages,\n      runId,\n      modelId,\n      provider: PROVIDER,\n      stream: telemetry.wrapStream(runOpenAIAsMastraStream(prompt, sdkAgent, runId, modelId, telemetry, options)),\n      options: { ...telemetry.outputOptions(), structuredOutput: getStructuredOutputOption(options) },\n    });\n  }\n\n  async resumeGenerate<OUTPUT = undefined>(\n    resumeData: OpenAISDKAgentResumeData,\n    options?: SDKAgentRunOptions<OUTPUT>,\n  ): Promise<FullOutput<OUTPUT>> {\n    const data = validateOpenAIResumeData(resumeData);\n    return this.generate(data.message, createOpenAIResumeRunOptions(data, options));\n  }\n\n  async resumeStream<OUTPUT = undefined>(\n    resumeData: OpenAISDKAgentResumeData,\n    options?: SDKAgentRunOptions<OUTPUT>,\n  ): Promise<MastraModelOutput<OUTPUT>> {\n    const data = validateOpenAIResumeData(resumeData);\n    return this.stream(data.message, createOpenAIResumeRunOptions(data, options));\n  }\n\n  private resolveOpenAIAgent(): OpenAIAgent {\n    this.#createdAgent ??= this.options.agent ?? new OpenAIAgent(toOpenAIAgentOptions(this.options));\n    return this.#createdAgent;\n  }\n}\n\nfunction getStructuredOutputOption<OUTPUT>(\n  options?: SDKAgentRunOptions<OUTPUT>,\n): OpenAIStructuredOutputOption<OUTPUT> | undefined {\n  return options?.structuredOutput as OpenAIStructuredOutputOption<OUTPUT> | undefined;\n}\n\nfunction validateOpenAIResumeData(resumeData: OpenAISDKAgentResumeData): OpenAISDKAgentResumeData {\n  const record = toRecord(resumeData);\n  if (!record || !('message' in record)) {\n    throw new Error('OpenAISDKAgent resumeData must include a message.');\n  }\n\n  if (\n    typeof resumeData.previousResponseId === 'string' ||\n    typeof resumeData.conversationId === 'string' ||\n    resumeData.session !== undefined\n  ) {\n    return resumeData;\n  }\n\n  throw new Error('OpenAISDKAgent resumeData must include previousResponseId, conversationId, or session.');\n}\n\nfunction createOpenAIResumeRunOptions<OUTPUT>(\n  resumeData: OpenAISDKAgentResumeData,\n  options?: SDKAgentRunOptions<OUTPUT>,\n): SDKAgentRunOptions<OUTPUT> {\n  return {\n    ...options,\n    previousResponseId: resumeData.previousResponseId ?? options?.previousResponseId,\n    conversationId: resumeData.conversationId ?? options?.conversationId,\n    session: resumeData.session ?? options?.session,\n  };\n}\n\nasync function runOpenAIGenerate<OUTPUT>(\n  prompt: string,\n  agent: OpenAIAgent,\n  runId: string,\n  telemetry: SDKAgentTelemetry<OUTPUT>,\n  options?: SDKAgentRunOptions<OUTPUT>,\n): Promise<SDKModelGenerateResult> {\n  const result = await run(agent, prompt, createOpenAIRunOptions(options, false));\n\n  recordOpenAIToolTelemetry(result.newItems, telemetry);\n  const text = getTextFromFinalOutput(result.finalOutput);\n  const responseId = result.lastResponseId;\n  const modelId = getModelId(undefined, result.lastAgent ?? agent, result.rawResponses.at(-1));\n  const usage = createOpenAIUsageTotals(result.state.usage);\n  const providerMetadata = getOpenAIProviderMetadata({\n    modelId,\n    responseId,\n    lastResponseId: result.lastResponseId,\n    rawResponseCount: result.rawResponses.length,\n    itemCount: result.newItems.length,\n    usage,\n  });\n\n  return {\n    content: [{ type: 'text', text }],\n    finishReason: { unified: 'stop', raw: 'stop' },\n    usage: toV3Usage(usage),\n    response: {\n      id: responseId,\n      modelId,\n      timestamp: new Date(),\n    },\n    providerMetadata,\n    object: await getStructuredOutputFromValue(result.finalOutput, options?.structuredOutput),\n  };\n}\n\nfunction runOpenAIAsMastraStream<OUTPUT>(\n  prompt: string,\n  agent: OpenAIAgent,\n  runId: string,\n  requestedModelId: string,\n  telemetry: SDKAgentTelemetry<OUTPUT>,\n  options?: SDKAgentRunOptions<OUTPUT>,\n): ReadableStream<ChunkType> {\n  return new ReadableStream<ChunkType>({\n    start: async controller => {\n      const textId = randomUUID();\n      let text = '';\n      let responseId: string | undefined;\n      let modelId = requestedModelId;\n\n      try {\n        const result = await run(agent, prompt, createOpenAIRunOptions(options, true));\n\n        enqueueStartChunks(controller, {\n          runId,\n          prompt,\n          textId,\n          responseId,\n          modelId,\n        });\n\n        for await (const event of result) {\n          const delta = getTextDelta(event);\n          if (delta) {\n            text += delta;\n            enqueueTextDelta(controller, runId, textId, delta);\n          }\n\n          recordOpenAIStreamToolTelemetry(event, telemetry);\n        }\n\n        await result.completed;\n\n        responseId = result.lastResponseId ?? responseId;\n        modelId = getModelId(undefined, result.lastAgent ?? agent, result.rawResponses.at(-1));\n        if (!text) {\n          text = getTextFromFinalOutput(result.finalOutput);\n          if (text) {\n            enqueueTextDelta(controller, runId, textId, text);\n          }\n        }\n\n        const usage = createOpenAIUsageTotals(result.state.usage);\n        const providerMetadata = getOpenAIProviderMetadata({\n          modelId,\n          responseId,\n          lastResponseId: result.lastResponseId,\n          rawResponseCount: result.rawResponses.length,\n          itemCount: result.newItems.length,\n          usage,\n        });\n\n        enqueueFinishChunks(controller, {\n          runId,\n          prompt,\n          textId,\n          text,\n          responseId,\n          modelId,\n          usage: toLanguageModelUsage(toV3Usage(usage)),\n          providerMetadata,\n          object: await getStructuredOutputFromValue(result.finalOutput, options?.structuredOutput),\n        });\n        controller.close();\n      } catch (error) {\n        controller.enqueue({\n          type: 'error',\n          runId,\n          from: ChunkFrom.AGENT,\n          payload: { error },\n        });\n        controller.close();\n      }\n    },\n  });\n}\n\nfunction toOpenAIAgentOptions(options: OpenAISDKAgentOptions): OpenAIAgentOptions {\n  return {\n    name: options.name ?? options.id,\n    ...options.sdkOptions,\n  };\n}\n\nfunction getRunOpenAIAgent<OUTPUT>(agent: OpenAIAgent, options?: SDKAgentRunOptions<OUTPUT>): OpenAIAgent {\n  const outputType = getStructuredOutputSchema(options?.structuredOutput);\n  if (!outputType) {\n    return agent;\n  }\n\n  return (agent as { clone(config: Record<string, unknown>): OpenAIAgent }).clone({ outputType });\n}\n\nfunction createOpenAIRunOptions<OUTPUT>(\n  options: SDKAgentRunOptions<OUTPUT> | undefined,\n  stream: false,\n): Record<string, unknown> & { stream: false };\nfunction createOpenAIRunOptions<OUTPUT>(\n  options: SDKAgentRunOptions<OUTPUT> | undefined,\n  stream: true,\n): Record<string, unknown> & { stream: true };\nfunction createOpenAIRunOptions<OUTPUT>(\n  options: SDKAgentRunOptions<OUTPUT> | undefined,\n  stream: boolean,\n): Record<string, unknown> & { stream: boolean } {\n  const runOptions: Record<string, unknown> & { stream: boolean } = { stream };\n  addDefined(runOptions, 'maxTurns', options?.maxSteps);\n  addDefined(runOptions, 'signal', options?.abortSignal ?? options?.signal);\n  addDefined(runOptions, 'conversationId', options?.conversationId);\n  addDefined(runOptions, 'previousResponseId', options?.previousResponseId);\n  addDefined(runOptions, 'session', options?.session);\n\n  return runOptions;\n}\n\nfunction addDefined(target: Record<string, unknown>, key: string, value: unknown): void {\n  if (value !== undefined) {\n    target[key] = value;\n  }\n}\n\nfunction getModelId(options?: OpenAISDKAgentOptions, agent?: OpenAIAgent, rawResponse?: unknown): string {\n  return (\n    getModelNameFromUnknown(rawResponse) ??\n    getModelNameFromUnknown(agent?.model) ??\n    getModelNameFromUnknown(options?.sdkOptions?.model) ??\n    MODEL_ID\n  );\n}\n\nfunction getModelNameFromUnknown(value: unknown): string | undefined {\n  if (typeof value === 'string') {\n    return value;\n  }\n\n  const record = toRecord(value);\n  return (\n    getString(record, 'model') ??\n    getString(record, 'modelId') ??\n    getString(record, 'modelName') ??\n    getString(toRecord(record?.providerData), 'model')\n  );\n}\n\nfunction getTextFromFinalOutput(output: unknown): string {\n  if (typeof output === 'string') {\n    return output;\n  }\n  if (output === undefined || output === null) {\n    return '';\n  }\n\n  return JSON.stringify(output);\n}\n\nfunction createOpenAIUsageTotals(usage: unknown): OpenAIUsageTotals {\n  const record = toRecord(usage);\n  if (!record) {\n    return {};\n  }\n\n  const inputDetails = getDetailRecords(record.inputTokensDetails);\n  const outputDetails = getDetailRecords(record.outputTokensDetails);\n  const requestUsageEntries = Array.isArray(record.requestUsageEntries) ? record.requestUsageEntries : undefined;\n\n  return {\n    inputTokens: getNumber(record.inputTokens),\n    outputTokens: getNumber(record.outputTokens),\n    cacheReadInputTokens: sumDetails(inputDetails, 'cachedTokens', 'cached_tokens', 'cacheReadInputTokens'),\n    cacheCreationInputTokens: sumDetails(inputDetails, 'cacheCreationInputTokens', 'cache_creation_input_tokens'),\n    reasoningTokens: sumDetails(outputDetails, 'reasoningTokens', 'reasoning_tokens'),\n    requests: getNumber(record.requests),\n    requestUsageEntries,\n  };\n}\n\nfunction getDetailRecords(value: unknown): Array<Record<string, unknown>> {\n  if (Array.isArray(value)) {\n    return value.filter(isRecord);\n  }\n\n  const record = toRecord(value);\n  return record ? [record] : [];\n}\n\nfunction sumDetails(records: Array<Record<string, unknown>>, ...keys: string[]): number | undefined {\n  let total = 0;\n  let found = false;\n\n  for (const record of records) {\n    for (const key of keys) {\n      const value = getNumber(record[key]);\n      if (value !== undefined) {\n        total += value;\n        found = true;\n      }\n    }\n  }\n\n  return found ? total : undefined;\n}\n\nfunction toV3Usage(usage: OpenAIUsageTotals): V3Usage {\n  const totalInputTokens = usage.inputTokens;\n  const cacheRead = usage.cacheReadInputTokens;\n  const cacheWrite = usage.cacheCreationInputTokens;\n  const noCache =\n    totalInputTokens === undefined\n      ? undefined\n      : Math.max(totalInputTokens - (sumDefined(cacheRead, cacheWrite) ?? 0), 0);\n  const outputTokens = usage.outputTokens;\n  const reasoningTokens = usage.reasoningTokens;\n\n  return {\n    inputTokens: {\n      total: totalInputTokens,\n      noCache,\n      cacheRead,\n      cacheWrite,\n    },\n    outputTokens: {\n      total: outputTokens,\n      text: outputTokens,\n      reasoning: reasoningTokens,\n    },\n  };\n}\n\nfunction getOpenAIProviderMetadata({\n  modelId,\n  responseId,\n  lastResponseId,\n  rawResponseCount,\n  itemCount,\n  usage,\n}: {\n  modelId: string;\n  responseId?: string;\n  lastResponseId?: string;\n  rawResponseCount: number;\n  itemCount: number;\n  usage: OpenAIUsageTotals;\n}): ProviderMetadata {\n  return createProviderMetadata('openai', {\n    model: modelId,\n    responseId,\n    lastResponseId,\n    rawResponseCount,\n    itemCount,\n    usage,\n  });\n}\n\nfunction recordOpenAIToolTelemetry(items: RunItem[], telemetry: OpenAIToolTelemetry): void {\n  for (const item of items) {\n    if (item.type === 'tool_call_item') {\n      const toolCall = getOpenAIToolCall(item.rawItem);\n      if (toolCall) {\n        telemetry.startToolCall(toolCall);\n      }\n      continue;\n    }\n\n    if (item.type === 'tool_call_output_item') {\n      const toolOutput = getOpenAIToolOutput(item.rawItem, item.output);\n      if (toolOutput) {\n        telemetry.endToolCall(toolOutput);\n      }\n    }\n  }\n}\n\nfunction recordOpenAIStreamToolTelemetry(event: RunStreamEvent, telemetry: OpenAIToolTelemetry): void {\n  if (event.type !== 'run_item_stream_event') {\n    return;\n  }\n\n  if (event.name === 'tool_called') {\n    const toolCall = getOpenAIToolCall(event.item.rawItem);\n    if (toolCall) {\n      telemetry.startToolCall(toolCall);\n    }\n    return;\n  }\n\n  if (event.name === 'tool_output') {\n    const toolOutput = getOpenAIToolOutput(event.item.rawItem, getObjectValue(event.item, 'output'));\n    if (toolOutput) {\n      telemetry.endToolCall(toolOutput);\n    }\n  }\n}\n\nfunction getOpenAIToolCall(rawItem: unknown): { toolCallId: string; toolName: string; input?: unknown } | undefined {\n  const record = toRecord(rawItem);\n  if (!record) {\n    return undefined;\n  }\n\n  if (record.type === 'function_call') {\n    const toolCallId = getString(record, 'callId') ?? getString(record, 'id');\n    const toolName = getNamespacedToolName(record);\n    if (!toolCallId || !toolName) {\n      return undefined;\n    }\n\n    return {\n      toolCallId,\n      toolName,\n      input: parseJsonString(record.arguments),\n    };\n  }\n\n  if (record.type === 'hosted_tool_call') {\n    const toolCallId = getString(record, 'id') ?? getString(record, 'name');\n    const toolName = getString(record, 'name');\n    if (!toolCallId || !toolName) {\n      return undefined;\n    }\n\n    return {\n      toolCallId,\n      toolName,\n      input: parseJsonString(record.arguments),\n    };\n  }\n\n  if (record.type === 'shell_call' || record.type === 'apply_patch_call') {\n    const toolCallId = getString(record, 'callId');\n    if (!toolCallId) {\n      return undefined;\n    }\n\n    return {\n      toolCallId,\n      toolName: String(record.type),\n      input: record.action ?? record.operation,\n    };\n  }\n\n  return undefined;\n}\n\nfunction getOpenAIToolOutput(\n  rawItem: unknown,\n  fallbackOutput: unknown,\n): { toolCallId: string; output?: unknown; isError?: boolean } | undefined {\n  const record = toRecord(rawItem);\n  if (!record) {\n    return undefined;\n  }\n\n  const toolCallId = getString(record, 'callId') ?? getString(record, 'id');\n  if (!toolCallId) {\n    return undefined;\n  }\n\n  return {\n    toolCallId,\n    output: record.output ?? fallbackOutput,\n    isError: record.status === 'failed' || record.status === 'incomplete',\n  };\n}\n\nfunction getNamespacedToolName(record: Record<string, unknown>): string | undefined {\n  const name = getString(record, 'name');\n  const namespace = getString(record, 'namespace');\n  if (!name) {\n    return undefined;\n  }\n\n  return namespace ? `${namespace}.${name}` : name;\n}\n\nfunction getTextDelta(event: RunStreamEvent): string {\n  if (event.type !== 'raw_model_stream_event') {\n    return '';\n  }\n\n  const data = toRecord(event.data);\n  return data?.type === 'output_text_delta' && typeof data.delta === 'string' ? data.delta : '';\n}\n\nfunction parseJsonString(value: unknown): unknown {\n  if (typeof value !== 'string') {\n    return value;\n  }\n\n  try {\n    return JSON.parse(value);\n  } catch {\n    return value;\n  }\n}\n\nfunction getNumber(value: unknown): number | undefined {\n  return typeof value === 'number' ? value : undefined;\n}\n\nfunction getString(record: Record<string, unknown> | undefined, key: string): string | undefined {\n  const value = record?.[key];\n  return typeof value === 'string' ? value : undefined;\n}\n\nfunction getObjectValue(value: unknown, key: string): unknown {\n  return toRecord(value)?.[key];\n}\n\nfunction toRecord(value: unknown): Record<string, unknown> | undefined {\n  return isRecord(value) ? value : undefined;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n  return value !== null && typeof value === 'object';\n}\n"]}