@langchain/xai 1.3.4-dev-1771365493298 → 1.3.5

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,"file":"responses.js","names":[],"sources":["../../src/chat_models/responses.ts"],"sourcesContent":["import { CallbackManagerForLLMRun } from \"@langchain/core/callbacks/manager\";\nimport { AIMessage, BaseMessage } from \"@langchain/core/messages\";\nimport {\n BaseChatModel,\n type LangSmithParams,\n} from \"@langchain/core/language_models/chat_models\";\nimport { ChatGenerationChunk, type ChatResult } from \"@langchain/core/outputs\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport { Serialized } from \"@langchain/core/load/serializable\";\n\nimport type {\n ChatXAIResponsesCallOptions,\n ChatXAIResponsesInput,\n ChatXAIResponsesInvocationParams,\n XAIResponse,\n XAIResponsesCreateParams,\n XAIResponsesCreateParamsNonStreaming,\n XAIResponsesCreateParamsStreaming,\n XAIResponsesReasoning,\n XAIResponsesSearchParameters,\n XAIResponsesStreamEvent,\n XAIResponsesTool,\n} from \"./responses-types.js\";\n\nimport {\n convertMessagesToResponsesInput,\n convertResponseToAIMessage,\n convertStreamEventToChunk,\n extractTextFromOutput,\n} from \"../converters/responses.js\";\n\n// Re-export types for convenience\nexport type {\n ChatXAIResponsesCallOptions,\n ChatXAIResponsesInput,\n ChatXAIResponsesInvocationParams,\n};\n\n// ============================================================================\n// Main Class\n// ============================================================================\n\n/**\n * xAI Responses API chat model integration.\n *\n * This class provides access to xAI's Responses API, which offers enhanced\n * capabilities including built-in tools, reasoning, and search.\n *\n * @example\n * ```typescript\n * import { ChatXAIResponses } from \"@langchain/xai\";\n *\n * const llm = new ChatXAIResponses({\n * model: \"grok-3\",\n * temperature: 0.7,\n * });\n *\n * const result = await llm.invoke(\"What is the capital of France?\");\n * console.log(result.content);\n * ```\n */\nexport class ChatXAIResponses<\n CallOptions extends ChatXAIResponsesCallOptions = ChatXAIResponsesCallOptions,\n> extends BaseChatModel<CallOptions> {\n static lc_name() {\n return \"ChatXAIResponses\";\n }\n\n lc_serializable = true;\n\n lc_namespace = [\"langchain\", \"chat_models\", \"xai\"];\n\n get lc_secrets(): { [key: string]: string } | undefined {\n return {\n apiKey: \"XAI_API_KEY\",\n };\n }\n\n get lc_aliases(): { [key: string]: string } | undefined {\n return {\n apiKey: \"xai_api_key\",\n };\n }\n\n // -------------------------------------------------------------------------\n // Instance Properties\n // -------------------------------------------------------------------------\n\n apiKey: string;\n\n model: string;\n\n streaming: boolean;\n\n temperature?: number;\n\n topP?: number;\n\n maxOutputTokens?: number;\n\n store?: boolean;\n\n user?: string;\n\n baseURL: string;\n\n searchParameters?: XAIResponsesSearchParameters;\n\n reasoning?: XAIResponsesReasoning;\n\n tools?: XAIResponsesTool[];\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(fields?: ChatXAIResponsesInput) {\n super(fields ?? {});\n\n const apiKey = fields?.apiKey ?? getEnvironmentVariable(\"XAI_API_KEY\");\n if (!apiKey) {\n throw new Error(\n `xAI API key not found. Please set the XAI_API_KEY environment variable or provide the key in the \"apiKey\" field.`\n );\n }\n\n this.apiKey = apiKey;\n this.model = fields?.model ?? \"grok-3\";\n this.streaming = fields?.streaming ?? false;\n this.temperature = fields?.temperature;\n this.topP = fields?.topP;\n this.maxOutputTokens = fields?.maxOutputTokens;\n this.store = fields?.store;\n this.user = fields?.user;\n this.baseURL = fields?.baseURL ?? \"https://api.x.ai/v1\";\n this.searchParameters = fields?.searchParameters;\n this.reasoning = fields?.reasoning;\n this.tools = fields?.tools;\n }\n\n // -------------------------------------------------------------------------\n // Metadata Methods\n // -------------------------------------------------------------------------\n\n _llmType(): string {\n return \"xai-responses\";\n }\n\n override getLsParams(options: this[\"ParsedCallOptions\"]): LangSmithParams {\n const params = super.getLsParams(options);\n params.ls_provider = \"xai\";\n params.ls_model_name = this.model;\n params.ls_model_type = \"chat\";\n params.ls_temperature = this.temperature;\n params.ls_max_tokens = this.maxOutputTokens;\n return params;\n }\n\n override toJSON(): Serialized {\n const result = super.toJSON();\n\n if (\n \"kwargs\" in result &&\n typeof result.kwargs === \"object\" &&\n result.kwargs != null\n ) {\n delete (result.kwargs as Record<string, unknown>).apiKey;\n }\n\n return result;\n }\n\n // -------------------------------------------------------------------------\n // Invocation Params\n // -------------------------------------------------------------------------\n\n invocationParams(\n options?: this[\"ParsedCallOptions\"]\n ): ChatXAIResponsesInvocationParams {\n return {\n model: this.model,\n temperature: this.temperature,\n top_p: this.topP,\n max_output_tokens: this.maxOutputTokens,\n store: this.store,\n user: this.user,\n stream: this.streaming,\n previous_response_id: options?.previous_response_id,\n include: options?.include,\n text: options?.text,\n search_parameters: options?.search_parameters ?? this.searchParameters,\n reasoning: options?.reasoning ?? this.reasoning,\n tools: options?.tools ?? this.tools,\n tool_choice: options?.tool_choice,\n parallel_tool_calls: options?.parallel_tool_calls,\n };\n }\n\n // -------------------------------------------------------------------------\n // API Call Methods\n // -------------------------------------------------------------------------\n\n /**\n * Makes a request to the xAI Responses API.\n */\n protected async _makeRequest(\n request: XAIResponsesCreateParamsNonStreaming\n ): Promise<XAIResponse>;\n\n protected async _makeRequest(\n request: XAIResponsesCreateParamsStreaming\n ): Promise<AsyncIterable<XAIResponsesStreamEvent>>;\n\n protected async _makeRequest(\n request: XAIResponsesCreateParams\n ): Promise<XAIResponse | AsyncIterable<XAIResponsesStreamEvent>> {\n const url = `${this.baseURL}/responses`;\n\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.apiKey}`,\n };\n\n if (request.stream) {\n return this._makeStreamingRequest(url, headers, request);\n }\n\n const response = await this.caller.call(async () => {\n const res = await fetch(url, {\n method: \"POST\",\n headers,\n body: JSON.stringify(request),\n });\n\n if (!res.ok) {\n const errorBody = await res.text();\n throw new Error(\n `xAI API error: ${res.status} ${res.statusText} - ${errorBody}`\n );\n }\n\n return res.json();\n });\n\n return response as XAIResponse;\n }\n\n /**\n * Makes a streaming request to the xAI Responses API.\n */\n protected async *_makeStreamingRequest(\n url: string,\n headers: Record<string, string>,\n request: XAIResponsesCreateParams\n ): AsyncIterable<XAIResponsesStreamEvent> {\n const response = await this.caller.call(async () => {\n const res = await fetch(url, {\n method: \"POST\",\n headers,\n body: JSON.stringify(request),\n });\n\n if (!res.ok) {\n const errorBody = await res.text();\n throw new Error(\n `xAI API error: ${res.status} ${res.statusText} - ${errorBody}`\n );\n }\n\n return res;\n });\n\n const reader = response.body?.getReader();\n if (!reader) {\n throw new Error(\"No response body\");\n }\n\n const decoder = new TextDecoder();\n let buffer = \"\";\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n\n buffer += decoder.decode(value, { stream: true });\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() ?? \"\";\n\n for (const line of lines) {\n const trimmed = line.trim();\n if (!trimmed || trimmed === \"data: [DONE]\") continue;\n\n if (trimmed.startsWith(\"data: \")) {\n try {\n const data = JSON.parse(trimmed.slice(6));\n yield data as XAIResponsesStreamEvent;\n } catch {\n // Skip invalid JSON\n }\n }\n }\n }\n } finally {\n reader.releaseLock();\n }\n }\n\n // -------------------------------------------------------------------------\n // Generation Methods\n // -------------------------------------------------------------------------\n\n async _generate(\n messages: BaseMessage[],\n options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n options.signal?.throwIfAborted();\n const invocationParams = this.invocationParams(options);\n const input = convertMessagesToResponsesInput(messages);\n\n if (invocationParams.stream) {\n const stream = this._streamResponseChunks(messages, options, runManager);\n let finalChunk: ChatGenerationChunk | undefined;\n\n for await (const chunk of stream) {\n chunk.message.response_metadata = {\n ...chunk.generationInfo,\n ...chunk.message.response_metadata,\n };\n finalChunk = finalChunk?.concat(chunk) ?? chunk;\n }\n\n return {\n generations: finalChunk ? [finalChunk] : [],\n llmOutput: {\n estimatedTokenUsage: (finalChunk?.message as AIMessage | undefined)\n ?.usage_metadata,\n },\n };\n }\n\n const response = await this._makeRequest({\n input,\n ...invocationParams,\n stream: false,\n } as XAIResponsesCreateParamsNonStreaming);\n\n const aiMessage = convertResponseToAIMessage(response);\n const text = extractTextFromOutput(response.output);\n\n return {\n generations: [\n {\n text,\n message: aiMessage,\n },\n ],\n llmOutput: {\n id: response.id,\n estimatedTokenUsage: response.usage\n ? {\n promptTokens: response.usage.input_tokens,\n completionTokens: response.usage.output_tokens,\n totalTokens: response.usage.total_tokens,\n }\n : undefined,\n },\n };\n }\n\n async *_streamResponseChunks(\n messages: BaseMessage[],\n options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n const invocationParams = this.invocationParams(options);\n const input = convertMessagesToResponsesInput(messages);\n\n const streamIterable = await this._makeRequest({\n input,\n ...invocationParams,\n stream: true,\n } as XAIResponsesCreateParamsStreaming);\n\n for await (const event of streamIterable) {\n if (options.signal?.aborted) {\n return;\n }\n const chunk = convertStreamEventToChunk(event);\n if (chunk) {\n yield chunk;\n await runManager?.handleLLMNewToken(chunk.text || \"\", {\n prompt: 0,\n completion: 0,\n });\n }\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"responses.js","names":[],"sources":["../../src/chat_models/responses.ts"],"sourcesContent":["import { CallbackManagerForLLMRun } from \"@langchain/core/callbacks/manager\";\nimport { AIMessage, BaseMessage } from \"@langchain/core/messages\";\nimport {\n BaseChatModel,\n type LangSmithParams,\n} from \"@langchain/core/language_models/chat_models\";\nimport { ChatGenerationChunk, type ChatResult } from \"@langchain/core/outputs\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport { Serialized } from \"@langchain/core/load/serializable\";\n\nimport type {\n ChatXAIResponsesCallOptions,\n ChatXAIResponsesInput,\n ChatXAIResponsesInvocationParams,\n XAIResponse,\n XAIResponsesCreateParams,\n XAIResponsesCreateParamsNonStreaming,\n XAIResponsesCreateParamsStreaming,\n XAIResponsesReasoning,\n XAIResponsesSearchParameters,\n XAIResponsesStreamEvent,\n XAIResponsesTool,\n} from \"./responses-types.js\";\n\nimport {\n convertMessagesToResponsesInput,\n convertResponseToAIMessage,\n convertStreamEventToChunk,\n extractTextFromOutput,\n} from \"../converters/responses.js\";\n\n// Re-export types for convenience\nexport type {\n ChatXAIResponsesCallOptions,\n ChatXAIResponsesInput,\n ChatXAIResponsesInvocationParams,\n};\n\n// ============================================================================\n// Main Class\n// ============================================================================\n\n/**\n * xAI Responses API chat model integration.\n *\n * This class provides access to xAI's Responses API, which offers enhanced\n * capabilities including built-in tools, reasoning, and search.\n *\n * @example\n * ```typescript\n * import { ChatXAIResponses } from \"@langchain/xai\";\n *\n * const llm = new ChatXAIResponses({\n * model: \"grok-3\",\n * temperature: 0.7,\n * });\n *\n * const result = await llm.invoke(\"What is the capital of France?\");\n * console.log(result.content);\n * ```\n */\nexport class ChatXAIResponses<\n CallOptions extends ChatXAIResponsesCallOptions = ChatXAIResponsesCallOptions,\n> extends BaseChatModel<CallOptions> {\n static lc_name() {\n return \"ChatXAIResponses\";\n }\n\n lc_serializable = true;\n\n lc_namespace = [\"langchain\", \"chat_models\", \"xai\"];\n\n get lc_secrets(): { [key: string]: string } | undefined {\n return {\n apiKey: \"XAI_API_KEY\",\n };\n }\n\n get lc_aliases(): { [key: string]: string } | undefined {\n return {\n apiKey: \"xai_api_key\",\n };\n }\n\n // -------------------------------------------------------------------------\n // Instance Properties\n // -------------------------------------------------------------------------\n\n apiKey: string;\n\n model: string;\n\n streaming: boolean;\n\n temperature?: number;\n\n topP?: number;\n\n maxOutputTokens?: number;\n\n store?: boolean;\n\n user?: string;\n\n baseURL: string;\n\n searchParameters?: XAIResponsesSearchParameters;\n\n reasoning?: XAIResponsesReasoning;\n\n tools?: XAIResponsesTool[];\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(model: string, fields?: Omit<ChatXAIResponsesInput, \"model\">);\n constructor(fields?: ChatXAIResponsesInput);\n constructor(\n modelOrFields?: string | ChatXAIResponsesInput,\n fieldsArg?: Omit<ChatXAIResponsesInput, \"model\">\n ) {\n const fields =\n typeof modelOrFields === \"string\"\n ? { ...(fieldsArg ?? {}), model: modelOrFields }\n : (modelOrFields ?? {});\n super(fields);\n\n const apiKey = fields?.apiKey ?? getEnvironmentVariable(\"XAI_API_KEY\");\n if (!apiKey) {\n throw new Error(\n `xAI API key not found. Please set the XAI_API_KEY environment variable or provide the key in the \"apiKey\" field.`\n );\n }\n\n this.apiKey = apiKey;\n this.model = fields?.model ?? \"grok-3\";\n this.streaming = fields?.streaming ?? false;\n this.temperature = fields?.temperature;\n this.topP = fields?.topP;\n this.maxOutputTokens = fields?.maxOutputTokens;\n this.store = fields?.store;\n this.user = fields?.user;\n this.baseURL = fields?.baseURL ?? \"https://api.x.ai/v1\";\n this.searchParameters = fields?.searchParameters;\n this.reasoning = fields?.reasoning;\n this.tools = fields?.tools;\n }\n\n // -------------------------------------------------------------------------\n // Metadata Methods\n // -------------------------------------------------------------------------\n\n _llmType(): string {\n return \"xai-responses\";\n }\n\n override getLsParams(options: this[\"ParsedCallOptions\"]): LangSmithParams {\n const params = super.getLsParams(options);\n params.ls_provider = \"xai\";\n params.ls_model_name = this.model;\n params.ls_model_type = \"chat\";\n params.ls_temperature = this.temperature;\n params.ls_max_tokens = this.maxOutputTokens;\n return params;\n }\n\n override toJSON(): Serialized {\n const result = super.toJSON();\n\n if (\n \"kwargs\" in result &&\n typeof result.kwargs === \"object\" &&\n result.kwargs != null\n ) {\n delete (result.kwargs as Record<string, unknown>).apiKey;\n }\n\n return result;\n }\n\n // -------------------------------------------------------------------------\n // Invocation Params\n // -------------------------------------------------------------------------\n\n invocationParams(\n options?: this[\"ParsedCallOptions\"]\n ): ChatXAIResponsesInvocationParams {\n return {\n model: this.model,\n temperature: this.temperature,\n top_p: this.topP,\n max_output_tokens: this.maxOutputTokens,\n store: this.store,\n user: this.user,\n stream: this.streaming,\n previous_response_id: options?.previous_response_id,\n include: options?.include,\n text: options?.text,\n search_parameters: options?.search_parameters ?? this.searchParameters,\n reasoning: options?.reasoning ?? this.reasoning,\n tools: options?.tools ?? this.tools,\n tool_choice: options?.tool_choice,\n parallel_tool_calls: options?.parallel_tool_calls,\n };\n }\n\n // -------------------------------------------------------------------------\n // API Call Methods\n // -------------------------------------------------------------------------\n\n /**\n * Makes a request to the xAI Responses API.\n */\n protected async _makeRequest(\n request: XAIResponsesCreateParamsNonStreaming\n ): Promise<XAIResponse>;\n\n protected async _makeRequest(\n request: XAIResponsesCreateParamsStreaming\n ): Promise<AsyncIterable<XAIResponsesStreamEvent>>;\n\n protected async _makeRequest(\n request: XAIResponsesCreateParams\n ): Promise<XAIResponse | AsyncIterable<XAIResponsesStreamEvent>> {\n const url = `${this.baseURL}/responses`;\n\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.apiKey}`,\n };\n\n if (request.stream) {\n return this._makeStreamingRequest(url, headers, request);\n }\n\n const response = await this.caller.call(async () => {\n const res = await fetch(url, {\n method: \"POST\",\n headers,\n body: JSON.stringify(request),\n });\n\n if (!res.ok) {\n const errorBody = await res.text();\n throw new Error(\n `xAI API error: ${res.status} ${res.statusText} - ${errorBody}`\n );\n }\n\n return res.json();\n });\n\n return response as XAIResponse;\n }\n\n /**\n * Makes a streaming request to the xAI Responses API.\n */\n protected async *_makeStreamingRequest(\n url: string,\n headers: Record<string, string>,\n request: XAIResponsesCreateParams\n ): AsyncIterable<XAIResponsesStreamEvent> {\n const response = await this.caller.call(async () => {\n const res = await fetch(url, {\n method: \"POST\",\n headers,\n body: JSON.stringify(request),\n });\n\n if (!res.ok) {\n const errorBody = await res.text();\n throw new Error(\n `xAI API error: ${res.status} ${res.statusText} - ${errorBody}`\n );\n }\n\n return res;\n });\n\n const reader = response.body?.getReader();\n if (!reader) {\n throw new Error(\"No response body\");\n }\n\n const decoder = new TextDecoder();\n let buffer = \"\";\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n\n buffer += decoder.decode(value, { stream: true });\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() ?? \"\";\n\n for (const line of lines) {\n const trimmed = line.trim();\n if (!trimmed || trimmed === \"data: [DONE]\") continue;\n\n if (trimmed.startsWith(\"data: \")) {\n try {\n const data = JSON.parse(trimmed.slice(6));\n yield data as XAIResponsesStreamEvent;\n } catch {\n // Skip invalid JSON\n }\n }\n }\n }\n } finally {\n reader.releaseLock();\n }\n }\n\n // -------------------------------------------------------------------------\n // Generation Methods\n // -------------------------------------------------------------------------\n\n async _generate(\n messages: BaseMessage[],\n options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n options.signal?.throwIfAborted();\n const invocationParams = this.invocationParams(options);\n const input = convertMessagesToResponsesInput(messages);\n\n if (invocationParams.stream) {\n const stream = this._streamResponseChunks(messages, options, runManager);\n let finalChunk: ChatGenerationChunk | undefined;\n\n for await (const chunk of stream) {\n chunk.message.response_metadata = {\n ...chunk.generationInfo,\n ...chunk.message.response_metadata,\n };\n finalChunk = finalChunk?.concat(chunk) ?? chunk;\n }\n\n return {\n generations: finalChunk ? [finalChunk] : [],\n llmOutput: {\n estimatedTokenUsage: (finalChunk?.message as AIMessage | undefined)\n ?.usage_metadata,\n },\n };\n }\n\n const response = await this._makeRequest({\n input,\n ...invocationParams,\n stream: false,\n } as XAIResponsesCreateParamsNonStreaming);\n\n const aiMessage = convertResponseToAIMessage(response);\n const text = extractTextFromOutput(response.output);\n\n return {\n generations: [\n {\n text,\n message: aiMessage,\n },\n ],\n llmOutput: {\n id: response.id,\n estimatedTokenUsage: response.usage\n ? {\n promptTokens: response.usage.input_tokens,\n completionTokens: response.usage.output_tokens,\n totalTokens: response.usage.total_tokens,\n }\n : undefined,\n },\n };\n }\n\n async *_streamResponseChunks(\n messages: BaseMessage[],\n options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n const invocationParams = this.invocationParams(options);\n const input = convertMessagesToResponsesInput(messages);\n\n const streamIterable = await this._makeRequest({\n input,\n ...invocationParams,\n stream: true,\n } as XAIResponsesCreateParamsStreaming);\n\n for await (const event of streamIterable) {\n if (options.signal?.aborted) {\n return;\n }\n const chunk = convertStreamEventToChunk(event);\n if (chunk) {\n yield chunk;\n await runManager?.handleLLMNewToken(chunk.text || \"\", {\n prompt: 0,\n completion: 0,\n });\n }\n }\n }\n}\n"],"mappings":"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"}
package/dist/profiles.cjs CHANGED
@@ -1,13 +1,13 @@
1
1
 
2
2
  //#region src/profiles.ts
3
3
  const PROFILES = {
4
- "grok-4-fast-non-reasoning": {
5
- maxInputTokens: 2e6,
6
- imageInputs: true,
4
+ "grok-2-1212": {
5
+ maxInputTokens: 131072,
6
+ imageInputs: false,
7
7
  audioInputs: false,
8
8
  pdfInputs: false,
9
9
  videoInputs: false,
10
- maxOutputTokens: 3e4,
10
+ maxOutputTokens: 8192,
11
11
  reasoningOutput: false,
12
12
  imageOutputs: false,
13
13
  audioOutputs: false,
@@ -15,7 +15,7 @@ const PROFILES = {
15
15
  toolCalling: true,
16
16
  structuredOutput: false
17
17
  },
18
- "grok-3-fast": {
18
+ "grok-2": {
19
19
  maxInputTokens: 131072,
20
20
  imageInputs: false,
21
21
  audioInputs: false,
@@ -29,14 +29,14 @@ const PROFILES = {
29
29
  toolCalling: true,
30
30
  structuredOutput: false
31
31
  },
32
- "grok-4": {
33
- maxInputTokens: 256e3,
32
+ "grok-3-fast-latest": {
33
+ maxInputTokens: 131072,
34
34
  imageInputs: false,
35
35
  audioInputs: false,
36
36
  pdfInputs: false,
37
37
  videoInputs: false,
38
- maxOutputTokens: 64e3,
39
- reasoningOutput: true,
38
+ maxOutputTokens: 8192,
39
+ reasoningOutput: false,
40
40
  imageOutputs: false,
41
41
  audioOutputs: false,
42
42
  videoOutputs: false,
@@ -57,6 +57,20 @@ const PROFILES = {
57
57
  toolCalling: true,
58
58
  structuredOutput: false
59
59
  },
60
+ "grok-3": {
61
+ maxInputTokens: 131072,
62
+ imageInputs: false,
63
+ audioInputs: false,
64
+ pdfInputs: false,
65
+ videoInputs: false,
66
+ maxOutputTokens: 8192,
67
+ reasoningOutput: false,
68
+ imageOutputs: false,
69
+ audioOutputs: false,
70
+ videoOutputs: false,
71
+ toolCalling: true,
72
+ structuredOutput: false
73
+ },
60
74
  "grok-code-fast-1": {
61
75
  maxInputTokens: 256e3,
62
76
  imageInputs: false,
@@ -71,13 +85,13 @@ const PROFILES = {
71
85
  toolCalling: true,
72
86
  structuredOutput: false
73
87
  },
74
- "grok-2": {
75
- maxInputTokens: 131072,
76
- imageInputs: false,
88
+ "grok-2-vision-1212": {
89
+ maxInputTokens: 8192,
90
+ imageInputs: true,
77
91
  audioInputs: false,
78
92
  pdfInputs: false,
79
93
  videoInputs: false,
80
- maxOutputTokens: 8192,
94
+ maxOutputTokens: 4096,
81
95
  reasoningOutput: false,
82
96
  imageOutputs: false,
83
97
  audioOutputs: false,
@@ -85,23 +99,23 @@ const PROFILES = {
85
99
  toolCalling: true,
86
100
  structuredOutput: false
87
101
  },
88
- "grok-3-mini-fast-latest": {
89
- maxInputTokens: 131072,
90
- imageInputs: false,
102
+ "grok-4-1-fast-non-reasoning": {
103
+ maxInputTokens: 2e6,
104
+ imageInputs: true,
91
105
  audioInputs: false,
92
106
  pdfInputs: false,
93
107
  videoInputs: false,
94
- maxOutputTokens: 8192,
95
- reasoningOutput: true,
108
+ maxOutputTokens: 3e4,
109
+ reasoningOutput: false,
96
110
  imageOutputs: false,
97
111
  audioOutputs: false,
98
112
  videoOutputs: false,
99
113
  toolCalling: true,
100
114
  structuredOutput: false
101
115
  },
102
- "grok-2-vision-1212": {
103
- maxInputTokens: 8192,
104
- imageInputs: true,
116
+ "grok-beta": {
117
+ maxInputTokens: 131072,
118
+ imageInputs: false,
105
119
  audioInputs: false,
106
120
  pdfInputs: false,
107
121
  videoInputs: false,
@@ -113,14 +127,14 @@ const PROFILES = {
113
127
  toolCalling: true,
114
128
  structuredOutput: false
115
129
  },
116
- "grok-3": {
130
+ "grok-3-mini-fast": {
117
131
  maxInputTokens: 131072,
118
132
  imageInputs: false,
119
133
  audioInputs: false,
120
134
  pdfInputs: false,
121
135
  videoInputs: false,
122
136
  maxOutputTokens: 8192,
123
- reasoningOutput: false,
137
+ reasoningOutput: true,
124
138
  imageOutputs: false,
125
139
  audioOutputs: false,
126
140
  videoOutputs: false,
@@ -141,21 +155,21 @@ const PROFILES = {
141
155
  toolCalling: true,
142
156
  structuredOutput: false
143
157
  },
144
- "grok-2-latest": {
145
- maxInputTokens: 131072,
158
+ "grok-4": {
159
+ maxInputTokens: 256e3,
146
160
  imageInputs: false,
147
161
  audioInputs: false,
148
162
  pdfInputs: false,
149
163
  videoInputs: false,
150
- maxOutputTokens: 8192,
151
- reasoningOutput: false,
164
+ maxOutputTokens: 64e3,
165
+ reasoningOutput: true,
152
166
  imageOutputs: false,
153
167
  audioOutputs: false,
154
168
  videoOutputs: false,
155
169
  toolCalling: true,
156
170
  structuredOutput: false
157
171
  },
158
- "grok-2-1212": {
172
+ "grok-3-latest": {
159
173
  maxInputTokens: 131072,
160
174
  imageInputs: false,
161
175
  audioInputs: false,
@@ -169,27 +183,27 @@ const PROFILES = {
169
183
  toolCalling: true,
170
184
  structuredOutput: false
171
185
  },
172
- "grok-3-fast-latest": {
173
- maxInputTokens: 131072,
174
- imageInputs: false,
186
+ "grok-4-1-fast": {
187
+ maxInputTokens: 2e6,
188
+ imageInputs: true,
175
189
  audioInputs: false,
176
190
  pdfInputs: false,
177
191
  videoInputs: false,
178
- maxOutputTokens: 8192,
179
- reasoningOutput: false,
192
+ maxOutputTokens: 3e4,
193
+ reasoningOutput: true,
180
194
  imageOutputs: false,
181
195
  audioOutputs: false,
182
196
  videoOutputs: false,
183
197
  toolCalling: true,
184
198
  structuredOutput: false
185
199
  },
186
- "grok-3-latest": {
187
- maxInputTokens: 131072,
188
- imageInputs: false,
200
+ "grok-2-vision-latest": {
201
+ maxInputTokens: 8192,
202
+ imageInputs: true,
189
203
  audioInputs: false,
190
204
  pdfInputs: false,
191
205
  videoInputs: false,
192
- maxOutputTokens: 8192,
206
+ maxOutputTokens: 4096,
193
207
  reasoningOutput: false,
194
208
  imageOutputs: false,
195
209
  audioOutputs: false,
@@ -197,35 +211,35 @@ const PROFILES = {
197
211
  toolCalling: true,
198
212
  structuredOutput: false
199
213
  },
200
- "grok-2-vision-latest": {
201
- maxInputTokens: 8192,
202
- imageInputs: true,
214
+ "grok-3-mini-latest": {
215
+ maxInputTokens: 131072,
216
+ imageInputs: false,
203
217
  audioInputs: false,
204
218
  pdfInputs: false,
205
219
  videoInputs: false,
206
- maxOutputTokens: 4096,
207
- reasoningOutput: false,
220
+ maxOutputTokens: 8192,
221
+ reasoningOutput: true,
208
222
  imageOutputs: false,
209
223
  audioOutputs: false,
210
224
  videoOutputs: false,
211
225
  toolCalling: true,
212
226
  structuredOutput: false
213
227
  },
214
- "grok-vision-beta": {
215
- maxInputTokens: 8192,
216
- imageInputs: true,
228
+ "grok-3-mini": {
229
+ maxInputTokens: 131072,
230
+ imageInputs: false,
217
231
  audioInputs: false,
218
232
  pdfInputs: false,
219
233
  videoInputs: false,
220
- maxOutputTokens: 4096,
221
- reasoningOutput: false,
234
+ maxOutputTokens: 8192,
235
+ reasoningOutput: true,
222
236
  imageOutputs: false,
223
237
  audioOutputs: false,
224
238
  videoOutputs: false,
225
239
  toolCalling: true,
226
240
  structuredOutput: false
227
241
  },
228
- "grok-3-mini": {
242
+ "grok-3-mini-fast-latest": {
229
243
  maxInputTokens: 131072,
230
244
  imageInputs: false,
231
245
  audioInputs: false,
@@ -239,13 +253,13 @@ const PROFILES = {
239
253
  toolCalling: true,
240
254
  structuredOutput: false
241
255
  },
242
- "grok-beta": {
256
+ "grok-2-latest": {
243
257
  maxInputTokens: 131072,
244
258
  imageInputs: false,
245
259
  audioInputs: false,
246
260
  pdfInputs: false,
247
261
  videoInputs: false,
248
- maxOutputTokens: 4096,
262
+ maxOutputTokens: 8192,
249
263
  reasoningOutput: false,
250
264
  imageOutputs: false,
251
265
  audioOutputs: false,
@@ -253,28 +267,42 @@ const PROFILES = {
253
267
  toolCalling: true,
254
268
  structuredOutput: false
255
269
  },
256
- "grok-3-mini-latest": {
257
- maxInputTokens: 131072,
258
- imageInputs: false,
270
+ "grok-4-fast-non-reasoning": {
271
+ maxInputTokens: 2e6,
272
+ imageInputs: true,
259
273
  audioInputs: false,
260
274
  pdfInputs: false,
261
275
  videoInputs: false,
262
- maxOutputTokens: 8192,
263
- reasoningOutput: true,
276
+ maxOutputTokens: 3e4,
277
+ reasoningOutput: false,
264
278
  imageOutputs: false,
265
279
  audioOutputs: false,
266
280
  videoOutputs: false,
267
281
  toolCalling: true,
268
282
  structuredOutput: false
269
283
  },
270
- "grok-3-mini-fast": {
284
+ "grok-vision-beta": {
285
+ maxInputTokens: 8192,
286
+ imageInputs: true,
287
+ audioInputs: false,
288
+ pdfInputs: false,
289
+ videoInputs: false,
290
+ maxOutputTokens: 4096,
291
+ reasoningOutput: false,
292
+ imageOutputs: false,
293
+ audioOutputs: false,
294
+ videoOutputs: false,
295
+ toolCalling: true,
296
+ structuredOutput: false
297
+ },
298
+ "grok-3-fast": {
271
299
  maxInputTokens: 131072,
272
300
  imageInputs: false,
273
301
  audioInputs: false,
274
302
  pdfInputs: false,
275
303
  videoInputs: false,
276
304
  maxOutputTokens: 8192,
277
- reasoningOutput: true,
305
+ reasoningOutput: false,
278
306
  imageOutputs: false,
279
307
  audioOutputs: false,
280
308
  videoOutputs: false,
@@ -1 +1 @@
1
- {"version":3,"file":"profiles.cjs","names":[],"sources":["../src/profiles.ts"],"sourcesContent":["/**\n * This file was automatically generated by an automated script. Do not edit manually.\n */\nimport type { ModelProfile } from \"@langchain/core/language_models/profile\";\nconst PROFILES: Record<string, ModelProfile> = {\n \"grok-4-fast-non-reasoning\": {\n maxInputTokens: 2000000,\n imageInputs: true,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 30000,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-3-fast\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-4\": {\n maxInputTokens: 256000,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 64000,\n reasoningOutput: true,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-2-vision\": {\n maxInputTokens: 8192,\n imageInputs: true,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 4096,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-code-fast-1\": {\n maxInputTokens: 256000,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 10000,\n reasoningOutput: true,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-2\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-3-mini-fast-latest\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: true,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-2-vision-1212\": {\n maxInputTokens: 8192,\n imageInputs: true,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 4096,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-3\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-4-fast\": {\n maxInputTokens: 2000000,\n imageInputs: true,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 30000,\n reasoningOutput: true,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-2-latest\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-2-1212\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-3-fast-latest\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-3-latest\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-2-vision-latest\": {\n maxInputTokens: 8192,\n imageInputs: true,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 4096,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-vision-beta\": {\n maxInputTokens: 8192,\n imageInputs: true,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 4096,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-3-mini\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: true,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-beta\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 4096,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-3-mini-latest\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: true,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-3-mini-fast\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: true,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n};\nexport default PROFILES;\n"],"mappings":";;AAIA,MAAM,WAAyC;CAC7C,6BAA6B;EAC3B,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,eAAe;EACb,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,UAAU;EACR,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,iBAAiB;EACf,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,oBAAoB;EAClB,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,UAAU;EACR,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,2BAA2B;EACzB,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,sBAAsB;EACpB,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,UAAU;EACR,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,eAAe;EACb,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,iBAAiB;EACf,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,eAAe;EACb,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,sBAAsB;EACpB,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,iBAAiB;EACf,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,wBAAwB;EACtB,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,oBAAoB;EAClB,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,eAAe;EACb,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,aAAa;EACX,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,sBAAsB;EACpB,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,oBAAoB;EAClB,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACF"}
1
+ {"version":3,"file":"profiles.cjs","names":[],"sources":["../src/profiles.ts"],"sourcesContent":["/**\n * This file was automatically generated by an automated script. Do not edit manually.\n */\nimport type { ModelProfile } from \"@langchain/core/language_models/profile\";\nconst PROFILES: Record<string, ModelProfile> = {\n \"grok-2-1212\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-2\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-3-fast-latest\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-2-vision\": {\n maxInputTokens: 8192,\n imageInputs: true,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 4096,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-3\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-code-fast-1\": {\n maxInputTokens: 256000,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 10000,\n reasoningOutput: true,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-2-vision-1212\": {\n maxInputTokens: 8192,\n imageInputs: true,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 4096,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-4-1-fast-non-reasoning\": {\n maxInputTokens: 2000000,\n imageInputs: true,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 30000,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-beta\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 4096,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-3-mini-fast\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: true,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-4-fast\": {\n maxInputTokens: 2000000,\n imageInputs: true,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 30000,\n reasoningOutput: true,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-4\": {\n maxInputTokens: 256000,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 64000,\n reasoningOutput: true,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-3-latest\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-4-1-fast\": {\n maxInputTokens: 2000000,\n imageInputs: true,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 30000,\n reasoningOutput: true,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-2-vision-latest\": {\n maxInputTokens: 8192,\n imageInputs: true,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 4096,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-3-mini-latest\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: true,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-3-mini\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: true,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-3-mini-fast-latest\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: true,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-2-latest\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-4-fast-non-reasoning\": {\n maxInputTokens: 2000000,\n imageInputs: true,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 30000,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-vision-beta\": {\n maxInputTokens: 8192,\n imageInputs: true,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 4096,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n \"grok-3-fast\": {\n maxInputTokens: 131072,\n imageInputs: false,\n audioInputs: false,\n pdfInputs: false,\n videoInputs: false,\n maxOutputTokens: 8192,\n reasoningOutput: false,\n imageOutputs: false,\n audioOutputs: false,\n videoOutputs: false,\n toolCalling: true,\n structuredOutput: false,\n },\n};\nexport default PROFILES;\n"],"mappings":";;AAIA,MAAM,WAAyC;CAC7C,eAAe;EACb,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,UAAU;EACR,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,sBAAsB;EACpB,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,iBAAiB;EACf,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,UAAU;EACR,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,oBAAoB;EAClB,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,sBAAsB;EACpB,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,+BAA+B;EAC7B,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,aAAa;EACX,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,oBAAoB;EAClB,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,eAAe;EACb,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,UAAU;EACR,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,iBAAiB;EACf,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,iBAAiB;EACf,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,wBAAwB;EACtB,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,sBAAsB;EACpB,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,eAAe;EACb,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,2BAA2B;EACzB,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,iBAAiB;EACf,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,6BAA6B;EAC3B,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,oBAAoB;EAClB,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACD,eAAe;EACb,gBAAgB;EAChB,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,iBAAiB;EACjB,cAAc;EACd,cAAc;EACd,cAAc;EACd,aAAa;EACb,kBAAkB;EACnB;CACF"}