Make async (#5126)

Co-authored-by: Douwe Osinga <douwe@squareup.com>
This commit is contained in:
Douwe Osinga
2025-10-10 19:31:50 -04:00
committed by GitHub
parent 69a7b7fe5a
commit 1015064367
43 changed files with 343 additions and 480 deletions
+1 -1
View File
@@ -273,7 +273,7 @@ async fn update_agent_provider(
StatusCode::BAD_REQUEST
})?;
let new_provider = create(&payload.provider, model_config).map_err(|e| {
let new_provider = create(&payload.provider, model_config).await.map_err(|e| {
tracing::error!("Failed to create provider: {}", e);
StatusCode::BAD_REQUEST
})?;
@@ -258,7 +258,7 @@ pub async fn read_all_config() -> Result<Json<ConfigResponse>, StatusCode> {
)
)]
pub async fn providers() -> Result<Json<Vec<ProviderDetails>>, StatusCode> {
let mut providers_metadata = get_providers();
let mut providers_metadata = get_providers().await;
let custom_providers_dir = goose::config::custom_providers::custom_providers_dir();
@@ -347,7 +347,7 @@ pub async fn providers() -> Result<Json<Vec<ProviderDetails>>, StatusCode> {
pub async fn get_provider_models(
Path(name): Path<String>,
) -> Result<Json<Vec<String>>, StatusCode> {
let all = get_providers();
let all = get_providers().await;
let Some(metadata) = all.into_iter().find(|m| m.name == name) else {
return Err(StatusCode::BAD_REQUEST);
};
@@ -358,6 +358,7 @@ pub async fn get_provider_models(
let model_config =
ModelConfig::new(&metadata.default_model).map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?;
let provider = goose::providers::create(&name, model_config)
.await
.map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?;
match provider.fetch_supported_models().await {
@@ -449,7 +450,7 @@ pub async fn get_pricing(
}
} else {
// Get only configured providers' pricing
let providers_metadata = get_providers();
let providers_metadata = get_providers().await;
for metadata in providers_metadata {
// Skip unconfigured providers if filtering
@@ -684,7 +685,7 @@ pub async fn create_custom_provider(
)
.map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?;
if let Err(e) = goose::providers::refresh_custom_providers() {
if let Err(e) = goose::providers::refresh_custom_providers().await {
tracing::warn!("Failed to refresh custom providers after creation: {}", e);
}
@@ -706,7 +707,7 @@ pub async fn remove_custom_provider(
goose::config::custom_providers::CustomProviderConfig::remove(&id)
.map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?;
if let Err(e) = goose::providers::refresh_custom_providers() {
if let Err(e) = goose::providers::refresh_custom_providers().await {
tracing::warn!("Failed to refresh custom providers after deletion: {}", e);
}