@@ -117,7 +117,7 @@ impl GooseAcpAgent {
|
||||
toolshim_model: None,
|
||||
fast_model: None,
|
||||
};
|
||||
let provider = create(&provider_name, model_config)?;
|
||||
let provider = create(&provider_name, model_config).await?;
|
||||
|
||||
// Create a shared agent instance
|
||||
let agent = Agent::new();
|
||||
|
||||
@@ -258,7 +258,7 @@ async fn handle_oauth_configuration(
|
||||
|
||||
// Create a temporary provider instance to handle OAuth
|
||||
let temp_model = ModelConfig::new("temp")?;
|
||||
match create(provider_name, temp_model) {
|
||||
match create(provider_name, temp_model).await {
|
||||
Ok(provider) => match provider.configure_oauth().await {
|
||||
Ok(_) => {
|
||||
let _ = cliclack::log::success("OAuth authentication completed successfully!");
|
||||
@@ -420,7 +420,7 @@ pub async fn configure_provider_dialog() -> Result<bool, Box<dyn Error>> {
|
||||
let config = Config::global();
|
||||
|
||||
// Get all available providers and their metadata
|
||||
let available_providers = providers();
|
||||
let available_providers = providers().await;
|
||||
|
||||
// Create selection items from provider metadata
|
||||
let provider_items: Vec<(&String, &str, &str)> = available_providers
|
||||
@@ -550,7 +550,7 @@ pub async fn configure_provider_dialog() -> Result<bool, Box<dyn Error>> {
|
||||
spin.start("Attempting to fetch supported models...");
|
||||
let models_res = {
|
||||
let temp_model_config = ModelConfig::new(&provider_meta.default_model)?;
|
||||
let temp_provider = create(provider_name, temp_model_config)?;
|
||||
let temp_provider = create(provider_name, temp_model_config).await?;
|
||||
temp_provider.fetch_supported_models().await
|
||||
};
|
||||
spin.stop(style("Model fetch complete").green());
|
||||
@@ -586,7 +586,7 @@ pub async fn configure_provider_dialog() -> Result<bool, Box<dyn Error>> {
|
||||
.with_toolshim(toolshim_enabled)
|
||||
.with_toolshim_model(std::env::var("GOOSE_TOOLSHIM_OLLAMA_MODEL").ok());
|
||||
|
||||
let provider = create(provider_name, model_config)?;
|
||||
let provider = create(provider_name, model_config).await?;
|
||||
|
||||
let messages =
|
||||
vec![Message::user().with_text("What is the weather like in San Francisco today?")];
|
||||
@@ -1419,7 +1419,7 @@ pub async fn configure_tool_permissions_dialog() -> Result<(), Box<dyn Error>> {
|
||||
|
||||
// Create the agent
|
||||
let agent = Agent::new();
|
||||
let new_provider = create(&provider_name, model_config)?;
|
||||
let new_provider = create(&provider_name, model_config).await?;
|
||||
agent.update_provider(new_provider).await?;
|
||||
if let Some(config) = get_extension_by_name(&selected_extension_name) {
|
||||
agent
|
||||
@@ -1688,7 +1688,7 @@ pub async fn handle_openrouter_auth() -> Result<(), Box<dyn Error>> {
|
||||
}
|
||||
};
|
||||
|
||||
match create("openrouter", model_config) {
|
||||
match create("openrouter", model_config).await {
|
||||
Ok(provider) => {
|
||||
// Simple test request
|
||||
let test_result = provider
|
||||
@@ -1787,7 +1787,7 @@ pub async fn handle_tetrate_auth() -> Result<(), Box<dyn Error>> {
|
||||
}
|
||||
};
|
||||
|
||||
match create("tetrate", model_config) {
|
||||
match create("tetrate", model_config).await {
|
||||
Ok(provider) => {
|
||||
// Simple test request
|
||||
let test_result = provider
|
||||
|
||||
@@ -137,7 +137,6 @@ pub async fn handle_web(
|
||||
// Setup logging
|
||||
crate::logging::setup_logging(Some("goose-web"), None)?;
|
||||
|
||||
// Load config and create agent just like the CLI does
|
||||
let config = goose::config::Config::global();
|
||||
|
||||
let provider_name: String = match config.get_param("GOOSE_PROVIDER") {
|
||||
@@ -160,7 +159,7 @@ pub async fn handle_web(
|
||||
|
||||
// Create the agent
|
||||
let agent = Agent::new();
|
||||
let provider = goose::providers::create(&provider_name, model_config)?;
|
||||
let provider = goose::providers::create(&provider_name, model_config).await?;
|
||||
agent.update_provider(provider).await?;
|
||||
|
||||
// Load and enable extensions from config
|
||||
|
||||
@@ -180,7 +180,7 @@ where
|
||||
|
||||
let original_env = setup_environment(config)?;
|
||||
|
||||
let inner_provider = create(&factory_name, ModelConfig::new(config.model_name)?)?;
|
||||
let inner_provider = create(&factory_name, ModelConfig::new(config.model_name)?).await?;
|
||||
|
||||
let test_provider = Arc::new(TestProvider::new_recording(inner_provider, &file_path));
|
||||
(
|
||||
|
||||
@@ -242,7 +242,7 @@ pub async fn build_session(session_config: SessionBuilderConfig) -> CliSession {
|
||||
agent.add_final_output_tool(final_output_response).await;
|
||||
}
|
||||
|
||||
let new_provider = match create(&provider_name, model_config) {
|
||||
let new_provider = match create(&provider_name, model_config).await {
|
||||
Ok(provider) => provider,
|
||||
Err(e) => {
|
||||
output::render_error(&format!(
|
||||
|
||||
@@ -474,7 +474,7 @@ impl CliSession {
|
||||
RunMode::Plan => {
|
||||
let mut plan_messages = self.messages.clone();
|
||||
plan_messages.push(Message::user().with_text(&content));
|
||||
let reasoner = get_reasoner()?;
|
||||
let reasoner = get_reasoner().await?;
|
||||
self.plan_with_reasoner_model(plan_messages, reasoner)
|
||||
.await?;
|
||||
}
|
||||
@@ -581,7 +581,7 @@ impl CliSession {
|
||||
let mut plan_messages = self.messages.clone();
|
||||
plan_messages.push(Message::user().with_text(&message_text));
|
||||
|
||||
let reasoner = get_reasoner()?;
|
||||
let reasoner = get_reasoner().await?;
|
||||
self.plan_with_reasoner_model(plan_messages, reasoner)
|
||||
.await?;
|
||||
}
|
||||
@@ -1632,7 +1632,7 @@ impl CliSession {
|
||||
}
|
||||
}
|
||||
|
||||
fn get_reasoner() -> Result<Arc<dyn Provider>, anyhow::Error> {
|
||||
async fn get_reasoner() -> Result<Arc<dyn Provider>, anyhow::Error> {
|
||||
use goose::model::ModelConfig;
|
||||
use goose::providers::create;
|
||||
|
||||
@@ -1660,7 +1660,7 @@ fn get_reasoner() -> Result<Arc<dyn Provider>, anyhow::Error> {
|
||||
|
||||
let model_config =
|
||||
ModelConfig::new_with_context_env(model, Some("GOOSE_PLANNER_CONTEXT_LIMIT"))?;
|
||||
let reasoner = create(&provider, model_config)?;
|
||||
let reasoner = create(&provider, model_config).await?;
|
||||
|
||||
Ok(reasoner)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user