aptu_core/facade/
models.rs1#[cfg(not(target_arch = "wasm32"))]
6use tracing::instrument;
7
8#[cfg(not(target_arch = "wasm32"))]
9use crate::auth::TokenProvider;
10use crate::error::AptuError;
11
12#[cfg(not(target_arch = "wasm32"))]
34#[instrument(skip(provider), fields(provider_name))]
35pub async fn list_models(
36 provider: &dyn TokenProvider,
37 provider_name: &str,
38) -> crate::Result<Vec<crate::ai::registry::CachedModel>> {
39 use crate::ai::registry::{CachedModelRegistry, ModelRegistry};
40 use crate::cache::cache_dir;
41
42 let cache_dir = cache_dir();
43 let registry =
44 CachedModelRegistry::new(cache_dir, crate::cache::DEFAULT_MODEL_TTL_SECS, provider);
45
46 registry
47 .list_models(provider_name)
48 .await
49 .map_err(|e| AptuError::ModelRegistry {
50 message: format!("Failed to list models: {e}"),
51 })
52}
53
54#[cfg(target_arch = "wasm32")]
55pub async fn list_models(
56 _provider: &dyn crate::auth::TokenProvider,
57 _provider_name: &str,
58) -> crate::Result<Vec<crate::ai::registry::CachedModel>> {
59 crate::facade::wasm_unsupported!("list_models");
60}
61
62#[cfg(not(target_arch = "wasm32"))]
84#[instrument(skip(provider), fields(provider_name, model_id))]
85pub async fn validate_model(
86 provider: &dyn TokenProvider,
87 provider_name: &str,
88 model_id: &str,
89) -> crate::Result<bool> {
90 use crate::ai::registry::{CachedModelRegistry, ModelRegistry};
91 use crate::cache::cache_dir;
92
93 let cache_dir = cache_dir();
94 let registry =
95 CachedModelRegistry::new(cache_dir, crate::cache::DEFAULT_MODEL_TTL_SECS, provider);
96
97 registry
98 .model_exists(provider_name, model_id)
99 .await
100 .map_err(|e| AptuError::ModelRegistry {
101 message: format!("Failed to validate model: {e}"),
102 })
103}
104
105#[cfg(target_arch = "wasm32")]
106pub async fn validate_model(
107 _provider: &dyn crate::auth::TokenProvider,
108 _provider_name: &str,
109 _model_id: &str,
110) -> crate::Result<bool> {
111 crate::facade::wasm_unsupported!("validate_model");
112}