From d2b4ca5d1a355fbb4a21d9c574b8d6a11ca5f962 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Sat, 10 Oct 2026 22:35:30 -0700 Subject: [PATCH] v1.91.80.0 fix(eval-plan): price the default eval-arms tier (claude-opus-5-5, gpt-6.1-sol) (#3124) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --- CHANGELOG.md | 4 ++++ VERSION | 2 +- agents-digest/gstack-AGENTS.md | 2 +- lib/pricing.ts | 4 ++++ package.json | 2 +- test/pricing-eval-plan.test.ts | 4 ++++ 6 files changed, 15 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 56640ee0f..f538a6c66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [1.91.80.0] - 2026-10-11 + +**`/eval-plan` prices its default arms out of the box.** `lib/pricing.ts` gains verified rows for `claude-opus-5-5` ($4 / $20 per MTok, cache reads $0.20; Anthropic list prices effective 2026-10-07) and `gpt-6.1-sol` ($2 / $10 per MTok, cached input $0.10; OpenAI model page, standard tier), the two models `gstack-models resolve --role eval-arms` returns under the default `smart` implementation tier. `gstack-eval-plan arms` previously exited `EVAL_PRICE_MISSING` for both; the fail-closed rule is unchanged, only the data was missing. + ## [1.91.79.0] - 2026-10-11 **`/eval-plan` preregisters paid evals for your product, coordination tools keep parallel lanes from colliding, and the autoplan owner sees a one-page brief instead of the full review (multi-agent wave PR E, plan items E1 tier 1, E2, E3).** diff --git a/VERSION b/VERSION index e3ebf8e19..c7199351f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.91.79.0 +1.91.80.0 diff --git a/agents-digest/gstack-AGENTS.md b/agents-digest/gstack-AGENTS.md index 5c975937d..6018ba410 100644 --- a/agents-digest/gstack-AGENTS.md +++ b/agents-digest/gstack-AGENTS.md @@ -1,4 +1,4 @@ -# gstack digest v1.91.79.0 — regenerate/re-copy after upgrading gstack +# gstack digest v1.91.80.0 — regenerate/re-copy after upgrading gstack Behavioral rules from gstack (https://github.com/garrytan/gstack), compressed for agent hosts without a full skill install. The full skills add workflows, diff --git a/lib/pricing.ts b/lib/pricing.ts index 7f2f1fe43..3bf6a0bb2 100644 --- a/lib/pricing.ts +++ b/lib/pricing.ts @@ -43,6 +43,8 @@ export const PRICING: Record = { // Claude (Anthropic) // https://platform.claude.com/docs/en/models/fable-5-1/overview#pricing 'claude-fable-5-1': { input_per_mtok: 10.00, output_per_mtok: 50.00, cached_input_per_mtok: 0.25, as_of: '2026-09' }, + // https://platform.claude.com/docs/en/models/opus-5-5/overview#pricing (list prices effective 2026-10-07) + 'claude-opus-5-5': { input_per_mtok: 4.00, output_per_mtok: 20.00, cached_input_per_mtok: 0.20, as_of: '2026-10' }, 'claude-opus-4-7': { input_per_mtok: 15.00, output_per_mtok: 75.00, as_of: '2026-04' }, 'claude-sonnet-4-6': { input_per_mtok: 3.00, output_per_mtok: 15.00, as_of: '2026-04' }, 'claude-haiku-4-5': { input_per_mtok: 1.00, output_per_mtok: 5.00, as_of: '2026-04' }, @@ -50,6 +52,8 @@ export const PRICING: Record = { // OpenAI (GPT + o-series) // https://developers.openai.com/api/docs/models/gpt-6-astra 'gpt-6-astra': { input_per_mtok: 10.00, output_per_mtok: 50.00, cached_input_per_mtok: 1.00, as_of: '2026-09' }, + // https://developers.openai.com/api/docs/models/gpt-6.1-sol (standard tier, up to 272K input) + 'gpt-6.1-sol': { input_per_mtok: 2.00, output_per_mtok: 10.00, cached_input_per_mtok: 0.10, as_of: '2026-10' }, 'gpt-5.4': { input_per_mtok: 2.50, output_per_mtok: 10.00, as_of: '2026-04' }, 'gpt-5.4-mini': { input_per_mtok: 0.60, output_per_mtok: 2.40, as_of: '2026-04' }, 'o3': { input_per_mtok: 15.00, output_per_mtok: 60.00, as_of: '2026-04' }, diff --git a/package.json b/package.json index f4d00c53e..476b09ae9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gstack", - "version": "1.91.79", + "version": "1.91.80", "description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.", "license": "MIT", "type": "module", diff --git a/test/pricing-eval-plan.test.ts b/test/pricing-eval-plan.test.ts index 72e2d8553..d6e8e413a 100644 --- a/test/pricing-eval-plan.test.ts +++ b/test/pricing-eval-plan.test.ts @@ -34,6 +34,10 @@ describe('lib/pricing', () => { expect(estimateCostUsd({ input: 1_000_000, output: 0, cached: 1_000_000 }, 'claude-fable-5-1')).toBe(10.25); expect(estimateCostUsd({ input: 10, output: 10 }, 'nobody/made-this-up')).toBe(0); }); + + test('the default eval-arms tier (smart) is priced out of the box', () => { + for (const model of ['claude-opus-5-5', 'gpt-6.1-sol']) expect(hasPricing(model)).toBe(true); + }); }); describe('preregistration', () => {