use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum RpcId {
Number(i64),
Str(String),
}
#[derive(Debug, Clone, Deserialize)]
pub struct JsonRpcRequest {
pub jsonrpc: String,
pub id: Option<RpcId>,
pub method: String,
pub params: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct ResolveContextParams {
pub cache: String,
pub query: String,
pub budget: i64,
}
#[derive(Debug, Clone, Deserialize)]
pub struct ListCachesParams {
pub root: String,
}
#[derive(Debug, Clone, Deserialize)]
pub struct InspectCacheParams {
pub cache: String,
}
#[derive(Debug, Clone, Deserialize)]
pub struct InitializeParams {
#[serde(rename = "protocolVersion")]
pub protocol_version: Option<String>,
#[serde(rename = "clientInfo")]
pub client_info: Option<ClientInfo>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct ClientInfo {
pub name: Option<String>,
pub version: Option<String>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct ToolCallParams {
pub name: String,
pub arguments: Option<serde_json::Value>,
}