Skip to main content

vv_agent/app_server/protocol/
model.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3use ts_rs::TS;
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema, TS)]
6#[serde(rename_all = "camelCase")]
7pub struct ModelListParams {
8    #[serde(default, skip_serializing_if = "Option::is_none")]
9    pub provider: Option<String>,
10}
11
12#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema, TS)]
13#[serde(rename_all = "camelCase")]
14pub struct ModelListResponse {
15    pub models: Vec<AppModelInfo>,
16}
17
18#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema, TS)]
19#[serde(rename_all = "camelCase")]
20pub struct AppModelInfo {
21    pub id: String,
22    #[serde(default, skip_serializing_if = "Option::is_none")]
23    pub provider: Option<String>,
24    #[serde(default, skip_serializing_if = "Option::is_none")]
25    pub display_name: Option<String>,
26    #[serde(default, skip_serializing_if = "Option::is_none")]
27    pub context_length: Option<u64>,
28    #[serde(default)]
29    pub supports_tools: bool,
30}