diff --git a/docs/providers/nova.md b/docs/providers/nova.md index 68385a6c0..65611c272 100644 --- a/docs/providers/nova.md +++ b/docs/providers/nova.md @@ -11,6 +11,7 @@ Amazon Nova provides multimodal AI models via an OpenAI-compatible chat completi ## Available Models - **Nova 2 Lite** (`nova-2-lite-v1`) - Fast multimodal model, 64K context +- **Nova 2 Pro** (`nova-2-pro-v1`) - Advanced multimodal model, 64K context ## CLI setup diff --git a/src/agents/models-config.providers.ts b/src/agents/models-config.providers.ts index 621820188..b97c4f5a2 100644 --- a/src/agents/models-config.providers.ts +++ b/src/agents/models-config.providers.ts @@ -66,6 +66,7 @@ const KIMI_CODE_DEFAULT_COST = { const NOVA_BASE_URL = "https://api.nova.amazon.com/v1"; const NOVA_DEFAULT_MODEL_ID = "nova-2-lite-v1"; +const NOVA_PRO_MODEL_ID = "nova-2-pro-v1"; const NOVA_DEFAULT_CONTEXT_WINDOW = 64000; const NOVA_DEFAULT_MAX_TOKENS = 10000; const NOVA_DEFAULT_COST = { @@ -404,6 +405,15 @@ function buildNovaProvider(): ProviderConfig { contextWindow: NOVA_DEFAULT_CONTEXT_WINDOW, maxTokens: NOVA_DEFAULT_MAX_TOKENS, }, + { + id: NOVA_PRO_MODEL_ID, + name: "Nova 2 Pro", + reasoning: false, + input: ["text", "image"], + cost: NOVA_DEFAULT_COST, + contextWindow: NOVA_DEFAULT_CONTEXT_WINDOW, + maxTokens: NOVA_DEFAULT_MAX_TOKENS, + }, ], }; } diff --git a/src/commands/onboard-auth.models.ts b/src/commands/onboard-auth.models.ts index 469ffdaed..e3fc42b82 100644 --- a/src/commands/onboard-auth.models.ts +++ b/src/commands/onboard-auth.models.ts @@ -22,10 +22,18 @@ export const KIMI_CODE_COMPAT = { supportsDeveloperRole: false } as const; export const NOVA_BASE_URL = "https://api.nova.amazon.com/v1"; export const NOVA_DEFAULT_MODEL_ID = "nova-2-lite-v1"; +export const NOVA_PRO_MODEL_ID = "nova-2-pro-v1"; export const NOVA_DEFAULT_MODEL_REF = `nova/${NOVA_DEFAULT_MODEL_ID}`; export const NOVA_DEFAULT_CONTEXT_WINDOW = 64000; export const NOVA_DEFAULT_MAX_TOKENS = 10000; +const NOVA_MODEL_CATALOG = { + "nova-2-lite-v1": { name: "Nova 2 Lite" }, + "nova-2-pro-v1": { name: "Nova 2 Pro" }, +} as const; + +type NovaCatalogId = keyof typeof NOVA_MODEL_CATALOG; + // Pricing: MiniMax doesn't publish public rates. Override in models.json for accurate costs. export const MINIMAX_API_COST = { input: 15, @@ -133,9 +141,10 @@ export function buildKimiCodeModelDefinition(): ModelDefinitionConfig { export function buildNovaModelDefinition( modelId: string = NOVA_DEFAULT_MODEL_ID, ): ModelDefinitionConfig { + const catalog = NOVA_MODEL_CATALOG[modelId as NovaCatalogId]; return { id: modelId, - name: "Nova 2 Lite", + name: catalog?.name ?? "Nova 2 Lite", reasoning: false, input: ["text", "image"], cost: NOVA_DEFAULT_COST, @@ -143,3 +152,5 @@ export function buildNovaModelDefinition( maxTokens: NOVA_DEFAULT_MAX_TOKENS, }; } + +export const NOVA_MODEL_IDS = Object.keys(NOVA_MODEL_CATALOG) as NovaCatalogId[];