1use std::collections::HashMap;
4
5use serde::{Deserialize, Serialize};
6
7use crate::types::{RequestId, SessionId};
8
9#[derive(Debug, Clone, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
11pub enum SessionEventType {
12 #[serde(rename = "session.start")]
13 SessionStart,
14 #[serde(rename = "session.resume")]
15 SessionResume,
16 #[serde(rename = "session.remote_steerable_changed")]
17 SessionRemoteSteerableChanged,
18 #[serde(rename = "session.error")]
19 SessionError,
20 #[serde(rename = "session.idle")]
21 SessionIdle,
22 #[serde(rename = "session.title_changed")]
23 SessionTitleChanged,
24 #[serde(rename = "session.schedule_created")]
25 SessionScheduleCreated,
26 #[serde(rename = "session.schedule_cancelled")]
27 SessionScheduleCancelled,
28 #[serde(rename = "session.schedule_rearmed")]
29 SessionScheduleRearmed,
30 #[serde(rename = "session.autopilot_objective_changed")]
31 SessionAutopilotObjectiveChanged,
32 #[serde(rename = "session.info")]
33 SessionInfo,
34 #[serde(rename = "session.warning")]
35 SessionWarning,
36 #[serde(rename = "session.model_change")]
37 SessionModelChange,
38 #[serde(rename = "session.mode_changed")]
39 SessionModeChanged,
40 #[serde(rename = "session.permissions_changed")]
41 SessionPermissionsChanged,
42 #[serde(rename = "session.plan_changed")]
43 SessionPlanChanged,
44 #[serde(rename = "session.todos_changed")]
45 SessionTodosChanged,
46 #[serde(rename = "session.workspace_file_changed")]
47 SessionWorkspaceFileChanged,
48 #[serde(rename = "session.handoff")]
49 SessionHandoff,
50 #[serde(rename = "session.truncation")]
51 SessionTruncation,
52 #[serde(rename = "session.snapshot_rewind")]
53 SessionSnapshotRewind,
54 #[serde(rename = "session.shutdown")]
55 SessionShutdown,
56 #[serde(rename = "session.context_changed")]
57 SessionContextChanged,
58 #[serde(rename = "session.usage_info")]
59 SessionUsageInfo,
60 #[serde(rename = "session.compaction_start")]
61 SessionCompactionStart,
62 #[serde(rename = "session.compaction_complete")]
63 SessionCompactionComplete,
64 #[serde(rename = "session.task_complete")]
65 SessionTaskComplete,
66 #[serde(rename = "user.message")]
67 UserMessage,
68 #[serde(rename = "pending_messages.modified")]
69 PendingMessagesModified,
70 #[serde(rename = "assistant.turn_start")]
71 AssistantTurnStart,
72 #[serde(rename = "assistant.intent")]
73 AssistantIntent,
74 #[serde(rename = "assistant.reasoning")]
75 AssistantReasoning,
76 #[serde(rename = "assistant.reasoning_delta")]
77 AssistantReasoningDelta,
78 #[serde(rename = "assistant.streaming_delta")]
79 AssistantStreamingDelta,
80 #[serde(rename = "assistant.message")]
81 AssistantMessage,
82 #[serde(rename = "assistant.message_start")]
83 AssistantMessageStart,
84 #[serde(rename = "assistant.message_delta")]
85 AssistantMessageDelta,
86 #[serde(rename = "assistant.turn_end")]
87 AssistantTurnEnd,
88 #[serde(rename = "assistant.usage")]
89 AssistantUsage,
90 #[serde(rename = "model.call_failure")]
91 ModelCallFailure,
92 #[serde(rename = "abort")]
93 Abort,
94 #[serde(rename = "tool.user_requested")]
95 ToolUserRequested,
96 #[serde(rename = "tool.execution_start")]
97 ToolExecutionStart,
98 #[serde(rename = "tool.execution_partial_result")]
99 ToolExecutionPartialResult,
100 #[serde(rename = "tool.execution_progress")]
101 ToolExecutionProgress,
102 #[serde(rename = "tool.execution_complete")]
103 ToolExecutionComplete,
104 #[serde(rename = "skill.invoked")]
105 SkillInvoked,
106 #[serde(rename = "subagent.started")]
107 SubagentStarted,
108 #[serde(rename = "subagent.completed")]
109 SubagentCompleted,
110 #[serde(rename = "subagent.failed")]
111 SubagentFailed,
112 #[serde(rename = "subagent.selected")]
113 SubagentSelected,
114 #[serde(rename = "subagent.deselected")]
115 SubagentDeselected,
116 #[serde(rename = "hook.start")]
117 HookStart,
118 #[serde(rename = "hook.end")]
119 HookEnd,
120 #[serde(rename = "hook.progress")]
121 HookProgress,
122 #[serde(rename = "session.binary_asset")]
130 SessionBinaryAsset,
131 #[serde(rename = "system.message")]
132 SystemMessage,
133 #[serde(rename = "system.notification")]
134 SystemNotification,
135 #[serde(rename = "permission.requested")]
136 PermissionRequested,
137 #[serde(rename = "permission.completed")]
138 PermissionCompleted,
139 #[serde(rename = "user_input.requested")]
140 UserInputRequested,
141 #[serde(rename = "user_input.completed")]
142 UserInputCompleted,
143 #[serde(rename = "elicitation.requested")]
144 ElicitationRequested,
145 #[serde(rename = "elicitation.completed")]
146 ElicitationCompleted,
147 #[serde(rename = "sampling.requested")]
148 SamplingRequested,
149 #[serde(rename = "sampling.completed")]
150 SamplingCompleted,
151 #[serde(rename = "mcp.oauth_required")]
152 McpOauthRequired,
153 #[serde(rename = "mcp.oauth_completed")]
154 McpOauthCompleted,
155 #[serde(rename = "session.custom_notification")]
156 SessionCustomNotification,
157 #[serde(rename = "external_tool.requested")]
158 ExternalToolRequested,
159 #[serde(rename = "external_tool.completed")]
160 ExternalToolCompleted,
161 #[serde(rename = "command.queued")]
162 CommandQueued,
163 #[serde(rename = "command.execute")]
164 CommandExecute,
165 #[serde(rename = "command.completed")]
166 CommandCompleted,
167 #[serde(rename = "auto_mode_switch.requested")]
168 AutoModeSwitchRequested,
169 #[serde(rename = "auto_mode_switch.completed")]
170 AutoModeSwitchCompleted,
171 #[serde(rename = "commands.changed")]
172 CommandsChanged,
173 #[serde(rename = "capabilities.changed")]
174 CapabilitiesChanged,
175 #[serde(rename = "exit_plan_mode.requested")]
176 ExitPlanModeRequested,
177 #[serde(rename = "exit_plan_mode.completed")]
178 ExitPlanModeCompleted,
179 #[serde(rename = "session.tools_updated")]
180 SessionToolsUpdated,
181 #[serde(rename = "session.background_tasks_changed")]
182 SessionBackgroundTasksChanged,
183 #[serde(rename = "session.skills_loaded")]
184 SessionSkillsLoaded,
185 #[serde(rename = "session.custom_agents_updated")]
186 SessionCustomAgentsUpdated,
187 #[serde(rename = "session.mcp_servers_loaded")]
188 SessionMcpServersLoaded,
189 #[serde(rename = "session.mcp_server_status_changed")]
190 SessionMcpServerStatusChanged,
191 #[serde(rename = "session.extensions_loaded")]
192 SessionExtensionsLoaded,
193 #[serde(rename = "session.canvas.opened")]
201 SessionCanvasOpened,
202 #[serde(rename = "session.canvas.registry_changed")]
210 SessionCanvasRegistryChanged,
211 #[serde(rename = "session.canvas.closed")]
219 SessionCanvasClosed,
220 #[serde(rename = "session.canvas.unavailable")]
228 SessionCanvasUnavailable,
229 #[serde(rename = "session.canvas.recorded")]
237 SessionCanvasRecorded,
238 #[serde(rename = "session.canvas.removed")]
246 SessionCanvasRemoved,
247 #[serde(rename = "session.extensions.attachments_pushed")]
248 SessionExtensionsAttachmentsPushed,
249 #[serde(rename = "mcp_app.tool_call_complete")]
250 McpAppToolCallComplete,
251 #[default]
253 #[serde(other)]
254 Unknown,
255}
256
257#[derive(Debug, Clone, Serialize, Deserialize)]
261#[serde(tag = "type", content = "data")]
262pub enum SessionEventData {
263 #[serde(rename = "session.start")]
264 SessionStart(SessionStartData),
265 #[serde(rename = "session.resume")]
266 SessionResume(SessionResumeData),
267 #[serde(rename = "session.remote_steerable_changed")]
268 SessionRemoteSteerableChanged(SessionRemoteSteerableChangedData),
269 #[serde(rename = "session.error")]
270 SessionError(SessionErrorData),
271 #[serde(rename = "session.idle")]
272 SessionIdle(SessionIdleData),
273 #[serde(rename = "session.title_changed")]
274 SessionTitleChanged(SessionTitleChangedData),
275 #[serde(rename = "session.schedule_created")]
276 SessionScheduleCreated(SessionScheduleCreatedData),
277 #[serde(rename = "session.schedule_cancelled")]
278 SessionScheduleCancelled(SessionScheduleCancelledData),
279 #[serde(rename = "session.schedule_rearmed")]
280 SessionScheduleRearmed(SessionScheduleRearmedData),
281 #[serde(rename = "session.autopilot_objective_changed")]
282 SessionAutopilotObjectiveChanged(SessionAutopilotObjectiveChangedData),
283 #[serde(rename = "session.info")]
284 SessionInfo(SessionInfoData),
285 #[serde(rename = "session.warning")]
286 SessionWarning(SessionWarningData),
287 #[serde(rename = "session.model_change")]
288 SessionModelChange(SessionModelChangeData),
289 #[serde(rename = "session.mode_changed")]
290 SessionModeChanged(SessionModeChangedData),
291 #[serde(rename = "session.permissions_changed")]
292 SessionPermissionsChanged(SessionPermissionsChangedData),
293 #[serde(rename = "session.plan_changed")]
294 SessionPlanChanged(SessionPlanChangedData),
295 #[serde(rename = "session.todos_changed")]
296 SessionTodosChanged(SessionTodosChangedData),
297 #[serde(rename = "session.workspace_file_changed")]
298 SessionWorkspaceFileChanged(SessionWorkspaceFileChangedData),
299 #[serde(rename = "session.handoff")]
300 SessionHandoff(SessionHandoffData),
301 #[serde(rename = "session.truncation")]
302 SessionTruncation(SessionTruncationData),
303 #[serde(rename = "session.snapshot_rewind")]
304 SessionSnapshotRewind(SessionSnapshotRewindData),
305 #[serde(rename = "session.shutdown")]
306 SessionShutdown(SessionShutdownData),
307 #[serde(rename = "session.context_changed")]
308 SessionContextChanged(SessionContextChangedData),
309 #[serde(rename = "session.usage_info")]
310 SessionUsageInfo(SessionUsageInfoData),
311 #[serde(rename = "session.compaction_start")]
312 SessionCompactionStart(SessionCompactionStartData),
313 #[serde(rename = "session.compaction_complete")]
314 SessionCompactionComplete(SessionCompactionCompleteData),
315 #[serde(rename = "session.task_complete")]
316 SessionTaskComplete(SessionTaskCompleteData),
317 #[serde(rename = "user.message")]
318 UserMessage(UserMessageData),
319 #[serde(rename = "pending_messages.modified")]
320 PendingMessagesModified(PendingMessagesModifiedData),
321 #[serde(rename = "assistant.turn_start")]
322 AssistantTurnStart(AssistantTurnStartData),
323 #[serde(rename = "assistant.intent")]
324 AssistantIntent(AssistantIntentData),
325 #[serde(rename = "assistant.reasoning")]
326 AssistantReasoning(AssistantReasoningData),
327 #[serde(rename = "assistant.reasoning_delta")]
328 AssistantReasoningDelta(AssistantReasoningDeltaData),
329 #[serde(rename = "assistant.streaming_delta")]
330 AssistantStreamingDelta(AssistantStreamingDeltaData),
331 #[serde(rename = "assistant.message")]
332 AssistantMessage(AssistantMessageData),
333 #[serde(rename = "assistant.message_start")]
334 AssistantMessageStart(AssistantMessageStartData),
335 #[serde(rename = "assistant.message_delta")]
336 AssistantMessageDelta(AssistantMessageDeltaData),
337 #[serde(rename = "assistant.turn_end")]
338 AssistantTurnEnd(AssistantTurnEndData),
339 #[serde(rename = "assistant.usage")]
340 AssistantUsage(AssistantUsageData),
341 #[serde(rename = "model.call_failure")]
342 ModelCallFailure(ModelCallFailureData),
343 #[serde(rename = "abort")]
344 Abort(AbortData),
345 #[serde(rename = "tool.user_requested")]
346 ToolUserRequested(ToolUserRequestedData),
347 #[serde(rename = "tool.execution_start")]
348 ToolExecutionStart(ToolExecutionStartData),
349 #[serde(rename = "tool.execution_partial_result")]
350 ToolExecutionPartialResult(ToolExecutionPartialResultData),
351 #[serde(rename = "tool.execution_progress")]
352 ToolExecutionProgress(ToolExecutionProgressData),
353 #[serde(rename = "tool.execution_complete")]
354 ToolExecutionComplete(ToolExecutionCompleteData),
355 #[serde(rename = "skill.invoked")]
356 SkillInvoked(SkillInvokedData),
357 #[serde(rename = "subagent.started")]
358 SubagentStarted(SubagentStartedData),
359 #[serde(rename = "subagent.completed")]
360 SubagentCompleted(SubagentCompletedData),
361 #[serde(rename = "subagent.failed")]
362 SubagentFailed(SubagentFailedData),
363 #[serde(rename = "subagent.selected")]
364 SubagentSelected(SubagentSelectedData),
365 #[serde(rename = "subagent.deselected")]
366 SubagentDeselected(SubagentDeselectedData),
367 #[serde(rename = "hook.start")]
368 HookStart(HookStartData),
369 #[serde(rename = "hook.end")]
370 HookEnd(HookEndData),
371 #[serde(rename = "hook.progress")]
372 HookProgress(HookProgressData),
373 #[serde(rename = "session.binary_asset")]
374 SessionBinaryAsset(SessionBinaryAssetData),
375 #[serde(rename = "system.message")]
376 SystemMessage(SystemMessageData),
377 #[serde(rename = "system.notification")]
378 SystemNotification(SystemNotificationData),
379 #[serde(rename = "permission.requested")]
380 PermissionRequested(PermissionRequestedData),
381 #[serde(rename = "permission.completed")]
382 PermissionCompleted(PermissionCompletedData),
383 #[serde(rename = "user_input.requested")]
384 UserInputRequested(UserInputRequestedData),
385 #[serde(rename = "user_input.completed")]
386 UserInputCompleted(UserInputCompletedData),
387 #[serde(rename = "elicitation.requested")]
388 ElicitationRequested(ElicitationRequestedData),
389 #[serde(rename = "elicitation.completed")]
390 ElicitationCompleted(ElicitationCompletedData),
391 #[serde(rename = "sampling.requested")]
392 SamplingRequested(SamplingRequestedData),
393 #[serde(rename = "sampling.completed")]
394 SamplingCompleted(SamplingCompletedData),
395 #[serde(rename = "mcp.oauth_required")]
396 McpOauthRequired(McpOauthRequiredData),
397 #[serde(rename = "mcp.oauth_completed")]
398 McpOauthCompleted(McpOauthCompletedData),
399 #[serde(rename = "session.custom_notification")]
400 SessionCustomNotification(SessionCustomNotificationData),
401 #[serde(rename = "external_tool.requested")]
402 ExternalToolRequested(ExternalToolRequestedData),
403 #[serde(rename = "external_tool.completed")]
404 ExternalToolCompleted(ExternalToolCompletedData),
405 #[serde(rename = "command.queued")]
406 CommandQueued(CommandQueuedData),
407 #[serde(rename = "command.execute")]
408 CommandExecute(CommandExecuteData),
409 #[serde(rename = "command.completed")]
410 CommandCompleted(CommandCompletedData),
411 #[serde(rename = "auto_mode_switch.requested")]
412 AutoModeSwitchRequested(AutoModeSwitchRequestedData),
413 #[serde(rename = "auto_mode_switch.completed")]
414 AutoModeSwitchCompleted(AutoModeSwitchCompletedData),
415 #[serde(rename = "commands.changed")]
416 CommandsChanged(CommandsChangedData),
417 #[serde(rename = "capabilities.changed")]
418 CapabilitiesChanged(CapabilitiesChangedData),
419 #[serde(rename = "exit_plan_mode.requested")]
420 ExitPlanModeRequested(ExitPlanModeRequestedData),
421 #[serde(rename = "exit_plan_mode.completed")]
422 ExitPlanModeCompleted(ExitPlanModeCompletedData),
423 #[serde(rename = "session.tools_updated")]
424 SessionToolsUpdated(SessionToolsUpdatedData),
425 #[serde(rename = "session.background_tasks_changed")]
426 SessionBackgroundTasksChanged(SessionBackgroundTasksChangedData),
427 #[serde(rename = "session.skills_loaded")]
428 SessionSkillsLoaded(SessionSkillsLoadedData),
429 #[serde(rename = "session.custom_agents_updated")]
430 SessionCustomAgentsUpdated(SessionCustomAgentsUpdatedData),
431 #[serde(rename = "session.mcp_servers_loaded")]
432 SessionMcpServersLoaded(SessionMcpServersLoadedData),
433 #[serde(rename = "session.mcp_server_status_changed")]
434 SessionMcpServerStatusChanged(SessionMcpServerStatusChangedData),
435 #[serde(rename = "session.extensions_loaded")]
436 SessionExtensionsLoaded(SessionExtensionsLoadedData),
437 #[serde(rename = "session.canvas.opened")]
445 SessionCanvasOpened(SessionCanvasOpenedData),
446 #[serde(rename = "session.canvas.registry_changed")]
454 SessionCanvasRegistryChanged(SessionCanvasRegistryChangedData),
455 #[serde(rename = "session.canvas.closed")]
463 SessionCanvasClosed(SessionCanvasClosedData),
464 #[serde(rename = "session.canvas.unavailable")]
472 SessionCanvasUnavailable(SessionCanvasUnavailableData),
473 #[serde(rename = "session.canvas.recorded")]
481 SessionCanvasRecorded(SessionCanvasRecordedData),
482 #[serde(rename = "session.canvas.removed")]
490 SessionCanvasRemoved(SessionCanvasRemovedData),
491 #[serde(rename = "session.extensions.attachments_pushed")]
492 SessionExtensionsAttachmentsPushed(SessionExtensionsAttachmentsPushedData),
493 #[serde(rename = "mcp_app.tool_call_complete")]
494 McpAppToolCallComplete(McpAppToolCallCompleteData),
495}
496
497#[derive(Debug, Clone, Serialize, Deserialize)]
503#[serde(rename_all = "camelCase")]
504pub struct TypedSessionEvent {
505 pub id: String,
507 pub timestamp: String,
509 #[serde(skip_serializing_if = "Option::is_none")]
511 pub parent_id: Option<String>,
512 #[serde(skip_serializing_if = "Option::is_none")]
514 pub ephemeral: Option<bool>,
515 #[serde(skip_serializing_if = "Option::is_none")]
518 pub agent_id: Option<String>,
519 #[serde(flatten)]
521 pub payload: SessionEventData,
522}
523
524#[derive(Debug, Clone, Default, Serialize, Deserialize)]
526#[serde(rename_all = "camelCase")]
527pub struct WorkingDirectoryContext {
528 #[serde(skip_serializing_if = "Option::is_none")]
530 pub base_commit: Option<String>,
531 #[serde(skip_serializing_if = "Option::is_none")]
533 pub branch: Option<String>,
534 pub cwd: String,
536 #[serde(skip_serializing_if = "Option::is_none")]
538 pub git_root: Option<String>,
539 #[serde(skip_serializing_if = "Option::is_none")]
541 pub head_commit: Option<String>,
542 #[serde(skip_serializing_if = "Option::is_none")]
544 pub host_type: Option<WorkingDirectoryContextHostType>,
545 #[serde(skip_serializing_if = "Option::is_none")]
547 pub repository: Option<String>,
548 #[serde(skip_serializing_if = "Option::is_none")]
550 pub repository_host: Option<String>,
551}
552
553#[derive(Debug, Clone, Default, Serialize, Deserialize)]
555#[serde(rename_all = "camelCase")]
556pub struct SessionStartData {
557 #[serde(skip_serializing_if = "Option::is_none")]
559 pub already_in_use: Option<bool>,
560 #[serde(skip_serializing_if = "Option::is_none")]
562 pub context: Option<WorkingDirectoryContext>,
563 #[serde(skip_serializing_if = "Option::is_none")]
565 pub context_tier: Option<ContextTier>,
566 pub copilot_version: String,
568 #[serde(skip_serializing_if = "Option::is_none")]
570 pub detached_from_spawning_parent_session_id: Option<String>,
571 pub producer: String,
573 #[serde(skip_serializing_if = "Option::is_none")]
575 pub reasoning_effort: Option<String>,
576 #[serde(skip_serializing_if = "Option::is_none")]
578 pub reasoning_summary: Option<ReasoningSummary>,
579 #[serde(skip_serializing_if = "Option::is_none")]
581 pub remote_steerable: Option<bool>,
582 #[serde(skip_serializing_if = "Option::is_none")]
584 pub selected_model: Option<String>,
585 pub session_id: SessionId,
587 pub start_time: String,
589 pub version: i64,
591}
592
593#[derive(Debug, Clone, Default, Serialize, Deserialize)]
595#[serde(rename_all = "camelCase")]
596pub struct SessionResumeData {
597 #[serde(skip_serializing_if = "Option::is_none")]
599 pub already_in_use: Option<bool>,
600 #[serde(skip_serializing_if = "Option::is_none")]
602 pub context: Option<WorkingDirectoryContext>,
603 #[serde(skip_serializing_if = "Option::is_none")]
605 pub context_tier: Option<ContextTier>,
606 #[serde(skip_serializing_if = "Option::is_none")]
608 pub continue_pending_work: Option<bool>,
609 pub event_count: i64,
611 #[serde(skip_serializing_if = "Option::is_none")]
613 pub events_file_size_bytes: Option<i64>,
614 #[serde(skip_serializing_if = "Option::is_none")]
616 pub reasoning_effort: Option<String>,
617 #[serde(skip_serializing_if = "Option::is_none")]
619 pub reasoning_summary: Option<ReasoningSummary>,
620 #[serde(skip_serializing_if = "Option::is_none")]
622 pub remote_steerable: Option<bool>,
623 pub resume_time: String,
625 #[serde(skip_serializing_if = "Option::is_none")]
627 pub selected_model: Option<String>,
628 #[serde(skip_serializing_if = "Option::is_none")]
630 pub session_was_active: Option<bool>,
631}
632
633#[derive(Debug, Clone, Default, Serialize, Deserialize)]
635#[serde(rename_all = "camelCase")]
636pub struct SessionRemoteSteerableChangedData {
637 pub remote_steerable: bool,
639}
640
641#[derive(Debug, Clone, Default, Serialize, Deserialize)]
643#[serde(rename_all = "camelCase")]
644pub struct SessionErrorData {
645 #[serde(skip_serializing_if = "Option::is_none")]
647 pub eligible_for_auto_switch: Option<bool>,
648 #[serde(skip_serializing_if = "Option::is_none")]
650 pub error_code: Option<String>,
651 pub error_type: String,
653 pub message: String,
655 #[serde(skip_serializing_if = "Option::is_none")]
657 pub provider_call_id: Option<String>,
658 #[serde(skip_serializing_if = "Option::is_none")]
660 pub service_request_id: Option<String>,
661 #[serde(skip_serializing_if = "Option::is_none")]
663 pub stack: Option<String>,
664 #[serde(skip_serializing_if = "Option::is_none")]
666 pub status_code: Option<i32>,
667 #[serde(skip_serializing_if = "Option::is_none")]
669 pub url: Option<String>,
670}
671
672#[derive(Debug, Clone, Default, Serialize, Deserialize)]
674#[serde(rename_all = "camelCase")]
675pub struct SessionIdleData {
676 #[serde(skip_serializing_if = "Option::is_none")]
678 pub aborted: Option<bool>,
679}
680
681#[derive(Debug, Clone, Default, Serialize, Deserialize)]
683#[serde(rename_all = "camelCase")]
684pub struct SessionTitleChangedData {
685 pub title: String,
687}
688
689#[derive(Debug, Clone, Default, Serialize, Deserialize)]
691#[serde(rename_all = "camelCase")]
692pub struct SessionScheduleCreatedData {
693 #[serde(skip_serializing_if = "Option::is_none")]
695 pub at: Option<i64>,
696 #[serde(skip_serializing_if = "Option::is_none")]
698 pub cron: Option<String>,
699 #[serde(skip_serializing_if = "Option::is_none")]
701 pub display_prompt: Option<String>,
702 pub id: i64,
704 #[serde(skip_serializing_if = "Option::is_none")]
706 pub interval_ms: Option<i64>,
707 pub prompt: String,
709 #[serde(skip_serializing_if = "Option::is_none")]
711 pub recurring: Option<bool>,
712 #[serde(skip_serializing_if = "Option::is_none")]
714 pub self_paced: Option<bool>,
715 #[serde(skip_serializing_if = "Option::is_none")]
717 pub tz: Option<String>,
718}
719
720#[derive(Debug, Clone, Default, Serialize, Deserialize)]
722#[serde(rename_all = "camelCase")]
723pub struct SessionScheduleCancelledData {
724 pub id: i64,
726}
727
728#[derive(Debug, Clone, Default, Serialize, Deserialize)]
730#[serde(rename_all = "camelCase")]
731pub struct SessionScheduleRearmedData {
732 pub id: i64,
734 pub next_run_at: i64,
736}
737
738#[derive(Debug, Clone, Default, Serialize, Deserialize)]
740#[serde(rename_all = "camelCase")]
741pub struct SessionAutopilotObjectiveChangedData {
742 #[serde(skip_serializing_if = "Option::is_none")]
744 pub id: Option<i64>,
745 pub operation: AutopilotObjectiveChangedOperation,
747 #[serde(skip_serializing_if = "Option::is_none")]
749 pub status: Option<AutopilotObjectiveChangedStatus>,
750}
751
752#[derive(Debug, Clone, Default, Serialize, Deserialize)]
754#[serde(rename_all = "camelCase")]
755pub struct SessionInfoData {
756 pub info_type: String,
758 pub message: String,
760 #[serde(skip_serializing_if = "Option::is_none")]
762 pub tip: Option<String>,
763 #[serde(skip_serializing_if = "Option::is_none")]
765 pub url: Option<String>,
766}
767
768#[derive(Debug, Clone, Default, Serialize, Deserialize)]
770#[serde(rename_all = "camelCase")]
771pub struct SessionWarningData {
772 pub message: String,
774 #[serde(skip_serializing_if = "Option::is_none")]
776 pub url: Option<String>,
777 pub warning_type: String,
779}
780
781#[derive(Debug, Clone, Default, Serialize, Deserialize)]
783#[serde(rename_all = "camelCase")]
784pub struct SessionModelChangeData {
785 #[serde(skip_serializing_if = "Option::is_none")]
787 pub cause: Option<String>,
788 #[serde(skip_serializing_if = "Option::is_none")]
790 pub context_tier: Option<ContextTier>,
791 pub new_model: String,
793 #[serde(skip_serializing_if = "Option::is_none")]
795 pub previous_model: Option<String>,
796 #[serde(skip_serializing_if = "Option::is_none")]
798 pub previous_reasoning_effort: Option<String>,
799 #[serde(skip_serializing_if = "Option::is_none")]
801 pub previous_reasoning_summary: Option<ReasoningSummary>,
802 #[serde(skip_serializing_if = "Option::is_none")]
804 pub reasoning_effort: Option<String>,
805 #[serde(skip_serializing_if = "Option::is_none")]
807 pub reasoning_summary: Option<ReasoningSummary>,
808}
809
810#[derive(Debug, Clone, Default, Serialize, Deserialize)]
812#[serde(rename_all = "camelCase")]
813pub struct SessionModeChangedData {
814 pub new_mode: SessionMode,
816 pub previous_mode: SessionMode,
818}
819
820#[derive(Debug, Clone, Default, Serialize, Deserialize)]
822#[serde(rename_all = "camelCase")]
823pub struct SessionPermissionsChangedData {
824 pub allow_all_permissions: bool,
826 pub previous_allow_all_permissions: bool,
828}
829
830#[derive(Debug, Clone, Default, Serialize, Deserialize)]
832#[serde(rename_all = "camelCase")]
833pub struct SessionPlanChangedData {
834 pub operation: PlanChangedOperation,
836}
837
838#[derive(Debug, Clone, Default, Serialize, Deserialize)]
840#[serde(rename_all = "camelCase")]
841pub struct SessionTodosChangedData {}
842
843#[derive(Debug, Clone, Default, Serialize, Deserialize)]
845#[serde(rename_all = "camelCase")]
846pub struct SessionWorkspaceFileChangedData {
847 pub operation: WorkspaceFileChangedOperation,
849 pub path: String,
851}
852
853#[derive(Debug, Clone, Default, Serialize, Deserialize)]
855#[serde(rename_all = "camelCase")]
856pub struct HandoffRepository {
857 #[serde(skip_serializing_if = "Option::is_none")]
859 pub branch: Option<String>,
860 pub name: String,
862 pub owner: String,
864}
865
866#[derive(Debug, Clone, Default, Serialize, Deserialize)]
868#[serde(rename_all = "camelCase")]
869pub struct SessionHandoffData {
870 #[serde(skip_serializing_if = "Option::is_none")]
872 pub context: Option<String>,
873 pub handoff_time: String,
875 #[serde(skip_serializing_if = "Option::is_none")]
877 pub host: Option<String>,
878 #[serde(skip_serializing_if = "Option::is_none")]
880 pub remote_session_id: Option<SessionId>,
881 #[serde(skip_serializing_if = "Option::is_none")]
883 pub repository: Option<HandoffRepository>,
884 pub source_type: HandoffSourceType,
886 #[serde(skip_serializing_if = "Option::is_none")]
888 pub summary: Option<String>,
889}
890
891#[derive(Debug, Clone, Default, Serialize, Deserialize)]
893#[serde(rename_all = "camelCase")]
894pub struct SessionTruncationData {
895 pub messages_removed_during_truncation: i64,
897 pub performed_by: String,
899 pub post_truncation_messages_length: i64,
901 pub post_truncation_tokens_in_messages: i64,
903 pub pre_truncation_messages_length: i64,
905 pub pre_truncation_tokens_in_messages: i64,
907 pub token_limit: i64,
909 pub tokens_removed_during_truncation: i64,
911}
912
913#[derive(Debug, Clone, Default, Serialize, Deserialize)]
915#[serde(rename_all = "camelCase")]
916pub struct SessionSnapshotRewindData {
917 pub events_removed: i64,
919 pub up_to_event_id: String,
921}
922
923#[derive(Debug, Clone, Default, Serialize, Deserialize)]
925#[serde(rename_all = "camelCase")]
926pub struct ShutdownCodeChanges {
927 pub files_modified: Vec<String>,
929 pub lines_added: i64,
931 pub lines_removed: i64,
933}
934
935#[derive(Debug, Clone, Default, Serialize, Deserialize)]
937#[serde(rename_all = "camelCase")]
938pub struct ShutdownModelMetricRequests {
939 #[serde(skip_serializing_if = "Option::is_none")]
948 pub cost: Option<f64>,
949 #[serde(skip_serializing_if = "Option::is_none")]
958 pub count: Option<i64>,
959}
960
961#[derive(Debug, Clone, Default, Serialize, Deserialize)]
963#[serde(rename_all = "camelCase")]
964pub struct ShutdownModelMetricTokenDetail {
965 pub token_count: i64,
967}
968
969#[derive(Debug, Clone, Default, Serialize, Deserialize)]
971#[serde(rename_all = "camelCase")]
972pub struct ShutdownModelMetricUsage {
973 pub cache_read_tokens: i64,
975 pub cache_write_tokens: i64,
977 pub input_tokens: i64,
979 pub output_tokens: i64,
981 #[serde(skip_serializing_if = "Option::is_none")]
983 pub reasoning_tokens: Option<i64>,
984}
985
986#[derive(Debug, Clone, Default, Serialize, Deserialize)]
988#[serde(rename_all = "camelCase")]
989pub struct ShutdownModelMetric {
990 pub requests: ShutdownModelMetricRequests,
992 #[serde(skip_serializing_if = "Option::is_none")]
994 pub token_details: Option<HashMap<String, ShutdownModelMetricTokenDetail>>,
995 #[serde(skip_serializing_if = "Option::is_none")]
1004 pub total_nano_aiu: Option<f64>,
1005 pub usage: ShutdownModelMetricUsage,
1007}
1008
1009#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1011#[serde(rename_all = "camelCase")]
1012pub struct ShutdownTokenDetail {
1013 pub token_count: i64,
1015}
1016
1017#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1019#[serde(rename_all = "camelCase")]
1020pub struct SessionShutdownData {
1021 pub code_changes: ShutdownCodeChanges,
1023 #[serde(skip_serializing_if = "Option::is_none")]
1025 pub conversation_tokens: Option<i64>,
1026 #[serde(skip_serializing_if = "Option::is_none")]
1028 pub current_model: Option<String>,
1029 #[serde(skip_serializing_if = "Option::is_none")]
1031 pub current_tokens: Option<i64>,
1032 #[serde(skip_serializing_if = "Option::is_none")]
1034 pub error_reason: Option<String>,
1035 #[serde(skip_serializing_if = "Option::is_none")]
1037 pub events_file_size_bytes: Option<i64>,
1038 pub model_metrics: HashMap<String, ShutdownModelMetric>,
1040 pub session_start_time: i64,
1042 pub shutdown_type: ShutdownType,
1044 #[serde(skip_serializing_if = "Option::is_none")]
1046 pub system_tokens: Option<i64>,
1047 #[serde(skip_serializing_if = "Option::is_none")]
1049 pub token_details: Option<HashMap<String, ShutdownTokenDetail>>,
1050 #[serde(skip_serializing_if = "Option::is_none")]
1052 pub tool_definitions_tokens: Option<i64>,
1053 pub total_api_duration_ms: i64,
1055 #[serde(skip_serializing_if = "Option::is_none")]
1064 pub total_nano_aiu: Option<f64>,
1065 #[doc(hidden)]
1067 #[serde(skip_serializing_if = "Option::is_none")]
1068 pub(crate) total_premium_requests: Option<f64>,
1069}
1070
1071#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1073#[serde(rename_all = "camelCase")]
1074pub struct SessionContextChangedData {
1075 #[serde(skip_serializing_if = "Option::is_none")]
1077 pub base_commit: Option<String>,
1078 #[serde(skip_serializing_if = "Option::is_none")]
1080 pub branch: Option<String>,
1081 pub cwd: String,
1083 #[serde(skip_serializing_if = "Option::is_none")]
1085 pub git_root: Option<String>,
1086 #[serde(skip_serializing_if = "Option::is_none")]
1088 pub head_commit: Option<String>,
1089 #[serde(skip_serializing_if = "Option::is_none")]
1091 pub host_type: Option<WorkingDirectoryContextHostType>,
1092 #[serde(skip_serializing_if = "Option::is_none")]
1094 pub repository: Option<String>,
1095 #[serde(skip_serializing_if = "Option::is_none")]
1097 pub repository_host: Option<String>,
1098}
1099
1100#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1102#[serde(rename_all = "camelCase")]
1103pub struct SessionUsageInfoData {
1104 #[serde(skip_serializing_if = "Option::is_none")]
1106 pub conversation_tokens: Option<i64>,
1107 pub current_tokens: i64,
1109 #[serde(skip_serializing_if = "Option::is_none")]
1111 pub is_initial: Option<bool>,
1112 pub messages_length: i64,
1114 #[serde(skip_serializing_if = "Option::is_none")]
1116 pub system_tokens: Option<i64>,
1117 pub token_limit: i64,
1119 #[serde(skip_serializing_if = "Option::is_none")]
1121 pub tool_definitions_tokens: Option<i64>,
1122}
1123
1124#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1126#[serde(rename_all = "camelCase")]
1127pub struct SessionCompactionStartData {
1128 #[serde(skip_serializing_if = "Option::is_none")]
1130 pub conversation_tokens: Option<i64>,
1131 #[serde(skip_serializing_if = "Option::is_none")]
1133 pub system_tokens: Option<i64>,
1134 #[serde(skip_serializing_if = "Option::is_none")]
1136 pub tool_definitions_tokens: Option<i64>,
1137}
1138
1139#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1141#[serde(rename_all = "camelCase")]
1142pub struct CompactionCompleteCompactionTokensUsedCopilotUsageTokenDetail {
1143 pub batch_size: i64,
1145 pub cost_per_batch: i64,
1147 pub token_count: i64,
1149 pub token_type: String,
1151}
1152
1153#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1155#[serde(rename_all = "camelCase")]
1156pub(crate) struct CompactionCompleteCompactionTokensUsedCopilotUsage {
1157 #[doc(hidden)]
1159 #[serde(skip_serializing_if = "Option::is_none")]
1160 pub(crate) token_details:
1161 Option<Vec<CompactionCompleteCompactionTokensUsedCopilotUsageTokenDetail>>,
1162 pub total_nano_aiu: f64,
1164}
1165
1166#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1168#[serde(rename_all = "camelCase")]
1169pub struct CompactionCompleteCompactionTokensUsed {
1170 #[serde(skip_serializing_if = "Option::is_none")]
1172 pub cache_read_tokens: Option<i64>,
1173 #[serde(skip_serializing_if = "Option::is_none")]
1175 pub cache_write_tokens: Option<i64>,
1176 #[doc(hidden)]
1178 #[serde(skip_serializing_if = "Option::is_none")]
1179 pub(crate) copilot_usage: Option<CompactionCompleteCompactionTokensUsedCopilotUsage>,
1180 #[serde(skip_serializing_if = "Option::is_none")]
1182 pub duration: Option<i64>,
1183 #[serde(skip_serializing_if = "Option::is_none")]
1185 pub input_tokens: Option<i64>,
1186 #[serde(skip_serializing_if = "Option::is_none")]
1188 pub model: Option<String>,
1189 #[serde(skip_serializing_if = "Option::is_none")]
1191 pub output_tokens: Option<i64>,
1192}
1193
1194#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1196#[serde(rename_all = "camelCase")]
1197pub struct SessionCompactionCompleteData {
1198 #[serde(skip_serializing_if = "Option::is_none")]
1200 pub checkpoint_number: Option<i64>,
1201 #[serde(skip_serializing_if = "Option::is_none")]
1203 pub checkpoint_path: Option<String>,
1204 #[serde(skip_serializing_if = "Option::is_none")]
1206 pub compaction_tokens_used: Option<CompactionCompleteCompactionTokensUsed>,
1207 #[serde(skip_serializing_if = "Option::is_none")]
1209 pub conversation_tokens: Option<i64>,
1210 #[serde(skip_serializing_if = "Option::is_none")]
1212 pub custom_instructions: Option<String>,
1213 #[serde(skip_serializing_if = "Option::is_none")]
1215 pub error: Option<String>,
1216 #[serde(skip_serializing_if = "Option::is_none")]
1218 pub messages_removed: Option<i64>,
1219 #[serde(skip_serializing_if = "Option::is_none")]
1221 pub post_compaction_tokens: Option<i64>,
1222 #[serde(skip_serializing_if = "Option::is_none")]
1224 pub pre_compaction_messages_length: Option<i64>,
1225 #[serde(skip_serializing_if = "Option::is_none")]
1227 pub pre_compaction_tokens: Option<i64>,
1228 #[serde(skip_serializing_if = "Option::is_none")]
1230 pub request_id: Option<RequestId>,
1231 #[serde(skip_serializing_if = "Option::is_none")]
1233 pub service_request_id: Option<String>,
1234 #[serde(skip_serializing_if = "Option::is_none")]
1236 pub status_code: Option<i64>,
1237 pub success: bool,
1239 #[serde(skip_serializing_if = "Option::is_none")]
1241 pub summary_content: Option<String>,
1242 #[serde(skip_serializing_if = "Option::is_none")]
1244 pub system_tokens: Option<i64>,
1245 #[serde(skip_serializing_if = "Option::is_none")]
1247 pub tokens_removed: Option<i64>,
1248 #[serde(skip_serializing_if = "Option::is_none")]
1250 pub tool_definitions_tokens: Option<i64>,
1251}
1252
1253#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1255#[serde(rename_all = "camelCase")]
1256pub struct SessionTaskCompleteData {
1257 #[serde(skip_serializing_if = "Option::is_none")]
1259 pub success: Option<bool>,
1260 #[serde(skip_serializing_if = "Option::is_none")]
1262 pub summary: Option<String>,
1263}
1264
1265#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1267#[serde(rename_all = "camelCase")]
1268pub struct UserMessageData {
1269 #[serde(skip_serializing_if = "Option::is_none")]
1271 pub agent_mode: Option<UserMessageAgentMode>,
1272 #[serde(skip_serializing_if = "Option::is_none")]
1274 pub attachments: Option<Vec<serde_json::Value>>,
1275 pub content: String,
1277 #[serde(skip_serializing_if = "Option::is_none")]
1279 pub interaction_id: Option<String>,
1280 #[serde(skip_serializing_if = "Option::is_none")]
1282 pub is_autopilot_continuation: Option<bool>,
1283 #[serde(skip_serializing_if = "Option::is_none")]
1285 pub native_document_path_fallback_paths: Option<Vec<String>>,
1286 #[serde(skip_serializing_if = "Option::is_none")]
1288 pub parent_agent_task_id: Option<String>,
1289 #[serde(skip_serializing_if = "Option::is_none")]
1291 pub source: Option<String>,
1292 #[serde(skip_serializing_if = "Option::is_none")]
1294 pub supported_native_document_mime_types: Option<Vec<String>>,
1295 #[serde(skip_serializing_if = "Option::is_none")]
1297 pub transformed_content: Option<String>,
1298}
1299
1300#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1302#[serde(rename_all = "camelCase")]
1303pub struct PendingMessagesModifiedData {}
1304
1305#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1307#[serde(rename_all = "camelCase")]
1308pub struct AssistantTurnStartData {
1309 #[serde(skip_serializing_if = "Option::is_none")]
1311 pub interaction_id: Option<String>,
1312 pub turn_id: String,
1314}
1315
1316#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1318#[serde(rename_all = "camelCase")]
1319pub struct AssistantIntentData {
1320 pub intent: String,
1322}
1323
1324#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1326#[serde(rename_all = "camelCase")]
1327pub struct AssistantReasoningData {
1328 pub content: String,
1330 pub reasoning_id: String,
1332}
1333
1334#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1336#[serde(rename_all = "camelCase")]
1337pub struct AssistantReasoningDeltaData {
1338 pub delta_content: String,
1340 pub reasoning_id: String,
1342}
1343
1344#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1346#[serde(rename_all = "camelCase")]
1347pub struct AssistantStreamingDeltaData {
1348 pub total_response_size_bytes: i64,
1350}
1351
1352#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1361#[serde(rename_all = "camelCase")]
1362pub struct CitationSource {
1363 pub id: String,
1365 #[serde(skip_serializing_if = "Option::is_none")]
1367 pub path: Option<String>,
1368 pub provider: CitationProvider,
1370 #[serde(skip_serializing_if = "Option::is_none")]
1372 pub title: Option<String>,
1373 #[serde(skip_serializing_if = "Option::is_none")]
1375 pub url: Option<String>,
1376}
1377
1378#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1387#[serde(rename_all = "camelCase")]
1388pub struct CitationReference {
1389 #[serde(skip_serializing_if = "Option::is_none")]
1391 pub cited_text: Option<String>,
1392 #[serde(skip_serializing_if = "Option::is_none")]
1394 pub location: Option<serde_json::Value>,
1395 #[serde(skip_serializing_if = "Option::is_none")]
1397 pub provider_metadata: Option<serde_json::Value>,
1398 pub source_id: String,
1400}
1401
1402#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1411#[serde(rename_all = "camelCase")]
1412pub struct CitationSpan {
1413 pub end_index: i64,
1415 pub references: Vec<CitationReference>,
1417 pub start_index: i64,
1419}
1420
1421#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1430#[serde(rename_all = "camelCase")]
1431pub struct Citations {
1432 pub sources: Vec<CitationSource>,
1434 pub spans: Vec<CitationSpan>,
1436}
1437
1438#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1447#[serde(rename_all = "camelCase")]
1448pub struct AssistantMessageServerTools {
1449 #[serde(skip_serializing_if = "Option::is_none")]
1450 pub advisor_model: Option<String>,
1451 #[serde(skip_serializing_if = "Option::is_none")]
1452 pub function_call_namespaces: Option<HashMap<String, String>>,
1453 #[serde(skip_serializing_if = "Option::is_none")]
1454 pub items: Option<Vec<serde_json::Value>>,
1455 pub provider: String,
1456 #[serde(skip_serializing_if = "Option::is_none")]
1457 pub raw_content_blocks: Option<Vec<serde_json::Value>>,
1458}
1459
1460#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1462#[serde(rename_all = "camelCase")]
1463pub struct AssistantMessageToolRequest {
1464 #[serde(skip_serializing_if = "Option::is_none")]
1466 pub arguments: Option<serde_json::Value>,
1467 #[serde(skip_serializing_if = "Option::is_none")]
1469 pub intention_summary: Option<String>,
1470 #[serde(skip_serializing_if = "Option::is_none")]
1472 pub mcp_server_name: Option<String>,
1473 #[serde(skip_serializing_if = "Option::is_none")]
1475 pub mcp_tool_name: Option<String>,
1476 pub name: String,
1478 pub tool_call_id: String,
1480 #[serde(skip_serializing_if = "Option::is_none")]
1482 pub tool_title: Option<String>,
1483 #[serde(skip_serializing_if = "Option::is_none")]
1485 pub r#type: Option<AssistantMessageToolRequestType>,
1486}
1487
1488#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1490#[serde(rename_all = "camelCase")]
1491pub struct AssistantMessageData {
1492 #[serde(skip_serializing_if = "Option::is_none")]
1494 pub api_call_id: Option<String>,
1495 #[serde(skip_serializing_if = "Option::is_none")]
1504 pub citations: Option<Citations>,
1505 pub content: String,
1507 #[serde(skip_serializing_if = "Option::is_none")]
1509 pub encrypted_content: Option<String>,
1510 #[serde(skip_serializing_if = "Option::is_none")]
1512 pub interaction_id: Option<String>,
1513 pub message_id: String,
1515 #[serde(skip_serializing_if = "Option::is_none")]
1517 pub model: Option<String>,
1518 #[serde(skip_serializing_if = "Option::is_none")]
1520 pub output_tokens: Option<i64>,
1521 #[doc(hidden)]
1523 #[deprecated]
1524 #[serde(skip_serializing_if = "Option::is_none")]
1525 pub parent_tool_call_id: Option<String>,
1526 #[serde(skip_serializing_if = "Option::is_none")]
1528 pub phase: Option<String>,
1529 #[serde(skip_serializing_if = "Option::is_none")]
1531 pub reasoning_opaque: Option<String>,
1532 #[serde(skip_serializing_if = "Option::is_none")]
1534 pub reasoning_text: Option<String>,
1535 #[serde(skip_serializing_if = "Option::is_none")]
1537 pub request_id: Option<RequestId>,
1538 #[serde(skip_serializing_if = "Option::is_none")]
1540 pub server_tools: Option<AssistantMessageServerTools>,
1541 #[serde(skip_serializing_if = "Option::is_none")]
1543 pub service_request_id: Option<String>,
1544 #[serde(skip_serializing_if = "Option::is_none")]
1546 pub tool_requests: Option<Vec<AssistantMessageToolRequest>>,
1547 #[serde(skip_serializing_if = "Option::is_none")]
1549 pub turn_id: Option<String>,
1550}
1551
1552#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1554#[serde(rename_all = "camelCase")]
1555pub struct AssistantMessageStartData {
1556 pub message_id: String,
1558 #[serde(skip_serializing_if = "Option::is_none")]
1560 pub phase: Option<String>,
1561}
1562
1563#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1565#[serde(rename_all = "camelCase")]
1566pub struct AssistantMessageDeltaData {
1567 pub delta_content: String,
1569 pub message_id: String,
1571 #[doc(hidden)]
1573 #[deprecated]
1574 #[serde(skip_serializing_if = "Option::is_none")]
1575 pub parent_tool_call_id: Option<String>,
1576}
1577
1578#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1580#[serde(rename_all = "camelCase")]
1581pub struct AssistantTurnEndData {
1582 pub turn_id: String,
1584}
1585
1586#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1588#[serde(rename_all = "camelCase")]
1589pub struct AssistantUsageCopilotUsageTokenDetail {
1590 pub batch_size: i64,
1592 pub cost_per_batch: i64,
1594 pub token_count: i64,
1596 pub token_type: String,
1598}
1599
1600#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1602#[serde(rename_all = "camelCase")]
1603pub struct AssistantUsageCopilotUsage {
1604 #[doc(hidden)]
1606 #[serde(skip_serializing_if = "Option::is_none")]
1607 pub(crate) token_details: Option<Vec<AssistantUsageCopilotUsageTokenDetail>>,
1608 pub total_nano_aiu: f64,
1610}
1611
1612#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1614#[serde(rename_all = "camelCase")]
1615pub(crate) struct AssistantUsageQuotaSnapshot {
1616 #[doc(hidden)]
1618 pub(crate) entitlement_requests: i64,
1619 #[doc(hidden)]
1621 #[serde(skip_serializing_if = "Option::is_none")]
1622 pub(crate) has_quota: Option<bool>,
1623 #[doc(hidden)]
1625 pub(crate) is_unlimited_entitlement: bool,
1626 #[doc(hidden)]
1628 pub(crate) overage: f64,
1629 #[doc(hidden)]
1631 pub(crate) overage_allowed_with_exhausted_quota: bool,
1632 #[doc(hidden)]
1634 #[serde(skip_serializing_if = "Option::is_none")]
1635 pub(crate) overage_entitlement: Option<f64>,
1636 #[doc(hidden)]
1638 pub(crate) remaining_percentage: f64,
1639 #[doc(hidden)]
1641 #[serde(skip_serializing_if = "Option::is_none")]
1642 pub(crate) reset_date: Option<String>,
1643 #[doc(hidden)]
1645 #[serde(skip_serializing_if = "Option::is_none")]
1646 pub(crate) token_based_billing: Option<bool>,
1647 #[doc(hidden)]
1649 pub(crate) usage_allowed_with_exhausted_quota: bool,
1650 #[doc(hidden)]
1652 pub(crate) used_requests: i64,
1653}
1654
1655#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1657#[serde(rename_all = "camelCase")]
1658pub struct AssistantUsageData {
1659 #[serde(skip_serializing_if = "Option::is_none")]
1661 pub api_call_id: Option<String>,
1662 #[serde(skip_serializing_if = "Option::is_none")]
1664 pub api_endpoint: Option<AssistantUsageApiEndpoint>,
1665 #[serde(skip_serializing_if = "Option::is_none")]
1667 pub cache_read_tokens: Option<i64>,
1668 #[serde(skip_serializing_if = "Option::is_none")]
1670 pub cache_write_tokens: Option<i64>,
1671 #[serde(skip_serializing_if = "Option::is_none")]
1673 pub content_filter_triggered: Option<bool>,
1674 #[serde(skip_serializing_if = "Option::is_none")]
1676 pub copilot_usage: Option<AssistantUsageCopilotUsage>,
1677 #[serde(skip_serializing_if = "Option::is_none")]
1686 pub cost: Option<f64>,
1687 #[serde(skip_serializing_if = "Option::is_none")]
1689 pub duration: Option<i64>,
1690 #[serde(skip_serializing_if = "Option::is_none")]
1692 pub finish_reason: Option<String>,
1693 #[serde(skip_serializing_if = "Option::is_none")]
1695 pub initiator: Option<String>,
1696 #[serde(skip_serializing_if = "Option::is_none")]
1698 pub input_tokens: Option<i64>,
1699 #[serde(skip_serializing_if = "Option::is_none")]
1701 pub inter_token_latency_ms: Option<f64>,
1702 pub model: String,
1704 #[serde(skip_serializing_if = "Option::is_none")]
1706 pub output_tokens: Option<i64>,
1707 #[doc(hidden)]
1709 #[deprecated]
1710 #[serde(skip_serializing_if = "Option::is_none")]
1711 pub parent_tool_call_id: Option<String>,
1712 #[serde(skip_serializing_if = "Option::is_none")]
1714 pub provider_call_id: Option<String>,
1715 #[doc(hidden)]
1717 #[serde(skip_serializing_if = "Option::is_none")]
1718 pub(crate) quota_snapshots: Option<HashMap<String, AssistantUsageQuotaSnapshot>>,
1719 #[serde(skip_serializing_if = "Option::is_none")]
1721 pub reasoning_effort: Option<String>,
1722 #[serde(skip_serializing_if = "Option::is_none")]
1724 pub reasoning_tokens: Option<i64>,
1725 #[serde(skip_serializing_if = "Option::is_none")]
1727 pub service_request_id: Option<String>,
1728 #[serde(skip_serializing_if = "Option::is_none")]
1730 pub time_to_first_token_ms: Option<i64>,
1731}
1732
1733#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1735#[serde(rename_all = "camelCase")]
1736pub struct ModelCallFailureRequestFingerprint {
1737 pub image_part_count: i64,
1739 pub image_parts_missing_media_type: i64,
1741 #[serde(skip_serializing_if = "Option::is_none")]
1743 pub last_message_role: Option<String>,
1744 pub message_count: i64,
1746 pub nameless_tool_call_count: i64,
1748 pub tool_call_count: i64,
1750 pub tool_result_message_count: i64,
1752}
1753
1754#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1756#[serde(rename_all = "camelCase")]
1757pub struct ModelCallFailureData {
1758 #[serde(skip_serializing_if = "Option::is_none")]
1760 pub api_call_id: Option<String>,
1761 #[serde(skip_serializing_if = "Option::is_none")]
1763 pub bad_request_kind: Option<ModelCallFailureBadRequestKind>,
1764 #[serde(skip_serializing_if = "Option::is_none")]
1766 pub duration_ms: Option<i64>,
1767 #[serde(skip_serializing_if = "Option::is_none")]
1769 pub error_code: Option<String>,
1770 #[serde(skip_serializing_if = "Option::is_none")]
1772 pub error_message: Option<String>,
1773 #[serde(skip_serializing_if = "Option::is_none")]
1775 pub error_type: Option<String>,
1776 #[serde(skip_serializing_if = "Option::is_none")]
1778 pub initiator: Option<String>,
1779 #[serde(skip_serializing_if = "Option::is_none")]
1781 pub model: Option<String>,
1782 #[serde(skip_serializing_if = "Option::is_none")]
1784 pub provider_call_id: Option<String>,
1785 #[doc(hidden)]
1787 #[serde(skip_serializing_if = "Option::is_none")]
1788 pub(crate) quota_snapshots: Option<HashMap<String, AssistantUsageQuotaSnapshot>>,
1789 #[serde(skip_serializing_if = "Option::is_none")]
1791 pub request_fingerprint: Option<ModelCallFailureRequestFingerprint>,
1792 #[serde(skip_serializing_if = "Option::is_none")]
1794 pub service_request_id: Option<String>,
1795 pub source: ModelCallFailureSource,
1797 #[serde(skip_serializing_if = "Option::is_none")]
1799 pub status_code: Option<i32>,
1800}
1801
1802#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1804#[serde(rename_all = "camelCase")]
1805pub struct AbortData {
1806 pub reason: AbortReason,
1808}
1809
1810#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1812#[serde(rename_all = "camelCase")]
1813pub struct ToolUserRequestedData {
1814 #[serde(skip_serializing_if = "Option::is_none")]
1816 pub arguments: Option<serde_json::Value>,
1817 pub tool_call_id: String,
1819 pub tool_name: String,
1821}
1822
1823#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1825#[serde(rename_all = "camelCase")]
1826pub struct ToolExecutionStartToolDescriptionMetaUI {
1827 #[serde(skip_serializing_if = "Option::is_none")]
1829 pub resource_uri: Option<String>,
1830 #[serde(skip_serializing_if = "Option::is_none")]
1832 pub visibility: Option<Vec<ToolExecutionStartToolDescriptionMetaUIVisibility>>,
1833}
1834
1835#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1837#[serde(rename_all = "camelCase")]
1838pub struct ToolExecutionStartToolDescriptionMeta {
1839 #[serde(skip_serializing_if = "Option::is_none")]
1841 pub ui: Option<ToolExecutionStartToolDescriptionMetaUI>,
1842}
1843
1844#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1846#[serde(rename_all = "camelCase")]
1847pub struct ToolExecutionStartToolDescription {
1848 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
1850 pub meta: Option<ToolExecutionStartToolDescriptionMeta>,
1851 #[serde(skip_serializing_if = "Option::is_none")]
1853 pub description: Option<String>,
1854 pub name: String,
1856}
1857
1858#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1860#[serde(rename_all = "camelCase")]
1861pub struct ToolExecutionStartData {
1862 #[serde(skip_serializing_if = "Option::is_none")]
1864 pub arguments: Option<serde_json::Value>,
1865 #[serde(skip_serializing_if = "Option::is_none")]
1867 pub display_verbatim: Option<bool>,
1868 #[serde(skip_serializing_if = "Option::is_none")]
1870 pub mcp_server_name: Option<String>,
1871 #[serde(skip_serializing_if = "Option::is_none")]
1873 pub mcp_tool_name: Option<String>,
1874 #[serde(skip_serializing_if = "Option::is_none")]
1876 pub model: Option<String>,
1877 #[doc(hidden)]
1879 #[deprecated]
1880 #[serde(skip_serializing_if = "Option::is_none")]
1881 pub parent_tool_call_id: Option<String>,
1882 pub tool_call_id: String,
1884 #[serde(skip_serializing_if = "Option::is_none")]
1886 pub tool_description: Option<ToolExecutionStartToolDescription>,
1887 pub tool_name: String,
1889 #[serde(skip_serializing_if = "Option::is_none")]
1891 pub turn_id: Option<String>,
1892}
1893
1894#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1896#[serde(rename_all = "camelCase")]
1897pub struct ToolExecutionPartialResultData {
1898 pub partial_output: String,
1900 pub tool_call_id: String,
1902}
1903
1904#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1906#[serde(rename_all = "camelCase")]
1907pub struct ToolExecutionProgressData {
1908 pub progress_message: String,
1910 pub tool_call_id: String,
1912}
1913
1914#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1916#[serde(rename_all = "camelCase")]
1917pub struct ToolExecutionCompleteError {
1918 #[serde(skip_serializing_if = "Option::is_none")]
1920 pub code: Option<String>,
1921 pub message: String,
1923}
1924
1925#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1934#[serde(rename_all = "camelCase")]
1935pub struct CitableSource {
1936 pub content: String,
1938 pub id: String,
1940 #[serde(skip_serializing_if = "Option::is_none")]
1942 pub path: Option<String>,
1943 #[serde(skip_serializing_if = "Option::is_none")]
1945 pub title: Option<String>,
1946 #[serde(skip_serializing_if = "Option::is_none")]
1948 pub url: Option<String>,
1949}
1950
1951#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1953#[serde(rename_all = "camelCase")]
1954pub struct ToolExecutionCompleteContentText {
1955 pub text: String,
1957 pub r#type: ToolExecutionCompleteContentTextType,
1959}
1960
1961#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1963#[serde(rename_all = "camelCase")]
1964pub struct ToolExecutionCompleteContentTerminal {
1965 #[serde(skip_serializing_if = "Option::is_none")]
1967 pub cwd: Option<String>,
1968 #[serde(skip_serializing_if = "Option::is_none")]
1970 pub exit_code: Option<i64>,
1971 pub text: String,
1973 pub r#type: ToolExecutionCompleteContentTerminalType,
1975}
1976
1977#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1979#[serde(rename_all = "camelCase")]
1980pub struct ToolExecutionCompleteContentImage {
1981 pub data: String,
1983 pub mime_type: String,
1985 pub r#type: ToolExecutionCompleteContentImageType,
1987}
1988
1989#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1991#[serde(rename_all = "camelCase")]
1992pub struct ToolExecutionCompleteContentAudio {
1993 pub data: String,
1995 pub mime_type: String,
1997 pub r#type: ToolExecutionCompleteContentAudioType,
1999}
2000
2001#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2003#[serde(rename_all = "camelCase")]
2004pub struct ToolExecutionCompleteContentResourceLinkIcon {
2005 #[serde(skip_serializing_if = "Option::is_none")]
2007 pub mime_type: Option<String>,
2008 #[serde(skip_serializing_if = "Option::is_none")]
2010 pub sizes: Option<Vec<String>>,
2011 pub src: String,
2013 #[serde(skip_serializing_if = "Option::is_none")]
2015 pub theme: Option<ToolExecutionCompleteContentResourceLinkIconTheme>,
2016}
2017
2018#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2020#[serde(rename_all = "camelCase")]
2021pub struct ToolExecutionCompleteContentResourceLink {
2022 #[serde(skip_serializing_if = "Option::is_none")]
2024 pub description: Option<String>,
2025 #[serde(skip_serializing_if = "Option::is_none")]
2027 pub icons: Option<Vec<ToolExecutionCompleteContentResourceLinkIcon>>,
2028 #[serde(skip_serializing_if = "Option::is_none")]
2030 pub mime_type: Option<String>,
2031 pub name: String,
2033 #[serde(skip_serializing_if = "Option::is_none")]
2035 pub size: Option<i64>,
2036 #[serde(skip_serializing_if = "Option::is_none")]
2038 pub title: Option<String>,
2039 pub r#type: ToolExecutionCompleteContentResourceLinkType,
2041 pub uri: String,
2043}
2044
2045#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2047#[serde(rename_all = "camelCase")]
2048pub struct EmbeddedTextResourceContents {
2049 #[serde(skip_serializing_if = "Option::is_none")]
2051 pub mime_type: Option<String>,
2052 pub text: String,
2054 pub uri: String,
2056}
2057
2058#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2060#[serde(rename_all = "camelCase")]
2061pub struct EmbeddedBlobResourceContents {
2062 pub blob: String,
2064 #[serde(skip_serializing_if = "Option::is_none")]
2066 pub mime_type: Option<String>,
2067 pub uri: String,
2069}
2070
2071#[derive(Debug, Clone, Serialize, Deserialize)]
2073#[serde(rename_all = "camelCase")]
2074pub struct ToolExecutionCompleteContentResource {
2075 pub resource: ToolExecutionCompleteContentResourceDetails,
2077 pub r#type: ToolExecutionCompleteContentResourceType,
2079}
2080
2081#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2083#[serde(rename_all = "camelCase")]
2084pub struct ToolExecutionCompleteUIResourceMetaUICsp {
2085 #[serde(skip_serializing_if = "Option::is_none")]
2086 pub base_uri_domains: Option<Vec<String>>,
2087 #[serde(skip_serializing_if = "Option::is_none")]
2088 pub connect_domains: Option<Vec<String>>,
2089 #[serde(skip_serializing_if = "Option::is_none")]
2090 pub frame_domains: Option<Vec<String>>,
2091 #[serde(skip_serializing_if = "Option::is_none")]
2092 pub resource_domains: Option<Vec<String>>,
2093}
2094
2095#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2097#[serde(rename_all = "camelCase")]
2098pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsCamera {}
2099
2100#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2102#[serde(rename_all = "camelCase")]
2103pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite {}
2104
2105#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2107#[serde(rename_all = "camelCase")]
2108pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation {}
2109
2110#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2112#[serde(rename_all = "camelCase")]
2113pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone {}
2114
2115#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2117#[serde(rename_all = "camelCase")]
2118pub struct ToolExecutionCompleteUIResourceMetaUIPermissions {
2119 #[serde(skip_serializing_if = "Option::is_none")]
2121 pub camera: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsCamera>,
2122 #[serde(skip_serializing_if = "Option::is_none")]
2124 pub clipboard_write: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite>,
2125 #[serde(skip_serializing_if = "Option::is_none")]
2127 pub geolocation: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation>,
2128 #[serde(skip_serializing_if = "Option::is_none")]
2130 pub microphone: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone>,
2131}
2132
2133#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2135#[serde(rename_all = "camelCase")]
2136pub struct ToolExecutionCompleteUIResourceMetaUI {
2137 #[serde(skip_serializing_if = "Option::is_none")]
2139 pub csp: Option<ToolExecutionCompleteUIResourceMetaUICsp>,
2140 #[serde(skip_serializing_if = "Option::is_none")]
2141 pub domain: Option<String>,
2142 #[serde(skip_serializing_if = "Option::is_none")]
2144 pub permissions: Option<ToolExecutionCompleteUIResourceMetaUIPermissions>,
2145 #[serde(skip_serializing_if = "Option::is_none")]
2146 pub prefers_border: Option<bool>,
2147}
2148
2149#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2151#[serde(rename_all = "camelCase")]
2152pub struct ToolExecutionCompleteUIResourceMeta {
2153 #[serde(skip_serializing_if = "Option::is_none")]
2155 pub ui: Option<ToolExecutionCompleteUIResourceMetaUI>,
2156}
2157
2158#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2160#[serde(rename_all = "camelCase")]
2161pub struct ToolExecutionCompleteUIResource {
2162 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2164 pub meta: Option<ToolExecutionCompleteUIResourceMeta>,
2165 #[serde(skip_serializing_if = "Option::is_none")]
2167 pub blob: Option<String>,
2168 pub mime_type: String,
2170 #[serde(skip_serializing_if = "Option::is_none")]
2172 pub text: Option<String>,
2173 pub uri: String,
2175}
2176
2177#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2179#[serde(rename_all = "camelCase")]
2180pub struct ToolExecutionCompleteResult {
2181 #[serde(skip_serializing_if = "Option::is_none")]
2190 pub binary_results_for_llm: Option<Vec<serde_json::Value>>,
2191 #[serde(skip_serializing_if = "Option::is_none")]
2200 pub citable_sources: Option<Vec<CitableSource>>,
2201 pub content: String,
2203 #[serde(skip_serializing_if = "Option::is_none")]
2205 pub contents: Option<Vec<ToolExecutionCompleteContent>>,
2206 #[serde(skip_serializing_if = "Option::is_none")]
2208 pub detailed_content: Option<String>,
2209 #[serde(skip_serializing_if = "Option::is_none")]
2211 pub structured_content: Option<serde_json::Value>,
2212 #[serde(skip_serializing_if = "Option::is_none")]
2214 pub ui_resource: Option<ToolExecutionCompleteUIResource>,
2215}
2216
2217#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2219#[serde(rename_all = "camelCase")]
2220pub struct ToolExecutionCompleteToolDescriptionMetaUI {
2221 #[serde(skip_serializing_if = "Option::is_none")]
2223 pub resource_uri: Option<String>,
2224 #[serde(skip_serializing_if = "Option::is_none")]
2226 pub visibility: Option<Vec<ToolExecutionCompleteToolDescriptionMetaUIVisibility>>,
2227}
2228
2229#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2231#[serde(rename_all = "camelCase")]
2232pub struct ToolExecutionCompleteToolDescriptionMeta {
2233 #[serde(skip_serializing_if = "Option::is_none")]
2235 pub ui: Option<ToolExecutionCompleteToolDescriptionMetaUI>,
2236}
2237
2238#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2240#[serde(rename_all = "camelCase")]
2241pub struct ToolExecutionCompleteToolDescription {
2242 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2244 pub meta: Option<ToolExecutionCompleteToolDescriptionMeta>,
2245 #[serde(skip_serializing_if = "Option::is_none")]
2247 pub description: Option<String>,
2248 pub name: String,
2250}
2251
2252#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2254#[serde(rename_all = "camelCase")]
2255pub struct ToolExecutionCompleteData {
2256 #[serde(skip_serializing_if = "Option::is_none")]
2258 pub error: Option<ToolExecutionCompleteError>,
2259 #[serde(skip_serializing_if = "Option::is_none")]
2261 pub interaction_id: Option<String>,
2262 #[serde(skip_serializing_if = "Option::is_none")]
2264 pub is_user_requested: Option<bool>,
2265 #[serde(skip_serializing_if = "Option::is_none")]
2267 pub model: Option<String>,
2268 #[doc(hidden)]
2270 #[deprecated]
2271 #[serde(skip_serializing_if = "Option::is_none")]
2272 pub parent_tool_call_id: Option<String>,
2273 #[serde(skip_serializing_if = "Option::is_none")]
2275 pub result: Option<ToolExecutionCompleteResult>,
2276 #[serde(skip_serializing_if = "Option::is_none")]
2278 pub sandboxed: Option<bool>,
2279 pub success: bool,
2281 pub tool_call_id: String,
2283 #[serde(skip_serializing_if = "Option::is_none")]
2285 pub tool_description: Option<ToolExecutionCompleteToolDescription>,
2286 #[serde(skip_serializing_if = "Option::is_none")]
2288 pub tool_telemetry: Option<HashMap<String, serde_json::Value>>,
2289 #[serde(skip_serializing_if = "Option::is_none")]
2291 pub turn_id: Option<String>,
2292}
2293
2294#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2296#[serde(rename_all = "camelCase")]
2297pub struct SkillInvokedData {
2298 #[serde(skip_serializing_if = "Option::is_none")]
2300 pub allowed_tools: Option<Vec<String>>,
2301 pub content: String,
2303 #[serde(skip_serializing_if = "Option::is_none")]
2305 pub description: Option<String>,
2306 pub name: String,
2308 pub path: String,
2310 #[serde(skip_serializing_if = "Option::is_none")]
2312 pub plugin_name: Option<String>,
2313 #[serde(skip_serializing_if = "Option::is_none")]
2315 pub plugin_version: Option<String>,
2316 #[serde(skip_serializing_if = "Option::is_none")]
2318 pub source: Option<String>,
2319 #[serde(skip_serializing_if = "Option::is_none")]
2321 pub trigger: Option<SkillInvokedTrigger>,
2322}
2323
2324#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2326#[serde(rename_all = "camelCase")]
2327pub struct SubagentStartedData {
2328 pub agent_description: String,
2330 pub agent_display_name: String,
2332 pub agent_name: String,
2334 #[serde(skip_serializing_if = "Option::is_none")]
2336 pub model: Option<String>,
2337 pub tool_call_id: String,
2339}
2340
2341#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2343#[serde(rename_all = "camelCase")]
2344pub struct SubagentCompletedData {
2345 pub agent_display_name: String,
2347 pub agent_name: String,
2349 #[serde(skip_serializing_if = "Option::is_none")]
2351 pub duration_ms: Option<i64>,
2352 #[serde(skip_serializing_if = "Option::is_none")]
2354 pub model: Option<String>,
2355 pub tool_call_id: String,
2357 #[serde(skip_serializing_if = "Option::is_none")]
2359 pub total_tokens: Option<i64>,
2360 #[serde(skip_serializing_if = "Option::is_none")]
2362 pub total_tool_calls: Option<i64>,
2363}
2364
2365#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2367#[serde(rename_all = "camelCase")]
2368pub struct SubagentFailedData {
2369 pub agent_display_name: String,
2371 pub agent_name: String,
2373 #[serde(skip_serializing_if = "Option::is_none")]
2375 pub duration_ms: Option<i64>,
2376 pub error: String,
2378 #[serde(skip_serializing_if = "Option::is_none")]
2380 pub model: Option<String>,
2381 pub tool_call_id: String,
2383 #[serde(skip_serializing_if = "Option::is_none")]
2385 pub total_tokens: Option<i64>,
2386 #[serde(skip_serializing_if = "Option::is_none")]
2388 pub total_tool_calls: Option<i64>,
2389}
2390
2391#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2393#[serde(rename_all = "camelCase")]
2394pub struct SubagentSelectedData {
2395 pub agent_display_name: String,
2397 pub agent_name: String,
2399 pub tools: Option<Vec<String>>,
2401}
2402
2403#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2405#[serde(rename_all = "camelCase")]
2406pub struct SubagentDeselectedData {}
2407
2408#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2410#[serde(rename_all = "camelCase")]
2411pub struct HookStartData {
2412 pub hook_invocation_id: String,
2414 pub hook_type: String,
2416 #[serde(skip_serializing_if = "Option::is_none")]
2418 pub input: Option<serde_json::Value>,
2419}
2420
2421#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2423#[serde(rename_all = "camelCase")]
2424pub struct HookEndError {
2425 pub message: String,
2427 #[serde(skip_serializing_if = "Option::is_none")]
2429 pub source: Option<String>,
2430 #[serde(skip_serializing_if = "Option::is_none")]
2432 pub stack: Option<String>,
2433}
2434
2435#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2437#[serde(rename_all = "camelCase")]
2438pub struct HookEndData {
2439 #[serde(skip_serializing_if = "Option::is_none")]
2441 pub error: Option<HookEndError>,
2442 pub hook_invocation_id: String,
2444 pub hook_type: String,
2446 #[serde(skip_serializing_if = "Option::is_none")]
2448 pub output: Option<serde_json::Value>,
2449 pub success: bool,
2451}
2452
2453#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2455#[serde(rename_all = "camelCase")]
2456pub struct HookProgressData {
2457 pub message: String,
2459 #[serde(skip_serializing_if = "Option::is_none")]
2461 pub temporary: Option<bool>,
2462}
2463
2464#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2466#[serde(rename_all = "camelCase")]
2467pub struct SessionBinaryAssetData {
2468 pub asset_id: String,
2470 pub byte_length: i64,
2472 pub data: String,
2474 #[serde(skip_serializing_if = "Option::is_none")]
2476 pub description: Option<String>,
2477 #[serde(skip_serializing_if = "Option::is_none")]
2479 pub metadata: Option<HashMap<String, serde_json::Value>>,
2480 pub mime_type: String,
2482 pub r#type: BinaryAssetType,
2484}
2485
2486#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2488#[serde(rename_all = "camelCase")]
2489pub struct SystemMessageMetadata {
2490 #[serde(skip_serializing_if = "Option::is_none")]
2492 pub prompt_version: Option<String>,
2493 #[serde(skip_serializing_if = "Option::is_none")]
2495 pub variables: Option<HashMap<String, serde_json::Value>>,
2496}
2497
2498#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2500#[serde(rename_all = "camelCase")]
2501pub struct SystemMessageData {
2502 pub content: String,
2504 #[serde(skip_serializing_if = "Option::is_none")]
2506 pub metadata: Option<SystemMessageMetadata>,
2507 #[serde(skip_serializing_if = "Option::is_none")]
2509 pub name: Option<String>,
2510 pub role: SystemMessageRole,
2512}
2513
2514#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2516#[serde(rename_all = "camelCase")]
2517pub struct SystemNotificationData {
2518 pub content: String,
2520 pub kind: serde_json::Value,
2522}
2523
2524#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2526#[serde(rename_all = "camelCase")]
2527pub struct PermissionRequestShellCommand {
2528 pub identifier: String,
2530 pub read_only: bool,
2532}
2533
2534#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2536#[serde(rename_all = "camelCase")]
2537pub struct PermissionRequestShellPossibleUrl {
2538 pub url: String,
2540}
2541
2542#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2544#[serde(rename_all = "camelCase")]
2545pub struct PermissionRequestShell {
2546 pub can_offer_session_approval: bool,
2548 pub commands: Vec<PermissionRequestShellCommand>,
2550 pub full_command_text: String,
2552 pub has_write_file_redirection: bool,
2554 pub intention: String,
2556 pub kind: PermissionRequestShellKind,
2558 pub possible_paths: Vec<String>,
2560 pub possible_urls: Vec<PermissionRequestShellPossibleUrl>,
2562 #[serde(skip_serializing_if = "Option::is_none")]
2564 pub request_sandbox_bypass: Option<bool>,
2565 #[serde(skip_serializing_if = "Option::is_none")]
2567 pub request_sandbox_bypass_reason: Option<String>,
2568 #[serde(skip_serializing_if = "Option::is_none")]
2570 pub tool_call_id: Option<String>,
2571 #[serde(skip_serializing_if = "Option::is_none")]
2573 pub warning: Option<String>,
2574}
2575
2576#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2578#[serde(rename_all = "camelCase")]
2579pub struct PermissionRequestWrite {
2580 pub can_offer_session_approval: bool,
2582 pub diff: String,
2584 pub file_name: String,
2586 pub intention: String,
2588 pub kind: PermissionRequestWriteKind,
2590 #[serde(skip_serializing_if = "Option::is_none")]
2592 pub new_file_contents: Option<String>,
2593 #[serde(skip_serializing_if = "Option::is_none")]
2595 pub tool_call_id: Option<String>,
2596}
2597
2598#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2600#[serde(rename_all = "camelCase")]
2601pub struct PermissionRequestRead {
2602 pub intention: String,
2604 pub kind: PermissionRequestReadKind,
2606 pub path: String,
2608 #[serde(skip_serializing_if = "Option::is_none")]
2610 pub tool_call_id: Option<String>,
2611}
2612
2613#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2615#[serde(rename_all = "camelCase")]
2616pub struct PermissionRequestMcp {
2617 #[serde(skip_serializing_if = "Option::is_none")]
2619 pub args: Option<serde_json::Value>,
2620 pub kind: PermissionRequestMcpKind,
2622 pub read_only: bool,
2624 pub server_name: String,
2626 #[serde(skip_serializing_if = "Option::is_none")]
2628 pub tool_call_id: Option<String>,
2629 pub tool_name: String,
2631 pub tool_title: String,
2633}
2634
2635#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2637#[serde(rename_all = "camelCase")]
2638pub struct PermissionRequestUrl {
2639 pub intention: String,
2641 pub kind: PermissionRequestUrlKind,
2643 #[serde(skip_serializing_if = "Option::is_none")]
2645 pub tool_call_id: Option<String>,
2646 pub url: String,
2648}
2649
2650#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2652#[serde(rename_all = "camelCase")]
2653pub struct PermissionRequestMemory {
2654 #[serde(skip_serializing_if = "Option::is_none")]
2656 pub action: Option<PermissionRequestMemoryAction>,
2657 #[serde(skip_serializing_if = "Option::is_none")]
2659 pub citations: Option<String>,
2660 #[serde(skip_serializing_if = "Option::is_none")]
2662 pub direction: Option<PermissionRequestMemoryDirection>,
2663 pub fact: String,
2665 pub kind: PermissionRequestMemoryKind,
2667 #[serde(skip_serializing_if = "Option::is_none")]
2669 pub reason: Option<String>,
2670 #[serde(skip_serializing_if = "Option::is_none")]
2672 pub subject: Option<String>,
2673 #[serde(skip_serializing_if = "Option::is_none")]
2675 pub tool_call_id: Option<String>,
2676}
2677
2678#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2680#[serde(rename_all = "camelCase")]
2681pub struct PermissionRequestCustomTool {
2682 #[serde(skip_serializing_if = "Option::is_none")]
2684 pub args: Option<serde_json::Value>,
2685 pub kind: PermissionRequestCustomToolKind,
2687 #[serde(skip_serializing_if = "Option::is_none")]
2689 pub tool_call_id: Option<String>,
2690 pub tool_description: String,
2692 pub tool_name: String,
2694}
2695
2696#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2698#[serde(rename_all = "camelCase")]
2699pub struct PermissionRequestHook {
2700 #[serde(skip_serializing_if = "Option::is_none")]
2702 pub hook_message: Option<String>,
2703 pub kind: PermissionRequestHookKind,
2705 #[serde(skip_serializing_if = "Option::is_none")]
2707 pub tool_args: Option<serde_json::Value>,
2708 #[serde(skip_serializing_if = "Option::is_none")]
2710 pub tool_call_id: Option<String>,
2711 pub tool_name: String,
2713}
2714
2715#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2717#[serde(rename_all = "camelCase")]
2718pub struct PermissionRequestExtensionManagement {
2719 #[serde(skip_serializing_if = "Option::is_none")]
2721 pub extension_name: Option<String>,
2722 pub kind: PermissionRequestExtensionManagementKind,
2724 pub operation: String,
2726 #[serde(skip_serializing_if = "Option::is_none")]
2728 pub tool_call_id: Option<String>,
2729}
2730
2731#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2733#[serde(rename_all = "camelCase")]
2734pub struct PermissionRequestExtensionPermissionAccess {
2735 pub capabilities: Vec<String>,
2737 pub extension_name: String,
2739 pub kind: PermissionRequestExtensionPermissionAccessKind,
2741 #[serde(skip_serializing_if = "Option::is_none")]
2743 pub tool_call_id: Option<String>,
2744}
2745
2746#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2748#[serde(rename_all = "camelCase")]
2749pub struct PermissionPromptRequestCommands {
2750 pub can_offer_session_approval: bool,
2752 pub command_identifiers: Vec<String>,
2754 pub full_command_text: String,
2756 pub intention: String,
2758 pub kind: PermissionPromptRequestCommandsKind,
2760 #[serde(skip_serializing_if = "Option::is_none")]
2762 pub tool_call_id: Option<String>,
2763 #[serde(skip_serializing_if = "Option::is_none")]
2765 pub warning: Option<String>,
2766}
2767
2768#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2770#[serde(rename_all = "camelCase")]
2771pub struct PermissionPromptRequestWrite {
2772 pub can_offer_session_approval: bool,
2774 pub diff: String,
2776 pub file_name: String,
2778 pub intention: String,
2780 pub kind: PermissionPromptRequestWriteKind,
2782 #[serde(skip_serializing_if = "Option::is_none")]
2784 pub new_file_contents: Option<String>,
2785 #[serde(skip_serializing_if = "Option::is_none")]
2787 pub tool_call_id: Option<String>,
2788}
2789
2790#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2792#[serde(rename_all = "camelCase")]
2793pub struct PermissionPromptRequestRead {
2794 pub intention: String,
2796 pub kind: PermissionPromptRequestReadKind,
2798 pub path: String,
2800 #[serde(skip_serializing_if = "Option::is_none")]
2802 pub tool_call_id: Option<String>,
2803}
2804
2805#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2807#[serde(rename_all = "camelCase")]
2808pub struct PermissionPromptRequestMcp {
2809 #[serde(skip_serializing_if = "Option::is_none")]
2811 pub args: Option<serde_json::Value>,
2812 pub kind: PermissionPromptRequestMcpKind,
2814 pub server_name: String,
2816 #[serde(skip_serializing_if = "Option::is_none")]
2818 pub tool_call_id: Option<String>,
2819 pub tool_name: String,
2821 pub tool_title: String,
2823}
2824
2825#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2827#[serde(rename_all = "camelCase")]
2828pub struct PermissionPromptRequestUrl {
2829 pub intention: String,
2831 pub kind: PermissionPromptRequestUrlKind,
2833 #[serde(skip_serializing_if = "Option::is_none")]
2835 pub tool_call_id: Option<String>,
2836 pub url: String,
2838}
2839
2840#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2842#[serde(rename_all = "camelCase")]
2843pub struct PermissionPromptRequestMemory {
2844 #[serde(skip_serializing_if = "Option::is_none")]
2846 pub action: Option<PermissionRequestMemoryAction>,
2847 #[serde(skip_serializing_if = "Option::is_none")]
2849 pub citations: Option<String>,
2850 #[serde(skip_serializing_if = "Option::is_none")]
2852 pub direction: Option<PermissionRequestMemoryDirection>,
2853 pub fact: String,
2855 pub kind: PermissionPromptRequestMemoryKind,
2857 #[serde(skip_serializing_if = "Option::is_none")]
2859 pub reason: Option<String>,
2860 #[serde(skip_serializing_if = "Option::is_none")]
2862 pub subject: Option<String>,
2863 #[serde(skip_serializing_if = "Option::is_none")]
2865 pub tool_call_id: Option<String>,
2866}
2867
2868#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2870#[serde(rename_all = "camelCase")]
2871pub struct PermissionPromptRequestCustomTool {
2872 #[serde(skip_serializing_if = "Option::is_none")]
2874 pub args: Option<serde_json::Value>,
2875 pub kind: PermissionPromptRequestCustomToolKind,
2877 #[serde(skip_serializing_if = "Option::is_none")]
2879 pub tool_call_id: Option<String>,
2880 pub tool_description: String,
2882 pub tool_name: String,
2884}
2885
2886#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2888#[serde(rename_all = "camelCase")]
2889pub struct PermissionPromptRequestPath {
2890 pub access_kind: PermissionPromptRequestPathAccessKind,
2892 pub kind: PermissionPromptRequestPathKind,
2894 pub paths: Vec<String>,
2896 #[serde(skip_serializing_if = "Option::is_none")]
2898 pub tool_call_id: Option<String>,
2899}
2900
2901#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2903#[serde(rename_all = "camelCase")]
2904pub struct PermissionPromptRequestHook {
2905 #[serde(skip_serializing_if = "Option::is_none")]
2907 pub hook_message: Option<String>,
2908 pub kind: PermissionPromptRequestHookKind,
2910 #[serde(skip_serializing_if = "Option::is_none")]
2912 pub tool_args: Option<serde_json::Value>,
2913 #[serde(skip_serializing_if = "Option::is_none")]
2915 pub tool_call_id: Option<String>,
2916 pub tool_name: String,
2918}
2919
2920#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2922#[serde(rename_all = "camelCase")]
2923pub struct PermissionPromptRequestExtensionManagement {
2924 #[serde(skip_serializing_if = "Option::is_none")]
2926 pub extension_name: Option<String>,
2927 pub kind: PermissionPromptRequestExtensionManagementKind,
2929 pub operation: String,
2931 #[serde(skip_serializing_if = "Option::is_none")]
2933 pub tool_call_id: Option<String>,
2934}
2935
2936#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2938#[serde(rename_all = "camelCase")]
2939pub struct PermissionPromptRequestExtensionPermissionAccess {
2940 pub capabilities: Vec<String>,
2942 pub extension_name: String,
2944 pub kind: PermissionPromptRequestExtensionPermissionAccessKind,
2946 #[serde(skip_serializing_if = "Option::is_none")]
2948 pub tool_call_id: Option<String>,
2949}
2950
2951#[derive(Debug, Clone, Serialize, Deserialize)]
2953#[serde(rename_all = "camelCase")]
2954pub struct PermissionRequestedData {
2955 pub permission_request: PermissionRequest,
2957 #[serde(skip_serializing_if = "Option::is_none")]
2959 pub prompt_request: Option<PermissionPromptRequest>,
2960 pub request_id: RequestId,
2962 #[serde(skip_serializing_if = "Option::is_none")]
2964 pub resolved_by_hook: Option<bool>,
2965}
2966
2967#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2969#[serde(rename_all = "camelCase")]
2970pub struct PermissionApproved {
2971 pub kind: PermissionApprovedKind,
2973}
2974
2975#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2977#[serde(rename_all = "camelCase")]
2978pub struct UserToolSessionApprovalCommands {
2979 pub command_identifiers: Vec<String>,
2981 pub kind: UserToolSessionApprovalCommandsKind,
2983}
2984
2985#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2987#[serde(rename_all = "camelCase")]
2988pub struct UserToolSessionApprovalRead {
2989 pub kind: UserToolSessionApprovalReadKind,
2991}
2992
2993#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2995#[serde(rename_all = "camelCase")]
2996pub struct UserToolSessionApprovalWrite {
2997 pub kind: UserToolSessionApprovalWriteKind,
2999}
3000
3001#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3003#[serde(rename_all = "camelCase")]
3004pub struct UserToolSessionApprovalMcp {
3005 pub kind: UserToolSessionApprovalMcpKind,
3007 pub server_name: String,
3009 pub tool_name: Option<String>,
3011}
3012
3013#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3015#[serde(rename_all = "camelCase")]
3016pub struct UserToolSessionApprovalMemory {
3017 pub kind: UserToolSessionApprovalMemoryKind,
3019}
3020
3021#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3023#[serde(rename_all = "camelCase")]
3024pub struct UserToolSessionApprovalCustomTool {
3025 pub kind: UserToolSessionApprovalCustomToolKind,
3027 pub tool_name: String,
3029}
3030
3031#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3033#[serde(rename_all = "camelCase")]
3034pub struct UserToolSessionApprovalExtensionManagement {
3035 pub kind: UserToolSessionApprovalExtensionManagementKind,
3037 #[serde(skip_serializing_if = "Option::is_none")]
3039 pub operation: Option<String>,
3040}
3041
3042#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3044#[serde(rename_all = "camelCase")]
3045pub struct UserToolSessionApprovalExtensionPermissionAccess {
3046 pub extension_name: String,
3048 pub kind: UserToolSessionApprovalExtensionPermissionAccessKind,
3050}
3051
3052#[derive(Debug, Clone, Serialize, Deserialize)]
3054#[serde(rename_all = "camelCase")]
3055pub struct PermissionApprovedForSession {
3056 pub approval: UserToolSessionApproval,
3058 pub kind: PermissionApprovedForSessionKind,
3060}
3061
3062#[derive(Debug, Clone, Serialize, Deserialize)]
3064#[serde(rename_all = "camelCase")]
3065pub struct PermissionApprovedForLocation {
3066 pub approval: UserToolSessionApproval,
3068 pub kind: PermissionApprovedForLocationKind,
3070 pub location_key: String,
3072}
3073
3074#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3076#[serde(rename_all = "camelCase")]
3077pub struct PermissionCancelled {
3078 pub kind: PermissionCancelledKind,
3080 #[serde(skip_serializing_if = "Option::is_none")]
3082 pub reason: Option<String>,
3083}
3084
3085#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3087#[serde(rename_all = "camelCase")]
3088pub struct PermissionRule {
3089 pub argument: Option<String>,
3091 pub kind: String,
3093}
3094
3095#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3097#[serde(rename_all = "camelCase")]
3098pub struct PermissionDeniedByRules {
3099 pub kind: PermissionDeniedByRulesKind,
3101 pub rules: Vec<PermissionRule>,
3103}
3104
3105#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3107#[serde(rename_all = "camelCase")]
3108pub struct PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser {
3109 pub kind: PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUserKind,
3111}
3112
3113#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3115#[serde(rename_all = "camelCase")]
3116pub struct PermissionDeniedInteractivelyByUser {
3117 #[serde(skip_serializing_if = "Option::is_none")]
3119 pub feedback: Option<String>,
3120 #[serde(skip_serializing_if = "Option::is_none")]
3122 pub force_reject: Option<bool>,
3123 pub kind: PermissionDeniedInteractivelyByUserKind,
3125}
3126
3127#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3129#[serde(rename_all = "camelCase")]
3130pub struct PermissionDeniedByContentExclusionPolicy {
3131 pub kind: PermissionDeniedByContentExclusionPolicyKind,
3133 pub message: String,
3135 pub path: String,
3137}
3138
3139#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3141#[serde(rename_all = "camelCase")]
3142pub struct PermissionDeniedByPermissionRequestHook {
3143 #[serde(skip_serializing_if = "Option::is_none")]
3145 pub interrupt: Option<bool>,
3146 pub kind: PermissionDeniedByPermissionRequestHookKind,
3148 #[serde(skip_serializing_if = "Option::is_none")]
3150 pub message: Option<String>,
3151}
3152
3153#[derive(Debug, Clone, Serialize, Deserialize)]
3155#[serde(rename_all = "camelCase")]
3156pub struct PermissionCompletedData {
3157 pub request_id: RequestId,
3159 pub result: PermissionResult,
3161 #[serde(skip_serializing_if = "Option::is_none")]
3163 pub tool_call_id: Option<String>,
3164}
3165
3166#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3168#[serde(rename_all = "camelCase")]
3169pub struct UserInputRequestedData {
3170 #[serde(skip_serializing_if = "Option::is_none")]
3172 pub allow_freeform: Option<bool>,
3173 #[serde(skip_serializing_if = "Option::is_none")]
3175 pub choices: Option<Vec<String>>,
3176 pub question: String,
3178 pub request_id: RequestId,
3180 #[serde(skip_serializing_if = "Option::is_none")]
3182 pub tool_call_id: Option<String>,
3183}
3184
3185#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3187#[serde(rename_all = "camelCase")]
3188pub struct UserInputCompletedData {
3189 #[serde(skip_serializing_if = "Option::is_none")]
3191 pub answer: Option<String>,
3192 pub request_id: RequestId,
3194 #[serde(skip_serializing_if = "Option::is_none")]
3196 pub was_freeform: Option<bool>,
3197}
3198
3199#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3201#[serde(rename_all = "camelCase")]
3202pub struct ElicitationRequestedSchema {
3203 pub properties: HashMap<String, serde_json::Value>,
3205 #[serde(skip_serializing_if = "Option::is_none")]
3207 pub required: Option<Vec<String>>,
3208 pub r#type: ElicitationRequestedSchemaType,
3210}
3211
3212#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3214#[serde(rename_all = "camelCase")]
3215pub struct ElicitationRequestedData {
3216 #[serde(skip_serializing_if = "Option::is_none")]
3218 pub elicitation_source: Option<String>,
3219 pub message: String,
3221 #[serde(skip_serializing_if = "Option::is_none")]
3223 pub mode: Option<ElicitationRequestedMode>,
3224 #[serde(skip_serializing_if = "Option::is_none")]
3226 pub requested_schema: Option<ElicitationRequestedSchema>,
3227 pub request_id: RequestId,
3229 #[serde(skip_serializing_if = "Option::is_none")]
3231 pub tool_call_id: Option<String>,
3232 #[serde(skip_serializing_if = "Option::is_none")]
3234 pub url: Option<String>,
3235}
3236
3237#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3239#[serde(rename_all = "camelCase")]
3240pub struct ElicitationCompletedData {
3241 #[serde(skip_serializing_if = "Option::is_none")]
3243 pub action: Option<ElicitationCompletedAction>,
3244 #[serde(skip_serializing_if = "Option::is_none")]
3246 pub content: Option<HashMap<String, serde_json::Value>>,
3247 pub request_id: RequestId,
3249}
3250
3251#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3253#[serde(rename_all = "camelCase")]
3254pub struct SamplingRequestedData {
3255 pub mcp_request_id: serde_json::Value,
3257 pub request_id: RequestId,
3259 pub server_name: String,
3261}
3262
3263#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3265#[serde(rename_all = "camelCase")]
3266pub struct SamplingCompletedData {
3267 pub request_id: RequestId,
3269}
3270
3271#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3273#[serde(rename_all = "camelCase")]
3274pub struct McpOauthRequiredStaticClientConfig {
3275 pub client_id: String,
3277 #[serde(skip_serializing_if = "Option::is_none")]
3279 pub grant_type: Option<McpOauthRequiredStaticClientConfigGrantType>,
3280 #[serde(skip_serializing_if = "Option::is_none")]
3282 pub public_client: Option<bool>,
3283}
3284
3285#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3287#[serde(rename_all = "camelCase")]
3288pub struct McpOauthWWWAuthenticateParams {
3289 #[serde(skip_serializing_if = "Option::is_none")]
3291 pub error: Option<String>,
3292 pub resource_metadata_url: String,
3294 #[serde(skip_serializing_if = "Option::is_none")]
3296 pub scope: Option<String>,
3297}
3298
3299#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3301#[serde(rename_all = "camelCase")]
3302pub struct McpOauthRequiredData {
3303 pub request_id: RequestId,
3305 #[serde(skip_serializing_if = "Option::is_none")]
3307 pub resource_metadata: Option<String>,
3308 pub server_name: String,
3310 pub server_url: String,
3312 #[serde(skip_serializing_if = "Option::is_none")]
3314 pub static_client_config: Option<McpOauthRequiredStaticClientConfig>,
3315 #[serde(skip_serializing_if = "Option::is_none")]
3317 pub www_authenticate_params: Option<McpOauthWWWAuthenticateParams>,
3318}
3319
3320#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3322#[serde(rename_all = "camelCase")]
3323pub struct McpOauthCompletedData {
3324 pub outcome: McpOauthCompletionOutcome,
3326 pub request_id: RequestId,
3328}
3329
3330#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3332#[serde(rename_all = "camelCase")]
3333pub struct SessionCustomNotificationData {
3334 pub name: String,
3336 pub payload: serde_json::Value,
3338 pub source: String,
3340 #[serde(skip_serializing_if = "Option::is_none")]
3342 pub subject: Option<HashMap<String, String>>,
3343 #[serde(skip_serializing_if = "Option::is_none")]
3345 pub version: Option<i64>,
3346}
3347
3348#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3350#[serde(rename_all = "camelCase")]
3351pub struct ExternalToolRequestedData {
3352 #[serde(skip_serializing_if = "Option::is_none")]
3354 pub arguments: Option<serde_json::Value>,
3355 pub request_id: RequestId,
3357 pub session_id: SessionId,
3359 pub tool_call_id: String,
3361 pub tool_name: String,
3363 #[serde(skip_serializing_if = "Option::is_none")]
3365 pub traceparent: Option<String>,
3366 #[serde(skip_serializing_if = "Option::is_none")]
3368 pub tracestate: Option<String>,
3369 #[serde(skip_serializing_if = "Option::is_none")]
3371 pub working_directory: Option<String>,
3372}
3373
3374#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3376#[serde(rename_all = "camelCase")]
3377pub struct ExternalToolCompletedData {
3378 pub request_id: RequestId,
3380}
3381
3382#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3384#[serde(rename_all = "camelCase")]
3385pub struct CommandQueuedData {
3386 pub command: String,
3388 pub request_id: RequestId,
3390}
3391
3392#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3394#[serde(rename_all = "camelCase")]
3395pub struct CommandExecuteData {
3396 pub args: String,
3398 pub command: String,
3400 pub command_name: String,
3402 pub request_id: RequestId,
3404}
3405
3406#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3408#[serde(rename_all = "camelCase")]
3409pub struct CommandCompletedData {
3410 pub request_id: RequestId,
3412}
3413
3414#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3416#[serde(rename_all = "camelCase")]
3417pub struct AutoModeSwitchRequestedData {
3418 #[serde(skip_serializing_if = "Option::is_none")]
3420 pub error_code: Option<String>,
3421 pub request_id: RequestId,
3423 #[serde(skip_serializing_if = "Option::is_none")]
3425 pub retry_after_seconds: Option<i64>,
3426}
3427
3428#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3430#[serde(rename_all = "camelCase")]
3431pub struct AutoModeSwitchCompletedData {
3432 pub request_id: RequestId,
3434 pub response: AutoModeSwitchResponse,
3436}
3437
3438#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3440#[serde(rename_all = "camelCase")]
3441pub struct CommandsChangedCommand {
3442 #[serde(skip_serializing_if = "Option::is_none")]
3444 pub description: Option<String>,
3445 pub name: String,
3447}
3448
3449#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3451#[serde(rename_all = "camelCase")]
3452pub struct CommandsChangedData {
3453 pub commands: Vec<CommandsChangedCommand>,
3455}
3456
3457#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3459#[serde(rename_all = "camelCase")]
3460pub struct CapabilitiesChangedUI {
3461 #[serde(skip_serializing_if = "Option::is_none")]
3463 pub canvases: Option<bool>,
3464 #[serde(skip_serializing_if = "Option::is_none")]
3466 pub elicitation: Option<bool>,
3467 #[serde(skip_serializing_if = "Option::is_none")]
3469 pub mcp_apps: Option<bool>,
3470}
3471
3472#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3474#[serde(rename_all = "camelCase")]
3475pub struct CapabilitiesChangedData {
3476 #[serde(skip_serializing_if = "Option::is_none")]
3478 pub ui: Option<CapabilitiesChangedUI>,
3479}
3480
3481#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3483#[serde(rename_all = "camelCase")]
3484pub struct ExitPlanModeRequestedData {
3485 pub actions: Vec<ExitPlanModeAction>,
3487 pub plan_content: String,
3489 pub recommended_action: ExitPlanModeAction,
3491 pub request_id: RequestId,
3493 pub summary: String,
3495}
3496
3497#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3499#[serde(rename_all = "camelCase")]
3500pub struct ExitPlanModeCompletedData {
3501 #[serde(skip_serializing_if = "Option::is_none")]
3503 pub approved: Option<bool>,
3504 #[serde(skip_serializing_if = "Option::is_none")]
3506 pub auto_approve_edits: Option<bool>,
3507 #[serde(skip_serializing_if = "Option::is_none")]
3509 pub feedback: Option<String>,
3510 pub request_id: RequestId,
3512 #[serde(skip_serializing_if = "Option::is_none")]
3514 pub selected_action: Option<ExitPlanModeAction>,
3515}
3516
3517#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3519#[serde(rename_all = "camelCase")]
3520pub struct SessionToolsUpdatedData {
3521 pub model: String,
3523}
3524
3525#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3527#[serde(rename_all = "camelCase")]
3528pub struct SessionBackgroundTasksChangedData {}
3529
3530#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3532#[serde(rename_all = "camelCase")]
3533pub struct SkillsLoadedSkill {
3534 #[serde(skip_serializing_if = "Option::is_none")]
3536 pub argument_hint: Option<String>,
3537 pub description: String,
3539 pub enabled: bool,
3541 pub name: String,
3543 #[serde(skip_serializing_if = "Option::is_none")]
3545 pub path: Option<String>,
3546 pub source: SkillSource,
3548 pub user_invocable: bool,
3550}
3551
3552#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3554#[serde(rename_all = "camelCase")]
3555pub struct SessionSkillsLoadedData {
3556 pub skills: Vec<SkillsLoadedSkill>,
3558}
3559
3560#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3562#[serde(rename_all = "camelCase")]
3563pub struct CustomAgentsUpdatedAgent {
3564 pub description: String,
3566 pub display_name: String,
3568 pub id: String,
3570 #[serde(skip_serializing_if = "Option::is_none")]
3572 pub model: Option<String>,
3573 pub name: String,
3575 pub source: String,
3577 pub tools: Option<Vec<String>>,
3579 pub user_invocable: bool,
3581}
3582
3583#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3585#[serde(rename_all = "camelCase")]
3586pub struct SessionCustomAgentsUpdatedData {
3587 pub agents: Vec<CustomAgentsUpdatedAgent>,
3589 pub errors: Vec<String>,
3591 pub warnings: Vec<String>,
3593}
3594
3595#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3597#[serde(rename_all = "camelCase")]
3598pub struct McpServersLoadedServer {
3599 #[serde(skip_serializing_if = "Option::is_none")]
3601 pub error: Option<String>,
3602 pub name: String,
3604 #[serde(skip_serializing_if = "Option::is_none")]
3606 pub plugin_name: Option<String>,
3607 #[serde(skip_serializing_if = "Option::is_none")]
3609 pub plugin_version: Option<String>,
3610 #[serde(skip_serializing_if = "Option::is_none")]
3612 pub source: Option<McpServerSource>,
3613 pub status: McpServerStatus,
3615 #[serde(skip_serializing_if = "Option::is_none")]
3617 pub transport: Option<McpServerTransport>,
3618}
3619
3620#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3622#[serde(rename_all = "camelCase")]
3623pub struct SessionMcpServersLoadedData {
3624 pub servers: Vec<McpServersLoadedServer>,
3626}
3627
3628#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3630#[serde(rename_all = "camelCase")]
3631pub struct SessionMcpServerStatusChangedData {
3632 #[serde(skip_serializing_if = "Option::is_none")]
3634 pub error: Option<String>,
3635 pub server_name: String,
3637 pub status: McpServerStatus,
3639}
3640
3641#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3643#[serde(rename_all = "camelCase")]
3644pub struct ExtensionsLoadedExtension {
3645 pub id: String,
3647 pub name: String,
3649 pub source: ExtensionsLoadedExtensionSource,
3651 pub status: ExtensionsLoadedExtensionStatus,
3653}
3654
3655#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3657#[serde(rename_all = "camelCase")]
3658pub struct SessionExtensionsLoadedData {
3659 pub extensions: Vec<ExtensionsLoadedExtension>,
3661}
3662
3663#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3672#[serde(rename_all = "camelCase")]
3673pub struct SessionCanvasOpenedData {
3674 pub canvas_id: String,
3676 pub extension_id: String,
3678 #[serde(skip_serializing_if = "Option::is_none")]
3680 pub extension_name: Option<String>,
3681 #[serde(skip_serializing_if = "Option::is_none")]
3683 pub input: Option<serde_json::Value>,
3684 pub instance_id: String,
3686 #[serde(skip_serializing_if = "Option::is_none")]
3688 pub status: Option<String>,
3689 #[serde(skip_serializing_if = "Option::is_none")]
3691 pub title: Option<String>,
3692 #[serde(skip_serializing_if = "Option::is_none")]
3694 pub url: Option<String>,
3695}
3696
3697#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3706#[serde(rename_all = "camelCase")]
3707pub struct CanvasRegistryChangedCanvasAction {
3708 #[serde(skip_serializing_if = "Option::is_none")]
3710 pub description: Option<String>,
3711 #[serde(skip_serializing_if = "Option::is_none")]
3713 pub input_schema: Option<serde_json::Value>,
3714 pub name: String,
3716}
3717
3718#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3727#[serde(rename_all = "camelCase")]
3728pub struct CanvasRegistryChangedCanvas {
3729 #[serde(skip_serializing_if = "Option::is_none")]
3731 pub actions: Option<Vec<CanvasRegistryChangedCanvasAction>>,
3732 pub canvas_id: String,
3734 pub description: String,
3736 pub display_name: String,
3738 pub extension_id: String,
3740 #[serde(skip_serializing_if = "Option::is_none")]
3742 pub extension_name: Option<String>,
3743 #[serde(skip_serializing_if = "Option::is_none")]
3745 pub input_schema: Option<serde_json::Value>,
3746}
3747
3748#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3757#[serde(rename_all = "camelCase")]
3758pub struct SessionCanvasRegistryChangedData {
3759 pub canvases: Vec<CanvasRegistryChangedCanvas>,
3761}
3762
3763#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3772#[serde(rename_all = "camelCase")]
3773pub struct SessionCanvasClosedData {
3774 pub canvas_id: String,
3776 pub extension_id: String,
3778 pub instance_id: String,
3780}
3781
3782#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3791#[serde(rename_all = "camelCase")]
3792pub struct SessionCanvasUnavailableData {
3793 pub canvas_id: String,
3795 pub extension_id: String,
3797 pub instance_id: String,
3799}
3800
3801#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3810#[serde(rename_all = "camelCase")]
3811pub struct SessionCanvasRecordedData {
3812 pub canvas_id: String,
3814 pub extension_id: String,
3816 #[serde(skip_serializing_if = "Option::is_none")]
3818 pub input: Option<serde_json::Value>,
3819 pub instance_id: String,
3821 #[serde(skip_serializing_if = "Option::is_none")]
3823 pub title: Option<String>,
3824}
3825
3826#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3835#[serde(rename_all = "camelCase")]
3836pub struct SessionCanvasRemovedData {
3837 pub canvas_id: String,
3839 pub extension_id: String,
3841 pub instance_id: String,
3843}
3844
3845#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3847#[serde(rename_all = "camelCase")]
3848pub struct SessionExtensionsAttachmentsPushedData {
3849 pub attachments: Vec<serde_json::Value>,
3851}
3852
3853#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3855#[serde(rename_all = "camelCase")]
3856pub struct McpAppToolCallCompleteError {
3857 pub message: String,
3859}
3860
3861#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3863#[serde(rename_all = "camelCase")]
3864pub struct McpAppToolCallCompleteToolMetaUI {
3865 #[serde(skip_serializing_if = "Option::is_none")]
3867 pub resource_uri: Option<String>,
3868 #[serde(skip_serializing_if = "Option::is_none")]
3870 pub visibility: Option<Vec<String>>,
3871}
3872
3873#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3875#[serde(rename_all = "camelCase")]
3876pub struct McpAppToolCallCompleteToolMeta {
3877 #[serde(skip_serializing_if = "Option::is_none")]
3879 pub ui: Option<McpAppToolCallCompleteToolMetaUI>,
3880}
3881
3882#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3884#[serde(rename_all = "camelCase")]
3885pub struct McpAppToolCallCompleteData {
3886 #[serde(skip_serializing_if = "Option::is_none")]
3888 pub arguments: Option<HashMap<String, serde_json::Value>>,
3889 pub duration_ms: f64,
3891 #[serde(skip_serializing_if = "Option::is_none")]
3893 pub error: Option<McpAppToolCallCompleteError>,
3894 #[serde(skip_serializing_if = "Option::is_none")]
3896 pub result: Option<HashMap<String, serde_json::Value>>,
3897 pub server_name: String,
3899 pub success: bool,
3901 #[serde(skip_serializing_if = "Option::is_none")]
3903 pub tool_meta: Option<McpAppToolCallCompleteToolMeta>,
3904 pub tool_name: String,
3906}
3907
3908#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
3910pub enum WorkingDirectoryContextHostType {
3911 #[serde(rename = "github")]
3913 GitHub,
3914 #[serde(rename = "ado")]
3916 Ado,
3917 #[default]
3919 #[serde(other)]
3920 Unknown,
3921}
3922
3923#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
3925pub enum ContextTier {
3926 #[serde(rename = "default")]
3928 Default,
3929 #[serde(rename = "long_context")]
3931 LongContext,
3932 #[default]
3934 #[serde(other)]
3935 Unknown,
3936}
3937
3938#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
3940pub enum ReasoningSummary {
3941 #[serde(rename = "none")]
3943 None,
3944 #[serde(rename = "concise")]
3946 Concise,
3947 #[serde(rename = "detailed")]
3949 Detailed,
3950 #[default]
3952 #[serde(other)]
3953 Unknown,
3954}
3955
3956#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
3958pub enum AutopilotObjectiveChangedOperation {
3959 #[serde(rename = "create")]
3961 Create,
3962 #[serde(rename = "update")]
3964 Update,
3965 #[serde(rename = "delete")]
3967 Delete,
3968 #[default]
3970 #[serde(other)]
3971 Unknown,
3972}
3973
3974#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
3976pub enum AutopilotObjectiveChangedStatus {
3977 #[serde(rename = "active")]
3979 Active,
3980 #[serde(rename = "paused")]
3982 Paused,
3983 #[serde(rename = "cap_reached")]
3985 CapReached,
3986 #[serde(rename = "completed")]
3988 Completed,
3989 #[default]
3991 #[serde(other)]
3992 Unknown,
3993}
3994
3995#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
3997pub enum SessionMode {
3998 #[serde(rename = "interactive")]
4000 Interactive,
4001 #[serde(rename = "plan")]
4003 Plan,
4004 #[serde(rename = "autopilot")]
4006 Autopilot,
4007 #[default]
4009 #[serde(other)]
4010 Unknown,
4011}
4012
4013#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4015pub enum PlanChangedOperation {
4016 #[serde(rename = "create")]
4018 Create,
4019 #[serde(rename = "update")]
4021 Update,
4022 #[serde(rename = "delete")]
4024 Delete,
4025 #[default]
4027 #[serde(other)]
4028 Unknown,
4029}
4030
4031#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4033pub enum WorkspaceFileChangedOperation {
4034 #[serde(rename = "create")]
4036 Create,
4037 #[serde(rename = "update")]
4039 Update,
4040 #[default]
4042 #[serde(other)]
4043 Unknown,
4044}
4045
4046#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4048pub enum HandoffSourceType {
4049 #[serde(rename = "remote")]
4051 Remote,
4052 #[serde(rename = "local")]
4054 Local,
4055 #[default]
4057 #[serde(other)]
4058 Unknown,
4059}
4060
4061#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4063pub enum ShutdownType {
4064 #[serde(rename = "routine")]
4066 Routine,
4067 #[serde(rename = "error")]
4069 Error,
4070 #[default]
4072 #[serde(other)]
4073 Unknown,
4074}
4075
4076#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4078pub enum UserMessageAgentMode {
4079 #[serde(rename = "interactive")]
4081 Interactive,
4082 #[serde(rename = "plan")]
4084 Plan,
4085 #[serde(rename = "autopilot")]
4087 Autopilot,
4088 #[serde(rename = "shell")]
4090 Shell,
4091 #[default]
4093 #[serde(other)]
4094 Unknown,
4095}
4096
4097#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4106pub enum CitationProvider {
4107 #[serde(rename = "anthropic")]
4109 Anthropic,
4110 #[serde(rename = "openai")]
4112 Openai,
4113 #[serde(rename = "client")]
4115 Client,
4116 #[default]
4118 #[serde(other)]
4119 Unknown,
4120}
4121
4122#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4124pub enum AssistantMessageToolRequestType {
4125 #[serde(rename = "function")]
4127 Function,
4128 #[serde(rename = "custom")]
4130 Custom,
4131 #[default]
4133 #[serde(other)]
4134 Unknown,
4135}
4136
4137#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4139pub enum AssistantUsageApiEndpoint {
4140 #[serde(rename = "/chat/completions")]
4142 ChatCompletions,
4143 #[serde(rename = "/v1/messages")]
4145 V1Messages,
4146 #[serde(rename = "/responses")]
4148 Responses,
4149 #[serde(rename = "ws:/responses")]
4151 WsResponses,
4152 #[default]
4154 #[serde(other)]
4155 Unknown,
4156}
4157
4158#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4160pub enum ModelCallFailureBadRequestKind {
4161 #[serde(rename = "bodyless")]
4163 Bodyless,
4164 #[serde(rename = "structured_error")]
4166 StructuredError,
4167 #[default]
4169 #[serde(other)]
4170 Unknown,
4171}
4172
4173#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4175pub enum ModelCallFailureSource {
4176 #[serde(rename = "top_level")]
4178 TopLevel,
4179 #[serde(rename = "subagent")]
4181 Subagent,
4182 #[serde(rename = "mcp_sampling")]
4184 McpSampling,
4185 #[default]
4187 #[serde(other)]
4188 Unknown,
4189}
4190
4191#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4193pub enum AbortReason {
4194 #[serde(rename = "user_initiated")]
4196 UserInitiated,
4197 #[serde(rename = "remote_command")]
4199 RemoteCommand,
4200 #[serde(rename = "user_abort")]
4202 UserAbort,
4203 #[default]
4205 #[serde(other)]
4206 Unknown,
4207}
4208
4209#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4211pub enum ToolExecutionStartToolDescriptionMetaUIVisibility {
4212 #[serde(rename = "model")]
4214 Model,
4215 #[serde(rename = "app")]
4217 App,
4218 #[default]
4220 #[serde(other)]
4221 Unknown,
4222}
4223
4224#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4226pub enum ToolExecutionCompleteContentTextType {
4227 #[serde(rename = "text")]
4228 #[default]
4229 Text,
4230}
4231
4232#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4234pub enum ToolExecutionCompleteContentTerminalType {
4235 #[serde(rename = "terminal")]
4236 #[default]
4237 Terminal,
4238}
4239
4240#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4242pub enum ToolExecutionCompleteContentImageType {
4243 #[serde(rename = "image")]
4244 #[default]
4245 Image,
4246}
4247
4248#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4250pub enum ToolExecutionCompleteContentAudioType {
4251 #[serde(rename = "audio")]
4252 #[default]
4253 Audio,
4254}
4255
4256#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4258pub enum ToolExecutionCompleteContentResourceLinkIconTheme {
4259 #[serde(rename = "light")]
4261 Light,
4262 #[serde(rename = "dark")]
4264 Dark,
4265 #[default]
4267 #[serde(other)]
4268 Unknown,
4269}
4270
4271#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4273pub enum ToolExecutionCompleteContentResourceLinkType {
4274 #[serde(rename = "resource_link")]
4275 #[default]
4276 ResourceLink,
4277}
4278
4279#[derive(Debug, Clone, Serialize, Deserialize)]
4281#[serde(untagged)]
4282pub enum ToolExecutionCompleteContentResourceDetails {
4283 EmbeddedTextResourceContents(EmbeddedTextResourceContents),
4284 EmbeddedBlobResourceContents(EmbeddedBlobResourceContents),
4285}
4286
4287#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4289pub enum ToolExecutionCompleteContentResourceType {
4290 #[serde(rename = "resource")]
4291 #[default]
4292 Resource,
4293}
4294
4295#[derive(Debug, Clone, Serialize, Deserialize)]
4297#[serde(untagged)]
4298pub enum ToolExecutionCompleteContent {
4299 Text(ToolExecutionCompleteContentText),
4300 Terminal(ToolExecutionCompleteContentTerminal),
4301 Image(ToolExecutionCompleteContentImage),
4302 Audio(ToolExecutionCompleteContentAudio),
4303 ResourceLink(ToolExecutionCompleteContentResourceLink),
4304 Resource(ToolExecutionCompleteContentResource),
4305}
4306
4307#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4309pub enum ToolExecutionCompleteToolDescriptionMetaUIVisibility {
4310 #[serde(rename = "model")]
4312 Model,
4313 #[serde(rename = "app")]
4315 App,
4316 #[default]
4318 #[serde(other)]
4319 Unknown,
4320}
4321
4322#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4324pub enum SkillInvokedTrigger {
4325 #[serde(rename = "user-invoked")]
4327 UserInvoked,
4328 #[serde(rename = "agent-invoked")]
4330 AgentInvoked,
4331 #[serde(rename = "context-load")]
4333 ContextLoad,
4334 #[default]
4336 #[serde(other)]
4337 Unknown,
4338}
4339
4340#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4342pub enum BinaryAssetType {
4343 #[serde(rename = "image")]
4345 Image,
4346 #[serde(rename = "resource")]
4348 Resource,
4349 #[default]
4351 #[serde(other)]
4352 Unknown,
4353}
4354
4355#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4357pub enum SystemMessageRole {
4358 #[serde(rename = "system")]
4360 System,
4361 #[serde(rename = "developer")]
4363 Developer,
4364 #[default]
4366 #[serde(other)]
4367 Unknown,
4368}
4369
4370#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4372pub enum PermissionRequestShellKind {
4373 #[serde(rename = "shell")]
4374 #[default]
4375 Shell,
4376}
4377
4378#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4380pub enum PermissionRequestWriteKind {
4381 #[serde(rename = "write")]
4382 #[default]
4383 Write,
4384}
4385
4386#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4388pub enum PermissionRequestReadKind {
4389 #[serde(rename = "read")]
4390 #[default]
4391 Read,
4392}
4393
4394#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4396pub enum PermissionRequestMcpKind {
4397 #[serde(rename = "mcp")]
4398 #[default]
4399 Mcp,
4400}
4401
4402#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4404pub enum PermissionRequestUrlKind {
4405 #[serde(rename = "url")]
4406 #[default]
4407 Url,
4408}
4409
4410#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4412pub enum PermissionRequestMemoryAction {
4413 #[serde(rename = "store")]
4415 Store,
4416 #[serde(rename = "vote")]
4418 Vote,
4419 #[default]
4421 #[serde(other)]
4422 Unknown,
4423}
4424
4425#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4427pub enum PermissionRequestMemoryDirection {
4428 #[serde(rename = "upvote")]
4430 Upvote,
4431 #[serde(rename = "downvote")]
4433 Downvote,
4434 #[default]
4436 #[serde(other)]
4437 Unknown,
4438}
4439
4440#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4442pub enum PermissionRequestMemoryKind {
4443 #[serde(rename = "memory")]
4444 #[default]
4445 Memory,
4446}
4447
4448#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4450pub enum PermissionRequestCustomToolKind {
4451 #[serde(rename = "custom-tool")]
4452 #[default]
4453 CustomTool,
4454}
4455
4456#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4458pub enum PermissionRequestHookKind {
4459 #[serde(rename = "hook")]
4460 #[default]
4461 Hook,
4462}
4463
4464#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4466pub enum PermissionRequestExtensionManagementKind {
4467 #[serde(rename = "extension-management")]
4468 #[default]
4469 ExtensionManagement,
4470}
4471
4472#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4474pub enum PermissionRequestExtensionPermissionAccessKind {
4475 #[serde(rename = "extension-permission-access")]
4476 #[default]
4477 ExtensionPermissionAccess,
4478}
4479
4480#[derive(Debug, Clone, Serialize, Deserialize)]
4482#[serde(untagged)]
4483pub enum PermissionRequest {
4484 Shell(PermissionRequestShell),
4485 Write(PermissionRequestWrite),
4486 Read(PermissionRequestRead),
4487 Mcp(PermissionRequestMcp),
4488 Url(PermissionRequestUrl),
4489 Memory(PermissionRequestMemory),
4490 CustomTool(PermissionRequestCustomTool),
4491 Hook(PermissionRequestHook),
4492 ExtensionManagement(PermissionRequestExtensionManagement),
4493 ExtensionPermissionAccess(PermissionRequestExtensionPermissionAccess),
4494}
4495
4496#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4498pub enum PermissionPromptRequestCommandsKind {
4499 #[serde(rename = "commands")]
4500 #[default]
4501 Commands,
4502}
4503
4504#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4506pub enum PermissionPromptRequestWriteKind {
4507 #[serde(rename = "write")]
4508 #[default]
4509 Write,
4510}
4511
4512#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4514pub enum PermissionPromptRequestReadKind {
4515 #[serde(rename = "read")]
4516 #[default]
4517 Read,
4518}
4519
4520#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4522pub enum PermissionPromptRequestMcpKind {
4523 #[serde(rename = "mcp")]
4524 #[default]
4525 Mcp,
4526}
4527
4528#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4530pub enum PermissionPromptRequestUrlKind {
4531 #[serde(rename = "url")]
4532 #[default]
4533 Url,
4534}
4535
4536#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4538pub enum PermissionPromptRequestMemoryKind {
4539 #[serde(rename = "memory")]
4540 #[default]
4541 Memory,
4542}
4543
4544#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4546pub enum PermissionPromptRequestCustomToolKind {
4547 #[serde(rename = "custom-tool")]
4548 #[default]
4549 CustomTool,
4550}
4551
4552#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4554pub enum PermissionPromptRequestPathAccessKind {
4555 #[serde(rename = "read")]
4557 Read,
4558 #[serde(rename = "shell")]
4560 Shell,
4561 #[serde(rename = "write")]
4563 Write,
4564 #[default]
4566 #[serde(other)]
4567 Unknown,
4568}
4569
4570#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4572pub enum PermissionPromptRequestPathKind {
4573 #[serde(rename = "path")]
4574 #[default]
4575 Path,
4576}
4577
4578#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4580pub enum PermissionPromptRequestHookKind {
4581 #[serde(rename = "hook")]
4582 #[default]
4583 Hook,
4584}
4585
4586#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4588pub enum PermissionPromptRequestExtensionManagementKind {
4589 #[serde(rename = "extension-management")]
4590 #[default]
4591 ExtensionManagement,
4592}
4593
4594#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4596pub enum PermissionPromptRequestExtensionPermissionAccessKind {
4597 #[serde(rename = "extension-permission-access")]
4598 #[default]
4599 ExtensionPermissionAccess,
4600}
4601
4602#[derive(Debug, Clone, Serialize, Deserialize)]
4604#[serde(untagged)]
4605pub enum PermissionPromptRequest {
4606 Commands(PermissionPromptRequestCommands),
4607 Write(PermissionPromptRequestWrite),
4608 Read(PermissionPromptRequestRead),
4609 Mcp(PermissionPromptRequestMcp),
4610 Url(PermissionPromptRequestUrl),
4611 Memory(PermissionPromptRequestMemory),
4612 CustomTool(PermissionPromptRequestCustomTool),
4613 Path(PermissionPromptRequestPath),
4614 Hook(PermissionPromptRequestHook),
4615 ExtensionManagement(PermissionPromptRequestExtensionManagement),
4616 ExtensionPermissionAccess(PermissionPromptRequestExtensionPermissionAccess),
4617}
4618
4619#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4621pub enum PermissionApprovedKind {
4622 #[serde(rename = "approved")]
4623 #[default]
4624 Approved,
4625}
4626
4627#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4629pub enum UserToolSessionApprovalCommandsKind {
4630 #[serde(rename = "commands")]
4631 #[default]
4632 Commands,
4633}
4634
4635#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4637pub enum UserToolSessionApprovalReadKind {
4638 #[serde(rename = "read")]
4639 #[default]
4640 Read,
4641}
4642
4643#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4645pub enum UserToolSessionApprovalWriteKind {
4646 #[serde(rename = "write")]
4647 #[default]
4648 Write,
4649}
4650
4651#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4653pub enum UserToolSessionApprovalMcpKind {
4654 #[serde(rename = "mcp")]
4655 #[default]
4656 Mcp,
4657}
4658
4659#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4661pub enum UserToolSessionApprovalMemoryKind {
4662 #[serde(rename = "memory")]
4663 #[default]
4664 Memory,
4665}
4666
4667#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4669pub enum UserToolSessionApprovalCustomToolKind {
4670 #[serde(rename = "custom-tool")]
4671 #[default]
4672 CustomTool,
4673}
4674
4675#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4677pub enum UserToolSessionApprovalExtensionManagementKind {
4678 #[serde(rename = "extension-management")]
4679 #[default]
4680 ExtensionManagement,
4681}
4682
4683#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4685pub enum UserToolSessionApprovalExtensionPermissionAccessKind {
4686 #[serde(rename = "extension-permission-access")]
4687 #[default]
4688 ExtensionPermissionAccess,
4689}
4690
4691#[derive(Debug, Clone, Serialize, Deserialize)]
4693#[serde(untagged)]
4694pub enum UserToolSessionApproval {
4695 Commands(UserToolSessionApprovalCommands),
4696 Read(UserToolSessionApprovalRead),
4697 Write(UserToolSessionApprovalWrite),
4698 Mcp(UserToolSessionApprovalMcp),
4699 Memory(UserToolSessionApprovalMemory),
4700 CustomTool(UserToolSessionApprovalCustomTool),
4701 ExtensionManagement(UserToolSessionApprovalExtensionManagement),
4702 ExtensionPermissionAccess(UserToolSessionApprovalExtensionPermissionAccess),
4703}
4704
4705#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4707pub enum PermissionApprovedForSessionKind {
4708 #[serde(rename = "approved-for-session")]
4709 #[default]
4710 ApprovedForSession,
4711}
4712
4713#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4715pub enum PermissionApprovedForLocationKind {
4716 #[serde(rename = "approved-for-location")]
4717 #[default]
4718 ApprovedForLocation,
4719}
4720
4721#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4723pub enum PermissionCancelledKind {
4724 #[serde(rename = "cancelled")]
4725 #[default]
4726 Cancelled,
4727}
4728
4729#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4731pub enum PermissionDeniedByRulesKind {
4732 #[serde(rename = "denied-by-rules")]
4733 #[default]
4734 DeniedByRules,
4735}
4736
4737#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4739pub enum PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUserKind {
4740 #[serde(rename = "denied-no-approval-rule-and-could-not-request-from-user")]
4741 #[default]
4742 DeniedNoApprovalRuleAndCouldNotRequestFromUser,
4743}
4744
4745#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4747pub enum PermissionDeniedInteractivelyByUserKind {
4748 #[serde(rename = "denied-interactively-by-user")]
4749 #[default]
4750 DeniedInteractivelyByUser,
4751}
4752
4753#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4755pub enum PermissionDeniedByContentExclusionPolicyKind {
4756 #[serde(rename = "denied-by-content-exclusion-policy")]
4757 #[default]
4758 DeniedByContentExclusionPolicy,
4759}
4760
4761#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4763pub enum PermissionDeniedByPermissionRequestHookKind {
4764 #[serde(rename = "denied-by-permission-request-hook")]
4765 #[default]
4766 DeniedByPermissionRequestHook,
4767}
4768
4769#[derive(Debug, Clone, Serialize, Deserialize)]
4771#[serde(untagged)]
4772pub enum PermissionResult {
4773 Approved(PermissionApproved),
4774 ApprovedForSession(PermissionApprovedForSession),
4775 ApprovedForLocation(PermissionApprovedForLocation),
4776 Cancelled(PermissionCancelled),
4777 DeniedByRules(PermissionDeniedByRules),
4778 DeniedNoApprovalRuleAndCouldNotRequestFromUser(
4779 PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser,
4780 ),
4781 DeniedInteractivelyByUser(PermissionDeniedInteractivelyByUser),
4782 DeniedByContentExclusionPolicy(PermissionDeniedByContentExclusionPolicy),
4783 DeniedByPermissionRequestHook(PermissionDeniedByPermissionRequestHook),
4784}
4785
4786#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4788pub enum ElicitationRequestedMode {
4789 #[serde(rename = "form")]
4791 Form,
4792 #[serde(rename = "url")]
4794 Url,
4795 #[default]
4797 #[serde(other)]
4798 Unknown,
4799}
4800
4801#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4803pub enum ElicitationRequestedSchemaType {
4804 #[serde(rename = "object")]
4805 #[default]
4806 Object,
4807}
4808
4809#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4811pub enum ElicitationCompletedAction {
4812 #[serde(rename = "accept")]
4814 Accept,
4815 #[serde(rename = "decline")]
4817 Decline,
4818 #[serde(rename = "cancel")]
4820 Cancel,
4821 #[default]
4823 #[serde(other)]
4824 Unknown,
4825}
4826
4827#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4829pub enum McpOauthRequiredStaticClientConfigGrantType {
4830 #[serde(rename = "client_credentials")]
4831 #[default]
4832 ClientCredentials,
4833}
4834
4835#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4837pub enum McpOauthCompletionOutcome {
4838 #[serde(rename = "token")]
4840 Token,
4841 #[serde(rename = "cancelled")]
4843 Cancelled,
4844 #[default]
4846 #[serde(other)]
4847 Unknown,
4848}
4849
4850#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4852pub enum AutoModeSwitchResponse {
4853 #[serde(rename = "yes")]
4855 Yes,
4856 #[serde(rename = "yes_always")]
4858 YesAlways,
4859 #[serde(rename = "no")]
4861 No,
4862 #[default]
4864 #[serde(other)]
4865 Unknown,
4866}
4867
4868#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4870pub enum ExitPlanModeAction {
4871 #[serde(rename = "exit_only")]
4873 ExitOnly,
4874 #[serde(rename = "interactive")]
4876 Interactive,
4877 #[serde(rename = "autopilot")]
4879 Autopilot,
4880 #[serde(rename = "autopilot_fleet")]
4882 AutopilotFleet,
4883 #[default]
4885 #[serde(other)]
4886 Unknown,
4887}
4888
4889#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4891pub enum SkillSource {
4892 #[serde(rename = "project")]
4894 Project,
4895 #[serde(rename = "inherited")]
4897 Inherited,
4898 #[serde(rename = "personal-copilot")]
4900 PersonalCopilot,
4901 #[serde(rename = "personal-agents")]
4903 PersonalAgents,
4904 #[serde(rename = "plugin")]
4906 Plugin,
4907 #[serde(rename = "custom")]
4909 Custom,
4910 #[serde(rename = "builtin")]
4912 Builtin,
4913 #[default]
4915 #[serde(other)]
4916 Unknown,
4917}
4918
4919#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4921pub enum McpServerSource {
4922 #[serde(rename = "user")]
4924 User,
4925 #[serde(rename = "workspace")]
4927 Workspace,
4928 #[serde(rename = "plugin")]
4930 Plugin,
4931 #[serde(rename = "builtin")]
4933 Builtin,
4934 #[default]
4936 #[serde(other)]
4937 Unknown,
4938}
4939
4940#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4942pub enum McpServerStatus {
4943 #[serde(rename = "connected")]
4945 Connected,
4946 #[serde(rename = "failed")]
4948 Failed,
4949 #[serde(rename = "needs-auth")]
4951 NeedsAuth,
4952 #[serde(rename = "pending")]
4954 Pending,
4955 #[serde(rename = "disabled")]
4957 Disabled,
4958 #[serde(rename = "not_configured")]
4960 NotConfigured,
4961 #[default]
4963 #[serde(other)]
4964 Unknown,
4965}
4966
4967#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4969pub enum McpServerTransport {
4970 #[serde(rename = "stdio")]
4972 Stdio,
4973 #[serde(rename = "http")]
4975 Http,
4976 #[serde(rename = "sse")]
4978 Sse,
4979 #[serde(rename = "memory")]
4981 Memory,
4982 #[default]
4984 #[serde(other)]
4985 Unknown,
4986}
4987
4988#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4990pub enum ExtensionsLoadedExtensionSource {
4991 #[serde(rename = "project")]
4993 Project,
4994 #[serde(rename = "user")]
4996 User,
4997 #[serde(rename = "plugin")]
4999 Plugin,
5000 #[serde(rename = "session")]
5002 Session,
5003 #[default]
5005 #[serde(other)]
5006 Unknown,
5007}
5008
5009#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5011pub enum ExtensionsLoadedExtensionStatus {
5012 #[serde(rename = "running")]
5014 Running,
5015 #[serde(rename = "disabled")]
5017 Disabled,
5018 #[serde(rename = "failed")]
5020 Failed,
5021 #[serde(rename = "starting")]
5023 Starting,
5024 #[default]
5026 #[serde(other)]
5027 Unknown,
5028}