{"version":3,"sources":["../../node_modules/@ai-sdk/xai/src/convert-to-xai-chat-messages.ts","../../node_modules/@ai-sdk/xai/src/convert-xai-chat-usage.ts","../../node_modules/@ai-sdk/xai/src/get-response-metadata.ts","../../node_modules/@ai-sdk/xai/src/map-xai-finish-reason.ts","../../node_modules/@ai-sdk/xai/src/xai-chat-options.ts","../../node_modules/@ai-sdk/xai/src/xai-error.ts","../../node_modules/@ai-sdk/xai/src/xai-prepare-tools.ts","../../node_modules/@ai-sdk/xai/src/xai-chat-language-model.ts","../../node_modules/@ai-sdk/xai/src/xai-image-options.ts","../../node_modules/@ai-sdk/xai/src/xai-image-model.ts","../../node_modules/@ai-sdk/xai/src/responses/convert-to-xai-responses-input.ts","../../node_modules/@ai-sdk/xai/src/responses/convert-xai-responses-usage.ts","../../node_modules/@ai-sdk/xai/src/responses/map-xai-responses-finish-reason.ts","../../node_modules/@ai-sdk/xai/src/responses/xai-responses-api.ts","../../node_modules/@ai-sdk/xai/src/responses/xai-responses-options.ts","../../node_modules/@ai-sdk/xai/src/tool/file-search.ts","../../node_modules/@ai-sdk/xai/src/tool/mcp-server.ts","../../node_modules/@ai-sdk/xai/src/tool/web-search.ts","../../node_modules/@ai-sdk/xai/src/tool/x-search.ts","../../node_modules/@ai-sdk/xai/src/responses/xai-responses-prepare-tools.ts","../../node_modules/@ai-sdk/xai/src/responses/xai-responses-language-model.ts","../../node_modules/@ai-sdk/xai/src/tool/code-execution.ts","../../node_modules/@ai-sdk/xai/src/tool/view-image.ts","../../node_modules/@ai-sdk/xai/src/tool/view-x-video.ts","../../node_modules/@ai-sdk/xai/src/tool/index.ts","../../node_modules/@ai-sdk/xai/src/version.ts","../../node_modules/@ai-sdk/xai/src/xai-video-options.ts","../../node_modules/@ai-sdk/xai/src/xai-video-model.ts","../../node_modules/@ai-sdk/xai/src/xai-provider.ts"],"names":["convertToBase64","UnsupportedFunctionalityError","z","createJsonErrorResponseHandler","xaiTools","parseProviderOptions","_a","postJsonToApi","combineHeaders","createJsonResponseHandler","APICallError","url","response","responseHeaders","extractResponseHeaders","safeParseJSON","createEventSourceResponseHandler","convertImageModelFileToDataUri","getFromApi","createStatusCodeErrorResponseHandler","createBinaryResponseHandler","lazySchema","zodSchema","createProviderToolFactoryWithOutputSchema","validateTypes","convertUint8ArrayToBase64","AISDKError","delay","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","generateId","NoSuchModelError"],"mappings":"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","file":"dist-S4BBM2V5.cjs","sourcesContent":["import {\n  UnsupportedFunctionalityError,\n  type SharedV3Warning,\n  type LanguageModelV3Prompt,\n} from '@ai-sdk/provider';\nimport { convertToBase64 } from '@ai-sdk/provider-utils';\nimport type { XaiChatPrompt } from './xai-chat-prompt';\n\nexport function convertToXaiChatMessages(prompt: LanguageModelV3Prompt): {\n  messages: XaiChatPrompt;\n  warnings: Array<SharedV3Warning>;\n} {\n  const messages: XaiChatPrompt = [];\n  const warnings: Array<SharedV3Warning> = [];\n\n  for (const { role, content } of prompt) {\n    switch (role) {\n      case 'system': {\n        messages.push({ role: 'system', content });\n        break;\n      }\n\n      case 'user': {\n        if (content.length === 1 && content[0].type === 'text') {\n          messages.push({ role: 'user', content: content[0].text });\n          break;\n        }\n\n        messages.push({\n          role: 'user',\n          content: content.map(part => {\n            switch (part.type) {\n              case 'text': {\n                return { type: 'text', text: part.text };\n              }\n              case 'file': {\n                if (part.mediaType.startsWith('image/')) {\n                  const mediaType =\n                    part.mediaType === 'image/*'\n                      ? 'image/jpeg'\n                      : part.mediaType;\n\n                  return {\n                    type: 'image_url',\n                    image_url: {\n                      url:\n                        part.data instanceof URL\n                          ? part.data.toString()\n                          : `data:${mediaType};base64,${convertToBase64(part.data)}`,\n                    },\n                  };\n                } else {\n                  throw new UnsupportedFunctionalityError({\n                    functionality: `file part media type ${part.mediaType}`,\n                  });\n                }\n              }\n            }\n          }),\n        });\n\n        break;\n      }\n\n      case 'assistant': {\n        let text = '';\n        const toolCalls: Array<{\n          id: string;\n          type: 'function';\n          function: { name: string; arguments: string };\n        }> = [];\n\n        for (const part of content) {\n          switch (part.type) {\n            case 'text': {\n              text += part.text;\n              break;\n            }\n            case 'tool-call': {\n              toolCalls.push({\n                id: part.toolCallId,\n                type: 'function',\n                function: {\n                  name: part.toolName,\n                  arguments: JSON.stringify(part.input),\n                },\n              });\n              break;\n            }\n          }\n        }\n\n        messages.push({\n          role: 'assistant',\n          content: text,\n          tool_calls: toolCalls.length > 0 ? toolCalls : undefined,\n        });\n\n        break;\n      }\n\n      case 'tool': {\n        for (const toolResponse of content) {\n          if (toolResponse.type === 'tool-approval-response') {\n            continue;\n          }\n          const output = toolResponse.output;\n\n          let contentValue: string;\n          switch (output.type) {\n            case 'text':\n            case 'error-text':\n              contentValue = output.value;\n              break;\n            case 'execution-denied':\n              contentValue = output.reason ?? 'Tool execution denied.';\n              break;\n            case 'content':\n            case 'json':\n            case 'error-json':\n              contentValue = JSON.stringify(output.value);\n              break;\n          }\n\n          messages.push({\n            role: 'tool',\n            tool_call_id: toolResponse.toolCallId,\n            content: contentValue,\n          });\n        }\n        break;\n      }\n\n      default: {\n        const _exhaustiveCheck: never = role;\n        throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n      }\n    }\n  }\n\n  return { messages, warnings };\n}\n","import type { LanguageModelV3Usage } from '@ai-sdk/provider';\nimport type { XaiChatUsage } from './xai-chat-language-model';\n\nexport function convertXaiChatUsage(usage: XaiChatUsage): LanguageModelV3Usage {\n  const cacheReadTokens = usage.prompt_tokens_details?.cached_tokens ?? 0;\n  const reasoningTokens =\n    usage.completion_tokens_details?.reasoning_tokens ?? 0;\n\n  const promptTokensIncludesCached = cacheReadTokens <= usage.prompt_tokens;\n\n  return {\n    inputTokens: {\n      total: promptTokensIncludesCached\n        ? usage.prompt_tokens\n        : usage.prompt_tokens + cacheReadTokens,\n      noCache: promptTokensIncludesCached\n        ? usage.prompt_tokens - cacheReadTokens\n        : usage.prompt_tokens,\n      cacheRead: cacheReadTokens,\n      cacheWrite: undefined,\n    },\n    outputTokens: {\n      total: usage.completion_tokens + reasoningTokens,\n      text: usage.completion_tokens,\n      reasoning: reasoningTokens,\n    },\n    raw: usage,\n  };\n}\n","export function getResponseMetadata({\n  id,\n  model,\n  created,\n  created_at,\n}: {\n  id?: string | undefined | null;\n  created?: number | undefined | null;\n  created_at?: number | undefined | null;\n  model?: string | undefined | null;\n}) {\n  const unixTime = created ?? created_at;\n\n  return {\n    id: id ?? undefined,\n    modelId: model ?? undefined,\n    timestamp: unixTime != null ? new Date(unixTime * 1000) : undefined,\n  };\n}\n","import type { LanguageModelV3FinishReason } from '@ai-sdk/provider';\n\nexport function mapXaiFinishReason(\n  finishReason: string | null | undefined,\n): LanguageModelV3FinishReason['unified'] {\n  switch (finishReason) {\n    case 'stop':\n      return 'stop';\n    case 'length':\n      return 'length';\n    case 'tool_calls':\n    case 'function_call':\n      return 'tool-calls';\n    case 'content_filter':\n      return 'content-filter';\n    default:\n      return 'other';\n  }\n}\n","import { z } from 'zod/v4';\n\n// https://docs.x.ai/docs/models\nexport type XaiChatModelId =\n  | 'grok-4-1-fast-reasoning'\n  | 'grok-4-1-fast-non-reasoning'\n  | 'grok-4-fast-non-reasoning'\n  | 'grok-4-fast-reasoning'\n  | 'grok-4.20-0309-non-reasoning'\n  | 'grok-4.20-0309-reasoning'\n  | 'grok-4.20-multi-agent-0309'\n  | 'grok-code-fast-1'\n  | 'grok-4'\n  | 'grok-4-0709'\n  | 'grok-4-latest'\n  | 'grok-3'\n  | 'grok-3-latest'\n  | 'grok-3-mini'\n  | 'grok-3-mini-latest'\n  | (string & {});\n\n// search source schemas\nconst webSourceSchema = z.object({\n  type: z.literal('web'),\n  country: z.string().length(2).optional(),\n  excludedWebsites: z.array(z.string()).max(5).optional(),\n  allowedWebsites: z.array(z.string()).max(5).optional(),\n  safeSearch: z.boolean().optional(),\n});\n\nconst xSourceSchema = z.object({\n  type: z.literal('x'),\n  excludedXHandles: z.array(z.string()).optional(),\n  includedXHandles: z.array(z.string()).optional(),\n  postFavoriteCount: z.number().int().optional(),\n  postViewCount: z.number().int().optional(),\n  /**\n   * @deprecated use `includedXHandles` instead\n   */\n  xHandles: z.array(z.string()).optional(),\n});\n\nconst newsSourceSchema = z.object({\n  type: z.literal('news'),\n  country: z.string().length(2).optional(),\n  excludedWebsites: z.array(z.string()).max(5).optional(),\n  safeSearch: z.boolean().optional(),\n});\n\nconst rssSourceSchema = z.object({\n  type: z.literal('rss'),\n  links: z.array(z.string().url()).max(1), // currently only supports one RSS link\n});\n\nconst searchSourceSchema = z.discriminatedUnion('type', [\n  webSourceSchema,\n  xSourceSchema,\n  newsSourceSchema,\n  rssSourceSchema,\n]);\n\n// xai-specific provider options\nexport const xaiLanguageModelChatOptions = z.object({\n  reasoningEffort: z.enum(['low', 'high']).optional(),\n  logprobs: z.boolean().optional(),\n  topLogprobs: z.number().int().min(0).max(8).optional(),\n\n  /**\n   * Whether to enable parallel function calling during tool use.\n   * When true, the model can call multiple functions in parallel.\n   * When false, the model will call functions sequentially.\n   * Defaults to true.\n   */\n  parallel_function_calling: z.boolean().optional(),\n\n  searchParameters: z\n    .object({\n      /**\n       * search mode preference\n       * - \"off\": disables search completely\n       * - \"auto\": model decides whether to search (default)\n       * - \"on\": always enables search\n       */\n      mode: z.enum(['off', 'auto', 'on']),\n\n      /**\n       * whether to return citations in the response\n       * defaults to true\n       */\n      returnCitations: z.boolean().optional(),\n\n      /**\n       * start date for search data (ISO8601 format: YYYY-MM-DD)\n       */\n      fromDate: z.string().optional(),\n\n      /**\n       * end date for search data (ISO8601 format: YYYY-MM-DD)\n       */\n      toDate: z.string().optional(),\n\n      /**\n       * maximum number of search results to consider\n       * defaults to 20\n       */\n      maxSearchResults: z.number().min(1).max(50).optional(),\n\n      /**\n       * data sources to search from.\n       * defaults to [{ type: 'web' }, { type: 'x' }] if not specified.\n       *\n       * @example\n       * sources: [{ type: 'web', country: 'US' }, { type: 'x' }]\n       */\n      sources: z.array(searchSourceSchema).optional(),\n    })\n    .optional(),\n});\n\nexport type XaiLanguageModelChatOptions = z.infer<\n  typeof xaiLanguageModelChatOptions\n>;\n","import { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// Add error schema and structure\nexport const xaiErrorDataSchema = z.object({\n  error: z.object({\n    message: z.string(),\n    type: z.string().nullish(),\n    param: z.any().nullish(),\n    code: z.union([z.string(), z.number()]).nullish(),\n  }),\n});\n\nexport type XaiErrorData = z.infer<typeof xaiErrorDataSchema>;\n\nexport const xaiFailedResponseHandler = createJsonErrorResponseHandler({\n  errorSchema: xaiErrorDataSchema,\n  errorToMessage: data => data.error.message,\n});\n","import {\n  UnsupportedFunctionalityError,\n  type LanguageModelV3CallOptions,\n  type SharedV3Warning,\n} from '@ai-sdk/provider';\nimport type { XaiToolChoice } from './xai-chat-prompt';\n\nexport function prepareTools({\n  tools,\n  toolChoice,\n}: {\n  tools: LanguageModelV3CallOptions['tools'];\n  toolChoice?: LanguageModelV3CallOptions['toolChoice'];\n}): {\n  tools:\n    | Array<{\n        type: 'function';\n        function: {\n          name: string;\n          description: string | undefined;\n          parameters: unknown;\n          strict?: boolean;\n        };\n      }>\n    | undefined;\n  toolChoice: XaiToolChoice | undefined;\n  toolWarnings: SharedV3Warning[];\n} {\n  // when the tools array is empty, change it to undefined to prevent errors\n  tools = tools?.length ? tools : undefined;\n\n  const toolWarnings: SharedV3Warning[] = [];\n\n  if (tools == null) {\n    return { tools: undefined, toolChoice: undefined, toolWarnings };\n  }\n\n  // convert ai sdk tools to xai format\n  const xaiTools: Array<{\n    type: 'function';\n    function: {\n      name: string;\n      description: string | undefined;\n      parameters: unknown;\n      strict?: boolean;\n    };\n  }> = [];\n\n  for (const tool of tools) {\n    if (tool.type === 'provider') {\n      toolWarnings.push({\n        type: 'unsupported',\n        feature: `provider-defined tool ${tool.name}`,\n      });\n    } else {\n      xaiTools.push({\n        type: 'function',\n        function: {\n          name: tool.name,\n          description: tool.description,\n          parameters: tool.inputSchema,\n          ...(tool.strict != null ? { strict: tool.strict } : {}),\n        },\n      });\n    }\n  }\n\n  if (toolChoice == null) {\n    return { tools: xaiTools, toolChoice: undefined, toolWarnings };\n  }\n\n  const type = toolChoice.type;\n\n  switch (type) {\n    case 'auto':\n    case 'none':\n      return { tools: xaiTools, toolChoice: type, toolWarnings };\n    case 'required':\n      // xai supports 'required' directly\n      return { tools: xaiTools, toolChoice: 'required', toolWarnings };\n    case 'tool':\n      // xai supports specific tool selection\n      return {\n        tools: xaiTools,\n        toolChoice: {\n          type: 'function',\n          function: { name: toolChoice.toolName },\n        },\n        toolWarnings,\n      };\n    default: {\n      const _exhaustiveCheck: never = type;\n      throw new UnsupportedFunctionalityError({\n        functionality: `tool choice type: ${_exhaustiveCheck}`,\n      });\n    }\n  }\n}\n","import {\n  APICallError,\n  type LanguageModelV3,\n  type LanguageModelV3CallOptions,\n  type LanguageModelV3Content,\n  type LanguageModelV3FinishReason,\n  type LanguageModelV3GenerateResult,\n  type LanguageModelV3StreamPart,\n  type LanguageModelV3StreamResult,\n  type LanguageModelV3Usage,\n  type SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createEventSourceResponseHandler,\n  createJsonResponseHandler,\n  extractResponseHeaders,\n  parseProviderOptions,\n  postJsonToApi,\n  safeParseJSON,\n  type FetchFunction,\n  type ParseResult,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { convertToXaiChatMessages } from './convert-to-xai-chat-messages';\nimport { convertXaiChatUsage } from './convert-xai-chat-usage';\nimport { getResponseMetadata } from './get-response-metadata';\nimport { mapXaiFinishReason } from './map-xai-finish-reason';\nimport {\n  xaiLanguageModelChatOptions,\n  type XaiChatModelId,\n} from './xai-chat-options';\nimport { xaiFailedResponseHandler } from './xai-error';\nimport { prepareTools } from './xai-prepare-tools';\n\ntype XaiChatConfig = {\n  provider: string;\n  baseURL: string | undefined;\n  headers: () => Record<string, string | undefined>;\n  generateId: () => string;\n  fetch?: FetchFunction;\n};\n\nexport class XaiChatLanguageModel implements LanguageModelV3 {\n  readonly specificationVersion = 'v3';\n\n  readonly modelId: XaiChatModelId;\n\n  private readonly config: XaiChatConfig;\n\n  constructor(modelId: XaiChatModelId, config: XaiChatConfig) {\n    this.modelId = modelId;\n    this.config = config;\n  }\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  readonly supportedUrls: Record<string, RegExp[]> = {\n    'image/*': [/^https?:\\/\\/.*$/],\n  };\n\n  private async getArgs({\n    prompt,\n    maxOutputTokens,\n    temperature,\n    topP,\n    topK,\n    frequencyPenalty,\n    presencePenalty,\n    stopSequences,\n    seed,\n    responseFormat,\n    providerOptions,\n    tools,\n    toolChoice,\n  }: LanguageModelV3CallOptions) {\n    const warnings: SharedV3Warning[] = [];\n\n    // parse xai-specific provider options\n    const options =\n      (await parseProviderOptions({\n        provider: 'xai',\n        providerOptions,\n        schema: xaiLanguageModelChatOptions,\n      })) ?? {};\n\n    // check for unsupported parameters\n    if (topK != null) {\n      warnings.push({ type: 'unsupported', feature: 'topK' });\n    }\n\n    if (frequencyPenalty != null) {\n      warnings.push({ type: 'unsupported', feature: 'frequencyPenalty' });\n    }\n\n    if (presencePenalty != null) {\n      warnings.push({ type: 'unsupported', feature: 'presencePenalty' });\n    }\n\n    if (stopSequences != null) {\n      warnings.push({ type: 'unsupported', feature: 'stopSequences' });\n    }\n\n    // convert ai sdk messages to xai format\n    const { messages, warnings: messageWarnings } =\n      convertToXaiChatMessages(prompt);\n    warnings.push(...messageWarnings);\n\n    // prepare tools for xai\n    const {\n      tools: xaiTools,\n      toolChoice: xaiToolChoice,\n      toolWarnings,\n    } = prepareTools({\n      tools,\n      toolChoice,\n    });\n    warnings.push(...toolWarnings);\n\n    const baseArgs = {\n      // model id\n      model: this.modelId,\n\n      // standard generation settings\n      logprobs:\n        options.logprobs === true || options.topLogprobs != null\n          ? true\n          : undefined,\n      top_logprobs: options.topLogprobs,\n      max_completion_tokens: maxOutputTokens,\n      temperature,\n      top_p: topP,\n      seed,\n      reasoning_effort: options.reasoningEffort,\n\n      // parallel function calling\n      parallel_function_calling: options.parallel_function_calling,\n\n      // response format\n      response_format:\n        responseFormat?.type === 'json'\n          ? responseFormat.schema != null\n            ? {\n                type: 'json_schema',\n                json_schema: {\n                  name: responseFormat.name ?? 'response',\n                  schema: responseFormat.schema,\n                  strict: true,\n                },\n              }\n            : { type: 'json_object' }\n          : undefined,\n\n      // search parameters\n      search_parameters: options.searchParameters\n        ? {\n            mode: options.searchParameters.mode,\n            return_citations: options.searchParameters.returnCitations,\n            from_date: options.searchParameters.fromDate,\n            to_date: options.searchParameters.toDate,\n            max_search_results: options.searchParameters.maxSearchResults,\n            sources: options.searchParameters.sources?.map(source => ({\n              type: source.type,\n              ...(source.type === 'web' && {\n                country: source.country,\n                excluded_websites: source.excludedWebsites,\n                allowed_websites: source.allowedWebsites,\n                safe_search: source.safeSearch,\n              }),\n              ...(source.type === 'x' && {\n                excluded_x_handles: source.excludedXHandles,\n                included_x_handles: source.includedXHandles ?? source.xHandles,\n                post_favorite_count: source.postFavoriteCount,\n                post_view_count: source.postViewCount,\n              }),\n              ...(source.type === 'news' && {\n                country: source.country,\n                excluded_websites: source.excludedWebsites,\n                safe_search: source.safeSearch,\n              }),\n              ...(source.type === 'rss' && {\n                links: source.links,\n              }),\n            })),\n          }\n        : undefined,\n\n      // messages in xai format\n      messages,\n\n      // tools in xai format\n      tools: xaiTools,\n      tool_choice: xaiToolChoice,\n    };\n\n    return {\n      args: baseArgs,\n      warnings,\n    };\n  }\n\n  async doGenerate(\n    options: LanguageModelV3CallOptions,\n  ): Promise<LanguageModelV3GenerateResult> {\n    const { args: body, warnings } = await this.getArgs(options);\n\n    const url = `${this.config.baseURL ?? 'https://api.x.ai/v1'}/chat/completions`;\n\n    const {\n      responseHeaders,\n      value: response,\n      rawValue: rawResponse,\n    } = await postJsonToApi({\n      url,\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: xaiFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        xaiChatResponseSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    if (response.error != null) {\n      throw new APICallError({\n        message: response.error,\n        url,\n        requestBodyValues: body,\n        statusCode: 200,\n        responseHeaders,\n        responseBody: JSON.stringify(rawResponse),\n        isRetryable: response.code === 'The service is currently unavailable',\n      });\n    }\n\n    const choice = response.choices![0];\n    const content: Array<LanguageModelV3Content> = [];\n\n    // extract text content\n    if (choice.message.content != null && choice.message.content.length > 0) {\n      let text = choice.message.content;\n\n      // skip if this content duplicates the last assistant message\n      const lastMessage = body.messages[body.messages.length - 1];\n      if (lastMessage?.role === 'assistant' && text === lastMessage.content) {\n        text = '';\n      }\n\n      if (text.length > 0) {\n        content.push({ type: 'text', text });\n      }\n    }\n\n    // extract reasoning content\n    if (\n      choice.message.reasoning_content != null &&\n      choice.message.reasoning_content.length > 0\n    ) {\n      content.push({\n        type: 'reasoning',\n        text: choice.message.reasoning_content,\n      });\n    }\n\n    // extract tool calls\n    if (choice.message.tool_calls != null) {\n      for (const toolCall of choice.message.tool_calls) {\n        content.push({\n          type: 'tool-call',\n          toolCallId: toolCall.id,\n          toolName: toolCall.function.name,\n          input: toolCall.function.arguments,\n        });\n      }\n    }\n\n    // extract citations\n    if (response.citations != null) {\n      for (const url of response.citations) {\n        content.push({\n          type: 'source',\n          sourceType: 'url',\n          id: this.config.generateId(),\n          url,\n        });\n      }\n    }\n\n    return {\n      content,\n      finishReason: {\n        unified: mapXaiFinishReason(choice.finish_reason),\n        raw: choice.finish_reason ?? undefined,\n      },\n      usage: response.usage\n        ? convertXaiChatUsage(response.usage)\n        : {\n            inputTokens: { total: 0, noCache: 0, cacheRead: 0, cacheWrite: 0 },\n            outputTokens: { total: 0, text: 0, reasoning: 0 },\n          },\n      request: { body },\n      response: {\n        ...getResponseMetadata(response),\n        headers: responseHeaders,\n        body: rawResponse,\n      },\n      warnings,\n    };\n  }\n\n  async doStream(\n    options: LanguageModelV3CallOptions,\n  ): Promise<LanguageModelV3StreamResult> {\n    const { args, warnings } = await this.getArgs(options);\n    const body = {\n      ...args,\n      stream: true,\n      stream_options: {\n        include_usage: true,\n      },\n    };\n\n    const url = `${this.config.baseURL ?? 'https://api.x.ai/v1'}/chat/completions`;\n\n    const { responseHeaders, value: response } = await postJsonToApi({\n      url,\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: xaiFailedResponseHandler,\n      successfulResponseHandler: async ({ response }) => {\n        const responseHeaders = extractResponseHeaders(response);\n        const contentType = response.headers.get('content-type');\n\n        if (contentType?.includes('application/json')) {\n          const responseBody = await response.text();\n          const parsedError = await safeParseJSON({\n            text: responseBody,\n            schema: xaiStreamErrorSchema,\n          });\n\n          if (parsedError.success) {\n            throw new APICallError({\n              message: parsedError.value.error,\n              url,\n              requestBodyValues: body,\n              statusCode: 200,\n              responseHeaders,\n              responseBody,\n              isRetryable:\n                parsedError.value.code ===\n                'The service is currently unavailable',\n            });\n          }\n\n          throw new APICallError({\n            message: 'Invalid JSON response',\n            url,\n            requestBodyValues: body,\n            statusCode: 200,\n            responseHeaders,\n            responseBody,\n          });\n        }\n\n        return createEventSourceResponseHandler(xaiChatChunkSchema)({\n          response,\n          url,\n          requestBodyValues: body,\n        });\n      },\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    let finishReason: LanguageModelV3FinishReason = {\n      unified: 'other',\n      raw: undefined,\n    };\n    let usage: LanguageModelV3Usage | undefined = undefined;\n    let isFirstChunk = true;\n    const contentBlocks: Record<\n      string,\n      { type: 'text' | 'reasoning'; ended: boolean }\n    > = {};\n    const lastReasoningDeltas: Record<string, string> = {};\n    let activeReasoningBlockId: string | undefined = undefined;\n\n    const self = this;\n\n    return {\n      stream: response.pipeThrough(\n        new TransformStream<\n          ParseResult<z.infer<typeof xaiChatChunkSchema>>,\n          LanguageModelV3StreamPart\n        >({\n          start(controller) {\n            controller.enqueue({ type: 'stream-start', warnings });\n          },\n\n          transform(chunk, controller) {\n            // Emit raw chunk if requested (before anything else)\n            if (options.includeRawChunks) {\n              controller.enqueue({ type: 'raw', rawValue: chunk.rawValue });\n            }\n\n            if (!chunk.success) {\n              controller.enqueue({ type: 'error', error: chunk.error });\n              return;\n            }\n\n            const value = chunk.value;\n\n            // emit response metadata on first chunk\n            if (isFirstChunk) {\n              controller.enqueue({\n                type: 'response-metadata',\n                ...getResponseMetadata(value),\n              });\n              isFirstChunk = false;\n            }\n\n            // emit citations if present (they come in the last chunk according to docs)\n            if (value.citations != null) {\n              for (const url of value.citations) {\n                controller.enqueue({\n                  type: 'source',\n                  sourceType: 'url',\n                  id: self.config.generateId(),\n                  url,\n                });\n              }\n            }\n\n            // update usage if present\n            if (value.usage != null) {\n              usage = convertXaiChatUsage(value.usage);\n            }\n\n            const choice = value.choices[0];\n\n            // update finish reason if present\n            if (choice?.finish_reason != null) {\n              finishReason = {\n                unified: mapXaiFinishReason(choice.finish_reason),\n                raw: choice.finish_reason,\n              };\n            }\n\n            // exit if no delta to process\n            if (choice?.delta == null) {\n              return;\n            }\n\n            const delta = choice.delta;\n            const choiceIndex = choice.index;\n\n            // process text content\n            if (delta.content != null && delta.content.length > 0) {\n              const textContent = delta.content;\n\n              // end active reasoning block when text content arrives\n              if (\n                activeReasoningBlockId != null &&\n                !contentBlocks[activeReasoningBlockId].ended\n              ) {\n                controller.enqueue({\n                  type: 'reasoning-end',\n                  id: activeReasoningBlockId,\n                });\n                contentBlocks[activeReasoningBlockId].ended = true;\n                activeReasoningBlockId = undefined;\n              }\n\n              // skip if this content duplicates the last assistant message\n              const lastMessage = body.messages[body.messages.length - 1];\n              if (\n                lastMessage?.role === 'assistant' &&\n                textContent === lastMessage.content\n              ) {\n                return;\n              }\n\n              const blockId = `text-${value.id || choiceIndex}`;\n\n              if (contentBlocks[blockId] == null) {\n                contentBlocks[blockId] = { type: 'text', ended: false };\n                controller.enqueue({\n                  type: 'text-start',\n                  id: blockId,\n                });\n              }\n\n              controller.enqueue({\n                type: 'text-delta',\n                id: blockId,\n                delta: textContent,\n              });\n            }\n\n            // process reasoning content\n            if (\n              delta.reasoning_content != null &&\n              delta.reasoning_content.length > 0\n            ) {\n              const blockId = `reasoning-${value.id || choiceIndex}`;\n\n              // skip if this reasoning content duplicates the last delta\n              if (lastReasoningDeltas[blockId] === delta.reasoning_content) {\n                return;\n              }\n              lastReasoningDeltas[blockId] = delta.reasoning_content;\n\n              if (contentBlocks[blockId] == null) {\n                contentBlocks[blockId] = { type: 'reasoning', ended: false };\n                activeReasoningBlockId = blockId;\n                controller.enqueue({\n                  type: 'reasoning-start',\n                  id: blockId,\n                });\n              }\n\n              controller.enqueue({\n                type: 'reasoning-delta',\n                id: blockId,\n                delta: delta.reasoning_content,\n              });\n            }\n\n            // process tool calls\n            if (delta.tool_calls != null) {\n              // end active reasoning block before tool calls start\n              if (\n                activeReasoningBlockId != null &&\n                !contentBlocks[activeReasoningBlockId].ended\n              ) {\n                controller.enqueue({\n                  type: 'reasoning-end',\n                  id: activeReasoningBlockId,\n                });\n                contentBlocks[activeReasoningBlockId].ended = true;\n                activeReasoningBlockId = undefined;\n              }\n\n              for (const toolCall of delta.tool_calls) {\n                // xai tool calls come in one piece (like mistral)\n                const toolCallId = toolCall.id;\n\n                controller.enqueue({\n                  type: 'tool-input-start',\n                  id: toolCallId,\n                  toolName: toolCall.function.name,\n                });\n\n                controller.enqueue({\n                  type: 'tool-input-delta',\n                  id: toolCallId,\n                  delta: toolCall.function.arguments,\n                });\n\n                controller.enqueue({\n                  type: 'tool-input-end',\n                  id: toolCallId,\n                });\n\n                controller.enqueue({\n                  type: 'tool-call',\n                  toolCallId,\n                  toolName: toolCall.function.name,\n                  input: toolCall.function.arguments,\n                });\n              }\n            }\n          },\n\n          flush(controller) {\n            // end any blocks that haven't been ended yet\n            for (const [blockId, block] of Object.entries(contentBlocks)) {\n              if (!block.ended) {\n                controller.enqueue({\n                  type: block.type === 'text' ? 'text-end' : 'reasoning-end',\n                  id: blockId,\n                });\n              }\n            }\n\n            controller.enqueue({\n              type: 'finish',\n              finishReason,\n              usage: usage ?? {\n                inputTokens: {\n                  total: 0,\n                  noCache: 0,\n                  cacheRead: 0,\n                  cacheWrite: 0,\n                },\n                outputTokens: { total: 0, text: 0, reasoning: 0 },\n              },\n            });\n          },\n        }),\n      ),\n      request: { body },\n      response: { headers: responseHeaders },\n    };\n  }\n}\n\n// XAI API Response Schemas\nconst xaiUsageSchema = z.object({\n  prompt_tokens: z.number(),\n  completion_tokens: z.number(),\n  total_tokens: z.number(),\n  prompt_tokens_details: z\n    .object({\n      text_tokens: z.number().nullish(),\n      audio_tokens: z.number().nullish(),\n      image_tokens: z.number().nullish(),\n      cached_tokens: z.number().nullish(),\n    })\n    .nullish(),\n  completion_tokens_details: z\n    .object({\n      reasoning_tokens: z.number().nullish(),\n      audio_tokens: z.number().nullish(),\n      accepted_prediction_tokens: z.number().nullish(),\n      rejected_prediction_tokens: z.number().nullish(),\n    })\n    .nullish(),\n});\n\nexport type XaiChatUsage = z.infer<typeof xaiUsageSchema>;\n\nconst xaiChatResponseSchema = z.object({\n  id: z.string().nullish(),\n  created: z.number().nullish(),\n  model: z.string().nullish(),\n  choices: z\n    .array(\n      z.object({\n        message: z.object({\n          role: z.literal('assistant'),\n          content: z.string().nullish(),\n          reasoning_content: z.string().nullish(),\n          tool_calls: z\n            .array(\n              z.object({\n                id: z.string(),\n                type: z.literal('function'),\n                function: z.object({\n                  name: z.string(),\n                  arguments: z.string(),\n                }),\n              }),\n            )\n            .nullish(),\n        }),\n        index: z.number(),\n        finish_reason: z.string().nullish(),\n      }),\n    )\n    .nullish(),\n  object: z.literal('chat.completion').nullish(),\n  usage: xaiUsageSchema.nullish(),\n  citations: z.array(z.string().url()).nullish(),\n  code: z.string().nullish(),\n  error: z.string().nullish(),\n});\n\nconst xaiChatChunkSchema = z.object({\n  id: z.string().nullish(),\n  created: z.number().nullish(),\n  model: z.string().nullish(),\n  choices: z.array(\n    z.object({\n      delta: z.object({\n        role: z.enum(['assistant']).optional(),\n        content: z.string().nullish(),\n        reasoning_content: z.string().nullish(),\n        tool_calls: z\n          .array(\n            z.object({\n              id: z.string(),\n              type: z.literal('function'),\n              function: z.object({\n                name: z.string(),\n                arguments: z.string(),\n              }),\n            }),\n          )\n          .nullish(),\n      }),\n      finish_reason: z.string().nullish(),\n      index: z.number(),\n    }),\n  ),\n  usage: xaiUsageSchema.nullish(),\n  citations: z.array(z.string().url()).nullish(),\n});\n\nconst xaiStreamErrorSchema = z.object({\n  code: z.string(),\n  error: z.string(),\n});\n","import { z } from 'zod/v4';\n\nexport const xaiImageModelOptions = z.object({\n  aspect_ratio: z.string().optional(),\n  output_format: z.string().optional(),\n  sync_mode: z.boolean().optional(),\n  resolution: z.enum(['1k', '2k']).optional(),\n  quality: z.enum(['low', 'medium', 'high']).optional(),\n  user: z.string().optional(),\n});\n\nexport type XaiImageModelOptions = z.infer<typeof xaiImageModelOptions>;\n","import type { ImageModelV3, SharedV3Warning } from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  convertImageModelFileToDataUri,\n  createBinaryResponseHandler,\n  createJsonResponseHandler,\n  createStatusCodeErrorResponseHandler,\n  getFromApi,\n  parseProviderOptions,\n  postJsonToApi,\n  type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { xaiFailedResponseHandler } from './xai-error';\nimport { xaiImageModelOptions } from './xai-image-options';\nimport type { XaiImageModelId } from './xai-image-settings';\n\ninterface XaiImageModelConfig {\n  provider: string;\n  baseURL: string | undefined;\n  headers: () => Record<string, string | undefined>;\n  fetch?: FetchFunction;\n  _internal?: {\n    currentDate?: () => Date;\n  };\n}\n\nexport class XaiImageModel implements ImageModelV3 {\n  readonly specificationVersion = 'v3';\n  readonly maxImagesPerCall = 3;\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  constructor(\n    readonly modelId: XaiImageModelId,\n    private config: XaiImageModelConfig,\n  ) {}\n\n  async doGenerate({\n    prompt,\n    n,\n    size,\n    aspectRatio,\n    seed,\n    providerOptions,\n    headers,\n    abortSignal,\n    files,\n    mask,\n  }: Parameters<ImageModelV3['doGenerate']>[0]): Promise<\n    Awaited<ReturnType<ImageModelV3['doGenerate']>>\n  > {\n    const warnings: Array<SharedV3Warning> = [];\n\n    if (size != null) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'size',\n        details:\n          'This model does not support the `size` option. Use `aspectRatio` instead.',\n      });\n    }\n\n    if (seed != null) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'seed',\n      });\n    }\n\n    if (mask != null) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'mask',\n      });\n    }\n\n    const xaiOptions = await parseProviderOptions({\n      provider: 'xai',\n      providerOptions,\n      schema: xaiImageModelOptions,\n    });\n\n    const hasFiles = files != null && files.length > 0;\n    const imageUrls = hasFiles\n      ? files.map(file => convertImageModelFileToDataUri(file))\n      : [];\n\n    const endpoint = hasFiles ? '/images/edits' : '/images/generations';\n\n    const body: Record<string, unknown> = {\n      model: this.modelId,\n      prompt,\n      n,\n      response_format: 'b64_json',\n    };\n\n    if (aspectRatio != null) {\n      body.aspect_ratio = aspectRatio;\n    }\n\n    if (xaiOptions?.output_format != null) {\n      body.output_format = xaiOptions.output_format;\n    }\n\n    if (xaiOptions?.sync_mode != null) {\n      body.sync_mode = xaiOptions.sync_mode;\n    }\n\n    if (xaiOptions?.aspect_ratio != null && aspectRatio == null) {\n      body.aspect_ratio = xaiOptions.aspect_ratio;\n    }\n\n    if (xaiOptions?.resolution != null) {\n      body.resolution = xaiOptions.resolution;\n    }\n\n    if (xaiOptions?.quality != null) {\n      body.quality = xaiOptions.quality;\n    }\n\n    if (xaiOptions?.user != null) {\n      body.user = xaiOptions.user;\n    }\n\n    if (imageUrls.length === 1) {\n      body.image = { url: imageUrls[0], type: 'image_url' };\n    } else if (imageUrls.length > 1) {\n      body.images = imageUrls.map(url => ({ url, type: 'image_url' }));\n    }\n\n    const baseURL = this.config.baseURL ?? 'https://api.x.ai/v1';\n    const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n    const { value: response, responseHeaders } = await postJsonToApi({\n      url: `${baseURL}${endpoint}`,\n      headers: combineHeaders(this.config.headers(), headers),\n      body,\n      failedResponseHandler: xaiFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        xaiImageResponseSchema,\n      ),\n      abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    const hasAllBase64 = response.data.every(image => image.b64_json != null);\n\n    const images = hasAllBase64\n      ? response.data.map(image => image.b64_json!)\n      : await Promise.all(\n          response.data.map(image =>\n            this.downloadImage(image.url!, abortSignal),\n          ),\n        );\n\n    return {\n      images,\n      warnings,\n      response: {\n        timestamp: currentDate,\n        modelId: this.modelId,\n        headers: responseHeaders,\n      },\n      providerMetadata: {\n        xai: {\n          images: response.data.map(item => ({\n            ...(item.revised_prompt\n              ? { revisedPrompt: item.revised_prompt }\n              : {}),\n          })),\n          ...(response.usage?.cost_in_usd_ticks != null\n            ? { costInUsdTicks: response.usage.cost_in_usd_ticks }\n            : {}),\n        },\n      },\n    };\n  }\n\n  private async downloadImage(\n    url: string,\n    abortSignal: AbortSignal | undefined,\n  ): Promise<Uint8Array> {\n    const { value } = await getFromApi({\n      url,\n      abortSignal,\n      failedResponseHandler: createStatusCodeErrorResponseHandler(),\n      successfulResponseHandler: createBinaryResponseHandler(),\n      fetch: this.config.fetch,\n    });\n    return value;\n  }\n}\n\nconst xaiImageResponseSchema = z.object({\n  data: z.array(\n    z.object({\n      url: z.string().nullish(),\n      b64_json: z.string().nullish(),\n      revised_prompt: z.string().nullish(),\n    }),\n  ),\n  usage: z\n    .object({\n      cost_in_usd_ticks: z.number().nullish(),\n    })\n    .nullish(),\n});\n","import {\n  UnsupportedFunctionalityError,\n  type SharedV3Warning,\n  type LanguageModelV3Message,\n} from '@ai-sdk/provider';\nimport { convertToBase64 } from '@ai-sdk/provider-utils';\nimport type {\n  XaiResponsesInput,\n  XaiResponsesUserMessageContentPart,\n} from './xai-responses-api';\n\nexport async function convertToXaiResponsesInput({\n  prompt,\n}: {\n  prompt: LanguageModelV3Message[];\n  store?: boolean;\n}): Promise<{\n  input: XaiResponsesInput;\n  inputWarnings: SharedV3Warning[];\n}> {\n  const input: XaiResponsesInput = [];\n  const inputWarnings: SharedV3Warning[] = [];\n\n  for (const message of prompt) {\n    switch (message.role) {\n      case 'system': {\n        input.push({\n          role: 'system',\n          content: message.content,\n        });\n        break;\n      }\n\n      case 'user': {\n        const contentParts: XaiResponsesUserMessageContentPart[] = [];\n\n        for (const block of message.content) {\n          switch (block.type) {\n            case 'text': {\n              contentParts.push({ type: 'input_text', text: block.text });\n              break;\n            }\n\n            case 'file': {\n              if (block.mediaType.startsWith('image/')) {\n                const mediaType =\n                  block.mediaType === 'image/*'\n                    ? 'image/jpeg'\n                    : block.mediaType;\n\n                const imageUrl =\n                  block.data instanceof URL\n                    ? block.data.toString()\n                    : `data:${mediaType};base64,${convertToBase64(block.data)}`;\n\n                contentParts.push({ type: 'input_image', image_url: imageUrl });\n              } else if (block.data instanceof URL) {\n                // xAI's Responses API accepts non-image documents (PDF, text, CSV, etc.)\n                // via `{ type: 'input_file', file_url }`. See\n                // https://docs.x.ai/docs/guides/chat-with-files. Inline bytes for\n                // non-image files are not supported by xAI; callers must upload via\n                // the Files API and pass a provider reference (file_id) instead.\n                contentParts.push({\n                  type: 'input_file',\n                  file_url: block.data.toString(),\n                });\n              } else {\n                throw new UnsupportedFunctionalityError({\n                  functionality: `file part media type ${block.mediaType} as inline data (xAI Responses requires a URL or a Files API reference for non-image files)`,\n                });\n              }\n              break;\n            }\n\n            default: {\n              const _exhaustiveCheck: never = block;\n              inputWarnings.push({\n                type: 'other',\n                message:\n                  'xAI Responses API does not support this content type in user messages',\n              });\n            }\n          }\n        }\n\n        input.push({\n          role: 'user',\n          content: contentParts,\n        });\n        break;\n      }\n\n      case 'assistant': {\n        for (const part of message.content) {\n          switch (part.type) {\n            case 'text': {\n              const id =\n                typeof part.providerOptions?.xai?.itemId === 'string'\n                  ? part.providerOptions.xai.itemId\n                  : undefined;\n\n              input.push({\n                role: 'assistant',\n                content: part.text,\n                id,\n              });\n\n              break;\n            }\n\n            case 'tool-call': {\n              if (part.providerExecuted) {\n                break;\n              }\n\n              const id =\n                typeof part.providerOptions?.xai?.itemId === 'string'\n                  ? part.providerOptions.xai.itemId\n                  : undefined;\n\n              input.push({\n                type: 'function_call',\n                id: id ?? part.toolCallId,\n                call_id: part.toolCallId,\n                name: part.toolName,\n                arguments: JSON.stringify(part.input),\n                status: 'completed',\n              });\n              break;\n            }\n\n            case 'tool-result': {\n              break;\n            }\n\n            case 'reasoning': {\n              const itemId =\n                typeof part.providerOptions?.xai?.itemId === 'string'\n                  ? part.providerOptions.xai.itemId\n                  : undefined;\n              const encryptedContent =\n                typeof part.providerOptions?.xai?.reasoningEncryptedContent ===\n                'string'\n                  ? part.providerOptions.xai.reasoningEncryptedContent\n                  : undefined;\n\n              if (itemId != null || encryptedContent != null) {\n                const summaryParts: Array<{\n                  type: 'summary_text';\n                  text: string;\n                }> = [];\n                if (part.text.length > 0) {\n                  summaryParts.push({\n                    type: 'summary_text',\n                    text: part.text,\n                  });\n                }\n\n                input.push({\n                  type: 'reasoning',\n                  id: itemId ?? '',\n                  summary: summaryParts,\n                  status: 'completed',\n                  ...(encryptedContent != null && {\n                    encrypted_content: encryptedContent,\n                  }),\n                });\n              } else {\n                inputWarnings.push({\n                  type: 'other',\n                  message:\n                    'Reasoning parts without itemId or encrypted content cannot be sent back to xAI. Skipping.',\n                });\n              }\n              break;\n            }\n            case 'file': {\n              inputWarnings.push({\n                type: 'other',\n                message: `xAI Responses API does not support ${part.type} in assistant messages`,\n              });\n              break;\n            }\n\n            default: {\n              const _exhaustiveCheck: never = part;\n              inputWarnings.push({\n                type: 'other',\n                message:\n                  'xAI Responses API does not support this content type in assistant messages',\n              });\n            }\n          }\n        }\n\n        break;\n      }\n\n      case 'tool': {\n        for (const part of message.content) {\n          if (part.type === 'tool-approval-response') {\n            continue;\n          }\n          const output = part.output;\n\n          let outputValue: string;\n          switch (output.type) {\n            case 'text':\n            case 'error-text':\n              outputValue = output.value;\n              break;\n            case 'execution-denied':\n              outputValue = output.reason ?? 'tool execution denied';\n              break;\n            case 'json':\n            case 'error-json':\n              outputValue = JSON.stringify(output.value);\n              break;\n            case 'content':\n              outputValue = output.value\n                .map(item => {\n                  if (item.type === 'text') {\n                    return item.text;\n                  }\n                  return '';\n                })\n                .join('');\n              break;\n            default: {\n              const _exhaustiveCheck: never = output;\n              outputValue = '';\n            }\n          }\n\n          input.push({\n            type: 'function_call_output',\n            call_id: part.toolCallId,\n            output: outputValue,\n          });\n        }\n\n        break;\n      }\n\n      default: {\n        const _exhaustiveCheck: never = message;\n        inputWarnings.push({\n          type: 'other',\n          message: 'unsupported message role',\n        });\n      }\n    }\n  }\n\n  return { input, inputWarnings };\n}\n","import type { LanguageModelV3Usage } from '@ai-sdk/provider';\nimport type { XaiResponsesUsage } from './xai-responses-api';\n\nexport function convertXaiResponsesUsage(\n  usage: XaiResponsesUsage,\n): LanguageModelV3Usage {\n  const cacheReadTokens = usage.input_tokens_details?.cached_tokens ?? 0;\n  const reasoningTokens = usage.output_tokens_details?.reasoning_tokens ?? 0;\n\n  const inputTokensIncludesCached = cacheReadTokens <= usage.input_tokens;\n\n  return {\n    inputTokens: {\n      total: inputTokensIncludesCached\n        ? usage.input_tokens\n        : usage.input_tokens + cacheReadTokens,\n      noCache: inputTokensIncludesCached\n        ? usage.input_tokens - cacheReadTokens\n        : usage.input_tokens,\n      cacheRead: cacheReadTokens,\n      cacheWrite: undefined,\n    },\n    outputTokens: {\n      total: usage.output_tokens,\n      text: usage.output_tokens - reasoningTokens,\n      reasoning: reasoningTokens,\n    },\n    raw: usage,\n  };\n}\n","import type { LanguageModelV3FinishReason } from '@ai-sdk/provider';\n\nexport function mapXaiResponsesFinishReason(\n  finishReason: string | null | undefined,\n): LanguageModelV3FinishReason['unified'] {\n  switch (finishReason) {\n    case 'stop':\n    case 'completed':\n      return 'stop';\n    case 'length':\n    case 'max_output_tokens':\n      return 'length';\n    case 'tool_calls':\n    case 'function_call':\n      return 'tool-calls';\n    case 'content_filter':\n      return 'content-filter';\n    default:\n      return 'other';\n  }\n}\n","import { z } from 'zod/v4';\n\nexport type XaiResponsesIncludeValue =\n  | 'file_search_call.results'\n  | 'reasoning.encrypted_content';\n\nexport type XaiResponsesIncludeOptions =\n  | Array<XaiResponsesIncludeValue>\n  | undefined\n  | null;\n\nexport type XaiResponsesInput = Array<XaiResponsesInputItem>;\n\nexport type XaiResponsesInputItem =\n  | XaiResponsesSystemMessage\n  | XaiResponsesUserMessage\n  | XaiResponsesAssistantMessage\n  | XaiResponsesFunctionCallOutput\n  | XaiResponsesReasoning\n  | XaiResponsesToolCall;\n\nexport type XaiResponsesSystemMessage = {\n  role: 'system' | 'developer';\n  content: string;\n};\n\nexport type XaiResponsesUserMessageContentPart =\n  | { type: 'input_text'; text: string }\n  | { type: 'input_image'; image_url: string }\n  | { type: 'input_file'; file_url: string };\n\nexport type XaiResponsesUserMessage = {\n  role: 'user';\n  content: Array<XaiResponsesUserMessageContentPart>;\n};\n\nexport type XaiResponsesAssistantMessage = {\n  role: 'assistant';\n  content: string;\n  id?: string;\n};\n\nexport type XaiResponsesFunctionCallOutput = {\n  type: 'function_call_output';\n  call_id: string;\n  output: string;\n};\n\nexport type XaiResponsesReasoning = {\n  type: 'reasoning';\n  id: string;\n  summary: Array<{\n    type: 'summary_text';\n    text: string;\n  }>;\n  status: string;\n  encrypted_content?: string | null;\n};\n\nexport type XaiResponsesToolCall = {\n  type:\n    | 'function_call'\n    | 'web_search_call'\n    | 'x_search_call'\n    | 'code_interpreter_call'\n    | 'custom_tool_call';\n  id: string;\n  call_id?: string;\n  name?: string;\n  arguments?: string;\n  input?: string;\n  status: string;\n  action?: any;\n};\n\nexport type XaiResponsesTool =\n  | {\n      type: 'web_search';\n      allowed_domains?: string[];\n      excluded_domains?: string[];\n      enable_image_understanding?: boolean;\n    }\n  | {\n      type: 'x_search';\n      allowed_x_handles?: string[];\n      excluded_x_handles?: string[];\n      from_date?: string;\n      to_date?: string;\n      enable_image_understanding?: boolean;\n      enable_video_understanding?: boolean;\n    }\n  | { type: 'code_interpreter' }\n  | { type: 'view_image' }\n  | { type: 'view_x_video' }\n  | {\n      type: 'file_search';\n      vector_store_ids?: string[];\n      max_num_results?: number;\n    }\n  | {\n      type: 'mcp';\n      server_url: string;\n      server_label?: string;\n      server_description?: string;\n      allowed_tools?: string[];\n      headers?: Record<string, string>;\n      authorization?: string;\n    }\n  | {\n      type: 'function';\n      name: string;\n      description?: string;\n      parameters: unknown;\n      strict?: boolean;\n    };\n\nconst annotationSchema = z.union([\n  z.object({\n    type: z.literal('url_citation'),\n    url: z.string(),\n    title: z.string().optional(),\n  }),\n  z.object({\n    type: z.string(),\n  }),\n]);\n\nconst messageContentPartSchema = z.object({\n  type: z.string(),\n  text: z.string().optional(),\n  logprobs: z.array(z.any()).optional(),\n  annotations: z.array(annotationSchema).optional(),\n});\n\nconst reasoningSummaryPartSchema = z.object({\n  type: z.string(),\n  text: z.string(),\n});\n\nconst toolCallSchema = z.object({\n  name: z.string().optional(),\n  arguments: z.string().optional(),\n  input: z.string().optional(),\n  call_id: z.string().optional(),\n  id: z.string(),\n  status: z.string(),\n  action: z.any().optional(),\n});\n\nconst mcpCallSchema = z.object({\n  name: z.string().optional(),\n  arguments: z.string().optional(),\n  output: z.string().optional(),\n  error: z.string().optional(),\n  id: z.string(),\n  status: z.string(),\n  server_label: z.string().optional(),\n});\n\nconst outputItemSchema = z.discriminatedUnion('type', [\n  z.object({\n    type: z.literal('web_search_call'),\n    ...toolCallSchema.shape,\n  }),\n  z.object({\n    type: z.literal('x_search_call'),\n    ...toolCallSchema.shape,\n  }),\n  z.object({\n    type: z.literal('code_interpreter_call'),\n    ...toolCallSchema.shape,\n  }),\n  z.object({\n    type: z.literal('code_execution_call'),\n    ...toolCallSchema.shape,\n  }),\n  z.object({\n    type: z.literal('view_image_call'),\n    ...toolCallSchema.shape,\n  }),\n  z.object({\n    type: z.literal('view_x_video_call'),\n    ...toolCallSchema.shape,\n  }),\n  z.object({\n    type: z.literal('file_search_call'),\n    id: z.string(),\n    status: z.string(),\n    queries: z.array(z.string()).optional(),\n    results: z\n      .array(\n        z.object({\n          file_id: z.string(),\n          filename: z.string(),\n          score: z.number(),\n          text: z.string(),\n        }),\n      )\n      .nullish(),\n  }),\n  z.object({\n    type: z.literal('custom_tool_call'),\n    ...toolCallSchema.shape,\n  }),\n  z.object({\n    type: z.literal('mcp_call'),\n    ...mcpCallSchema.shape,\n  }),\n  z.object({\n    type: z.literal('message'),\n    role: z.string(),\n    content: z.array(messageContentPartSchema),\n    id: z.string(),\n    status: z.string(),\n  }),\n  z.object({\n    type: z.literal('function_call'),\n    name: z.string(),\n    arguments: z.string(),\n    call_id: z.string(),\n    id: z.string(),\n  }),\n  z.object({\n    type: z.literal('reasoning'),\n    id: z.string(),\n    summary: z.array(reasoningSummaryPartSchema),\n    status: z.string(),\n    encrypted_content: z.string().nullish(),\n  }),\n]);\n\nexport const xaiResponsesUsageSchema = z.object({\n  input_tokens: z.number(),\n  output_tokens: z.number(),\n  total_tokens: z.number().optional(),\n  input_tokens_details: z\n    .object({\n      cached_tokens: z.number().optional(),\n    })\n    .optional(),\n  output_tokens_details: z\n    .object({\n      reasoning_tokens: z.number().optional(),\n    })\n    .optional(),\n  num_sources_used: z.number().optional(),\n  num_server_side_tools_used: z.number().optional(),\n});\n\nexport const xaiResponsesResponseSchema = z.object({\n  id: z.string().nullish(),\n  created_at: z.number().nullish(),\n  model: z.string().nullish(),\n  object: z.literal('response'),\n  output: z.array(outputItemSchema),\n  usage: xaiResponsesUsageSchema.nullish(),\n  status: z.string(),\n});\n\nexport const xaiResponsesChunkSchema = z.union([\n  z.object({\n    type: z.literal('response.created'),\n    response: xaiResponsesResponseSchema.partial({ usage: true, status: true }),\n  }),\n  z.object({\n    type: z.literal('response.in_progress'),\n    response: xaiResponsesResponseSchema.partial({ usage: true, status: true }),\n  }),\n  z.object({\n    type: z.literal('response.output_item.added'),\n    item: outputItemSchema,\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.output_item.done'),\n    item: outputItemSchema,\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.content_part.added'),\n    item_id: z.string(),\n    output_index: z.number(),\n    content_index: z.number(),\n    part: messageContentPartSchema,\n  }),\n  z.object({\n    type: z.literal('response.content_part.done'),\n    item_id: z.string(),\n    output_index: z.number(),\n    content_index: z.number(),\n    part: messageContentPartSchema,\n  }),\n  z.object({\n    type: z.literal('response.output_text.delta'),\n    item_id: z.string(),\n    output_index: z.number(),\n    content_index: z.number(),\n    delta: z.string(),\n    logprobs: z.array(z.any()).optional(),\n  }),\n  z.object({\n    type: z.literal('response.output_text.done'),\n    item_id: z.string(),\n    output_index: z.number(),\n    content_index: z.number(),\n    text: z.string(),\n    logprobs: z.array(z.any()).optional(),\n    annotations: z.array(annotationSchema).optional(),\n  }),\n  z.object({\n    type: z.literal('response.output_text.annotation.added'),\n    item_id: z.string(),\n    output_index: z.number(),\n    content_index: z.number(),\n    annotation_index: z.number(),\n    annotation: annotationSchema,\n  }),\n  z.object({\n    type: z.literal('response.reasoning_summary_part.added'),\n    item_id: z.string(),\n    output_index: z.number(),\n    summary_index: z.number(),\n    part: reasoningSummaryPartSchema,\n  }),\n  z.object({\n    type: z.literal('response.reasoning_summary_part.done'),\n    item_id: z.string(),\n    output_index: z.number(),\n    summary_index: z.number(),\n    part: reasoningSummaryPartSchema,\n  }),\n  z.object({\n    type: z.literal('response.reasoning_summary_text.delta'),\n    item_id: z.string(),\n    output_index: z.number(),\n    summary_index: z.number(),\n    delta: z.string(),\n  }),\n  z.object({\n    type: z.literal('response.reasoning_summary_text.done'),\n    item_id: z.string(),\n    output_index: z.number(),\n    summary_index: z.number(),\n    text: z.string(),\n  }),\n  z.object({\n    type: z.literal('response.reasoning_text.delta'),\n    item_id: z.string(),\n    output_index: z.number(),\n    content_index: z.number(),\n    delta: z.string(),\n  }),\n  z.object({\n    type: z.literal('response.reasoning_text.done'),\n    item_id: z.string(),\n    output_index: z.number(),\n    content_index: z.number(),\n    text: z.string(),\n  }),\n  z.object({\n    type: z.literal('response.web_search_call.in_progress'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.web_search_call.searching'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.web_search_call.completed'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.x_search_call.in_progress'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.x_search_call.searching'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.x_search_call.completed'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.file_search_call.in_progress'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.file_search_call.searching'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.file_search_call.completed'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.code_execution_call.in_progress'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.code_execution_call.executing'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.code_execution_call.completed'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.code_interpreter_call.in_progress'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.code_interpreter_call.executing'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.code_interpreter_call.interpreting'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.code_interpreter_call.completed'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  // Code interpreter code streaming events\n  z.object({\n    type: z.literal('response.code_interpreter_call_code.delta'),\n    item_id: z.string(),\n    output_index: z.number(),\n    delta: z.string(),\n  }),\n  z.object({\n    type: z.literal('response.code_interpreter_call_code.done'),\n    item_id: z.string(),\n    output_index: z.number(),\n    code: z.string(),\n  }),\n  z.object({\n    type: z.literal('response.custom_tool_call_input.delta'),\n    item_id: z.string(),\n    output_index: z.number(),\n    delta: z.string(),\n  }),\n  z.object({\n    type: z.literal('response.custom_tool_call_input.done'),\n    item_id: z.string(),\n    output_index: z.number(),\n    input: z.string(),\n  }),\n  // Function call arguments streaming events (standard function tools)\n  z.object({\n    type: z.literal('response.function_call_arguments.delta'),\n    item_id: z.string(),\n    output_index: z.number(),\n    delta: z.string(),\n  }),\n  z.object({\n    type: z.literal('response.function_call_arguments.done'),\n    item_id: z.string(),\n    output_index: z.number(),\n    arguments: z.string(),\n  }),\n  z.object({\n    type: z.literal('response.mcp_call.in_progress'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.mcp_call.executing'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.mcp_call.completed'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.mcp_call.failed'),\n    item_id: z.string(),\n    output_index: z.number(),\n  }),\n  z.object({\n    type: z.literal('response.mcp_call_arguments.delta'),\n    item_id: z.string(),\n    output_index: z.number(),\n    delta: z.string(),\n  }),\n  z.object({\n    type: z.literal('response.mcp_call_arguments.done'),\n    item_id: z.string(),\n    output_index: z.number(),\n    arguments: z.string().optional(),\n  }),\n  z.object({\n    type: z.literal('response.mcp_call_output.delta'),\n    item_id: z.string(),\n    output_index: z.number(),\n    delta: z.string(),\n  }),\n  z.object({\n    type: z.literal('response.mcp_call_output.done'),\n    item_id: z.string(),\n    output_index: z.number(),\n    output: z.string().optional(),\n  }),\n  z.object({\n    type: z.literal('response.incomplete'),\n    response: z.object({\n      incomplete_details: z.object({ reason: z.string() }).nullish(),\n      usage: xaiResponsesUsageSchema.nullish(),\n    }),\n  }),\n  z.object({\n    type: z.literal('response.failed'),\n    response: z.object({\n      error: z\n        .object({\n          code: z.string().nullish(),\n          message: z.string(),\n        })\n        .nullish(),\n      incomplete_details: z.object({ reason: z.string() }).nullish(),\n      usage: xaiResponsesUsageSchema.nullish(),\n    }),\n  }),\n  z.object({\n    type: z.literal('error'),\n    code: z.string().nullish(),\n    message: z.string(),\n    param: z.string().nullish(),\n  }),\n  z.object({\n    type: z.literal('response.done'),\n    response: xaiResponsesResponseSchema,\n  }),\n  z.object({\n    type: z.literal('response.completed'),\n    response: xaiResponsesResponseSchema,\n  }),\n]);\n\nexport type XaiResponsesResponse = z.infer<typeof xaiResponsesResponseSchema>;\nexport type XaiResponsesChunk = z.infer<typeof xaiResponsesChunkSchema>;\nexport type XaiResponsesUsage = z.infer<typeof xaiResponsesUsageSchema>;\n","import { z } from 'zod/v4';\n\nexport type XaiResponsesModelId =\n  | 'grok-4-1-fast-reasoning'\n  | 'grok-4-1-fast-non-reasoning'\n  | 'grok-4'\n  | 'grok-4-fast-non-reasoning'\n  | 'grok-4-fast-reasoning'\n  | 'grok-4.20-0309-non-reasoning'\n  | 'grok-4.20-0309-reasoning'\n  | 'grok-4.20-multi-agent-0309'\n  | (string & {});\n\n/**\n * @see https://docs.x.ai/docs/api-reference#create-new-response\n */\nexport const xaiLanguageModelResponsesOptions = z.object({\n  /**\n   * Constrains how hard a reasoning model thinks before responding.\n   * Possible values are `low` (uses fewer reasoning tokens), `medium` and `high` (uses more reasoning tokens).\n   */\n  reasoningEffort: z.enum(['low', 'medium', 'high']).optional(),\n  logprobs: z.boolean().optional(),\n  topLogprobs: z.number().int().min(0).max(8).optional(),\n  /**\n   * Whether to store the input message(s) and model response for later retrieval.\n   * Must be set to `false` for teams with Zero Data Retention (ZDR) enabled,\n   * otherwise the API will return an error.\n   * @default true\n   */\n  store: z.boolean().optional(),\n  /**\n   * The ID of the previous response from the model.\n   */\n  previousResponseId: z.string().optional(),\n  /**\n   * Specify additional output data to include in the model response.\n   * Example values: 'file_search_call.results'.\n   */\n  include: z.array(z.enum(['file_search_call.results'])).nullish(),\n});\n\nexport type XaiLanguageModelResponsesOptions = z.infer<\n  typeof xaiLanguageModelResponsesOptions\n>;\n","import {\n  createProviderToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n/**\n * Schema for file search tool arguments.\n * @see https://docs.x.ai/docs/guides/using-collections/api\n */\nexport const fileSearchArgsSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      vectorStoreIds: z.array(z.string()),\n      maxNumResults: z.number().optional(),\n    }),\n  ),\n);\n\nconst fileSearchOutputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      queries: z.array(z.string()),\n      results: z\n        .array(\n          z.object({\n            fileId: z.string(),\n            filename: z.string(),\n            score: z.number().min(0).max(1),\n            text: z.string(),\n          }),\n        )\n        .nullable(),\n    }),\n  ),\n);\n\nconst fileSearchToolFactory = createProviderToolFactoryWithOutputSchema<\n  {},\n  {\n    /**\n     * The search queries that were executed.\n     */\n    queries: string[];\n\n    /**\n     * The results of the file search tool call.\n     */\n    results:\n      | null\n      | {\n          /**\n           * The unique ID of the file.\n           */\n          fileId: string;\n\n          /**\n           * The name of the file.\n           */\n          filename: string;\n\n          /**\n           * The relevance score of the file - a value between 0 and 1.\n           */\n          score: number;\n\n          /**\n           * The text that was retrieved from the file.\n           */\n          text: string;\n        }[];\n  },\n  {\n    /**\n     * List of vector store IDs (collection IDs) to search through.\n     * @see https://docs.x.ai/docs/guides/using-collections/api\n     */\n    vectorStoreIds: string[];\n\n    /**\n     * Maximum number of search results to return.\n     */\n    maxNumResults?: number;\n  }\n>({\n  id: 'xai.file_search',\n  inputSchema: lazySchema(() => zodSchema(z.object({}))),\n  outputSchema: fileSearchOutputSchema,\n});\n\nexport const fileSearch = (args: Parameters<typeof fileSearchToolFactory>[0]) =>\n  fileSearchToolFactory(args);\n","import {\n  createProviderToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const mcpServerArgsSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      serverUrl: z.string().describe('The URL of the MCP server'),\n      serverLabel: z.string().optional().describe('A label for the MCP server'),\n      serverDescription: z\n        .string()\n        .optional()\n        .describe('Description of the MCP server'),\n      allowedTools: z\n        .array(z.string())\n        .optional()\n        .describe('List of allowed tool names'),\n      headers: z\n        .record(z.string(), z.string())\n        .optional()\n        .describe('Custom headers to send'),\n      authorization: z\n        .string()\n        .optional()\n        .describe('Authorization header value'),\n    }),\n  ),\n);\n\n// MCP tool output varies based on which tool is called\nconst mcpServerOutputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      name: z.string(),\n      arguments: z.string(),\n      result: z.unknown(),\n    }),\n  ),\n);\n\nconst mcpServerToolFactory = createProviderToolFactoryWithOutputSchema<\n  {},\n  {\n    name: string;\n    arguments: string;\n    result: unknown;\n  },\n  {\n    serverUrl: string;\n    serverLabel?: string;\n    serverDescription?: string;\n    allowedTools?: string[];\n    headers?: Record<string, string>;\n    authorization?: string;\n  }\n>({\n  id: 'xai.mcp',\n  inputSchema: lazySchema(() => zodSchema(z.object({}))),\n  outputSchema: mcpServerOutputSchema,\n});\n\nexport const mcpServer = (args: Parameters<typeof mcpServerToolFactory>[0]) =>\n  mcpServerToolFactory(args);\n","import {\n  createProviderToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const webSearchArgsSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      allowedDomains: z.array(z.string()).max(5).optional(),\n      excludedDomains: z.array(z.string()).max(5).optional(),\n      enableImageUnderstanding: z.boolean().optional(),\n    }),\n  ),\n);\n\nconst webSearchOutputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      query: z.string(),\n      sources: z.array(\n        z.object({\n          title: z.string(),\n          url: z.string(),\n          snippet: z.string(),\n        }),\n      ),\n    }),\n  ),\n);\n\nconst webSearchToolFactory = createProviderToolFactoryWithOutputSchema<\n  {},\n  {\n    query: string;\n    sources: Array<{\n      title: string;\n      url: string;\n      snippet: string;\n    }>;\n  },\n  {\n    allowedDomains?: string[];\n    excludedDomains?: string[];\n    enableImageUnderstanding?: boolean;\n  }\n>({\n  id: 'xai.web_search',\n  inputSchema: lazySchema(() => zodSchema(z.object({}))),\n  outputSchema: webSearchOutputSchema,\n});\n\nexport const webSearch = (\n  args: Parameters<typeof webSearchToolFactory>[0] = {},\n) => webSearchToolFactory(args);\n","import {\n  createProviderToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const xSearchArgsSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      allowedXHandles: z.array(z.string()).max(10).optional(),\n      excludedXHandles: z.array(z.string()).max(10).optional(),\n      fromDate: z.string().optional(),\n      toDate: z.string().optional(),\n      enableImageUnderstanding: z.boolean().optional(),\n      enableVideoUnderstanding: z.boolean().optional(),\n    }),\n  ),\n);\n\nconst xSearchOutputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      query: z.string(),\n      posts: z.array(\n        z.object({\n          author: z.string(),\n          text: z.string(),\n          url: z.string(),\n          likes: z.number(),\n        }),\n      ),\n    }),\n  ),\n);\n\nconst xSearchToolFactory = createProviderToolFactoryWithOutputSchema<\n  {},\n  {\n    query: string;\n    posts: Array<{\n      author: string;\n      text: string;\n      url: string;\n      likes: number;\n    }>;\n  },\n  {\n    allowedXHandles?: string[];\n    excludedXHandles?: string[];\n    fromDate?: string;\n    toDate?: string;\n    enableImageUnderstanding?: boolean;\n    enableVideoUnderstanding?: boolean;\n  }\n>({\n  id: 'xai.x_search',\n  inputSchema: lazySchema(() => zodSchema(z.object({}))),\n  outputSchema: xSearchOutputSchema,\n});\n\nexport const xSearch = (args: Parameters<typeof xSearchToolFactory>[0] = {}) =>\n  xSearchToolFactory(args);\n","import {\n  UnsupportedFunctionalityError,\n  type LanguageModelV3CallOptions,\n  type SharedV3Warning,\n} from '@ai-sdk/provider';\nimport { validateTypes } from '@ai-sdk/provider-utils';\nimport { fileSearchArgsSchema } from '../tool/file-search';\nimport { mcpServerArgsSchema } from '../tool/mcp-server';\nimport { webSearchArgsSchema } from '../tool/web-search';\nimport { xSearchArgsSchema } from '../tool/x-search';\nimport type { XaiResponsesTool } from './xai-responses-api';\n\ntype XaiResponsesToolChoice =\n  | 'auto'\n  | 'none'\n  | 'required'\n  | { type: 'function'; name: string };\n\nexport async function prepareResponsesTools({\n  tools,\n  toolChoice,\n}: {\n  tools: LanguageModelV3CallOptions['tools'];\n  toolChoice?: LanguageModelV3CallOptions['toolChoice'];\n}): Promise<{\n  tools: Array<XaiResponsesTool> | undefined;\n  toolChoice: XaiResponsesToolChoice | undefined;\n  toolWarnings: SharedV3Warning[];\n}> {\n  const normalizedTools = tools?.length ? tools : undefined;\n\n  const toolWarnings: SharedV3Warning[] = [];\n\n  if (normalizedTools == null) {\n    return { tools: undefined, toolChoice: undefined, toolWarnings };\n  }\n\n  const xaiTools: Array<XaiResponsesTool> = [];\n  const toolByName = new Map<string, (typeof normalizedTools)[number]>();\n\n  for (const tool of normalizedTools) {\n    toolByName.set(tool.name, tool);\n\n    if (tool.type === 'provider') {\n      switch (tool.id) {\n        case 'xai.web_search': {\n          const args = await validateTypes({\n            value: tool.args,\n            schema: webSearchArgsSchema,\n          });\n\n          xaiTools.push({\n            type: 'web_search',\n            allowed_domains: args.allowedDomains,\n            excluded_domains: args.excludedDomains,\n            enable_image_understanding: args.enableImageUnderstanding,\n          });\n          break;\n        }\n\n        case 'xai.x_search': {\n          const args = await validateTypes({\n            value: tool.args,\n            schema: xSearchArgsSchema,\n          });\n\n          xaiTools.push({\n            type: 'x_search',\n            allowed_x_handles: args.allowedXHandles,\n            excluded_x_handles: args.excludedXHandles,\n            from_date: args.fromDate,\n            to_date: args.toDate,\n            enable_image_understanding: args.enableImageUnderstanding,\n            enable_video_understanding: args.enableVideoUnderstanding,\n          });\n          break;\n        }\n\n        case 'xai.code_execution': {\n          xaiTools.push({\n            type: 'code_interpreter',\n          });\n          break;\n        }\n\n        case 'xai.view_image': {\n          xaiTools.push({\n            type: 'view_image',\n          });\n          break;\n        }\n\n        case 'xai.view_x_video': {\n          xaiTools.push({\n            type: 'view_x_video',\n          });\n          break;\n        }\n\n        case 'xai.file_search': {\n          const args = await validateTypes({\n            value: tool.args,\n            schema: fileSearchArgsSchema,\n          });\n\n          xaiTools.push({\n            type: 'file_search',\n            vector_store_ids: args.vectorStoreIds,\n            max_num_results: args.maxNumResults,\n          });\n          break;\n        }\n\n        case 'xai.mcp': {\n          const args = await validateTypes({\n            value: tool.args,\n            schema: mcpServerArgsSchema,\n          });\n\n          xaiTools.push({\n            type: 'mcp',\n            server_url: args.serverUrl,\n            server_label: args.serverLabel,\n            server_description: args.serverDescription,\n            allowed_tools: args.allowedTools,\n            headers: args.headers,\n            authorization: args.authorization,\n          });\n          break;\n        }\n\n        default: {\n          toolWarnings.push({\n            type: 'unsupported',\n            feature: `provider-defined tool ${tool.name}`,\n          });\n          break;\n        }\n      }\n    } else {\n      xaiTools.push({\n        type: 'function',\n        name: tool.name,\n        description: tool.description,\n        parameters: tool.inputSchema,\n        ...(tool.strict != null ? { strict: tool.strict } : {}),\n      });\n    }\n  }\n\n  if (toolChoice == null) {\n    return { tools: xaiTools, toolChoice: undefined, toolWarnings };\n  }\n\n  const type = toolChoice.type;\n\n  switch (type) {\n    case 'auto':\n    case 'none':\n      return { tools: xaiTools, toolChoice: type, toolWarnings };\n    case 'required':\n      return { tools: xaiTools, toolChoice: 'required', toolWarnings };\n    case 'tool': {\n      const selectedTool = toolByName.get(toolChoice.toolName);\n\n      if (selectedTool == null) {\n        return {\n          tools: xaiTools,\n          toolChoice: undefined,\n          toolWarnings,\n        };\n      }\n\n      if (selectedTool.type === 'provider') {\n        // xAI API does not support forcing specific server-side tools via toolChoice\n        // Only function tools can be forced with {\"type\": \"function\", \"function\": {\"name\": \"...\"}}\n        toolWarnings.push({\n          type: 'unsupported',\n          feature: `toolChoice for server-side tool \"${selectedTool.name}\"`,\n        });\n        return { tools: xaiTools, toolChoice: undefined, toolWarnings };\n      }\n\n      return {\n        tools: xaiTools,\n        toolChoice: { type: 'function', name: selectedTool.name },\n        toolWarnings,\n      };\n    }\n    default: {\n      const _exhaustiveCheck: never = type;\n      throw new UnsupportedFunctionalityError({\n        functionality: `tool choice type: ${_exhaustiveCheck}`,\n      });\n    }\n  }\n}\n","import type {\n  LanguageModelV3,\n  LanguageModelV3CallOptions,\n  LanguageModelV3Content,\n  LanguageModelV3FinishReason,\n  LanguageModelV3GenerateResult,\n  LanguageModelV3StreamPart,\n  LanguageModelV3StreamResult,\n  LanguageModelV3Usage,\n  SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createEventSourceResponseHandler,\n  createJsonResponseHandler,\n  parseProviderOptions,\n  postJsonToApi,\n  type FetchFunction,\n  type ParseResult,\n} from '@ai-sdk/provider-utils';\nimport type { z } from 'zod/v4';\nimport { getResponseMetadata } from '../get-response-metadata';\nimport { xaiFailedResponseHandler } from '../xai-error';\nimport { convertToXaiResponsesInput } from './convert-to-xai-responses-input';\nimport { convertXaiResponsesUsage } from './convert-xai-responses-usage';\nimport { mapXaiResponsesFinishReason } from './map-xai-responses-finish-reason';\nimport {\n  xaiResponsesChunkSchema,\n  xaiResponsesResponseSchema,\n  type XaiResponsesIncludeOptions,\n} from './xai-responses-api';\nimport {\n  xaiLanguageModelResponsesOptions,\n  type XaiResponsesModelId,\n} from './xai-responses-options';\nimport { prepareResponsesTools } from './xai-responses-prepare-tools';\n\ntype XaiResponsesConfig = {\n  provider: string;\n  baseURL: string | undefined;\n  headers: () => Record<string, string | undefined>;\n  generateId: () => string;\n  fetch?: FetchFunction;\n};\n\nexport class XaiResponsesLanguageModel implements LanguageModelV3 {\n  readonly specificationVersion = 'v3';\n\n  readonly modelId: XaiResponsesModelId;\n\n  private readonly config: XaiResponsesConfig;\n\n  constructor(modelId: XaiResponsesModelId, config: XaiResponsesConfig) {\n    this.modelId = modelId;\n    this.config = config;\n  }\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  readonly supportedUrls: Record<string, RegExp[]> = {\n    'image/*': [/^https?:\\/\\/.*$/],\n    // xAI's Responses API accepts non-image documents (PDF, plain text, CSV, etc.) as\n    // `{ type: 'input_file', file_url }`. Keeping these URLs intact here lets them pass\n    // through to the converter instead of being downloaded to bytes by the SDK.\n    'application/pdf': [/^https?:\\/\\/.*$/],\n    'text/*': [/^https?:\\/\\/.*$/],\n  };\n\n  private async getArgs({\n    prompt,\n    maxOutputTokens,\n    temperature,\n    topP,\n    stopSequences,\n    seed,\n    responseFormat,\n    providerOptions,\n    tools,\n    toolChoice,\n  }: LanguageModelV3CallOptions) {\n    const warnings: SharedV3Warning[] = [];\n\n    const options =\n      (await parseProviderOptions({\n        provider: 'xai',\n        providerOptions,\n        schema: xaiLanguageModelResponsesOptions,\n      })) ?? {};\n\n    if (stopSequences != null) {\n      warnings.push({ type: 'unsupported', feature: 'stopSequences' });\n    }\n\n    const webSearchToolName = tools?.find(\n      tool => tool.type === 'provider' && tool.id === 'xai.web_search',\n    )?.name;\n\n    const xSearchToolName = tools?.find(\n      tool => tool.type === 'provider' && tool.id === 'xai.x_search',\n    )?.name;\n\n    const codeExecutionToolName = tools?.find(\n      tool => tool.type === 'provider' && tool.id === 'xai.code_execution',\n    )?.name;\n\n    const mcpToolName = tools?.find(\n      tool => tool.type === 'provider' && tool.id === 'xai.mcp',\n    )?.name;\n\n    const fileSearchToolName = tools?.find(\n      tool => tool.type === 'provider' && tool.id === 'xai.file_search',\n    )?.name;\n\n    const { input, inputWarnings } = await convertToXaiResponsesInput({\n      prompt,\n      store: options.store ?? true,\n    });\n    warnings.push(...inputWarnings);\n\n    const {\n      tools: xaiTools,\n      toolChoice: xaiToolChoice,\n      toolWarnings,\n    } = await prepareResponsesTools({\n      tools,\n      toolChoice,\n    });\n    warnings.push(...toolWarnings);\n\n    // Build include array based on provider options and store setting\n    let include: XaiResponsesIncludeOptions = options.include\n      ? [...options.include]\n      : undefined;\n\n    if (options.store === false) {\n      // When store is false, we need to include reasoning.encrypted_content\n      // to preserve reasoning tokens in the response\n      if (include == null) {\n        include = ['reasoning.encrypted_content'];\n      } else {\n        include = [...include, 'reasoning.encrypted_content'];\n      }\n    }\n\n    const baseArgs: Record<string, unknown> = {\n      model: this.modelId,\n      input,\n      logprobs:\n        options.logprobs === true || options.topLogprobs != null\n          ? true\n          : undefined,\n      top_logprobs: options.topLogprobs,\n      max_output_tokens: maxOutputTokens,\n      temperature,\n      top_p: topP,\n      seed,\n      ...(responseFormat?.type === 'json' && {\n        text: {\n          format:\n            responseFormat.schema != null\n              ? {\n                  type: 'json_schema',\n                  strict: true,\n                  name: responseFormat.name ?? 'response',\n                  description: responseFormat.description,\n                  schema: responseFormat.schema,\n                }\n              : { type: 'json_object' },\n        },\n      }),\n      ...(options.reasoningEffort != null && {\n        reasoning: { effort: options.reasoningEffort },\n      }),\n      ...(options.store === false && {\n        store: options.store,\n      }),\n      ...(include != null && {\n        include,\n      }),\n      ...(options.previousResponseId != null && {\n        previous_response_id: options.previousResponseId,\n      }),\n    };\n\n    if (xaiTools && xaiTools.length > 0) {\n      baseArgs.tools = xaiTools;\n    }\n\n    if (xaiToolChoice != null) {\n      baseArgs.tool_choice = xaiToolChoice;\n    }\n\n    return {\n      args: baseArgs,\n      warnings,\n      webSearchToolName,\n      xSearchToolName,\n      codeExecutionToolName,\n      mcpToolName,\n      fileSearchToolName,\n    };\n  }\n\n  async doGenerate(\n    options: LanguageModelV3CallOptions,\n  ): Promise<LanguageModelV3GenerateResult> {\n    const {\n      args: body,\n      warnings,\n      webSearchToolName,\n      xSearchToolName,\n      codeExecutionToolName,\n      mcpToolName,\n      fileSearchToolName,\n    } = await this.getArgs(options);\n\n    const {\n      responseHeaders,\n      value: response,\n      rawValue: rawResponse,\n    } = await postJsonToApi({\n      url: `${this.config.baseURL ?? 'https://api.x.ai/v1'}/responses`,\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: xaiFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        xaiResponsesResponseSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    const content: Array<LanguageModelV3Content> = [];\n    let hasFunctionCall = false;\n\n    const webSearchSubTools = [\n      'web_search',\n      'web_search_with_snippets',\n      'browse_page',\n    ];\n    const xSearchSubTools = [\n      'x_user_search',\n      'x_keyword_search',\n      'x_semantic_search',\n      'x_thread_fetch',\n    ];\n\n    for (const part of response.output) {\n      if (part.type === 'file_search_call') {\n        const toolName = fileSearchToolName ?? 'file_search';\n\n        content.push({\n          type: 'tool-call',\n          toolCallId: part.id,\n          toolName,\n          input: '',\n          providerExecuted: true,\n        });\n\n        content.push({\n          type: 'tool-result',\n          toolCallId: part.id,\n          toolName,\n          result: {\n            queries: part.queries ?? [],\n            results:\n              part.results?.map(result => ({\n                fileId: result.file_id,\n                filename: result.filename,\n                score: result.score,\n                text: result.text,\n              })) ?? null,\n          },\n        });\n\n        continue;\n      }\n\n      if (\n        part.type === 'web_search_call' ||\n        part.type === 'x_search_call' ||\n        part.type === 'code_interpreter_call' ||\n        part.type === 'code_execution_call' ||\n        part.type === 'view_image_call' ||\n        part.type === 'view_x_video_call' ||\n        part.type === 'custom_tool_call' ||\n        part.type === 'mcp_call'\n      ) {\n        let toolName = part.name ?? '';\n        if (\n          webSearchSubTools.includes(part.name ?? '') ||\n          part.type === 'web_search_call'\n        ) {\n          toolName = webSearchToolName ?? 'web_search';\n        } else if (\n          xSearchSubTools.includes(part.name ?? '') ||\n          part.type === 'x_search_call'\n        ) {\n          toolName = xSearchToolName ?? 'x_search';\n        } else if (\n          part.name === 'code_execution' ||\n          part.type === 'code_interpreter_call' ||\n          part.type === 'code_execution_call'\n        ) {\n          toolName = codeExecutionToolName ?? 'code_execution';\n        } else if (part.type === 'mcp_call') {\n          toolName = mcpToolName ?? part.name ?? 'mcp';\n        }\n\n        const toolInput =\n          part.type === 'custom_tool_call'\n            ? (part.input ?? '')\n            : part.type === 'mcp_call'\n              ? (part.arguments ?? '')\n              : (part.arguments ?? '');\n\n        content.push({\n          type: 'tool-call',\n          toolCallId: part.id,\n          toolName,\n          input: toolInput,\n          providerExecuted: true,\n        });\n\n        continue;\n      }\n\n      switch (part.type) {\n        case 'message': {\n          for (const contentPart of part.content) {\n            if (contentPart.text) {\n              content.push({\n                type: 'text',\n                text: contentPart.text,\n              });\n            }\n\n            if (contentPart.annotations) {\n              for (const annotation of contentPart.annotations) {\n                if (annotation.type === 'url_citation' && 'url' in annotation) {\n                  content.push({\n                    type: 'source',\n                    sourceType: 'url',\n                    id: this.config.generateId(),\n                    url: annotation.url,\n                    title: annotation.title ?? annotation.url,\n                  });\n                }\n              }\n            }\n          }\n\n          break;\n        }\n\n        case 'function_call': {\n          hasFunctionCall = true;\n          content.push({\n            type: 'tool-call',\n            toolCallId: part.call_id,\n            toolName: part.name,\n            input: part.arguments,\n          });\n          break;\n        }\n\n        case 'reasoning': {\n          const summaryTexts = part.summary\n            .map(s => s.text)\n            .filter(text => text && text.length > 0);\n\n          const reasoningText = summaryTexts.join('');\n\n          // condition changed here since encrypted content can now come with empty reasoning text\n          if (reasoningText || part.encrypted_content) {\n            const hasMetadata = part.encrypted_content || part.id;\n            content.push({\n              type: 'reasoning',\n              text: reasoningText,\n              ...(hasMetadata && {\n                providerMetadata: {\n                  xai: {\n                    ...(part.encrypted_content && {\n                      reasoningEncryptedContent: part.encrypted_content,\n                    }),\n                    ...(part.id && { itemId: part.id }),\n                  },\n                },\n              }),\n            });\n          }\n          break;\n        }\n\n        default: {\n          break;\n        }\n      }\n    }\n\n    return {\n      content,\n      finishReason: {\n        unified: hasFunctionCall\n          ? 'tool-calls'\n          : mapXaiResponsesFinishReason(response.status),\n        raw: response.status ?? undefined,\n      },\n      usage: response.usage\n        ? convertXaiResponsesUsage(response.usage)\n        : {\n            inputTokens: { total: 0, noCache: 0, cacheRead: 0, cacheWrite: 0 },\n            outputTokens: { total: 0, text: 0, reasoning: 0 },\n          },\n      request: { body },\n      response: {\n        ...getResponseMetadata(response),\n        headers: responseHeaders,\n        body: rawResponse,\n      },\n      warnings,\n    };\n  }\n\n  async doStream(\n    options: LanguageModelV3CallOptions,\n  ): Promise<LanguageModelV3StreamResult> {\n    const {\n      args,\n      warnings,\n      webSearchToolName,\n      xSearchToolName,\n      codeExecutionToolName,\n      mcpToolName,\n      fileSearchToolName,\n    } = await this.getArgs(options);\n    const body = {\n      ...args,\n      stream: true,\n    };\n\n    const { responseHeaders, value: response } = await postJsonToApi({\n      url: `${this.config.baseURL ?? 'https://api.x.ai/v1'}/responses`,\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: xaiFailedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler(\n        xaiResponsesChunkSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    let finishReason: LanguageModelV3FinishReason = {\n      unified: 'other',\n      raw: undefined,\n    };\n    let hasFunctionCall = false;\n    let usage: LanguageModelV3Usage | undefined = undefined;\n    let isFirstChunk = true;\n    const contentBlocks: Record<string, { type: 'text' }> = {};\n    const seenToolCalls = new Set<string>();\n\n    // Track ongoing function calls by output_index so we can stream\n    // arguments via response.function_call_arguments.delta events.\n    const ongoingToolCalls: Record<\n      number,\n      { toolName: string; toolCallId: string } | undefined\n    > = {};\n\n    const activeReasoning: Record<\n      string,\n      { encryptedContent?: string | null }\n    > = {};\n\n    const self = this;\n\n    return {\n      stream: response.pipeThrough(\n        new TransformStream<\n          ParseResult<z.infer<typeof xaiResponsesChunkSchema>>,\n          LanguageModelV3StreamPart\n        >({\n          start(controller) {\n            controller.enqueue({ type: 'stream-start', warnings });\n          },\n\n          transform(chunk, controller) {\n            if (options.includeRawChunks) {\n              controller.enqueue({ type: 'raw', rawValue: chunk.rawValue });\n            }\n\n            if (!chunk.success) {\n              controller.enqueue({ type: 'error', error: chunk.error });\n              return;\n            }\n\n            const event = chunk.value;\n\n            if (\n              event.type === 'response.created' ||\n              event.type === 'response.in_progress'\n            ) {\n              if (isFirstChunk) {\n                controller.enqueue({\n                  type: 'response-metadata',\n                  ...getResponseMetadata(event.response),\n                });\n                isFirstChunk = false;\n              }\n              return;\n            }\n\n            if (event.type === 'response.reasoning_summary_part.added') {\n              const blockId = `reasoning-${event.item_id}`;\n\n              activeReasoning[event.item_id] = {};\n              controller.enqueue({\n                type: 'reasoning-start',\n                id: blockId,\n                providerMetadata: {\n                  xai: {\n                    itemId: event.item_id,\n                  },\n                },\n              });\n            }\n\n            if (event.type === 'response.reasoning_summary_text.delta') {\n              const blockId = `reasoning-${event.item_id}`;\n\n              controller.enqueue({\n                type: 'reasoning-delta',\n                id: blockId,\n                delta: event.delta,\n                providerMetadata: {\n                  xai: {\n                    itemId: event.item_id,\n                  },\n                },\n              });\n\n              return;\n            }\n\n            if (event.type === 'response.reasoning_summary_text.done') {\n              return;\n            }\n\n            if (event.type === 'response.reasoning_text.delta') {\n              const blockId = `reasoning-${event.item_id}`;\n\n              if (activeReasoning[event.item_id] == null) {\n                activeReasoning[event.item_id] = {};\n                controller.enqueue({\n                  type: 'reasoning-start',\n                  id: blockId,\n                  providerMetadata: {\n                    xai: {\n                      itemId: event.item_id,\n                    },\n                  },\n                });\n              }\n\n              controller.enqueue({\n                type: 'reasoning-delta',\n                id: blockId,\n                delta: event.delta,\n                providerMetadata: {\n                  xai: {\n                    itemId: event.item_id,\n                  },\n                },\n              });\n\n              return;\n            }\n\n            if (event.type === 'response.reasoning_text.done') {\n              return;\n            }\n\n            if (event.type === 'response.output_text.delta') {\n              const blockId = `text-${event.item_id}`;\n\n              if (contentBlocks[blockId] == null) {\n                contentBlocks[blockId] = { type: 'text' };\n                controller.enqueue({\n                  type: 'text-start',\n                  id: blockId,\n                });\n              }\n\n              controller.enqueue({\n                type: 'text-delta',\n                id: blockId,\n                delta: event.delta,\n              });\n\n              return;\n            }\n\n            if (event.type === 'response.output_text.done') {\n              if (event.annotations) {\n                for (const annotation of event.annotations) {\n                  if (\n                    annotation.type === 'url_citation' &&\n                    'url' in annotation\n                  ) {\n                    controller.enqueue({\n                      type: 'source',\n                      sourceType: 'url',\n                      id: self.config.generateId(),\n                      url: annotation.url,\n                      title: annotation.title ?? annotation.url,\n                    });\n                  }\n                }\n              }\n\n              return;\n            }\n\n            if (event.type === 'response.output_text.annotation.added') {\n              const annotation = event.annotation;\n              if (annotation.type === 'url_citation' && 'url' in annotation) {\n                controller.enqueue({\n                  type: 'source',\n                  sourceType: 'url',\n                  id: self.config.generateId(),\n                  url: annotation.url,\n                  title: annotation.title ?? annotation.url,\n                });\n              }\n\n              return;\n            }\n\n            if (\n              event.type === 'response.done' ||\n              event.type === 'response.completed' ||\n              event.type === 'response.incomplete'\n            ) {\n              const response = event.response;\n\n              if (response.usage) {\n                usage = convertXaiResponsesUsage(response.usage);\n              }\n\n              if (event.type === 'response.incomplete') {\n                const reason =\n                  'incomplete_details' in response\n                    ? response.incomplete_details?.reason\n                    : undefined;\n                finishReason = {\n                  unified: reason\n                    ? mapXaiResponsesFinishReason(reason)\n                    : 'other',\n                  raw: reason ?? 'incomplete',\n                };\n              } else if ('status' in response && response.status) {\n                finishReason = {\n                  unified: hasFunctionCall\n                    ? 'tool-calls'\n                    : mapXaiResponsesFinishReason(response.status),\n                  raw: response.status,\n                };\n              }\n\n              return;\n            }\n\n            if (event.type === 'response.failed') {\n              const reason = event.response.incomplete_details?.reason;\n              finishReason = {\n                unified: reason ? mapXaiResponsesFinishReason(reason) : 'error',\n                raw: reason ?? 'error',\n              };\n\n              if (event.response.usage) {\n                usage = convertXaiResponsesUsage(event.response.usage);\n              }\n\n              return;\n            }\n\n            if (event.type === 'error') {\n              controller.enqueue({ type: 'error', error: event });\n              return;\n            }\n\n            // Custom tool call input streaming - already handled by output_item events\n            if (\n              event.type === 'response.custom_tool_call_input.delta' ||\n              event.type === 'response.custom_tool_call_input.done'\n            ) {\n              return;\n            }\n\n            // Function call arguments streaming (standard function tools)\n            if (event.type === 'response.function_call_arguments.delta') {\n              const toolCall = ongoingToolCalls[event.output_index];\n              if (toolCall != null) {\n                controller.enqueue({\n                  type: 'tool-input-delta',\n                  id: toolCall.toolCallId,\n                  delta: event.delta,\n                });\n              }\n              return;\n            }\n            if (event.type === 'response.function_call_arguments.done') {\n              // Arguments are fully received; output_item.done will\n              // emit tool-input-end and tool-call with the final arguments.\n              return;\n            }\n\n            if (\n              event.type === 'response.output_item.added' ||\n              event.type === 'response.output_item.done'\n            ) {\n              const part = event.item;\n              if (part.type === 'reasoning') {\n                if (event.type === 'response.output_item.done') {\n                  const blockId = `reasoning-${part.id}`;\n\n                  // Emit reasoning-start if not already emitted (e.g., for encrypted reasoning\n                  // where reasoning_summary_part.added events may not be sent)\n                  if (!(part.id in activeReasoning)) {\n                    activeReasoning[part.id] = {};\n                    controller.enqueue({\n                      type: 'reasoning-start',\n                      id: blockId,\n                      providerMetadata: {\n                        xai: {\n                          ...(part.id && { itemId: part.id }),\n                        },\n                      },\n                    });\n                  }\n\n                  controller.enqueue({\n                    type: 'reasoning-end',\n                    id: blockId,\n                    providerMetadata: {\n                      xai: {\n                        ...(part.encrypted_content && {\n                          reasoningEncryptedContent: part.encrypted_content,\n                        }),\n                        ...(part.id && { itemId: part.id }),\n                      },\n                    },\n                  });\n                  delete activeReasoning[part.id];\n                }\n                return;\n              }\n\n              if (part.type === 'file_search_call') {\n                const toolName = fileSearchToolName ?? 'file_search';\n\n                if (!seenToolCalls.has(part.id)) {\n                  seenToolCalls.add(part.id);\n\n                  controller.enqueue({\n                    type: 'tool-input-start',\n                    id: part.id,\n                    toolName,\n                  });\n\n                  controller.enqueue({\n                    type: 'tool-input-delta',\n                    id: part.id,\n                    delta: '',\n                  });\n\n                  controller.enqueue({\n                    type: 'tool-input-end',\n                    id: part.id,\n                  });\n\n                  controller.enqueue({\n                    type: 'tool-call',\n                    toolCallId: part.id,\n                    toolName,\n                    input: '',\n                    providerExecuted: true,\n                  });\n                }\n\n                if (event.type === 'response.output_item.done') {\n                  controller.enqueue({\n                    type: 'tool-result',\n                    toolCallId: part.id,\n                    toolName,\n                    result: {\n                      queries: part.queries ?? [],\n                      results:\n                        part.results?.map(result => ({\n                          fileId: result.file_id,\n                          filename: result.filename,\n                          score: result.score,\n                          text: result.text,\n                        })) ?? null,\n                    },\n                  });\n                }\n\n                return;\n              }\n\n              if (\n                part.type === 'web_search_call' ||\n                part.type === 'x_search_call' ||\n                part.type === 'code_interpreter_call' ||\n                part.type === 'code_execution_call' ||\n                part.type === 'view_image_call' ||\n                part.type === 'view_x_video_call' ||\n                part.type === 'custom_tool_call' ||\n                part.type === 'mcp_call'\n              ) {\n                const webSearchSubTools = [\n                  'web_search',\n                  'web_search_with_snippets',\n                  'browse_page',\n                ];\n                const xSearchSubTools = [\n                  'x_user_search',\n                  'x_keyword_search',\n                  'x_semantic_search',\n                  'x_thread_fetch',\n                ];\n\n                let toolName = part.name ?? '';\n                if (\n                  webSearchSubTools.includes(part.name ?? '') ||\n                  part.type === 'web_search_call'\n                ) {\n                  toolName = webSearchToolName ?? 'web_search';\n                } else if (\n                  xSearchSubTools.includes(part.name ?? '') ||\n                  part.type === 'x_search_call'\n                ) {\n                  toolName = xSearchToolName ?? 'x_search';\n                } else if (\n                  part.name === 'code_execution' ||\n                  part.type === 'code_interpreter_call' ||\n                  part.type === 'code_execution_call'\n                ) {\n                  toolName = codeExecutionToolName ?? 'code_execution';\n                } else if (part.type === 'mcp_call') {\n                  toolName = mcpToolName ?? part.name ?? 'mcp';\n                }\n\n                const toolInput =\n                  part.type === 'custom_tool_call'\n                    ? (part.input ?? '')\n                    : part.type === 'mcp_call'\n                      ? (part.arguments ?? '')\n                      : (part.arguments ?? '');\n\n                const shouldEmit =\n                  part.type === 'custom_tool_call'\n                    ? event.type === 'response.output_item.done'\n                    : !seenToolCalls.has(part.id);\n\n                if (shouldEmit && !seenToolCalls.has(part.id)) {\n                  seenToolCalls.add(part.id);\n\n                  controller.enqueue({\n                    type: 'tool-input-start',\n                    id: part.id,\n                    toolName,\n                  });\n\n                  controller.enqueue({\n                    type: 'tool-input-delta',\n                    id: part.id,\n                    delta: toolInput,\n                  });\n\n                  controller.enqueue({\n                    type: 'tool-input-end',\n                    id: part.id,\n                  });\n\n                  controller.enqueue({\n                    type: 'tool-call',\n                    toolCallId: part.id,\n                    toolName,\n                    input: toolInput,\n                    providerExecuted: true,\n                  });\n                }\n\n                return;\n              }\n\n              if (part.type === 'message') {\n                for (const contentPart of part.content) {\n                  if (contentPart.text && contentPart.text.length > 0) {\n                    const blockId = `text-${part.id}`;\n\n                    // Only emit text if we haven't already streamed it via output_text.delta events\n                    if (contentBlocks[blockId] == null) {\n                      contentBlocks[blockId] = { type: 'text' };\n                      controller.enqueue({\n                        type: 'text-start',\n                        id: blockId,\n                      });\n\n                      controller.enqueue({\n                        type: 'text-delta',\n                        id: blockId,\n                        delta: contentPart.text,\n                      });\n                    }\n                  }\n\n                  if (contentPart.annotations) {\n                    for (const annotation of contentPart.annotations) {\n                      if (\n                        annotation.type === 'url_citation' &&\n                        'url' in annotation\n                      ) {\n                        controller.enqueue({\n                          type: 'source',\n                          sourceType: 'url',\n                          id: self.config.generateId(),\n                          url: annotation.url,\n                          title: annotation.title ?? annotation.url,\n                        });\n                      }\n                    }\n                  }\n                }\n              } else if (part.type === 'function_call') {\n                if (event.type === 'response.output_item.added') {\n                  // Track the call so function_call_arguments.delta events\n                  // can stream the arguments incrementally.\n                  ongoingToolCalls[event.output_index] = {\n                    toolName: part.name,\n                    toolCallId: part.call_id,\n                  };\n\n                  controller.enqueue({\n                    type: 'tool-input-start',\n                    id: part.call_id,\n                    toolName: part.name,\n                  });\n                } else if (event.type === 'response.output_item.done') {\n                  hasFunctionCall = true;\n                  ongoingToolCalls[event.output_index] = undefined;\n\n                  controller.enqueue({\n                    type: 'tool-input-end',\n                    id: part.call_id,\n                  });\n\n                  controller.enqueue({\n                    type: 'tool-call',\n                    toolCallId: part.call_id,\n                    toolName: part.name,\n                    input: part.arguments,\n                  });\n                }\n              }\n            }\n          },\n\n          flush(controller) {\n            for (const [blockId, block] of Object.entries(contentBlocks)) {\n              if (block.type === 'text') {\n                controller.enqueue({\n                  type: 'text-end',\n                  id: blockId,\n                });\n              }\n            }\n\n            controller.enqueue({\n              type: 'finish',\n              finishReason,\n              usage: usage ?? {\n                inputTokens: {\n                  total: 0,\n                  noCache: 0,\n                  cacheRead: 0,\n                  cacheWrite: 0,\n                },\n                outputTokens: { total: 0, text: 0, reasoning: 0 },\n              },\n            });\n          },\n        }),\n      ),\n      request: { body },\n      response: { headers: responseHeaders },\n    };\n  }\n}\n","import { createProviderToolFactoryWithOutputSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst codeExecutionOutputSchema = z.object({\n  output: z.string().describe('the output of the code execution'),\n  error: z.string().optional().describe('any error that occurred'),\n});\n\nconst codeExecutionToolFactory = createProviderToolFactoryWithOutputSchema({\n  id: 'xai.code_execution',\n  inputSchema: z.object({}).describe('no input parameters'),\n  outputSchema: codeExecutionOutputSchema,\n});\n\nexport const codeExecution = (\n  args: Parameters<typeof codeExecutionToolFactory>[0] = {},\n) => codeExecutionToolFactory(args);\n","import { createProviderToolFactoryWithOutputSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst viewImageOutputSchema = z.object({\n  description: z.string().describe('description of the image'),\n  objects: z\n    .array(z.string())\n    .optional()\n    .describe('objects detected in the image'),\n});\n\nconst viewImageToolFactory = createProviderToolFactoryWithOutputSchema({\n  id: 'xai.view_image',\n  inputSchema: z.object({}).describe('no input parameters'),\n  outputSchema: viewImageOutputSchema,\n});\n\nexport const viewImage = (\n  args: Parameters<typeof viewImageToolFactory>[0] = {},\n) => viewImageToolFactory(args);\n","import { createProviderToolFactoryWithOutputSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst viewXVideoOutputSchema = z.object({\n  transcript: z.string().optional().describe('transcript of the video'),\n  description: z.string().describe('description of the video content'),\n  duration: z.number().optional().describe('duration in seconds'),\n});\n\nconst viewXVideoToolFactory = createProviderToolFactoryWithOutputSchema({\n  id: 'xai.view_x_video',\n  inputSchema: z.object({}).describe('no input parameters'),\n  outputSchema: viewXVideoOutputSchema,\n});\n\nexport const viewXVideo = (\n  args: Parameters<typeof viewXVideoToolFactory>[0] = {},\n) => viewXVideoToolFactory(args);\n","import { codeExecution } from './code-execution';\nimport { fileSearch } from './file-search';\nimport { mcpServer } from './mcp-server';\nimport { viewImage } from './view-image';\nimport { viewXVideo } from './view-x-video';\nimport { webSearch } from './web-search';\nimport { xSearch } from './x-search';\n\nexport {\n  codeExecution,\n  fileSearch,\n  mcpServer,\n  viewImage,\n  viewXVideo,\n  webSearch,\n  xSearch,\n};\n\nexport const xaiTools = {\n  codeExecution,\n  fileSearch,\n  mcpServer,\n  viewImage,\n  viewXVideo,\n  webSearch,\n  xSearch,\n};\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n  typeof __PACKAGE_VERSION__ !== 'undefined'\n    ? __PACKAGE_VERSION__\n    : '0.0.0-test';\n","import { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst nonEmptyStringSchema = z.string().min(1);\nconst resolutionSchema = z.enum(['480p', '720p']);\nconst modeSchema = z.enum(['edit-video', 'extend-video', 'reference-to-video']);\n\nexport type XaiVideoMode = z.infer<typeof modeSchema>;\ntype XaiVideoResolution = z.infer<typeof resolutionSchema>;\n\ninterface XaiVideoSharedOptions {\n  pollIntervalMs?: number | null;\n  pollTimeoutMs?: number | null;\n  resolution?: XaiVideoResolution | null;\n}\n\ninterface XaiVideoEditModeOptions extends XaiVideoSharedOptions {\n  /**\n   * Select edit-video mode explicitly for best autocomplete and narrowing.\n   */\n  mode: 'edit-video';\n  /** Source video URL to edit. */\n  videoUrl: string;\n}\n\ninterface XaiVideoExtendModeOptions extends XaiVideoSharedOptions {\n  /**\n   * Select extend-video mode explicitly for best autocomplete and narrowing.\n   */\n  mode: 'extend-video';\n  /** Source video URL to extend from its last frame. */\n  videoUrl: string;\n}\n\ninterface XaiVideoReferenceToVideoOptions extends XaiVideoSharedOptions {\n  /**\n   * Select reference-to-video mode explicitly for best autocomplete and narrowing.\n   */\n  mode: 'reference-to-video';\n  /** Reference image URLs (1-7) for R2V generation. */\n  referenceImageUrls: string[];\n}\n\ninterface XaiVideoGenerationOptions extends XaiVideoSharedOptions {\n  mode?: undefined;\n  videoUrl?: undefined;\n  referenceImageUrls?: undefined;\n}\n\ninterface XaiLegacyEditVideoOptions extends XaiVideoSharedOptions {\n  /**\n   * Legacy backward-compatible shape: omitting `mode` while providing\n   * `videoUrl` behaves like edit-video.\n   */\n  mode?: undefined;\n  videoUrl: string;\n}\n\ninterface XaiLegacyReferenceToVideoOptions extends XaiVideoSharedOptions {\n  /**\n   * Legacy backward-compatible shape: omitting `mode` while providing\n   * `referenceImageUrls` behaves like reference-to-video.\n   */\n  mode?: undefined;\n  referenceImageUrls: string[];\n}\n\n/**\n * Provider options for xAI video generation.\n *\n * Use the `mode` option to select the operation:\n *\n * - `'edit-video'`         + `videoUrl`           -- video editing   (`POST /v1/videos/edits`)\n * - `'extend-video'`       + `videoUrl`           -- video extension (`POST /v1/videos/extensions`)\n * - `'reference-to-video'` + `referenceImageUrls` -- R2V generation  (`POST /v1/videos/generations`)\n * - no `mode`                                     -- standard generation from text prompts or image input\n *\n * Runtime remains backward compatible with legacy auto-detected provider\n * options, but the public TypeScript type is intentionally explicit so editors\n * can suggest valid modes and flag invalid field combinations.\n */\nexport type XaiVideoModelOptions =\n  | XaiVideoGenerationOptions\n  | XaiVideoEditModeOptions\n  | XaiVideoExtendModeOptions\n  | XaiVideoReferenceToVideoOptions\n  | XaiLegacyEditVideoOptions\n  | XaiLegacyReferenceToVideoOptions;\n\n// ── Runtime schemas ───────────────────────────────────────────────────\nconst baseFields = {\n  pollIntervalMs: z.number().positive().nullish(),\n  pollTimeoutMs: z.number().positive().nullish(),\n  resolution: resolutionSchema.nullish(),\n};\n\nconst editVideoSchema = z.object({\n  ...baseFields,\n  mode: z.literal('edit-video'),\n  videoUrl: nonEmptyStringSchema,\n  referenceImageUrls: z.undefined().optional(),\n});\n\nconst extendVideoSchema = z.object({\n  ...baseFields,\n  mode: z.literal('extend-video'),\n  videoUrl: nonEmptyStringSchema,\n  referenceImageUrls: z.undefined().optional(),\n});\n\nconst referenceToVideoSchema = z.object({\n  ...baseFields,\n  mode: z.literal('reference-to-video'),\n  referenceImageUrls: z.array(nonEmptyStringSchema).min(1).max(7),\n  videoUrl: z.undefined().optional(),\n});\n\nconst autoDetectSchema = z.object({\n  ...baseFields,\n  mode: z.undefined().optional(),\n  videoUrl: nonEmptyStringSchema.optional(),\n  referenceImageUrls: z.array(nonEmptyStringSchema).min(1).max(7).optional(),\n});\n\nexport const xaiVideoModelOptions = z.union([\n  editVideoSchema,\n  extendVideoSchema,\n  referenceToVideoSchema,\n  autoDetectSchema,\n]);\n\nconst runtimeSchema = z\n  .object({\n    mode: modeSchema.optional(),\n    videoUrl: nonEmptyStringSchema.optional(),\n    referenceImageUrls: z.array(nonEmptyStringSchema).min(1).max(7).optional(),\n    ...baseFields,\n  })\n  .passthrough();\n\nexport type XaiParsedVideoModelOptions = z.infer<typeof runtimeSchema>;\n\nexport const xaiVideoModelOptionsSchema = lazySchema(() =>\n  zodSchema(runtimeSchema),\n);\n","import {\n  AISDKError,\n  type Experimental_VideoModelV3,\n  type SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  convertUint8ArrayToBase64,\n  createJsonResponseHandler,\n  delay,\n  type FetchFunction,\n  getFromApi,\n  parseProviderOptions,\n  postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { xaiFailedResponseHandler } from './xai-error';\nimport {\n  type XaiParsedVideoModelOptions,\n  xaiVideoModelOptionsSchema,\n} from './xai-video-options';\nimport type { XaiVideoModelId } from './xai-video-settings';\n\ninterface XaiVideoModelConfig {\n  provider: string;\n  baseURL: string | undefined;\n  headers: () => Record<string, string | undefined>;\n  fetch?: FetchFunction;\n  _internal?: {\n    currentDate?: () => Date;\n  };\n}\n\nconst RESOLUTION_MAP: Record<string, string> = {\n  '1280x720': '720p',\n  '854x480': '480p',\n  '640x480': '480p',\n};\n\nfunction resolveVideoMode(\n  options: XaiParsedVideoModelOptions | undefined,\n): XaiParsedVideoModelOptions['mode'] | undefined {\n  if (options?.mode != null) {\n    return options.mode;\n  }\n\n  if (options?.videoUrl != null) {\n    return 'edit-video';\n  }\n\n  if (\n    options?.referenceImageUrls != null &&\n    options.referenceImageUrls.length > 0\n  ) {\n    return 'reference-to-video';\n  }\n\n  return undefined;\n}\n\nexport class XaiVideoModel implements Experimental_VideoModelV3 {\n  readonly specificationVersion = 'v3';\n  readonly maxVideosPerCall = 1;\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  constructor(\n    readonly modelId: XaiVideoModelId,\n    private config: XaiVideoModelConfig,\n  ) {}\n\n  async doGenerate(\n    options: Parameters<Experimental_VideoModelV3['doGenerate']>[0],\n  ): Promise<Awaited<ReturnType<Experimental_VideoModelV3['doGenerate']>>> {\n    const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n    const warnings: SharedV3Warning[] = [];\n\n    const xaiOptions = (await parseProviderOptions({\n      provider: 'xai',\n      providerOptions: options.providerOptions,\n      schema: xaiVideoModelOptionsSchema,\n    })) as XaiParsedVideoModelOptions | undefined;\n\n    const effectiveMode = resolveVideoMode(xaiOptions);\n\n    const isEdit = effectiveMode === 'edit-video';\n    const isExtension = effectiveMode === 'extend-video';\n    const hasReferenceImages = effectiveMode === 'reference-to-video';\n\n    if (options.fps != null) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'fps',\n        details: 'xAI video models do not support custom FPS.',\n      });\n    }\n\n    if (options.seed != null) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'seed',\n        details: 'xAI video models do not support seed.',\n      });\n    }\n\n    if (options.n != null && options.n > 1) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'n',\n        details:\n          'xAI video models do not support generating multiple videos per call. ' +\n          'Only 1 video will be generated.',\n      });\n    }\n\n    // Edit mode: duration, aspectRatio, resolution not supported\n    if (isEdit && options.duration != null) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'duration',\n        details: 'xAI video editing does not support custom duration.',\n      });\n    }\n\n    if (isEdit && options.aspectRatio != null) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'aspectRatio',\n        details: 'xAI video editing does not support custom aspect ratio.',\n      });\n    }\n\n    if (\n      isEdit &&\n      (xaiOptions?.resolution != null || options.resolution != null)\n    ) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'resolution',\n        details: 'xAI video editing does not support custom resolution.',\n      });\n    }\n\n    // Extension mode: aspectRatio and resolution not supported\n    if (isExtension && options.aspectRatio != null) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'aspectRatio',\n        details: 'xAI video extension does not support custom aspect ratio.',\n      });\n    }\n\n    if (\n      isExtension &&\n      (xaiOptions?.resolution != null || options.resolution != null)\n    ) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'resolution',\n        details: 'xAI video extension does not support custom resolution.',\n      });\n    }\n\n    const body: Record<string, unknown> = {\n      model: this.modelId,\n      prompt: options.prompt,\n    };\n\n    const allowDuration = !isEdit;\n    const allowAspectRatio = !isEdit && !isExtension;\n    const allowResolution = !isEdit && !isExtension;\n\n    if (allowDuration && options.duration != null) {\n      body.duration = options.duration;\n    }\n\n    if (allowAspectRatio && options.aspectRatio != null) {\n      body.aspect_ratio = options.aspectRatio;\n    }\n\n    if (allowResolution && xaiOptions?.resolution != null) {\n      body.resolution = xaiOptions.resolution;\n    } else if (allowResolution && options.resolution != null) {\n      const mapped = RESOLUTION_MAP[options.resolution];\n      if (mapped != null) {\n        body.resolution = mapped;\n      } else {\n        warnings.push({\n          type: 'unsupported',\n          feature: 'resolution',\n          details:\n            `Unrecognized resolution \"${options.resolution}\". ` +\n            'Use providerOptions.xai.resolution with \"480p\" or \"720p\" instead.',\n        });\n      }\n    }\n\n    // Video editing: pass source video URL (nested object)\n    if (isEdit) {\n      body.video = { url: xaiOptions!.videoUrl };\n    }\n\n    // Video extension: pass source video URL (nested object)\n    if (isExtension) {\n      body.video = { url: xaiOptions!.videoUrl };\n    }\n\n    // Convert SDK image input to the nested xAI request image object\n    if (options.image != null) {\n      if (options.image.type === 'url') {\n        body.image = { url: options.image.url };\n      } else {\n        const base64Data =\n          typeof options.image.data === 'string'\n            ? options.image.data\n            : convertUint8ArrayToBase64(options.image.data);\n        body.image = {\n          url: `data:${options.image.mediaType};base64,${base64Data}`,\n        };\n      }\n    }\n\n    // Reference images for R2V (reference-to-video) generation\n    if (hasReferenceImages) {\n      body.reference_images = xaiOptions!.referenceImageUrls!.map(url => ({\n        url,\n      }));\n    }\n\n    if (xaiOptions != null) {\n      for (const [key, value] of Object.entries(xaiOptions)) {\n        if (\n          ![\n            'mode',\n            'pollIntervalMs',\n            'pollTimeoutMs',\n            'resolution',\n            'videoUrl',\n            'referenceImageUrls',\n          ].includes(key)\n        ) {\n          body[key] = value;\n        }\n      }\n    }\n\n    const baseURL = this.config.baseURL ?? 'https://api.x.ai/v1';\n\n    // Determine endpoint based on mode\n    let endpoint: string;\n    if (isEdit) {\n      endpoint = `${baseURL}/videos/edits`;\n    } else if (isExtension) {\n      endpoint = `${baseURL}/videos/extensions`;\n    } else {\n      endpoint = `${baseURL}/videos/generations`;\n    }\n\n    // Step 1: Create video generation/edit/extension request\n    const { value: createResponse } = await postJsonToApi({\n      url: endpoint,\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: xaiFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        xaiCreateVideoResponseSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    const requestId = createResponse.request_id;\n    if (!requestId) {\n      throw new AISDKError({\n        name: 'XAI_VIDEO_GENERATION_ERROR',\n        message: `No request_id returned from xAI API. Response: ${JSON.stringify(createResponse)}`,\n      });\n    }\n\n    // Step 2: Poll for completion\n    const pollIntervalMs = xaiOptions?.pollIntervalMs ?? 5000;\n    const pollTimeoutMs = xaiOptions?.pollTimeoutMs ?? 600000;\n    const startTime = Date.now();\n    let responseHeaders: Record<string, string> | undefined;\n\n    while (true) {\n      await delay(pollIntervalMs, { abortSignal: options.abortSignal });\n\n      if (Date.now() - startTime > pollTimeoutMs) {\n        throw new AISDKError({\n          name: 'XAI_VIDEO_GENERATION_TIMEOUT',\n          message: `Video generation timed out after ${pollTimeoutMs}ms`,\n        });\n      }\n\n      const { value: statusResponse, responseHeaders: pollHeaders } =\n        await getFromApi({\n          url: `${baseURL}/videos/${requestId}`,\n          headers: combineHeaders(this.config.headers(), options.headers),\n          successfulResponseHandler: createJsonResponseHandler(\n            xaiVideoStatusResponseSchema,\n          ),\n          failedResponseHandler: xaiFailedResponseHandler,\n          abortSignal: options.abortSignal,\n          fetch: this.config.fetch,\n        });\n\n      responseHeaders = pollHeaders;\n\n      if (\n        statusResponse.status === 'done' ||\n        (statusResponse.status == null && statusResponse.video?.url)\n      ) {\n        if (statusResponse.video?.respect_moderation === false) {\n          throw new AISDKError({\n            name: 'XAI_VIDEO_MODERATION_ERROR',\n            message:\n              'Video generation was blocked due to a content policy violation.',\n          });\n        }\n\n        if (!statusResponse.video?.url) {\n          throw new AISDKError({\n            name: 'XAI_VIDEO_GENERATION_ERROR',\n            message:\n              'Video generation completed but no video URL was returned.',\n          });\n        }\n\n        return {\n          videos: [\n            {\n              type: 'url' as const,\n              url: statusResponse.video.url,\n              mediaType: 'video/mp4',\n            },\n          ],\n          warnings,\n          response: {\n            timestamp: currentDate,\n            modelId: this.modelId,\n            headers: responseHeaders,\n          },\n          providerMetadata: {\n            xai: {\n              requestId,\n              videoUrl: statusResponse.video.url,\n              ...(statusResponse.video.duration != null\n                ? { duration: statusResponse.video.duration }\n                : {}),\n              ...(statusResponse.usage?.cost_in_usd_ticks != null\n                ? { costInUsdTicks: statusResponse.usage.cost_in_usd_ticks }\n                : {}),\n              ...(statusResponse.progress != null\n                ? { progress: statusResponse.progress }\n                : {}),\n            },\n          },\n        };\n      }\n\n      if (statusResponse.status === 'expired') {\n        throw new AISDKError({\n          name: 'XAI_VIDEO_GENERATION_EXPIRED',\n          message: 'Video generation request expired.',\n        });\n      }\n\n      if (statusResponse.status === 'failed') {\n        throw new AISDKError({\n          name: 'XAI_VIDEO_GENERATION_FAILED',\n          message: 'Video generation failed.',\n        });\n      }\n\n      // 'pending' → continue polling\n    }\n  }\n}\n\nconst xaiCreateVideoResponseSchema = z.object({\n  request_id: z.string().nullish(),\n});\n\nconst xaiVideoStatusResponseSchema = z.object({\n  status: z.string().nullish(),\n  video: z\n    .object({\n      url: z.string(),\n      duration: z.number().nullish(),\n      respect_moderation: z.boolean().nullish(),\n    })\n    .nullish(),\n  model: z.string().nullish(),\n  usage: z\n    .object({\n      cost_in_usd_ticks: z.number().nullish(),\n    })\n    .nullish(),\n  progress: z.number().nullish(),\n  error: z\n    .object({\n      code: z.string().nullish(),\n      message: z.string().nullish(),\n    })\n    .nullish(),\n});\n","import {\n  NoSuchModelError,\n  type ImageModelV3,\n  type LanguageModelV3,\n  type ProviderV3,\n  type Experimental_VideoModelV3,\n} from '@ai-sdk/provider';\nimport {\n  generateId,\n  loadApiKey,\n  withoutTrailingSlash,\n  withUserAgentSuffix,\n  type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { XaiChatLanguageModel } from './xai-chat-language-model';\nimport type { XaiChatModelId } from './xai-chat-options';\nimport { XaiImageModel } from './xai-image-model';\nimport type { XaiImageModelId } from './xai-image-settings';\nimport { XaiResponsesLanguageModel } from './responses/xai-responses-language-model';\nimport type { XaiResponsesModelId } from './responses/xai-responses-options';\nimport { xaiTools } from './tool';\nimport { VERSION } from './version';\nimport { XaiVideoModel } from './xai-video-model';\nimport type { XaiVideoModelId } from './xai-video-settings';\n\nexport interface XaiProvider extends ProviderV3 {\n  /**\n   * Creates an Xai chat model for text generation.\n   */\n  (modelId: XaiChatModelId): LanguageModelV3;\n\n  /**\n   * Creates an Xai language model for text generation.\n   */\n  languageModel(modelId: XaiChatModelId): LanguageModelV3;\n\n  /**\n   * Creates an Xai chat model for text generation.\n   */\n  chat: (modelId: XaiChatModelId) => LanguageModelV3;\n\n  /**\n   * Creates an Xai responses model for agentic tool calling.\n   */\n  responses: (modelId: XaiResponsesModelId) => LanguageModelV3;\n\n  /**\n   * Creates an Xai image model for image generation.\n   */\n  image(modelId: XaiImageModelId): ImageModelV3;\n\n  /**\n   * Creates an Xai image model for image generation.\n   */\n  imageModel(modelId: XaiImageModelId): ImageModelV3;\n\n  /**\n   * Creates an Xai video model for video generation.\n   */\n  video(modelId: XaiVideoModelId): Experimental_VideoModelV3;\n\n  /**\n   * Creates an Xai video model for video generation.\n   */\n  videoModel(modelId: XaiVideoModelId): Experimental_VideoModelV3;\n\n  /**\n   * Server-side agentic tools for use with the responses API.\n   */\n  tools: typeof xaiTools;\n\n  /**\n   * @deprecated Use `embeddingModel` instead.\n   */\n  textEmbeddingModel(modelId: string): never;\n}\n\nexport interface XaiProviderSettings {\n  /**\n   * Base URL for the xAI API calls.\n   */\n  baseURL?: string;\n\n  /**\n   * API key for authenticating requests.\n   */\n  apiKey?: string;\n\n  /**\n   * Custom headers to include in the requests.\n   */\n  headers?: Record<string, string>;\n\n  /**\n   * Custom fetch implementation. You can use it as a middleware to intercept requests,\n   * or to provide a custom fetch implementation for e.g. testing.\n   */\n  fetch?: FetchFunction;\n}\n\nexport function createXai(options: XaiProviderSettings = {}): XaiProvider {\n  const baseURL = withoutTrailingSlash(\n    options.baseURL ?? 'https://api.x.ai/v1',\n  );\n  const getHeaders = () =>\n    withUserAgentSuffix(\n      {\n        Authorization: `Bearer ${loadApiKey({\n          apiKey: options.apiKey,\n          environmentVariableName: 'XAI_API_KEY',\n          description: 'xAI API key',\n        })}`,\n        ...options.headers,\n      },\n      `ai-sdk/xai/${VERSION}`,\n    );\n\n  const createChatLanguageModel = (modelId: XaiChatModelId) => {\n    return new XaiChatLanguageModel(modelId, {\n      provider: 'xai.chat',\n      baseURL,\n      headers: getHeaders,\n      generateId,\n      fetch: options.fetch,\n    });\n  };\n\n  const createResponsesLanguageModel = (modelId: XaiResponsesModelId) => {\n    return new XaiResponsesLanguageModel(modelId, {\n      provider: 'xai.responses',\n      baseURL,\n      headers: getHeaders,\n      generateId,\n      fetch: options.fetch,\n    });\n  };\n\n  const createImageModel = (modelId: XaiImageModelId) => {\n    return new XaiImageModel(modelId, {\n      provider: 'xai.image',\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n  };\n\n  const createVideoModel = (modelId: XaiVideoModelId) => {\n    return new XaiVideoModel(modelId, {\n      provider: 'xai.video',\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n  };\n\n  const provider = (modelId: XaiChatModelId) =>\n    createChatLanguageModel(modelId);\n\n  provider.specificationVersion = 'v3' as const;\n  provider.languageModel = createChatLanguageModel;\n  provider.chat = createChatLanguageModel;\n  provider.responses = createResponsesLanguageModel;\n  provider.embeddingModel = (modelId: string) => {\n    throw new NoSuchModelError({ modelId, modelType: 'embeddingModel' });\n  };\n  provider.textEmbeddingModel = provider.embeddingModel;\n  provider.imageModel = createImageModel;\n  provider.image = createImageModel;\n  provider.videoModel = createVideoModel;\n  provider.video = createVideoModel;\n  provider.tools = xaiTools;\n\n  return provider;\n}\n\nexport const xai = createXai();\n"]}