diff --git a/src-tauri/src/stats.rs b/src-tauri/src/stats.rs index 989170b..cf65a0a 100644 --- a/src-tauri/src/stats.rs +++ b/src-tauri/src/stats.rs @@ -86,6 +86,8 @@ impl ContextWarning { /// Get the context window limit (in tokens) for a given model fn get_context_window_limit(model: &str) -> u64 { match model { + // Claude 4.6 family - 200K standard (1M beta available via header) + "claude-opus-4-6" => 200_000, // Claude 4.5 family - 200K standard context "claude-opus-4-5-20251101" | "claude-sonnet-4-5-20250929" @@ -498,7 +500,10 @@ pub fn calculate_cost( cache_read_tokens: Option, ) -> f64 { let (input_price_per_million, output_price_per_million) = match model { - // Current generation (Claude 4.5) + // Current generation (Claude 4.6) + "claude-opus-4-6" => (5.0, 25.0), + + // Previous generation (Claude 4.5) "claude-opus-4-5-20251101" => (5.0, 25.0), "claude-sonnet-4-5-20250929" => (3.0, 15.0), "claude-haiku-4-5-20251001" => (1.0, 5.0), diff --git a/src/lib/components/ConfigSidebar.svelte b/src/lib/components/ConfigSidebar.svelte index 9ea2183..cd0f20e 100644 --- a/src/lib/components/ConfigSidebar.svelte +++ b/src/lib/components/ConfigSidebar.svelte @@ -81,16 +81,20 @@ const availableModels = [ { value: "", label: "Default (from ~/.claude)" }, - // Current generation (Claude 4.5) + // Current generation (Claude 4.6) + { value: "claude-opus-4-6", label: "Claude Opus 4.6 (Most Capable)" }, + // Previous generation (Claude 4.5) { value: "claude-sonnet-4-5-20250929", label: "Claude Sonnet 4.5 (Recommended)" }, { value: "claude-haiku-4-5-20251001", label: "Claude Haiku 4.5 (Fast & Cheap)" }, - { value: "claude-opus-4-5-20251101", label: "Claude Opus 4.5 (Most Capable)" }, - // Previous generation (Claude 4) + { value: "claude-opus-4-5-20251101", label: "Claude Opus 4.5" }, + // Previous generation (Claude 4.x) { value: "claude-opus-4-1-20250805", label: "Claude Opus 4.1" }, { value: "claude-sonnet-4-20250514", label: "Claude Sonnet 4" }, { value: "claude-opus-4-20250514", label: "Claude Opus 4" }, // Legacy (Claude 3.x) { value: "claude-3-7-sonnet-20250219", label: "Claude 3.7 Sonnet" }, + { value: "claude-3-5-sonnet-20241022", label: "Claude 3.5 Sonnet (Oct 2024)" }, + { value: "claude-3-5-sonnet-20240620", label: "Claude 3.5 Sonnet (Jun 2024)" }, { value: "claude-3-haiku-20240307", label: "Claude 3 Haiku (Cheapest)" }, ]; diff --git a/src/lib/stores/stats.ts b/src/lib/stores/stats.ts index 030b6f5..0d36dc7 100644 --- a/src/lib/stores/stats.ts +++ b/src/lib/stores/stats.ts @@ -10,7 +10,9 @@ export type BudgetType = "token" | "cost"; // Model pricing (per million tokens) - keep in sync with stats.rs // Source: https://platform.claude.com/docs/en/about-claude/models/overview export const MODEL_PRICING: Record = { - // Current generation (Claude 4.5) + // Current generation (Claude 4.6) + "claude-opus-4-6": { input: 5.0, output: 25.0 }, + // Previous generation (Claude 4.5) "claude-opus-4-5-20251101": { input: 5.0, output: 25.0 }, "claude-sonnet-4-5-20250929": { input: 3.0, output: 15.0 }, "claude-haiku-4-5-20251001": { input: 1.0, output: 5.0 },