diff --git a/current-models.txt b/current-models.txt index 819a81e..77bc730 100644 --- a/current-models.txt +++ b/current-models.txt @@ -1,222 +1,244 @@ # Supported models for Octavus agents # Format: provider/model-id -# Source: https://octavus.ai/docs/protocol/agent-config#models +# Source: Octavus Models API (https://octavus.ai/api/models) +# Synced from the live catalog; chat models only (no image/audio/tts/transcribe). # Anthropic -anthropic/claude-opus-4-7 +anthropic/claude-fable-5 +anthropic/claude-fable-5-1 +anthropic/claude-haiku-4-5 +anthropic/claude-opus-4 +anthropic/claude-opus-4-1 +anthropic/claude-opus-4-5 anthropic/claude-opus-4-6 -anthropic/claude-sonnet-4-6 +anthropic/claude-opus-4-7 +anthropic/claude-opus-4-8 +anthropic/claude-opus-5 +anthropic/claude-opus-5-5 +anthropic/claude-sonnet-4 anthropic/claude-sonnet-4-5 -anthropic/claude-haiku-4-5 +anthropic/claude-sonnet-4-6 +anthropic/claude-sonnet-5 +anthropic/claude-sonnet-5-5 # Google -google/gemini-3-pro-preview -google/gemini-3-flash-preview +google/gemini-2.0-flash +google/gemini-2.0-flash-lite google/gemini-2.5-flash +google/gemini-2.5-flash-lite +google/gemini-2.5-pro +google/gemini-2.5-pro-preview +google/gemini-3-flash-preview +google/gemini-3-pro-preview +google/gemini-3.1-flash-lite +google/gemini-3.1-flash-lite-preview +google/gemini-3.1-pro-preview +google/gemini-3.1-pro-preview-customtools +google/gemini-3.5-flash +google/gemini-3.5-flash-lite +google/gemini-3.6-flash +google/gemini-3.7-flash +google/gemini-3.8-flash +google/gemma-2-27b-it +google/gemma-3-12b-it +google/gemma-3-27b-it +google/gemma-3-4b-it +google/gemma-4-26b-a4b-it +google/gemma-4-31b-it # OpenAI -openai/gpt-5 +openai/gpt-3.5-turbo +openai/gpt-3.5-turbo-0613 +openai/gpt-3.5-turbo-16k +openai/gpt-3.5-turbo-instruct +openai/gpt-4 +openai/gpt-4-turbo +openai/gpt-4.1 +openai/gpt-4.1-mini +openai/gpt-4.1-nano openai/gpt-4o -openai/o4-mini +openai/gpt-4o-2024-05-13 +openai/gpt-4o-2024-08-06 +openai/gpt-4o-2024-11-20 +openai/gpt-4o-mini +openai/gpt-4o-mini-2024-07-18 +openai/gpt-5 +openai/gpt-5-mini +openai/gpt-5-nano +openai/gpt-5-pro +openai/gpt-5.1 +openai/gpt-5.1-codex +openai/gpt-5.1-codex-max +openai/gpt-5.1-codex-mini +openai/gpt-5.2 +openai/gpt-5.2-chat +openai/gpt-5.2-codex +openai/gpt-5.2-pro +openai/gpt-5.3-codex +openai/gpt-5.4 +openai/gpt-5.4-mini +openai/gpt-5.4-nano +openai/gpt-5.4-pro +openai/gpt-5.5 +openai/gpt-5.5-pro +openai/gpt-5.6 +openai/gpt-5.6-luna +openai/gpt-5.6-luna-pro +openai/gpt-5.6-sol +openai/gpt-5.6-sol-pro +openai/gpt-5.6-terra +openai/gpt-5.6-terra-pro +openai/gpt-6-astra +openai/gpt-6-astra-pro +openai/gpt-6-luna +openai/gpt-6-luna-pro +openai/gpt-6-sol +openai/gpt-6-sol-pro +openai/gpt-6.1-sol +openai/gpt-6.1-sol-pro +openai/gpt-chat-latest +openai/gpt-oss-120b +openai/gpt-oss-20b +openai/gpt-oss-safeguard-20b +openai/o1 +openai/o1-mini +openai/o1-pro openai/o3 +openai/o3-deep-research openai/o3-mini -openai/o1 +openai/o3-mini-high +openai/o3-pro +openai/o4-mini +openai/o4-mini-deep-research +openai/o4-mini-high + +# SpaceXAI +x-ai/grok-4.20 +x-ai/grok-4.20-multi-agent +x-ai/grok-4.3 +x-ai/grok-4.5 +x-ai/grok-4.6 +x-ai/grok-4.7 +x-ai/grok-build-0.1 + +# Octavus +octavus/octo-1 # ── OpenRouter models ────────────────────────────────────────── # Prefix: openrouter// # OpenRouter — Amazon openrouter/amazon/nova-2-lite-v1 -openrouter/amazon/nova-premier-v1 openrouter/amazon/nova-lite-v1 openrouter/amazon/nova-micro-v1 +openrouter/amazon/nova-premier-v1 openrouter/amazon/nova-pro-v1 # OpenRouter — Cohere openrouter/cohere/command-a -openrouter/cohere/command-r7b-12-2024 +openrouter/cohere/command-a-plus openrouter/cohere/command-r-08-2024 openrouter/cohere/command-r-plus-08-2024 -openrouter/cohere/command-r-plus -openrouter/cohere/command-r-plus-04-2024 -openrouter/cohere/command -openrouter/cohere/command-r -openrouter/cohere/command-r-03-2024 +openrouter/cohere/command-r7b-12-2024 # OpenRouter — DeepSeek -openrouter/deepseek/deepseek-v4-pro -openrouter/deepseek/deepseek-v4-flash -openrouter/deepseek/deepseek-v3.2-speciale -openrouter/deepseek/deepseek-v3.2 -openrouter/deepseek/deepseek-v3.2-exp -openrouter/deepseek/deepseek-v3.1-terminus -openrouter/deepseek/deepseek-chat-v3.1 -openrouter/deepseek/deepseek-r1-0528-qwen3-8b -openrouter/deepseek/deepseek-r1-0528 -openrouter/deepseek/deepseek-prover-v2 +openrouter/deepseek/deepseek-chat openrouter/deepseek/deepseek-chat-v3-0324 -openrouter/deepseek/deepseek-r1-zero -openrouter/deepseek/deepseek-r1-distill-llama-8b -openrouter/deepseek/deepseek-r1-distill-qwen-1.5b -openrouter/deepseek/deepseek-r1-distill-qwen-7b -openrouter/deepseek/deepseek-r1-distill-qwen-14b -openrouter/deepseek/deepseek-r1-distill-qwen-32b -openrouter/deepseek/deepseek-r1-distill-llama-70b +openrouter/deepseek/deepseek-chat-v3.1 openrouter/deepseek/deepseek-r1 -openrouter/deepseek/deepseek-chat-v2.5 - -# OpenRouter — Google -openrouter/google/gemini-3.1-flash-lite -openrouter/google/gemini-3.1-flash-image-preview -openrouter/google/gemini-3.1-pro-preview -openrouter/google/gemini-3.1-flash-lite-preview -openrouter/google/gemini-3-flash-preview -openrouter/google/gemini-3-pro-image-preview -openrouter/google/gemini-3-pro-preview -openrouter/google/gemini-2.5-flash-image -openrouter/google/gemini-2.5-flash-lite -openrouter/google/gemini-2.5-flash -openrouter/google/gemini-2.5-pro -openrouter/google/gemini-2.5-pro-preview -openrouter/google/gemini-2.0-flash-lite-001 -openrouter/google/gemini-2.0-flash-001 -openrouter/google/gemini-flash-1.5 -openrouter/google/gemini-pro-1.5 -openrouter/google/gemma-4-26b-a4b-it -openrouter/google/gemma-4-31b-it -openrouter/google/gemma-3n-e2b-it -openrouter/google/gemma-3n-e4b-it -openrouter/google/gemma-3-1b-it -openrouter/google/gemma-3-4b-it -openrouter/google/gemma-3-12b-it -openrouter/google/gemma-3-27b-it -openrouter/google/gemma-2-27b-it -openrouter/google/gemma-2-9b-it +openrouter/deepseek/deepseek-r1-0528 +openrouter/deepseek/deepseek-v3.1-terminus +openrouter/deepseek/deepseek-v3.2 +openrouter/deepseek/deepseek-v3.2-exp +openrouter/deepseek/deepseek-v4-flash +openrouter/deepseek/deepseek-v4-flash-0731 +openrouter/deepseek/deepseek-v4-flash-vision-exp +openrouter/deepseek/deepseek-v4-pro +openrouter/deepseek/deepseek-v4-pro-0813 +openrouter/deepseek/deepseek-v4.1-flash # OpenRouter — Meta Llama -openrouter/meta-llama/llama-4-maverick -openrouter/meta-llama/llama-4-scout -openrouter/meta-llama/llama-3.3-8b-instruct -openrouter/meta-llama/llama-3.3-70b-instruct +openrouter/meta-llama/llama-3.1-70b-instruct +openrouter/meta-llama/llama-3.1-8b-instruct openrouter/meta-llama/llama-3.2-1b-instruct openrouter/meta-llama/llama-3.2-3b-instruct -openrouter/meta-llama/llama-3.2-11b-vision-instruct -openrouter/meta-llama/llama-3.2-90b-vision-instruct -openrouter/meta-llama/llama-3.1-405b-instruct -openrouter/meta-llama/llama-3.1-8b-instruct -openrouter/meta-llama/llama-3.1-70b-instruct -openrouter/meta-llama/llama-3-8b-instruct -openrouter/meta-llama/llama-3-70b-instruct -openrouter/meta-llama/codellama-70b-instruct -openrouter/meta-llama/codellama-34b-instruct +openrouter/meta-llama/llama-3.3-70b-instruct +openrouter/meta-llama/llama-4-maverick +openrouter/meta-llama/llama-4-scout +openrouter/meta-llama/llama-guard-4-12b # OpenRouter — Mistral AI +openrouter/mistralai/codestral-2508 +openrouter/mistralai/devstral-2512 +openrouter/mistralai/ministral-14b-2512 +openrouter/mistralai/ministral-3b-2512 +openrouter/mistralai/ministral-8b-2512 +openrouter/mistralai/mistral-large +openrouter/mistralai/mistral-large-2407 +openrouter/mistralai/mistral-large-2512 +openrouter/mistralai/mistral-medium-3 openrouter/mistralai/mistral-medium-3-5 openrouter/mistralai/mistral-medium-3.1 -openrouter/mistralai/mistral-medium-3 -openrouter/mistralai/mistral-large-2512 -openrouter/mistralai/mistral-large-2411 -openrouter/mistralai/mistral-large-2407 -openrouter/mistralai/mistral-large +openrouter/mistralai/mistral-nemo +openrouter/mistralai/mistral-saba +openrouter/mistralai/mistral-small-24b-instruct-2501 openrouter/mistralai/mistral-small-2603 -openrouter/mistralai/mistral-small-creative -openrouter/mistralai/mistral-small-3.2-24b-instruct openrouter/mistralai/mistral-small-3.1-24b-instruct -openrouter/mistralai/mistral-small-24b-instruct-2501 -openrouter/mistralai/mistral-small -openrouter/mistralai/mistral-saba -openrouter/mistralai/mistral-nemo -openrouter/mistralai/pixtral-large-2411 -openrouter/mistralai/pixtral-12b -openrouter/mistralai/magistral-medium-2506 -openrouter/mistralai/magistral-small-2506 -openrouter/mistralai/devstral-2512 -openrouter/mistralai/devstral-medium -openrouter/mistralai/devstral-small -openrouter/mistralai/devstral-small-2505 -openrouter/mistralai/codestral-2508 -openrouter/mistralai/codestral-2501 -openrouter/mistralai/ministral-14b-2512 -openrouter/mistralai/ministral-8b-2512 -openrouter/mistralai/ministral-3b-2512 -openrouter/mistralai/ministral-8b -openrouter/mistralai/ministral-3b +openrouter/mistralai/mistral-small-3.2-24b-instruct openrouter/mistralai/mixtral-8x22b-instruct -openrouter/mistralai/mixtral-8x7b-instruct -openrouter/mistralai/mistral-7b-instruct -openrouter/mistralai/mistral-7b-instruct-v0.3 +openrouter/mistralai/voxtral-small-24b-2507 # OpenRouter — Qwen -openrouter/qwen/qwen3.6-flash -openrouter/qwen/qwen3.6-35b-a3b -openrouter/qwen/qwen3.6-max-preview -openrouter/qwen/qwen3.6-27b -openrouter/qwen/qwen3.6-plus -openrouter/qwen/qwen3.6-plus-preview -openrouter/qwen/qwen3.5-9b -openrouter/qwen/qwen3.5-35b-a3b -openrouter/qwen/qwen3.5-27b -openrouter/qwen/qwen3.5-122b-a10b -openrouter/qwen/qwen3.5-plus-20260420 -openrouter/qwen/qwen3.5-plus-02-15 -openrouter/qwen/qwen3.5-397b-a17b -openrouter/qwen/qwen3.5-flash-02-23 -openrouter/qwen/qwen3-max -openrouter/qwen/qwen3-max-thinking -openrouter/qwen/qwen3-coder-next -openrouter/qwen/qwen3-coder-plus -openrouter/qwen/qwen3-coder-flash -openrouter/qwen/qwen3-coder -openrouter/qwen/qwen3-coder-30b-a3b-instruct -openrouter/qwen/qwen3-next-80b-a3b-thinking -openrouter/qwen/qwen3-next-80b-a3b-instruct -openrouter/qwen/qwen3-vl-32b-instruct -openrouter/qwen/qwen3-vl-8b-thinking -openrouter/qwen/qwen3-vl-8b-instruct -openrouter/qwen/qwen3-vl-30b-a3b-thinking -openrouter/qwen/qwen3-vl-30b-a3b-instruct -openrouter/qwen/qwen3-vl-235b-a22b-thinking -openrouter/qwen/qwen3-vl-235b-a22b-instruct +openrouter/qwen/qwen-2.5-72b-instruct +openrouter/qwen/qwen-2.5-7b-instruct +openrouter/qwen/qwen-2.5-coder-32b-instruct +openrouter/qwen/qwen-plus +openrouter/qwen/qwen-plus-2025-07-28 +openrouter/qwen/qwen2.5-vl-72b-instruct +openrouter/qwen/qwen3-14b openrouter/qwen/qwen3-235b-a22b -openrouter/qwen/qwen3-235b-a22b-thinking-2507 openrouter/qwen/qwen3-235b-a22b-2507 +openrouter/qwen/qwen3-235b-a22b-thinking-2507 openrouter/qwen/qwen3-30b-a3b -openrouter/qwen/qwen3-30b-a3b-thinking-2507 openrouter/qwen/qwen3-30b-a3b-instruct-2507 +openrouter/qwen/qwen3-30b-a3b-thinking-2507 openrouter/qwen/qwen3-32b -openrouter/qwen/qwen3-14b openrouter/qwen/qwen3-8b -openrouter/qwen/qwen3-4b -openrouter/qwen/qwen3-1.7b -openrouter/qwen/qwen3-0.6b-04-28 -openrouter/qwen/qwq-32b -openrouter/qwen/qwen-max -openrouter/qwen/qwen-plus -openrouter/qwen/qwen-turbo -openrouter/qwen/qwen-vl-plus -openrouter/qwen/qwen-vl-max -openrouter/qwen/qwen2.5-vl-72b-instruct -openrouter/qwen/qwen2.5-vl-32b-instruct -openrouter/qwen/qwen2.5-vl-3b-instruct -openrouter/qwen/qwen2.5-32b-instruct -openrouter/qwen/qwen-2.5-coder-32b-instruct -openrouter/qwen/qwen2.5-coder-7b-instruct -openrouter/qwen/qwen-2.5-72b-instruct -openrouter/qwen/qwen-2.5-7b-instruct - -# OpenRouter — xAI -openrouter/x-ai/grok-4.3 -openrouter/x-ai/grok-4.20-multi-agent -openrouter/x-ai/grok-4.20 -openrouter/x-ai/grok-4.1-fast -openrouter/x-ai/grok-4-fast -openrouter/x-ai/grok-code-fast-1 -openrouter/x-ai/grok-4 -openrouter/x-ai/grok-3-mini -openrouter/x-ai/grok-3 -openrouter/x-ai/grok-3-mini-beta -openrouter/x-ai/grok-3-beta -openrouter/x-ai/grok-2-vision-1212 -openrouter/x-ai/grok-2-1212 -openrouter/x-ai/grok-2-mini -openrouter/x-ai/grok-2 +openrouter/qwen/qwen3-coder +openrouter/qwen/qwen3-coder-30b-a3b-instruct +openrouter/qwen/qwen3-coder-flash +openrouter/qwen/qwen3-coder-next +openrouter/qwen/qwen3-coder-plus +openrouter/qwen/qwen3-max +openrouter/qwen/qwen3-max-thinking +openrouter/qwen/qwen3-next-80b-a3b-instruct +openrouter/qwen/qwen3-next-80b-a3b-thinking +openrouter/qwen/qwen3-vl-235b-a22b-instruct +openrouter/qwen/qwen3-vl-235b-a22b-thinking +openrouter/qwen/qwen3-vl-30b-a3b-instruct +openrouter/qwen/qwen3-vl-30b-a3b-thinking +openrouter/qwen/qwen3-vl-32b-instruct +openrouter/qwen/qwen3-vl-8b-instruct +openrouter/qwen/qwen3-vl-8b-thinking +openrouter/qwen/qwen3.5-122b-a10b +openrouter/qwen/qwen3.5-27b +openrouter/qwen/qwen3.5-35b-a3b +openrouter/qwen/qwen3.5-397b-a17b +openrouter/qwen/qwen3.5-9b +openrouter/qwen/qwen3.5-flash-02-23 +openrouter/qwen/qwen3.5-plus-02-15 +openrouter/qwen/qwen3.5-plus-20260420 +openrouter/qwen/qwen3.6-27b +openrouter/qwen/qwen3.6-35b-a3b +openrouter/qwen/qwen3.6-flash +openrouter/qwen/qwen3.6-max-preview +openrouter/qwen/qwen3.6-plus +openrouter/qwen/qwen3.7-flash +openrouter/qwen/qwen3.7-max +openrouter/qwen/qwen3.7-plus +openrouter/qwen/qwen3.8-2.4t-a95b +openrouter/qwen/qwen3.8-27b +openrouter/qwen/qwen3.8-flash +openrouter/qwen/qwen3.8-max-0902 +openrouter/qwen/qwen3.8-max-prime +openrouter/qwen/qwen3.8-omni-flash diff --git a/lib/model-capabilities.js b/lib/model-capabilities.js index ad68704..97b3430 100644 --- a/lib/model-capabilities.js +++ b/lib/model-capabilities.js @@ -37,7 +37,8 @@ export function providerHeuristicSupportsThinking(modelId = '') { const id = normalizeModelId(modelId); if (!id) return false; if (/^anthropic\/claude/.test(id)) return true; - if (/^openai\/(o1|o3|o4|gpt-5)/.test(id)) return true; + // OpenAI reasoning / GPT-5+ families (gpt-5, gpt-5.6-luna, gpt-6-astra, …) + if (/^openai\/(o1|o3|o4|gpt-5|gpt-6)/.test(id)) return true; if (/^google\/gemini-(2\.5|3)/.test(id)) return true; return false; } diff --git a/model-capabilities.json b/model-capabilities.json index cac8fcc..d156a0f 100644 --- a/model-capabilities.json +++ b/model-capabilities.json @@ -1,588 +1,651 @@ { - "generatedAt": "2026-07-29T19:30:00.805Z", + "generatedAt": "2026-10-01T19:36:18.015Z", "source": "openrouter+octavus-provider-rules", "models": { - "anthropic/claude-opus-4-7": { + "anthropic/claude-fable-5": { + "supportsThinking": true + }, + "anthropic/claude-fable-5-1": { + "supportsThinking": true + }, + "anthropic/claude-haiku-4-5": { + "supportsThinking": true + }, + "anthropic/claude-opus-4": { + "supportsThinking": true + }, + "anthropic/claude-opus-4-1": { + "supportsThinking": true + }, + "anthropic/claude-opus-4-5": { "supportsThinking": true }, "anthropic/claude-opus-4-6": { "supportsThinking": true }, - "anthropic/claude-sonnet-4-6": { + "anthropic/claude-opus-4-7": { + "supportsThinking": true + }, + "anthropic/claude-opus-4-8": { + "supportsThinking": true + }, + "anthropic/claude-opus-5": { + "supportsThinking": true + }, + "anthropic/claude-opus-5-5": { + "supportsThinking": true + }, + "anthropic/claude-sonnet-4": { "supportsThinking": true }, "anthropic/claude-sonnet-4-5": { "supportsThinking": true }, - "anthropic/claude-haiku-4-5": { + "anthropic/claude-sonnet-4-6": { "supportsThinking": true }, - "google/gemini-3-pro-preview": { + "anthropic/claude-sonnet-5": { "supportsThinking": true }, - "google/gemini-3-flash-preview": { + "anthropic/claude-sonnet-5-5": { "supportsThinking": true }, + "google/gemini-2.0-flash": { + "supportsThinking": false + }, + "google/gemini-2.0-flash-lite": { + "supportsThinking": false + }, "google/gemini-2.5-flash": { "supportsThinking": true }, - "openai/gpt-5": { + "google/gemini-2.5-flash-lite": { "supportsThinking": true }, - "openai/gpt-4o": { - "supportsThinking": false + "google/gemini-2.5-pro": { + "supportsThinking": true }, - "openai/o4-mini": { + "google/gemini-2.5-pro-preview": { "supportsThinking": true }, - "openai/o3": { + "google/gemini-3-flash-preview": { "supportsThinking": true }, - "openai/o3-mini": { + "google/gemini-3-pro-preview": { "supportsThinking": true }, - "openai/o1": { + "google/gemini-3.1-flash-lite": { "supportsThinking": true }, - "openrouter/amazon/nova-2-lite-v1": { + "google/gemini-3.1-flash-lite-preview": { "supportsThinking": true }, - "openrouter/amazon/nova-premier-v1": { + "google/gemini-3.1-pro-preview": { + "supportsThinking": true + }, + "google/gemini-3.1-pro-preview-customtools": { + "supportsThinking": true + }, + "google/gemini-3.5-flash": { + "supportsThinking": true + }, + "google/gemini-3.5-flash-lite": { + "supportsThinking": true + }, + "google/gemini-3.6-flash": { + "supportsThinking": true + }, + "google/gemini-3.7-flash": { + "supportsThinking": true + }, + "google/gemini-3.8-flash": { + "supportsThinking": true + }, + "google/gemma-2-27b-it": { "supportsThinking": false }, - "openrouter/amazon/nova-lite-v1": { + "google/gemma-3-12b-it": { "supportsThinking": false }, - "openrouter/amazon/nova-micro-v1": { + "google/gemma-3-27b-it": { "supportsThinking": false }, - "openrouter/amazon/nova-pro-v1": { + "google/gemma-3-4b-it": { "supportsThinking": false }, - "openrouter/cohere/command-a": { + "google/gemma-4-26b-a4b-it": { + "supportsThinking": true + }, + "google/gemma-4-31b-it": { + "supportsThinking": true + }, + "openai/gpt-3.5-turbo": { "supportsThinking": false }, - "openrouter/cohere/command-r7b-12-2024": { + "openai/gpt-3.5-turbo-0613": { "supportsThinking": false }, - "openrouter/cohere/command-r-08-2024": { + "openai/gpt-3.5-turbo-16k": { "supportsThinking": false }, - "openrouter/cohere/command-r-plus-08-2024": { + "openai/gpt-3.5-turbo-instruct": { "supportsThinking": false }, - "openrouter/cohere/command-r-plus": { + "openai/gpt-4": { "supportsThinking": false }, - "openrouter/cohere/command-r-plus-04-2024": { + "openai/gpt-4-turbo": { "supportsThinking": false }, - "openrouter/cohere/command": { + "openai/gpt-4.1": { "supportsThinking": false }, - "openrouter/cohere/command-r": { + "openai/gpt-4.1-mini": { "supportsThinking": false }, - "openrouter/cohere/command-r-03-2024": { + "openai/gpt-4.1-nano": { "supportsThinking": false }, - "openrouter/deepseek/deepseek-v4-pro": { + "openai/gpt-4o": { + "supportsThinking": false + }, + "openai/gpt-4o-2024-05-13": { + "supportsThinking": false + }, + "openai/gpt-4o-2024-08-06": { + "supportsThinking": false + }, + "openai/gpt-4o-2024-11-20": { + "supportsThinking": false + }, + "openai/gpt-4o-mini": { + "supportsThinking": false + }, + "openai/gpt-4o-mini-2024-07-18": { + "supportsThinking": false + }, + "openai/gpt-5": { "supportsThinking": true }, - "openrouter/deepseek/deepseek-v4-flash": { + "openai/gpt-5-mini": { "supportsThinking": true }, - "openrouter/deepseek/deepseek-v3.2-speciale": { - "supportsThinking": false + "openai/gpt-5-nano": { + "supportsThinking": true }, - "openrouter/deepseek/deepseek-v3.2": { + "openai/gpt-5-pro": { "supportsThinking": true }, - "openrouter/deepseek/deepseek-v3.2-exp": { + "openai/gpt-5.1": { "supportsThinking": true }, - "openrouter/deepseek/deepseek-v3.1-terminus": { + "openai/gpt-5.1-codex": { "supportsThinking": true }, - "openrouter/deepseek/deepseek-chat-v3.1": { + "openai/gpt-5.1-codex-max": { "supportsThinking": true }, - "openrouter/deepseek/deepseek-r1-0528-qwen3-8b": { - "supportsThinking": false + "openai/gpt-5.1-codex-mini": { + "supportsThinking": true }, - "openrouter/deepseek/deepseek-r1-0528": { + "openai/gpt-5.2": { "supportsThinking": true }, - "openrouter/deepseek/deepseek-prover-v2": { - "supportsThinking": false + "openai/gpt-5.2-chat": { + "supportsThinking": true }, - "openrouter/deepseek/deepseek-chat-v3-0324": { - "supportsThinking": false + "openai/gpt-5.2-codex": { + "supportsThinking": true }, - "openrouter/deepseek/deepseek-r1-zero": { - "supportsThinking": false + "openai/gpt-5.2-pro": { + "supportsThinking": true }, - "openrouter/deepseek/deepseek-r1-distill-llama-8b": { - "supportsThinking": false + "openai/gpt-5.3-codex": { + "supportsThinking": true }, - "openrouter/deepseek/deepseek-r1-distill-qwen-1.5b": { - "supportsThinking": false + "openai/gpt-5.4": { + "supportsThinking": true }, - "openrouter/deepseek/deepseek-r1-distill-qwen-7b": { - "supportsThinking": false + "openai/gpt-5.4-mini": { + "supportsThinking": true }, - "openrouter/deepseek/deepseek-r1-distill-qwen-14b": { - "supportsThinking": false + "openai/gpt-5.4-nano": { + "supportsThinking": true }, - "openrouter/deepseek/deepseek-r1-distill-qwen-32b": { - "supportsThinking": false + "openai/gpt-5.4-pro": { + "supportsThinking": true }, - "openrouter/deepseek/deepseek-r1-distill-llama-70b": { + "openai/gpt-5.5": { "supportsThinking": true }, - "openrouter/deepseek/deepseek-r1": { + "openai/gpt-5.5-pro": { "supportsThinking": true }, - "openrouter/deepseek/deepseek-chat-v2.5": { - "supportsThinking": false + "openai/gpt-5.6": { + "supportsThinking": true }, - "openrouter/google/gemini-3.1-flash-lite": { + "openai/gpt-5.6-luna": { "supportsThinking": true }, - "openrouter/google/gemini-3.1-flash-image-preview": { + "openai/gpt-5.6-luna-pro": { "supportsThinking": true }, - "openrouter/google/gemini-3.1-pro-preview": { + "openai/gpt-5.6-sol": { "supportsThinking": true }, - "openrouter/google/gemini-3.1-flash-lite-preview": { + "openai/gpt-5.6-sol-pro": { "supportsThinking": true }, - "openrouter/google/gemini-3-flash-preview": { + "openai/gpt-5.6-terra": { "supportsThinking": true }, - "openrouter/google/gemini-3-pro-image-preview": { + "openai/gpt-5.6-terra-pro": { "supportsThinking": true }, - "openrouter/google/gemini-3-pro-preview": { + "openai/gpt-6-astra": { "supportsThinking": true }, - "openrouter/google/gemini-2.5-flash-image": { + "openai/gpt-6-astra-pro": { "supportsThinking": true }, - "openrouter/google/gemini-2.5-flash-lite": { + "openai/gpt-6-luna": { "supportsThinking": true }, - "openrouter/google/gemini-2.5-flash": { + "openai/gpt-6-luna-pro": { "supportsThinking": true }, - "openrouter/google/gemini-2.5-pro": { + "openai/gpt-6-sol": { "supportsThinking": true }, - "openrouter/google/gemini-2.5-pro-preview": { + "openai/gpt-6-sol-pro": { "supportsThinking": true }, - "openrouter/google/gemini-2.0-flash-lite-001": { - "supportsThinking": false + "openai/gpt-6.1-sol": { + "supportsThinking": true }, - "openrouter/google/gemini-2.0-flash-001": { - "supportsThinking": false + "openai/gpt-6.1-sol-pro": { + "supportsThinking": true }, - "openrouter/google/gemini-flash-1.5": { + "openai/gpt-chat-latest": { "supportsThinking": false }, - "openrouter/google/gemini-pro-1.5": { - "supportsThinking": false + "openai/gpt-oss-120b": { + "supportsThinking": true }, - "openrouter/google/gemma-4-26b-a4b-it": { + "openai/gpt-oss-20b": { "supportsThinking": true }, - "openrouter/google/gemma-4-31b-it": { + "openai/gpt-oss-safeguard-20b": { "supportsThinking": true }, - "openrouter/google/gemma-3n-e2b-it": { - "supportsThinking": false + "openai/o1": { + "supportsThinking": true }, - "openrouter/google/gemma-3n-e4b-it": { - "supportsThinking": false + "openai/o1-mini": { + "supportsThinking": true }, - "openrouter/google/gemma-3-1b-it": { - "supportsThinking": false + "openai/o1-pro": { + "supportsThinking": true }, - "openrouter/google/gemma-3-4b-it": { - "supportsThinking": false + "openai/o3": { + "supportsThinking": true }, - "openrouter/google/gemma-3-12b-it": { - "supportsThinking": false + "openai/o3-deep-research": { + "supportsThinking": true }, - "openrouter/google/gemma-3-27b-it": { - "supportsThinking": false + "openai/o3-mini": { + "supportsThinking": true }, - "openrouter/google/gemma-2-27b-it": { - "supportsThinking": false + "openai/o3-mini-high": { + "supportsThinking": true }, - "openrouter/google/gemma-2-9b-it": { - "supportsThinking": false + "openai/o3-pro": { + "supportsThinking": true }, - "openrouter/meta-llama/llama-4-maverick": { - "supportsThinking": false + "openai/o4-mini": { + "supportsThinking": true }, - "openrouter/meta-llama/llama-4-scout": { - "supportsThinking": false + "openai/o4-mini-deep-research": { + "supportsThinking": true }, - "openrouter/meta-llama/llama-3.3-8b-instruct": { - "supportsThinking": false + "openai/o4-mini-high": { + "supportsThinking": true }, - "openrouter/meta-llama/llama-3.3-70b-instruct": { - "supportsThinking": false + "x-ai/grok-4.20": { + "supportsThinking": true }, - "openrouter/meta-llama/llama-3.2-1b-instruct": { - "supportsThinking": false + "x-ai/grok-4.20-multi-agent": { + "supportsThinking": true }, - "openrouter/meta-llama/llama-3.2-3b-instruct": { - "supportsThinking": false + "x-ai/grok-4.3": { + "supportsThinking": true }, - "openrouter/meta-llama/llama-3.2-11b-vision-instruct": { - "supportsThinking": false + "x-ai/grok-4.5": { + "supportsThinking": true }, - "openrouter/meta-llama/llama-3.2-90b-vision-instruct": { - "supportsThinking": false + "x-ai/grok-4.6": { + "supportsThinking": true }, - "openrouter/meta-llama/llama-3.1-405b-instruct": { - "supportsThinking": false + "x-ai/grok-4.7": { + "supportsThinking": true }, - "openrouter/meta-llama/llama-3.1-8b-instruct": { + "x-ai/grok-build-0.1": { + "supportsThinking": true + }, + "octavus/octo-1": { "supportsThinking": false }, - "openrouter/meta-llama/llama-3.1-70b-instruct": { + "openrouter/amazon/nova-2-lite-v1": { + "supportsThinking": true + }, + "openrouter/amazon/nova-lite-v1": { "supportsThinking": false }, - "openrouter/meta-llama/llama-3-8b-instruct": { + "openrouter/amazon/nova-micro-v1": { "supportsThinking": false }, - "openrouter/meta-llama/llama-3-70b-instruct": { + "openrouter/amazon/nova-premier-v1": { "supportsThinking": false }, - "openrouter/meta-llama/codellama-70b-instruct": { + "openrouter/amazon/nova-pro-v1": { "supportsThinking": false }, - "openrouter/meta-llama/codellama-34b-instruct": { + "openrouter/cohere/command-a": { "supportsThinking": false }, - "openrouter/mistralai/mistral-medium-3-5": { + "openrouter/cohere/command-a-plus": { "supportsThinking": true }, - "openrouter/mistralai/mistral-medium-3.1": { + "openrouter/cohere/command-r-08-2024": { "supportsThinking": false }, - "openrouter/mistralai/mistral-medium-3": { + "openrouter/cohere/command-r-plus-08-2024": { "supportsThinking": false }, - "openrouter/mistralai/mistral-large-2512": { + "openrouter/cohere/command-r7b-12-2024": { "supportsThinking": false }, - "openrouter/mistralai/mistral-large-2411": { + "openrouter/deepseek/deepseek-chat": { "supportsThinking": false }, - "openrouter/mistralai/mistral-large-2407": { + "openrouter/deepseek/deepseek-chat-v3-0324": { "supportsThinking": false }, - "openrouter/mistralai/mistral-large": { - "supportsThinking": false + "openrouter/deepseek/deepseek-chat-v3.1": { + "supportsThinking": true }, - "openrouter/mistralai/mistral-small-2603": { + "openrouter/deepseek/deepseek-r1": { "supportsThinking": true }, - "openrouter/mistralai/mistral-small-creative": { - "supportsThinking": false + "openrouter/deepseek/deepseek-r1-0528": { + "supportsThinking": true }, - "openrouter/mistralai/mistral-small-3.2-24b-instruct": { - "supportsThinking": false + "openrouter/deepseek/deepseek-v3.1-terminus": { + "supportsThinking": true }, - "openrouter/mistralai/mistral-small-3.1-24b-instruct": { - "supportsThinking": false + "openrouter/deepseek/deepseek-v3.2": { + "supportsThinking": true }, - "openrouter/mistralai/mistral-small-24b-instruct-2501": { - "supportsThinking": false + "openrouter/deepseek/deepseek-v3.2-exp": { + "supportsThinking": true }, - "openrouter/mistralai/mistral-small": { - "supportsThinking": false + "openrouter/deepseek/deepseek-v4-flash": { + "supportsThinking": true }, - "openrouter/mistralai/mistral-saba": { - "supportsThinking": false + "openrouter/deepseek/deepseek-v4-flash-0731": { + "supportsThinking": true }, - "openrouter/mistralai/mistral-nemo": { - "supportsThinking": false + "openrouter/deepseek/deepseek-v4-flash-vision-exp": { + "supportsThinking": true + }, + "openrouter/deepseek/deepseek-v4-pro": { + "supportsThinking": true + }, + "openrouter/deepseek/deepseek-v4-pro-0813": { + "supportsThinking": true + }, + "openrouter/deepseek/deepseek-v4.1-flash": { + "supportsThinking": true }, - "openrouter/mistralai/pixtral-large-2411": { + "openrouter/meta-llama/llama-3.1-70b-instruct": { "supportsThinking": false }, - "openrouter/mistralai/pixtral-12b": { + "openrouter/meta-llama/llama-3.1-8b-instruct": { "supportsThinking": false }, - "openrouter/mistralai/magistral-medium-2506": { + "openrouter/meta-llama/llama-3.2-1b-instruct": { "supportsThinking": false }, - "openrouter/mistralai/magistral-small-2506": { + "openrouter/meta-llama/llama-3.2-3b-instruct": { "supportsThinking": false }, - "openrouter/mistralai/devstral-2512": { + "openrouter/meta-llama/llama-3.3-70b-instruct": { "supportsThinking": false }, - "openrouter/mistralai/devstral-medium": { + "openrouter/meta-llama/llama-4-maverick": { "supportsThinking": false }, - "openrouter/mistralai/devstral-small": { + "openrouter/meta-llama/llama-4-scout": { "supportsThinking": false }, - "openrouter/mistralai/devstral-small-2505": { + "openrouter/meta-llama/llama-guard-4-12b": { "supportsThinking": false }, "openrouter/mistralai/codestral-2508": { "supportsThinking": false }, - "openrouter/mistralai/codestral-2501": { + "openrouter/mistralai/devstral-2512": { "supportsThinking": false }, "openrouter/mistralai/ministral-14b-2512": { "supportsThinking": false }, - "openrouter/mistralai/ministral-8b-2512": { - "supportsThinking": false - }, "openrouter/mistralai/ministral-3b-2512": { "supportsThinking": false }, - "openrouter/mistralai/ministral-8b": { - "supportsThinking": false - }, - "openrouter/mistralai/ministral-3b": { + "openrouter/mistralai/ministral-8b-2512": { "supportsThinking": false }, - "openrouter/mistralai/mixtral-8x22b-instruct": { + "openrouter/mistralai/mistral-large": { "supportsThinking": false }, - "openrouter/mistralai/mixtral-8x7b-instruct": { + "openrouter/mistralai/mistral-large-2407": { "supportsThinking": false }, - "openrouter/mistralai/mistral-7b-instruct": { + "openrouter/mistralai/mistral-large-2512": { "supportsThinking": false }, - "openrouter/mistralai/mistral-7b-instruct-v0.3": { + "openrouter/mistralai/mistral-medium-3": { "supportsThinking": false }, - "openrouter/qwen/qwen3.6-flash": { - "supportsThinking": true - }, - "openrouter/qwen/qwen3.6-35b-a3b": { - "supportsThinking": true - }, - "openrouter/qwen/qwen3.6-max-preview": { - "supportsThinking": true - }, - "openrouter/qwen/qwen3.6-27b": { - "supportsThinking": true - }, - "openrouter/qwen/qwen3.6-plus": { + "openrouter/mistralai/mistral-medium-3-5": { "supportsThinking": true }, - "openrouter/qwen/qwen3.6-plus-preview": { + "openrouter/mistralai/mistral-medium-3.1": { "supportsThinking": false }, - "openrouter/qwen/qwen3.5-9b": { - "supportsThinking": true - }, - "openrouter/qwen/qwen3.5-35b-a3b": { - "supportsThinking": true - }, - "openrouter/qwen/qwen3.5-27b": { - "supportsThinking": true - }, - "openrouter/qwen/qwen3.5-122b-a10b": { - "supportsThinking": true - }, - "openrouter/qwen/qwen3.5-plus-20260420": { - "supportsThinking": true - }, - "openrouter/qwen/qwen3.5-plus-02-15": { - "supportsThinking": true - }, - "openrouter/qwen/qwen3.5-397b-a17b": { - "supportsThinking": true - }, - "openrouter/qwen/qwen3.5-flash-02-23": { - "supportsThinking": true - }, - "openrouter/qwen/qwen3-max": { - "supportsThinking": true + "openrouter/mistralai/mistral-nemo": { + "supportsThinking": false }, - "openrouter/qwen/qwen3-max-thinking": { - "supportsThinking": true + "openrouter/mistralai/mistral-saba": { + "supportsThinking": false }, - "openrouter/qwen/qwen3-coder-next": { + "openrouter/mistralai/mistral-small-24b-instruct-2501": { "supportsThinking": false }, - "openrouter/qwen/qwen3-coder-plus": { + "openrouter/mistralai/mistral-small-2603": { "supportsThinking": true }, - "openrouter/qwen/qwen3-coder-flash": { + "openrouter/mistralai/mistral-small-3.1-24b-instruct": { "supportsThinking": false }, - "openrouter/qwen/qwen3-coder": { + "openrouter/mistralai/mistral-small-3.2-24b-instruct": { "supportsThinking": false }, - "openrouter/qwen/qwen3-coder-30b-a3b-instruct": { + "openrouter/mistralai/mixtral-8x22b-instruct": { "supportsThinking": false }, - "openrouter/qwen/qwen3-next-80b-a3b-thinking": { - "supportsThinking": true - }, - "openrouter/qwen/qwen3-next-80b-a3b-instruct": { + "openrouter/mistralai/voxtral-small-24b-2507": { "supportsThinking": false }, - "openrouter/qwen/qwen3-vl-32b-instruct": { + "openrouter/qwen/qwen-2.5-72b-instruct": { "supportsThinking": false }, - "openrouter/qwen/qwen3-vl-8b-thinking": { - "supportsThinking": true - }, - "openrouter/qwen/qwen3-vl-8b-instruct": { + "openrouter/qwen/qwen-2.5-7b-instruct": { "supportsThinking": false }, - "openrouter/qwen/qwen3-vl-30b-a3b-thinking": { - "supportsThinking": true + "openrouter/qwen/qwen-2.5-coder-32b-instruct": { + "supportsThinking": false }, - "openrouter/qwen/qwen3-vl-30b-a3b-instruct": { + "openrouter/qwen/qwen-plus": { "supportsThinking": false }, - "openrouter/qwen/qwen3-vl-235b-a22b-thinking": { + "openrouter/qwen/qwen-plus-2025-07-28": { "supportsThinking": true }, - "openrouter/qwen/qwen3-vl-235b-a22b-instruct": { + "openrouter/qwen/qwen2.5-vl-72b-instruct": { "supportsThinking": false }, - "openrouter/qwen/qwen3-235b-a22b": { + "openrouter/qwen/qwen3-14b": { "supportsThinking": true }, - "openrouter/qwen/qwen3-235b-a22b-thinking-2507": { + "openrouter/qwen/qwen3-235b-a22b": { "supportsThinking": true }, "openrouter/qwen/qwen3-235b-a22b-2507": { "supportsThinking": false }, - "openrouter/qwen/qwen3-30b-a3b": { + "openrouter/qwen/qwen3-235b-a22b-thinking-2507": { "supportsThinking": true }, - "openrouter/qwen/qwen3-30b-a3b-thinking-2507": { + "openrouter/qwen/qwen3-30b-a3b": { "supportsThinking": true }, "openrouter/qwen/qwen3-30b-a3b-instruct-2507": { "supportsThinking": false }, - "openrouter/qwen/qwen3-32b": { + "openrouter/qwen/qwen3-30b-a3b-thinking-2507": { "supportsThinking": true }, - "openrouter/qwen/qwen3-14b": { + "openrouter/qwen/qwen3-32b": { "supportsThinking": true }, "openrouter/qwen/qwen3-8b": { "supportsThinking": true }, - "openrouter/qwen/qwen3-4b": { + "openrouter/qwen/qwen3-coder": { "supportsThinking": false }, - "openrouter/qwen/qwen3-1.7b": { + "openrouter/qwen/qwen3-coder-30b-a3b-instruct": { "supportsThinking": false }, - "openrouter/qwen/qwen3-0.6b-04-28": { + "openrouter/qwen/qwen3-coder-flash": { "supportsThinking": false }, - "openrouter/qwen/qwq-32b": { + "openrouter/qwen/qwen3-coder-next": { "supportsThinking": false }, - "openrouter/qwen/qwen-max": { + "openrouter/qwen/qwen3-coder-plus": { "supportsThinking": false }, - "openrouter/qwen/qwen-plus": { - "supportsThinking": false + "openrouter/qwen/qwen3-max": { + "supportsThinking": true }, - "openrouter/qwen/qwen-turbo": { - "supportsThinking": false + "openrouter/qwen/qwen3-max-thinking": { + "supportsThinking": true }, - "openrouter/qwen/qwen-vl-plus": { + "openrouter/qwen/qwen3-next-80b-a3b-instruct": { "supportsThinking": false }, - "openrouter/qwen/qwen-vl-max": { - "supportsThinking": false + "openrouter/qwen/qwen3-next-80b-a3b-thinking": { + "supportsThinking": true }, - "openrouter/qwen/qwen2.5-vl-72b-instruct": { + "openrouter/qwen/qwen3-vl-235b-a22b-instruct": { "supportsThinking": false }, - "openrouter/qwen/qwen2.5-vl-32b-instruct": { - "supportsThinking": false + "openrouter/qwen/qwen3-vl-235b-a22b-thinking": { + "supportsThinking": true }, - "openrouter/qwen/qwen2.5-vl-3b-instruct": { + "openrouter/qwen/qwen3-vl-30b-a3b-instruct": { "supportsThinking": false }, - "openrouter/qwen/qwen2.5-32b-instruct": { - "supportsThinking": false + "openrouter/qwen/qwen3-vl-30b-a3b-thinking": { + "supportsThinking": true }, - "openrouter/qwen/qwen-2.5-coder-32b-instruct": { + "openrouter/qwen/qwen3-vl-32b-instruct": { "supportsThinking": false }, - "openrouter/qwen/qwen2.5-coder-7b-instruct": { + "openrouter/qwen/qwen3-vl-8b-instruct": { "supportsThinking": false }, - "openrouter/qwen/qwen-2.5-72b-instruct": { - "supportsThinking": false + "openrouter/qwen/qwen3-vl-8b-thinking": { + "supportsThinking": true }, - "openrouter/qwen/qwen-2.5-7b-instruct": { - "supportsThinking": false + "openrouter/qwen/qwen3.5-122b-a10b": { + "supportsThinking": true }, - "openrouter/x-ai/grok-4.3": { + "openrouter/qwen/qwen3.5-27b": { "supportsThinking": true }, - "openrouter/x-ai/grok-4.20-multi-agent": { + "openrouter/qwen/qwen3.5-35b-a3b": { "supportsThinking": true }, - "openrouter/x-ai/grok-4.20": { + "openrouter/qwen/qwen3.5-397b-a17b": { "supportsThinking": true }, - "openrouter/x-ai/grok-4.1-fast": { - "supportsThinking": false + "openrouter/qwen/qwen3.5-9b": { + "supportsThinking": true }, - "openrouter/x-ai/grok-4-fast": { - "supportsThinking": false + "openrouter/qwen/qwen3.5-flash-02-23": { + "supportsThinking": true }, - "openrouter/x-ai/grok-code-fast-1": { - "supportsThinking": false + "openrouter/qwen/qwen3.5-plus-02-15": { + "supportsThinking": true }, - "openrouter/x-ai/grok-4": { - "supportsThinking": false + "openrouter/qwen/qwen3.5-plus-20260420": { + "supportsThinking": true }, - "openrouter/x-ai/grok-3-mini": { - "supportsThinking": false + "openrouter/qwen/qwen3.6-27b": { + "supportsThinking": true }, - "openrouter/x-ai/grok-3": { - "supportsThinking": false + "openrouter/qwen/qwen3.6-35b-a3b": { + "supportsThinking": true }, - "openrouter/x-ai/grok-3-mini-beta": { - "supportsThinking": false + "openrouter/qwen/qwen3.6-flash": { + "supportsThinking": true }, - "openrouter/x-ai/grok-3-beta": { - "supportsThinking": false + "openrouter/qwen/qwen3.6-max-preview": { + "supportsThinking": true }, - "openrouter/x-ai/grok-2-vision-1212": { - "supportsThinking": false + "openrouter/qwen/qwen3.6-plus": { + "supportsThinking": true }, - "openrouter/x-ai/grok-2-1212": { - "supportsThinking": false + "openrouter/qwen/qwen3.7-flash": { + "supportsThinking": true }, - "openrouter/x-ai/grok-2-mini": { - "supportsThinking": false + "openrouter/qwen/qwen3.7-max": { + "supportsThinking": true }, - "openrouter/x-ai/grok-2": { - "supportsThinking": false + "openrouter/qwen/qwen3.7-plus": { + "supportsThinking": true + }, + "openrouter/qwen/qwen3.8-2.4t-a95b": { + "supportsThinking": true + }, + "openrouter/qwen/qwen3.8-27b": { + "supportsThinking": true + }, + "openrouter/qwen/qwen3.8-flash": { + "supportsThinking": true + }, + "openrouter/qwen/qwen3.8-max-0902": { + "supportsThinking": true + }, + "openrouter/qwen/qwen3.8-max-prime": { + "supportsThinking": true + }, + "openrouter/qwen/qwen3.8-omni-flash": { + "supportsThinking": true } } } diff --git a/tests/model-capabilities.test.js b/tests/model-capabilities.test.js index 25a9888..7fd9217 100644 --- a/tests/model-capabilities.test.js +++ b/tests/model-capabilities.test.js @@ -37,6 +37,8 @@ describe('providerHeuristicSupportsThinking', () => { expect(providerHeuristicSupportsThinking('anthropic/claude-sonnet-4-6')).toBe(true); expect(providerHeuristicSupportsThinking('openai/o3')).toBe(true); expect(providerHeuristicSupportsThinking('openai/gpt-5')).toBe(true); + expect(providerHeuristicSupportsThinking('openai/gpt-5.6-luna')).toBe(true); + expect(providerHeuristicSupportsThinking('openai/gpt-6-astra')).toBe(true); expect(providerHeuristicSupportsThinking('google/gemini-2.5-flash')).toBe(true); expect(providerHeuristicSupportsThinking('google/gemini-3-pro-preview')).toBe(true); });