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, Changeset, ChangesetFile, ChangesetOperation,
16 ChangesetOperationStatus, ChangesetStatus, ConfirmationOption, Customization, ErrorInfo,
17 McpServerState, Message, ModelSelection, PendingMessageKind, ResponsePart, SessionActiveClient,
18 SessionInputAnswer, SessionInputRequest, SessionInputResponseKind, TerminalClaim, TerminalInfo,
19 ToolCallCancellationReason, ToolCallConfirmationReason, ToolCallContributor, ToolCallResult,
20 ToolDefinition, ToolResultContent, UsageInfo,
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/mcpServerStateChanged")]
99 SessionMcpServerStateChanged,
100 #[serde(rename = "session/truncated")]
101 SessionTruncated,
102 #[serde(rename = "session/isReadChanged")]
103 SessionIsReadChanged,
104 #[serde(rename = "session/isArchivedChanged")]
105 SessionIsArchivedChanged,
106 #[serde(rename = "session/activityChanged")]
107 SessionActivityChanged,
108 #[serde(rename = "session/changesetsChanged")]
109 SessionChangesetsChanged,
110 #[serde(rename = "session/configChanged")]
111 SessionConfigChanged,
112 #[serde(rename = "session/metaChanged")]
113 SessionMetaChanged,
114 #[serde(rename = "changeset/statusChanged")]
115 ChangesetStatusChanged,
116 #[serde(rename = "changeset/fileSet")]
117 ChangesetFileSet,
118 #[serde(rename = "changeset/fileRemoved")]
119 ChangesetFileRemoved,
120 #[serde(rename = "changeset/operationsChanged")]
121 ChangesetOperationsChanged,
122 #[serde(rename = "changeset/operationStatusChanged")]
123 ChangesetOperationStatusChanged,
124 #[serde(rename = "changeset/cleared")]
125 ChangesetCleared,
126 #[serde(rename = "root/terminalsChanged")]
127 RootTerminalsChanged,
128 #[serde(rename = "root/configChanged")]
129 RootConfigChanged,
130 #[serde(rename = "terminal/data")]
131 TerminalData,
132 #[serde(rename = "terminal/input")]
133 TerminalInput,
134 #[serde(rename = "terminal/resized")]
135 TerminalResized,
136 #[serde(rename = "terminal/claimed")]
137 TerminalClaimed,
138 #[serde(rename = "terminal/titleChanged")]
139 TerminalTitleChanged,
140 #[serde(rename = "terminal/cwdChanged")]
141 TerminalCwdChanged,
142 #[serde(rename = "terminal/exited")]
143 TerminalExited,
144 #[serde(rename = "terminal/cleared")]
145 TerminalCleared,
146 #[serde(rename = "terminal/commandDetectionAvailable")]
147 TerminalCommandDetectionAvailable,
148 #[serde(rename = "terminal/commandExecuted")]
149 TerminalCommandExecuted,
150 #[serde(rename = "terminal/commandFinished")]
151 TerminalCommandFinished,
152 #[serde(rename = "resourceWatch/changed")]
153 ResourceWatchChanged,
154}
155
156#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
160#[serde(rename_all = "camelCase")]
161pub struct ActionOrigin {
162 pub client_id: String,
163 pub client_seq: i64,
164}
165
166#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
174#[serde(rename_all = "camelCase")]
175pub struct ActionEnvelope {
176 pub channel: Uri,
178 pub action: StateAction,
179 pub server_seq: u64,
180 pub origin: Option<ActionOrigin>,
181 #[serde(default, skip_serializing_if = "Option::is_none")]
182 pub rejection_reason: Option<String>,
183}
184
185#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
189#[serde(rename_all = "camelCase")]
190pub struct RootAgentsChangedAction {
191 pub agents: Vec<AgentInfo>,
193}
194
195#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
197#[serde(rename_all = "camelCase")]
198pub struct RootActiveSessionsChangedAction {
199 pub active_sessions: i64,
201}
202
203#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
208#[serde(rename_all = "camelCase")]
209pub struct RootConfigChangedAction {
210 pub config: JsonObject,
212 #[serde(default, skip_serializing_if = "Option::is_none")]
214 pub replace: Option<bool>,
215}
216
217#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
219#[serde(rename_all = "camelCase")]
220pub struct SessionReadyAction {}
221
222#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
224#[serde(rename_all = "camelCase")]
225pub struct SessionCreationFailedAction {
226 pub error: ErrorInfo,
228}
229
230#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
234#[serde(rename_all = "camelCase")]
235pub struct SessionTurnStartedAction {
236 pub turn_id: String,
238 pub message: Message,
240 #[serde(default, skip_serializing_if = "Option::is_none")]
242 pub queued_message_id: Option<String>,
243}
244
245#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
250#[serde(rename_all = "camelCase")]
251pub struct SessionDeltaAction {
252 pub turn_id: String,
254 pub part_id: String,
256 pub content: String,
258}
259
260#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
262#[serde(rename_all = "camelCase")]
263pub struct SessionResponsePartAction {
264 pub turn_id: String,
266 pub part: ResponsePart,
268}
269
270#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
278#[serde(rename_all = "camelCase")]
279pub struct SessionToolCallStartAction {
280 pub turn_id: String,
282 pub tool_call_id: String,
284 #[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
291 pub meta: Option<JsonObject>,
292 pub tool_name: String,
294 pub display_name: String,
296 #[serde(default, skip_serializing_if = "Option::is_none")]
299 pub contributor: Option<ToolCallContributor>,
300}
301
302#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
304#[serde(rename_all = "camelCase")]
305pub struct SessionToolCallDeltaAction {
306 pub turn_id: String,
308 pub tool_call_id: String,
310 #[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
317 pub meta: Option<JsonObject>,
318 pub content: String,
320 #[serde(default, skip_serializing_if = "Option::is_none")]
322 pub invocation_message: Option<StringOrMarkdown>,
323}
324
325#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
339#[serde(rename_all = "camelCase")]
340pub struct SessionToolCallReadyAction {
341 pub turn_id: String,
343 pub tool_call_id: String,
345 #[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
352 pub meta: Option<JsonObject>,
353 pub invocation_message: StringOrMarkdown,
355 #[serde(default, skip_serializing_if = "Option::is_none")]
357 pub tool_input: Option<String>,
358 #[serde(default, skip_serializing_if = "Option::is_none")]
360 pub confirmation_title: Option<StringOrMarkdown>,
361 #[serde(default, skip_serializing_if = "Option::is_none")]
363 pub edits: Option<AnyValue>,
364 #[serde(default, skip_serializing_if = "Option::is_none")]
366 pub editable: Option<bool>,
367 #[serde(default, skip_serializing_if = "Option::is_none")]
369 pub confirmed: Option<ToolCallConfirmationReason>,
370 #[serde(default, skip_serializing_if = "Option::is_none")]
375 pub options: Option<Vec<ConfirmationOption>>,
376}
377
378#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
380#[serde(rename_all = "camelCase")]
381pub struct SessionToolCallConfirmedAction {
382 pub turn_id: String,
383 pub tool_call_id: String,
384 #[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
386 pub meta: Option<JsonObject>,
387 pub approved: bool,
389 #[serde(default, skip_serializing_if = "Option::is_none")]
391 pub confirmed: Option<ToolCallConfirmationReason>,
392 #[serde(default, skip_serializing_if = "Option::is_none")]
394 pub reason: Option<ToolCallCancellationReason>,
395 #[serde(default, skip_serializing_if = "Option::is_none")]
397 pub edited_tool_input: Option<String>,
398 #[serde(default, skip_serializing_if = "Option::is_none")]
400 pub user_suggestion: Option<Message>,
401 #[serde(default, skip_serializing_if = "Option::is_none")]
403 pub reason_message: Option<StringOrMarkdown>,
404 #[serde(default, skip_serializing_if = "Option::is_none")]
406 pub selected_option_id: Option<String>,
407}
408
409#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
420#[serde(rename_all = "camelCase")]
421pub struct SessionToolCallCompleteAction {
422 pub turn_id: String,
424 pub tool_call_id: String,
426 #[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
433 pub meta: Option<JsonObject>,
434 pub result: ToolCallResult,
436 #[serde(default, skip_serializing_if = "Option::is_none")]
438 pub requires_result_confirmation: Option<bool>,
439}
440
441#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
445#[serde(rename_all = "camelCase")]
446pub struct SessionToolCallResultConfirmedAction {
447 pub turn_id: String,
449 pub tool_call_id: String,
451 #[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
458 pub meta: Option<JsonObject>,
459 pub approved: bool,
461}
462
463#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
465#[serde(rename_all = "camelCase")]
466pub struct SessionTurnCompleteAction {
467 pub turn_id: String,
469}
470
471#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
473#[serde(rename_all = "camelCase")]
474pub struct SessionTurnCancelledAction {
475 pub turn_id: String,
477}
478
479#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
481#[serde(rename_all = "camelCase")]
482pub struct SessionErrorAction {
483 pub turn_id: String,
485 pub error: ErrorInfo,
487}
488
489#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
492#[serde(rename_all = "camelCase")]
493pub struct SessionTitleChangedAction {
494 pub title: String,
496}
497
498#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
500#[serde(rename_all = "camelCase")]
501pub struct SessionUsageAction {
502 pub turn_id: String,
504 pub usage: UsageInfo,
506}
507
508#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
513#[serde(rename_all = "camelCase")]
514pub struct SessionReasoningAction {
515 pub turn_id: String,
517 pub part_id: String,
519 pub content: String,
521}
522
523#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
525#[serde(rename_all = "camelCase")]
526pub struct SessionModelChangedAction {
527 pub model: ModelSelection,
529}
530
531#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
540#[serde(rename_all = "camelCase")]
541pub struct SessionAgentChangedAction {
542 #[serde(default, skip_serializing_if = "Option::is_none")]
545 pub agent: Option<AgentSelection>,
546}
547
548#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
553#[serde(rename_all = "camelCase")]
554pub struct SessionIsReadChangedAction {
555 pub is_read: bool,
557}
558
559#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
564#[serde(rename_all = "camelCase")]
565pub struct SessionIsArchivedChangedAction {
566 pub is_archived: bool,
568}
569
570#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
575#[serde(rename_all = "camelCase")]
576pub struct SessionActivityChangedAction {
577 #[serde(default, skip_serializing_if = "Option::is_none")]
579 pub activity: Option<String>,
580}
581
582#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
593#[serde(rename_all = "camelCase")]
594pub struct SessionChangesetsChangedAction {
595 #[serde(default, skip_serializing_if = "Option::is_none")]
597 pub changesets: Option<Vec<Changeset>>,
598}
599
600#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
604#[serde(rename_all = "camelCase")]
605pub struct SessionServerToolsChangedAction {
606 pub tools: Vec<ToolDefinition>,
608}
609
610#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
617#[serde(rename_all = "camelCase")]
618pub struct SessionActiveClientChangedAction {
619 #[serde(default, skip_serializing_if = "Option::is_none")]
621 pub active_client: Option<SessionActiveClient>,
622}
623
624#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
630#[serde(rename_all = "camelCase")]
631pub struct SessionActiveClientToolsChangedAction {
632 pub tools: Vec<ToolDefinition>,
634}
635
636#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
646#[serde(rename_all = "camelCase")]
647pub struct SessionPendingMessageSetAction {
648 pub kind: PendingMessageKind,
650 pub id: String,
652 pub message: Message,
654}
655
656#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
662#[serde(rename_all = "camelCase")]
663pub struct SessionPendingMessageRemovedAction {
664 pub kind: PendingMessageKind,
666 pub id: String,
668}
669
670#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
678#[serde(rename_all = "camelCase")]
679pub struct SessionQueuedMessagesReorderedAction {
680 pub order: Vec<String>,
682}
683
684#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
690#[serde(rename_all = "camelCase")]
691pub struct SessionInputRequestedAction {
692 pub request: SessionInputRequest,
694}
695
696#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
700#[serde(rename_all = "camelCase")]
701pub struct SessionInputAnswerChangedAction {
702 pub request_id: String,
704 pub question_id: String,
706 #[serde(default, skip_serializing_if = "Option::is_none")]
708 pub answer: Option<SessionInputAnswer>,
709}
710
711#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
716#[serde(rename_all = "camelCase")]
717pub struct SessionInputCompletedAction {
718 pub request_id: String,
720 pub response: SessionInputResponseKind,
722 #[serde(default, skip_serializing_if = "Option::is_none")]
724 pub answers: Option<std::collections::HashMap<String, SessionInputAnswer>>,
725}
726
727#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
732#[serde(rename_all = "camelCase")]
733pub struct SessionCustomizationsChangedAction {
734 pub customizations: Vec<Customization>,
736}
737
738#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
745#[serde(rename_all = "camelCase")]
746pub struct SessionCustomizationToggledAction {
747 pub id: String,
749 pub enabled: bool,
751}
752
753#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
762#[serde(rename_all = "camelCase")]
763pub struct SessionCustomizationUpdatedAction {
764 pub customization: Customization,
766}
767
768#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
774#[serde(rename_all = "camelCase")]
775pub struct SessionCustomizationRemovedAction {
776 pub id: String,
778}
779
780#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
801#[serde(rename_all = "camelCase")]
802pub struct SessionMcpServerStateChangedAction {
803 pub id: String,
805 pub state: McpServerState,
807 #[serde(default, skip_serializing_if = "Option::is_none")]
811 pub channel: Option<Uri>,
812}
813
814#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
824#[serde(rename_all = "camelCase")]
825pub struct SessionTruncatedAction {
826 #[serde(default, skip_serializing_if = "Option::is_none")]
828 pub turn_id: Option<String>,
829}
830
831#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
837#[serde(rename_all = "camelCase")]
838pub struct SessionConfigChangedAction {
839 pub config: JsonObject,
841 #[serde(default, skip_serializing_if = "Option::is_none")]
843 pub replace: Option<bool>,
844}
845
846#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
850#[serde(rename_all = "camelCase")]
851pub struct SessionMetaChangedAction {
852 #[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
854 pub meta: Option<JsonObject>,
855}
856
857#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
868#[serde(rename_all = "camelCase")]
869pub struct SessionToolCallContentChangedAction {
870 pub turn_id: String,
872 pub tool_call_id: String,
874 #[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
881 pub meta: Option<JsonObject>,
882 pub content: Vec<ToolResultContent>,
884}
885
886#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
890#[serde(rename_all = "camelCase")]
891pub struct ChangesetStatusChangedAction {
892 pub status: ChangesetStatus,
894 #[serde(default, skip_serializing_if = "Option::is_none")]
896 pub error: Option<ErrorInfo>,
897}
898
899#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
902#[serde(rename_all = "camelCase")]
903pub struct ChangesetFileSetAction {
904 pub file: ChangesetFile,
906}
907
908#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
913#[serde(rename_all = "camelCase")]
914pub struct ChangesetFileRemovedAction {
915 pub file_id: String,
917}
918
919#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
923#[serde(rename_all = "camelCase")]
924pub struct ChangesetOperationsChangedAction {
925 #[serde(default, skip_serializing_if = "Option::is_none")]
927 pub operations: Option<Vec<ChangesetOperation>>,
928}
929
930#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
941#[serde(rename_all = "camelCase")]
942pub struct ChangesetOperationStatusChangedAction {
943 pub operation_id: String,
945 pub status: ChangesetOperationStatus,
947 #[serde(default, skip_serializing_if = "Option::is_none")]
949 pub error: Option<ErrorInfo>,
950}
951
952#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
967#[serde(rename_all = "camelCase")]
968pub struct ChangesetClearedAction {}
969
970#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
975#[serde(rename_all = "camelCase")]
976pub struct RootTerminalsChangedAction {
977 pub terminals: Vec<TerminalInfo>,
979}
980
981#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
992#[serde(rename_all = "camelCase")]
993pub struct TerminalDataAction {
994 pub data: String,
996}
997
998#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1006#[serde(rename_all = "camelCase")]
1007pub struct TerminalInputAction {
1008 pub data: String,
1010}
1011
1012#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1017#[serde(rename_all = "camelCase")]
1018pub struct TerminalResizedAction {
1019 pub cols: i64,
1021 pub rows: i64,
1023}
1024
1025#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1030#[serde(rename_all = "camelCase")]
1031pub struct TerminalClaimedAction {
1032 pub claim: TerminalClaim,
1034}
1035
1036#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1041#[serde(rename_all = "camelCase")]
1042pub struct TerminalTitleChangedAction {
1043 pub title: String,
1045}
1046
1047#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1049#[serde(rename_all = "camelCase")]
1050pub struct TerminalCwdChangedAction {
1051 pub cwd: Uri,
1053}
1054
1055#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
1057#[serde(rename_all = "camelCase")]
1058pub struct TerminalExitedAction {
1059 #[serde(default, skip_serializing_if = "Option::is_none")]
1061 pub exit_code: Option<i64>,
1062}
1063
1064#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1066#[serde(rename_all = "camelCase")]
1067pub struct TerminalClearedAction {}
1068
1069#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1076#[serde(rename_all = "camelCase")]
1077pub struct TerminalCommandDetectionAvailableAction {}
1078
1079#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1083#[serde(rename_all = "camelCase")]
1084pub struct TerminalCommandExecutedAction {
1085 pub command_id: String,
1088 pub command_line: String,
1090 pub timestamp: i64,
1093}
1094
1095#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1101#[serde(rename_all = "camelCase")]
1102pub struct TerminalCommandFinishedAction {
1103 pub command_id: String,
1105 #[serde(default, skip_serializing_if = "Option::is_none")]
1107 pub exit_code: Option<i64>,
1108 #[serde(default, skip_serializing_if = "Option::is_none")]
1111 pub duration_ms: Option<i64>,
1112}
1113
1114#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1122#[serde(rename_all = "camelCase")]
1123pub struct ResourceWatchChangedAction {
1124 pub changes: AnyValue,
1126}
1127
1128#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1132#[serde(tag = "type")]
1133pub enum StateAction {
1134 #[serde(rename = "root/agentsChanged")]
1135 RootAgentsChanged(RootAgentsChangedAction),
1136 #[serde(rename = "root/activeSessionsChanged")]
1137 RootActiveSessionsChanged(RootActiveSessionsChangedAction),
1138 #[serde(rename = "root/configChanged")]
1139 RootConfigChanged(RootConfigChangedAction),
1140 #[serde(rename = "session/ready")]
1141 SessionReady(SessionReadyAction),
1142 #[serde(rename = "session/creationFailed")]
1143 SessionCreationFailed(SessionCreationFailedAction),
1144 #[serde(rename = "session/turnStarted")]
1145 SessionTurnStarted(SessionTurnStartedAction),
1146 #[serde(rename = "session/delta")]
1147 SessionDelta(SessionDeltaAction),
1148 #[serde(rename = "session/responsePart")]
1149 SessionResponsePart(SessionResponsePartAction),
1150 #[serde(rename = "session/toolCallStart")]
1151 SessionToolCallStart(SessionToolCallStartAction),
1152 #[serde(rename = "session/toolCallDelta")]
1153 SessionToolCallDelta(SessionToolCallDeltaAction),
1154 #[serde(rename = "session/toolCallReady")]
1155 SessionToolCallReady(SessionToolCallReadyAction),
1156 #[serde(rename = "session/toolCallConfirmed")]
1157 SessionToolCallConfirmed(SessionToolCallConfirmedAction),
1158 #[serde(rename = "session/toolCallComplete")]
1159 SessionToolCallComplete(SessionToolCallCompleteAction),
1160 #[serde(rename = "session/toolCallResultConfirmed")]
1161 SessionToolCallResultConfirmed(SessionToolCallResultConfirmedAction),
1162 #[serde(rename = "session/turnComplete")]
1163 SessionTurnComplete(SessionTurnCompleteAction),
1164 #[serde(rename = "session/turnCancelled")]
1165 SessionTurnCancelled(SessionTurnCancelledAction),
1166 #[serde(rename = "session/error")]
1167 SessionError(SessionErrorAction),
1168 #[serde(rename = "session/titleChanged")]
1169 SessionTitleChanged(SessionTitleChangedAction),
1170 #[serde(rename = "session/usage")]
1171 SessionUsage(SessionUsageAction),
1172 #[serde(rename = "session/reasoning")]
1173 SessionReasoning(SessionReasoningAction),
1174 #[serde(rename = "session/modelChanged")]
1175 SessionModelChanged(SessionModelChangedAction),
1176 #[serde(rename = "session/agentChanged")]
1177 SessionAgentChanged(SessionAgentChangedAction),
1178 #[serde(rename = "session/isReadChanged")]
1179 SessionIsReadChanged(SessionIsReadChangedAction),
1180 #[serde(rename = "session/isArchivedChanged")]
1181 SessionIsArchivedChanged(SessionIsArchivedChangedAction),
1182 #[serde(rename = "session/activityChanged")]
1183 SessionActivityChanged(SessionActivityChangedAction),
1184 #[serde(rename = "session/changesetsChanged")]
1185 SessionChangesetsChanged(SessionChangesetsChangedAction),
1186 #[serde(rename = "session/serverToolsChanged")]
1187 SessionServerToolsChanged(SessionServerToolsChangedAction),
1188 #[serde(rename = "session/activeClientChanged")]
1189 SessionActiveClientChanged(SessionActiveClientChangedAction),
1190 #[serde(rename = "session/activeClientToolsChanged")]
1191 SessionActiveClientToolsChanged(SessionActiveClientToolsChangedAction),
1192 #[serde(rename = "session/pendingMessageSet")]
1193 SessionPendingMessageSet(SessionPendingMessageSetAction),
1194 #[serde(rename = "session/pendingMessageRemoved")]
1195 SessionPendingMessageRemoved(SessionPendingMessageRemovedAction),
1196 #[serde(rename = "session/queuedMessagesReordered")]
1197 SessionQueuedMessagesReordered(SessionQueuedMessagesReorderedAction),
1198 #[serde(rename = "session/inputRequested")]
1199 SessionInputRequested(SessionInputRequestedAction),
1200 #[serde(rename = "session/inputAnswerChanged")]
1201 SessionInputAnswerChanged(SessionInputAnswerChangedAction),
1202 #[serde(rename = "session/inputCompleted")]
1203 SessionInputCompleted(SessionInputCompletedAction),
1204 #[serde(rename = "session/customizationsChanged")]
1205 SessionCustomizationsChanged(SessionCustomizationsChangedAction),
1206 #[serde(rename = "session/customizationToggled")]
1207 SessionCustomizationToggled(SessionCustomizationToggledAction),
1208 #[serde(rename = "session/customizationUpdated")]
1209 SessionCustomizationUpdated(Box<SessionCustomizationUpdatedAction>),
1210 #[serde(rename = "session/customizationRemoved")]
1211 SessionCustomizationRemoved(SessionCustomizationRemovedAction),
1212 #[serde(rename = "session/mcpServerStateChanged")]
1213 SessionMcpServerStateChanged(Box<SessionMcpServerStateChangedAction>),
1214 #[serde(rename = "session/truncated")]
1215 SessionTruncated(SessionTruncatedAction),
1216 #[serde(rename = "session/configChanged")]
1217 SessionConfigChanged(SessionConfigChangedAction),
1218 #[serde(rename = "session/metaChanged")]
1219 SessionMetaChanged(SessionMetaChangedAction),
1220 #[serde(rename = "session/toolCallContentChanged")]
1221 SessionToolCallContentChanged(SessionToolCallContentChangedAction),
1222 #[serde(rename = "changeset/statusChanged")]
1223 ChangesetStatusChanged(ChangesetStatusChangedAction),
1224 #[serde(rename = "changeset/fileSet")]
1225 ChangesetFileSet(ChangesetFileSetAction),
1226 #[serde(rename = "changeset/fileRemoved")]
1227 ChangesetFileRemoved(ChangesetFileRemovedAction),
1228 #[serde(rename = "changeset/operationsChanged")]
1229 ChangesetOperationsChanged(ChangesetOperationsChangedAction),
1230 #[serde(rename = "changeset/operationStatusChanged")]
1231 ChangesetOperationStatusChanged(ChangesetOperationStatusChangedAction),
1232 #[serde(rename = "changeset/cleared")]
1233 ChangesetCleared(ChangesetClearedAction),
1234 #[serde(rename = "root/terminalsChanged")]
1235 RootTerminalsChanged(RootTerminalsChangedAction),
1236 #[serde(rename = "terminal/data")]
1237 TerminalData(TerminalDataAction),
1238 #[serde(rename = "terminal/input")]
1239 TerminalInput(TerminalInputAction),
1240 #[serde(rename = "terminal/resized")]
1241 TerminalResized(TerminalResizedAction),
1242 #[serde(rename = "terminal/claimed")]
1243 TerminalClaimed(TerminalClaimedAction),
1244 #[serde(rename = "terminal/titleChanged")]
1245 TerminalTitleChanged(TerminalTitleChangedAction),
1246 #[serde(rename = "terminal/cwdChanged")]
1247 TerminalCwdChanged(TerminalCwdChangedAction),
1248 #[serde(rename = "terminal/exited")]
1249 TerminalExited(TerminalExitedAction),
1250 #[serde(rename = "terminal/cleared")]
1251 TerminalCleared(TerminalClearedAction),
1252 #[serde(rename = "terminal/commandDetectionAvailable")]
1253 TerminalCommandDetectionAvailable(TerminalCommandDetectionAvailableAction),
1254 #[serde(rename = "terminal/commandExecuted")]
1255 TerminalCommandExecuted(TerminalCommandExecutedAction),
1256 #[serde(rename = "terminal/commandFinished")]
1257 TerminalCommandFinished(TerminalCommandFinishedAction),
1258 #[serde(rename = "resourceWatch/changed")]
1259 ResourceWatchChanged(ResourceWatchChangedAction),
1260 #[serde(untagged)]
1263 Unknown(serde_json::Value),
1264}