modelRegistry top-level property

Map<String, ModelConfig> modelRegistry
final

All known model configurations.

Implementation

final modelRegistry = <String, ModelConfig>{
  // Opus 4.6
  'claude-opus-4-6': ModelConfig(
    id: 'claude-opus-4-6',
    displayName: 'Opus 4.6',
    family: ModelFamily.opus,
    providerIds: {
      ModelProvider.firstParty: 'claude-opus-4-6-20250514',
      ModelProvider.bedrock: 'us.anthropic.claude-opus-4-6-v1:0',
      ModelProvider.vertex: 'claude-opus-4-6@20250514',
      ModelProvider.foundry: 'claude-opus-4-6',
    },
    maxInputTokens: 200000,
    maxOutputTokens: 16384,
    supportsThinking: true,
    supportsImages: true,
    supportsComputerUse: true,
    supportsWebSearch: true,
    supportsCaching: true,
    supports1mContext: true,
  ),

  // Sonnet 4.6
  'claude-sonnet-4-6': ModelConfig(
    id: 'claude-sonnet-4-6',
    displayName: 'Sonnet 4.6',
    family: ModelFamily.sonnet,
    providerIds: {
      ModelProvider.firstParty: 'claude-sonnet-4-6-20250514',
      ModelProvider.bedrock: 'us.anthropic.claude-sonnet-4-6-v1:0',
      ModelProvider.vertex: 'claude-sonnet-4-6@20250514',
      ModelProvider.foundry: 'claude-sonnet-4-6',
    },
    maxInputTokens: 200000,
    maxOutputTokens: 16384,
    supportsThinking: true,
    supportsImages: true,
    supportsComputerUse: true,
    supportsWebSearch: true,
    supportsCaching: true,
    supports1mContext: true,
  ),

  // Sonnet 4.5
  'claude-sonnet-4-5': ModelConfig(
    id: 'claude-sonnet-4-5',
    displayName: 'Sonnet 4.5',
    family: ModelFamily.sonnet,
    providerIds: {
      ModelProvider.firstParty: 'claude-sonnet-4-5-20250220',
      ModelProvider.bedrock: 'us.anthropic.claude-sonnet-4-5-v2:0',
      ModelProvider.vertex: 'claude-sonnet-4-5@20250220',
      ModelProvider.foundry: 'claude-sonnet-4-5',
    },
    maxInputTokens: 200000,
    maxOutputTokens: 16384,
    supportsThinking: true,
    supportsImages: true,
    supportsWebSearch: true,
    supportsCaching: true,
  ),

  // Haiku 3.5
  'claude-haiku-3-5': ModelConfig(
    id: 'claude-haiku-3-5',
    displayName: 'Haiku 3.5',
    family: ModelFamily.haiku,
    providerIds: {
      ModelProvider.firstParty: 'claude-3-5-haiku-20241022',
      ModelProvider.bedrock: 'us.anthropic.claude-3-5-haiku-20241022-v1:0',
      ModelProvider.vertex: 'claude-3-5-haiku@20241022',
      ModelProvider.foundry: 'claude-3-5-haiku',
    },
    maxInputTokens: 200000,
    maxOutputTokens: 8192,
    supportsThinking: false,
    supportsImages: true,
    supportsCaching: true,
  ),

  // OpenAI models
  'gpt-4o': ModelConfig(
    id: 'gpt-4o',
    displayName: 'GPT-4o',
    family: ModelFamily.sonnet, // Comparable tier
    providerIds: {ModelProvider.openai: 'gpt-4o'},
    maxInputTokens: 128000,
    maxOutputTokens: 16384,
    supportsThinking: false,
    supportsImages: true,
    supportsCaching: false,
  ),

  'gpt-4o-mini': ModelConfig(
    id: 'gpt-4o-mini',
    displayName: 'GPT-4o Mini',
    family: ModelFamily.haiku,
    providerIds: {ModelProvider.openai: 'gpt-4o-mini'},
    maxInputTokens: 128000,
    maxOutputTokens: 16384,
    supportsThinking: false,
    supportsImages: true,
    supportsCaching: false,
  ),

  // Gemini models
  'gemini-2.5-pro': ModelConfig(
    id: 'gemini-2.5-pro',
    displayName: 'Gemini 2.5 Pro',
    family: ModelFamily.opus,
    providerIds: {ModelProvider.gemini: 'gemini-2.5-pro-preview-03-25'},
    maxInputTokens: 1000000,
    maxOutputTokens: 65536,
    supportsThinking: true,
    supportsImages: true,
    supportsCaching: false,
  ),
};