diff --git a/Sources/OpenUsage/Resources/pricing_supplement.json b/Sources/OpenUsage/Resources/pricing_supplement.json index f7e8d5742..7235b2144 100644 --- a/Sources/OpenUsage/Resources/pricing_supplement.json +++ b/Sources/OpenUsage/Resources/pricing_supplement.json @@ -1,6 +1,6 @@ { "$comment": "OpenUsage pricing supplement. Prices Cursor-native models that no public catalog carries, supplies fast-variant multipliers the catalogs omit, and maps provider log/CSV model slugs to canonical pricing keys (LiteLLM keys, models.dev ids, or entries in this file). Cursor Router rows name the routed model in prose instead of a slug ('Opus 5 (Auto Balanced)'), so those labels get alias rules too. Published to gh-pages by .github/workflows/pricing-supplement.yml on every change, so installed apps pick edits up within about an hour - no release needed. Rates are USD per million tokens. Sources: https://cursor.com/docs/models-and-pricing.md for Cursor-native entries; https://developers.openai.com/api/docs/models/daybreak-blue-latest and https://developers.openai.com/api/docs/pricing for Daybreak aliases and rates.", - "updated_at": "2026-08-14T12:55:21Z", + "updated_at": "2026-08-19T10:51:18Z", "pricing": { "auto": { "input_per_million": 1.25, @@ -229,6 +229,7 @@ { "pattern": "^grok-build-0\\.1$", "canonical": "grok-build-0.1" }, { "pattern": "^grok-code-fast-1$", "canonical": "grok-build-0.1" }, { "pattern": "^grok-build$", "canonical": "grok-build-0.1" }, + { "pattern": "^grok-proxy$", "canonical": "grok-build-0.1" }, { "pattern": "^grok-composer-2\\.5-fast$", "canonical": "composer-2.5-fast" }, { "pattern": "^gpt-5\\.1-codex-max(?:-(?:low|medium|high|xhigh))?-fast$", "canonical": "gpt-5.1-codex-max-fast" }, { "pattern": "^gpt-5\\.1-codex-max(?:-(?:low|medium|high|xhigh))?$", "canonical": "gpt-5.1-codex-max" }, diff --git a/Tests/OpenUsageTests/PricingBundledResourceTests.swift b/Tests/OpenUsageTests/PricingBundledResourceTests.swift index 61aa7aec0..cb72d3938 100644 --- a/Tests/OpenUsageTests/PricingBundledResourceTests.swift +++ b/Tests/OpenUsageTests/PricingBundledResourceTests.swift @@ -285,6 +285,8 @@ final class PricingBundledResourceTests: XCTestCase { func testGrokCLIModelAliases() { let pricing = Self.pricing XCTAssertEqual(pricing.resolve(model: "grok-build")?.inputPerMillion, 1) + // grok-proxy is the recent Grok Build CLI log slug for the same model. + XCTAssertEqual(pricing.resolve(model: "grok-proxy"), pricing.resolve(model: "grok-build-0.1")) XCTAssertEqual(pricing.resolve(model: "grok-composer-2.5-fast")?.inputPerMillion, 3) }