Looking to self-host your own model? Check out the OpenAI Compatible provider.
To use Ask Sourcebot you must define at least one Language Model Provider. These providers are defined within the config file you provide Sourcebot.
Example config with language model provider
{
    "$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, so it can integrate with any provider the SDK supports. If you don’t see your provider below please submit a feature request. For a detailed description of all the providers, please refer to the schema.
Any parameter defined using env will read the value from the corresponding environment variable you provide Sourcebot

Amazon Bedrock

Vercel AI SDK Amazon Bedrock Docs
Example config with Amazon Bedrock provider
{
    "$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
Example config with Anthropic provider
{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "models": [
        {
            "provider": "anthropic",
            "model": "YOUR_MODEL_HERE",
            "displayName": "OPTIONAL_DISPLAY_NAME",
            "token": {
                "env": "ANTHROPIC_API_KEY"
            },
            "baseUrl": "OPTIONAL_BASE_URL"
        }
    ] 
}

Azure OpenAI

Vercel AI SDK Azure OpenAI Docs
Example config with Azure AI provider
{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "models": [
        {
            "provider": "azure",
            "model": "YOUR_MODEL_HERE",
            "displayName": "OPTIONAL_DISPLAY_NAME",
            "resourceName": "YOUR_RESOURCE_NAME", // defaults to the AZURE_RESOURCE_NAME env var if not set
            "apiVersion": "OPTIONAL_API_VERSION", // defailts to 'preview' if not set
            "token": {
                "env": "AZURE_API_KEY"
            },
            "baseUrl": "OPTIONAL_BASE_URL"
        }
    ] 
}

Deepseek

Vercel AI SDK Deepseek Docs
Example config with Deepseek provider
{
    "$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
Example config with Google Generative AI provider
{
    "$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"
        }
    ] 
}

Google Vertex

If you’re using an Anthropic model on Google Vertex, you must define a Google Vertex Anthropic provider instead
The credentials paramater here expects a path to a credentials file. This file must be in a volume mounted by Sourcebot for it to be readable.
Vercel AI SDK Google Vertex AI Docs
Example config with Google Vertex provider
{
    "$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"
        }
    ] 
}

Google Vertex Anthropic

The credentials paramater here expects a path to a credentials file. This file must be in a volume mounted by Sourcebot for it to be readable.
Vercel AI SDK Google Vertex Anthropic Docs
Example config with Google Vertex Anthropic provider
{
    "$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
Example config with Mistral provider
{
    "$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
Example config with OpenAI provider
{
    "$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"
        }
    ] 
}

OpenAI Compatible

Vercel AI SDK OpenAI Compatible Docs The OpenAI compatible provider allows you to use any model that is compatible with the OpenAI Chat Completions API. This includes self-hosted tools like Ollama and llama.cpp.
Example config with OpenAI Compatible provider
{
    "$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"
                }
            }
        }
    ]
}
  • When using 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.

OpenRouter

Vercel AI SDK OpenRouter Docs
Example config with OpenRouter provider
{
    "$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": "OPENROUTER_API_KEY"
            },
            "baseUrl": "OPTIONAL_BASE_URL"
        }
    ] 
}

xAI

Vercel AI SDK xAI Docs
Example config with xAI provider
{
    "$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.
Example config with custom headers
{
    "$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

schemas/v3/languageModel.json
{
  "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "additionalProperties": false
            }
          ]
        },
        "sessionToken": {
          "description": "Optional session token to use with the model. Defaults to the `AWS_SESSION_TOKEN` environment variable.",
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "additionalProperties": false
            }
          ],
          "description": "Optional API key to use with the model. Defaults to the `ANTHROPIC_API_KEY` environment variable."
        },
        "baseUrl": {
          "type": "string",
          "format": "url",
          "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
          "description": "Optional base URL."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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": [
            "minimal",
            "low",
            "medium",
            "high"
          ]
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              ]
            }
          },
          "additionalProperties": false
        }
      },
      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "additionalProperties": false
            }
          ]
        },
        "sessionToken": {
          "description": "Optional session token to use with the model. Defaults to the `AWS_SESSION_TOKEN` environment variable.",
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "additionalProperties": false
            }
          ],
          "description": "Optional API key to use with the model. Defaults to the `ANTHROPIC_API_KEY` environment variable."
        },
        "baseUrl": {
          "type": "string",
          "format": "url",
          "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
          "description": "Optional base URL."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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": [
            "minimal",
            "low",
            "medium",
            "high"
          ]
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              ]
            }
          },
          "additionalProperties": false
        }
      },
      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "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": {
                "secret": {
                  "type": "string",
                  "description": "The name of the secret that contains the token."
                }
              },
              "required": [
                "secret"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "env": {
                  "type": "string",
                  "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                }
              },
              "required": [
                "env"
              ],
              "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."
        },
        "headers": {
          "type": "object",
          "description": "Optional headers to use with the model.",
          "patternProperties": {
            "^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "secret": {
                          "type": "string",
                          "description": "The name of the secret that contains the token."
                        }
                      },
                      "required": [
                        "secret"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "env": {
                          "type": "string",
                          "description": "The name of the environment variable that contains the token. Only supported in declarative connection configs."
                        }
                      },
                      "required": [
                        "env"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              ]
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "provider",
        "model"
      ],
      "additionalProperties": false
    }
  ]
}