// GENERATED by `harn providers export` - do not edit by hand.
// Source: Harn runtime provider catalog schema v2.
// Language: swift.

public struct HarnProviderCatalog: Codable, Sendable, Equatable {
    public let schemaVersion: Int
    public let schema: String
    public let generatedBy: String
    public let providers: [HarnCatalogProvider]
    public let models: [HarnCatalogModel]
    public let aliases: [HarnCatalogAlias]
    public let variants: [HarnCatalogVariant]
    public let qcDefaults: [String: String]

    enum CodingKeys: String, CodingKey {
        case schemaVersion = "schema_version"
        case schema
        case generatedBy = "generated_by"
        case providers
        case models
        case aliases
        case variants
        case qcDefaults = "qc_defaults"
    }
}

public struct HarnCatalogProvider: Codable, Sendable, Equatable {
    public let id: String
    public let displayName: String
    public let icon: String?
    public let classification: String
    public let endpoint: HarnProviderEndpoint
    public let auth: HarnProviderAuth
    public let protocols: [String]
    public let features: [String]
    public let caveats: [String]
    public let rpm: Int?
    public let rateLimits: HarnRateLimits?
    public let localRuntime: HarnLocalRuntime?
    public let latencyP50Ms: Int?

    enum CodingKeys: String, CodingKey {
        case id
        case displayName = "display_name"
        case icon
        case classification
        case endpoint
        case auth
        case protocols
        case features
        case caveats
        case rpm
        case rateLimits = "rate_limits"
        case localRuntime = "local_runtime"
        case latencyP50Ms = "latency_p50_ms"
    }
}

public struct HarnLocalRuntime: Codable, Sendable, Equatable {
    public let kind: String?
    public let command: String?
    public let modelSource: String?
    public let modelSourceEnv: String?
    public let defaultPort: Int?
    public let modelArg: String?
    public let servedModelArg: String?
    public let hostArg: String?
    public let portArg: String?
    public let ctxArg: String?
    public let parallelArg: String?
    public let gpuLayersArg: String?
    public let cacheTypeKArg: String?
    public let cacheTypeVArg: String?
    public let cacheRamArg: String?
    public let defaultArgs: [String]?
    public let stop: String?
    public let sourceURL: String?
    public let lastVerified: String?
    public let notes: String?

    enum CodingKeys: String, CodingKey {
        case kind
        case command
        case modelSource = "model_source"
        case modelSourceEnv = "model_source_env"
        case defaultPort = "default_port"
        case modelArg = "model_arg"
        case servedModelArg = "served_model_arg"
        case hostArg = "host_arg"
        case portArg = "port_arg"
        case ctxArg = "ctx_arg"
        case parallelArg = "parallel_arg"
        case gpuLayersArg = "gpu_layers_arg"
        case cacheTypeKArg = "cache_type_k_arg"
        case cacheTypeVArg = "cache_type_v_arg"
        case cacheRamArg = "cache_ram_arg"
        case defaultArgs = "default_args"
        case stop
        case sourceURL = "source_url"
        case lastVerified = "last_verified"
        case notes
    }
}

public struct HarnProviderEndpoint: Codable, Sendable, Equatable {
    public let baseURL: String
    public let baseURLEnv: String?
    public let chatEndpoint: String
    public let completionEndpoint: String?

    enum CodingKeys: String, CodingKey {
        case baseURL = "base_url"
        case baseURLEnv = "base_url_env"
        case chatEndpoint = "chat_endpoint"
        case completionEndpoint = "completion_endpoint"
    }
}

public struct HarnProviderAuth: Codable, Sendable, Equatable {
    public let style: String
    public let header: String?
    public let env: [String]
    public let required: Bool
}

public struct HarnCatalogAlias: Codable, Sendable, Equatable {
    public let name: String
    public let modelID: String
    public let provider: String
    public let toolFormat: String?
    public let toolCalling: HarnAliasToolCalling?

    enum CodingKeys: String, CodingKey {
        case name
        case modelID = "model_id"
        case provider
        case toolFormat = "tool_format"
        case toolCalling = "tool_calling"
    }
}

public struct HarnAliasToolCalling: Codable, Sendable, Equatable {
    public let native: String?
    public let text: String?
    public let streamingNative: String?
    public let fallbackMode: String?
    public let failureReason: String?
    public let lastProbeAt: String?

    enum CodingKeys: String, CodingKey {
        case native
        case text
        case streamingNative = "streaming_native"
        case fallbackMode = "fallback_mode"
        case failureReason = "failure_reason"
        case lastProbeAt = "last_probe_at"
    }
}

public struct HarnCatalogModel: Codable, Sendable, Equatable {
    public let id: String
    public let name: String
    public let provider: String
    public let aliases: [String]
    public let contextWindow: Int
    public let logicalModel: String?
    public let equivalenceGroup: String?
    public let servedVariant: String?
    public let wireModel: String?
    public let apiDialect: String?
    public let rateLimits: HarnRateLimits?
    public let architecture: HarnModelArchitecture?
    public let localMemory: HarnLocalMemory?
    public let runtimeContextWindow: Int?
    public let streamTimeout: Double?
    public let modalities: HarnModelModalities
    public let toolSupport: HarnModelToolSupport
    public let structuredOutput: String
    public let formatPreferences: HarnModelFormatPreferences
    public let reasoning: HarnModelReasoning
    public let promptCache: Bool
    public let pricing: HarnModelPricing?
    public let deprecation: HarnModelDeprecation
    public let availability: String
    public let qualityTags: [String]
    public let capabilityTags: [String]
    public let family: String
    public let lineage: String
    public let complementaryWith: [String]
    public let avoidAsReviewerFor: [String]
    /// Popular-consensus tier label: "small" | "mid" | "frontier" | "reasoning".
    public let tier: String
    /// True when weights are downloadable / self-hostable; nil when the
    /// catalog row predates the field.
    public let openWeight: Bool?
    /// Workload-shaped strength tags (`coding`, `summarization`, `vision`, ...).
    public let strengths: [String]
    /// Public benchmark numbers keyed by `snake_case` identifier.
    public let benchmarks: [String: Double]
    /// Accelerated-serving ("fast mode") tier metadata, when offered.
    public let fastMode: HarnModelFastMode?

    enum CodingKeys: String, CodingKey {
        case id
        case name
        case provider
        case aliases
        case contextWindow = "context_window"
        case logicalModel = "logical_model"
        case equivalenceGroup = "equivalence_group"
        case servedVariant = "served_variant"
        case wireModel = "wire_model"
        case apiDialect = "api_dialect"
        case rateLimits = "rate_limits"
        case architecture
        case localMemory = "local_memory"
        case runtimeContextWindow = "runtime_context_window"
        case streamTimeout = "stream_timeout"
        case modalities
        case toolSupport = "tool_support"
        case structuredOutput = "structured_output"
        case formatPreferences = "format_preferences"
        case reasoning
        case promptCache = "prompt_cache"
        case pricing
        case deprecation
        case availability
        case qualityTags = "quality_tags"
        case capabilityTags = "capability_tags"
        case family
        case lineage
        case complementaryWith = "complementary_with"
        case avoidAsReviewerFor = "avoid_as_reviewer_for"
        case tier
        case openWeight = "open_weight"
        case strengths
        case benchmarks
        case fastMode = "fast_mode"
    }

    public init(from decoder: Decoder) throws {
        let container = try decoder.container(keyedBy: CodingKeys.self)
        id = try container.decode(String.self, forKey: .id)
        name = try container.decode(String.self, forKey: .name)
        provider = try container.decode(String.self, forKey: .provider)
        aliases = try container.decode([String].self, forKey: .aliases)
        contextWindow = try container.decode(Int.self, forKey: .contextWindow)
        logicalModel = try container.decodeIfPresent(String.self, forKey: .logicalModel)
        equivalenceGroup = try container.decodeIfPresent(String.self, forKey: .equivalenceGroup)
        servedVariant = try container.decodeIfPresent(String.self, forKey: .servedVariant)
        wireModel = try container.decodeIfPresent(String.self, forKey: .wireModel)
        apiDialect = try container.decodeIfPresent(String.self, forKey: .apiDialect)
        rateLimits = try container.decodeIfPresent(HarnRateLimits.self, forKey: .rateLimits)
        architecture = try container.decodeIfPresent(HarnModelArchitecture.self, forKey: .architecture)
        localMemory = try container.decodeIfPresent(HarnLocalMemory.self, forKey: .localMemory)
        runtimeContextWindow = try container.decodeIfPresent(Int.self, forKey: .runtimeContextWindow)
        streamTimeout = try container.decodeIfPresent(Double.self, forKey: .streamTimeout)
        modalities = try container.decode(HarnModelModalities.self, forKey: .modalities)
        toolSupport = try container.decode(HarnModelToolSupport.self, forKey: .toolSupport)
        structuredOutput = try container.decode(String.self, forKey: .structuredOutput)
        formatPreferences = try container.decode(HarnModelFormatPreferences.self, forKey: .formatPreferences)
        reasoning = try container.decode(HarnModelReasoning.self, forKey: .reasoning)
        promptCache = try container.decode(Bool.self, forKey: .promptCache)
        pricing = try container.decodeIfPresent(HarnModelPricing.self, forKey: .pricing)
        deprecation = try container.decode(HarnModelDeprecation.self, forKey: .deprecation)
        availability = try container.decode(String.self, forKey: .availability)
        qualityTags = try container.decode([String].self, forKey: .qualityTags)
        capabilityTags = try container.decode([String].self, forKey: .capabilityTags)
        family = try container.decode(String.self, forKey: .family)
        lineage = try container.decode(String.self, forKey: .lineage)
        complementaryWith = try container.decodeIfPresent([String].self, forKey: .complementaryWith) ?? []
        avoidAsReviewerFor = try container.decodeIfPresent([String].self, forKey: .avoidAsReviewerFor) ?? []
        tier = try container.decode(String.self, forKey: .tier)
        openWeight = try container.decodeIfPresent(Bool.self, forKey: .openWeight)
        strengths = try container.decodeIfPresent([String].self, forKey: .strengths) ?? []
        benchmarks = try container.decodeIfPresent([String: Double].self, forKey: .benchmarks) ?? [:]
        fastMode = try container.decodeIfPresent(HarnModelFastMode.self, forKey: .fastMode)
    }
}

public struct HarnModelModalities: Codable, Sendable, Equatable {
    public let input: [String]
    public let output: [String]
}

public struct HarnModelToolSupport: Codable, Sendable, Equatable {
    public let native: Bool
    public let text: Bool
    public let preferredFormat: String?
    public let parity: String?
    public let parityNotes: String?
    public let empiricalParity: HarnToolEmpiricalParity?
    public let toolSearch: [String]
    public let maxTools: Int?

    enum CodingKeys: String, CodingKey {
        case native
        case text
        case preferredFormat = "preferred_format"
        case parity
        case parityNotes = "parity_notes"
        case empiricalParity = "empirical_parity"
        case toolSearch = "tool_search"
        case maxTools = "max_tools"
    }
}

public struct HarnToolEmpiricalParity: Codable, Sendable, Equatable {
    public let verdict: String
    public let preferredFormat: String
    public let confidence: String
    public let sampleSize: Int
    public let lastEvaluated: String
    public let nativePassRate: Double
    public let textPassRate: Double
    public let verifierDivergenceRate: Double

    enum CodingKeys: String, CodingKey {
        case verdict
        case preferredFormat = "preferred_format"
        case confidence
        case sampleSize = "sample_size"
        case lastEvaluated = "last_evaluated"
        case nativePassRate = "native_pass_rate"
        case textPassRate = "text_pass_rate"
        case verifierDivergenceRate = "verifier_divergence_rate"
    }
}

public struct HarnModelFormatPreferences: Codable, Sendable, Equatable {
    public let prefersXMLScaffolding: Bool
    public let prefersMarkdownScaffolding: Bool
    public let structuredOutputMode: String
    public let supportsAssistantPrefill: Bool
    public let prefersRoleDeveloper: Bool
    public let prefersXMLTools: Bool
    public let thinkingBlockStyle: String

    enum CodingKeys: String, CodingKey {
        case prefersXMLScaffolding = "prefers_xml_scaffolding"
        case prefersMarkdownScaffolding = "prefers_markdown_scaffolding"
        case structuredOutputMode = "structured_output_mode"
        case supportsAssistantPrefill = "supports_assistant_prefill"
        case prefersRoleDeveloper = "prefers_role_developer"
        case prefersXMLTools = "prefers_xml_tools"
        case thinkingBlockStyle = "thinking_block_style"
    }
}

public struct HarnModelReasoning: Codable, Sendable, Equatable {
    public let modes: [String]
    public let effortSupported: Bool
    public let noneSupported: Bool
    public let interleavedSupported: Bool
    public let preserveThinking: Bool

    enum CodingKeys: String, CodingKey {
        case modes
        case effortSupported = "effort_supported"
        case noneSupported = "none_supported"
        case interleavedSupported = "interleaved_supported"
        case preserveThinking = "preserve_thinking"
    }
}

public struct HarnModelPricing: Codable, Sendable, Equatable {
    public let inputPerMTok: Double
    public let outputPerMTok: Double
    public let cacheReadPerMTok: Double?
    public let cacheWritePerMTok: Double?

    enum CodingKeys: String, CodingKey {
        case inputPerMTok = "input_per_mtok"
        case outputPerMTok = "output_per_mtok"
        case cacheReadPerMTok = "cache_read_per_mtok"
        case cacheWritePerMTok = "cache_write_per_mtok"
    }
}

public struct HarnRateLimits: Codable, Sendable, Equatable {
    public let rpm: Int?
    public let rph: Int?
    public let rpd: Int?
    public let tpm: Int?
    public let tph: Int?
    public let tpd: Int?
    public let inputTpm: Int?
    public let outputTpm: Int?
    public let concurrency: Int?
    public let tier: String?
    public let sourceURL: String?
    public let lastVerified: String?
    public let notes: String?

    enum CodingKeys: String, CodingKey {
        case rpm
        case rph
        case rpd
        case tpm
        case tph
        case tpd
        case inputTpm = "input_tpm"
        case outputTpm = "output_tpm"
        case concurrency
        case tier
        case sourceURL = "source_url"
        case lastVerified = "last_verified"
        case notes
    }
}

public struct HarnModelArchitecture: Codable, Sendable, Equatable {
    public let parameterCountB: Double?
    public let activeParameterCountB: Double?
    public let moe: Bool?
    public let quantization: String?
    public let precision: String?
    public let license: String?
    public let tokenizer: String?
    public let knowledgeCutoff: String?
    public let sourceURL: String?
    public let lastVerified: String?

    enum CodingKeys: String, CodingKey {
        case parameterCountB = "parameter_count_b"
        case activeParameterCountB = "active_parameter_count_b"
        case moe
        case quantization
        case precision
        case license
        case tokenizer
        case knowledgeCutoff = "knowledge_cutoff"
        case sourceURL = "source_url"
        case lastVerified = "last_verified"
    }
}

public struct HarnLocalMemory: Codable, Sendable, Equatable {
    public let measuredResidentGiB: Double?
    public let measuredContextWindow: Int?
    public let measuredCacheType: String?
    public let baseResidentGiB: Double?
    public let kvCacheGiBPer1KContext: Double?
    public let cacheTypeMultipliers: [String: Double]?
    public let defaultCacheType: String?
    public let safetyMarginGiB: Double?
    public let maxRecommendedContext: Int?
    public let sourceURL: String?
    public let lastVerified: String?
    public let notes: String?

    enum CodingKeys: String, CodingKey {
        case measuredResidentGiB = "measured_resident_gib"
        case measuredContextWindow = "measured_context_window"
        case measuredCacheType = "measured_cache_type"
        case baseResidentGiB = "base_resident_gib"
        case kvCacheGiBPer1KContext = "kv_cache_gib_per_1k_ctx"
        case cacheTypeMultipliers = "cache_type_multipliers"
        case defaultCacheType = "default_cache_type"
        case safetyMarginGiB = "safety_margin_gib"
        case maxRecommendedContext = "max_recommended_context"
        case sourceURL = "source_url"
        case lastVerified = "last_verified"
        case notes
    }
}

public struct HarnModelDeprecation: Codable, Sendable, Equatable {
    public let status: String
    public let note: String?
    public let supersededBy: String?

    enum CodingKeys: String, CodingKey {
        case status
        case note
        case supersededBy = "superseded_by"
    }
}

public struct HarnModelFastMode: Codable, Sendable, Equatable {
    public let param: String
    public let value: String
    public let betaHeader: String?
    public let otpsSpeedup: Double?
    public let status: String?
    public let pricing: HarnModelPricing?
    public let note: String?

    enum CodingKeys: String, CodingKey {
        case param
        case value
        case betaHeader = "beta_header"
        case otpsSpeedup = "otps_speedup"
        case status
        case pricing
        case note
    }
}

public struct HarnCatalogVariant: Codable, Sendable, Equatable {
    public let id: String
    public let label: String
    public let description: String
    public let modelID: String
    public let provider: String
    public let source: String

    enum CodingKeys: String, CodingKey {
        case id
        case label
        case description
        case modelID = "model_id"
        case provider
        case source
    }
}

public let harnProviderCatalogJSON = #"""
{
  "schema_version": 2,
  "schema": "https://harnlang.com/schemas/provider-catalog.v2.json",
  "generated_by": "harn providers export",
  "providers": [
    {
      "id": "anthropic",
      "display_name": "Anthropic",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://api.anthropic.com/v1",
        "chat_endpoint": "/messages"
      },
      "auth": {
        "style": "header",
        "header": "x-api-key",
        "env": [
          "ANTHROPIC_API_KEY"
        ],
        "required": true
      },
      "protocols": [
        "anthropic_messages"
      ],
      "features": [
        "prompt_caching",
        "thinking"
      ],
      "caveats": [],
      "latency_p50_ms": 2500
    },
    {
      "id": "azure_openai",
      "display_name": "Azure Openai",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://{resource}.openai.azure.com",
        "base_url_env": "AZURE_OPENAI_ENDPOINT",
        "chat_endpoint": "/openai/deployments/{deployment}/chat/completions?api-version={api_version}"
      },
      "auth": {
        "style": "azure_openai",
        "env": [
          "AZURE_OPENAI_API_KEY",
          "AZURE_OPENAI_AD_TOKEN",
          "AZURE_OPENAI_BEARER_TOKEN"
        ],
        "required": true
      },
      "protocols": [
        "azure_openai_chat_completions"
      ],
      "features": [
        "native_tools"
      ],
      "caveats": [
        "The Harn model field names the Azure deployment."
      ],
      "latency_p50_ms": 1900
    },
    {
      "id": "bedrock",
      "display_name": "Bedrock",
      "classification": "hosted",
      "endpoint": {
        "base_url": "",
        "base_url_env": "BEDROCK_BASE_URL",
        "chat_endpoint": "/model/{model}/converse"
      },
      "auth": {
        "style": "aws_sigv4",
        "env": [],
        "required": true
      },
      "protocols": [
        "bedrock_converse"
      ],
      "features": [
        "native_tools"
      ],
      "caveats": [
        "Credentials are resolved through the AWS SDK chain."
      ],
      "latency_p50_ms": 2600
    },
    {
      "id": "cerebras",
      "display_name": "Cerebras",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://api.cerebras.ai/v1",
        "base_url_env": "CEREBRAS_BASE_URL",
        "chat_endpoint": "/chat/completions",
        "completion_endpoint": "/completions"
      },
      "auth": {
        "style": "bearer",
        "env": [
          "CEREBRAS_API_KEY"
        ],
        "required": true
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [
        "native_tools"
      ],
      "caveats": [],
      "latency_p50_ms": 150
    },
    {
      "id": "cohere",
      "display_name": "Cohere",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://api.cohere.ai/compatibility/v1",
        "base_url_env": "COHERE_BASE_URL",
        "chat_endpoint": "/chat/completions",
        "completion_endpoint": "/completions"
      },
      "auth": {
        "style": "bearer",
        "env": [
          "COHERE_API_KEY"
        ],
        "required": true
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [
        "native_tools",
        "reasoning"
      ],
      "caveats": [],
      "latency_p50_ms": 1900
    },
    {
      "id": "dashscope",
      "display_name": "Dashscope",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
        "base_url_env": "DASHSCOPE_BASE_URL",
        "chat_endpoint": "/chat/completions",
        "completion_endpoint": "/completions"
      },
      "auth": {
        "style": "bearer",
        "env": [
          "DASHSCOPE_API_KEY"
        ],
        "required": true
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [],
      "caveats": [],
      "latency_p50_ms": 1600
    },
    {
      "id": "deepseek",
      "display_name": "Deepseek",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://api.deepseek.com/v1",
        "base_url_env": "DEEPSEEK_BASE_URL",
        "chat_endpoint": "/chat/completions",
        "completion_endpoint": "/completions"
      },
      "auth": {
        "style": "bearer",
        "env": [
          "DEEPSEEK_API_KEY"
        ],
        "required": true
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [],
      "caveats": [],
      "latency_p50_ms": 1800
    },
    {
      "id": "fireworks",
      "display_name": "Fireworks",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://api.fireworks.ai/inference/v1",
        "base_url_env": "FIREWORKS_BASE_URL",
        "chat_endpoint": "/chat/completions",
        "completion_endpoint": "/completions"
      },
      "auth": {
        "style": "bearer",
        "env": [
          "FIREWORKS_API_KEY"
        ],
        "required": true
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [],
      "caveats": [],
      "latency_p50_ms": 1400
    },
    {
      "id": "gemini",
      "display_name": "Gemini",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://generativelanguage.googleapis.com",
        "base_url_env": "GEMINI_BASE_URL",
        "chat_endpoint": "/v1beta/models"
      },
      "auth": {
        "style": "header",
        "header": "x-goog-api-key",
        "env": [
          "GEMINI_API_KEY",
          "GOOGLE_API_KEY"
        ],
        "required": true
      },
      "protocols": [
        "gemini_generate_content"
      ],
      "features": [],
      "caveats": [],
      "latency_p50_ms": 1800
    },
    {
      "id": "groq",
      "display_name": "Groq",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://api.groq.com/openai/v1",
        "base_url_env": "GROQ_BASE_URL",
        "chat_endpoint": "/chat/completions",
        "completion_endpoint": "/completions"
      },
      "auth": {
        "style": "bearer",
        "env": [
          "GROQ_API_KEY"
        ],
        "required": true
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [],
      "caveats": [],
      "latency_p50_ms": 450
    },
    {
      "id": "huggingface",
      "display_name": "Huggingface",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://router.huggingface.co/v1",
        "chat_endpoint": "/chat/completions",
        "completion_endpoint": "/completions"
      },
      "auth": {
        "style": "bearer",
        "env": [
          "HF_TOKEN",
          "HUGGINGFACE_API_KEY"
        ],
        "required": true
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [],
      "caveats": [],
      "latency_p50_ms": 2400
    },
    {
      "id": "llamacpp",
      "display_name": "Llamacpp",
      "classification": "local",
      "endpoint": {
        "base_url": "http://127.0.0.1:8001",
        "base_url_env": "LLAMACPP_BASE_URL",
        "chat_endpoint": "/v1/chat/completions",
        "completion_endpoint": "/v1/completions"
      },
      "auth": {
        "style": "none",
        "env": [],
        "required": false
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [],
      "caveats": [],
      "local_runtime": {
        "kind": "managed_process",
        "command": "llama-server",
        "model_source_env": "LLAMACPP_MODEL",
        "default_port": 8001,
        "model_arg": "--model",
        "served_model_arg": "--alias",
        "host_arg": "--host",
        "port_arg": "--port",
        "ctx_arg": "--ctx-size",
        "parallel_arg": "--parallel",
        "gpu_layers_arg": "--n-gpu-layers",
        "cache_type_k_arg": "--cache-type-k",
        "cache_type_v_arg": "--cache-type-v",
        "cache_ram_arg": "--cache-ram",
        "default_args": [
          "--jinja",
          "--reasoning",
          "off",
          "--reasoning-format",
          "deepseek",
          "--metrics",
          "--flash-attn",
          "on"
        ],
        "stop": "pid",
        "source_url": "https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md",
        "last_verified": "2026-06-05",
        "notes": "OpenAI-compatible HTTP server. Use --model-source or LLAMACPP_MODEL for the GGUF path; Harn records the launched PID for local stop."
      },
      "latency_p50_ms": 900
    },
    {
      "id": "local",
      "display_name": "Local",
      "classification": "local",
      "endpoint": {
        "base_url": "http://localhost:8000",
        "base_url_env": "LOCAL_LLM_BASE_URL",
        "chat_endpoint": "/v1/chat/completions",
        "completion_endpoint": "/v1/completions"
      },
      "auth": {
        "style": "none",
        "env": [],
        "required": false
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [],
      "caveats": [],
      "latency_p50_ms": 900
    },
    {
      "id": "minimax",
      "display_name": "Minimax",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://api.minimax.io/v1",
        "base_url_env": "MINIMAX_BASE_URL",
        "chat_endpoint": "/chat/completions",
        "completion_endpoint": "/completions"
      },
      "auth": {
        "style": "bearer",
        "env": [
          "MINIMAX_API_KEY"
        ],
        "required": true
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [],
      "caveats": [],
      "latency_p50_ms": 1700
    },
    {
      "id": "mistral",
      "display_name": "Mistral",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://api.mistral.ai/v1",
        "base_url_env": "MISTRAL_BASE_URL",
        "chat_endpoint": "/chat/completions",
        "completion_endpoint": "/completions"
      },
      "auth": {
        "style": "bearer",
        "env": [
          "MISTRAL_API_KEY"
        ],
        "required": true
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [
        "native_tools"
      ],
      "caveats": [],
      "latency_p50_ms": 1800
    },
    {
      "id": "mlx",
      "display_name": "Mlx",
      "classification": "local",
      "endpoint": {
        "base_url": "http://127.0.0.1:8002",
        "base_url_env": "MLX_BASE_URL",
        "chat_endpoint": "/v1/chat/completions",
        "completion_endpoint": "/v1/completions"
      },
      "auth": {
        "style": "none",
        "env": [],
        "required": false
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [],
      "caveats": [],
      "local_runtime": {
        "kind": "managed_process",
        "command": "mlx_lm.server",
        "model_source_env": "MLX_MODEL",
        "default_port": 8002,
        "model_arg": "--model",
        "host_arg": "--host",
        "port_arg": "--port",
        "stop": "pid",
        "source_url": "https://github.com/ml-explore/mlx-lm/blob/main/mlx_lm/SERVER.md",
        "last_verified": "2026-06-05",
        "notes": "OpenAI-like MLX-LM server. Use --model-source or MLX_MODEL for an MLX-compatible path or Hugging Face repo id."
      },
      "latency_p50_ms": 900
    },
    {
      "id": "ollama",
      "display_name": "Ollama",
      "classification": "local",
      "endpoint": {
        "base_url": "http://localhost:11434",
        "base_url_env": "OLLAMA_HOST",
        "chat_endpoint": "/api/chat",
        "completion_endpoint": "/api/generate"
      },
      "auth": {
        "style": "none",
        "env": [],
        "required": false
      },
      "protocols": [
        "ollama_native"
      ],
      "features": [],
      "caveats": [
        "Native Ollama chat returns NDJSON and can apply model-family parsers."
      ],
      "local_runtime": {
        "kind": "daemon_api",
        "command": "ollama",
        "default_port": 11434,
        "stop": "keep_alive_zero",
        "source_url": "https://github.com/ollama/ollama/blob/main/docs/api.md",
        "last_verified": "2026-06-05",
        "notes": "Load via Ollama generate/chat warmup; unload by posting an empty prompt with keep_alive=0."
      },
      "latency_p50_ms": 1200
    },
    {
      "id": "openai",
      "display_name": "Openai",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://api.openai.com/v1",
        "chat_endpoint": "/chat/completions",
        "completion_endpoint": "/completions"
      },
      "auth": {
        "style": "bearer",
        "env": [
          "OPENAI_API_KEY"
        ],
        "required": true
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [],
      "caveats": [],
      "latency_p50_ms": 1800
    },
    {
      "id": "openrouter",
      "display_name": "Openrouter",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://openrouter.ai/api/v1",
        "chat_endpoint": "/chat/completions",
        "completion_endpoint": "/completions"
      },
      "auth": {
        "style": "bearer",
        "env": [
          "OPENROUTER_API_KEY"
        ],
        "required": true
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [],
      "caveats": [],
      "latency_p50_ms": 2200
    },
    {
      "id": "tgi",
      "display_name": "Tgi",
      "classification": "local",
      "endpoint": {
        "base_url": "http://localhost:8080",
        "base_url_env": "TGI_BASE_URL",
        "chat_endpoint": "/v1/chat/completions",
        "completion_endpoint": "/v1/completions"
      },
      "auth": {
        "style": "none",
        "env": [],
        "required": false
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [],
      "caveats": [],
      "latency_p50_ms": 950
    },
    {
      "id": "together",
      "display_name": "Together",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://api.together.xyz/v1",
        "base_url_env": "TOGETHER_AI_BASE_URL",
        "chat_endpoint": "/chat/completions",
        "completion_endpoint": "/completions"
      },
      "auth": {
        "style": "bearer",
        "env": [
          "TOGETHER_AI_API_KEY"
        ],
        "required": true
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [],
      "caveats": [],
      "latency_p50_ms": 1600
    },
    {
      "id": "vertex",
      "display_name": "Vertex",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://aiplatform.googleapis.com/v1",
        "base_url_env": "VERTEX_AI_BASE_URL",
        "chat_endpoint": "/projects/{project}/locations/{location}/publishers/google/models/{model}:generateContent"
      },
      "auth": {
        "style": "bearer",
        "env": [
          "VERTEX_AI_ACCESS_TOKEN",
          "GOOGLE_OAUTH_ACCESS_TOKEN",
          "GOOGLE_APPLICATION_CREDENTIALS"
        ],
        "required": true
      },
      "protocols": [
        "vertex_generate_content"
      ],
      "features": [
        "native_tools"
      ],
      "caveats": [],
      "latency_p50_ms": 2100
    },
    {
      "id": "vllm",
      "display_name": "Vllm",
      "classification": "local",
      "endpoint": {
        "base_url": "http://localhost:8000",
        "base_url_env": "VLLM_BASE_URL",
        "chat_endpoint": "/v1/chat/completions",
        "completion_endpoint": "/v1/completions"
      },
      "auth": {
        "style": "none",
        "env": [],
        "required": false
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [],
      "caveats": [],
      "latency_p50_ms": 800
    },
    {
      "id": "xai",
      "display_name": "Xai",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://api.x.ai/v1",
        "base_url_env": "XAI_BASE_URL",
        "chat_endpoint": "/chat/completions",
        "completion_endpoint": "/completions"
      },
      "auth": {
        "style": "bearer",
        "env": [
          "XAI_API_KEY"
        ],
        "required": true
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [
        "responses_api",
        "native_tools",
        "reasoning"
      ],
      "caveats": [],
      "latency_p50_ms": 1600
    },
    {
      "id": "zai",
      "display_name": "Zai",
      "classification": "hosted",
      "endpoint": {
        "base_url": "https://api.z.ai/v1",
        "base_url_env": "ZAI_BASE_URL",
        "chat_endpoint": "/chat/completions",
        "completion_endpoint": "/completions"
      },
      "auth": {
        "style": "bearer",
        "env": [
          "ZAI_API_KEY",
          "ZHIPU_API_KEY"
        ],
        "required": true
      },
      "protocols": [
        "openai_chat_completions"
      ],
      "features": [],
      "caveats": [],
      "latency_p50_ms": 1900
    }
  ],
  "models": [
    {
      "id": "claude-3-5-haiku-20241022",
      "name": "Claude Haiku 3.5",
      "provider": "anthropic",
      "aliases": [],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "tool_use",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "xml_tagged",
        "supports_assistant_prefill": true,
        "prefers_role_developer": false,
        "prefers_xml_tools": true,
        "thinking_block_style": "thinking_blocks"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 0.8,
        "output_per_mtok": 4.0,
        "cache_read_per_mtok": 0.08,
        "cache_write_per_mtok": 1.0
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "audio",
        "pdf",
        "files",
        "prompt_caching",
        "thinking",
        "structured_output"
      ],
      "family": "anthropic-claude",
      "lineage": "claude-haiku",
      "tier": "small",
      "open_weight": false,
      "strengths": [
        "speed",
        "cheap",
        "summarization",
        "tool_use"
      ]
    },
    {
      "id": "claude-3-5-sonnet-20240620",
      "name": "Claude Sonnet 3.5 (2024-06-20)",
      "provider": "anthropic",
      "aliases": [],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "tool_use",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "xml_tagged",
        "supports_assistant_prefill": true,
        "prefers_role_developer": false,
        "prefers_xml_tools": true,
        "thinking_block_style": "thinking_blocks"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 3.0,
        "output_per_mtok": 15.0,
        "cache_read_per_mtok": 0.3,
        "cache_write_per_mtok": 3.75
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "audio",
        "pdf",
        "files",
        "prompt_caching",
        "thinking",
        "structured_output"
      ],
      "family": "anthropic-claude",
      "lineage": "claude-sonnet-opus",
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "coding",
        "reasoning",
        "tool_use",
        "long_context"
      ]
    },
    {
      "id": "claude-3-5-sonnet-20241022",
      "name": "Claude Sonnet 3.5 (2024-10-22)",
      "provider": "anthropic",
      "aliases": [],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "tool_use",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "xml_tagged",
        "supports_assistant_prefill": true,
        "prefers_role_developer": false,
        "prefers_xml_tools": true,
        "thinking_block_style": "thinking_blocks"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 3.0,
        "output_per_mtok": 15.0,
        "cache_read_per_mtok": 0.3,
        "cache_write_per_mtok": 3.75
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "audio",
        "pdf",
        "files",
        "prompt_caching",
        "thinking",
        "structured_output"
      ],
      "family": "anthropic-claude",
      "lineage": "claude-sonnet-opus",
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "coding",
        "reasoning",
        "tool_use",
        "long_context"
      ]
    },
    {
      "id": "claude-3-opus-20240229",
      "name": "Claude Opus 3",
      "provider": "anthropic",
      "aliases": [],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "tool_use",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "xml_tagged",
        "supports_assistant_prefill": true,
        "prefers_role_developer": false,
        "prefers_xml_tools": true,
        "thinking_block_style": "thinking_blocks"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 15.0,
        "output_per_mtok": 75.0,
        "cache_read_per_mtok": 1.5,
        "cache_write_per_mtok": 18.75
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "audio",
        "pdf",
        "files",
        "prompt_caching",
        "thinking",
        "structured_output"
      ],
      "family": "anthropic-claude",
      "lineage": "claude-sonnet-opus",
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "reasoning",
        "long_context"
      ]
    },
    {
      "id": "claude-fable-5",
      "name": "Claude Fable 5",
      "provider": "anthropic",
      "aliases": [
        "fable"
      ],
      "context_window": 1000000,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": [
          "bm25",
          "regex"
        ],
        "max_tools": 10000
      },
      "structured_output": "tool_use",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "xml_tagged",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": true,
        "thinking_block_style": "thinking_blocks"
      },
      "reasoning": {
        "modes": [
          "adaptive"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": true,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 10.0,
        "output_per_mtok": 50.0,
        "cache_read_per_mtok": 1.0,
        "cache_write_per_mtok": 12.5
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "tool_search",
        "vision",
        "audio",
        "pdf",
        "files",
        "prompt_caching",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "anthropic-claude",
      "lineage": "claude-sonnet-opus",
      "complementary_with": [
        "openai-gpt",
        "google-gemini",
        "qwen",
        "deepseek",
        "kimi"
      ],
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "reasoning",
        "coding",
        "long_context",
        "agentic"
      ],
      "benchmarks": {
        "swe_bench_pro": 80.3
      }
    },
    {
      "id": "claude-haiku-4-5-20251001",
      "name": "Claude Haiku 4.5",
      "provider": "anthropic",
      "aliases": [
        "haiku"
      ],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": [
          "bm25",
          "regex"
        ],
        "max_tools": 10000
      },
      "structured_output": "tool_use",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "xml_tagged",
        "supports_assistant_prefill": true,
        "prefers_role_developer": false,
        "prefers_xml_tools": true,
        "thinking_block_style": "thinking_blocks"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 1.0,
        "output_per_mtok": 5.0,
        "cache_read_per_mtok": 0.1,
        "cache_write_per_mtok": 1.25
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "tool_search",
        "vision",
        "audio",
        "pdf",
        "files",
        "prompt_caching",
        "thinking",
        "structured_output"
      ],
      "family": "anthropic-claude",
      "lineage": "claude-haiku",
      "tier": "mid",
      "open_weight": false,
      "strengths": [
        "speed",
        "cheap",
        "coding",
        "tool_use",
        "summarization"
      ]
    },
    {
      "id": "claude-opus-4-1-20250805",
      "name": "Claude Opus 4.1",
      "provider": "anthropic",
      "aliases": [],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": [
          "bm25",
          "regex"
        ],
        "max_tools": 10000
      },
      "structured_output": "tool_use",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "xml_tagged",
        "supports_assistant_prefill": true,
        "prefers_role_developer": false,
        "prefers_xml_tools": true,
        "thinking_block_style": "thinking_blocks"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 15.0,
        "output_per_mtok": 75.0,
        "cache_read_per_mtok": 1.5,
        "cache_write_per_mtok": 18.75
      },
      "deprecation": {
        "status": "deprecated",
        "note": "Superseded by claude-opus-4-8. No formal sunset yet; switch when convenient.",
        "superseded_by": "claude-opus-4-8"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "tool_search",
        "vision",
        "audio",
        "pdf",
        "files",
        "prompt_caching",
        "thinking",
        "structured_output"
      ],
      "family": "anthropic-claude",
      "lineage": "claude-sonnet-opus",
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "reasoning",
        "coding",
        "long_context",
        "agentic"
      ],
      "benchmarks": {
        "swe_bench_verified": 78.9
      }
    },
    {
      "id": "claude-opus-4-20250514",
      "name": "Claude Opus 4",
      "provider": "anthropic",
      "aliases": [],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": [
          "bm25",
          "regex"
        ],
        "max_tools": 10000
      },
      "structured_output": "tool_use",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "xml_tagged",
        "supports_assistant_prefill": true,
        "prefers_role_developer": false,
        "prefers_xml_tools": true,
        "thinking_block_style": "thinking_blocks"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 15.0,
        "output_per_mtok": 75.0,
        "cache_read_per_mtok": 1.5,
        "cache_write_per_mtok": 18.75
      },
      "deprecation": {
        "status": "deprecated",
        "note": "Sunset 2026-06-15 per Anthropic deprecations page. Replaced by claude-opus-4-8.",
        "superseded_by": "claude-opus-4-8"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "tool_search",
        "vision",
        "audio",
        "pdf",
        "files",
        "prompt_caching",
        "thinking",
        "structured_output"
      ],
      "family": "anthropic-claude",
      "lineage": "claude-sonnet-opus",
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "reasoning",
        "coding",
        "long_context",
        "agentic"
      ],
      "benchmarks": {
        "swe_bench_verified": 77.6
      }
    },
    {
      "id": "claude-opus-4-6",
      "name": "Claude Opus 4.6",
      "provider": "anthropic",
      "aliases": [],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": [
          "bm25",
          "regex"
        ],
        "max_tools": 10000
      },
      "structured_output": "tool_use",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "xml_tagged",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": true,
        "thinking_block_style": "thinking_blocks"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": true,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 5.0,
        "output_per_mtok": 25.0,
        "cache_read_per_mtok": 0.5,
        "cache_write_per_mtok": 6.25
      },
      "deprecation": {
        "status": "deprecated",
        "note": "Superseded by claude-opus-4-8. No formal sunset yet; switch when convenient.",
        "superseded_by": "claude-opus-4-8"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "tool_search",
        "vision",
        "audio",
        "pdf",
        "files",
        "prompt_caching",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "anthropic-claude",
      "lineage": "claude-sonnet-opus",
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "reasoning",
        "coding",
        "long_context",
        "agentic"
      ],
      "benchmarks": {
        "swe_bench_pro": 53.4,
        "swe_bench_verified": 80.8
      },
      "fast_mode": {
        "param": "speed",
        "value": "fast",
        "beta_header": "fast-mode-2026-02-01",
        "otps_speedup": 2.5,
        "status": "deprecated",
        "pricing": {
          "input_per_mtok": 30.0,
          "output_per_mtok": 150.0,
          "cache_read_per_mtok": 3.0,
          "cache_write_per_mtok": 37.5
        },
        "note": "Deprecated at the Opus 4.8 launch; removed ~30 days later, after which speed=fast silently falls back to standard speed/pricing. Migrate to Opus 4.8 or 4.7 fast mode."
      }
    },
    {
      "id": "claude-opus-4-7",
      "name": "Claude Opus 4.7",
      "provider": "anthropic",
      "aliases": [],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": [
          "bm25",
          "regex"
        ],
        "max_tools": 10000
      },
      "structured_output": "tool_use",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "xml_tagged",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": true,
        "thinking_block_style": "thinking_blocks"
      },
      "reasoning": {
        "modes": [
          "adaptive"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": true,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 5.0,
        "output_per_mtok": 25.0,
        "cache_read_per_mtok": 0.5,
        "cache_write_per_mtok": 6.25
      },
      "deprecation": {
        "status": "deprecated",
        "note": "Superseded by claude-opus-4-8. No formal sunset yet; switch when convenient.",
        "superseded_by": "claude-opus-4-8"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "tool_search",
        "vision",
        "audio",
        "pdf",
        "files",
        "prompt_caching",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "anthropic-claude",
      "lineage": "claude-opus-adaptive",
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "reasoning",
        "coding",
        "long_context",
        "agentic"
      ],
      "benchmarks": {
        "swe_bench_pro": 64.3,
        "swe_bench_verified": 87.6
      },
      "fast_mode": {
        "param": "speed",
        "value": "fast",
        "beta_header": "fast-mode-2026-02-01",
        "otps_speedup": 2.5,
        "status": "research_preview",
        "pricing": {
          "input_per_mtok": 30.0,
          "output_per_mtok": 150.0,
          "cache_read_per_mtok": 3.0,
          "cache_write_per_mtok": 37.5
        },
        "note": "Claude API + Managed Agents only. Migrate to Opus 4.8 fast mode for the cheaper 2x rate."
      }
    },
    {
      "id": "claude-opus-4-8",
      "name": "Claude Opus 4.8",
      "provider": "anthropic",
      "aliases": [
        "opus"
      ],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": [
          "bm25",
          "regex"
        ],
        "max_tools": 10000
      },
      "structured_output": "tool_use",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "xml_tagged",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": true,
        "thinking_block_style": "thinking_blocks"
      },
      "reasoning": {
        "modes": [
          "adaptive"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": true,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 5.0,
        "output_per_mtok": 25.0,
        "cache_read_per_mtok": 0.5,
        "cache_write_per_mtok": 6.25
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "tool_search",
        "vision",
        "audio",
        "pdf",
        "files",
        "prompt_caching",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "anthropic-claude",
      "lineage": "claude-opus-adaptive",
      "complementary_with": [
        "openai-gpt",
        "google-gemini",
        "qwen",
        "deepseek",
        "kimi"
      ],
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "reasoning",
        "coding",
        "long_context",
        "agentic"
      ],
      "benchmarks": {
        "swe_bench_pro": 69.2,
        "swe_bench_verified": 88.6
      },
      "fast_mode": {
        "param": "speed",
        "value": "fast",
        "beta_header": "fast-mode-2026-02-01",
        "otps_speedup": 2.5,
        "status": "research_preview",
        "pricing": {
          "input_per_mtok": 10.0,
          "output_per_mtok": 50.0,
          "cache_read_per_mtok": 1.0,
          "cache_write_per_mtok": 12.5
        },
        "note": "Claude API + Managed Agents only (not Bedrock/Vertex/Foundry); excluded from Batch and Priority Tier. Switching speed invalidates the prompt cache. Waitlist/account-manager gated."
      }
    },
    {
      "id": "claude-sonnet-4-20250514",
      "name": "Claude Sonnet 4",
      "provider": "anthropic",
      "aliases": [],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": [
          "bm25",
          "regex"
        ],
        "max_tools": 10000
      },
      "structured_output": "tool_use",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "xml_tagged",
        "supports_assistant_prefill": true,
        "prefers_role_developer": false,
        "prefers_xml_tools": true,
        "thinking_block_style": "thinking_blocks"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 3.0,
        "output_per_mtok": 15.0,
        "cache_read_per_mtok": 0.3,
        "cache_write_per_mtok": 3.75
      },
      "deprecation": {
        "status": "deprecated",
        "note": "Sunset 2026-06-15 per Anthropic deprecations page. Replaced by claude-sonnet-4-6."
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "tool_search",
        "vision",
        "audio",
        "pdf",
        "files",
        "prompt_caching",
        "thinking",
        "structured_output"
      ],
      "family": "anthropic-claude",
      "lineage": "claude-sonnet-opus",
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "coding",
        "reasoning",
        "tool_use",
        "long_context",
        "agentic"
      ],
      "benchmarks": {
        "swe_bench_verified": 49.0
      }
    },
    {
      "id": "claude-sonnet-4-5",
      "name": "Claude Sonnet 4.5",
      "provider": "anthropic",
      "aliases": [],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": [
          "bm25",
          "regex"
        ],
        "max_tools": 10000
      },
      "structured_output": "tool_use",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "xml_tagged",
        "supports_assistant_prefill": true,
        "prefers_role_developer": false,
        "prefers_xml_tools": true,
        "thinking_block_style": "thinking_blocks"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 3.0,
        "output_per_mtok": 15.0,
        "cache_read_per_mtok": 0.3,
        "cache_write_per_mtok": 3.75
      },
      "deprecation": {
        "status": "deprecated",
        "note": "Sunset 2026-05-15 per Anthropic deprecations page. Replaced by claude-sonnet-4-6."
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "tool_search",
        "vision",
        "audio",
        "pdf",
        "files",
        "prompt_caching",
        "thinking",
        "structured_output"
      ],
      "family": "anthropic-claude",
      "lineage": "claude-sonnet-opus",
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "coding",
        "reasoning",
        "tool_use",
        "long_context",
        "agentic"
      ],
      "benchmarks": {
        "swe_bench_verified": 77.2
      }
    },
    {
      "id": "claude-sonnet-4-6",
      "name": "Claude Sonnet 4.6",
      "provider": "anthropic",
      "aliases": [
        "frontier",
        "sonnet",
        "tier/frontier"
      ],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": [
          "bm25",
          "regex"
        ],
        "max_tools": 10000
      },
      "structured_output": "tool_use",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "xml_tagged",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": true,
        "thinking_block_style": "thinking_blocks"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 3.0,
        "output_per_mtok": 15.0,
        "cache_read_per_mtok": 0.3,
        "cache_write_per_mtok": 3.75
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "frontier"
      ],
      "capability_tags": [
        "streaming",
        "tools",
        "tool_search",
        "vision",
        "audio",
        "pdf",
        "files",
        "prompt_caching",
        "thinking",
        "structured_output"
      ],
      "family": "anthropic-claude",
      "lineage": "claude-sonnet-opus",
      "complementary_with": [
        "openai-gpt",
        "google-gemini",
        "qwen",
        "deepseek",
        "kimi"
      ],
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "coding",
        "reasoning",
        "tool_use",
        "long_context",
        "agentic"
      ],
      "benchmarks": {
        "swe_bench_verified": 79.6
      }
    },
    {
      "id": "claude-sonnet-4-7",
      "name": "Claude Sonnet 4.7",
      "provider": "anthropic",
      "aliases": [],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": [
          "bm25",
          "regex"
        ],
        "max_tools": 10000
      },
      "structured_output": "tool_use",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "xml_tagged",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": true,
        "thinking_block_style": "thinking_blocks"
      },
      "reasoning": {
        "modes": [
          "adaptive"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 3.0,
        "output_per_mtok": 15.0,
        "cache_read_per_mtok": 0.3,
        "cache_write_per_mtok": 3.75
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "tool_search",
        "vision",
        "audio",
        "pdf",
        "files",
        "prompt_caching",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "anthropic-claude",
      "lineage": "claude-sonnet-opus",
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "coding",
        "reasoning",
        "tool_use",
        "long_context",
        "agentic"
      ],
      "benchmarks": {
        "swe_bench_verified": 81.0
      }
    },
    {
      "id": "gpt-oss-120b",
      "name": "GPT-OSS 120B (Cerebras)",
      "provider": "cerebras",
      "aliases": [],
      "context_window": 131072,
      "logical_model": "openai-gpt-oss-120b",
      "equivalence_group": "openai-gpt-oss-120b",
      "served_variant": "cerebras-wafer-scale",
      "api_dialect": "openai_chat",
      "rate_limits": {
        "rpm": 5,
        "tpm": 30000,
        "tph": 1000000,
        "tpd": 1000000,
        "tier": "free",
        "source_url": "https://inference-docs.cerebras.ai/support/rate-limits",
        "last_verified": "2026-06-05",
        "notes": "Published Free Trial row; Developer (Pay as You Go) lists 1K RPM and 1M TPM with no hourly/daily cap."
      },
      "architecture": {
        "parameter_count_b": 117.0,
        "active_parameter_count_b": 5.1,
        "moe": true,
        "license": "Apache-2.0",
        "source_url": "https://developers.openai.com/api/docs/models/gpt-oss-120b",
        "last_verified": "2026-06-05"
      },
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": false,
        "text": true,
        "preferred_format": "json",
        "parity": "text_only",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "reasoning_summary"
      },
      "reasoning": {
        "modes": [
          "effort"
        ],
        "effort_supported": true,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.35,
        "output_per_mtok": 0.75,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "openai-gpt",
      "lineage": "openai-legacy",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "speed",
        "cheap",
        "tool_use"
      ]
    },
    {
      "id": "llama-3.3-70b",
      "name": "Llama 3.3 70B (Cerebras, dedicated legacy)",
      "provider": "cerebras",
      "aliases": [],
      "context_window": 131072,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.85,
        "output_per_mtok": 1.2,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "deprecated",
        "note": "Cerebras no longer returns this model from public discovery; use a provisioned dedicated endpoint alias if your organization still serves these weights."
      },
      "availability": "dedicated",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "llama",
      "lineage": "llama",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "speed",
        "tool_use"
      ]
    },
    {
      "id": "zai-glm-4.7",
      "name": "Z.ai GLM 4.7 (Cerebras)",
      "provider": "cerebras",
      "aliases": [],
      "context_window": 131072,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "effort"
        ],
        "effort_supported": true,
        "none_supported": true,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 2.25,
        "output_per_mtok": 2.75,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "glm",
      "lineage": "glm",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "speed",
        "coding",
        "agentic",
        "tool_use",
        "reasoning"
      ]
    },
    {
      "id": "command-a-plus-05-2026",
      "name": "Command A+",
      "provider": "cohere",
      "aliases": [
        "cohere",
        "command-a-plus"
      ],
      "context_window": 256000,
      "logical_model": "command-a-plus-05-2026",
      "equivalence_group": "command-a-plus-05-2026",
      "api_dialect": "openai_chat_compat",
      "rate_limits": {
        "rpm": 20,
        "tier": "trial",
        "source_url": "https://docs.cohere.com/docs/rate-limits",
        "last_verified": "2026-06-05",
        "notes": "Command A+ trial keys are 20 RPM and 1,000 calls/month; production is sales-gated. Token pricing is the public Command A+ API tariff."
      },
      "architecture": {
        "parameter_count_b": 111.0,
        "moe": true,
        "source_url": "https://docs.cohere.com/docs/command-a-plus",
        "last_verified": "2026-06-05"
      },
      "modalities": {
        "input": [
          "text",
          "image"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "reasoning_summary"
      },
      "reasoning": {
        "modes": [
          "adaptive"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 2.5,
        "output_per_mtok": 10.0,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "cohere",
      "lineage": "cohere",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "agentic",
        "tool_use",
        "reasoning",
        "multilingual",
        "vision"
      ]
    },
    {
      "id": "deepseek-chat",
      "name": "DeepSeek Chat (legacy → V4 Flash, non-thinking)",
      "provider": "deepseek",
      "aliases": [],
      "context_window": 1000000,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 0.14,
        "output_per_mtok": 0.28,
        "cache_read_per_mtok": 0.0028,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "deprecated",
        "note": "Maps to deepseek-v4-flash non-thinking mode; retirement 2026-07-24 15:59 UTC per provider docs."
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "prompt_caching",
        "structured_output"
      ],
      "family": "deepseek",
      "lineage": "deepseek",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "coding",
        "tool_use"
      ]
    },
    {
      "id": "deepseek-reasoner",
      "name": "DeepSeek Reasoner (legacy → V4 Flash, thinking)",
      "provider": "deepseek",
      "aliases": [],
      "context_window": 1000000,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 0.14,
        "output_per_mtok": 0.28,
        "cache_read_per_mtok": 0.0028,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "deprecated",
        "note": "Maps to deepseek-v4-flash thinking mode; retirement 2026-07-24 15:59 UTC per provider docs."
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "prompt_caching",
        "thinking",
        "structured_output"
      ],
      "family": "deepseek",
      "lineage": "deepseek",
      "tier": "reasoning",
      "open_weight": true,
      "strengths": [
        "reasoning",
        "coding"
      ]
    },
    {
      "id": "deepseek-v4-flash",
      "name": "DeepSeek V4 Flash",
      "provider": "deepseek",
      "aliases": [
        "deepseek",
        "deepseek-flash",
        "deepseek-v4-flash"
      ],
      "context_window": 1000000,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 0.14,
        "output_per_mtok": 0.28,
        "cache_read_per_mtok": 0.0028,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "prompt_caching",
        "thinking",
        "structured_output"
      ],
      "family": "deepseek",
      "lineage": "deepseek",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "speed",
        "cheap",
        "tool_use",
        "reasoning",
        "long_context"
      ],
      "benchmarks": {
        "aa_intelligence_index": 58.0
      }
    },
    {
      "id": "deepseek-v4-pro",
      "name": "DeepSeek V4 Pro",
      "provider": "deepseek",
      "aliases": [
        "deepseek-pro",
        "deepseek-v4-pro"
      ],
      "context_window": 1000000,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 0.435,
        "output_per_mtok": 0.87,
        "cache_read_per_mtok": 0.003625,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "prompt_caching",
        "thinking",
        "structured_output"
      ],
      "family": "deepseek",
      "lineage": "deepseek",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "reasoning",
        "coding",
        "tool_use",
        "long_context"
      ],
      "benchmarks": {
        "aa_intelligence_index": 68.0
      }
    },
    {
      "id": "gemini-2.5-flash",
      "name": "Gemini 2.5 Flash",
      "provider": "gemini",
      "aliases": [],
      "context_window": 1048576,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "reasoning_summary"
      },
      "reasoning": {
        "modes": [
          "enabled",
          "adaptive",
          "effort"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.1,
        "output_per_mtok": 0.4,
        "cache_read_per_mtok": 0.025,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "audio",
        "pdf",
        "files",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "google-gemini",
      "lineage": "gemini-flash",
      "complementary_with": [
        "anthropic-claude",
        "openai-gpt",
        "qwen",
        "deepseek",
        "kimi"
      ],
      "tier": "mid",
      "open_weight": false,
      "strengths": [
        "speed",
        "long_context",
        "vision",
        "cheap",
        "tool_use"
      ]
    },
    {
      "id": "gemini-2.5-pro",
      "name": "Gemini 2.5 Pro",
      "provider": "gemini",
      "aliases": [],
      "context_window": 2097152,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "reasoning_summary"
      },
      "reasoning": {
        "modes": [
          "enabled",
          "adaptive",
          "effort"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 1.25,
        "output_per_mtok": 5.0,
        "cache_read_per_mtok": 0.3125,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "audio",
        "pdf",
        "files",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "google-gemini",
      "lineage": "gemini-pro",
      "complementary_with": [
        "anthropic-claude",
        "openai-gpt",
        "qwen",
        "deepseek",
        "kimi"
      ],
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "long_context",
        "vision",
        "reasoning",
        "coding"
      ],
      "benchmarks": {
        "swe_bench_verified": 63.8
      }
    },
    {
      "id": "models/gemma-4-26b-a4b-it",
      "name": "Gemma 4 26B MoE (Gemini API)",
      "provider": "gemini",
      "aliases": [
        "gemini-gemma4-26b"
      ],
      "context_window": 262144,
      "modalities": {
        "input": [
          "text",
          "image"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "files",
        "thinking",
        "structured_output"
      ],
      "family": "gemma",
      "lineage": "gemma4",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "vision",
        "cheap",
        "speed"
      ]
    },
    {
      "id": "models/gemma-4-31b-it",
      "name": "Gemma 4 31B (Gemini API)",
      "provider": "gemini",
      "aliases": [
        "gemini-gemma4-31b"
      ],
      "context_window": 262144,
      "modalities": {
        "input": [
          "text",
          "image"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "files",
        "thinking",
        "structured_output"
      ],
      "family": "gemma",
      "lineage": "gemma4",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "vision",
        "reasoning",
        "coding",
        "cheap"
      ]
    },
    {
      "id": "groq/openai/gpt-oss-120b",
      "name": "GPT-OSS 120B (Groq)",
      "provider": "groq",
      "aliases": [],
      "context_window": 131072,
      "logical_model": "openai-gpt-oss-120b",
      "equivalence_group": "openai-gpt-oss-120b",
      "served_variant": "groq-lpu",
      "wire_model": "openai/gpt-oss-120b",
      "api_dialect": "openai_chat",
      "rate_limits": {
        "rpm": 1000,
        "tpm": 250000,
        "tier": "developer",
        "source_url": "https://console.groq.com/docs/models",
        "last_verified": "2026-06-05"
      },
      "architecture": {
        "parameter_count_b": 117.0,
        "active_parameter_count_b": 5.1,
        "moe": true,
        "license": "Apache-2.0",
        "source_url": "https://developers.openai.com/api/docs/models/gpt-oss-120b",
        "last_verified": "2026-06-05"
      },
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": false,
        "text": true,
        "preferred_format": "json",
        "parity": "text_only",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "reasoning_summary"
      },
      "reasoning": {
        "modes": [
          "effort"
        ],
        "effort_supported": true,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.15,
        "output_per_mtok": 0.6,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "openai-gpt",
      "lineage": "openai-legacy",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "speed",
        "cheap",
        "tool_use",
        "reasoning"
      ]
    },
    {
      "id": "llama-3.1-8b-instant",
      "name": "Llama 3.1 8B Instant (Groq)",
      "provider": "groq",
      "aliases": [],
      "context_window": 131072,
      "logical_model": "llama-3.1-8b-instruct",
      "equivalence_group": "llama-3.1-8b-instruct",
      "served_variant": "groq-lpu",
      "api_dialect": "openai_chat",
      "rate_limits": {
        "rpm": 1000,
        "tpm": 250000,
        "tier": "developer",
        "source_url": "https://console.groq.com/docs/models",
        "last_verified": "2026-06-05"
      },
      "architecture": {
        "parameter_count_b": 8.0,
        "moe": false,
        "license": "Llama 3.1 Community",
        "source_url": "https://console.groq.com/docs/models",
        "last_verified": "2026-06-05"
      },
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.05,
        "output_per_mtok": 0.08,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "llama",
      "lineage": "llama",
      "tier": "small",
      "open_weight": true,
      "strengths": [
        "speed",
        "cheap"
      ]
    },
    {
      "id": "llama-3.3-70b-versatile",
      "name": "Llama 3.3 70B Versatile (Groq)",
      "provider": "groq",
      "aliases": [],
      "context_window": 131072,
      "logical_model": "llama-3.3-70b-instruct",
      "equivalence_group": "llama-3.3-70b-instruct",
      "served_variant": "groq-lpu",
      "api_dialect": "openai_chat",
      "rate_limits": {
        "rpm": 1000,
        "tpm": 300000,
        "tier": "developer",
        "source_url": "https://console.groq.com/docs/models",
        "last_verified": "2026-06-05"
      },
      "architecture": {
        "parameter_count_b": 70.0,
        "moe": false,
        "license": "Llama 3.3 Community",
        "source_url": "https://console.groq.com/docs/models",
        "last_verified": "2026-06-05"
      },
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.59,
        "output_per_mtok": 0.79,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "llama",
      "lineage": "llama",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "speed",
        "cheap",
        "tool_use"
      ]
    },
    {
      "id": "qwen3.6-35b-a3b",
      "name": "Qwen3.6 35B (llama.cpp)",
      "provider": "llamacpp",
      "aliases": [
        "llamacpp-qwen3.6"
      ],
      "context_window": 262144,
      "runtime_context_window": 65536,
      "stream_timeout": 900.0,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": false,
        "text": true,
        "preferred_format": "json",
        "parity": "text_only",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": true
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "local"
      ],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "structured_output"
      ],
      "family": "qwen",
      "lineage": "qwen3",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "coding"
      ]
    },
    {
      "id": "qwen3.6-35b-a3b-ud-q4-k-xl",
      "name": "Qwen3.6 35B (Unsloth Q4_K_XL, llama.cpp)",
      "provider": "llamacpp",
      "aliases": [
        "llamacpp-qwen3.6-q4",
        "local-qwen3.6",
        "local-qwen3.6-gguf"
      ],
      "context_window": 262144,
      "local_memory": {
        "measured_resident_gib": 19.5,
        "measured_context_window": 8192,
        "measured_cache_type": "q8_0",
        "base_resident_gib": 19.0,
        "kv_cache_gib_per_1k_ctx": 0.1,
        "cache_type_multipliers": {
          "f16": 2.0,
          "q4_0": 0.5,
          "q4_1": 0.5,
          "q5_0": 0.625,
          "q5_1": 0.625,
          "q8_0": 1.0
        },
        "default_cache_type": "q8_0",
        "safety_margin_gib": 4.0,
        "max_recommended_context": 65536,
        "last_verified": "2026-06-05",
        "notes": "Empirical llama-server RSS was about 19.5 GiB at ctx=8192 with q8_0 KV on Apple Silicon. Treat as a conservative launch guard, not an exact allocator model."
      },
      "runtime_context_window": 65536,
      "stream_timeout": 900.0,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "native",
        "parity_notes": "Harn-managed llama.cpp launch plus one-tool probe passed native and streaming native on 2026-06-05.",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": true
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "local"
      ],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "structured_output"
      ],
      "family": "qwen",
      "lineage": "qwen3",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "coding"
      ]
    },
    {
      "id": "qwen3.6-35b-a3b-ud-q5-k-xl",
      "name": "Qwen3.6 35B (Unsloth Q5_K_XL, llama.cpp)",
      "provider": "llamacpp",
      "aliases": [],
      "context_window": 262144,
      "runtime_context_window": 65536,
      "stream_timeout": 900.0,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": false,
        "text": true,
        "preferred_format": "json",
        "parity": "text_only",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": true
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "local"
      ],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "structured_output"
      ],
      "family": "qwen",
      "lineage": "qwen3",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "coding"
      ]
    },
    {
      "id": "gemma-4-12b-it",
      "name": "Gemma 4 12B (local)",
      "provider": "local",
      "aliases": [
        "local-gemma4-12b"
      ],
      "context_window": 131072,
      "stream_timeout": 300.0,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "local"
      ],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "structured_output"
      ],
      "family": "gemma",
      "lineage": "gemma4",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "cheap",
        "speed"
      ]
    },
    {
      "id": "gemma-4-26b-a4b-it",
      "name": "Gemma 4 26B MoE (local)",
      "provider": "local",
      "aliases": [
        "local-gemma4",
        "local-gemma4-26b"
      ],
      "context_window": 131072,
      "stream_timeout": 600.0,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "local"
      ],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "structured_output"
      ],
      "family": "gemma",
      "lineage": "gemma4",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "coding"
      ]
    },
    {
      "id": "gemma-4-31b-it",
      "name": "Gemma 4 31B (local)",
      "provider": "local",
      "aliases": [
        "local-gemma4-31b"
      ],
      "context_window": 131072,
      "stream_timeout": 600.0,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "local"
      ],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "structured_output"
      ],
      "family": "gemma",
      "lineage": "gemma4",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "coding",
        "long_context"
      ]
    },
    {
      "id": "gemma-4-e2b-it",
      "name": "Gemma 4 E2B (local)",
      "provider": "local",
      "aliases": [
        "local-gemma4-e2b"
      ],
      "context_window": 131072,
      "stream_timeout": 300.0,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "local"
      ],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "structured_output"
      ],
      "family": "gemma",
      "lineage": "gemma4",
      "tier": "small",
      "open_weight": true,
      "strengths": [
        "cheap",
        "speed"
      ]
    },
    {
      "id": "gemma-4-e4b-it",
      "name": "Gemma 4 E4B (local)",
      "provider": "local",
      "aliases": [
        "local-gemma4-e4b"
      ],
      "context_window": 131072,
      "stream_timeout": 300.0,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "local"
      ],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "structured_output"
      ],
      "family": "gemma",
      "lineage": "gemma4",
      "tier": "small",
      "open_weight": true,
      "strengths": [
        "cheap"
      ]
    },
    {
      "id": "MiniMax-M2",
      "name": "MiniMax M2",
      "provider": "minimax",
      "aliases": [
        "minimax-m2"
      ],
      "context_window": 204800,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "delimited",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.255,
        "output_per_mtok": 1.0,
        "cache_read_per_mtok": 0.051,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "structured_output"
      ],
      "family": "minimax",
      "lineage": "minimax",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "coding",
        "agentic",
        "cheap",
        "tool_use"
      ],
      "benchmarks": {
        "aa_intelligence_index": 45.0
      }
    },
    {
      "id": "MiniMax-M2.5",
      "name": "MiniMax M2.5",
      "provider": "minimax",
      "aliases": [
        "minimax-m2.5"
      ],
      "context_window": 204800,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "delimited",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.28,
        "output_per_mtok": 1.1,
        "cache_read_per_mtok": 0.056,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "structured_output"
      ],
      "family": "minimax",
      "lineage": "minimax",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "coding",
        "agentic",
        "tool_use",
        "long_context"
      ]
    },
    {
      "id": "MiniMax-M2.5-highspeed",
      "name": "MiniMax M2.5 (highspeed)",
      "provider": "minimax",
      "aliases": [],
      "context_window": 204800,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "delimited",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.28,
        "output_per_mtok": 1.1,
        "cache_read_per_mtok": 0.056,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "structured_output"
      ],
      "family": "minimax",
      "lineage": "minimax",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "speed",
        "coding",
        "agentic"
      ]
    },
    {
      "id": "MiniMax-M2.7",
      "name": "MiniMax M2.7",
      "provider": "minimax",
      "aliases": [
        "minimax-m2.7"
      ],
      "context_window": 204800,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "delimited",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 0.3,
        "output_per_mtok": 1.2,
        "cache_read_per_mtok": 0.06,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "prompt_caching",
        "thinking",
        "structured_output"
      ],
      "family": "minimax",
      "lineage": "minimax",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "coding",
        "agentic",
        "tool_use",
        "reasoning",
        "long_context"
      ],
      "benchmarks": {
        "aa_intelligence_index": 50.0
      }
    },
    {
      "id": "MiniMax-M2.7-highspeed",
      "name": "MiniMax M2.7 (highspeed)",
      "provider": "minimax",
      "aliases": [],
      "context_window": 204800,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "delimited",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 0.3,
        "output_per_mtok": 1.2,
        "cache_read_per_mtok": 0.06,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "prompt_caching",
        "thinking",
        "structured_output"
      ],
      "family": "minimax",
      "lineage": "minimax",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "speed",
        "coding",
        "agentic"
      ]
    },
    {
      "id": "MiniMax-M3",
      "name": "MiniMax M3",
      "provider": "minimax",
      "aliases": [
        "minimax",
        "minimax-m3"
      ],
      "context_window": 1000000,
      "modalities": {
        "input": [
          "text",
          "image",
          "video"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "delimited",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "adaptive"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 0.6,
        "output_per_mtok": 2.4,
        "cache_read_per_mtok": 0.12,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "video",
        "prompt_caching",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "minimax",
      "lineage": "minimax",
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "coding",
        "agentic",
        "tool_use",
        "reasoning",
        "long_context",
        "vision"
      ]
    },
    {
      "id": "MiniMax-Text-01",
      "name": "MiniMax Text 01",
      "provider": "minimax",
      "aliases": [],
      "context_window": 1000000,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "delimited",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.2,
        "output_per_mtok": 1.1,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "minimax",
      "lineage": "minimax",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "long_context"
      ]
    },
    {
      "id": "mistral-large-2512",
      "name": "Mistral Large 3 2512",
      "provider": "mistral",
      "aliases": [],
      "context_window": 262144,
      "logical_model": "mistral-large-3-2512",
      "equivalence_group": "mistral-large-3-2512",
      "api_dialect": "openai_chat_compat",
      "architecture": {
        "parameter_count_b": 675.0,
        "active_parameter_count_b": 41.0,
        "moe": true,
        "license": "Apache-2.0",
        "source_url": "https://docs.mistral.ai/models/model-cards/mistral-large-3-25-12",
        "last_verified": "2026-06-05"
      },
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.5,
        "output_per_mtok": 1.5,
        "cache_read_per_mtok": 0.05,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "mistral",
      "lineage": "mistral",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "coding",
        "tool_use",
        "long_context",
        "vision"
      ]
    },
    {
      "id": "mistral-small-2603",
      "name": "Mistral Small 4",
      "provider": "mistral",
      "aliases": [],
      "context_window": 262144,
      "logical_model": "mistral-small-4-2603",
      "equivalence_group": "mistral-small-4-2603",
      "api_dialect": "openai_chat_compat",
      "architecture": {
        "parameter_count_b": 119.0,
        "active_parameter_count_b": 6.5,
        "moe": true,
        "license": "Apache-2.0",
        "source_url": "https://docs.mistral.ai/models/model-cards/mistral-small-4-0-26-03",
        "last_verified": "2026-06-05"
      },
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.15,
        "output_per_mtok": 0.6,
        "cache_read_per_mtok": 0.015,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "mistral",
      "lineage": "mistral",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "cheap",
        "coding",
        "speed",
        "tool_use",
        "long_context"
      ]
    },
    {
      "id": "unsloth/Qwen3.6-27B-UD-MLX-4bit",
      "name": "Qwen3.6 27B (MLX 4-bit)",
      "provider": "mlx",
      "aliases": [
        "local-qwen3.6-27b",
        "mlx-qwen3.6-27b",
        "mlx-qwen3.6-27b-q4",
        "mlx-qwen36-27b"
      ],
      "context_window": 262144,
      "stream_timeout": 900.0,
      "modalities": {
        "input": [
          "text",
          "image"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": true
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "local"
      ],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "thinking",
        "structured_output"
      ],
      "family": "qwen",
      "lineage": "qwen3",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "coding",
        "vision"
      ]
    },
    {
      "id": "devstral-small-2:24b",
      "name": "Devstral Small 2 24B",
      "provider": "ollama",
      "aliases": [
        "devstral-small-2",
        "ollama-devstral-small-2"
      ],
      "context_window": 262144,
      "runtime_context_window": 32768,
      "stream_timeout": 600.0,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": false,
        "text": true,
        "preferred_format": "json",
        "parity": "text_only",
        "tool_search": []
      },
      "structured_output": "format_kw",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "local"
      ],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "mistral",
      "lineage": "mistral",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "coding",
        "agentic"
      ]
    },
    {
      "id": "gemma4:12b-mlx",
      "name": "Gemma 4 12B (MLX)",
      "provider": "ollama",
      "aliases": [
        "ollama-gemma4-12b"
      ],
      "context_window": 131072,
      "runtime_context_window": 32768,
      "stream_timeout": 240.0,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": false,
        "text": true,
        "preferred_format": "text",
        "parity": "text_only",
        "tool_search": []
      },
      "structured_output": "format_kw",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "local"
      ],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "gemma",
      "lineage": "gemma4",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "speed",
        "cheap"
      ]
    },
    {
      "id": "gemma4:12b-mxfp8",
      "name": "Gemma 4 12B (MXFP8)",
      "provider": "ollama",
      "aliases": [],
      "context_window": 131072,
      "runtime_context_window": 32768,
      "stream_timeout": 240.0,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": false,
        "text": true,
        "preferred_format": "text",
        "parity": "text_only",
        "tool_search": []
      },
      "structured_output": "format_kw",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "local"
      ],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "gemma",
      "lineage": "gemma4",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "cheap",
        "tool_use"
      ]
    },
    {
      "id": "gemma4:12b-nvfp4",
      "name": "Gemma 4 12B (NVFP4)",
      "provider": "ollama",
      "aliases": [
        "ollama-gemma4-12b-nvfp4"
      ],
      "context_window": 131072,
      "runtime_context_window": 32768,
      "stream_timeout": 240.0,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": false,
        "text": true,
        "preferred_format": "text",
        "parity": "text_only",
        "tool_search": []
      },
      "structured_output": "format_kw",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "local"
      ],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "gemma",
      "lineage": "gemma4",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "cheap",
        "tool_use"
      ]
    },
    {
      "id": "gemma4:26b",
      "name": "Gemma 4 26B MoE",
      "provider": "ollama",
      "aliases": [
        "ollama-gemma4",
        "ollama-gemma4-26b"
      ],
      "context_window": 262144,
      "runtime_context_window": 32768,
      "stream_timeout": 300.0,
      "modalities": {
        "input": [
          "text",
          "image"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": false,
        "text": true,
        "preferred_format": "text",
        "parity": "text_only",
        "tool_search": []
      },
      "structured_output": "format_kw",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "local"
      ],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "structured_output"
      ],
      "family": "gemma",
      "lineage": "gemma4",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "vision",
        "tool_use"
      ]
    },
    {
      "id": "llama3.2",
      "name": "Llama 3.2",
      "provider": "ollama",
      "aliases": [],
      "context_window": 32000,
      "stream_timeout": 300.0,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": false,
        "text": true,
        "tool_search": []
      },
      "structured_output": "none",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "none",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "local"
      ],
      "capability_tags": [
        "streaming",
        "tools"
      ],
      "family": "llama",
      "lineage": "llama",
      "tier": "small",
      "open_weight": true,
      "strengths": [
        "cheap",
        "speed"
      ]
    },
    {
      "id": "gpt-4-turbo",
      "name": "GPT-4 Turbo",
      "provider": "openai",
      "aliases": [],
      "context_window": 128000,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 10.0,
        "output_per_mtok": 30.0,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "deprecated",
        "note": "Superseded by gpt-5 family. Listed for cost-attribution backfill only."
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "openai-gpt",
      "lineage": "openai-legacy",
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "coding",
        "tool_use"
      ]
    },
    {
      "id": "gpt-4o",
      "name": "GPT-4o",
      "provider": "openai",
      "aliases": [],
      "context_window": 128000,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 2.5,
        "output_per_mtok": 10.0,
        "cache_read_per_mtok": 1.25,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "deprecated",
        "note": "API sunset 2026-02-17 per OpenAI deprecations page. Switch to gpt-5-mini for cheap routing or gpt-5 for frontier."
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "audio",
        "structured_output"
      ],
      "family": "openai-gpt",
      "lineage": "openai-legacy",
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "coding",
        "vision",
        "tool_use"
      ]
    },
    {
      "id": "gpt-4o-mini",
      "name": "GPT-4o Mini",
      "provider": "openai",
      "aliases": [
        "mid",
        "tier/mid"
      ],
      "context_window": 128000,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.15,
        "output_per_mtok": 0.6,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "balanced"
      ],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "audio",
        "structured_output"
      ],
      "family": "openai-gpt",
      "lineage": "openai-legacy",
      "complementary_with": [
        "anthropic-claude",
        "google-gemini",
        "qwen",
        "deepseek",
        "kimi"
      ],
      "tier": "mid",
      "open_weight": false,
      "strengths": [
        "speed",
        "cheap",
        "summarization",
        "tool_use"
      ]
    },
    {
      "id": "gpt-5.5",
      "name": "GPT-5.5",
      "provider": "openai",
      "aliases": [],
      "context_window": 400000,
      "modalities": {
        "input": [
          "text",
          "image"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": [
          "hosted",
          "client"
        ]
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "reasoning_summary"
      },
      "reasoning": {
        "modes": [
          "effort"
        ],
        "effort_supported": true,
        "none_supported": true,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 5.0,
        "output_per_mtok": 30.0,
        "cache_read_per_mtok": 0.5,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "tool_search",
        "vision",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "openai-gpt",
      "lineage": "openai-gpt5",
      "complementary_with": [
        "anthropic-claude",
        "google-gemini",
        "qwen",
        "deepseek",
        "kimi"
      ],
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "reasoning",
        "coding",
        "tool_use",
        "long_context",
        "agentic"
      ],
      "fast_mode": {
        "param": "service_tier",
        "value": "fast",
        "otps_speedup": 1.5,
        "status": "ga",
        "pricing": {
          "input_per_mtok": 12.5,
          "output_per_mtok": 75.0,
          "cache_read_per_mtok": 1.25,
          "cache_write_per_mtok": null
        },
        "note": "Codex \"Fast mode\" (service_tier=\"fast\", ~1.5x faster output) and API priority processing (service_tier=\"priority\") both bill at 2.5x standard. Not offered for long-context, fine-tuned models, or embeddings."
      }
    },
    {
      "id": "o1",
      "name": "OpenAI o1",
      "provider": "openai",
      "aliases": [],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": true,
        "prefers_xml_tools": false,
        "thinking_block_style": "reasoning_summary"
      },
      "reasoning": {
        "modes": [
          "effort"
        ],
        "effort_supported": true,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 15.0,
        "output_per_mtok": 60.0,
        "cache_read_per_mtok": 7.5,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "openai-reasoning",
      "lineage": "openai-reasoning",
      "tier": "reasoning",
      "open_weight": false,
      "strengths": [
        "reasoning"
      ]
    },
    {
      "id": "o1-mini",
      "name": "OpenAI o1-mini",
      "provider": "openai",
      "aliases": [],
      "context_window": 128000,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": true,
        "prefers_xml_tools": false,
        "thinking_block_style": "reasoning_summary"
      },
      "reasoning": {
        "modes": [
          "effort"
        ],
        "effort_supported": true,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 3.0,
        "output_per_mtok": 12.0,
        "cache_read_per_mtok": 1.5,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "openai-reasoning",
      "lineage": "openai-reasoning",
      "tier": "reasoning",
      "open_weight": false,
      "strengths": [
        "reasoning",
        "cheap"
      ]
    },
    {
      "id": "o3",
      "name": "OpenAI o3",
      "provider": "openai",
      "aliases": [],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": true,
        "prefers_xml_tools": false,
        "thinking_block_style": "reasoning_summary"
      },
      "reasoning": {
        "modes": [
          "effort"
        ],
        "effort_supported": true,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 15.0,
        "output_per_mtok": 60.0,
        "cache_read_per_mtok": 7.5,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "openai-reasoning",
      "lineage": "openai-reasoning",
      "tier": "reasoning",
      "open_weight": false,
      "strengths": [
        "reasoning",
        "coding"
      ],
      "benchmarks": {
        "swe_bench_verified": 69.1
      }
    },
    {
      "id": "o3-mini",
      "name": "OpenAI o3-mini",
      "provider": "openai",
      "aliases": [],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": true,
        "prefers_xml_tools": false,
        "thinking_block_style": "reasoning_summary"
      },
      "reasoning": {
        "modes": [
          "effort"
        ],
        "effort_supported": true,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 1.1,
        "output_per_mtok": 4.4,
        "cache_read_per_mtok": 0.55,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "openai-reasoning",
      "lineage": "openai-reasoning",
      "tier": "reasoning",
      "open_weight": false,
      "strengths": [
        "reasoning",
        "coding",
        "cheap"
      ],
      "benchmarks": {
        "swe_bench_verified": 49.3
      }
    },
    {
      "id": "Qwen/Qwen3.5-9B",
      "name": "Qwen3.5 9B",
      "provider": "openrouter",
      "aliases": [
        "small",
        "tier/small"
      ],
      "context_window": 131072,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": true,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [
        "small"
      ],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "structured_output"
      ],
      "family": "qwen",
      "lineage": "qwen3",
      "tier": "small",
      "open_weight": true,
      "strengths": [
        "cheap",
        "speed"
      ]
    },
    {
      "id": "anthropic/claude-haiku-4-5",
      "name": "Claude Haiku 4.5 (via OpenRouter)",
      "provider": "openrouter",
      "aliases": [],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "tool_use",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "xml_tagged",
        "supports_assistant_prefill": true,
        "prefers_role_developer": false,
        "prefers_xml_tools": true,
        "thinking_block_style": "thinking_blocks"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 1.0,
        "output_per_mtok": 5.0,
        "cache_read_per_mtok": 0.1,
        "cache_write_per_mtok": 1.25
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "prompt_caching",
        "thinking",
        "structured_output"
      ],
      "family": "anthropic-claude",
      "lineage": "claude-haiku",
      "tier": "mid",
      "open_weight": false,
      "strengths": [
        "speed",
        "cheap",
        "coding",
        "tool_use",
        "summarization"
      ]
    },
    {
      "id": "anthropic/claude-sonnet-4-6",
      "name": "Claude Sonnet 4.6 (via OpenRouter)",
      "provider": "openrouter",
      "aliases": [],
      "context_window": 200000,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "tool_use",
      "format_preferences": {
        "prefers_xml_scaffolding": true,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "xml_tagged",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": true,
        "thinking_block_style": "thinking_blocks"
      },
      "reasoning": {
        "modes": [
          "adaptive"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 3.0,
        "output_per_mtok": 15.0,
        "cache_read_per_mtok": 0.3,
        "cache_write_per_mtok": 3.75
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "prompt_caching",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "anthropic-claude",
      "lineage": "claude-sonnet-opus",
      "complementary_with": [
        "openai-gpt",
        "google-gemini",
        "qwen",
        "deepseek",
        "kimi"
      ],
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "coding",
        "reasoning",
        "tool_use",
        "long_context",
        "agentic"
      ]
    },
    {
      "id": "deepseek/deepseek-v3.2",
      "name": "DeepSeek V3.2",
      "provider": "openrouter",
      "aliases": [],
      "context_window": 131072,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "text",
        "parity": "native_unreliable",
        "parity_notes": "OpenRouter DeepSeek V3.2 advertises native tools, but coding-agent runs observed provider-native failures; default to Harn text tools and recover DSML markers.",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "reasoning_summary"
      },
      "reasoning": {
        "modes": [
          "enabled",
          "effort"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 0.28,
        "output_per_mtok": 0.42,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "prompt_caching",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "deepseek",
      "lineage": "deepseek",
      "complementary_with": [
        "anthropic-claude",
        "openai-gpt",
        "google-gemini",
        "qwen",
        "kimi"
      ],
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "coding",
        "tool_use",
        "cheap"
      ]
    },
    {
      "id": "deepseek/deepseek-v4-flash",
      "name": "DeepSeek V4 Flash (via OpenRouter)",
      "provider": "openrouter",
      "aliases": [],
      "context_window": 1048576,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "reasoning_summary"
      },
      "reasoning": {
        "modes": [
          "enabled",
          "effort"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 0.0983,
        "output_per_mtok": 0.1966,
        "cache_read_per_mtok": 0.0197,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "prompt_caching",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "deepseek",
      "lineage": "deepseek",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "speed",
        "cheap",
        "tool_use",
        "reasoning",
        "long_context"
      ]
    },
    {
      "id": "deepseek/deepseek-v4-pro",
      "name": "DeepSeek V4 Pro (via OpenRouter)",
      "provider": "openrouter",
      "aliases": [],
      "context_window": 1048576,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "reasoning_summary"
      },
      "reasoning": {
        "modes": [
          "enabled",
          "effort"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 0.435,
        "output_per_mtok": 0.87,
        "cache_read_per_mtok": 0.003625,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "prompt_caching",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "deepseek",
      "lineage": "deepseek",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "reasoning",
        "coding",
        "tool_use",
        "long_context"
      ]
    },
    {
      "id": "google/gemini-2.5-flash",
      "name": "Gemini 2.5 Flash (via OpenRouter)",
      "provider": "openrouter",
      "aliases": [],
      "context_window": 1048576,
      "modalities": {
        "input": [
          "text",
          "image",
          "audio",
          "pdf"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "reasoning_summary"
      },
      "reasoning": {
        "modes": [
          "enabled",
          "effort"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 0.1,
        "output_per_mtok": 0.4,
        "cache_read_per_mtok": 0.025,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "audio",
        "pdf",
        "prompt_caching",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "google-gemini",
      "lineage": "gemini-flash",
      "complementary_with": [
        "anthropic-claude",
        "openai-gpt",
        "qwen",
        "deepseek",
        "kimi"
      ],
      "tier": "mid",
      "open_weight": false,
      "strengths": [
        "speed",
        "long_context",
        "vision",
        "cheap",
        "tool_use"
      ]
    },
    {
      "id": "google/gemma-4-26b-a4b-it",
      "name": "Gemma 4 26B MoE (OpenRouter)",
      "provider": "openrouter",
      "aliases": [
        "openrouter-gemma4-26b"
      ],
      "context_window": 262144,
      "modalities": {
        "input": [
          "text",
          "image"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.06,
        "output_per_mtok": 0.33,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "structured_output"
      ],
      "family": "gemma",
      "lineage": "gemma4",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "vision",
        "cheap",
        "speed"
      ]
    },
    {
      "id": "google/gemma-4-31b-it",
      "name": "Gemma 4 31B (OpenRouter)",
      "provider": "openrouter",
      "aliases": [
        "openrouter-gemma4-31b"
      ],
      "context_window": 262144,
      "modalities": {
        "input": [
          "text",
          "image"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.12,
        "output_per_mtok": 0.37,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "structured_output"
      ],
      "family": "gemma",
      "lineage": "gemma4",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "vision",
        "reasoning",
        "coding",
        "cheap"
      ]
    },
    {
      "id": "minimax/minimax-m2",
      "name": "MiniMax M2 (via OpenRouter)",
      "provider": "openrouter",
      "aliases": [],
      "context_window": 204800,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "delimited",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "none",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.33,
        "output_per_mtok": 1.2,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "minimax",
      "lineage": "minimax",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "coding",
        "agentic",
        "cheap"
      ]
    },
    {
      "id": "minimax/minimax-m2.7",
      "name": "MiniMax M2.7 (via OpenRouter)",
      "provider": "openrouter",
      "aliases": [],
      "context_window": 204800,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "delimited",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "none",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.4,
        "output_per_mtok": 1.5,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "minimax",
      "lineage": "minimax",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "coding",
        "agentic",
        "tool_use",
        "reasoning",
        "long_context"
      ]
    },
    {
      "id": "minimax/minimax-m3",
      "name": "MiniMax M3 (via OpenRouter)",
      "provider": "openrouter",
      "aliases": [],
      "context_window": 1048576,
      "modalities": {
        "input": [
          "text",
          "image",
          "video"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "delimited",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "adaptive"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 0.6,
        "output_per_mtok": 2.4,
        "cache_read_per_mtok": 0.12,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "video",
        "prompt_caching",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "minimax",
      "lineage": "minimax",
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "coding",
        "agentic",
        "tool_use",
        "reasoning",
        "long_context",
        "vision"
      ]
    },
    {
      "id": "mistralai/mistral-large-2512",
      "name": "Mistral Large 3 2512",
      "provider": "openrouter",
      "aliases": [],
      "context_window": 262144,
      "logical_model": "mistral-large-3-2512",
      "equivalence_group": "mistral-large-3-2512",
      "served_variant": "openrouter",
      "api_dialect": "openai_chat",
      "architecture": {
        "parameter_count_b": 675.0,
        "active_parameter_count_b": 41.0,
        "moe": true,
        "license": "Apache-2.0",
        "source_url": "https://docs.mistral.ai/models/model-cards/mistral-large-3-25-12",
        "last_verified": "2026-06-05"
      },
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.5,
        "output_per_mtok": 1.5,
        "cache_read_per_mtok": 0.05,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "mistral",
      "lineage": "mistral",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "coding",
        "tool_use",
        "long_context"
      ]
    },
    {
      "id": "mistralai/mistral-small-2603",
      "name": "Mistral Small 4",
      "provider": "openrouter",
      "aliases": [],
      "context_window": 262144,
      "logical_model": "mistral-small-4-2603",
      "equivalence_group": "mistral-small-4-2603",
      "served_variant": "openrouter",
      "api_dialect": "openai_chat",
      "architecture": {
        "parameter_count_b": 119.0,
        "active_parameter_count_b": 6.5,
        "moe": true,
        "license": "Apache-2.0",
        "source_url": "https://docs.mistral.ai/models/model-cards/mistral-small-4-0-26-03",
        "last_verified": "2026-06-05"
      },
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.15,
        "output_per_mtok": 0.6,
        "cache_read_per_mtok": 0.015,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "mistral",
      "lineage": "mistral",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "cheap",
        "coding",
        "speed"
      ]
    },
    {
      "id": "moonshotai/kimi-k2.6",
      "name": "Kimi K2.6",
      "provider": "openrouter",
      "aliases": [],
      "context_window": 262144,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.73,
        "output_per_mtok": 3.49,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "structured_output"
      ],
      "family": "kimi",
      "lineage": "kimi",
      "complementary_with": [
        "anthropic-claude",
        "openai-gpt",
        "google-gemini",
        "qwen",
        "deepseek"
      ],
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "coding",
        "agentic",
        "long_context",
        "tool_use",
        "reasoning"
      ],
      "benchmarks": {
        "humanitys_last_exam_with_tools": 54.0,
        "swe_bench_pro": 58.6
      }
    },
    {
      "id": "openai/gpt-oss-120b",
      "name": "GPT-OSS 120B",
      "provider": "openrouter",
      "aliases": [],
      "context_window": 131072,
      "logical_model": "openai-gpt-oss-120b",
      "equivalence_group": "openai-gpt-oss-120b",
      "served_variant": "openrouter",
      "api_dialect": "openai_chat",
      "architecture": {
        "parameter_count_b": 117.0,
        "active_parameter_count_b": 5.1,
        "moe": true,
        "license": "Apache-2.0",
        "source_url": "https://developers.openai.com/api/docs/models/gpt-oss-120b",
        "last_verified": "2026-06-05"
      },
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.15,
        "output_per_mtok": 0.6,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "openai-gpt",
      "lineage": "openai-legacy",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "cheap",
        "tool_use"
      ]
    },
    {
      "id": "qwen/qwen3-coder",
      "name": "Qwen3 Coder 480B A35B",
      "provider": "openrouter",
      "aliases": [],
      "context_window": 262144,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "text",
        "parity": "native_unreliable",
        "parity_notes": "OpenRouter Qwen3-Coder Flash native tools exhausted the coding-agent fixture while text tools completed; default to Harn text tools for preset parity.",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.22,
        "output_per_mtok": 1.8,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "qwen",
      "lineage": "qwen3",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "coding",
        "long_context",
        "agentic",
        "tool_use"
      ],
      "benchmarks": {
        "swe_bench_verified": 67.0
      }
    },
    {
      "id": "z-ai/glm-5",
      "name": "GLM 5 (via OpenRouter)",
      "provider": "openrouter",
      "aliases": [],
      "context_window": 202752,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 1.2,
        "output_per_mtok": 4.0,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "glm",
      "lineage": "glm",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "coding",
        "agentic"
      ]
    },
    {
      "id": "z-ai/glm-5.1",
      "name": "GLM 5.1 (via OpenRouter)",
      "provider": "openrouter",
      "aliases": [],
      "context_window": 202752,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.98,
        "output_per_mtok": 3.08,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "glm",
      "lineage": "glm",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "coding",
        "agentic",
        "tool_use",
        "reasoning",
        "long_context"
      ]
    },
    {
      "id": "z-ai/glm-5v-turbo",
      "name": "GLM 5V Turbo (via OpenRouter)",
      "provider": "openrouter",
      "aliases": [],
      "context_window": 202752,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": false,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 1.2,
        "output_per_mtok": 4.0,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "glm",
      "lineage": "glm",
      "tier": "mid",
      "open_weight": true,
      "strengths": [
        "vision",
        "speed"
      ]
    },
    {
      "id": "Qwen/Qwen3-Coder-Next-FP8",
      "name": "Qwen3 Coder Next FP8 (Together, dedicated)",
      "provider": "together",
      "aliases": [],
      "context_window": 262144,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "delimited",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "none"
      },
      "reasoning": {
        "modes": [],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.18,
        "output_per_mtok": 0.18,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "dedicated",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "structured_output"
      ],
      "family": "qwen",
      "lineage": "qwen3",
      "complementary_with": [
        "anthropic-claude",
        "openai-gpt",
        "google-gemini",
        "deepseek",
        "kimi"
      ],
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "coding",
        "long_context",
        "agentic"
      ]
    },
    {
      "id": "google/gemma-4-31B-it",
      "name": "Gemma 4 31B (Together)",
      "provider": "together",
      "aliases": [
        "together-gemma4-31b"
      ],
      "context_window": 262144,
      "modalities": {
        "input": [
          "text",
          "image"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.2,
        "output_per_mtok": 0.5,
        "cache_read_per_mtok": null,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "thinking",
        "structured_output"
      ],
      "family": "gemma",
      "lineage": "gemma4",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "vision",
        "reasoning",
        "coding"
      ]
    },
    {
      "id": "grok-build-0.1",
      "name": "Grok Build 0.1",
      "provider": "xai",
      "aliases": [
        "grok-code",
        "grok-code-fast"
      ],
      "context_window": 256000,
      "logical_model": "grok-code-fast-1",
      "equivalence_group": "grok-code-fast-1",
      "api_dialect": "openai_chat_compat",
      "rate_limits": {
        "rpm": 1800,
        "tpm": 10000000,
        "tier": "us-east-1",
        "source_url": "https://docs.x.ai/developers/models/grok-code-fast-1",
        "last_verified": "2026-06-05"
      },
      "modalities": {
        "input": [
          "text",
          "image"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "reasoning_summary"
      },
      "reasoning": {
        "modes": [
          "adaptive"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 1.0,
        "output_per_mtok": 2.0,
        "cache_read_per_mtok": 0.2,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "vision",
        "prompt_caching",
        "thinking",
        "extended_thinking",
        "structured_output"
      ],
      "family": "xai",
      "lineage": "xai",
      "tier": "frontier",
      "open_weight": false,
      "strengths": [
        "coding",
        "agentic",
        "tool_use",
        "reasoning",
        "vision"
      ]
    },
    {
      "id": "glm-5",
      "name": "GLM 5",
      "provider": "zai",
      "aliases": [
        "glm-5"
      ],
      "context_window": 202752,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": false,
      "pricing": {
        "input_per_mtok": 0.98,
        "output_per_mtok": 3.08,
        "cache_read_per_mtok": 0.2,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "thinking",
        "structured_output"
      ],
      "family": "glm",
      "lineage": "glm",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "coding",
        "agentic",
        "tool_use"
      ]
    },
    {
      "id": "glm-5.1",
      "name": "GLM 5.1",
      "provider": "zai",
      "aliases": [
        "glm",
        "glm-5.1"
      ],
      "context_window": 202752,
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "tool_support": {
        "native": true,
        "text": true,
        "preferred_format": "native",
        "parity": "unknown",
        "tool_search": []
      },
      "structured_output": "native",
      "format_preferences": {
        "prefers_xml_scaffolding": false,
        "prefers_markdown_scaffolding": true,
        "structured_output_mode": "native_json",
        "supports_assistant_prefill": false,
        "prefers_role_developer": false,
        "prefers_xml_tools": false,
        "thinking_block_style": "inline"
      },
      "reasoning": {
        "modes": [
          "enabled"
        ],
        "effort_supported": false,
        "none_supported": false,
        "interleaved_supported": false,
        "preserve_thinking": false
      },
      "prompt_cache": true,
      "pricing": {
        "input_per_mtok": 1.4,
        "output_per_mtok": 4.4,
        "cache_read_per_mtok": 0.26,
        "cache_write_per_mtok": null
      },
      "deprecation": {
        "status": "active"
      },
      "availability": "serverless",
      "quality_tags": [],
      "capability_tags": [
        "streaming",
        "tools",
        "prompt_caching",
        "thinking",
        "structured_output"
      ],
      "family": "glm",
      "lineage": "glm",
      "tier": "frontier",
      "open_weight": true,
      "strengths": [
        "coding",
        "agentic",
        "tool_use",
        "reasoning",
        "long_context"
      ],
      "benchmarks": {
        "swe_bench_pro_lead": 1.0
      }
    }
  ],
  "aliases": [
    {
      "name": "cohere",
      "model_id": "command-a-plus-05-2026",
      "provider": "cohere"
    },
    {
      "name": "command-a-plus",
      "model_id": "command-a-plus-05-2026",
      "provider": "cohere"
    },
    {
      "name": "deepseek",
      "model_id": "deepseek-v4-flash",
      "provider": "deepseek"
    },
    {
      "name": "deepseek-flash",
      "model_id": "deepseek-v4-flash",
      "provider": "deepseek"
    },
    {
      "name": "deepseek-pro",
      "model_id": "deepseek-v4-pro",
      "provider": "deepseek"
    },
    {
      "name": "deepseek-v4-flash",
      "model_id": "deepseek-v4-flash",
      "provider": "deepseek"
    },
    {
      "name": "deepseek-v4-pro",
      "model_id": "deepseek-v4-pro",
      "provider": "deepseek"
    },
    {
      "name": "devstral-small-2",
      "model_id": "devstral-small-2:24b",
      "provider": "ollama"
    },
    {
      "name": "fable",
      "model_id": "claude-fable-5",
      "provider": "anthropic"
    },
    {
      "name": "frontier",
      "model_id": "claude-sonnet-4-6",
      "provider": "anthropic"
    },
    {
      "name": "gemini-gemma4-26b",
      "model_id": "models/gemma-4-26b-a4b-it",
      "provider": "gemini"
    },
    {
      "name": "gemini-gemma4-31b",
      "model_id": "models/gemma-4-31b-it",
      "provider": "gemini"
    },
    {
      "name": "glm",
      "model_id": "glm-5.1",
      "provider": "zai"
    },
    {
      "name": "glm-5",
      "model_id": "glm-5",
      "provider": "zai"
    },
    {
      "name": "glm-5.1",
      "model_id": "glm-5.1",
      "provider": "zai"
    },
    {
      "name": "grok-code",
      "model_id": "grok-build-0.1",
      "provider": "xai"
    },
    {
      "name": "grok-code-fast",
      "model_id": "grok-build-0.1",
      "provider": "xai"
    },
    {
      "name": "haiku",
      "model_id": "claude-haiku-4-5-20251001",
      "provider": "anthropic"
    },
    {
      "name": "llamacpp-qwen3.6",
      "model_id": "qwen3.6-35b-a3b",
      "provider": "llamacpp"
    },
    {
      "name": "llamacpp-qwen3.6-q4",
      "model_id": "qwen3.6-35b-a3b-ud-q4-k-xl",
      "provider": "llamacpp",
      "tool_format": "native",
      "tool_calling": {
        "native": "pass",
        "text": "unknown",
        "streaming_native": "pass",
        "fallback_mode": "native",
        "last_probe_at": "2026-06-05"
      }
    },
    {
      "name": "local-gemma4",
      "model_id": "gemma-4-26b-a4b-it",
      "provider": "local"
    },
    {
      "name": "local-gemma4-12b",
      "model_id": "gemma-4-12b-it",
      "provider": "local"
    },
    {
      "name": "local-gemma4-26b",
      "model_id": "gemma-4-26b-a4b-it",
      "provider": "local"
    },
    {
      "name": "local-gemma4-31b",
      "model_id": "gemma-4-31b-it",
      "provider": "local"
    },
    {
      "name": "local-gemma4-e2b",
      "model_id": "gemma-4-e2b-it",
      "provider": "local"
    },
    {
      "name": "local-gemma4-e4b",
      "model_id": "gemma-4-e4b-it",
      "provider": "local"
    },
    {
      "name": "local-qwen3.6",
      "model_id": "qwen3.6-35b-a3b-ud-q4-k-xl",
      "provider": "llamacpp",
      "tool_format": "native",
      "tool_calling": {
        "native": "pass",
        "text": "unknown",
        "streaming_native": "pass",
        "fallback_mode": "native",
        "last_probe_at": "2026-06-05"
      }
    },
    {
      "name": "local-qwen3.6-27b",
      "model_id": "unsloth/Qwen3.6-27B-UD-MLX-4bit",
      "provider": "mlx",
      "tool_format": "native"
    },
    {
      "name": "local-qwen3.6-gguf",
      "model_id": "qwen3.6-35b-a3b-ud-q4-k-xl",
      "provider": "llamacpp",
      "tool_format": "native",
      "tool_calling": {
        "native": "pass",
        "text": "unknown",
        "streaming_native": "pass",
        "fallback_mode": "native",
        "last_probe_at": "2026-06-05"
      }
    },
    {
      "name": "mid",
      "model_id": "gpt-4o-mini",
      "provider": "openai"
    },
    {
      "name": "minimax",
      "model_id": "MiniMax-M3",
      "provider": "minimax"
    },
    {
      "name": "minimax-m2",
      "model_id": "MiniMax-M2",
      "provider": "minimax"
    },
    {
      "name": "minimax-m2.5",
      "model_id": "MiniMax-M2.5",
      "provider": "minimax"
    },
    {
      "name": "minimax-m2.7",
      "model_id": "MiniMax-M2.7",
      "provider": "minimax"
    },
    {
      "name": "minimax-m3",
      "model_id": "MiniMax-M3",
      "provider": "minimax"
    },
    {
      "name": "mlx-qwen3.6-27b",
      "model_id": "unsloth/Qwen3.6-27B-UD-MLX-4bit",
      "provider": "mlx",
      "tool_format": "native",
      "tool_calling": {
        "native": "unknown",
        "text": "unknown",
        "streaming_native": "unknown",
        "fallback_mode": "native",
        "failure_reason": "requires_served_identity_and_tool_probe"
      }
    },
    {
      "name": "mlx-qwen3.6-27b-q4",
      "model_id": "unsloth/Qwen3.6-27B-UD-MLX-4bit",
      "provider": "mlx",
      "tool_format": "native"
    },
    {
      "name": "mlx-qwen36-27b",
      "model_id": "unsloth/Qwen3.6-27B-UD-MLX-4bit",
      "provider": "mlx"
    },
    {
      "name": "ollama-devstral-small-2",
      "model_id": "devstral-small-2:24b",
      "provider": "ollama"
    },
    {
      "name": "ollama-gemma4",
      "model_id": "gemma4:26b",
      "provider": "ollama",
      "tool_format": "text",
      "tool_calling": {
        "native": "unknown",
        "text": "unknown",
        "streaming_native": "unknown",
        "fallback_mode": "disabled",
        "failure_reason": "requires_tool_probe"
      }
    },
    {
      "name": "ollama-gemma4-12b",
      "model_id": "gemma4:12b-mlx",
      "provider": "ollama",
      "tool_format": "text",
      "tool_calling": {
        "native": "unknown",
        "text": "unknown",
        "streaming_native": "unknown",
        "fallback_mode": "disabled",
        "failure_reason": "requires_tool_probe"
      }
    },
    {
      "name": "ollama-gemma4-12b-nvfp4",
      "model_id": "gemma4:12b-nvfp4",
      "provider": "ollama",
      "tool_format": "text"
    },
    {
      "name": "ollama-gemma4-26b",
      "model_id": "gemma4:26b",
      "provider": "ollama",
      "tool_format": "text"
    },
    {
      "name": "openrouter-gemma4-26b",
      "model_id": "google/gemma-4-26b-a4b-it",
      "provider": "openrouter"
    },
    {
      "name": "openrouter-gemma4-31b",
      "model_id": "google/gemma-4-31b-it",
      "provider": "openrouter"
    },
    {
      "name": "opus",
      "model_id": "claude-opus-4-8",
      "provider": "anthropic"
    },
    {
      "name": "small",
      "model_id": "Qwen/Qwen3.5-9B",
      "provider": "openrouter"
    },
    {
      "name": "sonnet",
      "model_id": "claude-sonnet-4-6",
      "provider": "anthropic"
    },
    {
      "name": "tier/frontier",
      "model_id": "claude-sonnet-4-6",
      "provider": "anthropic"
    },
    {
      "name": "tier/mid",
      "model_id": "gpt-4o-mini",
      "provider": "openai"
    },
    {
      "name": "tier/small",
      "model_id": "Qwen/Qwen3.5-9B",
      "provider": "openrouter"
    },
    {
      "name": "together-gemma4-31b",
      "model_id": "google/gemma-4-31B-it",
      "provider": "together"
    }
  ],
  "variants": [
    {
      "id": "fast",
      "label": "Fast",
      "description": "Lowest-latency general coding-agent route.",
      "model_id": "Qwen/Qwen3.5-9B",
      "provider": "openrouter",
      "source": "alias:small"
    },
    {
      "id": "balanced",
      "label": "Balanced",
      "description": "Default cost/quality tradeoff for routine coding-agent work.",
      "model_id": "gpt-4o-mini",
      "provider": "openai",
      "source": "alias:mid"
    },
    {
      "id": "high-reasoning",
      "label": "High reasoning",
      "description": "Frontier route for hard planning, repair, and review tasks.",
      "model_id": "claude-sonnet-4-6",
      "provider": "anthropic",
      "source": "alias:frontier"
    },
    {
      "id": "local",
      "label": "Local",
      "description": "Best local/offline model route in the checked-in catalog.",
      "model_id": "gemma4:26b",
      "provider": "ollama",
      "source": "catalog"
    },
    {
      "id": "cheap",
      "label": "Cheap",
      "description": "Lowest known hosted input+output token price.",
      "model_id": "llama-3.1-8b-instant",
      "provider": "groq",
      "source": "catalog"
    },
    {
      "id": "vision-capable",
      "label": "Vision capable",
      "description": "A model route that accepts image input.",
      "model_id": "gemini-2.5-pro",
      "provider": "gemini",
      "source": "catalog"
    },
    {
      "id": "long-context",
      "label": "Long context",
      "description": "Largest context-window route in the checked-in catalog.",
      "model_id": "gemini-2.5-pro",
      "provider": "gemini",
      "source": "catalog"
    }
  ],
  "qc_defaults": {
    "anthropic": "claude-haiku-4-5-20251001",
    "cohere": "command-a-plus-05-2026",
    "deepseek": "deepseek-v4-flash",
    "groq": "llama-3.1-8b-instant",
    "local": "gpt-4o",
    "minimax": "MiniMax-M2.5-highspeed",
    "mistral": "mistral-small-2603",
    "ollama": "llama3.2",
    "openai": "gpt-4o-mini",
    "openrouter": "google/gemini-2.5-flash",
    "xai": "grok-build-0.1",
    "zai": "glm-5"
  }
}
"""#
