defect_agent/llm/
model.rs1use serde::{Deserialize, Serialize};
4
5use super::capability::ModelCapabilityOverrides;
6
7#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
9pub struct ProviderInfo {
10 pub vendor: String,
12 pub protocol: ProtocolId,
14 pub display_name: String,
16}
17
18#[non_exhaustive]
21#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
22#[serde(rename_all = "snake_case")]
23pub enum ProtocolId {
24 AnthropicMessages,
25 OpenAiChat,
26}
27
28#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
33pub struct ModelInfo {
34 pub id: String,
35 pub display_name: Option<String>,
36 pub context_window: Option<u64>,
37 pub max_output_tokens: Option<u64>,
38 pub deprecated: bool,
39 pub capabilities_overrides: ModelCapabilityOverrides,
41}