> ## Documentation Index
> Fetch the complete documentation index at: https://sourcebot-brendan-scim-user-provisioning.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Language Model Providers

<Note>
  Looking to self-host your own model? Check out the [OpenAI Compatible](#openai-compatible) provider.
</Note>

To use [Ask Sourcebot](/docs/features/ask) you must define at least one Language Model Provider. These providers are defined within the [config file](/docs/configuration/config-file) you
provide Sourcebot.

```json wrap icon="code" Example config with language model provider theme={null}
{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "models": [
        // 1. Google Vertex config for Gemini 2.5 Pro
        {
            "provider": "google-vertex",
            "model": "gemini-2.5-pro",
            "displayName": "Gemini 2.5 Pro",
            "project": "sourcebot",
            "credentials": {
                "env": "GOOGLE_APPLICATION_CREDENTIALS"
            }
        },
        // 2. OpenAI config for o3 
        {
            "provider": "openai",
            "model": "o3",
            "displayName": "o3",
            "token": {
                "env": "OPENAI_API_KEY"
            }
        }
    ]
}
```

# Supported Providers

Sourcebot uses the [Vercel AI SDK](https://ai-sdk.dev/docs/introduction), so it can integrate with any provider the SDK supports. If you don't see your provider below please submit
a [feature request](https://github.com/sourcebot-dev/sourcebot/issues/new?template=feature_request.md).

For a detailed description of all the providers, please refer to the [schema](https://github.com/sourcebot-dev/sourcebot/blob/main/schemas/v3/languageModel.json).

<Note>Any parameter defined using `env` will read the value from the corresponding environment variable you provide Sourcebot</Note>

### Amazon Bedrock

[Vercel AI SDK Amazon Bedrock Docs](https://ai-sdk.dev/providers/ai-sdk-providers/amazon-bedrock)

```json wrap icon="code" Example config with Amazon Bedrock provider theme={null}
{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "models": [
        {
            "provider": "amazon-bedrock",
            "model": "YOUR_MODEL_HERE",
            "displayName": "OPTIONAL_DISPLAY_NAME",
            "accessKeyId": {
                "env": "AWS_ACCESS_KEY_ID"
            },
            "accessKeySecret": {
                "env": "AWS_SECRET_ACCESS_KEY"
            },
            "sessionToken": {
                "env": "AWS_SESSION_TOKEN"
            },
            "region": "YOUR_REGION_HERE", // defaults to the AWS_REGION env var if not set
            "baseUrl": "OPTIONAL_BASE_URL"
        }
    ] 
}
```

### Anthropic

[Vercel AI SDK Anthropic Docs](https://ai-sdk.dev/providers/ai-sdk-providers/anthropic)

```json wrap icon="code" Example config with Anthropic provider theme={null}
{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "models": [
        {
            "provider": "anthropic",
            "model": "YOUR_MODEL_HERE",
            "displayName": "OPTIONAL_DISPLAY_NAME",
            // Auth can be provided via a API key that is sent using the `x-api-key` header...
            "token": {
                "env": "ANTHROPIC_API_KEY"
            },
            // ...or via a auth token sent using the `Authorization: Bearer` header.
            "authToken": {
                "env": "ANTHROPIC_AUTH_TOKEN"
            },
            "baseUrl": "OPTIONAL_BASE_URL"
        }
    ] 
}
```

### Azure OpenAI

[Vercel AI SDK Azure OpenAI Docs](https://ai-sdk.dev/providers/ai-sdk-providers/azure)

The `model` field should be set to your Azure OpenAI deployment name. Either `resourceName` or `baseUrl` must be set. The `resourceName` is used to construct the URL `https://{resourceName}.openai.azure.com/openai/v1{path}`. If `baseUrl` is provided, `resourceName` is ignored.

The `reasoningSummary` field controls whether the model returns its reasoning process. Set to `auto` for a condensed summary, `detailed` for more comprehensive reasoning, or `none` to disable. Defaults to `auto`.

```json wrap icon="code" Example config with Azure AI provider theme={null}
{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "models": [
        {
            "provider": "azure",
            "model": "YOUR_DEPLOYMENT_NAME",
            "displayName": "OPTIONAL_DISPLAY_NAME",
            "resourceName": "YOUR_RESOURCE_NAME", // defaults to the AZURE_RESOURCE_NAME env var if not set
            "apiVersion": "OPTIONAL_API_VERSION",
            "token": {
                "env": "AZURE_API_KEY"
            },
            "baseUrl": "OPTIONAL_BASE_URL", // use instead of resourceName for custom endpoints
            "reasoningEffort": "OPTIONAL_REASONING_EFFORT", // defaults to "medium"
            "reasoningSummary": "auto" // "auto" | "detailed" | "none". Defaults to "auto"
        }
    ] 
}
```

### Deepseek

[Vercel AI SDK Deepseek Docs](https://ai-sdk.dev/providers/ai-sdk-providers/deepseek)

```json wrap icon="code" Example config with Deepseek provider theme={null}
{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "models": [
        {
            "provider": "deepseek",
            "model": "YOUR_MODEL_HERE",
            "displayName": "OPTIONAL_DISPLAY_NAME",
            "token": {
                "env": "DEEPSEEK_API_KEY"
            },
            "baseUrl": "OPTIONAL_BASE_URL"
        }
    ] 
}
```

### Google Generative AI

[Vercel AI SDK Google Generative AI Docs](https://ai-sdk.dev/providers/ai-sdk-providers/google-generative-ai)

The `thinkingLevel` field controls the depth of reasoning for Gemini 3 models. Valid values are `minimal`, `low`, `medium`, and `high`. See [thinking levels](https://ai.google.dev/gemini-api/docs/thinking#thinking-levels).

The `thinkingBudget` field sets the number of thinking tokens for Gemini 2.5 models. Set to `-1` for dynamic thinking. See [thinking budget](https://ai.google.dev/gemini-api/docs/thinking#set-budget).

```json wrap icon="code" Example config with Google Generative AI provider theme={null}
{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "models": [
        {
            "provider": "google-generative-ai",
            "model": "YOUR_MODEL_HERE",
            "displayName": "OPTIONAL_DISPLAY_NAME",
            "token": {
                "env": "GOOGLE_GENERATIVE_AI_API_KEY"
            },
            "baseUrl": "OPTIONAL_BASE_URL",
            "thinkingLevel": "high", // "minimal" | "low" | "medium" | "high" (Gemini 3 models)
            "thinkingBudget": -1 // number of thinking tokens, -1 for dynamic (Gemini 2.5 models)
        }
    ] 
}
```

### Google Vertex

<Note>If you're using an Anthropic model on Google Vertex, you must define a [Google Vertex Anthropic](#google-vertex-anthropic) provider instead</Note>
<Note>The `credentials` parameter here expects a **path** to a [credentials](https://console.cloud.google.com/apis/credentials) file. This file **must be in a volume mounted by Sourcebot** for it to be readable.</Note>

[Vercel AI SDK Google Vertex AI Docs](https://ai-sdk.dev/providers/ai-sdk-providers/google-vertex)

The `thinkingLevel` field controls the depth of reasoning for Gemini 3 models. Valid values are `minimal`, `low`, `medium`, and `high`. See [thinking levels](https://ai.google.dev/gemini-api/docs/thinking#thinking-levels).

The `thinkingBudget` field sets the number of thinking tokens for Gemini 2.5 models. Set to `-1` for dynamic thinking. See [thinking budget](https://ai.google.dev/gemini-api/docs/thinking#set-budget).

```json wrap icon="code" Example config with Google Vertex provider theme={null}
{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "models": [
        {
            "provider": "google-vertex",
            "model": "YOUR_MODEL_HERE",
            "displayName": "OPTIONAL_DISPLAY_NAME",
            "project": "YOUR_PROJECT_ID", // defaults to the GOOGLE_VERTEX_PROJECT env var if not set
            "region": "YOUR_REGION_HERE", // defaults to the GOOGLE_VERTEX_REGION env var if not set
            "credentials": {
                "env": "GOOGLE_APPLICATION_CREDENTIALS"
            },
            "baseUrl": "OPTIONAL_BASE_URL",
            "thinkingLevel": "high", // "minimal" | "low" | "medium" | "high" (Gemini 3 models)
            "thinkingBudget": -1 // number of thinking tokens, -1 for dynamic (Gemini 2.5 models)
        }
    ] 
}
```

### Google Vertex Anthropic

<Note>The `credentials` parameter here expects a **path** to a [credentials](https://console.cloud.google.com/apis/credentials) file. This file **must be in a volume mounted by Sourcebot** for it to be readable.</Note>

[Vercel AI SDK Google Vertex Anthropic Docs](https://ai-sdk.dev/providers/ai-sdk-providers/google-vertex#google-vertex-anthropic-provider-usage)

```json wrap icon="code" Example config with Google Vertex Anthropic provider theme={null}
{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "models": [
        {
            "provider": "google-vertex-anthropic",
            "model": "YOUR_MODEL_HERE",
            "displayName": "OPTIONAL_DISPLAY_NAME",
            "project": "YOUR_PROJECT_ID", // defaults to the GOOGLE_VERTEX_PROJECT env var if not set
            "region": "YOUR_REGION_HERE", // defaults to the GOOGLE_VERTEX_REGION env var if not set
            "credentials": {
                "env": "GOOGLE_APPLICATION_CREDENTIALS"
            },
            "baseUrl": "OPTIONAL_BASE_URL"
        }
    ] 
}
```

### Mistral

[Vercel AI SDK Mistral Docs](https://ai-sdk.dev/providers/ai-sdk-providers/mistral)

```json wrap icon="code" Example config with Mistral provider theme={null}
{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "models": [
        {
            "provider": "mistral",
            "model": "YOUR_MODEL_HERE",
            "displayName": "OPTIONAL_DISPLAY_NAME",
            "token": {
                "env": "MISTRAL_API_KEY"
            },
            "baseUrl": "OPTIONAL_BASE_URL"
        }
    ] 
}
```

### OpenAI

[Vercel AI SDK OpenAI Docs](https://ai-sdk.dev/providers/ai-sdk-providers/openai)

The `reasoningSummary` field controls whether the model returns its reasoning process. Set to `auto` for a condensed summary, `detailed` for more comprehensive reasoning, or `none` to disable. Defaults to `auto`.

```json wrap icon="code" Example config with OpenAI provider theme={null}
{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "models": [
        {
            "provider": "openai",
            "model": "YOUR_MODEL_HERE",
            "displayName": "OPTIONAL_DISPLAY_NAME",
            "token": {
                "env": "OPENAI_API_KEY"
            },
            "baseUrl": "OPTIONAL_BASE_URL",
            "reasoningEffort": "OPTIONAL_REASONING_EFFORT", // defaults to "medium"
            "reasoningSummary": "auto" // "auto" | "detailed" | "none". Defaults to "auto"
        }
    ] 
}
```

### OpenAI Compatible

[Vercel AI SDK OpenAI Compatible Docs](https://ai-sdk.dev/providers/openai-compatible-providers)

The OpenAI compatible provider allows you to use any model that is compatible with the OpenAI [Chat Completions API](https://github.com/ollama/ollama/blob/main/docs/openai.md). This includes self-hosted tools like [Ollama](https://ollama.ai/) and [llama.cpp](https://github.com/ggerganov/llama.cpp).

```json wrap icon="code" Example config with OpenAI Compatible provider theme={null}
{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "models": [
        {
            "provider": "openai-compatible",
            "baseUrl": "BASE_URL_HERE",
            "model": "YOUR_MODEL_HERE",
            "displayName": "OPTIONAL_DISPLAY_NAME",
            "token": {
                "env": "OPTIONAL_API_KEY"
            },
            // Optional query parameters can be passed in the request url as:
            "queryParams": {
                // raw string values
                "optional-query-param": "foo",
                // or as environment variables
                "optional-query-param-secret": {
                    "env": "MY_SECRET_ENV_VAR"
                }
            }
        }
    ]
}
```

<Accordion title="Troubleshooting">
  * When using [llama.cpp](https://github.com/ggml-org/llama.cpp), if you hit "Failed after 3 attempts. Last error: tools param requires --jinja flag", add the `--jinja` flag to your `llama-server` command.
  * If you're seeing the LLM outputing reasoning tokens wrapped in XML tags (e.g., `<reasoning>`, `<thinking>`, etc.), you can configure the `reasoningTag` parameter to the name of the tag (without angle brackets). This parameter defaults to `think`.
</Accordion>

### OpenRouter

[Vercel AI SDK OpenRouter Docs](https://ai-sdk.dev/providers/community-providers/openrouter)

```json wrap icon="code" Example config with OpenRouter provider theme={null}
{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "models": [
        {
            "provider": "openrouter",
            "model": "YOUR_MODEL_HERE",
            "displayName": "OPTIONAL_DISPLAY_NAME",
            "token": {
                "env": "OPENROUTER_API_KEY"
            },
            "baseUrl": "OPTIONAL_BASE_URL"
        }
    ] 
}
```

### xAI

[Vercel AI SDK xAI Docs](https://ai-sdk.dev/providers/ai-sdk-providers/xai)

```json wrap icon="code" Example config with xAI provider theme={null}
{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "models": [
        {
            "provider": "xai",
            "model": "YOUR_MODEL_HERE",
            "displayName": "OPTIONAL_DISPLAY_NAME",
            "token": {
                "env": "XAI_API_KEY"
            },
            "baseUrl": "OPTIONAL_BASE_URL"
        }
    ] 
}
```

# Custom headers

You can pass custom headers to the language model provider by using the `headers` parameter. Header values can either be a string or a environment variable. Headers are supported for all providers.

```json wrap icon="code" Example config with custom headers theme={null}
{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "models": [
        {
            // ... provider, model, displayName, etc...

            // Key-value pairs of headers
            "headers": {
                // Header values can be passed as a environment variable...
                "my-secret-header": {
                    "env": "MY_SECRET_HEADER_ENV_VAR"
                },

                // ... or directly as a string.
                "my-non-secret-header": "plaintextvalue"
            }
        }
    ]
}
```

# Schema reference

<Accordion title="Reference">
  [schemas/v3/languageModel.json](https://github.com/sourcebot-dev/sourcebot/blob/main/schemas/v3/languageModel.json)

  ```json theme={null}
  {
    "type": "object",
    "title": "LanguageModel",
    "definitions": {
      "AmazonBedrockLanguageModel": {
        "type": "object",
        "properties": {
          "provider": {
            "const": "amazon-bedrock",
            "description": "Amazon Bedrock Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model."
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "accessKeyId": {
            "description": "Optional access key ID to use with the model. Defaults to the `AWS_ACCESS_KEY_ID` environment variable.",
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ]
          },
          "accessKeySecret": {
            "description": "Optional secret access key to use with the model. Defaults to the `AWS_SECRET_ACCESS_KEY` environment variable.",
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ]
          },
          "sessionToken": {
            "description": "Optional session token to use with the model. Defaults to the `AWS_SESSION_TOKEN` environment variable.",
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ]
          },
          "region": {
            "type": "string",
            "description": "The AWS region. Defaults to the `AWS_REGION` environment variable.",
            "examples": [
              "us-east-1",
              "us-west-2",
              "eu-west-1"
            ]
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      "AnthropicLanguageModel": {
        "type": "object",
        "properties": {
          "provider": {
            "const": "anthropic",
            "description": "Anthropic Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model."
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key to use with the model, sent as the `x-api-key` header. Defaults to the `ANTHROPIC_API_KEY` environment variable."
          },
          "authToken": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional auth token to use with the model, sent as the `Authorization: Bearer` header. Defaults to the `ANTHROPIC_AUTH_TOKEN` environment variable."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      "AzureLanguageModel": {
        "type": "object",
        "properties": {
          "provider": {
            "const": "azure",
            "description": "Azure Configuration"
          },
          "model": {
            "type": "string",
            "description": "The deployment name of the Azure model."
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "resourceName": {
            "type": "string",
            "description": "Azure resource name. Defaults to the `AZURE_RESOURCE_NAME` environment variable."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key to use with the model. Defaults to the `AZURE_API_KEY` environment variable."
          },
          "apiVersion": {
            "type": "string",
            "description": "Sets a custom api version. Defaults to `preview`."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Use a different URL prefix for API calls. Either this or `resourceName` can be used."
          },
          "reasoningEffort": {
            "type": "string",
            "description": "The reasoning effort to use with the model. Defaults to `medium`. See https://platform.openai.com/docs/guides/reasoning#get-started-with-reasonings",
            "examples": [
              "none",
              "minimal",
              "low",
              "medium",
              "high"
            ]
          },
          "reasoningSummary": {
            "type": "string",
            "description": "Controls whether the model returns its reasoning process. Set to 'auto' for a condensed summary, 'detailed' for more comprehensive reasoning, or 'none' to disable. Defaults to 'auto'.",
            "examples": [
              "none",
              "auto",
              "detailed"
            ]
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      "DeepSeekLanguageModel": {
        "type": "object",
        "properties": {
          "provider": {
            "const": "deepseek",
            "description": "DeepSeek Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model."
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key to use with the model. Defaults to the `DEEPSEEK_API_KEY` environment variable."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      "GoogleGenerativeAILanguageModel": {
        "type": "object",
        "properties": {
          "provider": {
            "const": "google-generative-ai",
            "description": "Google Generative AI Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model."
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key to use with the model. Defaults to the `GOOGLE_GENERATIVE_AI_API_KEY` environment variable."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "thinkingLevel": {
            "type": "string",
            "description": "Optional thinking level for Gemini 3 models. Controls the depth of reasoning the model performs. See https://ai.google.dev/gemini-api/docs/thinking#thinking-levels",
            "enum": [
              "minimal",
              "low",
              "medium",
              "high"
            ]
          },
          "thinkingBudget": {
            "type": "integer",
            "description": "Optional thinking budget for Gemini 2.5 models. Sets the number of thinking tokens the model can use when generating a response. Set to -1 for dynamic thinking. See https://ai.google.dev/gemini-api/docs/thinking#set-budget"
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      "GoogleVertexAnthropicLanguageModel": {
        "type": "object",
        "properties": {
          "provider": {
            "const": "google-vertex-anthropic",
            "description": "Google Vertex AI Anthropic Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the Anthropic language model running on Google Vertex.",
            "examples": [
              "claude-sonnet-4"
            ]
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "project": {
            "type": "string",
            "description": "The Google Cloud project ID. Defaults to the `GOOGLE_VERTEX_PROJECT` environment variable."
          },
          "region": {
            "type": "string",
            "description": "The Google Cloud region. Defaults to the `GOOGLE_VERTEX_REGION` environment variable.",
            "examples": [
              "us-central1",
              "us-east1",
              "europe-west1"
            ]
          },
          "credentials": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional file path to service account credentials JSON. Defaults to the `GOOGLE_APPLICATION_CREDENTIALS` environment variable or application default credentials."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      "GoogleVertexLanguageModel": {
        "type": "object",
        "properties": {
          "provider": {
            "const": "google-vertex",
            "description": "Google Vertex AI Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model.",
            "examples": [
              "gemini-2.0-flash-exp",
              "gemini-1.5-pro",
              "gemini-1.5-flash"
            ]
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "project": {
            "type": "string",
            "description": "The Google Cloud project ID. Defaults to the `GOOGLE_VERTEX_PROJECT` environment variable."
          },
          "region": {
            "type": "string",
            "description": "The Google Cloud region. Defaults to the `GOOGLE_VERTEX_REGION` environment variable.",
            "examples": [
              "us-central1",
              "us-east1",
              "europe-west1"
            ]
          },
          "credentials": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional file path to service account credentials JSON. Defaults to the `GOOGLE_APPLICATION_CREDENTIALS` environment variable or application default credentials."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "thinkingLevel": {
            "type": "string",
            "description": "Optional thinking level for Gemini 3 models. Controls the depth of reasoning the model performs. See https://ai.google.dev/gemini-api/docs/thinking#thinking-levels",
            "enum": [
              "minimal",
              "low",
              "medium",
              "high"
            ]
          },
          "thinkingBudget": {
            "type": "integer",
            "description": "Optional thinking budget for Gemini 2.5 models. Sets the number of thinking tokens the model can use when generating a response. Set to -1 for dynamic thinking. See https://ai.google.dev/gemini-api/docs/thinking#set-budget"
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      "MistralLanguageModel": {
        "type": "object",
        "properties": {
          "provider": {
            "const": "mistral",
            "description": "Mistral AI Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model."
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key to use with the model. Defaults to the `MISTRAL_API_KEY` environment variable."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      "OpenAILanguageModel": {
        "type": "object",
        "properties": {
          "provider": {
            "const": "openai",
            "description": "OpenAI Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model.",
            "examples": [
              "gpt-4.1",
              "o4-mini",
              "o3",
              "o3-deep-research"
            ]
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key to use with the model. Defaults to the `OPENAI_API_KEY` environment variable."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "reasoningEffort": {
            "type": "string",
            "description": "The reasoning effort to use with the model. Defaults to `medium`. See https://platform.openai.com/docs/guides/reasoning#get-started-with-reasonings",
            "examples": [
              "none",
              "minimal",
              "low",
              "medium",
              "high"
            ]
          },
          "reasoningSummary": {
            "type": "string",
            "description": "Controls whether the model returns its reasoning process. Set to 'auto' for a condensed summary, 'detailed' for more comprehensive reasoning, or 'none' to disable. Defaults to 'auto'.",
            "examples": [
              "none",
              "auto",
              "detailed"
            ]
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      "OpenAICompatibleLanguageModel": {
        "type": "object",
        "properties": {
          "provider": {
            "const": "openai-compatible",
            "description": "OpenAI Compatible Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model."
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key. If specified, adds an `Authorization` header to request headers with the value Bearer <token>."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Base URL of the OpenAI-compatible chat completions API endpoint.",
            "examples": [
              "http://localhost:8080/v1"
            ]
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          },
          "queryParams": {
            "type": "object",
            "description": "Optional query parameters to include in the request url.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          },
          "reasoningTag": {
            "type": "string",
            "description": "The name of the XML tag to extract reasoning from (without angle brackets). Defaults to `think`.",
            "default": "think",
            "examples": [
              "think",
              "thinking",
              "reasoning"
            ]
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          }
        },
        "required": [
          "provider",
          "model",
          "baseUrl"
        ],
        "additionalProperties": false
      },
      "OpenRouterLanguageModel": {
        "type": "object",
        "properties": {
          "provider": {
            "const": "openrouter",
            "description": "OpenRouter Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model."
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key to use with the model. Defaults to the `OPENROUTER_API_KEY` environment variable."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      "XaiLanguageModel": {
        "type": "object",
        "properties": {
          "provider": {
            "const": "xai",
            "description": "xAI Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model.",
            "examples": [
              "grok-beta",
              "grok-vision-beta"
            ]
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key to use with the model. Defaults to the `XAI_API_KEY` environment variable."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      }
    },
    "oneOf": [
      {
        "type": "object",
        "properties": {
          "provider": {
            "const": "amazon-bedrock",
            "description": "Amazon Bedrock Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model."
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "accessKeyId": {
            "description": "Optional access key ID to use with the model. Defaults to the `AWS_ACCESS_KEY_ID` environment variable.",
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ]
          },
          "accessKeySecret": {
            "description": "Optional secret access key to use with the model. Defaults to the `AWS_SECRET_ACCESS_KEY` environment variable.",
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ]
          },
          "sessionToken": {
            "description": "Optional session token to use with the model. Defaults to the `AWS_SESSION_TOKEN` environment variable.",
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ]
          },
          "region": {
            "type": "string",
            "description": "The AWS region. Defaults to the `AWS_REGION` environment variable.",
            "examples": [
              "us-east-1",
              "us-west-2",
              "eu-west-1"
            ]
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      {
        "type": "object",
        "properties": {
          "provider": {
            "const": "anthropic",
            "description": "Anthropic Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model."
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key to use with the model, sent as the `x-api-key` header. Defaults to the `ANTHROPIC_API_KEY` environment variable."
          },
          "authToken": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional auth token to use with the model, sent as the `Authorization: Bearer` header. Defaults to the `ANTHROPIC_AUTH_TOKEN` environment variable."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      {
        "type": "object",
        "properties": {
          "provider": {
            "const": "azure",
            "description": "Azure Configuration"
          },
          "model": {
            "type": "string",
            "description": "The deployment name of the Azure model."
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "resourceName": {
            "type": "string",
            "description": "Azure resource name. Defaults to the `AZURE_RESOURCE_NAME` environment variable."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key to use with the model. Defaults to the `AZURE_API_KEY` environment variable."
          },
          "apiVersion": {
            "type": "string",
            "description": "Sets a custom api version. Defaults to `preview`."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Use a different URL prefix for API calls. Either this or `resourceName` can be used."
          },
          "reasoningEffort": {
            "type": "string",
            "description": "The reasoning effort to use with the model. Defaults to `medium`. See https://platform.openai.com/docs/guides/reasoning#get-started-with-reasonings",
            "examples": [
              "none",
              "minimal",
              "low",
              "medium",
              "high"
            ]
          },
          "reasoningSummary": {
            "type": "string",
            "description": "Controls whether the model returns its reasoning process. Set to 'auto' for a condensed summary, 'detailed' for more comprehensive reasoning, or 'none' to disable. Defaults to 'auto'.",
            "examples": [
              "none",
              "auto",
              "detailed"
            ]
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      {
        "type": "object",
        "properties": {
          "provider": {
            "const": "deepseek",
            "description": "DeepSeek Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model."
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key to use with the model. Defaults to the `DEEPSEEK_API_KEY` environment variable."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      {
        "type": "object",
        "properties": {
          "provider": {
            "const": "google-generative-ai",
            "description": "Google Generative AI Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model."
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key to use with the model. Defaults to the `GOOGLE_GENERATIVE_AI_API_KEY` environment variable."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "thinkingLevel": {
            "type": "string",
            "description": "Optional thinking level for Gemini 3 models. Controls the depth of reasoning the model performs. See https://ai.google.dev/gemini-api/docs/thinking#thinking-levels",
            "enum": [
              "minimal",
              "low",
              "medium",
              "high"
            ]
          },
          "thinkingBudget": {
            "type": "integer",
            "description": "Optional thinking budget for Gemini 2.5 models. Sets the number of thinking tokens the model can use when generating a response. Set to -1 for dynamic thinking. See https://ai.google.dev/gemini-api/docs/thinking#set-budget"
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      {
        "type": "object",
        "properties": {
          "provider": {
            "const": "google-vertex-anthropic",
            "description": "Google Vertex AI Anthropic Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the Anthropic language model running on Google Vertex.",
            "examples": [
              "claude-sonnet-4"
            ]
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "project": {
            "type": "string",
            "description": "The Google Cloud project ID. Defaults to the `GOOGLE_VERTEX_PROJECT` environment variable."
          },
          "region": {
            "type": "string",
            "description": "The Google Cloud region. Defaults to the `GOOGLE_VERTEX_REGION` environment variable.",
            "examples": [
              "us-central1",
              "us-east1",
              "europe-west1"
            ]
          },
          "credentials": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional file path to service account credentials JSON. Defaults to the `GOOGLE_APPLICATION_CREDENTIALS` environment variable or application default credentials."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      {
        "type": "object",
        "properties": {
          "provider": {
            "const": "google-vertex",
            "description": "Google Vertex AI Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model.",
            "examples": [
              "gemini-2.0-flash-exp",
              "gemini-1.5-pro",
              "gemini-1.5-flash"
            ]
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "project": {
            "type": "string",
            "description": "The Google Cloud project ID. Defaults to the `GOOGLE_VERTEX_PROJECT` environment variable."
          },
          "region": {
            "type": "string",
            "description": "The Google Cloud region. Defaults to the `GOOGLE_VERTEX_REGION` environment variable.",
            "examples": [
              "us-central1",
              "us-east1",
              "europe-west1"
            ]
          },
          "credentials": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional file path to service account credentials JSON. Defaults to the `GOOGLE_APPLICATION_CREDENTIALS` environment variable or application default credentials."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "thinkingLevel": {
            "type": "string",
            "description": "Optional thinking level for Gemini 3 models. Controls the depth of reasoning the model performs. See https://ai.google.dev/gemini-api/docs/thinking#thinking-levels",
            "enum": [
              "minimal",
              "low",
              "medium",
              "high"
            ]
          },
          "thinkingBudget": {
            "type": "integer",
            "description": "Optional thinking budget for Gemini 2.5 models. Sets the number of thinking tokens the model can use when generating a response. Set to -1 for dynamic thinking. See https://ai.google.dev/gemini-api/docs/thinking#set-budget"
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      {
        "type": "object",
        "properties": {
          "provider": {
            "const": "mistral",
            "description": "Mistral AI Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model."
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key to use with the model. Defaults to the `MISTRAL_API_KEY` environment variable."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      {
        "type": "object",
        "properties": {
          "provider": {
            "const": "openai",
            "description": "OpenAI Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model.",
            "examples": [
              "gpt-4.1",
              "o4-mini",
              "o3",
              "o3-deep-research"
            ]
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key to use with the model. Defaults to the `OPENAI_API_KEY` environment variable."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "reasoningEffort": {
            "type": "string",
            "description": "The reasoning effort to use with the model. Defaults to `medium`. See https://platform.openai.com/docs/guides/reasoning#get-started-with-reasonings",
            "examples": [
              "none",
              "minimal",
              "low",
              "medium",
              "high"
            ]
          },
          "reasoningSummary": {
            "type": "string",
            "description": "Controls whether the model returns its reasoning process. Set to 'auto' for a condensed summary, 'detailed' for more comprehensive reasoning, or 'none' to disable. Defaults to 'auto'.",
            "examples": [
              "none",
              "auto",
              "detailed"
            ]
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      {
        "type": "object",
        "properties": {
          "provider": {
            "const": "openai-compatible",
            "description": "OpenAI Compatible Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model."
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key. If specified, adds an `Authorization` header to request headers with the value Bearer <token>."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Base URL of the OpenAI-compatible chat completions API endpoint.",
            "examples": [
              "http://localhost:8080/v1"
            ]
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          },
          "queryParams": {
            "type": "object",
            "description": "Optional query parameters to include in the request url.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          },
          "reasoningTag": {
            "type": "string",
            "description": "The name of the XML tag to extract reasoning from (without angle brackets). Defaults to `think`.",
            "default": "think",
            "examples": [
              "think",
              "thinking",
              "reasoning"
            ]
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          }
        },
        "required": [
          "provider",
          "model",
          "baseUrl"
        ],
        "additionalProperties": false
      },
      {
        "type": "object",
        "properties": {
          "provider": {
            "const": "openrouter",
            "description": "OpenRouter Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model."
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key to use with the model. Defaults to the `OPENROUTER_API_KEY` environment variable."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      },
      {
        "type": "object",
        "properties": {
          "provider": {
            "const": "xai",
            "description": "xAI Configuration"
          },
          "model": {
            "type": "string",
            "description": "The name of the language model.",
            "examples": [
              "grok-beta",
              "grok-vision-beta"
            ]
          },
          "displayName": {
            "type": "string",
            "description": "Optional display name."
          },
          "token": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "env": {
                    "type": "string",
                    "description": "The name of the environment variable that contains the token."
                  }
                },
                "required": [
                  "env"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "googleCloudSecret": {
                    "type": "string",
                    "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                  }
                },
                "required": [
                  "googleCloudSecret"
                ],
                "additionalProperties": false
              }
            ],
            "description": "Optional API key to use with the model. Defaults to the `XAI_API_KEY` environment variable."
          },
          "baseUrl": {
            "type": "string",
            "format": "url",
            "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
            "description": "Optional base URL."
          },
          "temperature": {
            "type": "number",
            "description": "Optional temperature setting to use with the model."
          },
          "headers": {
            "type": "object",
            "description": "Optional headers to use with the model.",
            "patternProperties": {
              "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "env": {
                            "type": "string",
                            "description": "The name of the environment variable that contains the token."
                          }
                        },
                        "required": [
                          "env"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "googleCloudSecret": {
                            "type": "string",
                            "description": "The resource name of a Google Cloud secret. Must be in the format `projects/<project-id>/secrets/<secret-name>/versions/<version-id>`. See https://cloud.google.com/secret-manager/docs/creating-and-accessing-secrets"
                          }
                        },
                        "required": [
                          "googleCloudSecret"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "provider",
          "model"
        ],
        "additionalProperties": false
      }
    ]
  }
  ```
</Accordion>
