pub mod go;
pub mod zen;
pub use go::OpenCodeGoClient;
use crate::providers::KnownModel;
#[derive(Clone, Debug, serde::Serialize, serde::Deserialize, PartialEq)]
pub struct ModelsResponse {
pub object: String,
#[serde(default)]
pub data: Vec<ModelInfo>,
}
#[derive(Clone, Debug, serde::Serialize, serde::Deserialize, PartialEq)]
pub struct ModelInfo {
pub id: String,
pub object: String,
pub created: u64,
pub owned_by: String,
}
pub fn is_go_model_id(model: &str) -> bool {
go::is_model_id(model)
}
pub fn is_zen_model_id(model: &str) -> bool {
zen::is_model_id(model)
}
pub fn is_model_id(model: &str) -> bool {
is_go_model_id(model) || is_zen_model_id(model)
}
pub fn known_models() -> Vec<KnownModel> {
let mut models = zen::known_models();
models.extend(go::known_models());
models
}
pub fn validate_go_api_key(api_key: &str) -> std::result::Result<(), String> {
go::validate_api_key(api_key)
}
pub fn validate_zen_api_key(api_key: &str) -> std::result::Result<(), String> {
zen::validate_api_key(api_key)
}
pub fn probe_go_api_key(api_key: &str) -> crate::providers::Result<()> {
go::probe_api_key(api_key)
}
pub fn probe_zen_api_key(api_key: &str) -> crate::providers::Result<()> {
zen::probe_api_key(api_key)
}