diff --git a/codex-rs/app-server/src/extensions.rs b/codex-rs/app-server/src/extensions.rs index 1c397b48c..c979baacf 100644 --- a/codex-rs/app-server/src/extensions.rs +++ b/codex-rs/app-server/src/extensions.rs @@ -27,6 +27,9 @@ use crate::outgoing_message::OutgoingMessageSender; use crate::thread_state::ThreadListenerCommand; use crate::thread_state::ThreadStateManager; +// TODO(jif): Enable once /ps/mcp serves complete hosted skill packages. +const ORCHESTRATOR_SKILLS_ENABLED: bool = false; + pub(crate) struct ThreadExtensionDependencies { pub(crate) event_sink: Arc, pub(crate) auth_manager: Arc, @@ -73,13 +76,16 @@ where codex_mcp_extension::install(&mut builder); codex_web_search_extension::install(&mut builder, auth_manager.clone()); codex_image_generation_extension::install(&mut builder, auth_manager); + let mut skill_providers = codex_skills_extension::SkillProviders::new() + .with_executor_provider(executor_skill_provider); + if ORCHESTRATOR_SKILLS_ENABLED { + skill_providers = skill_providers.with_orchestrator_provider(Arc::new( + codex_skills_extension::OrchestratorSkillProvider::new(), + )); + } codex_skills_extension::install_with_providers( &mut builder, - codex_skills_extension::SkillProviders::new() - .with_executor_provider(executor_skill_provider) - .with_orchestrator_provider(Arc::new( - codex_skills_extension::OrchestratorSkillProvider::new(), - )), + skill_providers, |config: &Config| codex_skills_extension::SkillsExtensionConfig { include_instructions: config.include_skill_instructions, bundled_skills_enabled: config.bundled_skills_enabled(), diff --git a/codex-rs/app-server/tests/suite/v2/mcp_resource.rs b/codex-rs/app-server/tests/suite/v2/mcp_resource.rs index 59d8bece0..9e91e3e87 100644 --- a/codex-rs/app-server/tests/suite/v2/mcp_resource.rs +++ b/codex-rs/app-server/tests/suite/v2/mcp_resource.rs @@ -124,6 +124,7 @@ async fn mcp_resource_read_returns_resource_contents() -> Result<()> { } #[tokio::test(flavor = "multi_thread", worker_threads = 2)] +#[ignore = "orchestrator skills are disabled until /ps/mcp serves complete skill packages"] async fn orchestrator_skill_can_read_referenced_resource_without_an_executor() -> Result<()> { let responses_server = responses::start_mock_server().await; let (apps_server_url, apps_server_handle) = start_resource_apps_mcp_server().await?;