diff --git a/shared/src/models.ts b/shared/src/models.ts index c0199610..cddeff3b 100644 --- a/shared/src/models.ts +++ b/shared/src/models.ts @@ -2,7 +2,9 @@ export const CLAUDE_MODEL_LABELS = { sonnet: 'Sonnet', 'sonnet[1m]': 'Sonnet 1M', opus: 'Opus', - 'opus[1m]': 'Opus 1M' + 'opus[1m]': 'Opus 1M', + fable: 'Fable', + 'fable[1m]': 'Fable 1M' } as const export type ClaudeModelPreset = keyof typeof CLAUDE_MODEL_LABELS diff --git a/web/src/components/AssistantChat/claudeModelOptions.test.ts b/web/src/components/AssistantChat/claudeModelOptions.test.ts index 1afef6b1..73f93a8b 100644 --- a/web/src/components/AssistantChat/claudeModelOptions.test.ts +++ b/web/src/components/AssistantChat/claudeModelOptions.test.ts @@ -10,6 +10,8 @@ describe('getClaudeComposerModelOptions', () => { { value: 'sonnet[1m]', label: 'Sonnet 1M' }, { value: 'opus', label: 'Opus' }, { value: 'opus[1m]', label: 'Opus 1M' }, + { value: 'fable', label: 'Fable' }, + { value: 'fable[1m]', label: 'Fable 1M' }, ]) }) @@ -20,6 +22,8 @@ describe('getClaudeComposerModelOptions', () => { { value: 'sonnet[1m]', label: 'Sonnet 1M' }, { value: 'opus', label: 'Opus' }, { value: 'opus[1m]', label: 'Opus 1M' }, + { value: 'fable', label: 'Fable' }, + { value: 'fable[1m]', label: 'Fable 1M' }, ]) }) }) diff --git a/web/src/components/AssistantChat/modelOptions.test.ts b/web/src/components/AssistantChat/modelOptions.test.ts index 3df8f28d..ef189830 100644 --- a/web/src/components/AssistantChat/modelOptions.test.ts +++ b/web/src/components/AssistantChat/modelOptions.test.ts @@ -27,7 +27,9 @@ describe('getModelOptionsForFlavor', () => { { value: 'sonnet', label: 'Sonnet' }, { value: 'sonnet[1m]', label: 'Sonnet 1M' }, { value: 'opus', label: 'Opus' }, - { value: 'opus[1m]', label: 'Opus 1M' } + { value: 'opus[1m]', label: 'Opus 1M' }, + { value: 'fable', label: 'Fable' }, + { value: 'fable[1m]', label: 'Fable 1M' } ]) }) @@ -41,7 +43,9 @@ describe('getModelOptionsForFlavor', () => { { value: 'sonnet', label: 'Sonnet' }, { value: 'sonnet[1m]', label: 'Sonnet 1M' }, { value: 'opus', label: 'Opus' }, - { value: 'opus[1m]', label: 'Opus 1M' } + { value: 'opus[1m]', label: 'Opus 1M' }, + { value: 'fable', label: 'Fable' }, + { value: 'fable[1m]', label: 'Fable 1M' } ]) }) diff --git a/web/src/components/NewSession/types.test.ts b/web/src/components/NewSession/types.test.ts index d2e040f3..f8869345 100644 --- a/web/src/components/NewSession/types.test.ts +++ b/web/src/components/NewSession/types.test.ts @@ -14,9 +14,10 @@ describe('Claude model options', () => { }) it('exposes friendly labels for Claude model presets', () => { - expect(CLAUDE_MODEL_PRESETS).toEqual(['sonnet', 'sonnet[1m]', 'opus', 'opus[1m]']) + expect(CLAUDE_MODEL_PRESETS).toEqual(['sonnet', 'sonnet[1m]', 'opus', 'opus[1m]', 'fable', 'fable[1m]']) expect(getClaudeModelLabel('sonnet[1m]')).toBe('Sonnet 1M') expect(getClaudeModelLabel('opus[1m]')).toBe('Opus 1M') + expect(getClaudeModelLabel('fable[1m]')).toBe('Fable 1M') }) })