resolved all the extensions to load in cli (#6464)

This commit is contained in:
Lifei Zhou
2026-01-19 13:13:54 +11:00
committed by GitHub
parent f3c2f8e803
commit 73a878821d
9 changed files with 315 additions and 378 deletions
+15
View File
@@ -155,3 +155,18 @@ pub fn get_warnings() -> Vec<String> {
}
warnings
}
pub fn resolve_extensions_for_new_session(
recipe_extensions: Option<&[ExtensionConfig]>,
override_extensions: Option<Vec<ExtensionConfig>>,
) -> Vec<ExtensionConfig> {
if let Some(exts) = recipe_extensions {
return exts.to_vec();
}
if let Some(exts) = override_extensions {
return exts;
}
get_enabled_extensions()
}
+2 -2
View File
@@ -15,8 +15,8 @@ pub use declarative_providers::DeclarativeProviderConfig;
pub use experiments::ExperimentManager;
pub use extensions::{
get_all_extension_names, get_all_extensions, get_enabled_extensions, get_extension_by_name,
get_warnings, is_extension_enabled, remove_extension, set_extension, set_extension_enabled,
ExtensionEntry,
get_warnings, is_extension_enabled, remove_extension, resolve_extensions_for_new_session,
set_extension, set_extension_enabled, ExtensionEntry,
};
pub use goose_mode::GooseMode;
pub use permission::PermissionManager;
+4 -5
View File
@@ -15,7 +15,7 @@ use tokio_util::sync::CancellationToken;
use crate::agents::AgentEvent;
use crate::agents::{Agent, SessionConfig};
use crate::config::paths::Paths;
use crate::config::Config;
use crate::config::{resolve_extensions_for_new_session, Config};
use crate::conversation::message::Message;
use crate::conversation::Conversation;
use crate::posthog;
@@ -743,10 +743,9 @@ async fn execute_job(
let agent_provider = create(&provider_name, model_config).await?;
if let Some(ref extensions) = recipe.extensions {
for ext in extensions {
agent.add_extension(ext.clone()).await?;
}
let extensions = resolve_extensions_for_new_session(recipe.extensions.as_deref(), None);
for ext in extensions {
agent.add_extension(ext.clone()).await?;
}
let session = agent