1#![allow(missing_docs)]
6
7#[allow(unused_imports)]
8use crate::common::{AnyValue, JsonObject, StringOrMarkdown, Uri};
9#[allow(unused_imports)]
10use serde::{Deserialize, Serialize};
11#[allow(unused_imports)]
12use serde_repr::{Deserialize_repr, Serialize_repr};
13
14use crate::state::{
15 AgentInfo, AgentSelection, ChangesetFile, ChangesetOperation, ChangesetStatus,
16 ChangesetSummary, ConfirmationOption, Customization, ErrorInfo, ModelSelection,
17 PendingMessageKind, ResponsePart, SessionActiveClient, SessionInputAnswer, SessionInputRequest,
18 SessionInputResponseKind, TerminalClaim, TerminalInfo, ToolCallCancellationReason,
19 ToolCallConfirmationReason, ToolCallResult, ToolDefinition, ToolResultContent, UsageInfo,
20 UserMessage,
21};
22
23#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
27pub enum ActionType {
28 #[serde(rename = "root/agentsChanged")]
29 RootAgentsChanged,
30 #[serde(rename = "root/activeSessionsChanged")]
31 RootActiveSessionsChanged,
32 #[serde(rename = "session/ready")]
33 SessionReady,
34 #[serde(rename = "session/creationFailed")]
35 SessionCreationFailed,
36 #[serde(rename = "session/turnStarted")]
37 SessionTurnStarted,
38 #[serde(rename = "session/delta")]
39 SessionDelta,
40 #[serde(rename = "session/responsePart")]
41 SessionResponsePart,
42 #[serde(rename = "session/toolCallStart")]
43 SessionToolCallStart,
44 #[serde(rename = "session/toolCallDelta")]
45 SessionToolCallDelta,
46 #[serde(rename = "session/toolCallReady")]
47 SessionToolCallReady,
48 #[serde(rename = "session/toolCallConfirmed")]
49 SessionToolCallConfirmed,
50 #[serde(rename = "session/toolCallComplete")]
51 SessionToolCallComplete,
52 #[serde(rename = "session/toolCallResultConfirmed")]
53 SessionToolCallResultConfirmed,
54 #[serde(rename = "session/toolCallContentChanged")]
55 SessionToolCallContentChanged,
56 #[serde(rename = "session/turnComplete")]
57 SessionTurnComplete,
58 #[serde(rename = "session/turnCancelled")]
59 SessionTurnCancelled,
60 #[serde(rename = "session/error")]
61 SessionError,
62 #[serde(rename = "session/titleChanged")]
63 SessionTitleChanged,
64 #[serde(rename = "session/usage")]
65 SessionUsage,
66 #[serde(rename = "session/reasoning")]
67 SessionReasoning,
68 #[serde(rename = "session/modelChanged")]
69 SessionModelChanged,
70 #[serde(rename = "session/agentChanged")]
71 SessionAgentChanged,
72 #[serde(rename = "session/serverToolsChanged")]
73 SessionServerToolsChanged,
74 #[serde(rename = "session/activeClientChanged")]
75 SessionActiveClientChanged,
76 #[serde(rename = "session/activeClientToolsChanged")]
77 SessionActiveClientToolsChanged,
78 #[serde(rename = "session/pendingMessageSet")]
79 SessionPendingMessageSet,
80 #[serde(rename = "session/pendingMessageRemoved")]
81 SessionPendingMessageRemoved,
82 #[serde(rename = "session/queuedMessagesReordered")]
83 SessionQueuedMessagesReordered,
84 #[serde(rename = "session/inputRequested")]
85 SessionInputRequested,
86 #[serde(rename = "session/inputAnswerChanged")]
87 SessionInputAnswerChanged,
88 #[serde(rename = "session/inputCompleted")]
89 SessionInputCompleted,
90 #[serde(rename = "session/customizationsChanged")]
91 SessionCustomizationsChanged,
92 #[serde(rename = "session/customizationToggled")]
93 SessionCustomizationToggled,
94 #[serde(rename = "session/customizationUpdated")]
95 SessionCustomizationUpdated,
96 #[serde(rename = "session/customizationRemoved")]
97 SessionCustomizationRemoved,
98 #[serde(rename = "session/truncated")]
99 SessionTruncated,
100 #[serde(rename = "session/isReadChanged")]
101 SessionIsReadChanged,
102 #[serde(rename = "session/isArchivedChanged")]
103 SessionIsArchivedChanged,
104 #[serde(rename = "session/activityChanged")]
105 SessionActivityChanged,
106 #[serde(rename = "session/changesetsChanged")]
107 SessionChangesetsChanged,
108 #[serde(rename = "session/configChanged")]
109 SessionConfigChanged,
110 #[serde(rename = "session/metaChanged")]
111 SessionMetaChanged,
112 #[serde(rename = "changeset/statusChanged")]
113 ChangesetStatusChanged,
114 #[serde(rename = "changeset/fileSet")]
115 ChangesetFileSet,
116 #[serde(rename = "changeset/fileRemoved")]
117 ChangesetFileRemoved,
118 #[serde(rename = "changeset/operationsChanged")]
119 ChangesetOperationsChanged,
120 #[serde(rename = "changeset/cleared")]
121 ChangesetCleared,
122 #[serde(rename = "root/terminalsChanged")]
123 RootTerminalsChanged,
124 #[serde(rename = "root/configChanged")]
125 RootConfigChanged,
126 #[serde(rename = "terminal/data")]
127 TerminalData,
128 #[serde(rename = "terminal/input")]
129 TerminalInput,
130 #[serde(rename = "terminal/resized")]
131 TerminalResized,
132 #[serde(rename = "terminal/claimed")]
133 TerminalClaimed,
134 #[serde(rename = "terminal/titleChanged")]
135 TerminalTitleChanged,
136 #[serde(rename = "terminal/cwdChanged")]
137 TerminalCwdChanged,
138 #[serde(rename = "terminal/exited")]
139 TerminalExited,
140 #[serde(rename = "terminal/cleared")]
141 TerminalCleared,
142 #[serde(rename = "terminal/commandDetectionAvailable")]
143 TerminalCommandDetectionAvailable,
144 #[serde(rename = "terminal/commandExecuted")]
145 TerminalCommandExecuted,
146 #[serde(rename = "terminal/commandFinished")]
147 TerminalCommandFinished,
148 #[serde(rename = "resourceWatch/changed")]
149 ResourceWatchChanged,
150}
151
152#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
156#[serde(rename_all = "camelCase")]
157pub struct ActionOrigin {
158 pub client_id: String,
159 pub client_seq: i64,
160}
161
162#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
170#[serde(rename_all = "camelCase")]
171pub struct ActionEnvelope {
172 pub channel: Uri,
174 pub action: StateAction,
175 pub server_seq: u64,
176 pub origin: Option<ActionOrigin>,
177 #[serde(default, skip_serializing_if = "Option::is_none")]
178 pub rejection_reason: Option<String>,
179}
180
181#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
185#[serde(rename_all = "camelCase")]
186pub struct RootAgentsChangedAction {
187 pub agents: Vec<AgentInfo>,
189}
190
191#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
193#[serde(rename_all = "camelCase")]
194pub struct RootActiveSessionsChangedAction {
195 pub active_sessions: i64,
197}
198
199#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
204#[serde(rename_all = "camelCase")]
205pub struct RootConfigChangedAction {
206 pub config: JsonObject,
208 #[serde(default, skip_serializing_if = "Option::is_none")]
210 pub replace: Option<bool>,
211}
212
213#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
215#[serde(rename_all = "camelCase")]
216pub struct SessionReadyAction {}
217
218#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
220#[serde(rename_all = "camelCase")]
221pub struct SessionCreationFailedAction {
222 pub error: ErrorInfo,
224}
225
226#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
228#[serde(rename_all = "camelCase")]
229pub struct SessionTurnStartedAction {
230 pub turn_id: String,
232 pub user_message: UserMessage,
234 #[serde(default, skip_serializing_if = "Option::is_none")]
236 pub queued_message_id: Option<String>,
237}
238
239#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
244#[serde(rename_all = "camelCase")]
245pub struct SessionDeltaAction {
246 pub turn_id: String,
248 pub part_id: String,
250 pub content: String,
252}
253
254#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
256#[serde(rename_all = "camelCase")]
257pub struct SessionResponsePartAction {
258 pub turn_id: String,
260 pub part: ResponsePart,
262}
263
264#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
270#[serde(rename_all = "camelCase")]
271pub struct SessionToolCallStartAction {
272 pub turn_id: String,
274 pub tool_call_id: String,
276 #[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
283 pub meta: Option<JsonObject>,
284 pub tool_name: String,
286 pub display_name: String,
288 #[serde(default, skip_serializing_if = "Option::is_none")]
291 pub tool_client_id: Option<String>,
292}
293
294#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
296#[serde(rename_all = "camelCase")]
297pub struct SessionToolCallDeltaAction {
298 pub turn_id: String,
300 pub tool_call_id: String,
302 #[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
309 pub meta: Option<JsonObject>,
310 pub content: String,
312 #[serde(default, skip_serializing_if = "Option::is_none")]
314 pub invocation_message: Option<StringOrMarkdown>,
315}
316
317#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
331#[serde(rename_all = "camelCase")]
332pub struct SessionToolCallReadyAction {
333 pub turn_id: String,
335 pub tool_call_id: String,
337 #[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
344 pub meta: Option<JsonObject>,
345 pub invocation_message: StringOrMarkdown,
347 #[serde(default, skip_serializing_if = "Option::is_none")]
349 pub tool_input: Option<String>,
350 #[serde(default, skip_serializing_if = "Option::is_none")]
352 pub confirmation_title: Option<StringOrMarkdown>,
353 #[serde(default, skip_serializing_if = "Option::is_none")]
355 pub edits: Option<AnyValue>,
356 #[serde(default, skip_serializing_if = "Option::is_none")]
358 pub editable: Option<bool>,
359 #[serde(default, skip_serializing_if = "Option::is_none")]
361 pub confirmed: Option<ToolCallConfirmationReason>,
362 #[serde(default, skip_serializing_if = "Option::is_none")]
367 pub options: Option<Vec<ConfirmationOption>>,
368}
369
370#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
372#[serde(rename_all = "camelCase")]
373pub struct SessionToolCallConfirmedAction {
374 pub turn_id: String,
375 pub tool_call_id: String,
376 #[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
378 pub meta: Option<JsonObject>,
379 pub approved: bool,
381 #[serde(default, skip_serializing_if = "Option::is_none")]
383 pub confirmed: Option<ToolCallConfirmationReason>,
384 #[serde(default, skip_serializing_if = "Option::is_none")]
386 pub reason: Option<ToolCallCancellationReason>,
387 #[serde(default, skip_serializing_if = "Option::is_none")]
389 pub edited_tool_input: Option<String>,
390 #[serde(default, skip_serializing_if = "Option::is_none")]
392 pub user_suggestion: Option<UserMessage>,
393 #[serde(default, skip_serializing_if = "Option::is_none")]
395 pub reason_message: Option<StringOrMarkdown>,
396 #[serde(default, skip_serializing_if = "Option::is_none")]
398 pub selected_option_id: Option<String>,
399}
400
401#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
412#[serde(rename_all = "camelCase")]
413pub struct SessionToolCallCompleteAction {
414 pub turn_id: String,
416 pub tool_call_id: String,
418 #[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
425 pub meta: Option<JsonObject>,
426 pub result: ToolCallResult,
428 #[serde(default, skip_serializing_if = "Option::is_none")]
430 pub requires_result_confirmation: Option<bool>,
431}
432
433#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
437#[serde(rename_all = "camelCase")]
438pub struct SessionToolCallResultConfirmedAction {
439 pub turn_id: String,
441 pub tool_call_id: String,
443 #[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
450 pub meta: Option<JsonObject>,
451 pub approved: bool,
453}
454
455#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
457#[serde(rename_all = "camelCase")]
458pub struct SessionTurnCompleteAction {
459 pub turn_id: String,
461}
462
463#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
465#[serde(rename_all = "camelCase")]
466pub struct SessionTurnCancelledAction {
467 pub turn_id: String,
469}
470
471#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
473#[serde(rename_all = "camelCase")]
474pub struct SessionErrorAction {
475 pub turn_id: String,
477 pub error: ErrorInfo,
479}
480
481#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
484#[serde(rename_all = "camelCase")]
485pub struct SessionTitleChangedAction {
486 pub title: String,
488}
489
490#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
492#[serde(rename_all = "camelCase")]
493pub struct SessionUsageAction {
494 pub turn_id: String,
496 pub usage: UsageInfo,
498}
499
500#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
505#[serde(rename_all = "camelCase")]
506pub struct SessionReasoningAction {
507 pub turn_id: String,
509 pub part_id: String,
511 pub content: String,
513}
514
515#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
517#[serde(rename_all = "camelCase")]
518pub struct SessionModelChangedAction {
519 pub model: ModelSelection,
521}
522
523#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
532#[serde(rename_all = "camelCase")]
533pub struct SessionAgentChangedAction {
534 #[serde(default, skip_serializing_if = "Option::is_none")]
537 pub agent: Option<AgentSelection>,
538}
539
540#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
545#[serde(rename_all = "camelCase")]
546pub struct SessionIsReadChangedAction {
547 pub is_read: bool,
549}
550
551#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
556#[serde(rename_all = "camelCase")]
557pub struct SessionIsArchivedChangedAction {
558 pub is_archived: bool,
560}
561
562#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
567#[serde(rename_all = "camelCase")]
568pub struct SessionActivityChangedAction {
569 #[serde(default, skip_serializing_if = "Option::is_none")]
571 pub activity: Option<String>,
572}
573
574#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
585#[serde(rename_all = "camelCase")]
586pub struct SessionChangesetsChangedAction {
587 #[serde(default, skip_serializing_if = "Option::is_none")]
589 pub changesets: Option<Vec<ChangesetSummary>>,
590}
591
592#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
596#[serde(rename_all = "camelCase")]
597pub struct SessionServerToolsChangedAction {
598 pub tools: Vec<ToolDefinition>,
600}
601
602#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
609#[serde(rename_all = "camelCase")]
610pub struct SessionActiveClientChangedAction {
611 #[serde(default, skip_serializing_if = "Option::is_none")]
613 pub active_client: Option<SessionActiveClient>,
614}
615
616#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
622#[serde(rename_all = "camelCase")]
623pub struct SessionActiveClientToolsChangedAction {
624 pub tools: Vec<ToolDefinition>,
626}
627
628#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
636#[serde(rename_all = "camelCase")]
637pub struct SessionPendingMessageSetAction {
638 pub kind: PendingMessageKind,
640 pub id: String,
642 pub user_message: UserMessage,
644}
645
646#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
652#[serde(rename_all = "camelCase")]
653pub struct SessionPendingMessageRemovedAction {
654 pub kind: PendingMessageKind,
656 pub id: String,
658}
659
660#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
668#[serde(rename_all = "camelCase")]
669pub struct SessionQueuedMessagesReorderedAction {
670 pub order: Vec<String>,
672}
673
674#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
680#[serde(rename_all = "camelCase")]
681pub struct SessionInputRequestedAction {
682 pub request: SessionInputRequest,
684}
685
686#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
690#[serde(rename_all = "camelCase")]
691pub struct SessionInputAnswerChangedAction {
692 pub request_id: String,
694 pub question_id: String,
696 #[serde(default, skip_serializing_if = "Option::is_none")]
698 pub answer: Option<SessionInputAnswer>,
699}
700
701#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
706#[serde(rename_all = "camelCase")]
707pub struct SessionInputCompletedAction {
708 pub request_id: String,
710 pub response: SessionInputResponseKind,
712 #[serde(default, skip_serializing_if = "Option::is_none")]
714 pub answers: Option<std::collections::HashMap<String, SessionInputAnswer>>,
715}
716
717#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
722#[serde(rename_all = "camelCase")]
723pub struct SessionCustomizationsChangedAction {
724 pub customizations: Vec<Customization>,
726}
727
728#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
735#[serde(rename_all = "camelCase")]
736pub struct SessionCustomizationToggledAction {
737 pub id: String,
739 pub enabled: bool,
741}
742
743#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
752#[serde(rename_all = "camelCase")]
753pub struct SessionCustomizationUpdatedAction {
754 pub customization: Customization,
756}
757
758#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
764#[serde(rename_all = "camelCase")]
765pub struct SessionCustomizationRemovedAction {
766 pub id: String,
768}
769
770#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
780#[serde(rename_all = "camelCase")]
781pub struct SessionTruncatedAction {
782 #[serde(default, skip_serializing_if = "Option::is_none")]
784 pub turn_id: Option<String>,
785}
786
787#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
793#[serde(rename_all = "camelCase")]
794pub struct SessionConfigChangedAction {
795 pub config: JsonObject,
797 #[serde(default, skip_serializing_if = "Option::is_none")]
799 pub replace: Option<bool>,
800}
801
802#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
806#[serde(rename_all = "camelCase")]
807pub struct SessionMetaChangedAction {
808 #[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
810 pub meta: Option<JsonObject>,
811}
812
813#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
824#[serde(rename_all = "camelCase")]
825pub struct SessionToolCallContentChangedAction {
826 pub turn_id: String,
828 pub tool_call_id: String,
830 #[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
837 pub meta: Option<JsonObject>,
838 pub content: Vec<ToolResultContent>,
840}
841
842#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
846#[serde(rename_all = "camelCase")]
847pub struct ChangesetStatusChangedAction {
848 pub status: ChangesetStatus,
850 #[serde(default, skip_serializing_if = "Option::is_none")]
852 pub error: Option<ErrorInfo>,
853}
854
855#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
858#[serde(rename_all = "camelCase")]
859pub struct ChangesetFileSetAction {
860 pub file: ChangesetFile,
862}
863
864#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
869#[serde(rename_all = "camelCase")]
870pub struct ChangesetFileRemovedAction {
871 pub file_id: String,
873}
874
875#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
879#[serde(rename_all = "camelCase")]
880pub struct ChangesetOperationsChangedAction {
881 #[serde(default, skip_serializing_if = "Option::is_none")]
883 pub operations: Option<Vec<ChangesetOperation>>,
884}
885
886#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
901#[serde(rename_all = "camelCase")]
902pub struct ChangesetClearedAction {}
903
904#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
909#[serde(rename_all = "camelCase")]
910pub struct RootTerminalsChangedAction {
911 pub terminals: Vec<TerminalInfo>,
913}
914
915#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
926#[serde(rename_all = "camelCase")]
927pub struct TerminalDataAction {
928 pub data: String,
930}
931
932#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
940#[serde(rename_all = "camelCase")]
941pub struct TerminalInputAction {
942 pub data: String,
944}
945
946#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
951#[serde(rename_all = "camelCase")]
952pub struct TerminalResizedAction {
953 pub cols: i64,
955 pub rows: i64,
957}
958
959#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
964#[serde(rename_all = "camelCase")]
965pub struct TerminalClaimedAction {
966 pub claim: TerminalClaim,
968}
969
970#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
975#[serde(rename_all = "camelCase")]
976pub struct TerminalTitleChangedAction {
977 pub title: String,
979}
980
981#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
983#[serde(rename_all = "camelCase")]
984pub struct TerminalCwdChangedAction {
985 pub cwd: Uri,
987}
988
989#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
991#[serde(rename_all = "camelCase")]
992pub struct TerminalExitedAction {
993 #[serde(default, skip_serializing_if = "Option::is_none")]
995 pub exit_code: Option<i64>,
996}
997
998#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1000#[serde(rename_all = "camelCase")]
1001pub struct TerminalClearedAction {}
1002
1003#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1010#[serde(rename_all = "camelCase")]
1011pub struct TerminalCommandDetectionAvailableAction {}
1012
1013#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1017#[serde(rename_all = "camelCase")]
1018pub struct TerminalCommandExecutedAction {
1019 pub command_id: String,
1022 pub command_line: String,
1024 pub timestamp: i64,
1027}
1028
1029#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1035#[serde(rename_all = "camelCase")]
1036pub struct TerminalCommandFinishedAction {
1037 pub command_id: String,
1039 #[serde(default, skip_serializing_if = "Option::is_none")]
1041 pub exit_code: Option<i64>,
1042 #[serde(default, skip_serializing_if = "Option::is_none")]
1045 pub duration_ms: Option<i64>,
1046}
1047
1048#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1056#[serde(rename_all = "camelCase")]
1057pub struct ResourceWatchChangedAction {
1058 pub changes: AnyValue,
1060}
1061
1062#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1066#[serde(tag = "type")]
1067pub enum StateAction {
1068 #[serde(rename = "root/agentsChanged")]
1069 RootAgentsChanged(RootAgentsChangedAction),
1070 #[serde(rename = "root/activeSessionsChanged")]
1071 RootActiveSessionsChanged(RootActiveSessionsChangedAction),
1072 #[serde(rename = "root/configChanged")]
1073 RootConfigChanged(RootConfigChangedAction),
1074 #[serde(rename = "session/ready")]
1075 SessionReady(SessionReadyAction),
1076 #[serde(rename = "session/creationFailed")]
1077 SessionCreationFailed(SessionCreationFailedAction),
1078 #[serde(rename = "session/turnStarted")]
1079 SessionTurnStarted(SessionTurnStartedAction),
1080 #[serde(rename = "session/delta")]
1081 SessionDelta(SessionDeltaAction),
1082 #[serde(rename = "session/responsePart")]
1083 SessionResponsePart(SessionResponsePartAction),
1084 #[serde(rename = "session/toolCallStart")]
1085 SessionToolCallStart(SessionToolCallStartAction),
1086 #[serde(rename = "session/toolCallDelta")]
1087 SessionToolCallDelta(SessionToolCallDeltaAction),
1088 #[serde(rename = "session/toolCallReady")]
1089 SessionToolCallReady(SessionToolCallReadyAction),
1090 #[serde(rename = "session/toolCallConfirmed")]
1091 SessionToolCallConfirmed(SessionToolCallConfirmedAction),
1092 #[serde(rename = "session/toolCallComplete")]
1093 SessionToolCallComplete(SessionToolCallCompleteAction),
1094 #[serde(rename = "session/toolCallResultConfirmed")]
1095 SessionToolCallResultConfirmed(SessionToolCallResultConfirmedAction),
1096 #[serde(rename = "session/turnComplete")]
1097 SessionTurnComplete(SessionTurnCompleteAction),
1098 #[serde(rename = "session/turnCancelled")]
1099 SessionTurnCancelled(SessionTurnCancelledAction),
1100 #[serde(rename = "session/error")]
1101 SessionError(SessionErrorAction),
1102 #[serde(rename = "session/titleChanged")]
1103 SessionTitleChanged(SessionTitleChangedAction),
1104 #[serde(rename = "session/usage")]
1105 SessionUsage(SessionUsageAction),
1106 #[serde(rename = "session/reasoning")]
1107 SessionReasoning(SessionReasoningAction),
1108 #[serde(rename = "session/modelChanged")]
1109 SessionModelChanged(SessionModelChangedAction),
1110 #[serde(rename = "session/agentChanged")]
1111 SessionAgentChanged(SessionAgentChangedAction),
1112 #[serde(rename = "session/isReadChanged")]
1113 SessionIsReadChanged(SessionIsReadChangedAction),
1114 #[serde(rename = "session/isArchivedChanged")]
1115 SessionIsArchivedChanged(SessionIsArchivedChangedAction),
1116 #[serde(rename = "session/activityChanged")]
1117 SessionActivityChanged(SessionActivityChangedAction),
1118 #[serde(rename = "session/changesetsChanged")]
1119 SessionChangesetsChanged(SessionChangesetsChangedAction),
1120 #[serde(rename = "session/serverToolsChanged")]
1121 SessionServerToolsChanged(SessionServerToolsChangedAction),
1122 #[serde(rename = "session/activeClientChanged")]
1123 SessionActiveClientChanged(SessionActiveClientChangedAction),
1124 #[serde(rename = "session/activeClientToolsChanged")]
1125 SessionActiveClientToolsChanged(SessionActiveClientToolsChangedAction),
1126 #[serde(rename = "session/pendingMessageSet")]
1127 SessionPendingMessageSet(SessionPendingMessageSetAction),
1128 #[serde(rename = "session/pendingMessageRemoved")]
1129 SessionPendingMessageRemoved(SessionPendingMessageRemovedAction),
1130 #[serde(rename = "session/queuedMessagesReordered")]
1131 SessionQueuedMessagesReordered(SessionQueuedMessagesReorderedAction),
1132 #[serde(rename = "session/inputRequested")]
1133 SessionInputRequested(SessionInputRequestedAction),
1134 #[serde(rename = "session/inputAnswerChanged")]
1135 SessionInputAnswerChanged(SessionInputAnswerChangedAction),
1136 #[serde(rename = "session/inputCompleted")]
1137 SessionInputCompleted(SessionInputCompletedAction),
1138 #[serde(rename = "session/customizationsChanged")]
1139 SessionCustomizationsChanged(SessionCustomizationsChangedAction),
1140 #[serde(rename = "session/customizationToggled")]
1141 SessionCustomizationToggled(SessionCustomizationToggledAction),
1142 #[serde(rename = "session/customizationUpdated")]
1143 SessionCustomizationUpdated(SessionCustomizationUpdatedAction),
1144 #[serde(rename = "session/customizationRemoved")]
1145 SessionCustomizationRemoved(SessionCustomizationRemovedAction),
1146 #[serde(rename = "session/truncated")]
1147 SessionTruncated(SessionTruncatedAction),
1148 #[serde(rename = "session/configChanged")]
1149 SessionConfigChanged(SessionConfigChangedAction),
1150 #[serde(rename = "session/metaChanged")]
1151 SessionMetaChanged(SessionMetaChangedAction),
1152 #[serde(rename = "session/toolCallContentChanged")]
1153 SessionToolCallContentChanged(SessionToolCallContentChangedAction),
1154 #[serde(rename = "changeset/statusChanged")]
1155 ChangesetStatusChanged(ChangesetStatusChangedAction),
1156 #[serde(rename = "changeset/fileSet")]
1157 ChangesetFileSet(ChangesetFileSetAction),
1158 #[serde(rename = "changeset/fileRemoved")]
1159 ChangesetFileRemoved(ChangesetFileRemovedAction),
1160 #[serde(rename = "changeset/operationsChanged")]
1161 ChangesetOperationsChanged(ChangesetOperationsChangedAction),
1162 #[serde(rename = "changeset/cleared")]
1163 ChangesetCleared(ChangesetClearedAction),
1164 #[serde(rename = "root/terminalsChanged")]
1165 RootTerminalsChanged(RootTerminalsChangedAction),
1166 #[serde(rename = "terminal/data")]
1167 TerminalData(TerminalDataAction),
1168 #[serde(rename = "terminal/input")]
1169 TerminalInput(TerminalInputAction),
1170 #[serde(rename = "terminal/resized")]
1171 TerminalResized(TerminalResizedAction),
1172 #[serde(rename = "terminal/claimed")]
1173 TerminalClaimed(TerminalClaimedAction),
1174 #[serde(rename = "terminal/titleChanged")]
1175 TerminalTitleChanged(TerminalTitleChangedAction),
1176 #[serde(rename = "terminal/cwdChanged")]
1177 TerminalCwdChanged(TerminalCwdChangedAction),
1178 #[serde(rename = "terminal/exited")]
1179 TerminalExited(TerminalExitedAction),
1180 #[serde(rename = "terminal/cleared")]
1181 TerminalCleared(TerminalClearedAction),
1182 #[serde(rename = "terminal/commandDetectionAvailable")]
1183 TerminalCommandDetectionAvailable(TerminalCommandDetectionAvailableAction),
1184 #[serde(rename = "terminal/commandExecuted")]
1185 TerminalCommandExecuted(TerminalCommandExecutedAction),
1186 #[serde(rename = "terminal/commandFinished")]
1187 TerminalCommandFinished(TerminalCommandFinishedAction),
1188 #[serde(rename = "resourceWatch/changed")]
1189 ResourceWatchChanged(ResourceWatchChangedAction),
1190 #[serde(untagged)]
1193 Unknown(serde_json::Value),
1194}