#![allow(missing_docs)]
#[allow(unused_imports)]
use crate::common::{AnyValue, JsonObject, StringOrMarkdown, Uri};
#[allow(unused_imports)]
use serde::{Deserialize, Serialize};
#[allow(unused_imports)]
use serde_repr::{Deserialize_repr, Serialize_repr};
#[allow(unused_imports)]
use crate::state::{
AgentInfo, AgentSelection, Annotation, AnnotationEntry, Changeset, ChangesetFile,
ChangesetOperation, ChangesetOperationStatus, ChangesetStatus, ChatInputAnswer,
ChatInputRequest, ChatInputResponseKind, ChatInteractivity, ChatOrigin, ChatSummary,
ConfirmationOption, Customization, ErrorInfo, McpServerState, Message, ModelSelection,
PendingMessageKind, ResponsePart, SessionActiveClient, SessionInputRequest, TerminalClaim,
TerminalInfo, TextRange, ToolCallCancellationReason, ToolCallConfirmationReason,
ToolCallContributor, ToolCallResult, ToolDefinition, ToolResultContent, Turn, UsageInfo,
};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ActionType {
#[serde(rename = "root/agentsChanged")]
RootAgentsChanged,
#[serde(rename = "root/activeSessionsChanged")]
RootActiveSessionsChanged,
#[serde(rename = "session/ready")]
SessionReady,
#[serde(rename = "session/creationFailed")]
SessionCreationFailed,
#[serde(rename = "session/chatAdded")]
SessionChatAdded,
#[serde(rename = "session/chatRemoved")]
SessionChatRemoved,
#[serde(rename = "session/chatUpdated")]
SessionChatUpdated,
#[serde(rename = "session/defaultChatChanged")]
SessionDefaultChatChanged,
#[serde(rename = "chat/turnStarted")]
ChatTurnStarted,
#[serde(rename = "chat/delta")]
ChatDelta,
#[serde(rename = "chat/responsePart")]
ChatResponsePart,
#[serde(rename = "chat/toolCallStart")]
ChatToolCallStart,
#[serde(rename = "chat/toolCallDelta")]
ChatToolCallDelta,
#[serde(rename = "chat/toolCallReady")]
ChatToolCallReady,
#[serde(rename = "chat/toolCallConfirmed")]
ChatToolCallConfirmed,
#[serde(rename = "chat/toolCallComplete")]
ChatToolCallComplete,
#[serde(rename = "chat/toolCallResultConfirmed")]
ChatToolCallResultConfirmed,
#[serde(rename = "chat/toolCallContentChanged")]
ChatToolCallContentChanged,
#[serde(rename = "chat/turnComplete")]
ChatTurnComplete,
#[serde(rename = "chat/turnCancelled")]
ChatTurnCancelled,
#[serde(rename = "chat/error")]
ChatError,
#[serde(rename = "chat/activityChanged")]
ChatActivityChanged,
#[serde(rename = "session/titleChanged")]
SessionTitleChanged,
#[serde(rename = "chat/usage")]
ChatUsage,
#[serde(rename = "chat/reasoning")]
ChatReasoning,
#[serde(rename = "session/serverToolsChanged")]
SessionServerToolsChanged,
#[serde(rename = "session/activeClientSet")]
SessionActiveClientSet,
#[serde(rename = "session/activeClientRemoved")]
SessionActiveClientRemoved,
#[serde(rename = "session/inputNeededSet")]
SessionInputNeededSet,
#[serde(rename = "session/inputNeededRemoved")]
SessionInputNeededRemoved,
#[serde(rename = "chat/pendingMessageSet")]
ChatPendingMessageSet,
#[serde(rename = "chat/pendingMessageRemoved")]
ChatPendingMessageRemoved,
#[serde(rename = "chat/queuedMessagesReordered")]
ChatQueuedMessagesReordered,
#[serde(rename = "chat/draftChanged")]
ChatDraftChanged,
#[serde(rename = "chat/inputRequested")]
ChatInputRequested,
#[serde(rename = "chat/inputAnswerChanged")]
ChatInputAnswerChanged,
#[serde(rename = "chat/inputCompleted")]
ChatInputCompleted,
#[serde(rename = "session/customizationsChanged")]
SessionCustomizationsChanged,
#[serde(rename = "session/customizationToggled")]
SessionCustomizationToggled,
#[serde(rename = "session/customizationUpdated")]
SessionCustomizationUpdated,
#[serde(rename = "session/customizationRemoved")]
SessionCustomizationRemoved,
#[serde(rename = "session/mcpServerStateChanged")]
SessionMcpServerStateChanged,
#[serde(rename = "session/mcpServerStartRequested")]
SessionMcpServerStartRequested,
#[serde(rename = "session/mcpServerStopRequested")]
SessionMcpServerStopRequested,
#[serde(rename = "chat/truncated")]
ChatTruncated,
#[serde(rename = "chat/turnsLoaded")]
ChatTurnsLoaded,
#[serde(rename = "session/isReadChanged")]
SessionIsReadChanged,
#[serde(rename = "session/isArchivedChanged")]
SessionIsArchivedChanged,
#[serde(rename = "session/activityChanged")]
SessionActivityChanged,
#[serde(rename = "session/changesetsChanged")]
SessionChangesetsChanged,
#[serde(rename = "session/configChanged")]
SessionConfigChanged,
#[serde(rename = "session/metaChanged")]
SessionMetaChanged,
#[serde(rename = "changeset/statusChanged")]
ChangesetStatusChanged,
#[serde(rename = "changeset/fileSet")]
ChangesetFileSet,
#[serde(rename = "changeset/fileRemoved")]
ChangesetFileRemoved,
#[serde(rename = "changeset/filesReviewedChanged")]
ChangesetFilesReviewedChanged,
#[serde(rename = "changeset/contentChanged")]
ChangesetContentChanged,
#[serde(rename = "changeset/operationsChanged")]
ChangesetOperationsChanged,
#[serde(rename = "changeset/operationStatusChanged")]
ChangesetOperationStatusChanged,
#[serde(rename = "changeset/cleared")]
ChangesetCleared,
#[serde(rename = "annotations/set")]
AnnotationsSet,
#[serde(rename = "annotations/updated")]
AnnotationsUpdated,
#[serde(rename = "annotations/removed")]
AnnotationsRemoved,
#[serde(rename = "annotations/entrySet")]
AnnotationsEntrySet,
#[serde(rename = "annotations/entryRemoved")]
AnnotationsEntryRemoved,
#[serde(rename = "root/terminalsChanged")]
RootTerminalsChanged,
#[serde(rename = "root/configChanged")]
RootConfigChanged,
#[serde(rename = "terminal/data")]
TerminalData,
#[serde(rename = "terminal/input")]
TerminalInput,
#[serde(rename = "terminal/resized")]
TerminalResized,
#[serde(rename = "terminal/claimed")]
TerminalClaimed,
#[serde(rename = "terminal/titleChanged")]
TerminalTitleChanged,
#[serde(rename = "terminal/cwdChanged")]
TerminalCwdChanged,
#[serde(rename = "terminal/exited")]
TerminalExited,
#[serde(rename = "terminal/cleared")]
TerminalCleared,
#[serde(rename = "terminal/commandDetectionAvailable")]
TerminalCommandDetectionAvailable,
#[serde(rename = "terminal/commandExecuted")]
TerminalCommandExecuted,
#[serde(rename = "terminal/commandFinished")]
TerminalCommandFinished,
#[serde(rename = "resourceWatch/changed")]
ResourceWatchChanged,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ActionOrigin {
pub client_id: String,
pub client_seq: i64,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ActionEnvelope {
pub channel: Uri,
pub action: StateAction,
pub server_seq: u64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub origin: Option<ActionOrigin>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rejection_reason: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RootAgentsChangedAction {
pub agents: Vec<AgentInfo>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RootActiveSessionsChangedAction {
pub active_sessions: i64,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RootConfigChangedAction {
pub config: JsonObject,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub replace: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionReadyAction {}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionCreationFailedAction {
pub error: ErrorInfo,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionChatAddedAction {
pub summary: ChatSummary,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionChatRemovedAction {
pub chat: Uri,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionChatUpdatedAction {
pub chat: Uri,
pub changes: PartialChatSummary,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SessionDefaultChatChangedAction {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub default_chat: Option<Uri>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatTurnStartedAction {
pub turn_id: String,
pub message: Message,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub queued_message_id: Option<String>,
#[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<JsonObject>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatDeltaAction {
pub turn_id: String,
pub part_id: String,
pub content: String,
#[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<JsonObject>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatResponsePartAction {
pub turn_id: String,
pub part: ResponsePart,
#[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<JsonObject>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatToolCallStartAction {
pub turn_id: String,
pub tool_call_id: String,
#[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<JsonObject>,
pub tool_name: String,
pub display_name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub intention: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub contributor: Option<ToolCallContributor>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatToolCallDeltaAction {
pub turn_id: String,
pub tool_call_id: String,
#[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<JsonObject>,
pub content: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub invocation_message: Option<StringOrMarkdown>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatToolCallReadyAction {
pub turn_id: String,
pub tool_call_id: String,
#[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<JsonObject>,
pub invocation_message: StringOrMarkdown,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tool_input: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub confirmation_title: Option<StringOrMarkdown>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub edits: Option<AnyValue>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub editable: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub confirmed: Option<ToolCallConfirmationReason>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub options: Option<Vec<ConfirmationOption>>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatToolCallConfirmedAction {
pub turn_id: String,
pub tool_call_id: String,
#[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<JsonObject>,
pub approved: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub confirmed: Option<ToolCallConfirmationReason>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<ToolCallCancellationReason>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub edited_tool_input: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user_suggestion: Option<Message>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason_message: Option<StringOrMarkdown>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selected_option_id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatToolCallCompleteAction {
pub turn_id: String,
pub tool_call_id: String,
#[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<JsonObject>,
pub result: ToolCallResult,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requires_result_confirmation: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatToolCallResultConfirmedAction {
pub turn_id: String,
pub tool_call_id: String,
#[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<JsonObject>,
pub approved: bool,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatToolCallContentChangedAction {
pub turn_id: String,
pub tool_call_id: String,
#[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<JsonObject>,
pub content: Vec<ToolResultContent>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatTurnCompleteAction {
pub turn_id: String,
#[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<JsonObject>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatTurnCancelledAction {
pub turn_id: String,
#[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<JsonObject>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatErrorAction {
pub turn_id: String,
pub error: ErrorInfo,
#[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<JsonObject>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ChatActivityChangedAction {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub activity: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionTitleChangedAction {
pub title: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatUsageAction {
pub turn_id: String,
pub usage: UsageInfo,
#[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<JsonObject>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatReasoningAction {
pub turn_id: String,
pub part_id: String,
pub content: String,
#[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<JsonObject>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionIsReadChangedAction {
pub is_read: bool,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionIsArchivedChangedAction {
pub is_archived: bool,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SessionActivityChangedAction {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub activity: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SessionChangesetsChangedAction {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub changesets: Option<Vec<Changeset>>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionServerToolsChangedAction {
pub tools: Vec<ToolDefinition>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionActiveClientSetAction {
pub active_client: SessionActiveClient,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionActiveClientRemovedAction {
pub client_id: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionInputNeededSetAction {
pub request: SessionInputRequest,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionInputNeededRemovedAction {
pub id: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatPendingMessageSetAction {
pub kind: PendingMessageKind,
pub id: String,
pub message: Message,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatPendingMessageRemovedAction {
pub kind: PendingMessageKind,
pub id: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatQueuedMessagesReorderedAction {
pub order: Vec<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ChatDraftChangedAction {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub draft: Option<Message>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatInputRequestedAction {
pub request: ChatInputRequest,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatInputAnswerChangedAction {
pub request_id: String,
pub question_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub answer: Option<ChatInputAnswer>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatInputCompletedAction {
pub request_id: String,
pub response: ChatInputResponseKind,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub answers: Option<std::collections::HashMap<String, ChatInputAnswer>>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionCustomizationsChangedAction {
pub customizations: Vec<Customization>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionCustomizationToggledAction {
pub id: String,
pub enabled: bool,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionCustomizationUpdatedAction {
pub customization: Customization,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionCustomizationRemovedAction {
pub id: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionMcpServerStateChangedAction {
pub id: String,
pub state: McpServerState,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub channel: Option<Uri>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionMcpServerStartRequestedAction {
pub id: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionMcpServerStopRequestedAction {
pub id: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ChatTruncatedAction {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub turn_id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatTurnsLoadedAction {
pub turns: Vec<Turn>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub turns_next_cursor: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionConfigChangedAction {
pub config: JsonObject,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub replace: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SessionMetaChangedAction {
#[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<JsonObject>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChangesetStatusChangedAction {
pub status: ChangesetStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<ErrorInfo>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChangesetFileSetAction {
pub file: ChangesetFile,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChangesetFileRemovedAction {
pub file_id: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChangesetFilesReviewedChangedAction {
pub file_ids: Vec<String>,
pub reviewed: bool,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChangesetContentChangedAction {
pub files: Vec<ChangesetFile>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub operations: Option<Vec<ChangesetOperation>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<ErrorInfo>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ChangesetOperationsChangedAction {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub operations: Option<Vec<ChangesetOperation>>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChangesetOperationStatusChangedAction {
pub operation_id: String,
pub status: ChangesetOperationStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<ErrorInfo>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChangesetClearedAction {}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AnnotationsSetAction {
pub annotation: Annotation,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AnnotationsUpdatedAction {
pub annotation_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub turn_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource: Option<Uri>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub range: Option<TextRange>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resolved: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AnnotationsRemovedAction {
pub annotation_id: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AnnotationsEntrySetAction {
pub annotation_id: String,
pub entry: AnnotationEntry,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AnnotationsEntryRemovedAction {
pub annotation_id: String,
pub entry_id: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RootTerminalsChangedAction {
pub terminals: Vec<TerminalInfo>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminalDataAction {
pub data: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminalInputAction {
pub data: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminalResizedAction {
pub cols: i64,
pub rows: i64,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminalClaimedAction {
pub claim: TerminalClaim,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminalTitleChangedAction {
pub title: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminalCwdChangedAction {
pub cwd: Uri,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct TerminalExitedAction {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exit_code: Option<i64>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminalClearedAction {}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminalCommandDetectionAvailableAction {}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminalCommandExecutedAction {
pub command_id: String,
pub command_line: String,
pub timestamp: i64,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminalCommandFinishedAction {
pub command_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exit_code: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub duration_ms: Option<i64>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ResourceWatchChangedAction {
pub changes: AnyValue,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct PartialChatSummary {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource: Option<Uri>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub activity: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub origin: Option<ChatOrigin>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub interactivity: Option<ChatInteractivity>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub working_directory: Option<Uri>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum StateAction {
#[serde(rename = "root/agentsChanged")]
RootAgentsChanged(RootAgentsChangedAction),
#[serde(rename = "root/activeSessionsChanged")]
RootActiveSessionsChanged(RootActiveSessionsChangedAction),
#[serde(rename = "root/configChanged")]
RootConfigChanged(RootConfigChangedAction),
#[serde(rename = "session/ready")]
SessionReady(SessionReadyAction),
#[serde(rename = "session/creationFailed")]
SessionCreationFailed(SessionCreationFailedAction),
#[serde(rename = "session/chatAdded")]
SessionChatAdded(SessionChatAddedAction),
#[serde(rename = "session/chatRemoved")]
SessionChatRemoved(SessionChatRemovedAction),
#[serde(rename = "session/chatUpdated")]
SessionChatUpdated(SessionChatUpdatedAction),
#[serde(rename = "session/defaultChatChanged")]
SessionDefaultChatChanged(SessionDefaultChatChangedAction),
#[serde(rename = "chat/turnStarted")]
ChatTurnStarted(ChatTurnStartedAction),
#[serde(rename = "chat/delta")]
ChatDelta(ChatDeltaAction),
#[serde(rename = "chat/responsePart")]
ChatResponsePart(ChatResponsePartAction),
#[serde(rename = "chat/toolCallStart")]
ChatToolCallStart(ChatToolCallStartAction),
#[serde(rename = "chat/toolCallDelta")]
ChatToolCallDelta(ChatToolCallDeltaAction),
#[serde(rename = "chat/toolCallReady")]
ChatToolCallReady(ChatToolCallReadyAction),
#[serde(rename = "chat/toolCallConfirmed")]
ChatToolCallConfirmed(ChatToolCallConfirmedAction),
#[serde(rename = "chat/toolCallComplete")]
ChatToolCallComplete(ChatToolCallCompleteAction),
#[serde(rename = "chat/toolCallResultConfirmed")]
ChatToolCallResultConfirmed(ChatToolCallResultConfirmedAction),
#[serde(rename = "chat/toolCallContentChanged")]
ChatToolCallContentChanged(ChatToolCallContentChangedAction),
#[serde(rename = "chat/turnComplete")]
ChatTurnComplete(ChatTurnCompleteAction),
#[serde(rename = "chat/turnCancelled")]
ChatTurnCancelled(ChatTurnCancelledAction),
#[serde(rename = "chat/error")]
ChatError(ChatErrorAction),
#[serde(rename = "chat/activityChanged")]
ChatActivityChanged(ChatActivityChangedAction),
#[serde(rename = "session/titleChanged")]
SessionTitleChanged(SessionTitleChangedAction),
#[serde(rename = "chat/usage")]
ChatUsage(ChatUsageAction),
#[serde(rename = "chat/reasoning")]
ChatReasoning(ChatReasoningAction),
#[serde(rename = "session/isReadChanged")]
SessionIsReadChanged(SessionIsReadChangedAction),
#[serde(rename = "session/isArchivedChanged")]
SessionIsArchivedChanged(SessionIsArchivedChangedAction),
#[serde(rename = "session/activityChanged")]
SessionActivityChanged(SessionActivityChangedAction),
#[serde(rename = "session/changesetsChanged")]
SessionChangesetsChanged(SessionChangesetsChangedAction),
#[serde(rename = "session/serverToolsChanged")]
SessionServerToolsChanged(SessionServerToolsChangedAction),
#[serde(rename = "session/activeClientSet")]
SessionActiveClientSet(SessionActiveClientSetAction),
#[serde(rename = "session/activeClientRemoved")]
SessionActiveClientRemoved(SessionActiveClientRemovedAction),
#[serde(rename = "session/inputNeededSet")]
SessionInputNeededSet(Box<SessionInputNeededSetAction>),
#[serde(rename = "session/inputNeededRemoved")]
SessionInputNeededRemoved(SessionInputNeededRemovedAction),
#[serde(rename = "chat/pendingMessageSet")]
ChatPendingMessageSet(ChatPendingMessageSetAction),
#[serde(rename = "chat/pendingMessageRemoved")]
ChatPendingMessageRemoved(ChatPendingMessageRemovedAction),
#[serde(rename = "chat/queuedMessagesReordered")]
ChatQueuedMessagesReordered(ChatQueuedMessagesReorderedAction),
#[serde(rename = "chat/draftChanged")]
ChatDraftChanged(ChatDraftChangedAction),
#[serde(rename = "chat/inputRequested")]
ChatInputRequested(ChatInputRequestedAction),
#[serde(rename = "chat/inputAnswerChanged")]
ChatInputAnswerChanged(ChatInputAnswerChangedAction),
#[serde(rename = "chat/inputCompleted")]
ChatInputCompleted(ChatInputCompletedAction),
#[serde(rename = "session/customizationsChanged")]
SessionCustomizationsChanged(SessionCustomizationsChangedAction),
#[serde(rename = "session/customizationToggled")]
SessionCustomizationToggled(SessionCustomizationToggledAction),
#[serde(rename = "session/customizationUpdated")]
SessionCustomizationUpdated(Box<SessionCustomizationUpdatedAction>),
#[serde(rename = "session/customizationRemoved")]
SessionCustomizationRemoved(SessionCustomizationRemovedAction),
#[serde(rename = "session/mcpServerStateChanged")]
SessionMcpServerStateChanged(Box<SessionMcpServerStateChangedAction>),
#[serde(rename = "session/mcpServerStartRequested")]
SessionMcpServerStartRequested(SessionMcpServerStartRequestedAction),
#[serde(rename = "session/mcpServerStopRequested")]
SessionMcpServerStopRequested(SessionMcpServerStopRequestedAction),
#[serde(rename = "chat/truncated")]
ChatTruncated(ChatTruncatedAction),
#[serde(rename = "chat/turnsLoaded")]
ChatTurnsLoaded(ChatTurnsLoadedAction),
#[serde(rename = "session/configChanged")]
SessionConfigChanged(SessionConfigChangedAction),
#[serde(rename = "session/metaChanged")]
SessionMetaChanged(SessionMetaChangedAction),
#[serde(rename = "changeset/statusChanged")]
ChangesetStatusChanged(ChangesetStatusChangedAction),
#[serde(rename = "changeset/fileSet")]
ChangesetFileSet(ChangesetFileSetAction),
#[serde(rename = "changeset/fileRemoved")]
ChangesetFileRemoved(ChangesetFileRemovedAction),
#[serde(rename = "changeset/filesReviewedChanged")]
ChangesetFilesReviewedChanged(ChangesetFilesReviewedChangedAction),
#[serde(rename = "changeset/contentChanged")]
ChangesetContentChanged(Box<ChangesetContentChangedAction>),
#[serde(rename = "changeset/operationsChanged")]
ChangesetOperationsChanged(ChangesetOperationsChangedAction),
#[serde(rename = "changeset/operationStatusChanged")]
ChangesetOperationStatusChanged(ChangesetOperationStatusChangedAction),
#[serde(rename = "changeset/cleared")]
ChangesetCleared(ChangesetClearedAction),
#[serde(rename = "annotations/set")]
AnnotationsSet(AnnotationsSetAction),
#[serde(rename = "annotations/updated")]
AnnotationsUpdated(AnnotationsUpdatedAction),
#[serde(rename = "annotations/removed")]
AnnotationsRemoved(AnnotationsRemovedAction),
#[serde(rename = "annotations/entrySet")]
AnnotationsEntrySet(AnnotationsEntrySetAction),
#[serde(rename = "annotations/entryRemoved")]
AnnotationsEntryRemoved(AnnotationsEntryRemovedAction),
#[serde(rename = "root/terminalsChanged")]
RootTerminalsChanged(RootTerminalsChangedAction),
#[serde(rename = "terminal/data")]
TerminalData(TerminalDataAction),
#[serde(rename = "terminal/input")]
TerminalInput(TerminalInputAction),
#[serde(rename = "terminal/resized")]
TerminalResized(TerminalResizedAction),
#[serde(rename = "terminal/claimed")]
TerminalClaimed(TerminalClaimedAction),
#[serde(rename = "terminal/titleChanged")]
TerminalTitleChanged(TerminalTitleChangedAction),
#[serde(rename = "terminal/cwdChanged")]
TerminalCwdChanged(TerminalCwdChangedAction),
#[serde(rename = "terminal/exited")]
TerminalExited(TerminalExitedAction),
#[serde(rename = "terminal/cleared")]
TerminalCleared(TerminalClearedAction),
#[serde(rename = "terminal/commandDetectionAvailable")]
TerminalCommandDetectionAvailable(TerminalCommandDetectionAvailableAction),
#[serde(rename = "terminal/commandExecuted")]
TerminalCommandExecuted(TerminalCommandExecutedAction),
#[serde(rename = "terminal/commandFinished")]
TerminalCommandFinished(TerminalCommandFinishedAction),
#[serde(rename = "resourceWatch/changed")]
ResourceWatchChanged(ResourceWatchChangedAction),
#[serde(untagged)]
Unknown(serde_json::Value),
}