Repository navigation
fix(cost-map): retirement dates, chatgpt reasoning flags, bing pricing, bedrock mantle and mythos, azure gpt-5.6 alias, anthropic batch rates, new nebius, openrouter and xai rows - #42951
Conversation
…iew retirement dates Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Dmitry Voropaev <dy.voropaev@gmail.com> Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
|
|
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…ent on the openai row Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Vishnu Nair <nvishnu22@gmail.com> Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Mariano Billinghurst <mariano.billinghurst@pmi.com> Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: kerry <kerry@berri.ai> Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…aws price list Co-authored-by: Yuneng Jiang <yuneng@berri.ai> Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: krrish-berri-2 <270687000+krrish-berri-2@users.noreply.github.com> Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
bugbot run |
…t_20260924 Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> # Conflicts: # litellm/litellm_core_utils/litellm_logging.py
|
bugbot run |
|
bugbot run |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
1 issue from previous review remains unresolved.
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 9a4779f. Configure here.
… to rc/1.104.0 (#43366) * fix(cost-map): retirement dates, chatgpt reasoning flags, bing pricing, bedrock mantle and mythos, azure gpt-5.6 alias, anthropic batch rates, new nebius, openrouter and xai rows (#42951) (cherry picked from commit 4179860) * ci: cut CircleCI wall time without loosening test isolation (#43347) * ci: cut CircleCI wall time without loosening test isolation * fix(ci): parse integration split files that follow --results The CircleCI machine image ships Python 3.12.2, whose argparse leaves the files positional empty when it follows an option and another positional, so every extensions node exited with 'unrecognized arguments'. Reproduced on 3.12.2; parse_intermixed_args selects the files on 3.12.2, 3.12.13 and 3.13 * test(ci): resolve command references in the Rust toolchain guard The Windows rustup install moved into the install_windows_toolchain command, which the guard only recognized for install_rust. It now accepts any command that installs a pinned rustup and reads the Windows toolchain pin from it * ci: cache the Windows release cargo build from main windows_release_wheel rebuilt every dependency with fat LTO on each run. It now restores the release target and cargo registry saved by main's scheduled run, drops the workspace crates' fingerprints so they always rebuild from the checked-out source, and still runs the full LTO link * ci: run the Windows release wheel build on windows.xlarge The fat-LTO release build is the slowest job in the pipeline; more cores speed up the dependency compile ahead of the final link * ci: skip the Windows fingerprint cleanup when the cargo cache missed On a cold cache the release fingerprint directory does not exist, and the CircleCI PowerShell wrapper failed the step on the suppressed not-found error (cherry picked from commit 635a718) --------- Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>

TLDR
Problem this solves:
chatgpt/*rows had no reasoning flags while their openai twins didbing_grounding/searchcharged $35 per 1k searches, Microsoft lists $14anthropic.claude-mythos-previewbase row billed $0 while its regional rows bill $27.50 / $137.50azure/gpt-5.6alias rows still billed $5 / $30 althoughgpt-5.6routes to GPT-5.6 Sol at $4 / $20grok-imagine-image-prohad no rowsgemini-2.5-flash-native-audio-latestclaimed a 1M input window, the API says 131072How it solves it:
deprecation_datefrom the raw provider retirement tables on 8 openai and 3 gemini rowschatgpt/*twin, with a test pinning that invariant (absorbed from fix(cost-map): carry openai reasoning annotations onto their chatgpt twins #42923)input_cost_per_queryto 0.014 and fixes the test that pinned 0.035 (absorbed from fix(cost): update Bing Grounding pricing #43016)bedrock_mantle/*rows with prices from the AWS price list and limits from the AWS model cards (absorbed from fix(prices): add missing bedrock_mantle entries for DeepSeek, Kimi and Qwen models #42727, limits corrected)azure_ai/*rows with prices from the Azure Retail Prices API (absorbed from chore(prices): sync Azure prices: 20 models, 20 new [20 with gaps] #42594) andc4ai-aya-expanse-32bfrom Cohere docsazure/{,us/,eu/}gpt-5.6alias rows onto their-solsibling values (absorbed from fix(cost-map): bill azure gpt-5.6 alias at Sol promo rates ($4/$20) #43176)*_batchesfields at half the standard rate on 19 anthropic rows (absorbed from chore(cost-map): backfill anthropic batch api prices from the pricing page #43171)User Flow
Before: an operator reading
/model/infocannot see that these models have a published retirement date, and a chatgpt reasoning model looks like a non-reasoning onegpt-5.1-codexandgemini/gemini-3.1-flash-lite-previewdeprecation_date, although both providers have published a shutdown datechatgpt/gpt-5.6-solcomes back withsupports_reasoningunset, so their dashboard offers no reasoning effort for itAfter: every row carries the provider's published date and the chatgpt twin matches its openai row
gpt-5.1-codexshows"deprecation_date": "2026-07-23"andgemini/gemini-3.1-flash-lite-previewshows"2026-05-25"chatgpt/gpt-5.6-solshowssupports_reasoning: truewith the same effort flags asgpt-5.6-solRelevant issues
Fixes #41394 (absorbed from #42923)
Supersedes #43016, #42727, #42594, #42728, #42704, #43048, #43176 and #43171
Supports #26900 (deprecation metadata in the registry)
Pre-Submission checklist
Please complete all items before asking a LiteLLM maintainer to review your PR
test_chatgpt_rows_carry_their_openai_twin_reasoning_annotationsfails on main's data with all 38 mismatches and passes here; the date edits are covered bytests/test_litellm/test_model_prices_schema.pyandtest_cost_map_guard.py)uv run pytest tests/test_litellm/<your_test_file>.py -v. Leave the suites (make test-unit-*,make test-unit) to CI: it finishes in ~15 minutes where a laptop takes an hour or moremisc(tests/unit/test_unit_shard_missing_paths.py, missing.circleci/scripts/unit_selection.sh) andmcp-integration(test_sse_mcp_handler_mock,test_call_tool), fail identically on main's latest runs@greptileaito re-request a review after pushing changes)Delays in PR merge?
If you're seeing a delay in your PR being merged, ping the LiteLLM Team on Slack (#pr-review).
Screenshots / Proof of Fix
This is the rolling registry PR for the 2026-09-24 audit run. The previous rolling PR #42947 merged earlier today, so this one is new
Sources for every changed value
Every row below was read from the raw HTML table (curl with a cache buster,
<tr>/<td>parsed) on 2026-09-24 and cross-checked with r.jina.ai, which agreed on every rowOpenAI, https://platform.openai.com/docs/deprecations
gpt-5-codexJuly 23, 2026 | gpt-5-codex | gpt-5.6-solgpt-5.1-chat-latestJuly 23, 2026 | gpt-5.1-chat-latest | gpt-5.6-solgpt-5.1-codexJuly 23, 2026 | gpt-5.1-codex | gpt-5.6-solgpt-5.1-codex-maxJuly 23, 2026 | gpt-5.1-codex-max | gpt-5.6-solgpt-5.1-codex-miniJuly 23, 2026 | gpt-5.1-codex-mini | gpt-5.6-terragpt-5.2-codexJuly 23, 2026 | gpt-5.2-codex | gpt-5.6-solgpt-5.2-chat-latestAug 10, 2026 | gpt-5.2-chat-latest | gpt-5.6-solgpt-5.3-chat-latestAug 10, 2026 | gpt-5.3-chat-latest | gpt-5.6-solOnly the bare openai keys change. The
azure/*twins keep their dates from the Azure schedule, and thechatgpt/,github_copilot/andopenrouter/twins are other providers' routes with no published dateGemini API, https://ai.google.dev/gemini-api/docs/deprecations
gemini/gemini-3-pro-image-previewgemini-3-pro-image-preview | November 20, 2025 | June 25, 2026 | gemini-3-pro-imagegemini/gemini-3.1-flash-image-previewgemini-3.1-flash-image-preview | February 26, 2026 | June 25, 2026 | gemini-3.1-flash-imagegemini/gemini-3.1-flash-lite-previewgemini-3.1-flash-lite-preview | March 3, 2026 | May 25, 2026 | gemini-3.1-flash-liteThe
vertex_ai/and baregemini-3*rows are Vertex routes; the Vertex deprecations page does not list these preview models, so they are left alonechatgpt twins, absorbed from #42923
Not a vendor value.
ChatGPTConfigandChatGPTResponsesAPIConfigsubclass the openai configs, so achatgpt/<model>row behaves as the bare<model>openai row. The 38 fields are copied verbatim from the bare twin on this branch (supports_reasoning,supports_minimal_reasoning_effort,supports_none_reasoning_effort,supports_xhigh_reasoning_effort,default_reasoning_effort) ontochatgpt/gpt-5.1-codex-max,gpt-5.1-codex-mini,gpt-5.2,gpt-5.2-codex,gpt-5.3-chat-latest,gpt-5.3-codex,gpt-5.4,gpt-5.4-pro,gpt-5.5,gpt-5.6-luna,gpt-5.6-sol,gpt-5.6-terra.chatgpt/gpt-5.3-codex-sparkandchatgpt/gpt-5.3-instanthave no bare twin and are untouched. The new test fails on main's data (38 mismatches) and passes here. Commit carries a Co-authored-by trailer for the original authorBing Grounding, https://www.microsoft.com/en-us/bing/apis/grounding-pricing
Raw page and r.jina.ai both read
Grounding with Bing Search ... $14 per 1,000 transactions, sobing_grounding/search.input_cost_per_querygoes from 0.035 to 0.014 and themetadata.notestext follows.tests/search_tests/test_bing_grounding_search.pyasserted the old 0.035 and now asserts 0.014Bedrock Mantle, https://aws.amazon.com/bedrock/pricing/ and the AWS model cards
Prices are the standard on-demand US East rows, read from the raw pricing page, r.jina.ai and the AWS public price list JSON (per 1K tokens), which all agree. Context window, max output, reasoning, image input and client-side tool calling come from each model card's raw HTML (checkmark icons parsed per cell). Every card marks the Responses API as not supported on the
bedrock-mantleendpoint, sosupported_endpointsis/v1/chat/completionsonlybedrock_mantle/deepseek.v3.1bedrock_mantle/moonshotai.kimi-k2-thinkingbedrock_mantle/qwen.qwen3-235b-a22b-2507bedrock_mantle/qwen.qwen3-32bbedrock_mantle/qwen.qwen3-coder-30b-a3b-instructbedrock_mantle/qwen.qwen3-coder-480b-a35b-instructbedrock_mantle/qwen.qwen3-next-80b-a3b-instructbedrock_mantle/qwen.qwen3-vl-235b-a22b-instructThe prices match #42727. Its token limits did not match the model cards (for example 32B at 131072 context and 81920 or 131072 max output on several rows) and its
supports_reasoningon DeepSeek V3.1 and the coder models has no card support, so those fields were taken from the cards instead. Its test file pinned those vendor values as literals and was not carried overAzure AI, https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption'
Global (
glbl) meters read from the Retail Prices API on 2026-09-24, per 1K tokens, in / out:R10.00135 / 0.0054,V3-03240.00114 / 0.00456,V3.10.00123 / 0.00494,Grok-30.003 / 0.015,Grok-3 Mini0.00025 / 0.00127,Grok4 Fast0.0002 / 0.0005. New rowsazure_ai/deepseek-r1,azure_ai/deepseek-v3-0324,azure_ai/deepseek-v3.1,azure_ai/grok-3,azure_ai/grok-3-mini,azure_ai/grok-4-fast-reasoning,azure_ai/grok-4-fast-non-reasoningcarry only price, mode, provider and source. #42594 also proposed context limits, capability flags and retirement dates for them that the API does not publish, so those were not carried, and itsazure_ai/MAI-Image-2erow has no meter in the API and was dropped. The rest of #42594's 24 keys already exist on main with matching pricesCohere, https://docs.cohere.com/docs/models and https://cohere.com/pricing
c4ai-aya-expanse-32b: models table rowText | 128k | 4k | Chat, pricing pageAya Expanse 8B/32B: $0.50 / $1.50 per 1M.c4ai-aya-vision-32b,cohere-transcribe-03-2026and theembed-*-v3.0-imageids are on the models list but have no per-token price on the pricing page, so no rows2026-09-25 run
Bedrock, https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/index.json (absorbed from #43048)
Product rows with
servicename"Claude Mythos Preview (Amazon Bedrock Edition)" in us-east-1, per 1M tokens:Million Input Tokens Standard 27.50,Million Response Tokens Standard 137.50,Million Cache Read Input Tokens Standard 2.75,Million Cache Write Input Tokens Standard 34.375,Million 1 hour Cache Write Input Tokens Standard 55.00.anthropic.claude-mythos-previewgoes from 0 / 0 to those five values withsupports_prompt_cachingtrue, matching the existingus./apac./au.rows. The PR's test asserts that any priced cross-region bedrock profile has a priced base row, an invariant, so it is carried. Commit carries a Co-authored-by trailerAzure, https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20'Foundry%20Models'%20and%20armRegionName%20eq%20'eastus'%20and%20priceType%20eq%20'Consumption' (absorbed from #43176)
Azure publishes no bare "5.6" meter, only
5.6 sol,5.6 terraand5.6 luna; the OpenAI model page https://platform.openai.com/docs/models/gpt-5.6 says "Thegpt-5.6alias routes requests to GPT-5.6 Sol". The Retail Prices API reads5.6 sol ShortCo Inp Std Gl 4.0,Opt Std Gl 20.0,Cd Inp Std Gl 0.4,Cd Wr Std Gl 5.0,LongCo Inp Std Gl 8.0,LongCo Opt Std Gl 30.0, priorityInp PP Gl 8.0/Opt PP Gl 40.0, and the DZ meters at 1.1x, which are exactly theazure/gpt-5.6-solrows already on main. The 16 cost fields onazure/gpt-5.6,azure/us/gpt-5.6andazure/eu/gpt-5.6now equal their-solsibling field for field, and the PR's test pins that invariant. Commit carries a Co-authored-by trailerAnthropic Batch API, https://platform.claude.com/docs/en/about-claude/pricing (absorbed from #43171)
Raw Batch table rows read today:
Claude Fable 5.1 $5 / $25,Claude Opus 5.5 $2 / $10,Claude Sonnet 5 $1 / $5,Claude Haiku 4.5 $0.50 / $2.50,Claude Mythos 5.1 $5 / $25,Claude Fable 5 $5 / $25,Claude Mythos 5 $5 / $25,Claude Opus 5 / 4.8 / 4.7 / 4.6 / 4.5 $2.50 / $12.50,Claude Sonnet 4.6 / 4.5 $1.50 / $7.50. The page also states "These multipliers stack with other pricing modifiers, including the Batch API discount" for cache writes and reads and "Prompt caching and batch processing discounts apply at standard rates across the full context window", so each of the 19 rows gets*_batchesat exactly half of every cache and above-200k field it already carries (84 fields, checked programmatically).claude-mythos-previewhas no Batch row and is untouched. The PR'ssourceedits on 5 rows were not carried. The schema was regenerated for the four new*_above_200k_tokens_batcheskeys and the inline schema intests/unit/test_utils.py, theModelInfotypes inlitellm/types/utils.pyand the strict Rust catalog struct inlitellm-rust/crates/model-catalog/src/model_info.rslist them too. The Rust workflow is path filtered and did not run on the registry-only commits, socargo test -p litellm-model-catalog --all-features -- --include-ignoredwas run locally: it also failed on fields already on main (output_cost_per_image_0.5K/1K/2K/4K,computer_use_*,file_search_*,vector_store_cost_per_gb_per_day,fallback_generalizations.rules), so those are declared in the struct in the same commit and the suite is now 26 passed. The same four fields are also copied ontoModelInfoin_get_model_info_helper(the existing 272k batch copy did not cover them, caught by Bugbot) andui/litellm-dashboard/src/types/schema.d.tsis regenerated for them._DEPLOYMENT_PRICING_KEYSinlitellm_logging.pyalso lists the four keys so a deployment that overrides only a 200k batch rate is billed at that rate (caught by Greptile). After merging main, which landed three of the four 200k batch fields on its own, this PR's Python wiring is reduced to the one main lacks,cache_creation_input_token_cost_above_200k_tokens_batchesNebius, https://tokenfactory.nebius.com/endpoints?modals=endpoint-details&model-id=deepseek-ai/DeepSeek-V4.1-Flash
Endpoint page (rendered through r.jina.ai, the catalog is a JS shell):
$0.30 / 1M In $1.20 / 1M Out,Modality Vision,Context 1,048K,Tool calling N/A,Reasoning N/A. New rownebius/deepseek-ai/DeepSeek-V4.1-Flashwith 3e-7 / 1.2e-6, 1048576 limits andsupports_vision, no tool or reasoning flagOpenRouter, https://openrouter.ai/api/v1/models
perceptron/perceptron-mk1.5:pricing.prompt 0.00000015,pricing.completion 0.0000015,context_length 36864,top_provider.max_completion_tokens 8192,input_modalities text, image, video, audio,supported_parametersinclude tools, tool_choice, structured_outputs, reasoning. New rowopenrouter/perceptron/perceptron-mk1.5with those values and flagsxAI, https://api.x.ai/v1/models
grok-imagine-image-qualitylists"aliases": ["grok-imagine-image-quality-20260403", "grok-imagine-image-quality-latest", "grok-imagine-image-pro"]withimage_price 500000000($0.05). New rowxai/grok-imagine-image-procopies thexai/grok-imagine-image-qualityrow (deprecation fields excluded, another automation owns them)Gemini API, https://generativelanguage.googleapis.com/v1beta/models
models/gemini-2.5-flash-native-audio-latestreturnsinputTokenLimit 131072, outputTokenLimit 8192, the same as both dated previews.gemini-2.5-flash-native-audio-latestandgemini/gemini-2.5-flash-native-audio-latesthadmax_input_tokens1048576 and now read 131072Checked and intentionally not changed
gpt-4.1-nanofamily 2026-10-14,gpt-4o-2024-05-13family 2026-12-09) match the raw rows re-read today.azure/gpt-realtime-mini-2025-10-06is left alone because the page lists that version twice with conflicting dates (2027-04-06 and 2026-09-21)Active | N/A | Not sooner than <date>on https://docs.anthropic.com/en/docs/about-claude/model-deprecations. Those are earliest-possible floors, not announced dates, so nodeprecation_dateis written.claude-mythos-previewkeeps 2026-06-09 (added in chore(models): add deprecation_date to claude-mythos-preview from the Anthropic deprecations page #42845); the page not listing it is not evidence the date changedgpt-4o-audio-preview-*,gpt-4o-mini-audio-preview-2024-12-17,gpt-4o-mini-realtime-preview-2024-12-17keep2027-01-20: the page dates the undated-previewaliases, not these snapshotssupports_web_searchandsearch_context_cost_per_queryon the mantle rows and feat(azure): price GPT-6 Sol and GPT-6 Luna on the azure route #42704 flippedsupports_max_reasoning_effortand addedsupports_prompt_cache_breakpoint, none of which the AWS model cards or Azure docs state, so not carriedvoyage-01,voyage-02,rerank-1are priced on https://docs.voyageai.com/docs/pricing but have no documented context length;voyage-4-nanohas no price row. OpenAI dated snapshots (o3-deep-research-2025-06-26,gpt-4o-search-preview-2025-03-11and 7 more), Geminiantigravity-preview-*andaqa, Fireworksqwen3p8-2p4t-a95b, OpenRouter Lyria 3 and the Together model list have no official per-token price row, so no rows/modelsAPIs plus raw pricing pages): OpenAI 163 ids, Anthropic 12, Gemini 61, Bedrock 120, xAI 54, DeepSeek 2, Mistral 53, OpenRouter 458, Fireworks 27 and the Groq, Nebius, Voyage, Perplexity and Cohere public tables. Price spot-checks on the newest rows (gpt-5.6 family, gpt-5.3-codex, Claude Fable 5.1 / Opus 5.5 / Opus 5 / Sonnet 5 / Haiku 4.5, Gemini 3.x flash and pro, Bedrock Claude, DeepSeek flash / v4-pro, grok-4.7, Groq gpt-oss and whisper, Voyage 4 family, Nebius catalog, Perplexity sonar) all matchllama-3.1-8b-instant,llama-3.3-70b-versatile,minimaxai/minimax-m2.7are listed on https://console.groq.com/docs/models asContact Sales, no per-token price, so no rowscommand-a-reasoning-08-2025,command-a-vision-07-2025,command-a-translate-08-2025,command-r7b-arabic-02-2025,c4ai-aya-vision-32b,cohere-transcribe-03-2026and theembed-*-v3.0-imageids are in/v1/modelsbut https://cohere.com/pricing publishes no per-token price for them, so no rowsamazon.nova-reel-v1:0/v1:1are billed per second of video on https://aws.amazon.com/bedrock/pricing/ and the row did not extract from the raw page or the price list in this run, so no rows yetgoogle/lyria-3-*-preview(per-song price in the description, 0 in the API),openrouter/auto-beta,fusion,pareto-code(dynamic -1 pricing) are left alonecomputer-use-previewandus./global.openai.gpt-5.xrows havemode: chatwith only/v1/responsesinsupported_endpoints, and the snowflake, novita and sarvam rows havemax_output_tokensabovemax_input_tokens; neither could be settled from an official table in this run, so they are unchanged/v1/modelscarries no price fields, so they need a dedicated per-model passOpen registry PRs reviewed for absorption
Absorbed: #42923 (chatgpt reasoning flags plus test), #43016 (Bing pricing plus test, co-authored), #42727 (Bedrock Mantle prices, limits corrected from the model cards, co-authored), #42594 (7 azure_ai rows at price level, co-authored), #43048 (Mythos Preview base row plus test, co-authored), #43176 (azure gpt-5.6 alias rates plus test, co-authored), #43171 (anthropic batch prices, co-authored, its
sourceedits dropped). Superseded by main: #42728 and #42704Not absorbed, data PRs that could not be verified from an official source (unchanged from earlier runs): #41376 (xAI grok-4 flags, JS-rendered docs), #40368 (Claude 3 Haiku Bedrock cache prices listed as N/A by AWS), #36274 (Azure gpt-5.6 luna/terra rates contradict the Azure Retail Prices API), #36084, #35617, #32842 (undocumented
openai/z-ai/glm-5.2route), #32117 (Cohere embed v3 light, no published price), #31155 (GitHub Copilot rows, no official model table), #30775, #29920 (qwen3.7-max, no raw Alibaba price row). #41775 is a maintainer-authored together_ai sync left to its ownerCode or behaviour PRs that only incidentally touch the JSON, left alone: #43158 (Databricks gateway behaviour), #42840 (Sail provider), #40755 (external provider addition that also edits
litellm/__init__.py, conflicting with main), #42880, #42854, #42829, #42822, #42789, #42726 and the rest of the open registry-touching PRsLocal checks at the PR tip (2026-09-25, 9a4779f)
Local checks at the 2026-09-24 tip
With the two JSON files reverted to the state before the chatgpt fields and the new test kept: 1 failed (the 38 mismatches), 85 passed
Link to Devin session: https://app.devin.ai/sessions/efaa7951599c42d59888a499f118b53a
Open in Devin Desktop: https://app.devin.ai/desktop/session/efaa7951599c42d59888a499f118b53a?variant=devin
Note
Medium Risk
Changes directly affect reported model metadata and cost calculation for many deployments; incorrect values would mis-bill or mis-advertise capabilities, though the edits are mostly catalog data and additive pricing keys with tests.
Overview
This is a rolling model cost-map sync that refreshes
model_prices_and_context_window.json(and its backup) with provider-sourced pricing, limits, deprecation metadata, and capability flags.Registry highlights:
deprecation_dateon retiring OpenAI and Gemini preview models; reasoning annotations copied ontochatgpt/*twins to match their bare OpenAI rows; Bing Grounding per-query cost cut from $0.035 to $0.014; Azuregpt-5.6alias rows aligned with GPT-5.6 Sol pricing; Anthropic Batch API*_batchesrates (including above-200k tiers) on many Claude rows; priced Bedrock Mythos Preview base row and newbedrock_mantle/*,azure_ai/*, Nebius, OpenRouter, and xAI entries; Gemini native audiomax_input_tokenscorrected to 131072.Plumbing: Extends the catalog/schema/types (Python, JSON schema, Rust
ModelInfo, dashboardschema.d.ts) for new cost fields—especiallycache_creation_input_token_cost_above_200k_tokens_batches—and registers that key in deployment pricing so batch/cache overrides bill correctly. Adds regression tests for chatgpt reasoning parity, Azure 5.6 alias pricing, Bedrock cross-region base pricing, Bing cost, and 200k batch deployment overrides.Reviewed by Cursor Bugbot for commit 9a4779f. Bugbot is set up for automated code reviews on this repo. Configure here.