mirror of
https://github.com/openai/codex.git
synced 2026-09-05 15:18:41 +00:00
## Summary - choose the local OpenAI curated marketplace manifest based on auth: Codex backend auth gets the existing marketplace, direct provider auth gets `api_marketplace.json` - include Bedrock API key auth in the direct-provider API marketplace path - safely skip the API marketplace when `api_marketplace.json` is absent ## Validation - `just fmt` - `git diff --check origin/main...HEAD` - CI should run the full validation ## Manual Testing ### - New api marketplace not available for API key sign 1. Safely not display anything from api marketplace <img width="1161" height="289" alt="Screenshot 2026-06-15 at 21 37 43" src="https://github.com/user-attachments/assets/a5f16642-8a20-4ac1-a0de-1274a4c7b5b2" /> ### - New api marketplace for API key sign in 1. Setup api_marketplace.json ``` { "name": "openai-curated", "interface": { "displayName": "Codex official" }, "plugins": [ { "name": "linear", "source": { "source": "local", "path": "./plugins/linear" }, "policy": { "installation": "AVAILABLE", "authentication": "ON_INSTALL" }, "category": "Productivity" } ] } ``` 2. Log in with API key, observe that only the defined plugin from api_marketplace.json is available from "Codex Official" (outside of local testing marketplaces) <img width="1167" height="446" alt="Screenshot 2026-06-15 at 21 16 53" src="https://github.com/user-attachments/assets/7cf61477-d826-4ef6-bc05-0a23ac1c0259" /> also checked functionality on codex app ### - SiWC users Still uses 'default' marketplace.json and renders all plugins <img width="1171" height="502" alt="Screenshot 2026-06-15 at 21 40 25" src="https://github.com/user-attachments/assets/d212ea9b-0aa5-470b-8ea4-450efe65bb2b" /> also checked functionality on codex app ## Notes - `just test -p codex-core-plugins` was started locally before splitting branches, but I stopped relying on local tests per follow-up and left final validation to PR CI.
57 lines
2.0 KiB
Rust
57 lines
2.0 KiB
Rust
mod app_mcp_routing;
|
|
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;
|
|
mod provider;
|
|
pub mod remote;
|
|
pub mod remote_bundle;
|
|
pub mod remote_legacy;
|
|
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_API_CURATED_MARKETPLACE_NAME: &str = "openai-api-curated";
|
|
pub const OPENAI_BUNDLED_MARKETPLACE_NAME: &str = "openai-bundled";
|
|
|
|
pub fn is_openai_curated_marketplace_name(marketplace_name: &str) -> bool {
|
|
marketplace_name == OPENAI_CURATED_MARKETPLACE_NAME
|
|
|| marketplace_name == OPENAI_API_CURATED_MARKETPLACE_NAME
|
|
}
|
|
|
|
pub type LoadedPlugin = codex_plugin::LoadedPlugin<codex_config::McpServerConfig>;
|
|
pub type PluginLoadOutcome = codex_plugin::PluginLoadOutcome<codex_config::McpServerConfig>;
|
|
|
|
pub use app_mcp_routing::apps_route_available;
|
|
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::PluginListBackgroundTaskOptions;
|
|
pub use manager::PluginReadOutcome;
|
|
pub use manager::PluginReadRequest;
|
|
pub use manager::PluginUninstallError;
|
|
pub use manager::PluginsConfigInput;
|
|
pub use manager::PluginsManager;
|
|
pub use marketplace_upgrade::ConfiguredMarketplaceUpgradeError as PluginMarketplaceUpgradeError;
|
|
pub use marketplace_upgrade::ConfiguredMarketplaceUpgradeOutcome as PluginMarketplaceUpgradeOutcome;
|
|
pub use provider::ExecutorPluginProvider;
|
|
pub use provider::ExecutorPluginProviderError;
|
|
pub use provider::ResolvedExecutorPlugin;
|