use serde::{Deserialize, Serialize};
use super::capability::ModelCapabilityOverrides;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct ProviderInfo {
pub vendor: String,
pub protocol: ProtocolId,
pub display_name: String,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum ProtocolId {
AnthropicMessages,
OpenAiChat,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct ModelInfo {
pub id: String,
pub display_name: Option<String>,
pub context_window: Option<u64>,
pub max_output_tokens: Option<u64>,
pub deprecated: bool,
pub capabilities_overrides: ModelCapabilityOverrides,
}