mirror of
https://github.com/openai/codex.git
synced 2026-11-12 21:20:34 +00:00
## Summary - add an `EncodedFrame` type so IPC payloads are serialized and size-checked before entering bounded queues - add the V1 `operation/cancel` client-to-host message - pin the new wire shape with protocol tests ## Why The process-owned code-mode host needs bounded, pre-encoded outbound messages and a best-effort cancellation signal. Keeping these wire primitives in a protocol-only change lets their compatibility contract be reviewed independently from either endpoint. ## Stack This is **1 of 4** in the process-owned code-mode session stack. The next PR targets this branch. ## Validation - `just test -p codex-code-mode-protocol` — 22 passed - `just fix -p codex-code-mode-protocol` - `just fmt`
58 lines
1.7 KiB
Rust
58 lines
1.7 KiB
Rust
//! Messages and local IPC framing for the code-mode host boundary.
|
|
//!
|
|
//! Protocol version 1 multiplexes session operations and delegate callbacks by
|
|
//! request ID over one ordered connection. It defines no optional capabilities
|
|
//! yet; capability names provide an extension point for later versions without
|
|
//! weakening the v1 decoder.
|
|
|
|
mod codec;
|
|
mod error;
|
|
mod message;
|
|
mod payload;
|
|
mod types;
|
|
|
|
pub use codec::EncodedFrame;
|
|
pub use codec::FramedReader;
|
|
pub use codec::FramedWriter;
|
|
pub use codec::MAX_FRAME_BYTES;
|
|
pub use error::HandshakeRejectReason;
|
|
pub use message::ClientHello;
|
|
pub use message::ClientHelloError;
|
|
pub use message::ClientToHost;
|
|
pub use message::DelegateRequest;
|
|
pub use message::DelegateResponse;
|
|
pub use message::HostHello;
|
|
pub use message::HostRequest;
|
|
pub use message::HostResponse;
|
|
pub use message::HostToClient;
|
|
pub use message::WireResult;
|
|
pub use payload::WireCellId;
|
|
pub use payload::WireContentItem;
|
|
pub use payload::WireExecuteRequest;
|
|
pub use payload::WireImageDetail;
|
|
pub use payload::WireNestedToolCall;
|
|
pub use payload::WireRuntimeResponse;
|
|
pub use payload::WireToolDefinition;
|
|
pub use payload::WireToolKind;
|
|
pub use payload::WireToolName;
|
|
pub use payload::WireWaitOutcome;
|
|
pub use payload::WireWaitRequest;
|
|
pub use types::Capability;
|
|
pub use types::CapabilitySet;
|
|
pub use types::DelegateRequestId;
|
|
pub use types::DuplicateCapability;
|
|
pub use types::InvalidIdentifier;
|
|
pub use types::InvalidSupportedProtocolVersions;
|
|
pub use types::ProtocolVersion;
|
|
pub use types::RequestId;
|
|
pub use types::SessionId;
|
|
pub use types::SupportedProtocolVersions;
|
|
|
|
#[cfg(test)]
|
|
#[path = "host_tests.rs"]
|
|
mod tests;
|
|
|
|
#[cfg(test)]
|
|
#[path = "codec_tests.rs"]
|
|
mod codec_tests;
|