| import type { ModelName } from './model.js' |
| import type { APIProvider } from './providers.js' |
|
|
| export type ModelConfig = Record<APIProvider, ModelName> |
|
|
| |
| |
|
|
| export const CLAUDE_3_7_SONNET_CONFIG = { |
| firstParty: 'claude-3-7-sonnet-20250219', |
| bedrock: 'us.anthropic.claude-3-7-sonnet-20250219-v1:0', |
| vertex: 'claude-3-7-sonnet@20250219', |
| foundry: 'claude-3-7-sonnet', |
| } as const satisfies ModelConfig |
|
|
| export const CLAUDE_3_5_V2_SONNET_CONFIG = { |
| firstParty: 'claude-3-5-sonnet-20241022', |
| bedrock: 'anthropic.claude-3-5-sonnet-20241022-v2:0', |
| vertex: 'claude-3-5-sonnet-v2@20241022', |
| foundry: 'claude-3-5-sonnet', |
| } as const satisfies ModelConfig |
|
|
| export const CLAUDE_3_5_HAIKU_CONFIG = { |
| firstParty: 'claude-3-5-haiku-20241022', |
| bedrock: 'us.anthropic.claude-3-5-haiku-20241022-v1:0', |
| vertex: 'claude-3-5-haiku@20241022', |
| foundry: 'claude-3-5-haiku', |
| } as const satisfies ModelConfig |
|
|
| export const CLAUDE_HAIKU_4_5_CONFIG = { |
| firstParty: 'claude-haiku-4-5-20251001', |
| bedrock: 'us.anthropic.claude-haiku-4-5-20251001-v1:0', |
| vertex: 'claude-haiku-4-5@20251001', |
| foundry: 'claude-haiku-4-5', |
| } as const satisfies ModelConfig |
|
|
| export const CLAUDE_SONNET_4_CONFIG = { |
| firstParty: 'claude-sonnet-4-20250514', |
| bedrock: 'us.anthropic.claude-sonnet-4-20250514-v1:0', |
| vertex: 'claude-sonnet-4@20250514', |
| foundry: 'claude-sonnet-4', |
| } as const satisfies ModelConfig |
|
|
| export const CLAUDE_SONNET_4_5_CONFIG = { |
| firstParty: 'claude-sonnet-4-5-20250929', |
| bedrock: 'us.anthropic.claude-sonnet-4-5-20250929-v1:0', |
| vertex: 'claude-sonnet-4-5@20250929', |
| foundry: 'claude-sonnet-4-5', |
| } as const satisfies ModelConfig |
|
|
| export const CLAUDE_OPUS_4_CONFIG = { |
| firstParty: 'claude-opus-4-20250514', |
| bedrock: 'us.anthropic.claude-opus-4-20250514-v1:0', |
| vertex: 'claude-opus-4@20250514', |
| foundry: 'claude-opus-4', |
| } as const satisfies ModelConfig |
|
|
| export const CLAUDE_OPUS_4_1_CONFIG = { |
| firstParty: 'claude-opus-4-1-20250805', |
| bedrock: 'us.anthropic.claude-opus-4-1-20250805-v1:0', |
| vertex: 'claude-opus-4-1@20250805', |
| foundry: 'claude-opus-4-1', |
| } as const satisfies ModelConfig |
|
|
| export const CLAUDE_OPUS_4_5_CONFIG = { |
| firstParty: 'claude-opus-4-5-20251101', |
| bedrock: 'us.anthropic.claude-opus-4-5-20251101-v1:0', |
| vertex: 'claude-opus-4-5@20251101', |
| foundry: 'claude-opus-4-5', |
| } as const satisfies ModelConfig |
|
|
| export const CLAUDE_OPUS_4_6_CONFIG = { |
| firstParty: 'claude-opus-4-6', |
| bedrock: 'us.anthropic.claude-opus-4-6-v1', |
| vertex: 'claude-opus-4-6', |
| foundry: 'claude-opus-4-6', |
| } as const satisfies ModelConfig |
|
|
| export const CLAUDE_SONNET_4_6_CONFIG = { |
| firstParty: 'claude-sonnet-4-6', |
| bedrock: 'us.anthropic.claude-sonnet-4-6', |
| vertex: 'claude-sonnet-4-6', |
| foundry: 'claude-sonnet-4-6', |
| } as const satisfies ModelConfig |
|
|
| |
| export const ALL_MODEL_CONFIGS = { |
| haiku35: CLAUDE_3_5_HAIKU_CONFIG, |
| haiku45: CLAUDE_HAIKU_4_5_CONFIG, |
| sonnet35: CLAUDE_3_5_V2_SONNET_CONFIG, |
| sonnet37: CLAUDE_3_7_SONNET_CONFIG, |
| sonnet40: CLAUDE_SONNET_4_CONFIG, |
| sonnet45: CLAUDE_SONNET_4_5_CONFIG, |
| sonnet46: CLAUDE_SONNET_4_6_CONFIG, |
| opus40: CLAUDE_OPUS_4_CONFIG, |
| opus41: CLAUDE_OPUS_4_1_CONFIG, |
| opus45: CLAUDE_OPUS_4_5_CONFIG, |
| opus46: CLAUDE_OPUS_4_6_CONFIG, |
| } as const satisfies Record<string, ModelConfig> |
|
|
| export type ModelKey = keyof typeof ALL_MODEL_CONFIGS |
|
|
| |
| export type CanonicalModelId = |
| (typeof ALL_MODEL_CONFIGS)[ModelKey]['firstParty'] |
|
|
| |
| export const CANONICAL_MODEL_IDS = Object.values(ALL_MODEL_CONFIGS).map( |
| c => c.firstParty, |
| ) as [CanonicalModelId, ...CanonicalModelId[]] |
|
|
| |
| export const CANONICAL_ID_TO_KEY: Record<CanonicalModelId, ModelKey> = |
| Object.fromEntries( |
| (Object.entries(ALL_MODEL_CONFIGS) as [ModelKey, ModelConfig][]).map( |
| ([key, cfg]) => [cfg.firstParty, key], |
| ), |
| ) as Record<CanonicalModelId, ModelKey> |
|
|