mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
## Summary Introduce a `CodeModeSession` interface for executing and managing code-mode cells. This moves cell lifecycle, callback delegation, termination, and shutdown behind a session abstraction, while continuing to use the existing in-process implementation, and the ability to implement an external process one behind this interface. A Codex session owns one `CodeModeSession`, which in turn owns its running cells and stored code-mode state. Each cell is represented to the caller as a `StartedCell`, exposing its cell ID and initial response. It also introduces a `CodeModeSessionDelegate` callback interface. A session uses the delegate to invoke nested host tools and emit notifications while a cell is running, allowing the runtime to communicate with its owning Codex session without depending directly on core turn handling. <img width="2121" height="1001" alt="image" src="https://github.com/user-attachments/assets/c349a819-2a59-485c-bda4-2caf68ac4c31" />
47 lines
1.7 KiB
Rust
47 lines
1.7 KiB
Rust
mod description;
|
|
mod response;
|
|
mod runtime;
|
|
mod service;
|
|
|
|
pub use description::CODE_MODE_PRAGMA_PREFIX;
|
|
pub use description::CodeModeToolKind;
|
|
pub use description::ToolDefinition;
|
|
pub use description::ToolNamespaceDescription;
|
|
pub use description::augment_tool_definition;
|
|
pub use description::build_exec_tool_description;
|
|
pub use description::build_wait_tool_description;
|
|
pub use description::is_code_mode_nested_tool;
|
|
pub use description::normalize_code_mode_identifier;
|
|
pub use description::parse_exec_source;
|
|
pub use description::render_code_mode_sample;
|
|
pub use description::render_json_schema_to_typescript;
|
|
pub use response::DEFAULT_IMAGE_DETAIL;
|
|
pub use response::FunctionCallOutputContentItem;
|
|
pub use response::ImageDetail;
|
|
pub use runtime::CodeModeNestedToolCall;
|
|
pub use runtime::DEFAULT_EXEC_YIELD_TIME_MS;
|
|
pub use runtime::DEFAULT_MAX_OUTPUT_TOKENS_PER_EXEC_CALL;
|
|
pub use runtime::DEFAULT_WAIT_YIELD_TIME_MS;
|
|
pub use runtime::ExecuteRequest;
|
|
pub use runtime::ExecuteToPendingOutcome;
|
|
pub use runtime::RuntimeResponse;
|
|
pub use runtime::WaitOutcome;
|
|
pub use runtime::WaitRequest;
|
|
pub use runtime::WaitToPendingOutcome;
|
|
pub use runtime::WaitToPendingRequest;
|
|
pub use service::CellId;
|
|
pub use service::CodeModeService;
|
|
pub use service::CodeModeSession;
|
|
pub use service::CodeModeSessionDelegate;
|
|
pub use service::CodeModeSessionProvider;
|
|
pub use service::CodeModeSessionProviderFuture;
|
|
pub use service::CodeModeSessionResultFuture;
|
|
pub use service::InProcessCodeModeSessionProvider;
|
|
pub use service::NoopCodeModeSessionDelegate;
|
|
pub use service::NotificationFuture;
|
|
pub use service::StartedCell;
|
|
pub use service::ToolInvocationFuture;
|
|
|
|
pub const PUBLIC_TOOL_NAME: &str = "exec";
|
|
pub const WAIT_TOOL_NAME: &str = "wait";
|