Mcp protocol (#1715)
- Add typed MCP protocol surface in `codex-rs/mcp-server/src/mcp_protocol.rs` for `requests`, `responses`, and `notifications` - Requests: `NewConversation`, `Connect`, `SendUserMessage`, `GetConversations` - Message content parts: `Text`, `Image` (`ImageUrl`/`FileId`, optional `ImageDetail`), File (`Url`/`Id`/`inline Data`) - Responses: `ToolCallResponseEnvelope` with optional `isError` and `structuredContent` variants (`NewConversation`, `Connect`, `SendUserMessageAccepted`, `GetConversations`) - Notifications: `InitialState`, `ConnectionRevoked`, `CodexEvent`, `Cancelled` - Uniform `_meta` on `notifications` via `NotificationMeta` (`conversationId`, `requestId`) - Unit tests validate JSON wire shapes for key `requests`/`responses`/`notifications`
This commit is contained in:
1
codex-rs/Cargo.lock
generated
1
codex-rs/Cargo.lock
generated
@@ -822,6 +822,7 @@ dependencies = [
|
|||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"shlex",
|
"shlex",
|
||||||
|
"strum_macros 0.27.2",
|
||||||
"tempfile",
|
"tempfile",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-test",
|
"tokio-test",
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ pub enum HistoryPersistence {
|
|||||||
#[derive(Deserialize, Debug, Clone, PartialEq, Default)]
|
#[derive(Deserialize, Debug, Clone, PartialEq, Default)]
|
||||||
pub struct Tui {}
|
pub struct Tui {}
|
||||||
|
|
||||||
#[derive(Deserialize, Debug, Clone, Copy, PartialEq, Default)]
|
#[derive(Deserialize, Debug, Clone, Copy, PartialEq, Default, Serialize)]
|
||||||
#[serde(rename_all = "kebab-case")]
|
#[serde(rename_all = "kebab-case")]
|
||||||
pub enum SandboxMode {
|
pub enum SandboxMode {
|
||||||
#[serde(rename = "read-only")]
|
#[serde(rename = "read-only")]
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ tokio = { version = "1", features = [
|
|||||||
"signal",
|
"signal",
|
||||||
] }
|
] }
|
||||||
uuid = { version = "1", features = ["serde", "v4"] }
|
uuid = { version = "1", features = ["serde", "v4"] }
|
||||||
|
strum_macros = "0.27.2"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
assert_cmd = "2"
|
assert_cmd = "2"
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ mod codex_tool_config;
|
|||||||
mod codex_tool_runner;
|
mod codex_tool_runner;
|
||||||
mod exec_approval;
|
mod exec_approval;
|
||||||
mod json_to_toml;
|
mod json_to_toml;
|
||||||
|
mod mcp_protocol;
|
||||||
mod message_processor;
|
mod message_processor;
|
||||||
mod outgoing_message;
|
mod outgoing_message;
|
||||||
mod patch_approval;
|
mod patch_approval;
|
||||||
|
|||||||
1020
codex-rs/mcp-server/src/mcp_protocol.rs
Normal file
1020
codex-rs/mcp-server/src/mcp_protocol.rs
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user