mirror of
https://github.com/openai/codex.git
synced 2026-11-14 21:40:39 +00:00
## Summary `hooks/list` only consumes plugin hook declarations, but previously loaded every enabled plugin's skills, MCP configuration, apps, and capability summary before discarding them. In a local benchmark, this reduced `hooks/list` latency by over 100ms (e.g., from 594 to 467ms on startup, and 168 to 16ms when making a `hooks/list` call later in the same TUI session). This is on the critical path to rendering the TUI, so every 10s of ms should be eyed skeptically (IMO). This change adds a hook-specific plugin loading path that preserves plugin enablement, remote/local conflict resolution, deterministic ordering, manifest resolution, and hook-loading warnings while skipping unrelated capabilities. (I think there's room for a more general design here that allows you to project the capabilities you need at load-time, but that seems unnecessary right now.)
47 lines
1.6 KiB
Rust
47 lines
1.6 KiB
Rust
mod discoverable;
|
|
pub mod installed_marketplaces;
|
|
pub mod loader;
|
|
mod manager;
|
|
pub mod manifest;
|
|
pub mod marketplace;
|
|
pub mod marketplace_add;
|
|
pub mod marketplace_remove;
|
|
pub mod marketplace_upgrade;
|
|
mod plugin_bundle_archive;
|
|
pub mod remote;
|
|
pub mod remote_bundle;
|
|
pub mod remote_legacy;
|
|
pub(crate) mod startup_remote_sync;
|
|
pub mod startup_sync;
|
|
pub mod store;
|
|
#[cfg(test)]
|
|
mod test_support;
|
|
pub mod toggles;
|
|
|
|
pub const OPENAI_CURATED_MARKETPLACE_NAME: &str = "openai-curated";
|
|
pub const OPENAI_BUNDLED_MARKETPLACE_NAME: &str = "openai-bundled";
|
|
|
|
pub type LoadedPlugin = codex_plugin::LoadedPlugin<codex_config::McpServerConfig>;
|
|
pub type PluginLoadOutcome = codex_plugin::PluginLoadOutcome<codex_config::McpServerConfig>;
|
|
|
|
pub use discoverable::ToolSuggestDiscoverablePlugin;
|
|
pub use discoverable::ToolSuggestPluginDiscoveryInput;
|
|
pub use loader::PluginHookLoadOutcome;
|
|
pub use manager::ConfiguredMarketplace;
|
|
pub use manager::ConfiguredMarketplaceListOutcome;
|
|
pub use manager::ConfiguredMarketplacePlugin;
|
|
pub use manager::PluginDetail;
|
|
pub use manager::PluginDetailsUnavailableReason;
|
|
pub use manager::PluginInstallError;
|
|
pub use manager::PluginInstallOutcome;
|
|
pub use manager::PluginInstallRequest;
|
|
pub use manager::PluginReadOutcome;
|
|
pub use manager::PluginReadRequest;
|
|
pub use manager::PluginRemoteSyncError;
|
|
pub use manager::PluginUninstallError;
|
|
pub use manager::PluginsConfigInput;
|
|
pub use manager::PluginsManager;
|
|
pub use manager::RemotePluginSyncResult;
|
|
pub use marketplace_upgrade::ConfiguredMarketplaceUpgradeError as PluginMarketplaceUpgradeError;
|
|
pub use marketplace_upgrade::ConfiguredMarketplaceUpgradeOutcome as PluginMarketplaceUpgradeOutcome;
|