mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
b215961a56
## Why #28522 routes selected-plugin HTTP MCP traffic through the owning executor, but OAuth bootstrap and refresh still used host-local clients. Executor-only servers therefore cannot complete discovery or login through the same network boundary as the MCP connection. ## What changed - adapt `codex_exec_server::HttpClient` to RMCP 1.8's `OAuthHttpClient` contract - let RMCP own discovery, dynamic registration, PKCE, token exchange, and refresh - route auth status, persisted-token startup, and app-server login through the server runtime while preserving the existing local discovery path - add optional `threadId` to `mcpServer/oauth/login` and echo it in the completion notification - implement RMCP's redirect policy and 1 MiB OAuth response limit over executor HTTP - cover selected-thread OAuth discovery and login through an executor-only route Depends on #28522.
87 lines
3.2 KiB
Rust
87 lines
3.2 KiB
Rust
pub use connection_manager::McpConnectionManager;
|
|
pub use connection_manager::tool_is_model_visible;
|
|
pub use elicitation::ElicitationReviewRequest;
|
|
pub use elicitation::ElicitationReviewer;
|
|
pub use elicitation::ElicitationReviewerHandle;
|
|
pub use resource_client::McpResourceClient;
|
|
pub use resource_client::McpResourceClientCacheKey;
|
|
pub use resource_client::McpResourcePage;
|
|
pub use resource_client::McpResourceReadResult;
|
|
pub use rmcp_client::MCP_SANDBOX_STATE_META_CAPABILITY;
|
|
pub use runtime::McpRuntimeContext;
|
|
pub use runtime::SandboxState;
|
|
pub use tools::ToolInfo;
|
|
|
|
pub use catalog::McpCatalogBuilder;
|
|
pub use catalog::McpPluginAttribution;
|
|
pub use catalog::McpServerConflict;
|
|
pub use catalog::McpServerConflictAction;
|
|
pub use catalog::McpServerRegistration;
|
|
pub use catalog::McpServerSource;
|
|
pub use catalog::ResolvedMcpCatalog;
|
|
pub use catalog::ResolvedMcpServer;
|
|
|
|
pub use mcp::CODEX_APPS_MCP_SERVER_NAME;
|
|
pub use mcp::McpConfig;
|
|
pub use mcp::ToolPluginProvenance;
|
|
pub use server::EffectiveMcpServer;
|
|
|
|
pub use auth_elicitation::CodexAppsAuthElicitation;
|
|
pub use auth_elicitation::CodexAppsAuthElicitationPlan;
|
|
pub use auth_elicitation::CodexAppsConnectorAuthFailure;
|
|
pub use auth_elicitation::MCP_TOOL_CODEX_APPS_META_KEY;
|
|
pub use auth_elicitation::auth_elicitation_completed_result;
|
|
pub use auth_elicitation::auth_elicitation_id;
|
|
pub use auth_elicitation::build_auth_elicitation;
|
|
pub use auth_elicitation::build_auth_elicitation_plan;
|
|
pub use auth_elicitation::connector_auth_failure_from_tool_result;
|
|
pub use codex_apps::CodexAppsToolsCacheKey;
|
|
pub use codex_apps::codex_apps_tools_cache_key;
|
|
pub use mcp::codex_apps_mcp_server_config;
|
|
pub use mcp::configured_mcp_servers;
|
|
pub use mcp::effective_mcp_servers;
|
|
pub use mcp::effective_mcp_servers_from_configured;
|
|
pub use mcp::host_owned_codex_apps_enabled;
|
|
pub use mcp::hosted_plugin_runtime_mcp_server_config;
|
|
pub use mcp::tool_plugin_provenance;
|
|
pub use plugin_config::PluginMcpConfigParseOutcome;
|
|
pub use plugin_config::PluginMcpServerParseError;
|
|
pub use plugin_config::parse_executor_plugin_mcp_config;
|
|
pub use plugin_config::parse_plugin_mcp_config;
|
|
|
|
pub use mcp::McpServerStatusSnapshot;
|
|
pub use mcp::McpSnapshotDetail;
|
|
pub use mcp::collect_mcp_server_status_snapshot_with_detail;
|
|
pub use mcp::read_mcp_resource;
|
|
|
|
pub use mcp::McpAuthStatusEntry;
|
|
pub use mcp::McpOAuthLoginConfig;
|
|
pub use mcp::McpOAuthLoginSupport;
|
|
pub use mcp::McpOAuthScopesSource;
|
|
pub use mcp::ResolvedMcpOAuthScopes;
|
|
pub use mcp::compute_auth_statuses;
|
|
pub use mcp::discover_supported_scopes;
|
|
pub use mcp::discover_supported_scopes_with_http_client;
|
|
pub use mcp::oauth_login_support;
|
|
pub use mcp::oauth_login_support_with_http_client;
|
|
pub use mcp::resolve_oauth_scopes;
|
|
pub use mcp::should_retry_without_scopes;
|
|
|
|
pub use mcp::McpPermissionPromptAutoApproveContext;
|
|
pub use mcp::mcp_permission_prompt_is_auto_approved;
|
|
pub use mcp::qualified_mcp_tool_name_prefix;
|
|
pub use tools::declared_openai_file_input_param_names;
|
|
|
|
pub(crate) mod auth_elicitation;
|
|
mod catalog;
|
|
pub(crate) mod codex_apps;
|
|
pub(crate) mod connection_manager;
|
|
pub(crate) mod elicitation;
|
|
pub(crate) mod mcp;
|
|
mod plugin_config;
|
|
mod resource_client;
|
|
pub(crate) mod rmcp_client;
|
|
pub(crate) mod runtime;
|
|
pub(crate) mod server;
|
|
pub(crate) mod tools;
|