1#![allow(deprecated)]
4
5use std::collections::HashMap;
6
7use serde::{Deserialize, Serialize};
8
9use crate::types::{RequestId, SessionId};
10
11#[derive(Debug, Clone, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
13pub enum SessionEventType {
14 #[serde(rename = "session.start")]
15 SessionStart,
16 #[serde(rename = "session.resume")]
17 SessionResume,
18 #[serde(rename = "session.remote_steerable_changed")]
19 SessionRemoteSteerableChanged,
20 #[serde(rename = "session.error")]
21 SessionError,
22 #[serde(rename = "session.idle")]
23 SessionIdle,
24 #[serde(rename = "session.title_changed")]
25 SessionTitleChanged,
26 #[serde(rename = "session.schedule_created")]
27 SessionScheduleCreated,
28 #[serde(rename = "session.schedule_cancelled")]
29 SessionScheduleCancelled,
30 #[serde(rename = "session.schedule_rearmed")]
31 SessionScheduleRearmed,
32 #[serde(rename = "session.autopilot_objective_changed")]
33 SessionAutopilotObjectiveChanged,
34 #[serde(rename = "session.info")]
35 SessionInfo,
36 #[serde(rename = "session.warning")]
37 SessionWarning,
38 #[serde(rename = "session.model_change")]
39 SessionModelChange,
40 #[serde(rename = "session.mode_changed")]
41 SessionModeChanged,
42 #[serde(rename = "session.session_limits_changed")]
43 SessionSessionLimitsChanged,
44 #[serde(rename = "session.permissions_changed")]
45 SessionPermissionsChanged,
46 #[serde(rename = "session.plan_changed")]
47 SessionPlanChanged,
48 #[serde(rename = "session.todos_changed")]
49 SessionTodosChanged,
50 #[serde(rename = "session.workspace_file_changed")]
51 SessionWorkspaceFileChanged,
52 #[serde(rename = "session.handoff")]
53 SessionHandoff,
54 #[serde(rename = "session.truncation")]
55 SessionTruncation,
56 #[serde(rename = "session.snapshot_rewind")]
57 SessionSnapshotRewind,
58 #[serde(rename = "session.shutdown")]
59 SessionShutdown,
60 #[serde(rename = "session.usage_checkpoint")]
61 SessionUsageCheckpoint,
62 #[serde(rename = "session.context_changed")]
63 SessionContextChanged,
64 #[serde(rename = "session.usage_info")]
65 SessionUsageInfo,
66 #[serde(rename = "session.compaction_start")]
67 SessionCompactionStart,
68 #[serde(rename = "session.compaction_complete")]
69 SessionCompactionComplete,
70 #[serde(rename = "session.task_complete")]
71 SessionTaskComplete,
72 #[serde(rename = "user.message")]
73 UserMessage,
74 #[serde(rename = "pending_messages.modified")]
75 PendingMessagesModified,
76 #[serde(rename = "assistant.turn_start")]
77 AssistantTurnStart,
78 #[serde(rename = "assistant.turn_retry")]
79 AssistantTurnRetry,
80 #[serde(rename = "assistant.intent")]
81 AssistantIntent,
82 #[serde(rename = "assistant.server_tool_progress")]
83 AssistantServerToolProgress,
84 #[serde(rename = "assistant.reasoning")]
85 AssistantReasoning,
86 #[serde(rename = "assistant.reasoning_delta")]
87 AssistantReasoningDelta,
88 #[serde(rename = "assistant.tool_call_delta")]
89 AssistantToolCallDelta,
90 #[serde(rename = "assistant.streaming_delta")]
91 AssistantStreamingDelta,
92 #[serde(rename = "assistant.message")]
93 AssistantMessage,
94 #[serde(rename = "assistant.message_start")]
95 AssistantMessageStart,
96 #[serde(rename = "assistant.message_delta")]
97 AssistantMessageDelta,
98 #[serde(rename = "assistant.turn_end")]
99 AssistantTurnEnd,
100 #[serde(rename = "assistant.idle")]
101 AssistantIdle,
102 #[serde(rename = "assistant.usage")]
103 AssistantUsage,
104 #[serde(rename = "model.call_failure")]
105 ModelCallFailure,
106 #[serde(rename = "model.call_start")]
107 ModelCallStart,
108 #[serde(rename = "abort")]
109 Abort,
110 #[serde(rename = "tool.user_requested")]
111 ToolUserRequested,
112 #[serde(rename = "tool.execution_start")]
113 ToolExecutionStart,
114 #[serde(rename = "tool.execution_partial_result")]
115 ToolExecutionPartialResult,
116 #[serde(rename = "tool.execution_progress")]
117 ToolExecutionProgress,
118 #[serde(rename = "tool.execution_complete")]
119 ToolExecutionComplete,
120 #[serde(rename = "tool_search.activated")]
121 ToolSearchActivated,
122 #[serde(rename = "skill.invoked")]
123 SkillInvoked,
124 #[serde(rename = "subagent.started")]
125 SubagentStarted,
126 #[serde(rename = "subagent.completed")]
127 SubagentCompleted,
128 #[serde(rename = "subagent.failed")]
129 SubagentFailed,
130 #[serde(rename = "subagent.selected")]
131 SubagentSelected,
132 #[serde(rename = "subagent.deselected")]
133 SubagentDeselected,
134 #[serde(rename = "hook.start")]
135 HookStart,
136 #[serde(rename = "hook.end")]
137 HookEnd,
138 #[serde(rename = "hook.progress")]
139 HookProgress,
140 #[serde(rename = "session.binary_asset")]
148 SessionBinaryAsset,
149 #[serde(rename = "system.message")]
150 SystemMessage,
151 #[serde(rename = "system.notification")]
152 SystemNotification,
153 #[serde(rename = "permission.requested")]
154 PermissionRequested,
155 #[serde(rename = "permission.completed")]
156 PermissionCompleted,
157 #[serde(rename = "user_input.requested")]
158 UserInputRequested,
159 #[serde(rename = "user_input.completed")]
160 UserInputCompleted,
161 #[serde(rename = "elicitation.requested")]
162 ElicitationRequested,
163 #[serde(rename = "elicitation.completed")]
164 ElicitationCompleted,
165 #[serde(rename = "sampling.requested")]
166 SamplingRequested,
167 #[serde(rename = "sampling.completed")]
168 SamplingCompleted,
169 #[serde(rename = "mcp.oauth_required")]
170 McpOauthRequired,
171 #[serde(rename = "mcp.oauth_completed")]
172 McpOauthCompleted,
173 #[serde(rename = "mcp.headers_refresh_required")]
174 McpHeadersRefreshRequired,
175 #[serde(rename = "mcp.headers_refresh_completed")]
176 McpHeadersRefreshCompleted,
177 #[serde(rename = "session.custom_notification")]
178 SessionCustomNotification,
179 #[serde(rename = "external_tool.requested")]
180 ExternalToolRequested,
181 #[serde(rename = "external_tool.completed")]
182 ExternalToolCompleted,
183 #[serde(rename = "command.queued")]
184 CommandQueued,
185 #[serde(rename = "command.execute")]
186 CommandExecute,
187 #[serde(rename = "command.completed")]
188 CommandCompleted,
189 #[serde(rename = "auto_mode_switch.requested")]
190 AutoModeSwitchRequested,
191 #[serde(rename = "auto_mode_switch.completed")]
192 AutoModeSwitchCompleted,
193 #[serde(rename = "session_limits_exhausted.requested")]
194 SessionLimitsExhaustedRequested,
195 #[serde(rename = "session_limits_exhausted.completed")]
196 SessionLimitsExhaustedCompleted,
197 #[serde(rename = "session.auto_mode_resolved")]
205 SessionAutoModeResolved,
206 #[serde(rename = "session.managed_settings_resolved")]
214 SessionManagedSettingsResolved,
215 #[serde(rename = "session.managed_settings_enforced")]
223 SessionManagedSettingsEnforced,
224 #[serde(rename = "commands.changed")]
225 CommandsChanged,
226 #[serde(rename = "capabilities.changed")]
227 CapabilitiesChanged,
228 #[serde(rename = "exit_plan_mode.requested")]
229 ExitPlanModeRequested,
230 #[serde(rename = "exit_plan_mode.completed")]
231 ExitPlanModeCompleted,
232 #[serde(rename = "session.tools_updated")]
233 SessionToolsUpdated,
234 #[serde(rename = "session.background_tasks_changed")]
235 SessionBackgroundTasksChanged,
236 #[serde(rename = "session.skills_loaded")]
237 SessionSkillsLoaded,
238 #[serde(rename = "session.custom_agents_updated")]
239 SessionCustomAgentsUpdated,
240 #[serde(rename = "session.mcp_servers_loaded")]
241 SessionMcpServersLoaded,
242 #[serde(rename = "session.mcp_server_status_changed")]
243 SessionMcpServerStatusChanged,
244 #[serde(rename = "mcp.tools.list_changed")]
245 McpToolsListChanged,
246 #[serde(rename = "mcp.resources.list_changed")]
247 McpResourcesListChanged,
248 #[serde(rename = "mcp.prompts.list_changed")]
249 McpPromptsListChanged,
250 #[serde(rename = "session.extensions_loaded")]
251 SessionExtensionsLoaded,
252 #[serde(rename = "session.canvas.opened")]
260 SessionCanvasOpened,
261 #[serde(rename = "session.canvas.registry_changed")]
269 SessionCanvasRegistryChanged,
270 #[serde(rename = "session.canvas.closed")]
278 SessionCanvasClosed,
279 #[serde(rename = "session.canvas.unavailable")]
287 SessionCanvasUnavailable,
288 #[serde(rename = "session.canvas.recorded")]
296 SessionCanvasRecorded,
297 #[serde(rename = "session.canvas.removed")]
305 SessionCanvasRemoved,
306 #[serde(rename = "session.extensions.attachments_pushed")]
307 SessionExtensionsAttachmentsPushed,
308 #[serde(rename = "mcp_app.tool_call_complete")]
309 McpAppToolCallComplete,
310 #[default]
312 #[serde(other)]
313 Unknown,
314}
315
316#[derive(Debug, Clone, Serialize, Deserialize)]
320#[serde(tag = "type", content = "data")]
321pub enum SessionEventData {
322 #[serde(rename = "session.start")]
323 SessionStart(SessionStartData),
324 #[serde(rename = "session.resume")]
325 SessionResume(SessionResumeData),
326 #[serde(rename = "session.remote_steerable_changed")]
327 SessionRemoteSteerableChanged(SessionRemoteSteerableChangedData),
328 #[serde(rename = "session.error")]
329 SessionError(SessionErrorData),
330 #[serde(rename = "session.idle")]
331 SessionIdle(SessionIdleData),
332 #[serde(rename = "session.title_changed")]
333 SessionTitleChanged(SessionTitleChangedData),
334 #[serde(rename = "session.schedule_created")]
335 SessionScheduleCreated(SessionScheduleCreatedData),
336 #[serde(rename = "session.schedule_cancelled")]
337 SessionScheduleCancelled(SessionScheduleCancelledData),
338 #[serde(rename = "session.schedule_rearmed")]
339 SessionScheduleRearmed(SessionScheduleRearmedData),
340 #[serde(rename = "session.autopilot_objective_changed")]
341 SessionAutopilotObjectiveChanged(SessionAutopilotObjectiveChangedData),
342 #[serde(rename = "session.info")]
343 SessionInfo(SessionInfoData),
344 #[serde(rename = "session.warning")]
345 SessionWarning(SessionWarningData),
346 #[serde(rename = "session.model_change")]
347 SessionModelChange(SessionModelChangeData),
348 #[serde(rename = "session.mode_changed")]
349 SessionModeChanged(SessionModeChangedData),
350 #[serde(rename = "session.session_limits_changed")]
351 SessionSessionLimitsChanged(SessionSessionLimitsChangedData),
352 #[serde(rename = "session.permissions_changed")]
353 SessionPermissionsChanged(SessionPermissionsChangedData),
354 #[serde(rename = "session.plan_changed")]
355 SessionPlanChanged(SessionPlanChangedData),
356 #[serde(rename = "session.todos_changed")]
357 SessionTodosChanged(SessionTodosChangedData),
358 #[serde(rename = "session.workspace_file_changed")]
359 SessionWorkspaceFileChanged(SessionWorkspaceFileChangedData),
360 #[serde(rename = "session.handoff")]
361 SessionHandoff(SessionHandoffData),
362 #[serde(rename = "session.truncation")]
363 SessionTruncation(SessionTruncationData),
364 #[serde(rename = "session.snapshot_rewind")]
365 SessionSnapshotRewind(SessionSnapshotRewindData),
366 #[serde(rename = "session.shutdown")]
367 SessionShutdown(SessionShutdownData),
368 #[serde(rename = "session.usage_checkpoint")]
369 SessionUsageCheckpoint(SessionUsageCheckpointData),
370 #[serde(rename = "session.context_changed")]
371 SessionContextChanged(SessionContextChangedData),
372 #[serde(rename = "session.usage_info")]
373 SessionUsageInfo(SessionUsageInfoData),
374 #[serde(rename = "session.compaction_start")]
375 SessionCompactionStart(SessionCompactionStartData),
376 #[serde(rename = "session.compaction_complete")]
377 SessionCompactionComplete(SessionCompactionCompleteData),
378 #[serde(rename = "session.task_complete")]
379 SessionTaskComplete(SessionTaskCompleteData),
380 #[serde(rename = "user.message")]
381 UserMessage(UserMessageData),
382 #[serde(rename = "pending_messages.modified")]
383 PendingMessagesModified(PendingMessagesModifiedData),
384 #[serde(rename = "assistant.turn_start")]
385 AssistantTurnStart(AssistantTurnStartData),
386 #[serde(rename = "assistant.turn_retry")]
387 AssistantTurnRetry(AssistantTurnRetryData),
388 #[serde(rename = "assistant.intent")]
389 AssistantIntent(AssistantIntentData),
390 #[serde(rename = "assistant.server_tool_progress")]
391 AssistantServerToolProgress(AssistantServerToolProgressData),
392 #[serde(rename = "assistant.reasoning")]
393 AssistantReasoning(AssistantReasoningData),
394 #[serde(rename = "assistant.reasoning_delta")]
395 AssistantReasoningDelta(AssistantReasoningDeltaData),
396 #[serde(rename = "assistant.tool_call_delta")]
397 AssistantToolCallDelta(AssistantToolCallDeltaData),
398 #[serde(rename = "assistant.streaming_delta")]
399 AssistantStreamingDelta(AssistantStreamingDeltaData),
400 #[serde(rename = "assistant.message")]
401 AssistantMessage(AssistantMessageData),
402 #[serde(rename = "assistant.message_start")]
403 AssistantMessageStart(AssistantMessageStartData),
404 #[serde(rename = "assistant.message_delta")]
405 AssistantMessageDelta(AssistantMessageDeltaData),
406 #[serde(rename = "assistant.turn_end")]
407 AssistantTurnEnd(AssistantTurnEndData),
408 #[serde(rename = "assistant.idle")]
409 AssistantIdle(AssistantIdleData),
410 #[serde(rename = "assistant.usage")]
411 AssistantUsage(AssistantUsageData),
412 #[serde(rename = "model.call_failure")]
413 ModelCallFailure(ModelCallFailureData),
414 #[serde(rename = "model.call_start")]
415 ModelCallStart(ModelCallStartData),
416 #[serde(rename = "abort")]
417 Abort(AbortData),
418 #[serde(rename = "tool.user_requested")]
419 ToolUserRequested(ToolUserRequestedData),
420 #[serde(rename = "tool.execution_start")]
421 ToolExecutionStart(ToolExecutionStartData),
422 #[serde(rename = "tool.execution_partial_result")]
423 ToolExecutionPartialResult(ToolExecutionPartialResultData),
424 #[serde(rename = "tool.execution_progress")]
425 ToolExecutionProgress(ToolExecutionProgressData),
426 #[serde(rename = "tool.execution_complete")]
427 ToolExecutionComplete(ToolExecutionCompleteData),
428 #[serde(rename = "tool_search.activated")]
429 ToolSearchActivated(ToolSearchActivatedData),
430 #[serde(rename = "skill.invoked")]
431 SkillInvoked(SkillInvokedData),
432 #[serde(rename = "subagent.started")]
433 SubagentStarted(SubagentStartedData),
434 #[serde(rename = "subagent.completed")]
435 SubagentCompleted(SubagentCompletedData),
436 #[serde(rename = "subagent.failed")]
437 SubagentFailed(SubagentFailedData),
438 #[serde(rename = "subagent.selected")]
439 SubagentSelected(SubagentSelectedData),
440 #[serde(rename = "subagent.deselected")]
441 SubagentDeselected(SubagentDeselectedData),
442 #[serde(rename = "hook.start")]
443 HookStart(HookStartData),
444 #[serde(rename = "hook.end")]
445 HookEnd(HookEndData),
446 #[serde(rename = "hook.progress")]
447 HookProgress(HookProgressData),
448 #[serde(rename = "session.binary_asset")]
449 SessionBinaryAsset(SessionBinaryAssetData),
450 #[serde(rename = "system.message")]
451 SystemMessage(SystemMessageData),
452 #[serde(rename = "system.notification")]
453 SystemNotification(SystemNotificationData),
454 #[serde(rename = "permission.requested")]
455 PermissionRequested(PermissionRequestedData),
456 #[serde(rename = "permission.completed")]
457 PermissionCompleted(PermissionCompletedData),
458 #[serde(rename = "user_input.requested")]
459 UserInputRequested(UserInputRequestedData),
460 #[serde(rename = "user_input.completed")]
461 UserInputCompleted(UserInputCompletedData),
462 #[serde(rename = "elicitation.requested")]
463 ElicitationRequested(ElicitationRequestedData),
464 #[serde(rename = "elicitation.completed")]
465 ElicitationCompleted(ElicitationCompletedData),
466 #[serde(rename = "sampling.requested")]
467 SamplingRequested(SamplingRequestedData),
468 #[serde(rename = "sampling.completed")]
469 SamplingCompleted(SamplingCompletedData),
470 #[serde(rename = "mcp.oauth_required")]
471 McpOauthRequired(McpOauthRequiredData),
472 #[serde(rename = "mcp.oauth_completed")]
473 McpOauthCompleted(McpOauthCompletedData),
474 #[serde(rename = "mcp.headers_refresh_required")]
475 McpHeadersRefreshRequired(McpHeadersRefreshRequiredData),
476 #[serde(rename = "mcp.headers_refresh_completed")]
477 McpHeadersRefreshCompleted(McpHeadersRefreshCompletedData),
478 #[serde(rename = "session.custom_notification")]
479 SessionCustomNotification(SessionCustomNotificationData),
480 #[serde(rename = "external_tool.requested")]
481 ExternalToolRequested(ExternalToolRequestedData),
482 #[serde(rename = "external_tool.completed")]
483 ExternalToolCompleted(ExternalToolCompletedData),
484 #[serde(rename = "command.queued")]
485 CommandQueued(CommandQueuedData),
486 #[serde(rename = "command.execute")]
487 CommandExecute(CommandExecuteData),
488 #[serde(rename = "command.completed")]
489 CommandCompleted(CommandCompletedData),
490 #[serde(rename = "auto_mode_switch.requested")]
491 AutoModeSwitchRequested(AutoModeSwitchRequestedData),
492 #[serde(rename = "auto_mode_switch.completed")]
493 AutoModeSwitchCompleted(AutoModeSwitchCompletedData),
494 #[serde(rename = "session_limits_exhausted.requested")]
495 SessionLimitsExhaustedRequested(SessionLimitsExhaustedRequestedData),
496 #[serde(rename = "session_limits_exhausted.completed")]
497 SessionLimitsExhaustedCompleted(SessionLimitsExhaustedCompletedData),
498 #[serde(rename = "session.auto_mode_resolved")]
506 SessionAutoModeResolved(SessionAutoModeResolvedData),
507 #[serde(rename = "session.managed_settings_resolved")]
515 SessionManagedSettingsResolved(SessionManagedSettingsResolvedData),
516 #[serde(rename = "session.managed_settings_enforced")]
524 SessionManagedSettingsEnforced(SessionManagedSettingsEnforcedData),
525 #[serde(rename = "commands.changed")]
526 CommandsChanged(CommandsChangedData),
527 #[serde(rename = "capabilities.changed")]
528 CapabilitiesChanged(CapabilitiesChangedData),
529 #[serde(rename = "exit_plan_mode.requested")]
530 ExitPlanModeRequested(ExitPlanModeRequestedData),
531 #[serde(rename = "exit_plan_mode.completed")]
532 ExitPlanModeCompleted(ExitPlanModeCompletedData),
533 #[serde(rename = "session.tools_updated")]
534 SessionToolsUpdated(SessionToolsUpdatedData),
535 #[serde(rename = "session.background_tasks_changed")]
536 SessionBackgroundTasksChanged(SessionBackgroundTasksChangedData),
537 #[serde(rename = "session.skills_loaded")]
538 SessionSkillsLoaded(SessionSkillsLoadedData),
539 #[serde(rename = "session.custom_agents_updated")]
540 SessionCustomAgentsUpdated(SessionCustomAgentsUpdatedData),
541 #[serde(rename = "session.mcp_servers_loaded")]
542 SessionMcpServersLoaded(SessionMcpServersLoadedData),
543 #[serde(rename = "session.mcp_server_status_changed")]
544 SessionMcpServerStatusChanged(SessionMcpServerStatusChangedData),
545 #[serde(rename = "mcp.tools.list_changed")]
546 McpToolsListChanged(McpToolsListChangedData),
547 #[serde(rename = "mcp.resources.list_changed")]
548 McpResourcesListChanged(McpResourcesListChangedData),
549 #[serde(rename = "mcp.prompts.list_changed")]
550 McpPromptsListChanged(McpPromptsListChangedData),
551 #[serde(rename = "session.extensions_loaded")]
552 SessionExtensionsLoaded(SessionExtensionsLoadedData),
553 #[serde(rename = "session.canvas.opened")]
561 SessionCanvasOpened(SessionCanvasOpenedData),
562 #[serde(rename = "session.canvas.registry_changed")]
570 SessionCanvasRegistryChanged(SessionCanvasRegistryChangedData),
571 #[serde(rename = "session.canvas.closed")]
579 SessionCanvasClosed(SessionCanvasClosedData),
580 #[serde(rename = "session.canvas.unavailable")]
588 SessionCanvasUnavailable(SessionCanvasUnavailableData),
589 #[serde(rename = "session.canvas.recorded")]
597 SessionCanvasRecorded(SessionCanvasRecordedData),
598 #[serde(rename = "session.canvas.removed")]
606 SessionCanvasRemoved(SessionCanvasRemovedData),
607 #[serde(rename = "session.extensions.attachments_pushed")]
608 SessionExtensionsAttachmentsPushed(SessionExtensionsAttachmentsPushedData),
609 #[serde(rename = "mcp_app.tool_call_complete")]
610 McpAppToolCallComplete(McpAppToolCallCompleteData),
611}
612
613#[derive(Debug, Clone, Serialize, Deserialize)]
619#[serde(rename_all = "camelCase")]
620pub struct TypedSessionEvent {
621 pub id: String,
623 pub timestamp: String,
625 #[serde(skip_serializing_if = "Option::is_none")]
627 pub parent_id: Option<String>,
628 #[serde(skip_serializing_if = "Option::is_none")]
630 pub ephemeral: Option<bool>,
631 #[serde(skip_serializing_if = "Option::is_none")]
634 pub agent_id: Option<String>,
635 #[serde(flatten)]
637 pub payload: SessionEventData,
638}
639
640#[derive(Debug, Clone, Default, Serialize, Deserialize)]
642#[serde(rename_all = "camelCase")]
643pub struct WorkingDirectoryContext {
644 #[serde(skip_serializing_if = "Option::is_none")]
646 pub base_commit: Option<String>,
647 #[serde(skip_serializing_if = "Option::is_none")]
649 pub branch: Option<String>,
650 pub cwd: String,
652 #[serde(skip_serializing_if = "Option::is_none")]
654 pub git_root: Option<String>,
655 #[serde(skip_serializing_if = "Option::is_none")]
657 pub head_commit: Option<String>,
658 #[serde(skip_serializing_if = "Option::is_none")]
660 pub host_type: Option<WorkingDirectoryContextHostType>,
661 #[serde(skip_serializing_if = "Option::is_none")]
663 pub repository: Option<String>,
664 #[serde(skip_serializing_if = "Option::is_none")]
666 pub repository_host: Option<String>,
667}
668
669#[derive(Debug, Clone, Default, Serialize, Deserialize)]
671#[serde(rename_all = "camelCase")]
672pub struct SessionLimitsConfig {
673 #[serde(skip_serializing_if = "Option::is_none")]
675 pub max_ai_credits: Option<f64>,
676}
677
678#[derive(Debug, Clone, Default, Serialize, Deserialize)]
680#[serde(rename_all = "camelCase")]
681pub struct SessionStartData {
682 #[serde(skip_serializing_if = "Option::is_none")]
684 pub already_in_use: Option<bool>,
685 #[serde(skip_serializing_if = "Option::is_none")]
687 pub context: Option<WorkingDirectoryContext>,
688 #[serde(skip_serializing_if = "Option::is_none")]
690 pub context_tier: Option<ContextTier>,
691 pub copilot_version: String,
693 #[serde(skip_serializing_if = "Option::is_none")]
695 pub detached_from_spawning_parent_session_id: Option<String>,
696 pub producer: String,
698 #[serde(skip_serializing_if = "Option::is_none")]
700 pub reasoning_effort: Option<String>,
701 #[serde(skip_serializing_if = "Option::is_none")]
703 pub reasoning_summary: Option<ReasoningSummary>,
704 #[serde(skip_serializing_if = "Option::is_none")]
706 pub remote_steerable: Option<bool>,
707 #[serde(skip_serializing_if = "Option::is_none")]
709 pub selected_model: Option<String>,
710 pub session_id: SessionId,
712 #[serde(skip_serializing_if = "Option::is_none")]
714 pub session_limits: Option<SessionLimitsConfig>,
715 pub start_time: String,
717 #[serde(skip_serializing_if = "Option::is_none")]
719 pub verbosity: Option<Verbosity>,
720 pub version: i64,
722}
723
724#[derive(Debug, Clone, Default, Serialize, Deserialize)]
726#[serde(rename_all = "camelCase")]
727pub struct SessionResumeData {
728 #[serde(skip_serializing_if = "Option::is_none")]
730 pub already_in_use: Option<bool>,
731 #[serde(skip_serializing_if = "Option::is_none")]
733 pub context: Option<WorkingDirectoryContext>,
734 #[serde(skip_serializing_if = "Option::is_none")]
736 pub context_tier: Option<ContextTier>,
737 #[serde(skip_serializing_if = "Option::is_none")]
739 pub continue_pending_work: Option<bool>,
740 pub event_count: i64,
742 #[serde(skip_serializing_if = "Option::is_none")]
744 pub events_file_size_bytes: Option<i64>,
745 #[serde(skip_serializing_if = "Option::is_none")]
747 pub reasoning_effort: Option<String>,
748 #[serde(skip_serializing_if = "Option::is_none")]
750 pub reasoning_summary: Option<ReasoningSummary>,
751 #[serde(skip_serializing_if = "Option::is_none")]
753 pub remote_steerable: Option<bool>,
754 pub resume_time: String,
756 #[serde(skip_serializing_if = "Option::is_none")]
758 pub selected_model: Option<String>,
759 #[serde(skip_serializing_if = "Option::is_none")]
761 pub session_limits: Option<SessionLimitsConfig>,
762 #[serde(skip_serializing_if = "Option::is_none")]
764 pub session_was_active: Option<bool>,
765 #[serde(skip_serializing_if = "Option::is_none")]
767 pub verbosity: Option<Verbosity>,
768}
769
770#[derive(Debug, Clone, Default, Serialize, Deserialize)]
772#[serde(rename_all = "camelCase")]
773pub struct SessionRemoteSteerableChangedData {
774 pub remote_steerable: bool,
776}
777
778#[derive(Debug, Clone, Default, Serialize, Deserialize)]
780#[serde(rename_all = "camelCase")]
781pub struct SessionErrorData {
782 #[serde(skip_serializing_if = "Option::is_none")]
784 pub eligible_for_auto_switch: Option<bool>,
785 #[serde(skip_serializing_if = "Option::is_none")]
787 pub error_code: Option<String>,
788 pub error_type: String,
790 pub message: String,
792 #[serde(skip_serializing_if = "Option::is_none")]
794 pub provider_call_id: Option<String>,
795 #[serde(skip_serializing_if = "Option::is_none")]
797 pub service_request_id: Option<String>,
798 #[serde(skip_serializing_if = "Option::is_none")]
800 pub stack: Option<String>,
801 #[serde(skip_serializing_if = "Option::is_none")]
803 pub status_code: Option<i32>,
804 #[serde(skip_serializing_if = "Option::is_none")]
806 pub url: Option<String>,
807}
808
809#[derive(Debug, Clone, Default, Serialize, Deserialize)]
811#[serde(rename_all = "camelCase")]
812pub struct SessionIdleData {
813 #[serde(skip_serializing_if = "Option::is_none")]
815 pub aborted: Option<bool>,
816}
817
818#[derive(Debug, Clone, Default, Serialize, Deserialize)]
820#[serde(rename_all = "camelCase")]
821pub struct SessionTitleChangedData {
822 pub title: String,
824}
825
826#[derive(Debug, Clone, Default, Serialize, Deserialize)]
828#[serde(rename_all = "camelCase")]
829pub struct SessionScheduleCreatedData {
830 #[serde(skip_serializing_if = "Option::is_none")]
832 pub at: Option<i64>,
833 #[serde(skip_serializing_if = "Option::is_none")]
835 pub cron: Option<String>,
836 #[serde(skip_serializing_if = "Option::is_none")]
838 pub display_prompt: Option<String>,
839 pub id: i64,
841 #[serde(skip_serializing_if = "Option::is_none")]
843 pub interval_ms: Option<i64>,
844 pub prompt: String,
846 #[serde(skip_serializing_if = "Option::is_none")]
848 pub recurring: Option<bool>,
849 #[serde(skip_serializing_if = "Option::is_none")]
851 pub self_paced: Option<bool>,
852 #[serde(skip_serializing_if = "Option::is_none")]
854 pub tz: Option<String>,
855}
856
857#[derive(Debug, Clone, Default, Serialize, Deserialize)]
859#[serde(rename_all = "camelCase")]
860pub struct SessionScheduleCancelledData {
861 pub id: i64,
863}
864
865#[derive(Debug, Clone, Default, Serialize, Deserialize)]
867#[serde(rename_all = "camelCase")]
868pub struct SessionScheduleRearmedData {
869 pub id: i64,
871 pub next_run_at: i64,
873}
874
875#[derive(Debug, Clone, Default, Serialize, Deserialize)]
877#[serde(rename_all = "camelCase")]
878pub struct SessionAutopilotObjectiveChangedData {
879 #[serde(skip_serializing_if = "Option::is_none")]
881 pub id: Option<i64>,
882 pub operation: AutopilotObjectiveChangedOperation,
884 #[serde(skip_serializing_if = "Option::is_none")]
886 pub status: Option<AutopilotObjectiveChangedStatus>,
887}
888
889#[derive(Debug, Clone, Default, Serialize, Deserialize)]
891#[serde(rename_all = "camelCase")]
892pub struct SessionInfoData {
893 pub info_type: String,
895 pub message: String,
897 #[serde(skip_serializing_if = "Option::is_none")]
899 pub tip: Option<String>,
900 #[serde(skip_serializing_if = "Option::is_none")]
902 pub url: Option<String>,
903}
904
905#[derive(Debug, Clone, Default, Serialize, Deserialize)]
907#[serde(rename_all = "camelCase")]
908pub struct SessionWarningData {
909 pub message: String,
911 #[serde(skip_serializing_if = "Option::is_none")]
913 pub url: Option<String>,
914 pub warning_type: String,
916}
917
918#[derive(Debug, Clone, Default, Serialize, Deserialize)]
920#[serde(rename_all = "camelCase")]
921pub struct SessionModelChangeData {
922 #[serde(skip_serializing_if = "Option::is_none")]
924 pub cause: Option<String>,
925 #[serde(skip_serializing_if = "Option::is_none")]
927 pub context_tier: Option<ContextTier>,
928 pub new_model: String,
930 #[serde(skip_serializing_if = "Option::is_none")]
932 pub previous_model: Option<String>,
933 #[serde(skip_serializing_if = "Option::is_none")]
935 pub previous_reasoning_effort: Option<String>,
936 #[serde(skip_serializing_if = "Option::is_none")]
938 pub previous_reasoning_summary: Option<ReasoningSummary>,
939 #[serde(skip_serializing_if = "Option::is_none")]
941 pub previous_verbosity: Option<Verbosity>,
942 #[serde(skip_serializing_if = "Option::is_none")]
944 pub reasoning_effort: Option<String>,
945 #[serde(skip_serializing_if = "Option::is_none")]
947 pub reasoning_summary: Option<ReasoningSummary>,
948 #[serde(skip_serializing_if = "Option::is_none")]
950 pub verbosity: Option<Verbosity>,
951}
952
953#[derive(Debug, Clone, Default, Serialize, Deserialize)]
955#[serde(rename_all = "camelCase")]
956pub struct SessionModeChangedData {
957 pub new_mode: SessionMode,
959 pub previous_mode: SessionMode,
961}
962
963#[derive(Debug, Clone, Default, Serialize, Deserialize)]
965#[serde(rename_all = "camelCase")]
966pub struct SessionSessionLimitsChangedData {
967 pub session_limits: Option<SessionLimitsConfig>,
969}
970
971#[derive(Debug, Clone, Default, Serialize, Deserialize)]
973#[serde(rename_all = "camelCase")]
974pub struct SessionPermissionsChangedData {
975 #[serde(skip_serializing_if = "Option::is_none")]
984 pub allow_all_permission_mode: Option<PermissionAllowAllMode>,
985 pub allow_all_permissions: bool,
987 #[serde(skip_serializing_if = "Option::is_none")]
996 pub previous_allow_all_permission_mode: Option<PermissionAllowAllMode>,
997 pub previous_allow_all_permissions: bool,
999}
1000
1001#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1003#[serde(rename_all = "camelCase")]
1004pub struct SessionPlanChangedData {
1005 pub operation: PlanChangedOperation,
1007}
1008
1009#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1011#[serde(rename_all = "camelCase")]
1012pub struct SessionTodosChangedData {}
1013
1014#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1016#[serde(rename_all = "camelCase")]
1017pub struct SessionWorkspaceFileChangedData {
1018 pub operation: WorkspaceFileChangedOperation,
1020 pub path: String,
1022}
1023
1024#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1026#[serde(rename_all = "camelCase")]
1027pub struct HandoffRepository {
1028 #[serde(skip_serializing_if = "Option::is_none")]
1030 pub branch: Option<String>,
1031 pub name: String,
1033 pub owner: String,
1035}
1036
1037#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1039#[serde(rename_all = "camelCase")]
1040pub struct SessionHandoffData {
1041 #[serde(skip_serializing_if = "Option::is_none")]
1043 pub context: Option<String>,
1044 pub handoff_time: String,
1046 #[serde(skip_serializing_if = "Option::is_none")]
1048 pub host: Option<String>,
1049 #[serde(skip_serializing_if = "Option::is_none")]
1051 pub remote_session_id: Option<SessionId>,
1052 #[serde(skip_serializing_if = "Option::is_none")]
1054 pub repository: Option<HandoffRepository>,
1055 pub source_type: HandoffSourceType,
1057 #[serde(skip_serializing_if = "Option::is_none")]
1059 pub summary: Option<String>,
1060}
1061
1062#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1064#[serde(rename_all = "camelCase")]
1065pub struct SessionTruncationData {
1066 pub messages_removed_during_truncation: i64,
1068 pub performed_by: String,
1070 pub post_truncation_messages_length: i64,
1072 pub post_truncation_tokens_in_messages: i64,
1074 pub pre_truncation_messages_length: i64,
1076 pub pre_truncation_tokens_in_messages: i64,
1078 pub token_limit: i64,
1080 pub tokens_removed_during_truncation: i64,
1082}
1083
1084#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1086#[serde(rename_all = "camelCase")]
1087pub struct SessionSnapshotRewindData {
1088 pub events_removed: i64,
1090 pub up_to_event_id: String,
1092}
1093
1094#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1096#[serde(rename_all = "camelCase")]
1097pub struct ShutdownCodeChanges {
1098 pub files_modified: Vec<String>,
1100 pub lines_added: i64,
1102 pub lines_removed: i64,
1104}
1105
1106#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1108#[serde(rename_all = "camelCase")]
1109pub struct ShutdownModelMetricRequests {
1110 #[serde(skip_serializing_if = "Option::is_none")]
1119 pub cost: Option<f64>,
1120 #[serde(skip_serializing_if = "Option::is_none")]
1129 pub count: Option<i64>,
1130}
1131
1132#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1134#[serde(rename_all = "camelCase")]
1135pub struct ShutdownModelMetricTokenDetail {
1136 pub token_count: i64,
1138}
1139
1140#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1142#[serde(rename_all = "camelCase")]
1143pub struct ShutdownModelMetricUsage {
1144 pub cache_read_tokens: i64,
1146 pub cache_write_tokens: i64,
1148 pub input_tokens: i64,
1150 pub output_tokens: i64,
1152 #[serde(skip_serializing_if = "Option::is_none")]
1154 pub reasoning_tokens: Option<i64>,
1155}
1156
1157#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1159#[serde(rename_all = "camelCase")]
1160pub struct ShutdownModelMetric {
1161 pub requests: ShutdownModelMetricRequests,
1163 #[serde(skip_serializing_if = "Option::is_none")]
1165 pub token_details: Option<HashMap<String, ShutdownModelMetricTokenDetail>>,
1166 #[serde(skip_serializing_if = "Option::is_none")]
1175 pub total_nano_aiu: Option<f64>,
1176 pub usage: ShutdownModelMetricUsage,
1178}
1179
1180#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1182#[serde(rename_all = "camelCase")]
1183pub struct ShutdownTokenDetail {
1184 pub token_count: i64,
1186}
1187
1188#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1190#[serde(rename_all = "camelCase")]
1191pub struct SessionShutdownData {
1192 pub code_changes: ShutdownCodeChanges,
1194 #[serde(skip_serializing_if = "Option::is_none")]
1196 pub conversation_tokens: Option<i64>,
1197 #[serde(skip_serializing_if = "Option::is_none")]
1199 pub current_model: Option<String>,
1200 #[serde(skip_serializing_if = "Option::is_none")]
1202 pub current_tokens: Option<i64>,
1203 #[serde(skip_serializing_if = "Option::is_none")]
1205 pub error_reason: Option<String>,
1206 #[serde(skip_serializing_if = "Option::is_none")]
1208 pub events_file_size_bytes: Option<i64>,
1209 pub model_metrics: HashMap<String, ShutdownModelMetric>,
1211 pub session_start_time: i64,
1213 pub shutdown_type: ShutdownType,
1215 #[serde(skip_serializing_if = "Option::is_none")]
1217 pub system_tokens: Option<i64>,
1218 #[serde(skip_serializing_if = "Option::is_none")]
1220 pub token_details: Option<HashMap<String, ShutdownTokenDetail>>,
1221 #[serde(skip_serializing_if = "Option::is_none")]
1223 pub tool_definitions_tokens: Option<i64>,
1224 pub total_api_duration_ms: i64,
1226 #[serde(skip_serializing_if = "Option::is_none")]
1235 pub total_nano_aiu: Option<f64>,
1236 #[doc(hidden)]
1238 #[serde(skip_serializing_if = "Option::is_none")]
1239 pub(crate) total_premium_requests: Option<f64>,
1240}
1241
1242#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1244#[serde(rename_all = "camelCase")]
1245pub(crate) struct UsageCheckpointModelCacheState {
1246 pub cache_expires_at: String,
1248 #[doc(hidden)]
1250 pub(crate) cache_ttl_seconds: i64,
1251 pub model_id: String,
1253}
1254
1255#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1257#[serde(rename_all = "camelCase")]
1258pub struct SessionUsageCheckpointData {
1259 #[doc(hidden)]
1261 #[serde(skip_serializing_if = "Option::is_none")]
1262 pub(crate) model_cache_state: Option<Vec<UsageCheckpointModelCacheState>>,
1263 pub total_nano_aiu: f64,
1265 #[doc(hidden)]
1267 #[serde(skip_serializing_if = "Option::is_none")]
1268 pub(crate) total_premium_requests: Option<f64>,
1269}
1270
1271#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1273#[serde(rename_all = "camelCase")]
1274pub struct SessionContextChangedData {
1275 #[serde(skip_serializing_if = "Option::is_none")]
1277 pub base_commit: Option<String>,
1278 #[serde(skip_serializing_if = "Option::is_none")]
1280 pub branch: Option<String>,
1281 pub cwd: String,
1283 #[serde(skip_serializing_if = "Option::is_none")]
1285 pub git_root: Option<String>,
1286 #[serde(skip_serializing_if = "Option::is_none")]
1288 pub head_commit: Option<String>,
1289 #[serde(skip_serializing_if = "Option::is_none")]
1291 pub host_type: Option<WorkingDirectoryContextHostType>,
1292 #[serde(skip_serializing_if = "Option::is_none")]
1294 pub repository: Option<String>,
1295 #[serde(skip_serializing_if = "Option::is_none")]
1297 pub repository_host: Option<String>,
1298}
1299
1300#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1302#[serde(rename_all = "camelCase")]
1303pub struct SessionUsageInfoData {
1304 #[serde(skip_serializing_if = "Option::is_none")]
1306 pub conversation_tokens: Option<i64>,
1307 pub current_tokens: i64,
1309 #[serde(skip_serializing_if = "Option::is_none")]
1311 pub is_initial: Option<bool>,
1312 pub messages_length: i64,
1314 #[serde(skip_serializing_if = "Option::is_none")]
1316 pub system_tokens: Option<i64>,
1317 pub token_limit: i64,
1319 #[serde(skip_serializing_if = "Option::is_none")]
1321 pub tool_definitions_tokens: Option<i64>,
1322}
1323
1324#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1326#[serde(rename_all = "camelCase")]
1327pub struct SessionCompactionStartData {
1328 #[serde(skip_serializing_if = "Option::is_none")]
1330 pub conversation_tokens: Option<i64>,
1331 #[serde(skip_serializing_if = "Option::is_none")]
1333 pub model: Option<String>,
1334 #[serde(skip_serializing_if = "Option::is_none")]
1336 pub system_tokens: Option<i64>,
1337 #[serde(skip_serializing_if = "Option::is_none")]
1339 pub tool_definitions_tokens: Option<i64>,
1340}
1341
1342#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1344#[serde(rename_all = "camelCase")]
1345pub struct CompactionCompleteCompactionTokensUsedCopilotUsageTokenDetail {
1346 pub batch_size: i64,
1348 pub cost_per_batch: i64,
1350 pub token_count: i64,
1352 pub token_type: String,
1354}
1355
1356#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1358#[serde(rename_all = "camelCase")]
1359pub(crate) struct CompactionCompleteCompactionTokensUsedCopilotUsage {
1360 #[doc(hidden)]
1362 #[serde(skip_serializing_if = "Option::is_none")]
1363 pub(crate) token_details:
1364 Option<Vec<CompactionCompleteCompactionTokensUsedCopilotUsageTokenDetail>>,
1365 pub total_nano_aiu: f64,
1367}
1368
1369#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1371#[serde(rename_all = "camelCase")]
1372pub struct CompactionCompleteCompactionTokensUsed {
1373 #[serde(skip_serializing_if = "Option::is_none")]
1375 pub cache_read_tokens: Option<i64>,
1376 #[serde(skip_serializing_if = "Option::is_none")]
1378 pub cache_write_tokens: Option<i64>,
1379 #[doc(hidden)]
1381 #[serde(skip_serializing_if = "Option::is_none")]
1382 pub(crate) copilot_usage: Option<CompactionCompleteCompactionTokensUsedCopilotUsage>,
1383 #[serde(skip_serializing_if = "Option::is_none")]
1385 pub duration: Option<i64>,
1386 #[serde(skip_serializing_if = "Option::is_none")]
1388 pub input_tokens: Option<i64>,
1389 #[serde(skip_serializing_if = "Option::is_none")]
1391 pub model: Option<String>,
1392 #[serde(skip_serializing_if = "Option::is_none")]
1394 pub output_tokens: Option<i64>,
1395}
1396
1397#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1399#[serde(rename_all = "camelCase")]
1400pub struct SessionCompactionCompleteData {
1401 #[serde(skip_serializing_if = "Option::is_none")]
1403 pub checkpoint_number: Option<i64>,
1404 #[serde(skip_serializing_if = "Option::is_none")]
1406 pub checkpoint_path: Option<String>,
1407 #[serde(skip_serializing_if = "Option::is_none")]
1409 pub compaction_tokens_used: Option<CompactionCompleteCompactionTokensUsed>,
1410 #[serde(skip_serializing_if = "Option::is_none")]
1412 pub conversation_tokens: Option<i64>,
1413 #[serde(skip_serializing_if = "Option::is_none")]
1415 pub custom_instructions: Option<String>,
1416 #[serde(skip_serializing_if = "Option::is_none")]
1418 pub error: Option<String>,
1419 #[serde(skip_serializing_if = "Option::is_none")]
1421 pub messages_removed: Option<i64>,
1422 #[serde(skip_serializing_if = "Option::is_none")]
1424 pub post_compaction_tokens: Option<i64>,
1425 #[serde(skip_serializing_if = "Option::is_none")]
1427 pub pre_compaction_messages_length: Option<i64>,
1428 #[serde(skip_serializing_if = "Option::is_none")]
1430 pub pre_compaction_tokens: Option<i64>,
1431 #[serde(skip_serializing_if = "Option::is_none")]
1433 pub request_id: Option<RequestId>,
1434 #[serde(skip_serializing_if = "Option::is_none")]
1436 pub service_request_id: Option<String>,
1437 #[serde(skip_serializing_if = "Option::is_none")]
1439 pub status_code: Option<i64>,
1440 pub success: bool,
1442 #[serde(skip_serializing_if = "Option::is_none")]
1444 pub summary_content: Option<String>,
1445 #[serde(skip_serializing_if = "Option::is_none")]
1447 pub system_tokens: Option<i64>,
1448 #[serde(skip_serializing_if = "Option::is_none")]
1450 pub tokens_removed: Option<i64>,
1451 #[serde(skip_serializing_if = "Option::is_none")]
1453 pub tool_definitions_tokens: Option<i64>,
1454}
1455
1456#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1458#[serde(rename_all = "camelCase")]
1459pub struct SessionTaskCompleteData {
1460 #[serde(skip_serializing_if = "Option::is_none")]
1462 pub success: Option<bool>,
1463 #[serde(skip_serializing_if = "Option::is_none")]
1465 pub summary: Option<String>,
1466}
1467
1468#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1470#[serde(rename_all = "camelCase")]
1471pub struct UserMessageData {
1472 #[serde(skip_serializing_if = "Option::is_none")]
1474 pub agent_mode: Option<UserMessageAgentMode>,
1475 #[serde(skip_serializing_if = "Option::is_none")]
1477 pub attachments: Option<Vec<serde_json::Value>>,
1478 pub content: String,
1480 #[serde(skip_serializing_if = "Option::is_none")]
1482 pub delivery: Option<UserMessageDelivery>,
1483 #[serde(skip_serializing_if = "Option::is_none")]
1485 pub interaction_id: Option<String>,
1486 #[serde(skip_serializing_if = "Option::is_none")]
1488 pub is_autopilot_continuation: Option<bool>,
1489 #[serde(skip_serializing_if = "Option::is_none")]
1491 pub native_document_path_fallback_paths: Option<Vec<String>>,
1492 #[serde(skip_serializing_if = "Option::is_none")]
1494 pub parent_agent_task_id: Option<String>,
1495 #[serde(skip_serializing_if = "Option::is_none")]
1497 pub source: Option<String>,
1498 #[serde(skip_serializing_if = "Option::is_none")]
1500 pub supported_native_document_mime_types: Option<Vec<String>>,
1501 #[serde(skip_serializing_if = "Option::is_none")]
1503 pub transformed_content: Option<String>,
1504}
1505
1506#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1508#[serde(rename_all = "camelCase")]
1509pub struct PendingMessagesModifiedData {}
1510
1511#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1513#[serde(rename_all = "camelCase")]
1514pub struct AssistantTurnStartData {
1515 #[serde(skip_serializing_if = "Option::is_none")]
1517 pub interaction_id: Option<String>,
1518 #[serde(skip_serializing_if = "Option::is_none")]
1520 pub model: Option<String>,
1521 pub turn_id: String,
1523}
1524
1525#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1527#[serde(rename_all = "camelCase")]
1528pub struct AssistantTurnRetryData {
1529 #[serde(skip_serializing_if = "Option::is_none")]
1531 pub model: Option<String>,
1532 #[serde(skip_serializing_if = "Option::is_none")]
1534 pub reason: Option<String>,
1535 pub turn_id: String,
1537}
1538
1539#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1541#[serde(rename_all = "camelCase")]
1542pub struct AssistantIntentData {
1543 pub intent: String,
1545}
1546
1547#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1549#[serde(rename_all = "camelCase")]
1550pub struct AssistantServerToolProgressData {
1551 pub kind: String,
1553 pub output_index: i64,
1555 pub status: String,
1557}
1558
1559#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1561#[serde(rename_all = "camelCase")]
1562pub struct AssistantReasoningData {
1563 pub content: String,
1565 pub reasoning_id: String,
1567}
1568
1569#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1571#[serde(rename_all = "camelCase")]
1572pub struct AssistantReasoningDeltaData {
1573 pub delta_content: String,
1575 pub reasoning_id: String,
1577}
1578
1579#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1581#[serde(rename_all = "camelCase")]
1582pub struct AssistantToolCallDeltaData {
1583 pub input_delta: String,
1585 pub tool_call_id: String,
1587 #[serde(skip_serializing_if = "Option::is_none")]
1589 pub tool_name: Option<String>,
1590 #[serde(skip_serializing_if = "Option::is_none")]
1592 pub tool_type: Option<AssistantMessageToolRequestType>,
1593}
1594
1595#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1597#[serde(rename_all = "camelCase")]
1598pub struct AssistantStreamingDeltaData {
1599 pub total_response_size_bytes: i64,
1601}
1602
1603#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1612#[serde(rename_all = "camelCase")]
1613pub struct CitationSource {
1614 pub id: String,
1616 #[serde(skip_serializing_if = "Option::is_none")]
1618 pub path: Option<String>,
1619 pub provider: CitationProvider,
1621 #[serde(skip_serializing_if = "Option::is_none")]
1623 pub title: Option<String>,
1624 #[serde(skip_serializing_if = "Option::is_none")]
1626 pub url: Option<String>,
1627}
1628
1629#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1638#[serde(rename_all = "camelCase")]
1639pub struct CitationReference {
1640 #[serde(skip_serializing_if = "Option::is_none")]
1642 pub cited_text: Option<String>,
1643 #[serde(skip_serializing_if = "Option::is_none")]
1645 pub location: Option<serde_json::Value>,
1646 #[serde(skip_serializing_if = "Option::is_none")]
1648 pub provider_metadata: Option<serde_json::Value>,
1649 pub source_id: String,
1651}
1652
1653#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1662#[serde(rename_all = "camelCase")]
1663pub struct CitationSpan {
1664 pub end_index: i64,
1666 pub references: Vec<CitationReference>,
1668 pub start_index: i64,
1670}
1671
1672#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1681#[serde(rename_all = "camelCase")]
1682pub struct Citations {
1683 pub sources: Vec<CitationSource>,
1685 pub spans: Vec<CitationSpan>,
1687}
1688
1689#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1698#[serde(rename_all = "camelCase")]
1699pub struct AssistantMessageServerTools {
1700 #[serde(skip_serializing_if = "Option::is_none")]
1701 pub advisor_model: Option<String>,
1702 #[serde(skip_serializing_if = "Option::is_none")]
1703 pub function_call_namespaces: Option<HashMap<String, String>>,
1704 #[serde(skip_serializing_if = "Option::is_none")]
1705 pub items: Option<Vec<serde_json::Value>>,
1706 pub provider: String,
1707 #[serde(skip_serializing_if = "Option::is_none")]
1708 pub raw_content_blocks: Option<Vec<serde_json::Value>>,
1709}
1710
1711#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1713#[serde(rename_all = "camelCase")]
1714pub struct AssistantMessageToolRequest {
1715 #[serde(skip_serializing_if = "Option::is_none")]
1717 pub arguments: Option<serde_json::Value>,
1718 #[serde(skip_serializing_if = "Option::is_none")]
1720 pub intention_summary: Option<String>,
1721 #[serde(skip_serializing_if = "Option::is_none")]
1723 pub mcp_server_name: Option<String>,
1724 #[serde(skip_serializing_if = "Option::is_none")]
1726 pub mcp_tool_name: Option<String>,
1727 pub name: String,
1729 pub tool_call_id: String,
1731 #[serde(skip_serializing_if = "Option::is_none")]
1733 pub tool_title: Option<String>,
1734 #[serde(skip_serializing_if = "Option::is_none")]
1736 pub r#type: Option<AssistantMessageToolRequestType>,
1737}
1738
1739#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1741#[serde(rename_all = "camelCase")]
1742pub struct AssistantMessageData {
1743 #[serde(skip_serializing_if = "Option::is_none")]
1745 pub api_call_id: Option<String>,
1746 #[serde(skip_serializing_if = "Option::is_none")]
1755 pub citations: Option<Citations>,
1756 #[serde(skip_serializing_if = "Option::is_none")]
1758 pub client_request_id: Option<String>,
1759 pub content: String,
1761 #[serde(skip_serializing_if = "Option::is_none")]
1763 pub encrypted_content: Option<String>,
1764 #[serde(skip_serializing_if = "Option::is_none")]
1766 pub interaction_id: Option<String>,
1767 pub message_id: String,
1769 #[serde(skip_serializing_if = "Option::is_none")]
1771 pub model: Option<String>,
1772 #[serde(skip_serializing_if = "Option::is_none")]
1774 pub output_tokens: Option<i64>,
1775 #[doc(hidden)]
1777 #[deprecated]
1778 #[serde(skip_serializing_if = "Option::is_none")]
1779 pub parent_tool_call_id: Option<String>,
1780 #[serde(skip_serializing_if = "Option::is_none")]
1782 pub phase: Option<String>,
1783 #[serde(skip_serializing_if = "Option::is_none")]
1785 pub reasoning_opaque: Option<String>,
1786 #[serde(skip_serializing_if = "Option::is_none")]
1788 pub reasoning_text: Option<String>,
1789 #[serde(skip_serializing_if = "Option::is_none")]
1791 pub reasoning_wire_field: Option<String>,
1792 #[serde(skip_serializing_if = "Option::is_none")]
1794 pub request_id: Option<RequestId>,
1795 #[serde(skip_serializing_if = "Option::is_none")]
1797 pub server_tools: Option<AssistantMessageServerTools>,
1798 #[serde(skip_serializing_if = "Option::is_none")]
1800 pub service_request_id: Option<String>,
1801 #[serde(skip_serializing_if = "Option::is_none")]
1803 pub tool_requests: Option<Vec<AssistantMessageToolRequest>>,
1804 #[serde(skip_serializing_if = "Option::is_none")]
1806 pub turn_id: Option<String>,
1807}
1808
1809#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1811#[serde(rename_all = "camelCase")]
1812pub struct AssistantMessageStartData {
1813 pub message_id: String,
1815 #[serde(skip_serializing_if = "Option::is_none")]
1817 pub phase: Option<String>,
1818}
1819
1820#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1822#[serde(rename_all = "camelCase")]
1823pub struct AssistantMessageDeltaData {
1824 pub delta_content: String,
1826 pub message_id: String,
1828 #[doc(hidden)]
1830 #[deprecated]
1831 #[serde(skip_serializing_if = "Option::is_none")]
1832 pub parent_tool_call_id: Option<String>,
1833}
1834
1835#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1837#[serde(rename_all = "camelCase")]
1838pub struct AssistantTurnEndData {
1839 #[serde(skip_serializing_if = "Option::is_none")]
1841 pub model: Option<String>,
1842 pub turn_id: String,
1844}
1845
1846#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1848#[serde(rename_all = "camelCase")]
1849pub struct AssistantIdleData {
1850 #[serde(skip_serializing_if = "Option::is_none")]
1852 pub aborted: Option<bool>,
1853}
1854
1855#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1857#[serde(rename_all = "camelCase")]
1858pub struct AssistantUsageCopilotUsageTokenDetail {
1859 pub batch_size: i64,
1861 pub cost_per_batch: i64,
1863 pub token_count: i64,
1865 pub token_type: String,
1867}
1868
1869#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1871#[serde(rename_all = "camelCase")]
1872pub struct AssistantUsageCopilotUsage {
1873 #[doc(hidden)]
1875 #[serde(skip_serializing_if = "Option::is_none")]
1876 pub(crate) token_details: Option<Vec<AssistantUsageCopilotUsageTokenDetail>>,
1877 pub total_nano_aiu: f64,
1879}
1880
1881#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1883#[serde(rename_all = "camelCase")]
1884pub(crate) struct AssistantUsageQuotaSnapshot {
1885 #[doc(hidden)]
1887 pub(crate) entitlement_requests: i64,
1888 #[doc(hidden)]
1890 #[serde(skip_serializing_if = "Option::is_none")]
1891 pub(crate) has_quota: Option<bool>,
1892 #[doc(hidden)]
1894 pub(crate) is_unlimited_entitlement: bool,
1895 #[doc(hidden)]
1897 pub(crate) overage: f64,
1898 #[doc(hidden)]
1900 pub(crate) overage_allowed_with_exhausted_quota: bool,
1901 #[doc(hidden)]
1903 #[serde(skip_serializing_if = "Option::is_none")]
1904 pub(crate) overage_entitlement: Option<f64>,
1905 #[doc(hidden)]
1907 pub(crate) remaining_percentage: f64,
1908 #[doc(hidden)]
1910 #[serde(skip_serializing_if = "Option::is_none")]
1911 pub(crate) reset_date: Option<String>,
1912 #[doc(hidden)]
1914 #[serde(skip_serializing_if = "Option::is_none")]
1915 pub(crate) token_based_billing: Option<bool>,
1916 #[doc(hidden)]
1918 pub(crate) usage_allowed_with_exhausted_quota: bool,
1919 #[doc(hidden)]
1921 pub(crate) used_requests: i64,
1922}
1923
1924#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1926#[serde(rename_all = "camelCase")]
1927pub struct AssistantUsageData {
1928 #[serde(skip_serializing_if = "Option::is_none")]
1930 pub api_call_id: Option<String>,
1931 #[serde(skip_serializing_if = "Option::is_none")]
1933 pub api_endpoint: Option<AssistantUsageApiEndpoint>,
1934 #[serde(skip_serializing_if = "Option::is_none")]
1936 pub cache_expires_at: Option<String>,
1937 #[serde(skip_serializing_if = "Option::is_none")]
1939 pub cache_read_tokens: Option<i64>,
1940 #[serde(skip_serializing_if = "Option::is_none")]
1942 pub cache_write_tokens: Option<i64>,
1943 #[serde(skip_serializing_if = "Option::is_none")]
1945 pub content_filter_triggered: Option<bool>,
1946 #[serde(skip_serializing_if = "Option::is_none")]
1948 pub copilot_usage: Option<AssistantUsageCopilotUsage>,
1949 #[serde(skip_serializing_if = "Option::is_none")]
1958 pub cost: Option<f64>,
1959 #[serde(skip_serializing_if = "Option::is_none")]
1961 pub duration: Option<i64>,
1962 #[serde(skip_serializing_if = "Option::is_none")]
1964 pub finish_reason: Option<String>,
1965 #[serde(skip_serializing_if = "Option::is_none")]
1967 pub initiator: Option<String>,
1968 #[serde(skip_serializing_if = "Option::is_none")]
1970 pub input_tokens: Option<i64>,
1971 #[serde(skip_serializing_if = "Option::is_none")]
1973 pub inter_token_latency_ms: Option<f64>,
1974 pub model: String,
1976 #[serde(skip_serializing_if = "Option::is_none")]
1978 pub output_tokens: Option<i64>,
1979 #[doc(hidden)]
1981 #[deprecated]
1982 #[serde(skip_serializing_if = "Option::is_none")]
1983 pub parent_tool_call_id: Option<String>,
1984 #[serde(skip_serializing_if = "Option::is_none")]
1986 pub provider_call_id: Option<String>,
1987 #[doc(hidden)]
1989 #[serde(skip_serializing_if = "Option::is_none")]
1990 pub(crate) quota_snapshots: Option<HashMap<String, AssistantUsageQuotaSnapshot>>,
1991 #[serde(skip_serializing_if = "Option::is_none")]
1993 pub reasoning_effort: Option<String>,
1994 #[serde(skip_serializing_if = "Option::is_none")]
1996 pub reasoning_tokens: Option<i64>,
1997 #[serde(skip_serializing_if = "Option::is_none")]
1999 pub service_request_id: Option<String>,
2000 #[serde(skip_serializing_if = "Option::is_none")]
2002 pub time_to_first_token_ms: Option<f64>,
2003}
2004
2005#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2007#[serde(rename_all = "camelCase")]
2008pub struct ModelCallFailureRequestFingerprint {
2009 pub image_part_count: i64,
2011 pub image_parts_missing_media_type: i64,
2013 #[serde(skip_serializing_if = "Option::is_none")]
2015 pub last_message_role: Option<String>,
2016 pub message_count: i64,
2018 pub nameless_tool_call_count: i64,
2020 pub tool_call_count: i64,
2022 pub tool_result_message_count: i64,
2024}
2025
2026#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2028#[serde(rename_all = "camelCase")]
2029pub struct ModelCallFailureData {
2030 #[serde(skip_serializing_if = "Option::is_none")]
2032 pub api_call_id: Option<String>,
2033 #[serde(skip_serializing_if = "Option::is_none")]
2035 pub api_endpoint: Option<AssistantUsageApiEndpoint>,
2036 #[serde(skip_serializing_if = "Option::is_none")]
2038 pub bad_request_kind: Option<ModelCallFailureBadRequestKind>,
2039 #[serde(skip_serializing_if = "Option::is_none")]
2041 pub duration_ms: Option<i64>,
2042 #[serde(skip_serializing_if = "Option::is_none")]
2044 pub error_code: Option<String>,
2045 #[serde(skip_serializing_if = "Option::is_none")]
2047 pub error_message: Option<String>,
2048 #[serde(skip_serializing_if = "Option::is_none")]
2050 pub error_type: Option<String>,
2051 #[serde(skip_serializing_if = "Option::is_none")]
2053 pub failure_kind: Option<ModelCallFailureKind>,
2054 #[serde(skip_serializing_if = "Option::is_none")]
2056 pub initiator: Option<String>,
2057 #[serde(skip_serializing_if = "Option::is_none")]
2059 pub is_auto: Option<bool>,
2060 #[serde(skip_serializing_if = "Option::is_none")]
2062 pub is_byok: Option<bool>,
2063 #[serde(skip_serializing_if = "Option::is_none")]
2065 pub max_output_tokens: Option<i64>,
2066 #[serde(skip_serializing_if = "Option::is_none")]
2068 pub max_prompt_tokens: Option<i64>,
2069 #[serde(skip_serializing_if = "Option::is_none")]
2071 pub model: Option<String>,
2072 #[serde(skip_serializing_if = "Option::is_none")]
2074 pub provider_call_id: Option<String>,
2075 #[doc(hidden)]
2077 #[serde(skip_serializing_if = "Option::is_none")]
2078 pub(crate) quota_snapshots: Option<HashMap<String, AssistantUsageQuotaSnapshot>>,
2079 #[serde(skip_serializing_if = "Option::is_none")]
2081 pub reasoning_effort: Option<String>,
2082 #[serde(skip_serializing_if = "Option::is_none")]
2084 pub request_fingerprint: Option<ModelCallFailureRequestFingerprint>,
2085 #[serde(skip_serializing_if = "Option::is_none")]
2087 pub service_request_id: Option<String>,
2088 pub source: ModelCallFailureSource,
2090 #[serde(skip_serializing_if = "Option::is_none")]
2092 pub status_code: Option<i32>,
2093 #[serde(skip_serializing_if = "Option::is_none")]
2095 pub transport: Option<ModelCallFailureTransport>,
2096}
2097
2098#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2100#[serde(rename_all = "camelCase")]
2101pub struct ModelCallStartData {
2102 #[serde(skip_serializing_if = "Option::is_none")]
2104 pub model: Option<String>,
2105 pub turn_id: String,
2107}
2108
2109#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2111#[serde(rename_all = "camelCase")]
2112pub struct AbortData {
2113 pub reason: AbortReason,
2115}
2116
2117#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2119#[serde(rename_all = "camelCase")]
2120pub struct ToolUserRequestedData {
2121 #[serde(skip_serializing_if = "Option::is_none")]
2123 pub arguments: Option<serde_json::Value>,
2124 pub tool_call_id: String,
2126 pub tool_name: String,
2128}
2129
2130#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2132#[serde(rename_all = "camelCase")]
2133pub struct ToolExecutionStartShellToolInfo {
2134 pub has_write_file_redirection: bool,
2136 pub possible_paths: Vec<String>,
2138}
2139
2140#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2142#[serde(rename_all = "camelCase")]
2143pub struct ToolExecutionStartToolDescriptionMetaUI {
2144 #[serde(skip_serializing_if = "Option::is_none")]
2146 pub resource_uri: Option<String>,
2147 #[serde(skip_serializing_if = "Option::is_none")]
2149 pub visibility: Option<Vec<ToolExecutionStartToolDescriptionMetaUIVisibility>>,
2150}
2151
2152#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2154#[serde(rename_all = "camelCase")]
2155pub struct ToolExecutionStartToolDescriptionMeta {
2156 #[serde(skip_serializing_if = "Option::is_none")]
2158 pub ui: Option<ToolExecutionStartToolDescriptionMetaUI>,
2159}
2160
2161#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2163#[serde(rename_all = "camelCase")]
2164pub struct ToolExecutionStartToolDescription {
2165 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2167 pub meta: Option<ToolExecutionStartToolDescriptionMeta>,
2168 #[serde(skip_serializing_if = "Option::is_none")]
2170 pub description: Option<String>,
2171 pub name: String,
2173}
2174
2175#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2177#[serde(rename_all = "camelCase")]
2178pub struct ToolExecutionStartData {
2179 #[serde(skip_serializing_if = "Option::is_none")]
2181 pub arguments: Option<serde_json::Value>,
2182 #[serde(skip_serializing_if = "Option::is_none")]
2184 pub display_verbatim: Option<bool>,
2185 #[serde(skip_serializing_if = "Option::is_none")]
2187 pub mcp_server_name: Option<String>,
2188 #[serde(skip_serializing_if = "Option::is_none")]
2190 pub mcp_tool_name: Option<String>,
2191 #[serde(skip_serializing_if = "Option::is_none")]
2193 pub model: Option<String>,
2194 #[doc(hidden)]
2196 #[deprecated]
2197 #[serde(skip_serializing_if = "Option::is_none")]
2198 pub parent_tool_call_id: Option<String>,
2199 #[serde(skip_serializing_if = "Option::is_none")]
2201 pub shell_tool_info: Option<ToolExecutionStartShellToolInfo>,
2202 pub tool_call_id: String,
2204 #[serde(skip_serializing_if = "Option::is_none")]
2206 pub tool_description: Option<ToolExecutionStartToolDescription>,
2207 pub tool_name: String,
2209 #[serde(skip_serializing_if = "Option::is_none")]
2211 pub turn_id: Option<String>,
2212}
2213
2214#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2216#[serde(rename_all = "camelCase")]
2217pub struct ToolExecutionPartialResultData {
2218 pub partial_output: String,
2220 pub tool_call_id: String,
2222}
2223
2224#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2226#[serde(rename_all = "camelCase")]
2227pub struct ToolExecutionProgressData {
2228 pub progress_message: String,
2230 pub tool_call_id: String,
2232}
2233
2234#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2236#[serde(rename_all = "camelCase")]
2237pub struct ToolExecutionCompleteError {
2238 #[serde(skip_serializing_if = "Option::is_none")]
2240 pub code: Option<String>,
2241 pub message: String,
2243}
2244
2245#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2254#[serde(rename_all = "camelCase")]
2255pub struct CitableSource {
2256 pub content: String,
2258 pub id: String,
2260 #[serde(skip_serializing_if = "Option::is_none")]
2262 pub path: Option<String>,
2263 #[serde(skip_serializing_if = "Option::is_none")]
2265 pub title: Option<String>,
2266 #[serde(skip_serializing_if = "Option::is_none")]
2268 pub url: Option<String>,
2269}
2270
2271#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2273#[serde(rename_all = "camelCase")]
2274pub struct ToolExecutionCompleteContentText {
2275 pub text: String,
2277 pub r#type: ToolExecutionCompleteContentTextType,
2279}
2280
2281#[doc(hidden)]
2283#[deprecated]
2284#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2285#[serde(rename_all = "camelCase")]
2286pub struct ToolExecutionCompleteContentTerminal {
2287 #[serde(skip_serializing_if = "Option::is_none")]
2289 pub cwd: Option<String>,
2290 #[serde(skip_serializing_if = "Option::is_none")]
2292 pub exit_code: Option<i64>,
2293 pub text: String,
2295 pub r#type: ToolExecutionCompleteContentTerminalType,
2297}
2298
2299#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2301#[serde(rename_all = "camelCase")]
2302pub struct ToolExecutionCompleteContentShellExit {
2303 #[serde(skip_serializing_if = "Option::is_none")]
2305 pub cwd: Option<String>,
2306 pub exit_code: i64,
2308 #[serde(skip_serializing_if = "Option::is_none")]
2310 pub output_preview: Option<String>,
2311 #[serde(skip_serializing_if = "Option::is_none")]
2313 pub output_truncated: Option<bool>,
2314 pub shell_id: String,
2316 pub r#type: ToolExecutionCompleteContentShellExitType,
2318}
2319
2320#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2322#[serde(rename_all = "camelCase")]
2323pub struct ToolExecutionCompleteContentImage {
2324 pub data: String,
2326 pub mime_type: String,
2328 pub r#type: ToolExecutionCompleteContentImageType,
2330}
2331
2332#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2334#[serde(rename_all = "camelCase")]
2335pub struct ToolExecutionCompleteContentAudio {
2336 pub data: String,
2338 pub mime_type: String,
2340 pub r#type: ToolExecutionCompleteContentAudioType,
2342}
2343
2344#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2346#[serde(rename_all = "camelCase")]
2347pub struct ToolExecutionCompleteContentResourceLinkIcon {
2348 #[serde(skip_serializing_if = "Option::is_none")]
2350 pub mime_type: Option<String>,
2351 #[serde(skip_serializing_if = "Option::is_none")]
2353 pub sizes: Option<Vec<String>>,
2354 pub src: String,
2356 #[serde(skip_serializing_if = "Option::is_none")]
2358 pub theme: Option<ToolExecutionCompleteContentResourceLinkIconTheme>,
2359}
2360
2361#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2363#[serde(rename_all = "camelCase")]
2364pub struct ToolExecutionCompleteContentResourceLink {
2365 #[serde(skip_serializing_if = "Option::is_none")]
2367 pub description: Option<String>,
2368 #[serde(skip_serializing_if = "Option::is_none")]
2370 pub icons: Option<Vec<ToolExecutionCompleteContentResourceLinkIcon>>,
2371 #[serde(skip_serializing_if = "Option::is_none")]
2373 pub mime_type: Option<String>,
2374 pub name: String,
2376 #[serde(skip_serializing_if = "Option::is_none")]
2378 pub size: Option<i64>,
2379 #[serde(skip_serializing_if = "Option::is_none")]
2381 pub title: Option<String>,
2382 pub r#type: ToolExecutionCompleteContentResourceLinkType,
2384 pub uri: String,
2386}
2387
2388#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2390#[serde(rename_all = "camelCase")]
2391pub struct EmbeddedTextResourceContents {
2392 #[serde(skip_serializing_if = "Option::is_none")]
2394 pub mime_type: Option<String>,
2395 pub text: String,
2397 pub uri: String,
2399}
2400
2401#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2403#[serde(rename_all = "camelCase")]
2404pub struct EmbeddedBlobResourceContents {
2405 pub blob: String,
2407 #[serde(skip_serializing_if = "Option::is_none")]
2409 pub mime_type: Option<String>,
2410 pub uri: String,
2412}
2413
2414#[derive(Debug, Clone, Serialize, Deserialize)]
2416#[serde(rename_all = "camelCase")]
2417pub struct ToolExecutionCompleteContentResource {
2418 pub resource: ToolExecutionCompleteContentResourceDetails,
2420 pub r#type: ToolExecutionCompleteContentResourceType,
2422}
2423
2424#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2426#[serde(rename_all = "camelCase")]
2427pub struct ToolExecutionCompleteUIResourceMetaUICsp {
2428 #[serde(skip_serializing_if = "Option::is_none")]
2429 pub base_uri_domains: Option<Vec<String>>,
2430 #[serde(skip_serializing_if = "Option::is_none")]
2431 pub connect_domains: Option<Vec<String>>,
2432 #[serde(skip_serializing_if = "Option::is_none")]
2433 pub frame_domains: Option<Vec<String>>,
2434 #[serde(skip_serializing_if = "Option::is_none")]
2435 pub resource_domains: Option<Vec<String>>,
2436}
2437
2438#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2440#[serde(rename_all = "camelCase")]
2441pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsCamera {}
2442
2443#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2445#[serde(rename_all = "camelCase")]
2446pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite {}
2447
2448#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2450#[serde(rename_all = "camelCase")]
2451pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation {}
2452
2453#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2455#[serde(rename_all = "camelCase")]
2456pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone {}
2457
2458#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2460#[serde(rename_all = "camelCase")]
2461pub struct ToolExecutionCompleteUIResourceMetaUIPermissions {
2462 #[serde(skip_serializing_if = "Option::is_none")]
2464 pub camera: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsCamera>,
2465 #[serde(skip_serializing_if = "Option::is_none")]
2467 pub clipboard_write: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite>,
2468 #[serde(skip_serializing_if = "Option::is_none")]
2470 pub geolocation: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation>,
2471 #[serde(skip_serializing_if = "Option::is_none")]
2473 pub microphone: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone>,
2474}
2475
2476#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2478#[serde(rename_all = "camelCase")]
2479pub struct ToolExecutionCompleteUIResourceMetaUI {
2480 #[serde(skip_serializing_if = "Option::is_none")]
2482 pub csp: Option<ToolExecutionCompleteUIResourceMetaUICsp>,
2483 #[serde(skip_serializing_if = "Option::is_none")]
2484 pub domain: Option<String>,
2485 #[serde(skip_serializing_if = "Option::is_none")]
2487 pub permissions: Option<ToolExecutionCompleteUIResourceMetaUIPermissions>,
2488 #[serde(skip_serializing_if = "Option::is_none")]
2489 pub prefers_border: Option<bool>,
2490}
2491
2492#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2494#[serde(rename_all = "camelCase")]
2495pub struct ToolExecutionCompleteUIResourceMeta {
2496 #[serde(skip_serializing_if = "Option::is_none")]
2498 pub ui: Option<ToolExecutionCompleteUIResourceMetaUI>,
2499}
2500
2501#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2503#[serde(rename_all = "camelCase")]
2504pub struct ToolExecutionCompleteUIResource {
2505 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2507 pub meta: Option<ToolExecutionCompleteUIResourceMeta>,
2508 #[serde(skip_serializing_if = "Option::is_none")]
2510 pub blob: Option<String>,
2511 pub mime_type: String,
2513 #[serde(skip_serializing_if = "Option::is_none")]
2515 pub text: Option<String>,
2516 pub uri: String,
2518}
2519
2520#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2522#[serde(rename_all = "camelCase")]
2523pub struct ToolExecutionCompleteResult {
2524 #[serde(skip_serializing_if = "Option::is_none")]
2533 pub binary_results_for_llm: Option<Vec<serde_json::Value>>,
2534 #[serde(skip_serializing_if = "Option::is_none")]
2543 pub citable_sources: Option<Vec<CitableSource>>,
2544 pub content: String,
2546 #[serde(skip_serializing_if = "Option::is_none")]
2548 pub contents: Option<Vec<ToolExecutionCompleteContent>>,
2549 #[serde(skip_serializing_if = "Option::is_none")]
2551 pub detailed_content: Option<String>,
2552 #[serde(skip_serializing_if = "Option::is_none")]
2561 pub mcp_meta: Option<serde_json::Value>,
2562 #[serde(skip_serializing_if = "Option::is_none")]
2564 pub structured_content: Option<serde_json::Value>,
2565 #[serde(skip_serializing_if = "Option::is_none")]
2567 pub ui_resource: Option<ToolExecutionCompleteUIResource>,
2568}
2569
2570#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2572#[serde(rename_all = "camelCase")]
2573pub struct ToolExecutionCompleteToolDescriptionMetaUI {
2574 #[serde(skip_serializing_if = "Option::is_none")]
2576 pub resource_uri: Option<String>,
2577 #[serde(skip_serializing_if = "Option::is_none")]
2579 pub visibility: Option<Vec<ToolExecutionCompleteToolDescriptionMetaUIVisibility>>,
2580}
2581
2582#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2584#[serde(rename_all = "camelCase")]
2585pub struct ToolExecutionCompleteToolDescriptionMeta {
2586 #[serde(skip_serializing_if = "Option::is_none")]
2588 pub ui: Option<ToolExecutionCompleteToolDescriptionMetaUI>,
2589}
2590
2591#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2593#[serde(rename_all = "camelCase")]
2594pub struct ToolExecutionCompleteToolDescription {
2595 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2597 pub meta: Option<ToolExecutionCompleteToolDescriptionMeta>,
2598 #[serde(skip_serializing_if = "Option::is_none")]
2600 pub description: Option<String>,
2601 pub name: String,
2603}
2604
2605#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2607#[serde(rename_all = "camelCase")]
2608pub struct ToolExecutionCompleteData {
2609 #[serde(skip_serializing_if = "Option::is_none")]
2611 pub error: Option<ToolExecutionCompleteError>,
2612 #[serde(skip_serializing_if = "Option::is_none")]
2614 pub interaction_id: Option<String>,
2615 #[serde(skip_serializing_if = "Option::is_none")]
2617 pub is_user_requested: Option<bool>,
2618 #[serde(skip_serializing_if = "Option::is_none")]
2627 pub mcp_meta: Option<serde_json::Value>,
2628 #[serde(skip_serializing_if = "Option::is_none")]
2630 pub model: Option<String>,
2631 #[doc(hidden)]
2633 #[deprecated]
2634 #[serde(skip_serializing_if = "Option::is_none")]
2635 pub parent_tool_call_id: Option<String>,
2636 #[serde(skip_serializing_if = "Option::is_none")]
2638 pub result: Option<ToolExecutionCompleteResult>,
2639 #[serde(skip_serializing_if = "Option::is_none")]
2641 pub sandboxed: Option<bool>,
2642 pub success: bool,
2644 pub tool_call_id: String,
2646 #[serde(skip_serializing_if = "Option::is_none")]
2648 pub tool_description: Option<ToolExecutionCompleteToolDescription>,
2649 #[serde(skip_serializing_if = "Option::is_none")]
2651 pub tool_telemetry: Option<HashMap<String, serde_json::Value>>,
2652 #[serde(skip_serializing_if = "Option::is_none")]
2654 pub turn_id: Option<String>,
2655}
2656
2657#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2659#[serde(rename_all = "camelCase")]
2660pub struct ToolSearchActivatedData {
2661 pub strategy: String,
2663 pub tool_names: Vec<String>,
2665}
2666
2667#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2669#[serde(rename_all = "camelCase")]
2670pub struct SkillInvokedData {
2671 #[serde(skip_serializing_if = "Option::is_none")]
2673 pub allowed_tools: Option<Vec<String>>,
2674 pub content: String,
2676 #[serde(skip_serializing_if = "Option::is_none")]
2678 pub description: Option<String>,
2679 #[serde(skip_serializing_if = "Option::is_none")]
2681 pub model: Option<String>,
2682 pub name: String,
2684 pub path: String,
2686 #[serde(skip_serializing_if = "Option::is_none")]
2688 pub plugin_name: Option<String>,
2689 #[serde(skip_serializing_if = "Option::is_none")]
2691 pub plugin_version: Option<String>,
2692 #[serde(skip_serializing_if = "Option::is_none")]
2694 pub source: Option<String>,
2695 #[serde(skip_serializing_if = "Option::is_none")]
2697 pub trigger: Option<SkillInvokedTrigger>,
2698}
2699
2700#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2702#[serde(rename_all = "camelCase")]
2703pub struct SubagentStartedData {
2704 pub agent_description: String,
2706 pub agent_display_name: String,
2708 pub agent_name: String,
2710 #[serde(skip_serializing_if = "Option::is_none")]
2712 pub model: Option<String>,
2713 pub tool_call_id: String,
2715}
2716
2717#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2719#[serde(rename_all = "camelCase")]
2720pub struct SubagentCompletedData {
2721 pub agent_display_name: String,
2723 pub agent_name: String,
2725 #[serde(skip_serializing_if = "Option::is_none")]
2727 pub duration_ms: Option<i64>,
2728 #[serde(skip_serializing_if = "Option::is_none")]
2730 pub model: Option<String>,
2731 pub tool_call_id: String,
2733 #[serde(skip_serializing_if = "Option::is_none")]
2735 pub total_tokens: Option<i64>,
2736 #[serde(skip_serializing_if = "Option::is_none")]
2738 pub total_tool_calls: Option<i64>,
2739}
2740
2741#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2743#[serde(rename_all = "camelCase")]
2744pub struct SubagentFailedData {
2745 pub agent_display_name: String,
2747 pub agent_name: String,
2749 #[serde(skip_serializing_if = "Option::is_none")]
2751 pub duration_ms: Option<i64>,
2752 pub error: String,
2754 #[serde(skip_serializing_if = "Option::is_none")]
2756 pub model: Option<String>,
2757 pub tool_call_id: String,
2759 #[serde(skip_serializing_if = "Option::is_none")]
2761 pub total_tokens: Option<i64>,
2762 #[serde(skip_serializing_if = "Option::is_none")]
2764 pub total_tool_calls: Option<i64>,
2765}
2766
2767#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2769#[serde(rename_all = "camelCase")]
2770pub struct SubagentSelectedData {
2771 pub agent_display_name: String,
2773 pub agent_name: String,
2775 pub tools: Option<Vec<String>>,
2777}
2778
2779#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2781#[serde(rename_all = "camelCase")]
2782pub struct SubagentDeselectedData {}
2783
2784#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2786#[serde(rename_all = "camelCase")]
2787pub struct HookStartData {
2788 pub hook_invocation_id: String,
2790 pub hook_type: String,
2792 #[serde(skip_serializing_if = "Option::is_none")]
2794 pub input: Option<serde_json::Value>,
2795}
2796
2797#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2799#[serde(rename_all = "camelCase")]
2800pub struct HookEndError {
2801 pub message: String,
2803 #[serde(skip_serializing_if = "Option::is_none")]
2805 pub source: Option<String>,
2806 #[serde(skip_serializing_if = "Option::is_none")]
2808 pub stack: Option<String>,
2809}
2810
2811#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2813#[serde(rename_all = "camelCase")]
2814pub struct HookEndData {
2815 #[serde(skip_serializing_if = "Option::is_none")]
2817 pub error: Option<HookEndError>,
2818 pub hook_invocation_id: String,
2820 pub hook_type: String,
2822 #[serde(skip_serializing_if = "Option::is_none")]
2824 pub output: Option<serde_json::Value>,
2825 pub success: bool,
2827}
2828
2829#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2831#[serde(rename_all = "camelCase")]
2832pub struct HookProgressData {
2833 pub message: String,
2835 #[serde(skip_serializing_if = "Option::is_none")]
2837 pub temporary: Option<bool>,
2838}
2839
2840#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2842#[serde(rename_all = "camelCase")]
2843pub struct SessionBinaryAssetData {
2844 pub asset_id: String,
2846 pub byte_length: i64,
2848 pub data: String,
2850 #[serde(skip_serializing_if = "Option::is_none")]
2852 pub description: Option<String>,
2853 #[serde(skip_serializing_if = "Option::is_none")]
2855 pub metadata: Option<HashMap<String, serde_json::Value>>,
2856 pub mime_type: String,
2858 pub r#type: BinaryAssetType,
2860}
2861
2862#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2864#[serde(rename_all = "camelCase")]
2865pub struct SystemMessageMetadata {
2866 #[serde(skip_serializing_if = "Option::is_none")]
2868 pub prompt_version: Option<String>,
2869 #[serde(skip_serializing_if = "Option::is_none")]
2871 pub variables: Option<HashMap<String, serde_json::Value>>,
2872}
2873
2874#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2876#[serde(rename_all = "camelCase")]
2877pub struct SystemMessageData {
2878 pub content: String,
2880 #[serde(skip_serializing_if = "Option::is_none")]
2882 pub metadata: Option<SystemMessageMetadata>,
2883 #[serde(skip_serializing_if = "Option::is_none")]
2885 pub name: Option<String>,
2886 pub role: SystemMessageRole,
2888}
2889
2890#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2892#[serde(rename_all = "camelCase")]
2893pub struct SystemNotificationData {
2894 pub content: String,
2896 pub kind: serde_json::Value,
2898}
2899
2900#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2902#[serde(rename_all = "camelCase")]
2903pub struct PermissionRequestShellCommand {
2904 pub identifier: String,
2906 pub read_only: bool,
2908}
2909
2910#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2912#[serde(rename_all = "camelCase")]
2913pub struct PermissionRequestShellPossibleUrl {
2914 pub url: String,
2916}
2917
2918#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2920#[serde(rename_all = "camelCase")]
2921pub struct PermissionRequestShell {
2922 pub can_offer_session_approval: bool,
2924 pub commands: Vec<PermissionRequestShellCommand>,
2926 pub full_command_text: String,
2928 pub has_write_file_redirection: bool,
2930 pub intention: String,
2932 pub kind: PermissionRequestShellKind,
2934 pub possible_paths: Vec<String>,
2936 pub possible_urls: Vec<PermissionRequestShellPossibleUrl>,
2938 #[serde(skip_serializing_if = "Option::is_none")]
2940 pub request_sandbox_bypass: Option<bool>,
2941 #[serde(skip_serializing_if = "Option::is_none")]
2943 pub request_sandbox_bypass_reason: Option<String>,
2944 #[serde(skip_serializing_if = "Option::is_none")]
2946 pub tool_call_id: Option<String>,
2947 #[serde(skip_serializing_if = "Option::is_none")]
2949 pub warning: Option<String>,
2950}
2951
2952#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2954#[serde(rename_all = "camelCase")]
2955pub struct PermissionRequestWrite {
2956 pub can_offer_session_approval: bool,
2958 pub diff: String,
2960 pub file_name: String,
2962 pub intention: String,
2964 pub kind: PermissionRequestWriteKind,
2966 #[serde(skip_serializing_if = "Option::is_none")]
2968 pub new_file_contents: Option<String>,
2969 #[serde(skip_serializing_if = "Option::is_none")]
2971 pub request_sandbox_bypass: Option<bool>,
2972 #[serde(skip_serializing_if = "Option::is_none")]
2974 pub request_sandbox_bypass_reason: Option<String>,
2975 #[serde(skip_serializing_if = "Option::is_none")]
2977 pub tool_call_id: Option<String>,
2978}
2979
2980#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2982#[serde(rename_all = "camelCase")]
2983pub struct PermissionRequestRead {
2984 pub intention: String,
2986 pub kind: PermissionRequestReadKind,
2988 pub path: String,
2990 #[serde(skip_serializing_if = "Option::is_none")]
2992 pub request_sandbox_bypass: Option<bool>,
2993 #[serde(skip_serializing_if = "Option::is_none")]
2995 pub request_sandbox_bypass_reason: Option<String>,
2996 #[serde(skip_serializing_if = "Option::is_none")]
2998 pub tool_call_id: Option<String>,
2999}
3000
3001#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3003#[serde(rename_all = "camelCase")]
3004pub struct PermissionRequestMcp {
3005 #[serde(skip_serializing_if = "Option::is_none")]
3007 pub args: Option<serde_json::Value>,
3008 pub kind: PermissionRequestMcpKind,
3010 pub read_only: bool,
3012 pub server_name: String,
3014 #[serde(skip_serializing_if = "Option::is_none")]
3016 pub tool_call_id: Option<String>,
3017 pub tool_name: String,
3019 pub tool_title: String,
3021}
3022
3023#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3025#[serde(rename_all = "camelCase")]
3026pub struct PermissionRequestUrl {
3027 pub intention: String,
3029 pub kind: PermissionRequestUrlKind,
3031 #[serde(skip_serializing_if = "Option::is_none")]
3033 pub request_sandbox_bypass: Option<bool>,
3034 #[serde(skip_serializing_if = "Option::is_none")]
3036 pub request_sandbox_bypass_reason: Option<String>,
3037 #[serde(skip_serializing_if = "Option::is_none")]
3039 pub tool_call_id: Option<String>,
3040 pub url: String,
3042}
3043
3044#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3046#[serde(rename_all = "camelCase")]
3047pub struct PermissionRequestMemory {
3048 #[serde(skip_serializing_if = "Option::is_none")]
3050 pub action: Option<PermissionRequestMemoryAction>,
3051 #[serde(skip_serializing_if = "Option::is_none")]
3053 pub citations: Option<String>,
3054 #[serde(skip_serializing_if = "Option::is_none")]
3056 pub direction: Option<PermissionRequestMemoryDirection>,
3057 pub fact: String,
3059 pub kind: PermissionRequestMemoryKind,
3061 #[serde(skip_serializing_if = "Option::is_none")]
3063 pub reason: Option<String>,
3064 #[serde(skip_serializing_if = "Option::is_none")]
3066 pub subject: Option<String>,
3067 #[serde(skip_serializing_if = "Option::is_none")]
3069 pub tool_call_id: Option<String>,
3070}
3071
3072#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3074#[serde(rename_all = "camelCase")]
3075pub struct PermissionRequestCustomTool {
3076 #[serde(skip_serializing_if = "Option::is_none")]
3078 pub args: Option<serde_json::Value>,
3079 pub kind: PermissionRequestCustomToolKind,
3081 #[serde(skip_serializing_if = "Option::is_none")]
3083 pub tool_call_id: Option<String>,
3084 pub tool_description: String,
3086 pub tool_name: String,
3088}
3089
3090#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3092#[serde(rename_all = "camelCase")]
3093pub struct PermissionRequestHook {
3094 #[serde(skip_serializing_if = "Option::is_none")]
3096 pub hook_message: Option<String>,
3097 pub kind: PermissionRequestHookKind,
3099 #[serde(skip_serializing_if = "Option::is_none")]
3101 pub tool_args: Option<serde_json::Value>,
3102 #[serde(skip_serializing_if = "Option::is_none")]
3104 pub tool_call_id: Option<String>,
3105 pub tool_name: String,
3107}
3108
3109#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3111#[serde(rename_all = "camelCase")]
3112pub struct PermissionRequestExtensionManagement {
3113 #[serde(skip_serializing_if = "Option::is_none")]
3115 pub extension_name: Option<String>,
3116 pub kind: PermissionRequestExtensionManagementKind,
3118 pub operation: String,
3120 #[serde(skip_serializing_if = "Option::is_none")]
3122 pub tool_call_id: Option<String>,
3123}
3124
3125#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3127#[serde(rename_all = "camelCase")]
3128pub struct PermissionRequestExtensionPermissionAccess {
3129 pub capabilities: Vec<String>,
3131 pub extension_name: String,
3133 pub kind: PermissionRequestExtensionPermissionAccessKind,
3135 #[serde(skip_serializing_if = "Option::is_none")]
3137 pub tool_call_id: Option<String>,
3138}
3139
3140#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3149#[serde(rename_all = "camelCase")]
3150pub struct PermissionAutoApproval {
3151 #[serde(skip_serializing_if = "Option::is_none")]
3153 pub reason: Option<String>,
3154 pub recommendation: AutoApprovalRecommendation,
3156}
3157
3158#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3160#[serde(rename_all = "camelCase")]
3161pub struct PermissionPromptRequestCommands {
3162 #[serde(skip_serializing_if = "Option::is_none")]
3171 pub auto_approval: Option<PermissionAutoApproval>,
3172 pub can_offer_session_approval: bool,
3174 pub command_identifiers: Vec<String>,
3176 pub full_command_text: String,
3178 pub intention: String,
3180 pub kind: PermissionPromptRequestCommandsKind,
3182 #[serde(skip_serializing_if = "Option::is_none")]
3184 pub tool_call_id: Option<String>,
3185 #[serde(skip_serializing_if = "Option::is_none")]
3187 pub warning: Option<String>,
3188}
3189
3190#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3192#[serde(rename_all = "camelCase")]
3193pub struct PermissionPromptRequestWrite {
3194 #[serde(skip_serializing_if = "Option::is_none")]
3203 pub auto_approval: Option<PermissionAutoApproval>,
3204 pub can_offer_session_approval: bool,
3206 pub diff: String,
3208 pub file_name: String,
3210 pub intention: String,
3212 pub kind: PermissionPromptRequestWriteKind,
3214 #[serde(skip_serializing_if = "Option::is_none")]
3216 pub new_file_contents: Option<String>,
3217 #[serde(skip_serializing_if = "Option::is_none")]
3219 pub tool_call_id: Option<String>,
3220}
3221
3222#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3224#[serde(rename_all = "camelCase")]
3225pub struct PermissionPromptRequestRead {
3226 #[serde(skip_serializing_if = "Option::is_none")]
3235 pub auto_approval: Option<PermissionAutoApproval>,
3236 pub intention: String,
3238 pub kind: PermissionPromptRequestReadKind,
3240 pub path: String,
3242 #[serde(skip_serializing_if = "Option::is_none")]
3244 pub tool_call_id: Option<String>,
3245}
3246
3247#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3249#[serde(rename_all = "camelCase")]
3250pub struct PermissionPromptRequestMcp {
3251 #[serde(skip_serializing_if = "Option::is_none")]
3253 pub args: Option<serde_json::Value>,
3254 #[serde(skip_serializing_if = "Option::is_none")]
3263 pub auto_approval: Option<PermissionAutoApproval>,
3264 pub kind: PermissionPromptRequestMcpKind,
3266 pub server_name: String,
3268 #[serde(skip_serializing_if = "Option::is_none")]
3270 pub tool_call_id: Option<String>,
3271 pub tool_name: String,
3273 pub tool_title: String,
3275}
3276
3277#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3279#[serde(rename_all = "camelCase")]
3280pub struct PermissionPromptRequestUrl {
3281 #[serde(skip_serializing_if = "Option::is_none")]
3290 pub auto_approval: Option<PermissionAutoApproval>,
3291 pub intention: String,
3293 pub kind: PermissionPromptRequestUrlKind,
3295 #[serde(skip_serializing_if = "Option::is_none")]
3297 pub request_sandbox_bypass: Option<bool>,
3298 #[serde(skip_serializing_if = "Option::is_none")]
3300 pub request_sandbox_bypass_reason: Option<String>,
3301 #[serde(skip_serializing_if = "Option::is_none")]
3303 pub tool_call_id: Option<String>,
3304 pub url: String,
3306}
3307
3308#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3310#[serde(rename_all = "camelCase")]
3311pub struct PermissionPromptRequestMemory {
3312 #[serde(skip_serializing_if = "Option::is_none")]
3314 pub action: Option<PermissionRequestMemoryAction>,
3315 #[serde(skip_serializing_if = "Option::is_none")]
3324 pub auto_approval: Option<PermissionAutoApproval>,
3325 #[serde(skip_serializing_if = "Option::is_none")]
3327 pub citations: Option<String>,
3328 #[serde(skip_serializing_if = "Option::is_none")]
3330 pub direction: Option<PermissionRequestMemoryDirection>,
3331 pub fact: String,
3333 pub kind: PermissionPromptRequestMemoryKind,
3335 #[serde(skip_serializing_if = "Option::is_none")]
3337 pub reason: Option<String>,
3338 #[serde(skip_serializing_if = "Option::is_none")]
3340 pub subject: Option<String>,
3341 #[serde(skip_serializing_if = "Option::is_none")]
3343 pub tool_call_id: Option<String>,
3344}
3345
3346#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3348#[serde(rename_all = "camelCase")]
3349pub struct PermissionPromptRequestCustomTool {
3350 #[serde(skip_serializing_if = "Option::is_none")]
3352 pub args: Option<serde_json::Value>,
3353 #[serde(skip_serializing_if = "Option::is_none")]
3362 pub auto_approval: Option<PermissionAutoApproval>,
3363 pub kind: PermissionPromptRequestCustomToolKind,
3365 #[serde(skip_serializing_if = "Option::is_none")]
3367 pub tool_call_id: Option<String>,
3368 pub tool_description: String,
3370 pub tool_name: String,
3372}
3373
3374#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3376#[serde(rename_all = "camelCase")]
3377pub struct PermissionPromptRequestPath {
3378 pub access_kind: PermissionPromptRequestPathAccessKind,
3380 #[serde(skip_serializing_if = "Option::is_none")]
3389 pub auto_approval: Option<PermissionAutoApproval>,
3390 pub kind: PermissionPromptRequestPathKind,
3392 pub paths: Vec<String>,
3394 #[serde(skip_serializing_if = "Option::is_none")]
3396 pub tool_call_id: Option<String>,
3397}
3398
3399#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3401#[serde(rename_all = "camelCase")]
3402pub struct PermissionPromptRequestHook {
3403 #[serde(skip_serializing_if = "Option::is_none")]
3412 pub auto_approval: Option<PermissionAutoApproval>,
3413 #[serde(skip_serializing_if = "Option::is_none")]
3415 pub hook_message: Option<String>,
3416 pub kind: PermissionPromptRequestHookKind,
3418 #[serde(skip_serializing_if = "Option::is_none")]
3420 pub tool_args: Option<serde_json::Value>,
3421 #[serde(skip_serializing_if = "Option::is_none")]
3423 pub tool_call_id: Option<String>,
3424 pub tool_name: String,
3426}
3427
3428#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3430#[serde(rename_all = "camelCase")]
3431pub struct PermissionPromptRequestExtensionManagement {
3432 #[serde(skip_serializing_if = "Option::is_none")]
3441 pub auto_approval: Option<PermissionAutoApproval>,
3442 #[serde(skip_serializing_if = "Option::is_none")]
3444 pub extension_name: Option<String>,
3445 pub kind: PermissionPromptRequestExtensionManagementKind,
3447 pub operation: String,
3449 #[serde(skip_serializing_if = "Option::is_none")]
3451 pub tool_call_id: Option<String>,
3452}
3453
3454#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3456#[serde(rename_all = "camelCase")]
3457pub struct PermissionPromptRequestExtensionPermissionAccess {
3458 #[serde(skip_serializing_if = "Option::is_none")]
3467 pub auto_approval: Option<PermissionAutoApproval>,
3468 pub capabilities: Vec<String>,
3470 pub extension_name: String,
3472 pub kind: PermissionPromptRequestExtensionPermissionAccessKind,
3474 #[serde(skip_serializing_if = "Option::is_none")]
3476 pub tool_call_id: Option<String>,
3477}
3478
3479#[derive(Debug, Clone, Serialize, Deserialize)]
3481#[serde(rename_all = "camelCase")]
3482pub struct PermissionRequestedData {
3483 pub permission_request: PermissionRequest,
3485 #[serde(skip_serializing_if = "Option::is_none")]
3487 pub prompt_request: Option<PermissionPromptRequest>,
3488 pub request_id: RequestId,
3490 #[serde(skip_serializing_if = "Option::is_none")]
3492 pub resolved_by_hook: Option<bool>,
3493}
3494
3495#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3497#[serde(rename_all = "camelCase")]
3498pub struct PermissionApproved {
3499 pub kind: PermissionApprovedKind,
3501}
3502
3503#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3505#[serde(rename_all = "camelCase")]
3506pub struct UserToolSessionApprovalCommands {
3507 pub command_identifiers: Vec<String>,
3509 pub kind: UserToolSessionApprovalCommandsKind,
3511}
3512
3513#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3515#[serde(rename_all = "camelCase")]
3516pub struct UserToolSessionApprovalRead {
3517 pub kind: UserToolSessionApprovalReadKind,
3519}
3520
3521#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3523#[serde(rename_all = "camelCase")]
3524pub struct UserToolSessionApprovalWrite {
3525 pub kind: UserToolSessionApprovalWriteKind,
3527}
3528
3529#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3531#[serde(rename_all = "camelCase")]
3532pub struct UserToolSessionApprovalMcp {
3533 pub kind: UserToolSessionApprovalMcpKind,
3535 pub server_name: String,
3537 pub tool_name: Option<String>,
3539}
3540
3541#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3543#[serde(rename_all = "camelCase")]
3544pub struct UserToolSessionApprovalMemory {
3545 pub kind: UserToolSessionApprovalMemoryKind,
3547}
3548
3549#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3551#[serde(rename_all = "camelCase")]
3552pub struct UserToolSessionApprovalCustomTool {
3553 pub kind: UserToolSessionApprovalCustomToolKind,
3555 pub tool_name: String,
3557}
3558
3559#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3561#[serde(rename_all = "camelCase")]
3562pub struct UserToolSessionApprovalExtensionManagement {
3563 pub kind: UserToolSessionApprovalExtensionManagementKind,
3565 #[serde(skip_serializing_if = "Option::is_none")]
3567 pub operation: Option<String>,
3568}
3569
3570#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3572#[serde(rename_all = "camelCase")]
3573pub struct UserToolSessionApprovalExtensionPermissionAccess {
3574 pub extension_name: String,
3576 pub kind: UserToolSessionApprovalExtensionPermissionAccessKind,
3578}
3579
3580#[derive(Debug, Clone, Serialize, Deserialize)]
3582#[serde(rename_all = "camelCase")]
3583pub struct PermissionApprovedForSession {
3584 pub approval: UserToolSessionApproval,
3586 pub kind: PermissionApprovedForSessionKind,
3588}
3589
3590#[derive(Debug, Clone, Serialize, Deserialize)]
3592#[serde(rename_all = "camelCase")]
3593pub struct PermissionApprovedForLocation {
3594 pub approval: UserToolSessionApproval,
3596 pub kind: PermissionApprovedForLocationKind,
3598 pub location_key: String,
3600}
3601
3602#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3604#[serde(rename_all = "camelCase")]
3605pub struct PermissionCancelled {
3606 pub kind: PermissionCancelledKind,
3608 #[serde(skip_serializing_if = "Option::is_none")]
3610 pub reason: Option<String>,
3611}
3612
3613#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3615#[serde(rename_all = "camelCase")]
3616pub struct PermissionRule {
3617 pub argument: Option<String>,
3619 pub kind: String,
3621}
3622
3623#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3625#[serde(rename_all = "camelCase")]
3626pub struct PermissionDeniedByRules {
3627 pub kind: PermissionDeniedByRulesKind,
3629 pub rules: Vec<PermissionRule>,
3631}
3632
3633#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3635#[serde(rename_all = "camelCase")]
3636pub struct PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser {
3637 pub kind: PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUserKind,
3639}
3640
3641#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3643#[serde(rename_all = "camelCase")]
3644pub struct PermissionDeniedInteractivelyByUser {
3645 #[serde(skip_serializing_if = "Option::is_none")]
3647 pub feedback: Option<String>,
3648 #[serde(skip_serializing_if = "Option::is_none")]
3650 pub force_reject: Option<bool>,
3651 pub kind: PermissionDeniedInteractivelyByUserKind,
3653}
3654
3655#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3657#[serde(rename_all = "camelCase")]
3658pub struct PermissionDeniedByContentExclusionPolicy {
3659 pub kind: PermissionDeniedByContentExclusionPolicyKind,
3661 pub message: String,
3663 pub path: String,
3665}
3666
3667#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3669#[serde(rename_all = "camelCase")]
3670pub struct PermissionDeniedByPermissionRequestHook {
3671 #[serde(skip_serializing_if = "Option::is_none")]
3673 pub interrupt: Option<bool>,
3674 pub kind: PermissionDeniedByPermissionRequestHookKind,
3676 #[serde(skip_serializing_if = "Option::is_none")]
3678 pub message: Option<String>,
3679}
3680
3681#[derive(Debug, Clone, Serialize, Deserialize)]
3683#[serde(rename_all = "camelCase")]
3684pub struct PermissionCompletedData {
3685 pub request_id: RequestId,
3687 pub result: PermissionResult,
3689 #[serde(skip_serializing_if = "Option::is_none")]
3691 pub tool_call_id: Option<String>,
3692}
3693
3694#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3696#[serde(rename_all = "camelCase")]
3697pub struct UserInputRequestedData {
3698 #[serde(skip_serializing_if = "Option::is_none")]
3700 pub allow_freeform: Option<bool>,
3701 #[serde(skip_serializing_if = "Option::is_none")]
3703 pub choices: Option<Vec<String>>,
3704 pub question: String,
3706 pub request_id: RequestId,
3708 #[serde(skip_serializing_if = "Option::is_none")]
3710 pub tool_call_id: Option<String>,
3711}
3712
3713#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3715#[serde(rename_all = "camelCase")]
3716pub struct UserInputCompletedData {
3717 #[serde(skip_serializing_if = "Option::is_none")]
3719 pub answer: Option<String>,
3720 pub request_id: RequestId,
3722 #[serde(skip_serializing_if = "Option::is_none")]
3724 pub was_freeform: Option<bool>,
3725}
3726
3727#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3729#[serde(rename_all = "camelCase")]
3730pub struct ElicitationRequestedSchema {
3731 pub properties: HashMap<String, serde_json::Value>,
3733 #[serde(skip_serializing_if = "Option::is_none")]
3735 pub required: Option<Vec<String>>,
3736 pub r#type: ElicitationRequestedSchemaType,
3738}
3739
3740#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3742#[serde(rename_all = "camelCase")]
3743pub struct ElicitationRequestedData {
3744 #[serde(skip_serializing_if = "Option::is_none")]
3746 pub elicitation_source: Option<String>,
3747 pub message: String,
3749 #[serde(skip_serializing_if = "Option::is_none")]
3751 pub mode: Option<ElicitationRequestedMode>,
3752 #[serde(skip_serializing_if = "Option::is_none")]
3754 pub requested_schema: Option<ElicitationRequestedSchema>,
3755 pub request_id: RequestId,
3757 #[serde(skip_serializing_if = "Option::is_none")]
3759 pub tool_call_id: Option<String>,
3760 #[serde(skip_serializing_if = "Option::is_none")]
3762 pub url: Option<String>,
3763}
3764
3765#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3767#[serde(rename_all = "camelCase")]
3768pub struct ElicitationCompletedData {
3769 #[serde(skip_serializing_if = "Option::is_none")]
3771 pub action: Option<ElicitationCompletedAction>,
3772 #[serde(skip_serializing_if = "Option::is_none")]
3774 pub content: Option<HashMap<String, serde_json::Value>>,
3775 pub request_id: RequestId,
3777}
3778
3779#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3781#[serde(rename_all = "camelCase")]
3782pub struct SamplingRequestedData {
3783 pub mcp_request_id: serde_json::Value,
3785 pub request_id: RequestId,
3787 pub server_name: String,
3789}
3790
3791#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3793#[serde(rename_all = "camelCase")]
3794pub struct SamplingCompletedData {
3795 pub request_id: RequestId,
3797}
3798
3799#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3801#[serde(rename_all = "camelCase")]
3802pub struct HeaderEntry {
3803 pub name: String,
3805 pub value: String,
3807}
3808
3809#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3811#[serde(rename_all = "camelCase")]
3812pub struct McpOauthHttpResponse {
3813 #[serde(skip_serializing_if = "Option::is_none")]
3815 pub body: Option<String>,
3816 pub headers: Vec<HeaderEntry>,
3818 pub status_code: i32,
3820}
3821
3822#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3824#[serde(rename_all = "camelCase")]
3825pub struct McpOauthRequiredStaticClientConfig {
3826 pub client_id: String,
3828 #[serde(skip_serializing_if = "Option::is_none")]
3830 pub client_secret: Option<String>,
3831 #[serde(skip_serializing_if = "Option::is_none")]
3833 pub grant_type: Option<McpOauthRequiredStaticClientConfigGrantType>,
3834 #[serde(skip_serializing_if = "Option::is_none")]
3836 pub public_client: Option<bool>,
3837}
3838
3839#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3841#[serde(rename_all = "camelCase")]
3842pub struct McpOauthWWWAuthenticateParams {
3843 #[serde(skip_serializing_if = "Option::is_none")]
3845 pub error: Option<String>,
3846 #[serde(skip_serializing_if = "Option::is_none")]
3848 pub resource_metadata_url: Option<String>,
3849 #[serde(skip_serializing_if = "Option::is_none")]
3851 pub scope: Option<String>,
3852}
3853
3854#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3856#[serde(rename_all = "camelCase")]
3857pub struct McpOauthRequiredData {
3858 #[serde(skip_serializing_if = "Option::is_none")]
3860 pub http_response: Option<McpOauthHttpResponse>,
3861 pub reason: McpOauthRequestReason,
3863 pub request_id: RequestId,
3865 #[serde(skip_serializing_if = "Option::is_none")]
3867 pub resource_metadata: Option<String>,
3868 pub server_name: String,
3870 pub server_url: String,
3872 #[serde(skip_serializing_if = "Option::is_none")]
3874 pub static_client_config: Option<McpOauthRequiredStaticClientConfig>,
3875 #[serde(skip_serializing_if = "Option::is_none")]
3877 pub www_authenticate_params: Option<McpOauthWWWAuthenticateParams>,
3878}
3879
3880#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3882#[serde(rename_all = "camelCase")]
3883pub struct McpOauthCompletedData {
3884 pub outcome: McpOauthCompletionOutcome,
3886 pub request_id: RequestId,
3888}
3889
3890#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3892#[serde(rename_all = "camelCase")]
3893pub struct McpHeadersRefreshRequiredData {
3894 pub reason: McpHeadersRefreshRequiredReason,
3896 pub request_id: RequestId,
3898 pub server_name: String,
3900 pub server_url: String,
3902}
3903
3904#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3906#[serde(rename_all = "camelCase")]
3907pub struct McpHeadersRefreshCompletedData {
3908 pub outcome: McpHeadersRefreshCompletedOutcome,
3910 pub request_id: RequestId,
3912}
3913
3914#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3916#[serde(rename_all = "camelCase")]
3917pub struct SessionCustomNotificationData {
3918 pub name: String,
3920 pub payload: serde_json::Value,
3922 pub source: String,
3924 #[serde(skip_serializing_if = "Option::is_none")]
3926 pub subject: Option<HashMap<String, String>>,
3927 #[serde(skip_serializing_if = "Option::is_none")]
3929 pub version: Option<i64>,
3930}
3931
3932#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3934#[serde(rename_all = "camelCase")]
3935pub struct ExternalToolRequestedData {
3936 #[serde(skip_serializing_if = "Option::is_none")]
3938 pub arguments: Option<serde_json::Value>,
3939 pub request_id: RequestId,
3941 pub session_id: SessionId,
3943 pub tool_call_id: String,
3945 pub tool_name: String,
3947 #[serde(skip_serializing_if = "Option::is_none")]
3949 pub traceparent: Option<String>,
3950 #[serde(skip_serializing_if = "Option::is_none")]
3952 pub tracestate: Option<String>,
3953 #[serde(skip_serializing_if = "Option::is_none")]
3955 pub working_directory: Option<String>,
3956}
3957
3958#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3960#[serde(rename_all = "camelCase")]
3961pub struct ExternalToolCompletedData {
3962 pub request_id: RequestId,
3964}
3965
3966#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3968#[serde(rename_all = "camelCase")]
3969pub struct CommandQueuedData {
3970 pub command: String,
3972 pub request_id: RequestId,
3974}
3975
3976#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3978#[serde(rename_all = "camelCase")]
3979pub struct CommandExecuteData {
3980 pub args: String,
3982 pub command: String,
3984 pub command_name: String,
3986 pub request_id: RequestId,
3988}
3989
3990#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3992#[serde(rename_all = "camelCase")]
3993pub struct CommandCompletedData {
3994 pub request_id: RequestId,
3996}
3997
3998#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4000#[serde(rename_all = "camelCase")]
4001pub struct AutoModeSwitchRequestedData {
4002 #[serde(skip_serializing_if = "Option::is_none")]
4004 pub error_code: Option<String>,
4005 pub request_id: RequestId,
4007 #[serde(skip_serializing_if = "Option::is_none")]
4009 pub retry_after_seconds: Option<i64>,
4010}
4011
4012#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4014#[serde(rename_all = "camelCase")]
4015pub struct AutoModeSwitchCompletedData {
4016 pub request_id: RequestId,
4018 pub response: AutoModeSwitchResponse,
4020}
4021
4022#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4024#[serde(rename_all = "camelCase")]
4025pub struct SessionLimitsExhaustedRequestedData {
4026 pub max_ai_credits: f64,
4028 pub request_id: RequestId,
4030 pub used_ai_credits: f64,
4032}
4033
4034#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4036#[serde(rename_all = "camelCase")]
4037pub struct SessionLimitsExhaustedResponse {
4038 pub action: SessionLimitsExhaustedResponseAction,
4040 #[serde(skip_serializing_if = "Option::is_none")]
4042 pub additional_ai_credits: Option<f64>,
4043 #[serde(skip_serializing_if = "Option::is_none")]
4045 pub max_ai_credits: Option<f64>,
4046}
4047
4048#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4050#[serde(rename_all = "camelCase")]
4051pub struct SessionLimitsExhaustedCompletedData {
4052 pub request_id: RequestId,
4054 pub response: SessionLimitsExhaustedResponse,
4056}
4057
4058#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4067#[serde(rename_all = "camelCase")]
4068pub struct SessionAutoModeResolvedData {
4069 #[serde(skip_serializing_if = "Option::is_none")]
4071 pub candidate_models: Option<Vec<String>>,
4072 #[serde(skip_serializing_if = "Option::is_none")]
4074 pub category_scores: Option<HashMap<String, f64>>,
4075 pub chosen_model: String,
4077 #[serde(skip_serializing_if = "Option::is_none")]
4079 pub confidence: Option<f64>,
4080 #[serde(skip_serializing_if = "Option::is_none")]
4082 pub predicted_label: Option<String>,
4083 #[serde(skip_serializing_if = "Option::is_none")]
4085 pub reasoning_bucket: Option<AutoModeResolvedReasoningBucket>,
4086}
4087
4088#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4097#[serde(rename_all = "camelCase")]
4098pub struct SessionManagedSettingsResolvedData {
4099 pub bypass_permissions_disabled: bool,
4101 pub device_managed: bool,
4103 pub fail_closed: bool,
4105 pub managed_keys: Vec<String>,
4107 pub server_managed: bool,
4109 #[serde(skip_serializing_if = "Option::is_none")]
4111 pub settings: Option<serde_json::Value>,
4112 pub source: ManagedSettingsResolvedSource,
4114}
4115
4116#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4125#[serde(rename_all = "camelCase")]
4126pub struct SessionManagedSettingsEnforcedData {
4127 pub action: ManagedSettingsEnforcedAction,
4129 #[serde(skip_serializing_if = "Option::is_none")]
4131 pub escalation: Option<ManagedSettingsEnforcedEscalation>,
4132 pub fail_closed: bool,
4134 pub message: String,
4136 pub setting: String,
4138}
4139
4140#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4142#[serde(rename_all = "camelCase")]
4143pub struct CommandsChangedCommand {
4144 #[serde(skip_serializing_if = "Option::is_none")]
4146 pub description: Option<String>,
4147 pub name: String,
4149}
4150
4151#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4153#[serde(rename_all = "camelCase")]
4154pub struct CommandsChangedData {
4155 pub commands: Vec<CommandsChangedCommand>,
4157}
4158
4159#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4161#[serde(rename_all = "camelCase")]
4162pub struct CapabilitiesChangedUI {
4163 #[serde(skip_serializing_if = "Option::is_none")]
4165 pub canvases: Option<bool>,
4166 #[serde(skip_serializing_if = "Option::is_none")]
4168 pub elicitation: Option<bool>,
4169 #[serde(skip_serializing_if = "Option::is_none")]
4171 pub mcp_apps: Option<bool>,
4172}
4173
4174#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4176#[serde(rename_all = "camelCase")]
4177pub struct CapabilitiesChangedData {
4178 #[serde(skip_serializing_if = "Option::is_none")]
4180 pub ui: Option<CapabilitiesChangedUI>,
4181}
4182
4183#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4185#[serde(rename_all = "camelCase")]
4186pub struct ExitPlanModeRequestedData {
4187 pub actions: Vec<ExitPlanModeAction>,
4189 pub plan_content: String,
4191 pub recommended_action: ExitPlanModeAction,
4193 pub request_id: RequestId,
4195 pub summary: String,
4197}
4198
4199#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4201#[serde(rename_all = "camelCase")]
4202pub struct ExitPlanModeCompletedData {
4203 #[serde(skip_serializing_if = "Option::is_none")]
4205 pub approved: Option<bool>,
4206 #[serde(skip_serializing_if = "Option::is_none")]
4208 pub auto_approve_edits: Option<bool>,
4209 #[serde(skip_serializing_if = "Option::is_none")]
4211 pub feedback: Option<String>,
4212 pub request_id: RequestId,
4214 #[serde(skip_serializing_if = "Option::is_none")]
4216 pub selected_action: Option<ExitPlanModeAction>,
4217}
4218
4219#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4221#[serde(rename_all = "camelCase")]
4222pub struct SessionToolsUpdatedData {
4223 pub model: String,
4225}
4226
4227#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4229#[serde(rename_all = "camelCase")]
4230pub struct SessionBackgroundTasksChangedData {}
4231
4232#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4234#[serde(rename_all = "camelCase")]
4235pub struct SkillsLoadedSkill {
4236 #[serde(skip_serializing_if = "Option::is_none")]
4238 pub argument_hint: Option<String>,
4239 pub description: String,
4241 pub enabled: bool,
4243 pub name: String,
4245 #[serde(skip_serializing_if = "Option::is_none")]
4247 pub path: Option<String>,
4248 pub source: SkillSource,
4250 pub user_invocable: bool,
4252}
4253
4254#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4256#[serde(rename_all = "camelCase")]
4257pub struct SessionSkillsLoadedData {
4258 pub skills: Vec<SkillsLoadedSkill>,
4260}
4261
4262#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4264#[serde(rename_all = "camelCase")]
4265pub struct CustomAgentsUpdatedAgent {
4266 pub description: String,
4268 pub display_name: String,
4270 pub id: String,
4272 #[serde(skip_serializing_if = "Option::is_none")]
4274 pub model: Option<String>,
4275 pub name: String,
4277 pub source: String,
4279 pub tools: Option<Vec<String>>,
4281 pub user_invocable: bool,
4283}
4284
4285#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4287#[serde(rename_all = "camelCase")]
4288pub struct SessionCustomAgentsUpdatedData {
4289 pub agents: Vec<CustomAgentsUpdatedAgent>,
4291 pub errors: Vec<String>,
4293 pub warnings: Vec<String>,
4295}
4296
4297#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4299#[serde(rename_all = "camelCase")]
4300pub struct McpServersLoadedServer {
4301 #[serde(skip_serializing_if = "Option::is_none")]
4303 pub error: Option<String>,
4304 pub name: String,
4306 #[serde(skip_serializing_if = "Option::is_none")]
4308 pub plugin_name: Option<String>,
4309 #[serde(skip_serializing_if = "Option::is_none")]
4311 pub plugin_version: Option<String>,
4312 #[serde(skip_serializing_if = "Option::is_none")]
4314 pub source: Option<McpServerSource>,
4315 pub status: McpServerStatus,
4317 #[serde(skip_serializing_if = "Option::is_none")]
4319 pub transport: Option<McpServerTransport>,
4320}
4321
4322#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4324#[serde(rename_all = "camelCase")]
4325pub struct SessionMcpServersLoadedData {
4326 pub servers: Vec<McpServersLoadedServer>,
4328}
4329
4330#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4332#[serde(rename_all = "camelCase")]
4333pub struct SessionMcpServerStatusChangedData {
4334 #[serde(skip_serializing_if = "Option::is_none")]
4336 pub error: Option<String>,
4337 pub server_name: String,
4339 pub status: McpServerStatus,
4341}
4342
4343#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4345#[serde(rename_all = "camelCase")]
4346pub struct McpToolsListChangedData {
4347 pub server_name: String,
4349}
4350
4351#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4353#[serde(rename_all = "camelCase")]
4354pub struct McpResourcesListChangedData {
4355 pub server_name: String,
4357}
4358
4359#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4361#[serde(rename_all = "camelCase")]
4362pub struct McpPromptsListChangedData {
4363 pub server_name: String,
4365}
4366
4367#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4369#[serde(rename_all = "camelCase")]
4370pub struct ExtensionsLoadedExtension {
4371 pub id: String,
4373 pub name: String,
4375 pub source: ExtensionsLoadedExtensionSource,
4377 pub status: ExtensionsLoadedExtensionStatus,
4379}
4380
4381#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4383#[serde(rename_all = "camelCase")]
4384pub struct SessionExtensionsLoadedData {
4385 pub extensions: Vec<ExtensionsLoadedExtension>,
4387}
4388
4389#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4398#[serde(rename_all = "camelCase")]
4399pub struct SessionCanvasOpenedData {
4400 pub canvas_id: String,
4402 pub extension_id: String,
4404 #[serde(skip_serializing_if = "Option::is_none")]
4406 pub extension_name: Option<String>,
4407 #[serde(skip_serializing_if = "Option::is_none")]
4409 pub icon: Option<String>,
4410 #[serde(skip_serializing_if = "Option::is_none")]
4412 pub input: Option<serde_json::Value>,
4413 pub instance_id: String,
4415 #[serde(skip_serializing_if = "Option::is_none")]
4417 pub status: Option<String>,
4418 #[serde(skip_serializing_if = "Option::is_none")]
4420 pub title: Option<String>,
4421 #[serde(skip_serializing_if = "Option::is_none")]
4423 pub url: Option<String>,
4424}
4425
4426#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4435#[serde(rename_all = "camelCase")]
4436pub struct CanvasRegistryChangedCanvasAction {
4437 #[serde(skip_serializing_if = "Option::is_none")]
4439 pub description: Option<String>,
4440 #[serde(skip_serializing_if = "Option::is_none")]
4442 pub input_schema: Option<serde_json::Value>,
4443 pub name: String,
4445}
4446
4447#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4456#[serde(rename_all = "camelCase")]
4457pub struct CanvasRegistryChangedCanvas {
4458 #[serde(skip_serializing_if = "Option::is_none")]
4460 pub actions: Option<Vec<CanvasRegistryChangedCanvasAction>>,
4461 pub canvas_id: String,
4463 pub description: String,
4465 pub display_name: String,
4467 pub extension_id: String,
4469 #[serde(skip_serializing_if = "Option::is_none")]
4471 pub extension_name: Option<String>,
4472 #[serde(skip_serializing_if = "Option::is_none")]
4474 pub icon: Option<String>,
4475 #[serde(skip_serializing_if = "Option::is_none")]
4477 pub input_schema: Option<serde_json::Value>,
4478}
4479
4480#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4489#[serde(rename_all = "camelCase")]
4490pub struct SessionCanvasRegistryChangedData {
4491 pub canvases: Vec<CanvasRegistryChangedCanvas>,
4493}
4494
4495#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4504#[serde(rename_all = "camelCase")]
4505pub struct SessionCanvasClosedData {
4506 pub canvas_id: String,
4508 pub extension_id: String,
4510 pub instance_id: String,
4512}
4513
4514#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4523#[serde(rename_all = "camelCase")]
4524pub struct SessionCanvasUnavailableData {
4525 pub canvas_id: String,
4527 pub extension_id: String,
4529 pub instance_id: String,
4531}
4532
4533#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4542#[serde(rename_all = "camelCase")]
4543pub struct SessionCanvasRecordedData {
4544 pub canvas_id: String,
4546 pub extension_id: String,
4548 #[serde(skip_serializing_if = "Option::is_none")]
4550 pub input: Option<serde_json::Value>,
4551 pub instance_id: String,
4553 #[serde(skip_serializing_if = "Option::is_none")]
4555 pub title: Option<String>,
4556}
4557
4558#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4567#[serde(rename_all = "camelCase")]
4568pub struct SessionCanvasRemovedData {
4569 pub canvas_id: String,
4571 pub extension_id: String,
4573 pub instance_id: String,
4575}
4576
4577#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4579#[serde(rename_all = "camelCase")]
4580pub struct SessionExtensionsAttachmentsPushedData {
4581 pub attachments: Vec<serde_json::Value>,
4583}
4584
4585#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4587#[serde(rename_all = "camelCase")]
4588pub struct McpAppToolCallCompleteError {
4589 pub message: String,
4591}
4592
4593#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4595#[serde(rename_all = "camelCase")]
4596pub struct McpAppToolCallCompleteToolMetaUI {
4597 #[serde(skip_serializing_if = "Option::is_none")]
4599 pub resource_uri: Option<String>,
4600 #[serde(skip_serializing_if = "Option::is_none")]
4602 pub visibility: Option<Vec<String>>,
4603}
4604
4605#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4607#[serde(rename_all = "camelCase")]
4608pub struct McpAppToolCallCompleteToolMeta {
4609 #[serde(skip_serializing_if = "Option::is_none")]
4611 pub ui: Option<McpAppToolCallCompleteToolMetaUI>,
4612}
4613
4614#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4616#[serde(rename_all = "camelCase")]
4617pub struct McpAppToolCallCompleteData {
4618 #[serde(skip_serializing_if = "Option::is_none")]
4620 pub arguments: Option<HashMap<String, serde_json::Value>>,
4621 pub duration_ms: f64,
4623 #[serde(skip_serializing_if = "Option::is_none")]
4625 pub error: Option<McpAppToolCallCompleteError>,
4626 #[serde(skip_serializing_if = "Option::is_none")]
4628 pub result: Option<HashMap<String, serde_json::Value>>,
4629 pub server_name: String,
4631 pub success: bool,
4633 #[serde(skip_serializing_if = "Option::is_none")]
4635 pub tool_meta: Option<McpAppToolCallCompleteToolMeta>,
4636 pub tool_name: String,
4638}
4639
4640#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4642pub enum WorkingDirectoryContextHostType {
4643 #[serde(rename = "github")]
4645 GitHub,
4646 #[serde(rename = "ado")]
4648 Ado,
4649 #[default]
4651 #[serde(other)]
4652 Unknown,
4653}
4654
4655#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4657pub enum ContextTier {
4658 #[serde(rename = "default")]
4660 Default,
4661 #[serde(rename = "long_context")]
4663 LongContext,
4664 #[default]
4666 #[serde(other)]
4667 Unknown,
4668}
4669
4670#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4672pub enum ReasoningSummary {
4673 #[serde(rename = "none")]
4675 None,
4676 #[serde(rename = "concise")]
4678 Concise,
4679 #[serde(rename = "detailed")]
4681 Detailed,
4682 #[default]
4684 #[serde(other)]
4685 Unknown,
4686}
4687
4688#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4690pub enum Verbosity {
4691 #[serde(rename = "low")]
4693 Low,
4694 #[serde(rename = "medium")]
4696 Medium,
4697 #[serde(rename = "high")]
4699 High,
4700 #[default]
4702 #[serde(other)]
4703 Unknown,
4704}
4705
4706#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4708pub enum AutopilotObjectiveChangedOperation {
4709 #[serde(rename = "create")]
4711 Create,
4712 #[serde(rename = "update")]
4714 Update,
4715 #[serde(rename = "delete")]
4717 Delete,
4718 #[default]
4720 #[serde(other)]
4721 Unknown,
4722}
4723
4724#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4726pub enum AutopilotObjectiveChangedStatus {
4727 #[serde(rename = "active")]
4729 Active,
4730 #[serde(rename = "paused")]
4732 Paused,
4733 #[serde(rename = "cap_reached")]
4735 CapReached,
4736 #[serde(rename = "completed")]
4738 Completed,
4739 #[default]
4741 #[serde(other)]
4742 Unknown,
4743}
4744
4745#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4747pub enum SessionMode {
4748 #[serde(rename = "interactive")]
4750 Interactive,
4751 #[serde(rename = "plan")]
4753 Plan,
4754 #[serde(rename = "autopilot")]
4756 Autopilot,
4757 #[default]
4759 #[serde(other)]
4760 Unknown,
4761}
4762
4763#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4772pub enum PermissionAllowAllMode {
4773 #[serde(rename = "off")]
4775 Off,
4776 #[serde(rename = "on")]
4778 On,
4779 #[serde(rename = "auto")]
4781 Auto,
4782 #[default]
4784 #[serde(other)]
4785 Unknown,
4786}
4787
4788#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4790pub enum PlanChangedOperation {
4791 #[serde(rename = "create")]
4793 Create,
4794 #[serde(rename = "update")]
4796 Update,
4797 #[serde(rename = "delete")]
4799 Delete,
4800 #[default]
4802 #[serde(other)]
4803 Unknown,
4804}
4805
4806#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4808pub enum WorkspaceFileChangedOperation {
4809 #[serde(rename = "create")]
4811 Create,
4812 #[serde(rename = "update")]
4814 Update,
4815 #[default]
4817 #[serde(other)]
4818 Unknown,
4819}
4820
4821#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4823pub enum HandoffSourceType {
4824 #[serde(rename = "remote")]
4826 Remote,
4827 #[serde(rename = "local")]
4829 Local,
4830 #[default]
4832 #[serde(other)]
4833 Unknown,
4834}
4835
4836#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4838pub enum ShutdownType {
4839 #[serde(rename = "routine")]
4841 Routine,
4842 #[serde(rename = "error")]
4844 Error,
4845 #[default]
4847 #[serde(other)]
4848 Unknown,
4849}
4850
4851#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4853pub enum UserMessageAgentMode {
4854 #[serde(rename = "interactive")]
4856 Interactive,
4857 #[serde(rename = "plan")]
4859 Plan,
4860 #[serde(rename = "autopilot")]
4862 Autopilot,
4863 #[serde(rename = "shell")]
4865 Shell,
4866 #[default]
4868 #[serde(other)]
4869 Unknown,
4870}
4871
4872#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4874pub enum UserMessageDelivery {
4875 #[serde(rename = "idle")]
4877 Idle,
4878 #[serde(rename = "steering")]
4880 Steering,
4881 #[serde(rename = "queued")]
4883 Queued,
4884 #[default]
4886 #[serde(other)]
4887 Unknown,
4888}
4889
4890#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4892pub enum AssistantMessageToolRequestType {
4893 #[serde(rename = "function")]
4895 Function,
4896 #[serde(rename = "custom")]
4898 Custom,
4899 #[default]
4901 #[serde(other)]
4902 Unknown,
4903}
4904
4905#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4914pub enum CitationProvider {
4915 #[serde(rename = "anthropic")]
4917 Anthropic,
4918 #[serde(rename = "openai")]
4920 Openai,
4921 #[serde(rename = "client")]
4923 Client,
4924 #[default]
4926 #[serde(other)]
4927 Unknown,
4928}
4929
4930#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4932pub enum AssistantUsageApiEndpoint {
4933 #[serde(rename = "/chat/completions")]
4935 ChatCompletions,
4936 #[serde(rename = "/v1/messages")]
4938 V1Messages,
4939 #[serde(rename = "/responses")]
4941 Responses,
4942 #[serde(rename = "ws:/responses")]
4944 WsResponses,
4945 #[default]
4947 #[serde(other)]
4948 Unknown,
4949}
4950
4951#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4953pub enum ModelCallFailureBadRequestKind {
4954 #[serde(rename = "bodyless")]
4956 Bodyless,
4957 #[serde(rename = "structured_error")]
4959 StructuredError,
4960 #[default]
4962 #[serde(other)]
4963 Unknown,
4964}
4965
4966#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4968pub enum ModelCallFailureKind {
4969 #[serde(rename = "api")]
4971 Api,
4972 #[serde(rename = "transport")]
4974 Transport,
4975 #[default]
4977 #[serde(other)]
4978 Unknown,
4979}
4980
4981#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4983pub enum ModelCallFailureSource {
4984 #[serde(rename = "top_level")]
4986 TopLevel,
4987 #[serde(rename = "subagent")]
4989 Subagent,
4990 #[serde(rename = "mcp_sampling")]
4992 McpSampling,
4993 #[default]
4995 #[serde(other)]
4996 Unknown,
4997}
4998
4999#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5001pub enum ModelCallFailureTransport {
5002 #[serde(rename = "http")]
5004 Http,
5005 #[serde(rename = "websocket")]
5007 Websocket,
5008 #[default]
5010 #[serde(other)]
5011 Unknown,
5012}
5013
5014#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5016pub enum AbortReason {
5017 #[serde(rename = "user_initiated")]
5019 UserInitiated,
5020 #[serde(rename = "remote_command")]
5022 RemoteCommand,
5023 #[serde(rename = "user_abort")]
5025 UserAbort,
5026 #[default]
5028 #[serde(other)]
5029 Unknown,
5030}
5031
5032#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5034pub enum ToolExecutionStartToolDescriptionMetaUIVisibility {
5035 #[serde(rename = "model")]
5037 Model,
5038 #[serde(rename = "app")]
5040 App,
5041 #[default]
5043 #[serde(other)]
5044 Unknown,
5045}
5046
5047#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5049pub enum ToolExecutionCompleteContentTextType {
5050 #[serde(rename = "text")]
5051 #[default]
5052 Text,
5053}
5054
5055#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5057pub enum ToolExecutionCompleteContentTerminalType {
5058 #[serde(rename = "terminal")]
5059 #[default]
5060 Terminal,
5061}
5062
5063#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5065pub enum ToolExecutionCompleteContentShellExitType {
5066 #[serde(rename = "shell_exit")]
5067 #[default]
5068 ShellExit,
5069}
5070
5071#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5073pub enum ToolExecutionCompleteContentImageType {
5074 #[serde(rename = "image")]
5075 #[default]
5076 Image,
5077}
5078
5079#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5081pub enum ToolExecutionCompleteContentAudioType {
5082 #[serde(rename = "audio")]
5083 #[default]
5084 Audio,
5085}
5086
5087#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5089pub enum ToolExecutionCompleteContentResourceLinkIconTheme {
5090 #[serde(rename = "light")]
5092 Light,
5093 #[serde(rename = "dark")]
5095 Dark,
5096 #[default]
5098 #[serde(other)]
5099 Unknown,
5100}
5101
5102#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5104pub enum ToolExecutionCompleteContentResourceLinkType {
5105 #[serde(rename = "resource_link")]
5106 #[default]
5107 ResourceLink,
5108}
5109
5110#[derive(Debug, Clone, Serialize, Deserialize)]
5112#[serde(untagged)]
5113pub enum ToolExecutionCompleteContentResourceDetails {
5114 EmbeddedTextResourceContents(EmbeddedTextResourceContents),
5115 EmbeddedBlobResourceContents(EmbeddedBlobResourceContents),
5116}
5117
5118#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5120pub enum ToolExecutionCompleteContentResourceType {
5121 #[serde(rename = "resource")]
5122 #[default]
5123 Resource,
5124}
5125
5126#[derive(Debug, Clone, Serialize, Deserialize)]
5128#[serde(untagged)]
5129pub enum ToolExecutionCompleteContent {
5130 Text(ToolExecutionCompleteContentText),
5131 Terminal(ToolExecutionCompleteContentTerminal),
5132 ShellExit(ToolExecutionCompleteContentShellExit),
5133 Image(ToolExecutionCompleteContentImage),
5134 Audio(ToolExecutionCompleteContentAudio),
5135 ResourceLink(ToolExecutionCompleteContentResourceLink),
5136 Resource(ToolExecutionCompleteContentResource),
5137}
5138
5139#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5141pub enum ToolExecutionCompleteToolDescriptionMetaUIVisibility {
5142 #[serde(rename = "model")]
5144 Model,
5145 #[serde(rename = "app")]
5147 App,
5148 #[default]
5150 #[serde(other)]
5151 Unknown,
5152}
5153
5154#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5156pub enum SkillInvokedTrigger {
5157 #[serde(rename = "user-invoked")]
5159 UserInvoked,
5160 #[serde(rename = "agent-invoked")]
5162 AgentInvoked,
5163 #[serde(rename = "context-load")]
5165 ContextLoad,
5166 #[default]
5168 #[serde(other)]
5169 Unknown,
5170}
5171
5172#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5174pub enum BinaryAssetType {
5175 #[serde(rename = "image")]
5177 Image,
5178 #[serde(rename = "resource")]
5180 Resource,
5181 #[default]
5183 #[serde(other)]
5184 Unknown,
5185}
5186
5187#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5189pub enum SystemMessageRole {
5190 #[serde(rename = "system")]
5192 System,
5193 #[serde(rename = "developer")]
5195 Developer,
5196 #[default]
5198 #[serde(other)]
5199 Unknown,
5200}
5201
5202#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5204pub enum PermissionRequestShellKind {
5205 #[serde(rename = "shell")]
5206 #[default]
5207 Shell,
5208}
5209
5210#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5212pub enum PermissionRequestWriteKind {
5213 #[serde(rename = "write")]
5214 #[default]
5215 Write,
5216}
5217
5218#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5220pub enum PermissionRequestReadKind {
5221 #[serde(rename = "read")]
5222 #[default]
5223 Read,
5224}
5225
5226#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5228pub enum PermissionRequestMcpKind {
5229 #[serde(rename = "mcp")]
5230 #[default]
5231 Mcp,
5232}
5233
5234#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5236pub enum PermissionRequestUrlKind {
5237 #[serde(rename = "url")]
5238 #[default]
5239 Url,
5240}
5241
5242#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5244pub enum PermissionRequestMemoryAction {
5245 #[serde(rename = "store")]
5247 Store,
5248 #[serde(rename = "vote")]
5250 Vote,
5251 #[default]
5253 #[serde(other)]
5254 Unknown,
5255}
5256
5257#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5259pub enum PermissionRequestMemoryDirection {
5260 #[serde(rename = "upvote")]
5262 Upvote,
5263 #[serde(rename = "downvote")]
5265 Downvote,
5266 #[default]
5268 #[serde(other)]
5269 Unknown,
5270}
5271
5272#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5274pub enum PermissionRequestMemoryKind {
5275 #[serde(rename = "memory")]
5276 #[default]
5277 Memory,
5278}
5279
5280#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5282pub enum PermissionRequestCustomToolKind {
5283 #[serde(rename = "custom-tool")]
5284 #[default]
5285 CustomTool,
5286}
5287
5288#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5290pub enum PermissionRequestHookKind {
5291 #[serde(rename = "hook")]
5292 #[default]
5293 Hook,
5294}
5295
5296#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5298pub enum PermissionRequestExtensionManagementKind {
5299 #[serde(rename = "extension-management")]
5300 #[default]
5301 ExtensionManagement,
5302}
5303
5304#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5306pub enum PermissionRequestExtensionPermissionAccessKind {
5307 #[serde(rename = "extension-permission-access")]
5308 #[default]
5309 ExtensionPermissionAccess,
5310}
5311
5312#[derive(Debug, Clone, Serialize, Deserialize)]
5314#[serde(untagged)]
5315pub enum PermissionRequest {
5316 Shell(PermissionRequestShell),
5317 Write(PermissionRequestWrite),
5318 Read(PermissionRequestRead),
5319 Mcp(PermissionRequestMcp),
5320 Url(PermissionRequestUrl),
5321 Memory(PermissionRequestMemory),
5322 CustomTool(PermissionRequestCustomTool),
5323 Hook(PermissionRequestHook),
5324 ExtensionManagement(PermissionRequestExtensionManagement),
5325 ExtensionPermissionAccess(PermissionRequestExtensionPermissionAccess),
5326}
5327
5328#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5337pub enum AutoApprovalRecommendation {
5338 #[serde(rename = "approve")]
5340 Approve,
5341 #[serde(rename = "requireApproval")]
5343 RequireApproval,
5344 #[serde(rename = "excluded")]
5346 Excluded,
5347 #[serde(rename = "error")]
5349 Error,
5350 #[default]
5352 #[serde(other)]
5353 Unknown,
5354}
5355
5356#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5358pub enum PermissionPromptRequestCommandsKind {
5359 #[serde(rename = "commands")]
5360 #[default]
5361 Commands,
5362}
5363
5364#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5366pub enum PermissionPromptRequestWriteKind {
5367 #[serde(rename = "write")]
5368 #[default]
5369 Write,
5370}
5371
5372#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5374pub enum PermissionPromptRequestReadKind {
5375 #[serde(rename = "read")]
5376 #[default]
5377 Read,
5378}
5379
5380#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5382pub enum PermissionPromptRequestMcpKind {
5383 #[serde(rename = "mcp")]
5384 #[default]
5385 Mcp,
5386}
5387
5388#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5390pub enum PermissionPromptRequestUrlKind {
5391 #[serde(rename = "url")]
5392 #[default]
5393 Url,
5394}
5395
5396#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5398pub enum PermissionPromptRequestMemoryKind {
5399 #[serde(rename = "memory")]
5400 #[default]
5401 Memory,
5402}
5403
5404#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5406pub enum PermissionPromptRequestCustomToolKind {
5407 #[serde(rename = "custom-tool")]
5408 #[default]
5409 CustomTool,
5410}
5411
5412#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5414pub enum PermissionPromptRequestPathAccessKind {
5415 #[serde(rename = "read")]
5417 Read,
5418 #[serde(rename = "shell")]
5420 Shell,
5421 #[serde(rename = "write")]
5423 Write,
5424 #[default]
5426 #[serde(other)]
5427 Unknown,
5428}
5429
5430#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5432pub enum PermissionPromptRequestPathKind {
5433 #[serde(rename = "path")]
5434 #[default]
5435 Path,
5436}
5437
5438#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5440pub enum PermissionPromptRequestHookKind {
5441 #[serde(rename = "hook")]
5442 #[default]
5443 Hook,
5444}
5445
5446#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5448pub enum PermissionPromptRequestExtensionManagementKind {
5449 #[serde(rename = "extension-management")]
5450 #[default]
5451 ExtensionManagement,
5452}
5453
5454#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5456pub enum PermissionPromptRequestExtensionPermissionAccessKind {
5457 #[serde(rename = "extension-permission-access")]
5458 #[default]
5459 ExtensionPermissionAccess,
5460}
5461
5462#[derive(Debug, Clone, Serialize, Deserialize)]
5464#[serde(untagged)]
5465pub enum PermissionPromptRequest {
5466 Commands(PermissionPromptRequestCommands),
5467 Write(PermissionPromptRequestWrite),
5468 Read(PermissionPromptRequestRead),
5469 Mcp(PermissionPromptRequestMcp),
5470 Url(PermissionPromptRequestUrl),
5471 Memory(PermissionPromptRequestMemory),
5472 CustomTool(PermissionPromptRequestCustomTool),
5473 Path(PermissionPromptRequestPath),
5474 Hook(PermissionPromptRequestHook),
5475 ExtensionManagement(PermissionPromptRequestExtensionManagement),
5476 ExtensionPermissionAccess(PermissionPromptRequestExtensionPermissionAccess),
5477}
5478
5479#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5481pub enum PermissionApprovedKind {
5482 #[serde(rename = "approved")]
5483 #[default]
5484 Approved,
5485}
5486
5487#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5489pub enum UserToolSessionApprovalCommandsKind {
5490 #[serde(rename = "commands")]
5491 #[default]
5492 Commands,
5493}
5494
5495#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5497pub enum UserToolSessionApprovalReadKind {
5498 #[serde(rename = "read")]
5499 #[default]
5500 Read,
5501}
5502
5503#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5505pub enum UserToolSessionApprovalWriteKind {
5506 #[serde(rename = "write")]
5507 #[default]
5508 Write,
5509}
5510
5511#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5513pub enum UserToolSessionApprovalMcpKind {
5514 #[serde(rename = "mcp")]
5515 #[default]
5516 Mcp,
5517}
5518
5519#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5521pub enum UserToolSessionApprovalMemoryKind {
5522 #[serde(rename = "memory")]
5523 #[default]
5524 Memory,
5525}
5526
5527#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5529pub enum UserToolSessionApprovalCustomToolKind {
5530 #[serde(rename = "custom-tool")]
5531 #[default]
5532 CustomTool,
5533}
5534
5535#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5537pub enum UserToolSessionApprovalExtensionManagementKind {
5538 #[serde(rename = "extension-management")]
5539 #[default]
5540 ExtensionManagement,
5541}
5542
5543#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5545pub enum UserToolSessionApprovalExtensionPermissionAccessKind {
5546 #[serde(rename = "extension-permission-access")]
5547 #[default]
5548 ExtensionPermissionAccess,
5549}
5550
5551#[derive(Debug, Clone, Serialize, Deserialize)]
5553#[serde(untagged)]
5554pub enum UserToolSessionApproval {
5555 Commands(UserToolSessionApprovalCommands),
5556 Read(UserToolSessionApprovalRead),
5557 Write(UserToolSessionApprovalWrite),
5558 Mcp(UserToolSessionApprovalMcp),
5559 Memory(UserToolSessionApprovalMemory),
5560 CustomTool(UserToolSessionApprovalCustomTool),
5561 ExtensionManagement(UserToolSessionApprovalExtensionManagement),
5562 ExtensionPermissionAccess(UserToolSessionApprovalExtensionPermissionAccess),
5563}
5564
5565#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5567pub enum PermissionApprovedForSessionKind {
5568 #[serde(rename = "approved-for-session")]
5569 #[default]
5570 ApprovedForSession,
5571}
5572
5573#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5575pub enum PermissionApprovedForLocationKind {
5576 #[serde(rename = "approved-for-location")]
5577 #[default]
5578 ApprovedForLocation,
5579}
5580
5581#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5583pub enum PermissionCancelledKind {
5584 #[serde(rename = "cancelled")]
5585 #[default]
5586 Cancelled,
5587}
5588
5589#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5591pub enum PermissionDeniedByRulesKind {
5592 #[serde(rename = "denied-by-rules")]
5593 #[default]
5594 DeniedByRules,
5595}
5596
5597#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5599pub enum PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUserKind {
5600 #[serde(rename = "denied-no-approval-rule-and-could-not-request-from-user")]
5601 #[default]
5602 DeniedNoApprovalRuleAndCouldNotRequestFromUser,
5603}
5604
5605#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5607pub enum PermissionDeniedInteractivelyByUserKind {
5608 #[serde(rename = "denied-interactively-by-user")]
5609 #[default]
5610 DeniedInteractivelyByUser,
5611}
5612
5613#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5615pub enum PermissionDeniedByContentExclusionPolicyKind {
5616 #[serde(rename = "denied-by-content-exclusion-policy")]
5617 #[default]
5618 DeniedByContentExclusionPolicy,
5619}
5620
5621#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5623pub enum PermissionDeniedByPermissionRequestHookKind {
5624 #[serde(rename = "denied-by-permission-request-hook")]
5625 #[default]
5626 DeniedByPermissionRequestHook,
5627}
5628
5629#[derive(Debug, Clone, Serialize, Deserialize)]
5631#[serde(untagged)]
5632pub enum PermissionResult {
5633 Approved(PermissionApproved),
5634 ApprovedForSession(PermissionApprovedForSession),
5635 ApprovedForLocation(PermissionApprovedForLocation),
5636 Cancelled(PermissionCancelled),
5637 DeniedByRules(PermissionDeniedByRules),
5638 DeniedNoApprovalRuleAndCouldNotRequestFromUser(
5639 PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser,
5640 ),
5641 DeniedInteractivelyByUser(PermissionDeniedInteractivelyByUser),
5642 DeniedByContentExclusionPolicy(PermissionDeniedByContentExclusionPolicy),
5643 DeniedByPermissionRequestHook(PermissionDeniedByPermissionRequestHook),
5644}
5645
5646#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5648pub enum ElicitationRequestedMode {
5649 #[serde(rename = "form")]
5651 Form,
5652 #[serde(rename = "url")]
5654 Url,
5655 #[default]
5657 #[serde(other)]
5658 Unknown,
5659}
5660
5661#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5663pub enum ElicitationRequestedSchemaType {
5664 #[serde(rename = "object")]
5665 #[default]
5666 Object,
5667}
5668
5669#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5671pub enum ElicitationCompletedAction {
5672 #[serde(rename = "accept")]
5674 Accept,
5675 #[serde(rename = "decline")]
5677 Decline,
5678 #[serde(rename = "cancel")]
5680 Cancel,
5681 #[default]
5683 #[serde(other)]
5684 Unknown,
5685}
5686
5687#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5689pub enum McpOauthRequestReason {
5690 #[serde(rename = "initial")]
5692 Initial,
5693 #[serde(rename = "refresh")]
5695 Refresh,
5696 #[serde(rename = "reauth")]
5698 Reauth,
5699 #[serde(rename = "upscope")]
5701 Upscope,
5702 #[default]
5704 #[serde(other)]
5705 Unknown,
5706}
5707
5708#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5710pub enum McpOauthRequiredStaticClientConfigGrantType {
5711 #[serde(rename = "client_credentials")]
5712 #[default]
5713 ClientCredentials,
5714}
5715
5716#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5718pub enum McpOauthCompletionOutcome {
5719 #[serde(rename = "token")]
5721 Token,
5722 #[serde(rename = "cancelled")]
5724 Cancelled,
5725 #[default]
5727 #[serde(other)]
5728 Unknown,
5729}
5730
5731#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5733pub enum McpHeadersRefreshRequiredReason {
5734 #[serde(rename = "startup")]
5736 Startup,
5737 #[serde(rename = "ttl-expired")]
5739 TtlExpired,
5740 #[serde(rename = "auth-failed")]
5742 AuthFailed,
5743 #[default]
5745 #[serde(other)]
5746 Unknown,
5747}
5748
5749#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5751pub enum McpHeadersRefreshCompletedOutcome {
5752 #[serde(rename = "headers")]
5754 Headers,
5755 #[serde(rename = "none")]
5757 None,
5758 #[serde(rename = "timeout")]
5760 Timeout,
5761 #[default]
5763 #[serde(other)]
5764 Unknown,
5765}
5766
5767#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5769pub enum AutoModeSwitchResponse {
5770 #[serde(rename = "yes")]
5772 Yes,
5773 #[serde(rename = "yes_always")]
5775 YesAlways,
5776 #[serde(rename = "no")]
5778 No,
5779 #[default]
5781 #[serde(other)]
5782 Unknown,
5783}
5784
5785#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5787pub enum SessionLimitsExhaustedResponseAction {
5788 #[serde(rename = "add")]
5790 Add,
5791 #[serde(rename = "set")]
5793 Set,
5794 #[serde(rename = "unset")]
5796 Unset,
5797 #[serde(rename = "cancel")]
5799 Cancel,
5800 #[default]
5802 #[serde(other)]
5803 Unknown,
5804}
5805
5806#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5808pub enum AutoModeResolvedReasoningBucket {
5809 #[serde(rename = "low")]
5811 Low,
5812 #[serde(rename = "medium")]
5814 Medium,
5815 #[serde(rename = "high")]
5817 High,
5818 #[default]
5820 #[serde(other)]
5821 Unknown,
5822}
5823
5824#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5826pub enum ManagedSettingsResolvedSource {
5827 #[serde(rename = "server")]
5829 Server,
5830 #[serde(rename = "device")]
5832 Device,
5833 #[serde(rename = "none")]
5835 None,
5836 #[default]
5838 #[serde(other)]
5839 Unknown,
5840}
5841
5842#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5844pub enum ManagedSettingsEnforcedAction {
5845 #[serde(rename = "bypass_permissions_blocked")]
5847 BypassPermissionsBlocked,
5848 #[default]
5850 #[serde(other)]
5851 Unknown,
5852}
5853
5854#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5856pub enum ManagedSettingsEnforcedEscalation {
5857 #[serde(rename = "allow_all")]
5859 AllowAll,
5860 #[serde(rename = "approve_all")]
5862 ApproveAll,
5863 #[serde(rename = "auto_approval")]
5865 AutoApproval,
5866 #[serde(rename = "unrestricted_paths")]
5868 UnrestrictedPaths,
5869 #[serde(rename = "unrestricted_urls")]
5871 UnrestrictedUrls,
5872 #[default]
5874 #[serde(other)]
5875 Unknown,
5876}
5877
5878#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5880pub enum ExitPlanModeAction {
5881 #[serde(rename = "exit_only")]
5883 ExitOnly,
5884 #[serde(rename = "interactive")]
5886 Interactive,
5887 #[serde(rename = "autopilot")]
5889 Autopilot,
5890 #[serde(rename = "autopilot_fleet")]
5892 AutopilotFleet,
5893 #[default]
5895 #[serde(other)]
5896 Unknown,
5897}
5898
5899#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5901pub enum SkillSource {
5902 #[serde(rename = "project")]
5904 Project,
5905 #[serde(rename = "inherited")]
5907 Inherited,
5908 #[serde(rename = "personal-copilot")]
5910 PersonalCopilot,
5911 #[serde(rename = "personal-agents")]
5913 PersonalAgents,
5914 #[serde(rename = "plugin")]
5916 Plugin,
5917 #[serde(rename = "custom")]
5919 Custom,
5920 #[serde(rename = "builtin")]
5922 Builtin,
5923 #[default]
5925 #[serde(other)]
5926 Unknown,
5927}
5928
5929#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5931pub enum McpServerSource {
5932 #[serde(rename = "user")]
5934 User,
5935 #[serde(rename = "workspace")]
5937 Workspace,
5938 #[serde(rename = "plugin")]
5940 Plugin,
5941 #[serde(rename = "builtin")]
5943 Builtin,
5944 #[default]
5946 #[serde(other)]
5947 Unknown,
5948}
5949
5950#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5952pub enum McpServerStatus {
5953 #[serde(rename = "connected")]
5955 Connected,
5956 #[serde(rename = "failed")]
5958 Failed,
5959 #[serde(rename = "needs-auth")]
5961 NeedsAuth,
5962 #[serde(rename = "pending")]
5964 Pending,
5965 #[serde(rename = "disabled")]
5967 Disabled,
5968 #[serde(rename = "not_configured")]
5970 NotConfigured,
5971 #[default]
5973 #[serde(other)]
5974 Unknown,
5975}
5976
5977#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5979pub enum McpServerTransport {
5980 #[serde(rename = "stdio")]
5982 Stdio,
5983 #[serde(rename = "http")]
5985 Http,
5986 #[serde(rename = "sse")]
5988 Sse,
5989 #[serde(rename = "memory")]
5991 Memory,
5992 #[default]
5994 #[serde(other)]
5995 Unknown,
5996}
5997
5998#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6000pub enum ExtensionsLoadedExtensionSource {
6001 #[serde(rename = "project")]
6003 Project,
6004 #[serde(rename = "user")]
6006 User,
6007 #[serde(rename = "plugin")]
6009 Plugin,
6010 #[serde(rename = "session")]
6012 Session,
6013 #[default]
6015 #[serde(other)]
6016 Unknown,
6017}
6018
6019#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6021pub enum ExtensionsLoadedExtensionStatus {
6022 #[serde(rename = "running")]
6024 Running,
6025 #[serde(rename = "disabled")]
6027 Disabled,
6028 #[serde(rename = "failed")]
6030 Failed,
6031 #[serde(rename = "starting")]
6033 Starting,
6034 #[default]
6036 #[serde(other)]
6037 Unknown,
6038}