1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4pub struct ModelSpec {
5 #[serde(alias = "providerID", alias = "providerId")]
6 pub provider_id: String,
7 #[serde(alias = "modelID", alias = "modelId")]
8 pub model_id: String,
9}
10
11#[derive(Debug, Clone, Serialize, Deserialize)]
12pub struct ModelInfo {
13 pub id: String,
14 pub provider_id: String,
15 pub display_name: String,
16 pub context_window: usize,
17}
18
19#[derive(Debug, Clone, Serialize, Deserialize)]
20pub struct ProviderInfo {
21 pub id: String,
22 pub name: String,
23 #[serde(default)]
24 pub models: Vec<ModelInfo>,
25}