Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .changeset/olive-pandas-smile.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
"@upstash/box": patch
"@upstash/box-cli": patch
---

Add GPT-6 Astra and Claude Fable 5.1, and correct two model picker entries.

`GPT_6_Astra` is available on the OpenAI API, OpenRouter, the Vercel AI Gateway
and OpenCode Zen, all at $10 / $50 per MTok.

`Fable_5_1` is available on the Claude API, OpenRouter, Vercel AI Gateway and
OpenCode Zen. Note the spelling differs by provider: the Claude API and Zen use
`claude-fable-5-1`, while the OpenRouter and Vercel gateways list it as
`claude-fable-5.1`.

Removed `OpenAICodex.GPT_5_3_Codex_Spark` from the model picker. It is a ChatGPT
research preview rather than an API model. The enum member is still exported, so
this is not a breaking change; `OpenCodeModel.GPT_5_3_Codex_Spark` is unaffected
because Zen does sell it.

GPT-5 Nano moved from the free group to the paid group, since Zen now charges
$0.05 / $0.40 per MTok for it.
21 changes: 16 additions & 5 deletions packages/cli/src/models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ export const MODEL_OPTIONS_BY_AGENT: Record<
{
label: "Anthropic",
options: [
{ value: ClaudeCode.Fable_5_1, label: "Claude Fable 5.1" },
{ value: ClaudeCode.Fable_5, label: "Claude Fable 5" },
{ value: ClaudeCode.Opus_5, label: "Claude Opus 5" },
{ value: ClaudeCode.Opus_4_8, label: "Claude Opus 4.8" },
Expand All @@ -33,6 +34,7 @@ export const MODEL_OPTIONS_BY_AGENT: Record<
{
label: "OpenRouter",
options: [
{ value: OpenRouterModel.Claude_Fable_5_1, label: "Claude Fable 5.1 (OR)" },
{ value: OpenRouterModel.Claude_Fable_5, label: "Claude Fable 5 (OR)" },
{ value: OpenRouterModel.Claude_Opus_5, label: "Claude Opus 5 (OR)" },
{ value: OpenRouterModel.Claude_Opus_4_5, label: "Claude Opus 4.5 (OR)" },
Expand All @@ -42,6 +44,7 @@ export const MODEL_OPTIONS_BY_AGENT: Record<
{ value: OpenRouterModel.DeepSeek_R1, label: "DeepSeek R1 (OR)" },
{ value: OpenRouterModel.Gemini_2_5_Pro, label: "Gemini 2.5 Pro (OR)" },
{ value: OpenRouterModel.Gemini_2_5_Flash, label: "Gemini 2.5 Flash (OR)" },
{ value: OpenRouterModel.GPT_6_Astra, label: "GPT-6 Astra (OR)" },
{ value: OpenRouterModel.GPT_5_6_Sol, label: "GPT-5.6 Sol (OR)" },
{ value: OpenRouterModel.GPT_5_6_Terra, label: "GPT-5.6 Terra (OR)" },
{ value: OpenRouterModel.GPT_5_6_Luna, label: "GPT-5.6 Luna (OR)" },
Expand All @@ -53,6 +56,7 @@ export const MODEL_OPTIONS_BY_AGENT: Record<
{
label: "Vercel AI Gateway",
options: [
{ value: VercelModel.Claude_Fable_5_1, label: "Claude Fable 5.1 (Vercel)" },
{ value: VercelModel.Claude_Fable_5, label: "Claude Fable 5 (Vercel)" },
{ value: VercelModel.Claude_Opus_5, label: "Claude Opus 5 (Vercel)" },
{ value: VercelModel.Claude_Sonnet_5, label: "Claude Sonnet 5 (Vercel)" },
Expand All @@ -70,14 +74,14 @@ export const MODEL_OPTIONS_BY_AGENT: Record<
{
label: "OpenAI",
options: [
{ value: OpenAICodex.GPT_6_Astra, label: "GPT-6 Astra" },
{ value: OpenAICodex.GPT_5_6_Sol, label: "GPT-5.6 Sol" },
{ value: OpenAICodex.GPT_5_6_Terra, label: "GPT-5.6 Terra" },
{ value: OpenAICodex.GPT_5_6_Luna, label: "GPT-5.6 Luna" },
{ value: OpenAICodex.GPT_5_5, label: "GPT-5.5" },
{ value: OpenAICodex.GPT_5_4, label: "GPT-5.4" },
{ value: OpenAICodex.GPT_5_4_Mini, label: "GPT-5.4 Mini" },
{ value: OpenAICodex.GPT_5_3_Codex, label: "GPT-5.3 Codex" },
{ value: OpenAICodex.GPT_5_3_Codex_Spark, label: "GPT-5.3 Codex Spark" },
{ value: OpenAICodex.GPT_5_2_Codex, label: "GPT-5.2 Codex" },
{ value: OpenAICodex.GPT_5_1_Codex_Max, label: "GPT-5.1 Codex Max" },
{ value: OpenAICodex.GPT_5_1_Codex_Mini, label: "GPT-5.1 Codex Mini" },
Expand All @@ -86,6 +90,7 @@ export const MODEL_OPTIONS_BY_AGENT: Record<
{
label: "OpenRouter",
options: [
{ value: OpenRouterModel.Claude_Fable_5_1, label: "Claude Fable 5.1 (OR)" },
{ value: OpenRouterModel.Claude_Fable_5, label: "Claude Fable 5 (OR)" },
{ value: OpenRouterModel.Claude_Opus_5, label: "Claude Opus 5 (OR)" },
{ value: OpenRouterModel.Claude_Opus_4_5, label: "Claude Opus 4.5 (OR)" },
Expand All @@ -95,6 +100,7 @@ export const MODEL_OPTIONS_BY_AGENT: Record<
{ value: OpenRouterModel.DeepSeek_R1, label: "DeepSeek R1 (OR)" },
{ value: OpenRouterModel.Gemini_2_5_Pro, label: "Gemini 2.5 Pro (OR)" },
{ value: OpenRouterModel.Gemini_2_5_Flash, label: "Gemini 2.5 Flash (OR)" },
{ value: OpenRouterModel.GPT_6_Astra, label: "GPT-6 Astra (OR)" },
{ value: OpenRouterModel.GPT_5_6_Sol, label: "GPT-5.6 Sol (OR)" },
{ value: OpenRouterModel.GPT_5_6_Terra, label: "GPT-5.6 Terra (OR)" },
{ value: OpenRouterModel.GPT_5_6_Luna, label: "GPT-5.6 Luna (OR)" },
Expand All @@ -106,6 +112,7 @@ export const MODEL_OPTIONS_BY_AGENT: Record<
{
label: "Vercel AI Gateway",
options: [
{ value: VercelModel.GPT_6_Astra, label: "GPT-6 Astra (Vercel)" },
{ value: VercelModel.GPT_5_6_Sol, label: "GPT-5.6 Sol (Vercel)" },
{ value: VercelModel.GPT_5_6_Terra, label: "GPT-5.6 Terra (Vercel)" },
{ value: VercelModel.GPT_5_6_Luna, label: "GPT-5.6 Luna (Vercel)" },
Expand All @@ -122,15 +129,14 @@ export const MODEL_OPTIONS_BY_AGENT: Record<
[Agent.OpenCode]: [
{
label: "OpenCode — Free",
options: [
{ value: OpenCodeModel.Zen_GPT_5_Nano, label: "GPT-5 Nano (Free)" },
{ value: OpenCodeModel.Zen_Big_Pickle, label: "Big Pickle (Free)" },
],
options: [{ value: OpenCodeModel.Zen_Big_Pickle, label: "Big Pickle (Free)" }],
},
{
label: "OpenCode — Paid",
options: [
{ value: OpenCodeModel.Zen_GPT_5_Nano, label: "GPT-5 Nano" },
{ value: OpenCodeModel.Zen_MiniMax_M2_7, label: "MiniMax M2.7" },
{ value: OpenCodeModel.Zen_Claude_Fable_5_1, label: "Claude Fable 5.1" },
{ value: OpenCodeModel.Zen_Claude_Fable_5, label: "Claude Fable 5" },
{ value: OpenCodeModel.Zen_Claude_Opus_5, label: "Claude Opus 5" },
{ value: OpenCodeModel.Zen_Claude_Sonnet_5, label: "Claude Sonnet 5" },
Expand All @@ -151,6 +157,7 @@ export const MODEL_OPTIONS_BY_AGENT: Record<
{
label: "Anthropic",
options: [
{ value: OpenCodeModel.Claude_Fable_5_1, label: "Claude Fable 5.1" },
{ value: OpenCodeModel.Claude_Fable_5, label: "Claude Fable 5" },
{ value: OpenCodeModel.Claude_Opus_5, label: "Claude Opus 5" },
{ value: OpenCodeModel.Claude_Opus_4_8, label: "Claude Opus 4.8" },
Expand All @@ -167,6 +174,7 @@ export const MODEL_OPTIONS_BY_AGENT: Record<
{
label: "OpenAI",
options: [
{ value: OpenCodeModel.GPT_6_Astra, label: "GPT-6 Astra" },
{ value: OpenCodeModel.GPT_5_5, label: "GPT-5.5" },
{ value: OpenCodeModel.GPT_5_4_Pro, label: "GPT-5.4 Pro" },
{ value: OpenCodeModel.GPT_5_4, label: "GPT-5.4" },
Expand All @@ -185,6 +193,7 @@ export const MODEL_OPTIONS_BY_AGENT: Record<
{
label: "OpenRouter",
options: [
{ value: OpenRouterModel.Claude_Fable_5_1, label: "Claude Fable 5.1 (OR)" },
{ value: OpenRouterModel.Claude_Fable_5, label: "Claude Fable 5 (OR)" },
{ value: OpenRouterModel.Claude_Opus_5, label: "Claude Opus 5 (OR)" },
{ value: OpenRouterModel.Claude_Opus_4_5, label: "Claude Opus 4.5 (OR)" },
Expand All @@ -194,6 +203,7 @@ export const MODEL_OPTIONS_BY_AGENT: Record<
{ value: OpenRouterModel.DeepSeek_R1, label: "DeepSeek R1 (OR)" },
{ value: OpenRouterModel.Gemini_2_5_Pro, label: "Gemini 2.5 Pro (OR)" },
{ value: OpenRouterModel.Gemini_2_5_Flash, label: "Gemini 2.5 Flash (OR)" },
{ value: OpenRouterModel.GPT_6_Astra, label: "GPT-6 Astra (OR)" },
{ value: OpenRouterModel.GPT_5_6_Sol, label: "GPT-5.6 Sol (OR)" },
{ value: OpenRouterModel.GPT_5_6_Terra, label: "GPT-5.6 Terra (OR)" },
{ value: OpenRouterModel.GPT_5_6_Luna, label: "GPT-5.6 Luna (OR)" },
Expand All @@ -205,6 +215,7 @@ export const MODEL_OPTIONS_BY_AGENT: Record<
{
label: "Vercel AI Gateway",
options: [
{ value: VercelModel.Claude_Fable_5_1, label: "Claude Fable 5.1 (Vercel)" },
{ value: VercelModel.Claude_Fable_5, label: "Claude Fable 5 (Vercel)" },
{ value: VercelModel.Claude_Opus_5, label: "Claude Opus 5 (Vercel)" },
{ value: VercelModel.Claude_Sonnet_5, label: "Claude Sonnet 5 (Vercel)" },
Expand Down
9 changes: 9 additions & 0 deletions packages/python-sdk/upstash_box/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ class Agent(str, Enum):
class ClaudeCode(str, Enum):
"""Claude Code model identifiers."""

FABLE_5_1 = "anthropic/claude-fable-5-1"
FABLE_5 = "anthropic/claude-fable-5"
OPUS_4_5 = "anthropic/claude-opus-4-5"
OPUS_4_6 = "anthropic/claude-opus-4-6"
Expand All @@ -65,6 +66,7 @@ class ClaudeCode(str, Enum):
class OpenAICodex(str, Enum):
"""OpenAI Codex model identifiers."""

GPT_6_ASTRA = "openai/gpt-6-astra"
GPT_5_6 = "openai/gpt-5.6"
GPT_5_6_SOL = "openai/gpt-5.6-sol"
GPT_5_6_TERRA = "openai/gpt-5.6-terra"
Expand All @@ -82,6 +84,7 @@ class OpenAICodex(str, Enum):
class OpenRouterModel(str, Enum):
"""OpenRouter model identifiers — shared across agents that support OpenRouter."""

CLAUDE_FABLE_5_1 = "openrouter/anthropic/claude-fable-5.1"
CLAUDE_FABLE_5 = "openrouter/anthropic/claude-fable-5"
CLAUDE_OPUS_5 = "openrouter/anthropic/claude-opus-5"
CLAUDE_SONNET_5 = "openrouter/anthropic/claude-sonnet-5"
Expand All @@ -91,6 +94,7 @@ class OpenRouterModel(str, Enum):
DEEPSEEK_R1 = "openrouter/deepseek/deepseek-r1"
GEMINI_2_5_PRO = "openrouter/google/gemini-2.5-pro"
GEMINI_2_5_FLASH = "openrouter/google/gemini-2.5-flash"
GPT_6_ASTRA = "openrouter/openai/gpt-6-astra"
GPT_5_6_SOL = "openrouter/openai/gpt-5.6-sol"
GPT_5_6_TERRA = "openrouter/openai/gpt-5.6-terra"
GPT_5_6_LUNA = "openrouter/openai/gpt-5.6-luna"
Expand All @@ -102,13 +106,15 @@ class OpenRouterModel(str, Enum):
class VercelModel(str, Enum):
"""Vercel AI Gateway model identifiers."""

CLAUDE_FABLE_5_1 = "vercel/anthropic/claude-fable-5.1"
CLAUDE_FABLE_5 = "vercel/anthropic/claude-fable-5"
CLAUDE_OPUS_5 = "vercel/anthropic/claude-opus-5"
CLAUDE_SONNET_5 = "vercel/anthropic/claude-sonnet-5"
CLAUDE_OPUS_4_7 = "vercel/anthropic/claude-opus-4.7"
CLAUDE_SONNET_4_6 = "vercel/anthropic/claude-sonnet-4.6"
CLAUDE_OPUS_4_6 = "vercel/anthropic/claude-opus-4.6"
CLAUDE_HAIKU_4_5 = "vercel/anthropic/claude-haiku-4.5"
GPT_6_ASTRA = "vercel/openai/gpt-6-astra"
GPT_5_6_SOL = "vercel/openai/gpt-5.6-sol"
GPT_5_6_TERRA = "vercel/openai/gpt-5.6-terra"
GPT_5_6_LUNA = "vercel/openai/gpt-5.6-luna"
Expand All @@ -128,6 +134,7 @@ class OpenCodeModel(str, Enum):
"""OpenCode model identifiers — supports models from multiple providers."""

# Anthropic-backed OpenCode models
CLAUDE_FABLE_5_1 = "opencode/claude-fable-5-1"
CLAUDE_FABLE_5 = "opencode/claude-fable-5"
CLAUDE_OPUS_5 = "opencode/claude-opus-5"
CLAUDE_OPUS_4_5 = "opencode/claude-opus-4-5"
Expand All @@ -140,6 +147,7 @@ class OpenCodeModel(str, Enum):
CLAUDE_SONNET_5 = "opencode/claude-sonnet-5"
CLAUDE_HAIKU_4_5 = "opencode/claude-haiku-4-5"
# OpenAI-backed OpenCode models
GPT_6_ASTRA = "opencode/gpt-6-astra"
GPT_5_5 = "opencode/gpt-5.5"
GPT_5_4 = "opencode/gpt-5.4"
GPT_5_4_PRO = "opencode/gpt-5.4-pro"
Expand All @@ -158,6 +166,7 @@ class OpenCodeModel(str, Enum):
ZEN_BIG_PICKLE = "opencode/big-pickle"
# Paid models
ZEN_MINIMAX_M2_7 = "opencode/minimax-m2.7"
ZEN_CLAUDE_FABLE_5_1 = "opencode/claude-fable-5-1"
ZEN_CLAUDE_FABLE_5 = "opencode/claude-fable-5"
ZEN_CLAUDE_OPUS_5 = "opencode/claude-opus-5"
ZEN_CLAUDE_SONNET_4_6 = "opencode/claude-sonnet-4-6"
Expand Down
3 changes: 3 additions & 0 deletions packages/sdk/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,7 @@ The preferred field in agent config is `harness`, and it is required. Deprecated

| Enum | Value |
| ----------------------- | ----------------------------- |
| `ClaudeCode.Fable_5_1` | `anthropic/claude-fable-5-1` |
| `ClaudeCode.Fable_5` | `anthropic/claude-fable-5` |
| `ClaudeCode.Opus_5` | `anthropic/claude-opus-5` |
| `ClaudeCode.Opus_4_8` | `anthropic/claude-opus-4-8` |
Expand All @@ -401,6 +402,7 @@ The preferred field in agent config is `harness`, and it is required. Deprecated

| Enum | Value |
| --------------------------------- | ------------------------------ |
| `OpenAICodex.GPT_6_Astra` | `openai/gpt-6-astra` |
| `OpenAICodex.GPT_5_6` | `openai/gpt-5.6` (alias → Sol) |
| `OpenAICodex.GPT_5_6_Sol` | `openai/gpt-5.6-sol` |
| `OpenAICodex.GPT_5_6_Terra` | `openai/gpt-5.6-terra` |
Expand All @@ -417,6 +419,7 @@ The preferred field in agent config is `harness`, and it is required. Deprecated

| Enum | Value |
| ---------------------------------- | --------------------------------------- |
| `OpenRouterModel.Claude_Fable_5_1` | `openrouter/anthropic/claude-fable-5.1` |
| `OpenRouterModel.Claude_Fable_5` | `openrouter/anthropic/claude-fable-5` |
| `OpenRouterModel.Claude_Opus_5` | `openrouter/anthropic/claude-opus-5` |
| `OpenRouterModel.Claude_Sonnet_5` | `openrouter/anthropic/claude-sonnet-5` |
Expand Down
9 changes: 9 additions & 0 deletions packages/sdk/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ export enum Agent {
* Claude Code model identifiers
*/
export enum ClaudeCode {
Fable_5_1 = "anthropic/claude-fable-5-1",
Fable_5 = "anthropic/claude-fable-5",
Opus_4_5 = "anthropic/claude-opus-4-5",
Opus_4_6 = "anthropic/claude-opus-4-6",
Expand All @@ -61,6 +62,7 @@ export enum ClaudeCode {
* OpenAI Codex model identifiers
*/
export enum OpenAICodex {
GPT_6_Astra = "openai/gpt-6-astra",
GPT_5_6 = "openai/gpt-5.6",
GPT_5_6_Sol = "openai/gpt-5.6-sol",
GPT_5_6_Terra = "openai/gpt-5.6-terra",
Expand All @@ -79,6 +81,7 @@ export enum OpenAICodex {
* OpenRouter model identifiers — shared across agents that support OpenRouter
*/
export enum OpenRouterModel {
Claude_Fable_5_1 = "openrouter/anthropic/claude-fable-5.1",
Claude_Fable_5 = "openrouter/anthropic/claude-fable-5",
Claude_Opus_5 = "openrouter/anthropic/claude-opus-5",
Claude_Sonnet_5 = "openrouter/anthropic/claude-sonnet-5",
Expand All @@ -88,6 +91,7 @@ export enum OpenRouterModel {
DeepSeek_R1 = "openrouter/deepseek/deepseek-r1",
Gemini_2_5_Pro = "openrouter/google/gemini-2.5-pro",
Gemini_2_5_Flash = "openrouter/google/gemini-2.5-flash",
GPT_6_Astra = "openrouter/openai/gpt-6-astra",
GPT_5_6_Sol = "openrouter/openai/gpt-5.6-sol",
GPT_5_6_Terra = "openrouter/openai/gpt-5.6-terra",
GPT_5_6_Luna = "openrouter/openai/gpt-5.6-luna",
Expand All @@ -100,13 +104,15 @@ export enum OpenRouterModel {
* Vercel AI Gateway model identifiers — shared across agents that support Vercel AI Gateway
*/
export enum VercelModel {
Claude_Fable_5_1 = "vercel/anthropic/claude-fable-5.1",
Claude_Fable_5 = "vercel/anthropic/claude-fable-5",
Claude_Opus_5 = "vercel/anthropic/claude-opus-5",
Claude_Sonnet_5 = "vercel/anthropic/claude-sonnet-5",
Claude_Opus_4_7 = "vercel/anthropic/claude-opus-4.7",
Claude_Sonnet_4_6 = "vercel/anthropic/claude-sonnet-4.6",
Claude_Opus_4_6 = "vercel/anthropic/claude-opus-4.6",
Claude_Haiku_4_5 = "vercel/anthropic/claude-haiku-4.5",
GPT_6_Astra = "vercel/openai/gpt-6-astra",
GPT_5_6_Sol = "vercel/openai/gpt-5.6-sol",
GPT_5_6_Terra = "vercel/openai/gpt-5.6-terra",
GPT_5_6_Luna = "vercel/openai/gpt-5.6-luna",
Expand All @@ -127,6 +133,7 @@ export enum VercelModel {
*/
export enum OpenCodeModel {
// Anthropic-backed OpenCode models
Claude_Fable_5_1 = "opencode/claude-fable-5-1",
Claude_Fable_5 = "opencode/claude-fable-5",
Claude_Opus_5 = "opencode/claude-opus-5",
Claude_Opus_4_5 = "opencode/claude-opus-4-5",
Expand All @@ -139,6 +146,7 @@ export enum OpenCodeModel {
Claude_Sonnet_5 = "opencode/claude-sonnet-5",
Claude_Haiku_4_5 = "opencode/claude-haiku-4-5",
// OpenAI-backed OpenCode models
GPT_6_Astra = "opencode/gpt-6-astra",
GPT_5_5 = "opencode/gpt-5.5",
GPT_5_4 = "opencode/gpt-5.4",
GPT_5_4_Pro = "opencode/gpt-5.4-pro",
Expand All @@ -157,6 +165,7 @@ export enum OpenCodeModel {
Zen_Big_Pickle = "opencode/big-pickle",
// Paid models
Zen_MiniMax_M2_7 = "opencode/minimax-m2.7",
Zen_Claude_Fable_5_1 = "opencode/claude-fable-5-1",
Zen_Claude_Fable_5 = "opencode/claude-fable-5",
Zen_Claude_Opus_5 = "opencode/claude-opus-5",
Zen_Claude_Sonnet_4_6 = "opencode/claude-sonnet-4-6",
Expand Down
Loading