Skip to content

[BUG] Implement Claude Sonnet 5 support in Zoo Code #777

Description

@navedmerchant

Describe the bug

Claude Sonnet 5 is not yet fully implemented in Zoo Code. The model needs to be added across all provider paths (Anthropic direct, Amazon Bedrock, Google Vertex, OpenRouter, Requesty, and Vercel AI Gateway) with correct model definitions, adaptive-thinking handling, fetcher overrides, and accurate pricing.

Per Anthropic's published documentation, Claude Sonnet 5:

  • Has a native 1M token context window (no beta header required)
  • Uses the newer adaptive-thinking contract (thinking.type: "adaptive" + output_config.effort), removing sampling parameters (temperature/top_p/top_k) and budget_tokens-based thinking — sending these returns a 400
  • Has introductory pricing of $2 / $10 per million input/output tokens in effect through August 31, 2026 (standard $3 / $15 rates do not take effect until September 1, 2026)
  • Supports prompt caching with cache writes at $2.50/MTok (1.25× base) and cache reads at $0.20/MTok (0.1× base) during the introductory period

Reference: https://platform.claude.com/docs/en/about-claude/pricing

To Reproduce

Steps to reproduce the behavior:

  1. Attempt to select claude-sonnet-5 on any provider (Anthropic, Bedrock, Vertex, OpenRouter, Requesty, or Vercel AI Gateway).
  2. Observe that the model is missing from model lists, lacks adaptive-thinking handling, and/or reports incorrect token costs (standard $3/$15 instead of introductory $2/$10).
  3. Sending requests with temperature set returns a 400 from Anthropic because the adaptive-thinking guard does not yet cover Sonnet 5.

Expected behavior

Zoo Code should fully support Claude Sonnet 5 across all providers:

  • Model definitions with 1M context window, adaptive-thinking binary toggle, and supportsTemperature: false
  • Correct introductory pricing ($2 input / $10 output / $2.50 cache writes / $0.20 cache reads per MTok) through August 31, 2026
  • Inclusion in OpenRouter and Vercel AI Gateway model allow-lists
  • Adaptive-thinking guard coverage in the Bedrock provider
  • Fetcher overrides (maxTokens, reasoning budget, temperature) for OpenRouter, Requesty, and Vercel AI Gateway
  • Test coverage across provider and fetcher test suites

Screenshots

N/A

Video

N/A

What version of zoo are you running

Latest (main)

Additional context

Implementation spans:

  • packages/types/src/providers/anthropic.ts, bedrock.ts, vertex.ts (model definitions + pricing), openrouter.ts, vercel-ai-gateway.ts (model allow-lists)
  • src/api/providers/anthropic.ts, bedrock.ts (adaptive-thinking handling), fetchers/openrouter.ts, fetchers/requesty.ts, fetchers/vercel-ai-gateway.ts (model overrides)
  • Test suites across src/api/providers/__tests__/ and src/api/providers/fetchers/__tests__/

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions