diff --git a/server-rs/crates/shared-contracts/src/editor_agent.rs b/server-rs/crates/shared-contracts/src/editor_agent.rs index c3790a276..162b62e98 100644 --- a/server-rs/crates/shared-contracts/src/editor_agent.rs +++ b/server-rs/crates/shared-contracts/src/editor_agent.rs @@ -63,8 +63,9 @@ pub enum EditorAgentToolName { #[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq)] #[serde(rename_all = "snake_case")] -pub enum EditorAgentGenerationStatus { - Generating, +pub enum EditorAgentToolCallStatus { + PendingConfirmation, + Executing, Completed, Failed, } @@ -107,16 +108,12 @@ pub struct EditorAgentGeneratedImage { #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] #[serde(rename_all = "camelCase")] -pub struct EditorAgentGenerationRecord { - pub tool_call_id: String, - pub tool_name: EditorAgentToolName, +pub struct EditorAgentToolCall { + pub tool_name: String, #[serde(default)] - pub summary: Option, - #[serde(default)] - pub task_id: Option, - pub status: EditorAgentGenerationStatus, - #[serde(default)] - pub model: Option, + pub summary: String, + pub status: EditorAgentToolCallStatus, + pub args: serde_json::Value, #[serde(default)] pub images: Vec, #[serde(default)] @@ -128,13 +125,11 @@ pub struct EditorAgentGenerationRecord { pub struct EditorAgentMessage { pub id: String, pub role: EditorAgentMessageRole, - pub kind: EditorAgentMessageKind, pub text: String, #[serde(default)] pub attachments: Vec, - #[serde(default)] - pub generations: Vec, - pub status: EditorAgentMessageStatus, + // one tool call is inside one system message. + pub tool_call: Option, pub created_at: String, } @@ -143,8 +138,6 @@ pub struct EditorAgentMessage { pub struct EditorAgentConversationSummary { pub conversation_id: String, pub project_id: String, - pub title: String, - pub created_at: String, pub updated_at: String, } @@ -245,7 +238,7 @@ pub struct EditorAgentToolEvent { #[serde(default)] pub model: Option, #[serde(default)] - pub status: Option, + pub status: Option, #[serde(default)] pub error: Option, } @@ -308,7 +301,7 @@ mod tests { width: Some(1024), height: Some(768), }], - generations: vec![], + tool_calls: vec![], status: EditorAgentMessageStatus::Completed, created_at: "2026-07-03T00:00:00Z".to_string(), }], diff --git a/server-rs/crates/shared-contracts/src/lib.rs b/server-rs/crates/shared-contracts/src/lib.rs index 6298f0cc5..72b53b026 100644 --- a/server-rs/crates/shared-contracts/src/lib.rs +++ b/server-rs/crates/shared-contracts/src/lib.rs @@ -34,3 +34,4 @@ pub mod square_hole_works; pub mod story; pub mod visual_novel; pub mod wooden_fish; +pub mod editor_agent_new;