{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "minItems": 1,
  "maxItems": 50,
  "type": "array",
  "items": {
    "anyOf": [
      {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          },
          "type": {
            "type": "string",
            "const": "codex"
          },
          "version": {
            "default": "0.157.0",
            "type": "string",
            "enum": [
              "0.157.0"
            ]
          },
          "auth": {
            "default": [],
            "maxItems": 3,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "method": {
                  "anyOf": [
                    {
                      "type": "string",
                      "const": "openai_api_key",
                      "title": "OpenAI API key",
                      "description": "Create an API key in the OpenAI Platform (https://platform.openai.com/api-keys). Store it as a Stitch secret and reference it in the harness auth entry."
                    },
                    {
                      "type": "string",
                      "const": "aws_bedrock_api_key",
                      "title": "Amazon Bedrock API key",
                      "description": "Create an Amazon Bedrock API key in the AWS console, not in the OpenAI Platform. Store it as a Stitch secret and reference it in the harness auth entry. Set AWS_REGION or AWS_DEFAULT_REGION in the factory harness environment."
                    },
                    {
                      "type": "string",
                      "const": "azure_openai_api_key",
                      "title": "Azure OpenAI API key",
                      "description": "Get the API key from your Azure OpenAI resource in the Azure portal. Store it as a Stitch secret and reference it in the harness auth entry. Set AZURE_OPENAI_BASE_URL in the factory harness environment."
                    }
                  ]
                },
                "secretName": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64,
                  "pattern": "^[A-Za-z0-9_-]+$"
                }
              },
              "required": [
                "method",
                "secretName"
              ],
              "additionalProperties": false
            }
          },
          "model": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reasoningEffort": {
            "default": "default",
            "type": "string",
            "enum": [
              "default",
              "low",
              "medium",
              "high",
              "xhigh",
              "max",
              "ultra"
            ]
          },
          "key": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9_-]{0,63}$"
          }
        },
        "required": [
          "name",
          "type",
          "model",
          "key"
        ],
        "additionalProperties": false
      },
      {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          },
          "type": {
            "type": "string",
            "const": "claude_code"
          },
          "version": {
            "default": "2.1.283",
            "type": "string",
            "enum": [
              "2.1.283"
            ]
          },
          "auth": {
            "default": [],
            "maxItems": 3,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "method": {
                  "anyOf": [
                    {
                      "type": "string",
                      "const": "anthropic_api_key",
                      "title": "Anthropic API key",
                      "description": "Create an API key in the Anthropic Console (https://console.anthropic.com/). Store it as a Stitch secret and reference it in the harness auth entry."
                    },
                    {
                      "type": "string",
                      "const": "aws_bedrock_api_key",
                      "title": "Amazon Bedrock API key",
                      "description": "Create an Amazon Bedrock API key in the AWS console, not in the Anthropic Console. Store it as a Stitch secret and reference it in the harness auth entry. Set AWS_REGION or AWS_DEFAULT_REGION in the factory harness environment."
                    },
                    {
                      "type": "string",
                      "const": "gcp_application_credentials",
                      "title": "Google Cloud service account credentials",
                      "description": "Create a service account JSON key in Google Cloud IAM with access to Vertex AI. Store the JSON as a Stitch secret and reference it in the harness auth entry. Set ANTHROPIC_VERTEX_PROJECT_ID and optionally CLOUD_ML_REGION in the factory harness environment."
                    },
                    {
                      "type": "string",
                      "const": "azure_foundry_api_key",
                      "title": "Microsoft Foundry API key",
                      "description": "Get the API key from your Microsoft Foundry resource in the Azure portal. Store it as a Stitch secret and reference it in the harness auth entry. Set ANTHROPIC_FOUNDRY_RESOURCE or ANTHROPIC_FOUNDRY_BASE_URL in the factory harness environment."
                    },
                    {
                      "type": "string",
                      "const": "azure_foundry_auth_token",
                      "title": "Microsoft Entra bearer token",
                      "description": "Obtain a Microsoft Entra bearer token for your Microsoft Foundry resource through Azure authentication. Store it as a Stitch secret and reference it in the harness auth entry. Set ANTHROPIC_FOUNDRY_RESOURCE or ANTHROPIC_FOUNDRY_BASE_URL in the factory harness environment. Renew the secret before the token expires."
                    }
                  ]
                },
                "secretName": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64,
                  "pattern": "^[A-Za-z0-9_-]+$"
                }
              },
              "required": [
                "method",
                "secretName"
              ],
              "additionalProperties": false
            }
          },
          "model": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "effort": {
            "default": "default",
            "type": "string",
            "enum": [
              "default",
              "low",
              "medium",
              "high",
              "xhigh",
              "max"
            ]
          },
          "key": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9_-]{0,63}$"
          }
        },
        "required": [
          "name",
          "type",
          "model",
          "key"
        ],
        "additionalProperties": false
      },
      {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          },
          "type": {
            "type": "string",
            "const": "antigravity"
          },
          "version": {
            "default": "1.2.7",
            "type": "string",
            "enum": [
              "1.2.7"
            ]
          },
          "auth": {
            "default": [],
            "maxItems": 3,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "method": {
                  "anyOf": [
                    {
                      "type": "string",
                      "const": "gemini_api_key",
                      "title": "Gemini API key",
                      "description": "Create a Gemini API key in Google AI Studio (https://aistudio.google.com/apikey). Store it as a Stitch secret and reference it in the harness auth entry."
                    }
                  ]
                },
                "secretName": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64,
                  "pattern": "^[A-Za-z0-9_-]+$"
                }
              },
              "required": [
                "method",
                "secretName"
              ],
              "additionalProperties": false
            }
          },
          "model": {
            "type": "string",
            "enum": [
              "gemini-3.6-flash",
              "gemini-3.7-flash",
              "gemini-3.8-flash",
              "gemini-3.1-pro"
            ]
          },
          "thinkingLevel": {
            "type": "string",
            "enum": [
              "low",
              "medium",
              "high"
            ]
          },
          "key": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9_-]{0,63}$"
          }
        },
        "required": [
          "name",
          "type",
          "model",
          "thinkingLevel",
          "key"
        ],
        "additionalProperties": false
      },
      {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          },
          "type": {
            "type": "string",
            "const": "opencode"
          },
          "version": {
            "type": "string",
            "enum": [
              "1.18.30"
            ]
          },
          "auth": {
            "default": [],
            "maxItems": 3,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "method": {
                  "anyOf": [
                    {
                      "type": "string",
                      "const": "openai_api_key",
                      "title": "OpenAI API key",
                      "description": "Create an API key in the OpenAI Platform (https://platform.openai.com/api-keys). Store it as a Stitch secret and reference it in the harness auth entry."
                    },
                    {
                      "type": "string",
                      "const": "anthropic_api_key",
                      "title": "Anthropic API key",
                      "description": "Create an API key in the Anthropic Console (https://console.anthropic.com/). Store it as a Stitch secret and reference it in the harness auth entry."
                    },
                    {
                      "type": "string",
                      "const": "gemini_api_key",
                      "title": "Gemini API key",
                      "description": "Create a Gemini API key in Google AI Studio (https://aistudio.google.com/apikey). Store it as a Stitch secret and reference it in the harness auth entry."
                    },
                    {
                      "type": "string",
                      "const": "meta_api_key",
                      "title": "Meta API key",
                      "description": "Get an API key from the Meta Llama API developer portal (https://llama.developer.meta.com/). Store it as a Stitch secret and reference it in the harness auth entry."
                    },
                    {
                      "type": "string",
                      "const": "opencode_api_key",
                      "title": "OpenCode Zen API key",
                      "description": "Create an OpenCode Zen API key at https://opencode.ai/auth. Store it as a Stitch secret and reference it in the harness auth entry."
                    }
                  ]
                },
                "secretName": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64,
                  "pattern": "^[A-Za-z0-9_-]+$"
                }
              },
              "required": [
                "method",
                "secretName"
              ],
              "additionalProperties": false
            }
          },
          "model": {
            "type": "string",
            "enum": [
              "openai/gpt-5.3-codex",
              "openai/gpt-5.4",
              "openai/gpt-5.4-mini",
              "openai/gpt-5.6-sol",
              "openai/gpt-5.6-terra",
              "openai/gpt-5.6-luna",
              "anthropic/claude-sonnet-4-6",
              "anthropic/claude-opus-4-6",
              "anthropic/claude-sonnet-5",
              "anthropic/claude-opus-5",
              "google/gemini-3.6-flash",
              "google/gemini-3.7-flash",
              "google/gemini-3.8-flash",
              "google/gemini-3.1-pro-preview",
              "meta/muse-spark-1.1",
              "meta/muse-spark-1.2",
              "meta/muse-spark-1.3",
              "meta/muse-spark-1.2-contributor",
              "meta/muse-spark-1.3-contributor",
              "opencode/muse-spark-1.2",
              "opencode/muse-spark-1.3",
              "opencode/muse-spark-1.2-contributor-free",
              "opencode/muse-spark-1.3-contributor-free"
            ]
          },
          "reasoningEffort": {
            "default": "default",
            "type": "string",
            "enum": [
              "default",
              "low",
              "medium",
              "high",
              "xhigh",
              "max"
            ]
          },
          "key": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9_-]{0,63}$"
          }
        },
        "required": [
          "name",
          "type",
          "version",
          "model",
          "key"
        ],
        "additionalProperties": false
      }
    ]
  }
}
