data: widen coverage from 12 models to 25 - #8
Merged
Merged
Conversation
Adds seven Claude models (Fable 5, Opus 4.8, 4.7, 4.6, 4.5, Sonnet 4.6, 4.5) and six Gemini models (3.7 Flash, 3.6 Flash, 3.5 Flash, 3.5 Flash-Lite, 2.5 Flash, 2.5 Flash-Lite). The registry previously omitted models people actually use, which is a poor answer to "what does this cost". Prices, display names and lifecycle state come from the parsers running over the committed fixtures, so what is recorded is exactly what the scraper will assert tomorrow. Context windows, max output and modalities are not published in a scrapeable table by either provider, so they were read from each model's own page and are cited in `sources`. Also fills in release dates for the four Claude models that already had records but carried `released: null`, since each model page publishes one. Two Claude snapshots carry aliases (claude-opus-4-5, claude-sonnet-4-5) so the pricing page's display name and the deprecation page's dated id fold into one record. New invariant in test/data.test.js: every tracked id must have a record and every record must be tracked. Adding an id without seeding the record would otherwise turn the next scrape red, because normalize() will not invent a context window. That test caught exactly that mistake while writing this. Untracked models still reported on catalog pages drop from 13 to 6 (Anthropic) and 46 to 40 (Google); the remainder are image, video, audio, embedding and robotics models with no per-token price, plus the invitation-only Mythos models. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The registry omitted models people actually use. This adds seven Claude models and six Gemini models.
How the values were produced. Prices, display names and lifecycle state come from the parsers running over the committed fixtures, so what is recorded is exactly what the scraper will assert tomorrow rather than something hand-typed that could quietly disagree. Context windows, max output and modalities are not published in a scrapeable table by either provider, so they were read from each model's own page and those pages are cited in
sources.Release dates are also filled in for the four Claude models that already had records but carried
released: null.New invariant.
test/data.test.jsnow asserts every tracked id has a record and every record is tracked. Adding an id totrackedwithout seeding the record would otherwise turn the next scrape red, sincenormalize()will not invent a context window. The test caught exactly that mistake while this was being written.Untracked models reported on catalog pages drop from 13 to 6 for Anthropic and 46 to 40 for Google. The remainder are image, video, audio, embedding and robotics models with no per-token price, plus the invitation-only Mythos models.