From 2fa740749ef64d24beb784c0b52c33fa60644a2a Mon Sep 17 00:00:00 2001 From: Roy Han Date: Wed, 11 Mar 2026 15:19:15 -0700 Subject: [PATCH] Replace item sandbox metadata with user message type metadata --- .../app-server-protocol/src/protocol/v2.rs | 32 ++++++++++++------- codex-rs/protocol/src/items.rs | 14 +++++--- 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/codex-rs/app-server-protocol/src/protocol/v2.rs b/codex-rs/app-server-protocol/src/protocol/v2.rs index 2d12f07547..16dd29331c 100644 --- a/codex-rs/app-server-protocol/src/protocol/v2.rs +++ b/codex-rs/app-server-protocol/src/protocol/v2.rs @@ -25,7 +25,7 @@ use codex_protocol::config_types::Verbosity; use codex_protocol::config_types::WebSearchMode; use codex_protocol::config_types::WebSearchToolConfig; use codex_protocol::items::AgentMessageContent as CoreAgentMessageContent; -use codex_protocol::items::ItemSandboxPolicy as CoreItemSandboxPolicy; +use codex_protocol::items::UserMessageType as CoreUserMessageType; use codex_protocol::items::TurnItem as CoreTurnItem; use codex_protocol::items::TurnItemMetadata as CoreTurnItemMetadata; use codex_protocol::mcp::Resource as McpResource; @@ -3799,18 +3799,26 @@ pub enum UserInput { #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, JsonSchema, TS)] #[serde(rename_all = "snake_case")] #[ts(rename_all = "snake_case", export_to = "v2/")] -pub enum ItemSandboxPolicy { - ReadOnly, - Sandbox, - FullAccess, +pub enum UserMessageType { + Prompt, + PromptSteering, + PromptQueued, + PromptWithIdeContext, + AgentsMdDefault, + AgentsMdCustom, + EnvironmentContext, } -impl From for ItemSandboxPolicy { - fn from(value: CoreItemSandboxPolicy) -> Self { +impl From for UserMessageType { + fn from(value: CoreUserMessageType) -> Self { match value { - CoreItemSandboxPolicy::ReadOnly => ItemSandboxPolicy::ReadOnly, - CoreItemSandboxPolicy::Sandbox => ItemSandboxPolicy::Sandbox, - CoreItemSandboxPolicy::FullAccess => ItemSandboxPolicy::FullAccess, + CoreUserMessageType::Prompt => UserMessageType::Prompt, + CoreUserMessageType::PromptSteering => UserMessageType::PromptSteering, + CoreUserMessageType::PromptQueued => UserMessageType::PromptQueued, + CoreUserMessageType::PromptWithIdeContext => UserMessageType::PromptWithIdeContext, + CoreUserMessageType::AgentsMdDefault => UserMessageType::AgentsMdDefault, + CoreUserMessageType::AgentsMdCustom => UserMessageType::AgentsMdCustom, + CoreUserMessageType::EnvironmentContext => UserMessageType::EnvironmentContext, } } } @@ -3820,13 +3828,13 @@ impl From for ItemSandboxPolicy { pub struct ItemMetadata { #[serde(default, skip_serializing_if = "Option::is_none")] #[ts(optional)] - pub sandbox_policy: Option, + pub user_message_type: Option, } impl From for ItemMetadata { fn from(value: CoreTurnItemMetadata) -> Self { Self { - sandbox_policy: value.sandbox_policy.map(Into::into), + user_message_type: value.user_message_type.map(Into::into), } } } diff --git a/codex-rs/protocol/src/items.rs b/codex-rs/protocol/src/items.rs index d72b5bcf25..cf8c28bca2 100644 --- a/codex-rs/protocol/src/items.rs +++ b/codex-rs/protocol/src/items.rs @@ -32,17 +32,21 @@ pub enum TurnItem { #[derive(Debug, Clone, Deserialize, Serialize, TS, JsonSchema, PartialEq, Eq)] #[serde(rename_all = "snake_case")] #[ts(rename_all = "snake_case")] -pub enum ItemSandboxPolicy { - ReadOnly, - Sandbox, - FullAccess, +pub enum UserMessageType { + Prompt, + PromptSteering, + PromptQueued, + PromptWithIdeContext, + AgentsMdDefault, + AgentsMdCustom, + EnvironmentContext, } #[derive(Debug, Clone, Default, Deserialize, Serialize, TS, JsonSchema, PartialEq, Eq)] pub struct TurnItemMetadata { #[serde(default, skip_serializing_if = "Option::is_none")] #[ts(optional)] - pub sandbox_policy: Option, + pub user_message_type: Option, } #[derive(Debug, Clone, Deserialize, Serialize, TS, JsonSchema)]