@ai-sdk/xai 3.0.0-beta.61 → 3.0.0-beta.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/xai-provider.ts","../src/xai-chat-language-model.ts","../src/convert-to-xai-chat-messages.ts","../src/get-response-metadata.ts","../src/map-xai-finish-reason.ts","../src/xai-chat-options.ts","../src/xai-error.ts","../src/xai-prepare-tools.ts","../src/convert-xai-chat-usage.ts","../src/responses/xai-responses-language-model.ts","../src/responses/convert-to-xai-responses-input.ts","../src/responses/convert-xai-responses-usage.ts","../src/responses/map-xai-responses-finish-reason.ts","../src/responses/xai-responses-api.ts","../src/responses/xai-responses-options.ts","../src/responses/xai-responses-prepare-tools.ts","../src/tool/web-search.ts","../src/tool/x-search.ts","../src/tool/code-execution.ts","../src/tool/view-image.ts","../src/tool/view-x-video.ts","../src/tool/index.ts","../src/version.ts"],"sourcesContent":["import {\n OpenAICompatibleImageModel,\n ProviderErrorStructure,\n} from '@ai-sdk/openai-compatible';\nimport {\n ImageModelV3,\n LanguageModelV3,\n NoSuchModelError,\n ProviderV3,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n generateId,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { XaiChatLanguageModel } from './xai-chat-language-model';\nimport { XaiChatModelId } from './xai-chat-options';\nimport { XaiErrorData, xaiErrorDataSchema } from './xai-error';\nimport { XaiImageModelId } from './xai-image-settings';\nimport { XaiResponsesLanguageModel } from './responses/xai-responses-language-model';\nimport { XaiResponsesModelId } from './responses/xai-responses-options';\nimport { xaiTools } from './tool';\nimport { VERSION } from './version';\n\nconst xaiErrorStructure: ProviderErrorStructure<XaiErrorData> = {\n errorSchema: xaiErrorDataSchema,\n errorToMessage: data => data.error.message,\n};\n\nexport interface XaiProvider extends ProviderV3 {\n /**\nCreates an Xai chat model for text generation.\n */\n (modelId: XaiChatModelId): LanguageModelV3;\n\n /**\nCreates an Xai language model for text generation.\n */\n languageModel(modelId: XaiChatModelId): LanguageModelV3;\n\n /**\nCreates an Xai chat model for text generation.\n */\n chat: (modelId: XaiChatModelId) => LanguageModelV3;\n\n /**\nCreates an Xai responses model for agentic tool calling.\n */\n responses: (modelId: XaiResponsesModelId) => LanguageModelV3;\n\n /**\nCreates an Xai image model for image generation.\n */\n image(modelId: XaiImageModelId): ImageModelV3;\n\n /**\nCreates an Xai image model for image generation.\n */\n imageModel(modelId: XaiImageModelId): ImageModelV3;\n\n /**\nServer-side agentic tools for use with the responses API.\n */\n tools: typeof xaiTools;\n}\n\nexport interface XaiProviderSettings {\n /**\nBase URL for the xAI API calls.\n */\n baseURL?: string;\n\n /**\nAPI key for authenticating requests.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor 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 OpenAICompatibleImageModel(modelId, {\n provider: 'xai.image',\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n errorStructure: xaiErrorStructure,\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.imageModel = createImageModel;\n provider.image = createImageModel;\n provider.tools = xaiTools;\n\n return provider;\n}\n\nexport const xai = createXai();\n","import {\n LanguageModelV3,\n SharedV3Warning,\n LanguageModelV3Content,\n LanguageModelV3FinishReason,\n LanguageModelV3StreamPart,\n LanguageModelV3Usage,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n FetchFunction,\n parseProviderOptions,\n ParseResult,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { convertToXaiChatMessages } from './convert-to-xai-chat-messages';\nimport { getResponseMetadata } from './get-response-metadata';\nimport { mapXaiFinishReason } from './map-xai-finish-reason';\nimport { XaiChatModelId, xaiProviderOptions } from './xai-chat-options';\nimport { xaiFailedResponseHandler } from './xai-error';\nimport { prepareTools } from './xai-prepare-tools';\nimport { convertXaiChatUsage } from './convert-xai-chat-usage';\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 }: Parameters<LanguageModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n\n // parse xai-specific provider options\n const options =\n (await parseProviderOptions({\n provider: 'xai',\n providerOptions,\n schema: xaiProviderOptions,\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 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: Parameters<LanguageModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['doGenerate']>>> {\n const { args: body, warnings } = 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'}/chat/completions`,\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 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: mapXaiFinishReason(choice.finish_reason),\n usage: convertXaiChatUsage(response.usage),\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: Parameters<LanguageModelV3['doStream']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['doStream']>>> {\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 { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL ?? 'https://api.x.ai/v1'}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: xaiFailedResponseHandler,\n successfulResponseHandler:\n createEventSourceResponseHandler(xaiChatChunkSchema),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n let finishReason: LanguageModelV3FinishReason = 'unknown';\n let usage: LanguageModelV3Usage | undefined = undefined;\n let isFirstChunk = true;\n const contentBlocks: Record<string, { type: 'text' | 'reasoning' }> = {};\n const lastReasoningDeltas: Record<string, string> = {};\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 = mapXaiFinishReason(choice.finish_reason);\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 // 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' };\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' };\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 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 for (const [blockId, block] of Object.entries(contentBlocks)) {\n controller.enqueue({\n type: block.type === 'text' ? 'text-end' : 'reasoning-end',\n id: blockId,\n });\n }\n\n controller.enqueue({ type: 'finish', finishReason, usage: usage! });\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.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 object: z.literal('chat.completion'),\n usage: xaiUsageSchema,\n citations: z.array(z.string().url()).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","import {\n SharedV3Warning,\n LanguageModelV3Prompt,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { convertToBase64 } from '@ai-sdk/provider-utils';\nimport { 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 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","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 { LanguageModelV3FinishReason } from '@ai-sdk/provider';\n\nexport function mapXaiFinishReason(\n finishReason: string | null | undefined,\n): LanguageModelV3FinishReason {\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 'unknown';\n }\n}\n","import { z } from 'zod/v4';\n\n// https://console.x.ai and see \"View models\"\nexport type XaiChatModelId =\n | 'grok-4-1'\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-code-fast-1'\n | 'grok-4'\n | 'grok-4-0709'\n | 'grok-4-latest'\n | 'grok-3'\n | 'grok-3-latest'\n | 'grok-3-fast'\n | 'grok-3-fast-latest'\n | 'grok-3-mini'\n | 'grok-3-mini-latest'\n | 'grok-3-mini-fast'\n | 'grok-3-mini-fast-latest'\n | 'grok-2-vision-1212'\n | 'grok-2-vision'\n | 'grok-2-vision-latest'\n | 'grok-2-image-1212'\n | 'grok-2-image'\n | 'grok-2-image-latest'\n | 'grok-2-1212'\n | 'grok-2'\n | 'grok-2-latest'\n | 'grok-vision-beta'\n | 'grok-beta'\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 xaiProviderOptions = z.object({\n reasoningEffort: z.enum(['low', 'high']).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 [\"web\", \"x\"] if not specified\n */\n sources: z.array(searchSourceSchema).optional(),\n })\n .optional(),\n});\n\nexport type XaiProviderOptions = z.infer<typeof xaiProviderOptions>;\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 LanguageModelV3CallOptions,\n SharedV3Warning,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { 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 };\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 };\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 },\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 { LanguageModelV3Usage } from '@ai-sdk/provider';\nimport { 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 return {\n inputTokens: {\n total: usage.prompt_tokens,\n noCache: usage.prompt_tokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: undefined,\n },\n outputTokens: {\n total: usage.completion_tokens,\n text: usage.completion_tokens - reasoningTokens,\n reasoning: reasoningTokens,\n },\n raw: usage,\n };\n}\n","import {\n LanguageModelV3,\n LanguageModelV3Content,\n LanguageModelV3FinishReason,\n LanguageModelV3StreamPart,\n LanguageModelV3Usage,\n SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n FetchFunction,\n parseProviderOptions,\n ParseResult,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { 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} from './xai-responses-api';\nimport {\n XaiResponsesModelId,\n xaiResponsesProviderOptions,\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 };\n\n private async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n stopSequences,\n seed,\n providerOptions,\n tools,\n toolChoice,\n }: Parameters<LanguageModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n\n const options =\n (await parseProviderOptions({\n provider: 'xai',\n providerOptions,\n schema: xaiResponsesProviderOptions,\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 { input, inputWarnings } = await convertToXaiResponsesInput({\n prompt,\n 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 const baseArgs: Record<string, unknown> = {\n model: this.modelId,\n input,\n max_output_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n seed,\n ...(options.reasoningEffort != null && {\n reasoning: { effort: options.reasoningEffort },\n }),\n ...(options.store === false && {\n store: options.store,\n include: ['reasoning.encrypted_content'],\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 };\n }\n\n async doGenerate(\n options: Parameters<LanguageModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['doGenerate']>>> {\n const {\n args: body,\n warnings,\n webSearchToolName,\n xSearchToolName,\n codeExecutionToolName,\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\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 (\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 ) {\n let toolName = part.name ?? '';\n if (webSearchSubTools.includes(part.name ?? '')) {\n toolName = webSearchToolName ?? 'web_search';\n } else if (xSearchSubTools.includes(part.name ?? '')) {\n toolName = xSearchToolName ?? 'x_search';\n } else if (part.name === 'code_execution') {\n toolName = codeExecutionToolName ?? 'code_execution';\n }\n\n // custom_tool_call uses 'input' field, others use 'arguments'\n const toolInput =\n part.type === 'custom_tool_call'\n ? (part.input ?? '')\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 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 default: {\n break;\n }\n }\n }\n\n return {\n content,\n finishReason: mapXaiResponsesFinishReason(response.status),\n usage: convertXaiResponsesUsage(response.usage),\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: Parameters<LanguageModelV3['doStream']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['doStream']>>> {\n const {\n args,\n warnings,\n webSearchToolName,\n xSearchToolName,\n codeExecutionToolName,\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 = 'unknown';\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 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 controller.enqueue({\n type: 'reasoning-start',\n id: blockId,\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 });\n\n return;\n }\n\n if (event.type === 'response.reasoning_summary_text.done') {\n const blockId = `reasoning-${event.item_id}`;\n\n controller.enqueue({\n type: 'reasoning-end',\n id: blockId,\n });\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 ) {\n const response = event.response;\n\n if (response.usage) {\n usage = convertXaiResponsesUsage(response.usage);\n }\n\n if (response.status) {\n finishReason = mapXaiResponsesFinishReason(response.status);\n }\n\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 (\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 ) {\n if (!seenToolCalls.has(part.id)) {\n seenToolCalls.add(part.id);\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 (webSearchSubTools.includes(part.name ?? '')) {\n toolName = webSearchToolName ?? 'web_search';\n } else if (xSearchSubTools.includes(part.name ?? '')) {\n toolName = xSearchToolName ?? 'x_search';\n } else if (part.name === 'code_execution') {\n toolName = codeExecutionToolName ?? 'code_execution';\n }\n\n // custom_tool_call uses 'input' field, others use 'arguments'\n const toolInput =\n part.type === 'custom_tool_call'\n ? (part.input ?? '')\n : (part.arguments ?? '');\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 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: contentPart.text,\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 (!seenToolCalls.has(part.call_id)) {\n seenToolCalls.add(part.call_id);\n\n controller.enqueue({\n type: 'tool-input-start',\n id: part.call_id,\n toolName: part.name,\n });\n\n controller.enqueue({\n type: 'tool-input-delta',\n id: part.call_id,\n delta: part.arguments,\n });\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({ type: 'finish', finishReason, usage: usage! });\n },\n }),\n ),\n request: { body },\n response: { headers: responseHeaders },\n };\n }\n}\n","import { SharedV3Warning, LanguageModelV3Message } from '@ai-sdk/provider';\nimport { XaiResponsesInput } 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 let userContent = '';\n\n for (const block of message.content) {\n switch (block.type) {\n case 'text': {\n userContent += block.text;\n break;\n }\n\n case 'file': {\n inputWarnings.push({\n type: 'other',\n message: `xAI Responses API does not support ${block.type} in user messages`,\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: userContent,\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 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 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 { LanguageModelV3Usage } from '@ai-sdk/provider';\nimport { 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 return {\n inputTokens: {\n total: usage.input_tokens,\n noCache: usage.input_tokens - cacheReadTokens,\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 { LanguageModelV3FinishReason } from '@ai-sdk/provider';\n\nexport function mapXaiResponsesFinishReason(\n finishReason: string | null | undefined,\n): LanguageModelV3FinishReason {\n switch (finishReason) {\n case 'stop':\n case 'completed':\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 'unknown';\n }\n}\n","import { z } from 'zod/v4';\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 XaiResponsesUserMessage = {\n role: 'user';\n content: string;\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 | { type: 'file_search' }\n | { type: 'mcp' }\n | {\n type: 'function';\n function: {\n name: string;\n description?: string;\n parameters: unknown;\n };\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 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('custom_tool_call'),\n ...toolCallSchema.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 }),\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,\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.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.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.completed'),\n item_id: z.string(),\n output_index: z.number(),\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'\n | 'grok-4-1-fast-reasoning'\n | 'grok-4-1-fast-non-reasoning'\n | 'grok-4'\n | 'grok-4-fast'\n | 'grok-4-fast-non-reasoning'\n | (string & {});\n\n/**\n * @see https://docs.x.ai/docs/api-reference#create-new-response\n */\nexport const xaiResponsesProviderOptions = 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 /**\n * Whether to store the input message(s) and model response for later retrieval.\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\nexport type XaiResponsesProviderOptions = z.infer<\n typeof xaiResponsesProviderOptions\n>;\n","import {\n LanguageModelV3CallOptions,\n SharedV3Warning,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { validateTypes } from '@ai-sdk/provider-utils';\nimport { webSearchArgsSchema } from '../tool/web-search';\nimport { xSearchArgsSchema } from '../tool/x-search';\nimport { XaiResponsesTool } from './xai-responses-api';\n\ntype XaiResponsesToolChoice =\n | 'auto'\n | 'none'\n | 'required'\n | { type: 'web_search' }\n | { type: 'x_search' }\n | { type: 'code_interpreter' }\n | { type: 'view_image' }\n | { type: 'view_x_video' }\n | { type: 'file_search' }\n | { type: 'mcp' }\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 xaiTools.push({\n type: 'file_search',\n });\n break;\n }\n\n case 'xai.mcp': {\n xaiTools.push({\n type: 'mcp',\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 function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\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 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 switch (selectedTool.id) {\n case 'xai.web_search':\n return {\n tools: xaiTools,\n toolChoice: { type: 'web_search' },\n toolWarnings,\n };\n case 'xai.x_search':\n return {\n tools: xaiTools,\n toolChoice: { type: 'x_search' },\n toolWarnings,\n };\n case 'xai.code_execution':\n return {\n tools: xaiTools,\n toolChoice: { type: 'code_interpreter' },\n toolWarnings,\n };\n case 'xai.view_image':\n return {\n tools: xaiTools,\n toolChoice: { type: 'view_image' },\n toolWarnings,\n };\n case 'xai.view_x_video':\n return {\n tools: xaiTools,\n toolChoice: { type: 'view_x_video' },\n toolWarnings,\n };\n case 'xai.file_search':\n return {\n tools: xaiTools,\n toolChoice: { type: 'file_search' },\n toolWarnings,\n };\n case 'xai.mcp':\n return {\n tools: xaiTools,\n toolChoice: { type: 'mcp' },\n toolWarnings,\n };\n default:\n toolWarnings.push({\n type: 'unsupported',\n feature: `provider-defined tool ${selectedTool.name}`,\n });\n return { tools: xaiTools, toolChoice: undefined, toolWarnings };\n }\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 {\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 Record<string, never>,\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 Record<string, never>,\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 { 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 { viewImage } from './view-image';\nimport { viewXVideo } from './view-x-video';\nimport { webSearch } from './web-search';\nimport { xSearch } from './x-search';\n\nexport { codeExecution, viewImage, viewXVideo, webSearch, xSearch };\n\nexport const xaiTools = {\n codeExecution,\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"],"mappings":"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","names":["z","z","UnsupportedFunctionalityError","xaiTools","xaiTools","_a","z","combineHeaders","createEventSourceResponseHandler","createJsonResponseHandler","parseProviderOptions","postJsonToApi","z","z","UnsupportedFunctionalityError","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","xaiTools","UnsupportedFunctionalityError","parseProviderOptions","xaiTools","postJsonToApi","combineHeaders","createJsonResponseHandler","createEventSourceResponseHandler","_a","response","createProviderToolFactoryWithOutputSchema","z","createProviderToolFactoryWithOutputSchema","z","createProviderToolFactoryWithOutputSchema","z"]}
1
+ {"version":3,"sources":["../src/xai-provider.ts","../src/xai-chat-language-model.ts","../src/convert-to-xai-chat-messages.ts","../src/get-response-metadata.ts","../src/map-xai-finish-reason.ts","../src/xai-chat-options.ts","../src/xai-error.ts","../src/xai-prepare-tools.ts","../src/convert-xai-chat-usage.ts","../src/responses/xai-responses-language-model.ts","../src/responses/convert-to-xai-responses-input.ts","../src/responses/convert-xai-responses-usage.ts","../src/responses/map-xai-responses-finish-reason.ts","../src/responses/xai-responses-api.ts","../src/responses/xai-responses-options.ts","../src/responses/xai-responses-prepare-tools.ts","../src/tool/web-search.ts","../src/tool/x-search.ts","../src/tool/code-execution.ts","../src/tool/view-image.ts","../src/tool/view-x-video.ts","../src/tool/index.ts","../src/version.ts"],"sourcesContent":["import {\n OpenAICompatibleImageModel,\n ProviderErrorStructure,\n} from '@ai-sdk/openai-compatible';\nimport {\n ImageModelV3,\n LanguageModelV3,\n NoSuchModelError,\n ProviderV3,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n generateId,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { XaiChatLanguageModel } from './xai-chat-language-model';\nimport { XaiChatModelId } from './xai-chat-options';\nimport { XaiErrorData, xaiErrorDataSchema } from './xai-error';\nimport { XaiImageModelId } from './xai-image-settings';\nimport { XaiResponsesLanguageModel } from './responses/xai-responses-language-model';\nimport { XaiResponsesModelId } from './responses/xai-responses-options';\nimport { xaiTools } from './tool';\nimport { VERSION } from './version';\n\nconst xaiErrorStructure: ProviderErrorStructure<XaiErrorData> = {\n errorSchema: xaiErrorDataSchema,\n errorToMessage: data => data.error.message,\n};\n\nexport interface XaiProvider extends ProviderV3 {\n /**\nCreates an Xai chat model for text generation.\n */\n (modelId: XaiChatModelId): LanguageModelV3;\n\n /**\nCreates an Xai language model for text generation.\n */\n languageModel(modelId: XaiChatModelId): LanguageModelV3;\n\n /**\nCreates an Xai chat model for text generation.\n */\n chat: (modelId: XaiChatModelId) => LanguageModelV3;\n\n /**\nCreates an Xai responses model for agentic tool calling.\n */\n responses: (modelId: XaiResponsesModelId) => LanguageModelV3;\n\n /**\nCreates an Xai image model for image generation.\n */\n image(modelId: XaiImageModelId): ImageModelV3;\n\n /**\nCreates an Xai image model for image generation.\n */\n imageModel(modelId: XaiImageModelId): ImageModelV3;\n\n /**\nServer-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 /**\nBase URL for the xAI API calls.\n */\n baseURL?: string;\n\n /**\nAPI key for authenticating requests.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor 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 OpenAICompatibleImageModel(modelId, {\n provider: 'xai.image',\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n errorStructure: xaiErrorStructure,\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.tools = xaiTools;\n\n return provider;\n}\n\nexport const xai = createXai();\n","import {\n LanguageModelV3,\n SharedV3Warning,\n LanguageModelV3Content,\n LanguageModelV3FinishReason,\n LanguageModelV3StreamPart,\n LanguageModelV3Usage,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n FetchFunction,\n parseProviderOptions,\n ParseResult,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { convertToXaiChatMessages } from './convert-to-xai-chat-messages';\nimport { getResponseMetadata } from './get-response-metadata';\nimport { mapXaiFinishReason } from './map-xai-finish-reason';\nimport { XaiChatModelId, xaiProviderOptions } from './xai-chat-options';\nimport { xaiFailedResponseHandler } from './xai-error';\nimport { prepareTools } from './xai-prepare-tools';\nimport { convertXaiChatUsage } from './convert-xai-chat-usage';\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 }: Parameters<LanguageModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n\n // parse xai-specific provider options\n const options =\n (await parseProviderOptions({\n provider: 'xai',\n providerOptions,\n schema: xaiProviderOptions,\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 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: Parameters<LanguageModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['doGenerate']>>> {\n const { args: body, warnings } = 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'}/chat/completions`,\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 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: mapXaiFinishReason(choice.finish_reason),\n usage: convertXaiChatUsage(response.usage),\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: Parameters<LanguageModelV3['doStream']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['doStream']>>> {\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 { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL ?? 'https://api.x.ai/v1'}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: xaiFailedResponseHandler,\n successfulResponseHandler:\n createEventSourceResponseHandler(xaiChatChunkSchema),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n let finishReason: LanguageModelV3FinishReason = 'unknown';\n let usage: LanguageModelV3Usage | undefined = undefined;\n let isFirstChunk = true;\n const contentBlocks: Record<string, { type: 'text' | 'reasoning' }> = {};\n const lastReasoningDeltas: Record<string, string> = {};\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 = mapXaiFinishReason(choice.finish_reason);\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 // 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' };\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' };\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 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 for (const [blockId, block] of Object.entries(contentBlocks)) {\n controller.enqueue({\n type: block.type === 'text' ? 'text-end' : 'reasoning-end',\n id: blockId,\n });\n }\n\n controller.enqueue({ type: 'finish', finishReason, usage: usage! });\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.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 object: z.literal('chat.completion'),\n usage: xaiUsageSchema,\n citations: z.array(z.string().url()).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","import {\n SharedV3Warning,\n LanguageModelV3Prompt,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { convertToBase64 } from '@ai-sdk/provider-utils';\nimport { 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 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","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 { LanguageModelV3FinishReason } from '@ai-sdk/provider';\n\nexport function mapXaiFinishReason(\n finishReason: string | null | undefined,\n): LanguageModelV3FinishReason {\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 'unknown';\n }\n}\n","import { z } from 'zod/v4';\n\n// https://console.x.ai and see \"View models\"\nexport type XaiChatModelId =\n | 'grok-4-1'\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-code-fast-1'\n | 'grok-4'\n | 'grok-4-0709'\n | 'grok-4-latest'\n | 'grok-3'\n | 'grok-3-latest'\n | 'grok-3-fast'\n | 'grok-3-fast-latest'\n | 'grok-3-mini'\n | 'grok-3-mini-latest'\n | 'grok-3-mini-fast'\n | 'grok-3-mini-fast-latest'\n | 'grok-2-vision-1212'\n | 'grok-2-vision'\n | 'grok-2-vision-latest'\n | 'grok-2-image-1212'\n | 'grok-2-image'\n | 'grok-2-image-latest'\n | 'grok-2-1212'\n | 'grok-2'\n | 'grok-2-latest'\n | 'grok-vision-beta'\n | 'grok-beta'\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 xaiProviderOptions = z.object({\n reasoningEffort: z.enum(['low', 'high']).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 [\"web\", \"x\"] if not specified\n */\n sources: z.array(searchSourceSchema).optional(),\n })\n .optional(),\n});\n\nexport type XaiProviderOptions = z.infer<typeof xaiProviderOptions>;\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 LanguageModelV3CallOptions,\n SharedV3Warning,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { 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 };\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 };\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 },\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 { LanguageModelV3Usage } from '@ai-sdk/provider';\nimport { 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 return {\n inputTokens: {\n total: usage.prompt_tokens,\n noCache: usage.prompt_tokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: undefined,\n },\n outputTokens: {\n total: usage.completion_tokens,\n text: usage.completion_tokens - reasoningTokens,\n reasoning: reasoningTokens,\n },\n raw: usage,\n };\n}\n","import {\n LanguageModelV3,\n LanguageModelV3Content,\n LanguageModelV3FinishReason,\n LanguageModelV3StreamPart,\n LanguageModelV3Usage,\n SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n FetchFunction,\n parseProviderOptions,\n ParseResult,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { 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} from './xai-responses-api';\nimport {\n XaiResponsesModelId,\n xaiResponsesProviderOptions,\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 };\n\n private async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n stopSequences,\n seed,\n providerOptions,\n tools,\n toolChoice,\n }: Parameters<LanguageModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n\n const options =\n (await parseProviderOptions({\n provider: 'xai',\n providerOptions,\n schema: xaiResponsesProviderOptions,\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 { input, inputWarnings } = await convertToXaiResponsesInput({\n prompt,\n 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 const baseArgs: Record<string, unknown> = {\n model: this.modelId,\n input,\n max_output_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n seed,\n ...(options.reasoningEffort != null && {\n reasoning: { effort: options.reasoningEffort },\n }),\n ...(options.store === false && {\n store: options.store,\n include: ['reasoning.encrypted_content'],\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 };\n }\n\n async doGenerate(\n options: Parameters<LanguageModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['doGenerate']>>> {\n const {\n args: body,\n warnings,\n webSearchToolName,\n xSearchToolName,\n codeExecutionToolName,\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\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 (\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 ) {\n let toolName = part.name ?? '';\n if (webSearchSubTools.includes(part.name ?? '')) {\n toolName = webSearchToolName ?? 'web_search';\n } else if (xSearchSubTools.includes(part.name ?? '')) {\n toolName = xSearchToolName ?? 'x_search';\n } else if (part.name === 'code_execution') {\n toolName = codeExecutionToolName ?? 'code_execution';\n }\n\n // custom_tool_call uses 'input' field, others use 'arguments'\n const toolInput =\n part.type === 'custom_tool_call'\n ? (part.input ?? '')\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 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 default: {\n break;\n }\n }\n }\n\n return {\n content,\n finishReason: mapXaiResponsesFinishReason(response.status),\n usage: convertXaiResponsesUsage(response.usage),\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: Parameters<LanguageModelV3['doStream']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['doStream']>>> {\n const {\n args,\n warnings,\n webSearchToolName,\n xSearchToolName,\n codeExecutionToolName,\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 = 'unknown';\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 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 controller.enqueue({\n type: 'reasoning-start',\n id: blockId,\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 });\n\n return;\n }\n\n if (event.type === 'response.reasoning_summary_text.done') {\n const blockId = `reasoning-${event.item_id}`;\n\n controller.enqueue({\n type: 'reasoning-end',\n id: blockId,\n });\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 ) {\n const response = event.response;\n\n if (response.usage) {\n usage = convertXaiResponsesUsage(response.usage);\n }\n\n if (response.status) {\n finishReason = mapXaiResponsesFinishReason(response.status);\n }\n\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 (\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 ) {\n if (!seenToolCalls.has(part.id)) {\n seenToolCalls.add(part.id);\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 (webSearchSubTools.includes(part.name ?? '')) {\n toolName = webSearchToolName ?? 'web_search';\n } else if (xSearchSubTools.includes(part.name ?? '')) {\n toolName = xSearchToolName ?? 'x_search';\n } else if (part.name === 'code_execution') {\n toolName = codeExecutionToolName ?? 'code_execution';\n }\n\n // custom_tool_call uses 'input' field, others use 'arguments'\n const toolInput =\n part.type === 'custom_tool_call'\n ? (part.input ?? '')\n : (part.arguments ?? '');\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 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: contentPart.text,\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 (!seenToolCalls.has(part.call_id)) {\n seenToolCalls.add(part.call_id);\n\n controller.enqueue({\n type: 'tool-input-start',\n id: part.call_id,\n toolName: part.name,\n });\n\n controller.enqueue({\n type: 'tool-input-delta',\n id: part.call_id,\n delta: part.arguments,\n });\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({ type: 'finish', finishReason, usage: usage! });\n },\n }),\n ),\n request: { body },\n response: { headers: responseHeaders },\n };\n }\n}\n","import { SharedV3Warning, LanguageModelV3Message } from '@ai-sdk/provider';\nimport { XaiResponsesInput } 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 let userContent = '';\n\n for (const block of message.content) {\n switch (block.type) {\n case 'text': {\n userContent += block.text;\n break;\n }\n\n case 'file': {\n inputWarnings.push({\n type: 'other',\n message: `xAI Responses API does not support ${block.type} in user messages`,\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: userContent,\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 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 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 { LanguageModelV3Usage } from '@ai-sdk/provider';\nimport { 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 return {\n inputTokens: {\n total: usage.input_tokens,\n noCache: usage.input_tokens - cacheReadTokens,\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 { LanguageModelV3FinishReason } from '@ai-sdk/provider';\n\nexport function mapXaiResponsesFinishReason(\n finishReason: string | null | undefined,\n): LanguageModelV3FinishReason {\n switch (finishReason) {\n case 'stop':\n case 'completed':\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 'unknown';\n }\n}\n","import { z } from 'zod/v4';\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 XaiResponsesUserMessage = {\n role: 'user';\n content: string;\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 | { type: 'file_search' }\n | { type: 'mcp' }\n | {\n type: 'function';\n function: {\n name: string;\n description?: string;\n parameters: unknown;\n };\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 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('custom_tool_call'),\n ...toolCallSchema.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 }),\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,\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.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.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.completed'),\n item_id: z.string(),\n output_index: z.number(),\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'\n | 'grok-4-1-fast-reasoning'\n | 'grok-4-1-fast-non-reasoning'\n | 'grok-4'\n | 'grok-4-fast'\n | 'grok-4-fast-non-reasoning'\n | (string & {});\n\n/**\n * @see https://docs.x.ai/docs/api-reference#create-new-response\n */\nexport const xaiResponsesProviderOptions = 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 /**\n * Whether to store the input message(s) and model response for later retrieval.\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\nexport type XaiResponsesProviderOptions = z.infer<\n typeof xaiResponsesProviderOptions\n>;\n","import {\n LanguageModelV3CallOptions,\n SharedV3Warning,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { validateTypes } from '@ai-sdk/provider-utils';\nimport { webSearchArgsSchema } from '../tool/web-search';\nimport { xSearchArgsSchema } from '../tool/x-search';\nimport { XaiResponsesTool } from './xai-responses-api';\n\ntype XaiResponsesToolChoice =\n | 'auto'\n | 'none'\n | 'required'\n | { type: 'web_search' }\n | { type: 'x_search' }\n | { type: 'code_interpreter' }\n | { type: 'view_image' }\n | { type: 'view_x_video' }\n | { type: 'file_search' }\n | { type: 'mcp' }\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 xaiTools.push({\n type: 'file_search',\n });\n break;\n }\n\n case 'xai.mcp': {\n xaiTools.push({\n type: 'mcp',\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 function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\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 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 switch (selectedTool.id) {\n case 'xai.web_search':\n return {\n tools: xaiTools,\n toolChoice: { type: 'web_search' },\n toolWarnings,\n };\n case 'xai.x_search':\n return {\n tools: xaiTools,\n toolChoice: { type: 'x_search' },\n toolWarnings,\n };\n case 'xai.code_execution':\n return {\n tools: xaiTools,\n toolChoice: { type: 'code_interpreter' },\n toolWarnings,\n };\n case 'xai.view_image':\n return {\n tools: xaiTools,\n toolChoice: { type: 'view_image' },\n toolWarnings,\n };\n case 'xai.view_x_video':\n return {\n tools: xaiTools,\n toolChoice: { type: 'view_x_video' },\n toolWarnings,\n };\n case 'xai.file_search':\n return {\n tools: xaiTools,\n toolChoice: { type: 'file_search' },\n toolWarnings,\n };\n case 'xai.mcp':\n return {\n tools: xaiTools,\n toolChoice: { type: 'mcp' },\n toolWarnings,\n };\n default:\n toolWarnings.push({\n type: 'unsupported',\n feature: `provider-defined tool ${selectedTool.name}`,\n });\n return { tools: xaiTools, toolChoice: undefined, toolWarnings };\n }\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 {\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 Record<string, never>,\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 Record<string, never>,\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 { 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 { viewImage } from './view-image';\nimport { viewXVideo } from './view-x-video';\nimport { webSearch } from './web-search';\nimport { xSearch } from './x-search';\n\nexport { codeExecution, viewImage, viewXVideo, webSearch, xSearch };\n\nexport const xaiTools = {\n codeExecution,\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"],"mappings":"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","names":["z","z","UnsupportedFunctionalityError","xaiTools","xaiTools","_a","z","combineHeaders","createEventSourceResponseHandler","createJsonResponseHandler","parseProviderOptions","postJsonToApi","z","z","UnsupportedFunctionalityError","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","xaiTools","UnsupportedFunctionalityError","parseProviderOptions","xaiTools","postJsonToApi","combineHeaders","createJsonResponseHandler","createEventSourceResponseHandler","_a","response","createProviderToolFactoryWithOutputSchema","z","createProviderToolFactoryWithOutputSchema","z","createProviderToolFactoryWithOutputSchema","z"]}