diff --git a/codex-rs/app-server-protocol/src/protocol/v2/thread.rs b/codex-rs/app-server-protocol/src/protocol/v2/thread.rs index 059bef05f2..49ae9539cc 100644 --- a/codex-rs/app-server-protocol/src/protocol/v2/thread.rs +++ b/codex-rs/app-server-protocol/src/protocol/v2/thread.rs @@ -9,6 +9,7 @@ use super::ThreadSource; use super::Turn; use super::TurnEnvironmentParams; use super::TurnItemsView; +use super::TurnStartParams; use super::shared::v2_enum_from_core; use codex_experimental_api_macros::ExperimentalApi; use codex_protocol::config_types::Personality; @@ -19,6 +20,8 @@ use codex_protocol::protocol::TokenUsage as CoreTokenUsage; use codex_protocol::protocol::TokenUsageInfo as CoreTokenUsageInfo; use codex_utils_absolute_path::AbsolutePathBuf; use schemars::JsonSchema; +use schemars::r#gen::SchemaGenerator; +use schemars::schema::Schema; use serde::Deserialize; use serde::Serialize; use serde_json::Value as JsonValue; @@ -659,6 +662,27 @@ pub struct ThreadGoalClearResponse { pub cleared: bool, } +#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)] +#[serde(rename_all = "camelCase")] +#[ts(export_to = "v2/")] +pub struct ThreadQueueAddParams { + pub thread_id: String, + #[schemars(with = "QueuedTurnStartParamsSchema")] + pub turn_start_params: TurnStartParams, +} + +struct QueuedTurnStartParamsSchema; + +impl JsonSchema for QueuedTurnStartParamsSchema { + fn schema_name() -> String { + "QueuedTurnStartParams".to_string() + } + + fn json_schema(generator: &mut SchemaGenerator) -> Schema { + TurnStartParams::json_schema(generator) + } +} + #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)] #[serde(rename_all = "camelCase")] #[ts(export_to = "v2/")]