use std::future::Future;
pub async fn run<F, Fut>(task: F) -> Result<(), crate::error::Error>
where
F: FnOnce(objectiveai_sdk::HttpClient) -> Fut + Send + 'static,
Fut: Future<Output = Result<(), crate::error::Error>> + Send + 'static,
{
let client = objectiveai_sdk::filesystem::Client::new(
None::<String>,
None::<String>,
None::<String>,
);
let mut config = client.read_config().await?;
let http_client = crate::api::client::build_http_client(&mut config);
task(http_client).await
}
pub async fn run_with_conduit<F, Fut>(task: F) -> Result<(), crate::error::Error>
where
F: FnOnce(
objectiveai_sdk::HttpClient,
crate::api::conduit::ConduitMcpHandler,
) -> Fut
+ Send
+ 'static,
Fut: Future<Output = Result<(), crate::error::Error>> + Send + 'static,
{
let client = objectiveai_sdk::filesystem::Client::new(
None::<String>,
None::<String>,
None::<String>,
);
let mut config = client.read_config().await?;
let http_client = crate::api::client::build_http_client(&mut config);
let conduit = crate::api::conduit::build_handler(&mut config);
task(http_client, conduit).await
}