mirror of
https://github.com/openai/codex.git
synced 2026-09-11 20:36:49 +00:00
### Why The RMCP layer needs a Streamable HTTP client that can talk either directly over `reqwest` or through the executor HTTP runner without duplicating MCP session logic higher in the stack. This PR adds that client-side transport boundary so remote Streamable HTTP MCP can reuse the same RMCP flow as the local path. ### What - Add a shared `rmcp-client/src/streamable_http/` module with: - `transport_client.rs` for the local-or-remote transport enum - `local_client.rs` for the direct `reqwest` implementation - `remote_client.rs` for the executor-backed implementation - `common.rs` for the small shared Streamable HTTP helpers - Teach `RmcpClient` to build Streamable HTTP transports in either local or remote mode while keeping the existing OAuth ownership in RMCP. - Translate remote POST, GET, and DELETE session operations into executor `http/request` calls. - Preserve RMCP session expiry handling and reconnect behavior for the remote transport. - Add remote transport coverage in `rmcp-client/tests/streamable_http_remote.rs` and keep the shared test support in `rmcp-client/tests/streamable_http_test_support.rs`. ### Verification - `cargo check -p codex-rmcp-client` - online CI ### Stack 1. #18581 protocol 2. #18582 runner 3. #18583 RMCP client 4. #18584 manager wiring and local/remote coverage --------- Co-authored-by: Codex <noreply@openai.com>
90 lines
2.9 KiB
Rust
90 lines
2.9 KiB
Rust
mod client;
|
|
mod client_api;
|
|
mod connection;
|
|
mod environment;
|
|
mod file_system;
|
|
mod fs_helper;
|
|
mod fs_helper_main;
|
|
mod fs_sandbox;
|
|
mod local_file_system;
|
|
mod local_process;
|
|
mod process;
|
|
mod process_id;
|
|
mod protocol;
|
|
mod remote_file_system;
|
|
mod remote_process;
|
|
mod rpc;
|
|
mod runtime_paths;
|
|
mod sandboxed_file_system;
|
|
mod server;
|
|
|
|
pub use client::ExecServerClient;
|
|
pub use client::ExecServerError;
|
|
pub use client::http_client::HttpResponseBodyStream;
|
|
pub use client::http_client::ReqwestHttpClient;
|
|
pub use client_api::ExecServerClientConnectOptions;
|
|
pub use client_api::HttpClient;
|
|
pub use client_api::RemoteExecServerConnectArgs;
|
|
pub use environment::CODEX_EXEC_SERVER_URL_ENV_VAR;
|
|
pub use environment::Environment;
|
|
pub use environment::EnvironmentManager;
|
|
pub use environment::EnvironmentManagerArgs;
|
|
pub use file_system::CopyOptions;
|
|
pub use file_system::CreateDirectoryOptions;
|
|
pub use file_system::ExecutorFileSystem;
|
|
pub use file_system::FileMetadata;
|
|
pub use file_system::FileSystemResult;
|
|
pub use file_system::FileSystemSandboxContext;
|
|
pub use file_system::ReadDirectoryEntry;
|
|
pub use file_system::RemoveOptions;
|
|
pub use fs_helper::CODEX_FS_HELPER_ARG1;
|
|
pub use fs_helper_main::main as run_fs_helper_main;
|
|
pub use local_file_system::LOCAL_FS;
|
|
pub use local_file_system::LocalFileSystem;
|
|
pub use process::ExecBackend;
|
|
pub use process::ExecProcess;
|
|
pub use process::ExecProcessEvent;
|
|
pub use process::ExecProcessEventReceiver;
|
|
pub use process::StartedExecProcess;
|
|
pub use process_id::ProcessId;
|
|
pub use protocol::ExecClosedNotification;
|
|
pub use protocol::ExecEnvPolicy;
|
|
pub use protocol::ExecExitedNotification;
|
|
pub use protocol::ExecOutputDeltaNotification;
|
|
pub use protocol::ExecOutputStream;
|
|
pub use protocol::ExecParams;
|
|
pub use protocol::ExecResponse;
|
|
pub use protocol::FsCopyParams;
|
|
pub use protocol::FsCopyResponse;
|
|
pub use protocol::FsCreateDirectoryParams;
|
|
pub use protocol::FsCreateDirectoryResponse;
|
|
pub use protocol::FsGetMetadataParams;
|
|
pub use protocol::FsGetMetadataResponse;
|
|
pub use protocol::FsReadDirectoryEntry;
|
|
pub use protocol::FsReadDirectoryParams;
|
|
pub use protocol::FsReadDirectoryResponse;
|
|
pub use protocol::FsReadFileParams;
|
|
pub use protocol::FsReadFileResponse;
|
|
pub use protocol::FsRemoveParams;
|
|
pub use protocol::FsRemoveResponse;
|
|
pub use protocol::FsWriteFileParams;
|
|
pub use protocol::FsWriteFileResponse;
|
|
pub use protocol::HttpHeader;
|
|
pub use protocol::HttpRequestBodyDeltaNotification;
|
|
pub use protocol::HttpRequestParams;
|
|
pub use protocol::HttpRequestResponse;
|
|
pub use protocol::InitializeParams;
|
|
pub use protocol::InitializeResponse;
|
|
pub use protocol::ProcessOutputChunk;
|
|
pub use protocol::ReadParams;
|
|
pub use protocol::ReadResponse;
|
|
pub use protocol::TerminateParams;
|
|
pub use protocol::TerminateResponse;
|
|
pub use protocol::WriteParams;
|
|
pub use protocol::WriteResponse;
|
|
pub use protocol::WriteStatus;
|
|
pub use runtime_paths::ExecServerRuntimePaths;
|
|
pub use server::DEFAULT_LISTEN_URL;
|
|
pub use server::ExecServerListenUrlParseError;
|
|
pub use server::run_main;
|