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 = "factory.run_updated")]
244 FactoryRunUpdated,
245 #[serde(rename = "session.skills_loaded")]
246 SessionSkillsLoaded,
247 #[serde(rename = "session.custom_agents_updated")]
248 SessionCustomAgentsUpdated,
249 #[serde(rename = "session.mcp_servers_loaded")]
250 SessionMcpServersLoaded,
251 #[serde(rename = "session.mcp_server_status_changed")]
252 SessionMcpServerStatusChanged,
253 #[serde(rename = "mcp.tools.list_changed")]
254 McpToolsListChanged,
255 #[serde(rename = "mcp.resources.list_changed")]
256 McpResourcesListChanged,
257 #[serde(rename = "mcp.prompts.list_changed")]
258 McpPromptsListChanged,
259 #[serde(rename = "session.extensions_loaded")]
260 SessionExtensionsLoaded,
261 #[serde(rename = "session.canvas.opened")]
269 SessionCanvasOpened,
270 #[serde(rename = "session.canvas.registry_changed")]
278 SessionCanvasRegistryChanged,
279 #[serde(rename = "session.canvas.closed")]
287 SessionCanvasClosed,
288 #[serde(rename = "session.canvas.unavailable")]
296 SessionCanvasUnavailable,
297 #[serde(rename = "session.canvas.recorded")]
305 SessionCanvasRecorded,
306 #[serde(rename = "session.canvas.removed")]
314 SessionCanvasRemoved,
315 #[serde(rename = "session.extensions.attachments_pushed")]
316 SessionExtensionsAttachmentsPushed,
317 #[serde(rename = "mcp_app.tool_call_complete")]
318 McpAppToolCallComplete,
319 #[default]
321 #[serde(other)]
322 Unknown,
323}
324
325#[derive(Debug, Clone, Serialize, Deserialize)]
329#[serde(tag = "type", content = "data")]
330pub enum SessionEventData {
331 #[serde(rename = "session.start")]
332 SessionStart(SessionStartData),
333 #[serde(rename = "session.resume")]
334 SessionResume(SessionResumeData),
335 #[serde(rename = "session.remote_steerable_changed")]
336 SessionRemoteSteerableChanged(SessionRemoteSteerableChangedData),
337 #[serde(rename = "session.error")]
338 SessionError(SessionErrorData),
339 #[serde(rename = "session.idle")]
340 SessionIdle(SessionIdleData),
341 #[serde(rename = "session.title_changed")]
342 SessionTitleChanged(SessionTitleChangedData),
343 #[serde(rename = "session.schedule_created")]
344 SessionScheduleCreated(SessionScheduleCreatedData),
345 #[serde(rename = "session.schedule_cancelled")]
346 SessionScheduleCancelled(SessionScheduleCancelledData),
347 #[serde(rename = "session.schedule_rearmed")]
348 SessionScheduleRearmed(SessionScheduleRearmedData),
349 #[serde(rename = "session.autopilot_objective_changed")]
350 SessionAutopilotObjectiveChanged(SessionAutopilotObjectiveChangedData),
351 #[serde(rename = "session.info")]
352 SessionInfo(SessionInfoData),
353 #[serde(rename = "session.warning")]
354 SessionWarning(SessionWarningData),
355 #[serde(rename = "session.model_change")]
356 SessionModelChange(SessionModelChangeData),
357 #[serde(rename = "session.mode_changed")]
358 SessionModeChanged(SessionModeChangedData),
359 #[serde(rename = "session.session_limits_changed")]
360 SessionSessionLimitsChanged(SessionSessionLimitsChangedData),
361 #[serde(rename = "session.permissions_changed")]
362 SessionPermissionsChanged(SessionPermissionsChangedData),
363 #[serde(rename = "session.plan_changed")]
364 SessionPlanChanged(SessionPlanChangedData),
365 #[serde(rename = "session.todos_changed")]
366 SessionTodosChanged(SessionTodosChangedData),
367 #[serde(rename = "session.workspace_file_changed")]
368 SessionWorkspaceFileChanged(SessionWorkspaceFileChangedData),
369 #[serde(rename = "session.handoff")]
370 SessionHandoff(SessionHandoffData),
371 #[serde(rename = "session.truncation")]
372 SessionTruncation(SessionTruncationData),
373 #[serde(rename = "session.snapshot_rewind")]
374 SessionSnapshotRewind(SessionSnapshotRewindData),
375 #[serde(rename = "session.shutdown")]
376 SessionShutdown(SessionShutdownData),
377 #[serde(rename = "session.usage_checkpoint")]
378 SessionUsageCheckpoint(SessionUsageCheckpointData),
379 #[serde(rename = "session.context_changed")]
380 SessionContextChanged(SessionContextChangedData),
381 #[serde(rename = "session.usage_info")]
382 SessionUsageInfo(SessionUsageInfoData),
383 #[serde(rename = "session.compaction_start")]
384 SessionCompactionStart(SessionCompactionStartData),
385 #[serde(rename = "session.compaction_complete")]
386 SessionCompactionComplete(SessionCompactionCompleteData),
387 #[serde(rename = "session.task_complete")]
388 SessionTaskComplete(SessionTaskCompleteData),
389 #[serde(rename = "user.message")]
390 UserMessage(UserMessageData),
391 #[serde(rename = "pending_messages.modified")]
392 PendingMessagesModified(PendingMessagesModifiedData),
393 #[serde(rename = "assistant.turn_start")]
394 AssistantTurnStart(AssistantTurnStartData),
395 #[serde(rename = "assistant.turn_retry")]
396 AssistantTurnRetry(AssistantTurnRetryData),
397 #[serde(rename = "assistant.intent")]
398 AssistantIntent(AssistantIntentData),
399 #[serde(rename = "assistant.server_tool_progress")]
400 AssistantServerToolProgress(AssistantServerToolProgressData),
401 #[serde(rename = "assistant.reasoning")]
402 AssistantReasoning(AssistantReasoningData),
403 #[serde(rename = "assistant.reasoning_delta")]
404 AssistantReasoningDelta(AssistantReasoningDeltaData),
405 #[serde(rename = "assistant.tool_call_delta")]
406 AssistantToolCallDelta(AssistantToolCallDeltaData),
407 #[serde(rename = "assistant.streaming_delta")]
408 AssistantStreamingDelta(AssistantStreamingDeltaData),
409 #[serde(rename = "assistant.message")]
410 AssistantMessage(AssistantMessageData),
411 #[serde(rename = "assistant.message_start")]
412 AssistantMessageStart(AssistantMessageStartData),
413 #[serde(rename = "assistant.message_delta")]
414 AssistantMessageDelta(AssistantMessageDeltaData),
415 #[serde(rename = "assistant.turn_end")]
416 AssistantTurnEnd(AssistantTurnEndData),
417 #[serde(rename = "assistant.idle")]
418 AssistantIdle(AssistantIdleData),
419 #[serde(rename = "assistant.usage")]
420 AssistantUsage(AssistantUsageData),
421 #[serde(rename = "model.call_failure")]
422 ModelCallFailure(ModelCallFailureData),
423 #[serde(rename = "model.call_start")]
424 ModelCallStart(ModelCallStartData),
425 #[serde(rename = "abort")]
426 Abort(AbortData),
427 #[serde(rename = "tool.user_requested")]
428 ToolUserRequested(ToolUserRequestedData),
429 #[serde(rename = "tool.execution_start")]
430 ToolExecutionStart(ToolExecutionStartData),
431 #[serde(rename = "tool.execution_partial_result")]
432 ToolExecutionPartialResult(ToolExecutionPartialResultData),
433 #[serde(rename = "tool.execution_progress")]
434 ToolExecutionProgress(ToolExecutionProgressData),
435 #[serde(rename = "tool.execution_complete")]
436 ToolExecutionComplete(ToolExecutionCompleteData),
437 #[serde(rename = "tool_search.activated")]
438 ToolSearchActivated(ToolSearchActivatedData),
439 #[serde(rename = "skill.invoked")]
440 SkillInvoked(SkillInvokedData),
441 #[serde(rename = "subagent.started")]
442 SubagentStarted(SubagentStartedData),
443 #[serde(rename = "subagent.completed")]
444 SubagentCompleted(SubagentCompletedData),
445 #[serde(rename = "subagent.failed")]
446 SubagentFailed(SubagentFailedData),
447 #[serde(rename = "subagent.selected")]
448 SubagentSelected(SubagentSelectedData),
449 #[serde(rename = "subagent.deselected")]
450 SubagentDeselected(SubagentDeselectedData),
451 #[serde(rename = "hook.start")]
452 HookStart(HookStartData),
453 #[serde(rename = "hook.end")]
454 HookEnd(HookEndData),
455 #[serde(rename = "hook.progress")]
456 HookProgress(HookProgressData),
457 #[serde(rename = "session.binary_asset")]
458 SessionBinaryAsset(SessionBinaryAssetData),
459 #[serde(rename = "system.message")]
460 SystemMessage(SystemMessageData),
461 #[serde(rename = "system.notification")]
462 SystemNotification(SystemNotificationData),
463 #[serde(rename = "permission.requested")]
464 PermissionRequested(PermissionRequestedData),
465 #[serde(rename = "permission.completed")]
466 PermissionCompleted(PermissionCompletedData),
467 #[serde(rename = "user_input.requested")]
468 UserInputRequested(UserInputRequestedData),
469 #[serde(rename = "user_input.completed")]
470 UserInputCompleted(UserInputCompletedData),
471 #[serde(rename = "elicitation.requested")]
472 ElicitationRequested(ElicitationRequestedData),
473 #[serde(rename = "elicitation.completed")]
474 ElicitationCompleted(ElicitationCompletedData),
475 #[serde(rename = "sampling.requested")]
476 SamplingRequested(SamplingRequestedData),
477 #[serde(rename = "sampling.completed")]
478 SamplingCompleted(SamplingCompletedData),
479 #[serde(rename = "mcp.oauth_required")]
480 McpOauthRequired(McpOauthRequiredData),
481 #[serde(rename = "mcp.oauth_completed")]
482 McpOauthCompleted(McpOauthCompletedData),
483 #[serde(rename = "mcp.headers_refresh_required")]
484 McpHeadersRefreshRequired(McpHeadersRefreshRequiredData),
485 #[serde(rename = "mcp.headers_refresh_completed")]
486 McpHeadersRefreshCompleted(McpHeadersRefreshCompletedData),
487 #[serde(rename = "session.custom_notification")]
488 SessionCustomNotification(SessionCustomNotificationData),
489 #[serde(rename = "external_tool.requested")]
490 ExternalToolRequested(ExternalToolRequestedData),
491 #[serde(rename = "external_tool.completed")]
492 ExternalToolCompleted(ExternalToolCompletedData),
493 #[serde(rename = "command.queued")]
494 CommandQueued(CommandQueuedData),
495 #[serde(rename = "command.execute")]
496 CommandExecute(CommandExecuteData),
497 #[serde(rename = "command.completed")]
498 CommandCompleted(CommandCompletedData),
499 #[serde(rename = "auto_mode_switch.requested")]
500 AutoModeSwitchRequested(AutoModeSwitchRequestedData),
501 #[serde(rename = "auto_mode_switch.completed")]
502 AutoModeSwitchCompleted(AutoModeSwitchCompletedData),
503 #[serde(rename = "session_limits_exhausted.requested")]
504 SessionLimitsExhaustedRequested(SessionLimitsExhaustedRequestedData),
505 #[serde(rename = "session_limits_exhausted.completed")]
506 SessionLimitsExhaustedCompleted(SessionLimitsExhaustedCompletedData),
507 #[serde(rename = "session.auto_mode_resolved")]
515 SessionAutoModeResolved(SessionAutoModeResolvedData),
516 #[serde(rename = "session.managed_settings_resolved")]
524 SessionManagedSettingsResolved(SessionManagedSettingsResolvedData),
525 #[serde(rename = "session.managed_settings_enforced")]
533 SessionManagedSettingsEnforced(SessionManagedSettingsEnforcedData),
534 #[serde(rename = "commands.changed")]
535 CommandsChanged(CommandsChangedData),
536 #[serde(rename = "capabilities.changed")]
537 CapabilitiesChanged(CapabilitiesChangedData),
538 #[serde(rename = "exit_plan_mode.requested")]
539 ExitPlanModeRequested(ExitPlanModeRequestedData),
540 #[serde(rename = "exit_plan_mode.completed")]
541 ExitPlanModeCompleted(ExitPlanModeCompletedData),
542 #[serde(rename = "session.tools_updated")]
543 SessionToolsUpdated(SessionToolsUpdatedData),
544 #[serde(rename = "session.background_tasks_changed")]
545 SessionBackgroundTasksChanged(SessionBackgroundTasksChangedData),
546 #[serde(rename = "factory.run_updated")]
554 FactoryRunUpdated(FactoryRunUpdatedData),
555 #[serde(rename = "session.skills_loaded")]
556 SessionSkillsLoaded(SessionSkillsLoadedData),
557 #[serde(rename = "session.custom_agents_updated")]
558 SessionCustomAgentsUpdated(SessionCustomAgentsUpdatedData),
559 #[serde(rename = "session.mcp_servers_loaded")]
560 SessionMcpServersLoaded(SessionMcpServersLoadedData),
561 #[serde(rename = "session.mcp_server_status_changed")]
562 SessionMcpServerStatusChanged(SessionMcpServerStatusChangedData),
563 #[serde(rename = "mcp.tools.list_changed")]
564 McpToolsListChanged(McpToolsListChangedData),
565 #[serde(rename = "mcp.resources.list_changed")]
566 McpResourcesListChanged(McpResourcesListChangedData),
567 #[serde(rename = "mcp.prompts.list_changed")]
568 McpPromptsListChanged(McpPromptsListChangedData),
569 #[serde(rename = "session.extensions_loaded")]
570 SessionExtensionsLoaded(SessionExtensionsLoadedData),
571 #[serde(rename = "session.canvas.opened")]
579 SessionCanvasOpened(SessionCanvasOpenedData),
580 #[serde(rename = "session.canvas.registry_changed")]
588 SessionCanvasRegistryChanged(SessionCanvasRegistryChangedData),
589 #[serde(rename = "session.canvas.closed")]
597 SessionCanvasClosed(SessionCanvasClosedData),
598 #[serde(rename = "session.canvas.unavailable")]
606 SessionCanvasUnavailable(SessionCanvasUnavailableData),
607 #[serde(rename = "session.canvas.recorded")]
615 SessionCanvasRecorded(SessionCanvasRecordedData),
616 #[serde(rename = "session.canvas.removed")]
624 SessionCanvasRemoved(SessionCanvasRemovedData),
625 #[serde(rename = "session.extensions.attachments_pushed")]
626 SessionExtensionsAttachmentsPushed(SessionExtensionsAttachmentsPushedData),
627 #[serde(rename = "mcp_app.tool_call_complete")]
628 McpAppToolCallComplete(McpAppToolCallCompleteData),
629}
630
631#[derive(Debug, Clone, Serialize, Deserialize)]
637#[serde(rename_all = "camelCase")]
638pub struct TypedSessionEvent {
639 pub id: String,
641 pub timestamp: String,
643 #[serde(skip_serializing_if = "Option::is_none")]
645 pub parent_id: Option<String>,
646 #[serde(skip_serializing_if = "Option::is_none")]
648 pub ephemeral: Option<bool>,
649 #[serde(skip_serializing_if = "Option::is_none")]
652 pub agent_id: Option<String>,
653 #[serde(flatten)]
655 pub payload: SessionEventData,
656}
657
658#[derive(Debug, Clone, Default, Serialize, Deserialize)]
660#[serde(rename_all = "camelCase")]
661pub struct WorkingDirectoryContext {
662 #[serde(skip_serializing_if = "Option::is_none")]
664 pub base_commit: Option<String>,
665 #[serde(skip_serializing_if = "Option::is_none")]
667 pub branch: Option<String>,
668 pub cwd: String,
670 #[serde(skip_serializing_if = "Option::is_none")]
672 pub git_root: Option<String>,
673 #[serde(skip_serializing_if = "Option::is_none")]
675 pub head_commit: Option<String>,
676 #[serde(skip_serializing_if = "Option::is_none")]
678 pub host_type: Option<WorkingDirectoryContextHostType>,
679 #[serde(skip_serializing_if = "Option::is_none")]
681 pub pending_git_context: Option<bool>,
682 #[serde(skip_serializing_if = "Option::is_none")]
684 pub repository: Option<String>,
685 #[serde(skip_serializing_if = "Option::is_none")]
687 pub repository_host: Option<String>,
688}
689
690#[derive(Debug, Clone, Default, Serialize, Deserialize)]
692#[serde(rename_all = "camelCase")]
693pub struct SessionLimitsConfig {
694 #[serde(skip_serializing_if = "Option::is_none")]
696 pub max_ai_credits: Option<f64>,
697}
698
699#[derive(Debug, Clone, Default, Serialize, Deserialize)]
701#[serde(rename_all = "camelCase")]
702pub struct SessionStartData {
703 #[serde(skip_serializing_if = "Option::is_none")]
705 pub already_in_use: Option<bool>,
706 #[serde(skip_serializing_if = "Option::is_none")]
708 pub context: Option<WorkingDirectoryContext>,
709 #[serde(skip_serializing_if = "Option::is_none")]
711 pub context_tier: Option<ContextTier>,
712 pub copilot_version: String,
714 #[serde(skip_serializing_if = "Option::is_none")]
716 pub detached_from_spawning_parent_session_id: Option<String>,
717 pub producer: String,
719 #[serde(skip_serializing_if = "Option::is_none")]
721 pub reasoning_effort: Option<String>,
722 #[serde(skip_serializing_if = "Option::is_none")]
724 pub reasoning_summary: Option<ReasoningSummary>,
725 #[serde(skip_serializing_if = "Option::is_none")]
727 pub remote_steerable: Option<bool>,
728 #[serde(skip_serializing_if = "Option::is_none")]
730 pub selected_model: Option<String>,
731 pub session_id: SessionId,
733 #[serde(skip_serializing_if = "Option::is_none")]
735 pub session_limits: Option<SessionLimitsConfig>,
736 pub start_time: String,
738 #[serde(skip_serializing_if = "Option::is_none")]
740 pub verbosity: Option<Verbosity>,
741 pub version: i64,
743}
744
745#[derive(Debug, Clone, Default, Serialize, Deserialize)]
747#[serde(rename_all = "camelCase")]
748pub struct SessionResumeData {
749 #[serde(skip_serializing_if = "Option::is_none")]
751 pub already_in_use: Option<bool>,
752 #[serde(skip_serializing_if = "Option::is_none")]
754 pub context: Option<WorkingDirectoryContext>,
755 #[serde(skip_serializing_if = "Option::is_none")]
757 pub context_tier: Option<ContextTier>,
758 #[serde(skip_serializing_if = "Option::is_none")]
760 pub continue_pending_work: Option<bool>,
761 pub event_count: i64,
763 #[serde(skip_serializing_if = "Option::is_none")]
765 pub events_file_size_bytes: Option<i64>,
766 #[serde(skip_serializing_if = "Option::is_none")]
768 pub reasoning_effort: Option<String>,
769 #[serde(skip_serializing_if = "Option::is_none")]
771 pub reasoning_summary: Option<ReasoningSummary>,
772 #[serde(skip_serializing_if = "Option::is_none")]
774 pub remote_steerable: Option<bool>,
775 pub resume_time: String,
777 #[serde(skip_serializing_if = "Option::is_none")]
779 pub selected_model: Option<String>,
780 #[serde(skip_serializing_if = "Option::is_none")]
782 pub session_limits: Option<SessionLimitsConfig>,
783 #[serde(skip_serializing_if = "Option::is_none")]
785 pub session_was_active: Option<bool>,
786 #[serde(skip_serializing_if = "Option::is_none")]
788 pub verbosity: Option<Verbosity>,
789}
790
791#[derive(Debug, Clone, Default, Serialize, Deserialize)]
793#[serde(rename_all = "camelCase")]
794pub struct SessionRemoteSteerableChangedData {
795 pub remote_steerable: bool,
797}
798
799#[derive(Debug, Clone, Default, Serialize, Deserialize)]
801#[serde(rename_all = "camelCase")]
802pub struct SessionErrorData {
803 #[serde(skip_serializing_if = "Option::is_none")]
805 pub eligible_for_auto_switch: Option<bool>,
806 #[serde(skip_serializing_if = "Option::is_none")]
808 pub error_code: Option<String>,
809 pub error_type: String,
811 pub message: String,
813 #[serde(skip_serializing_if = "Option::is_none")]
815 pub provider_call_id: Option<String>,
816 #[serde(skip_serializing_if = "Option::is_none")]
818 pub service_request_id: Option<String>,
819 #[serde(skip_serializing_if = "Option::is_none")]
821 pub stack: Option<String>,
822 #[serde(skip_serializing_if = "Option::is_none")]
824 pub status_code: Option<i32>,
825 #[serde(skip_serializing_if = "Option::is_none")]
827 pub url: Option<String>,
828}
829
830#[derive(Debug, Clone, Default, Serialize, Deserialize)]
832#[serde(rename_all = "camelCase")]
833pub struct SessionIdleData {
834 #[serde(skip_serializing_if = "Option::is_none")]
836 pub aborted: Option<bool>,
837}
838
839#[derive(Debug, Clone, Default, Serialize, Deserialize)]
841#[serde(rename_all = "camelCase")]
842pub struct SessionTitleChangedData {
843 pub title: String,
845}
846
847#[derive(Debug, Clone, Default, Serialize, Deserialize)]
849#[serde(rename_all = "camelCase")]
850pub struct SessionScheduleCreatedData {
851 #[serde(skip_serializing_if = "Option::is_none")]
853 pub at: Option<i64>,
854 #[serde(skip_serializing_if = "Option::is_none")]
856 pub cron: Option<String>,
857 #[serde(skip_serializing_if = "Option::is_none")]
859 pub display_prompt: Option<String>,
860 pub id: i64,
862 #[serde(skip_serializing_if = "Option::is_none")]
864 pub interval_ms: Option<i64>,
865 #[serde(skip_serializing_if = "Option::is_none")]
867 pub origin: Option<ScheduleOrigin>,
868 pub prompt: String,
870 #[serde(skip_serializing_if = "Option::is_none")]
872 pub recurring: Option<bool>,
873 #[serde(skip_serializing_if = "Option::is_none")]
875 pub self_paced: Option<bool>,
876 #[serde(skip_serializing_if = "Option::is_none")]
878 pub tz: Option<String>,
879}
880
881#[derive(Debug, Clone, Default, Serialize, Deserialize)]
883#[serde(rename_all = "camelCase")]
884pub struct SessionScheduleCancelledData {
885 pub id: i64,
887}
888
889#[derive(Debug, Clone, Default, Serialize, Deserialize)]
891#[serde(rename_all = "camelCase")]
892pub struct SessionScheduleRearmedData {
893 pub id: i64,
895 pub next_run_at: i64,
897}
898
899#[derive(Debug, Clone, Default, Serialize, Deserialize)]
901#[serde(rename_all = "camelCase")]
902pub struct SessionAutopilotObjectiveChangedData {
903 #[serde(skip_serializing_if = "Option::is_none")]
905 pub id: Option<i64>,
906 pub operation: AutopilotObjectiveChangedOperation,
908 #[serde(skip_serializing_if = "Option::is_none")]
910 pub status: Option<AutopilotObjectiveChangedStatus>,
911}
912
913#[derive(Debug, Clone, Default, Serialize, Deserialize)]
915#[serde(rename_all = "camelCase")]
916pub struct SessionInfoData {
917 pub info_type: String,
919 pub message: String,
921 #[serde(skip_serializing_if = "Option::is_none")]
923 pub tip: Option<String>,
924 #[serde(skip_serializing_if = "Option::is_none")]
926 pub url: Option<String>,
927}
928
929#[derive(Debug, Clone, Default, Serialize, Deserialize)]
931#[serde(rename_all = "camelCase")]
932pub struct SessionWarningData {
933 pub message: String,
935 #[serde(skip_serializing_if = "Option::is_none")]
937 pub url: Option<String>,
938 pub warning_type: String,
940}
941
942#[derive(Debug, Clone, Default, Serialize, Deserialize)]
944#[serde(rename_all = "camelCase")]
945pub struct SessionModelChangeData {
946 #[serde(skip_serializing_if = "Option::is_none")]
948 pub cause: Option<String>,
949 #[serde(skip_serializing_if = "Option::is_none")]
951 pub context_tier: Option<ContextTier>,
952 pub new_model: String,
954 #[serde(skip_serializing_if = "Option::is_none")]
956 pub previous_model: Option<String>,
957 #[serde(skip_serializing_if = "Option::is_none")]
959 pub previous_reasoning_effort: Option<String>,
960 #[serde(skip_serializing_if = "Option::is_none")]
962 pub previous_reasoning_summary: Option<ReasoningSummary>,
963 #[serde(skip_serializing_if = "Option::is_none")]
965 pub previous_verbosity: Option<Verbosity>,
966 #[serde(skip_serializing_if = "Option::is_none")]
968 pub reasoning_effort: Option<String>,
969 #[serde(skip_serializing_if = "Option::is_none")]
971 pub reasoning_summary: Option<ReasoningSummary>,
972 #[serde(skip_serializing_if = "Option::is_none")]
974 pub verbosity: Option<Verbosity>,
975}
976
977#[derive(Debug, Clone, Default, Serialize, Deserialize)]
979#[serde(rename_all = "camelCase")]
980pub struct SessionModeChangedData {
981 pub new_mode: SessionMode,
983 pub previous_mode: SessionMode,
985}
986
987#[derive(Debug, Clone, Default, Serialize, Deserialize)]
989#[serde(rename_all = "camelCase")]
990pub struct SessionSessionLimitsChangedData {
991 pub session_limits: Option<SessionLimitsConfig>,
993}
994
995#[derive(Debug, Clone, Default, Serialize, Deserialize)]
997#[serde(rename_all = "camelCase")]
998pub struct SessionPermissionsChangedData {
999 #[serde(skip_serializing_if = "Option::is_none")]
1008 pub allow_all_permission_mode: Option<PermissionAllowAllMode>,
1009 pub allow_all_permissions: bool,
1011 #[serde(skip_serializing_if = "Option::is_none")]
1020 pub previous_allow_all_permission_mode: Option<PermissionAllowAllMode>,
1021 pub previous_allow_all_permissions: bool,
1023}
1024
1025#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1027#[serde(rename_all = "camelCase")]
1028pub struct SessionPlanChangedData {
1029 pub operation: PlanChangedOperation,
1031}
1032
1033#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1035#[serde(rename_all = "camelCase")]
1036pub struct SessionTodosChangedData {}
1037
1038#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1040#[serde(rename_all = "camelCase")]
1041pub struct SessionWorkspaceFileChangedData {
1042 pub operation: WorkspaceFileChangedOperation,
1044 pub path: String,
1046}
1047
1048#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1050#[serde(rename_all = "camelCase")]
1051pub struct HandoffRepository {
1052 #[serde(skip_serializing_if = "Option::is_none")]
1054 pub branch: Option<String>,
1055 pub name: String,
1057 pub owner: String,
1059}
1060
1061#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1063#[serde(rename_all = "camelCase")]
1064pub struct SessionHandoffData {
1065 #[serde(skip_serializing_if = "Option::is_none")]
1067 pub context: Option<String>,
1068 pub handoff_time: String,
1070 #[serde(skip_serializing_if = "Option::is_none")]
1072 pub host: Option<String>,
1073 #[serde(skip_serializing_if = "Option::is_none")]
1075 pub remote_session_id: Option<SessionId>,
1076 #[serde(skip_serializing_if = "Option::is_none")]
1078 pub repository: Option<HandoffRepository>,
1079 pub source_type: HandoffSourceType,
1081 #[serde(skip_serializing_if = "Option::is_none")]
1083 pub summary: Option<String>,
1084}
1085
1086#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1088#[serde(rename_all = "camelCase")]
1089pub struct SessionTruncationData {
1090 pub messages_removed_during_truncation: i64,
1092 pub performed_by: String,
1094 pub post_truncation_messages_length: i64,
1096 pub post_truncation_tokens_in_messages: i64,
1098 pub pre_truncation_messages_length: i64,
1100 pub pre_truncation_tokens_in_messages: i64,
1102 pub token_limit: i64,
1104 pub tokens_removed_during_truncation: i64,
1106}
1107
1108#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1110#[serde(rename_all = "camelCase")]
1111pub struct SessionSnapshotRewindData {
1112 pub events_removed: i64,
1114 pub up_to_event_id: String,
1116}
1117
1118#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1120#[serde(rename_all = "camelCase")]
1121pub struct ShutdownCodeChanges {
1122 pub files_modified: Vec<String>,
1124 pub lines_added: i64,
1126 pub lines_removed: i64,
1128}
1129
1130#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1132#[serde(rename_all = "camelCase")]
1133pub struct ShutdownModelMetricRequests {
1134 #[serde(skip_serializing_if = "Option::is_none")]
1143 pub cost: Option<f64>,
1144 #[serde(skip_serializing_if = "Option::is_none")]
1153 pub count: Option<i64>,
1154}
1155
1156#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1158#[serde(rename_all = "camelCase")]
1159pub struct ShutdownModelMetricTokenDetail {
1160 pub token_count: i64,
1162}
1163
1164#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1166#[serde(rename_all = "camelCase")]
1167pub struct ShutdownModelMetricUsage {
1168 pub cache_read_tokens: i64,
1170 pub cache_write_tokens: i64,
1172 pub input_tokens: i64,
1174 pub output_tokens: i64,
1176 #[serde(skip_serializing_if = "Option::is_none")]
1178 pub reasoning_tokens: Option<i64>,
1179}
1180
1181#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1183#[serde(rename_all = "camelCase")]
1184pub struct ShutdownModelMetric {
1185 pub requests: ShutdownModelMetricRequests,
1187 #[serde(skip_serializing_if = "Option::is_none")]
1189 pub token_details: Option<HashMap<String, ShutdownModelMetricTokenDetail>>,
1190 #[serde(skip_serializing_if = "Option::is_none")]
1199 pub total_nano_aiu: Option<f64>,
1200 pub usage: ShutdownModelMetricUsage,
1202}
1203
1204#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1206#[serde(rename_all = "camelCase")]
1207pub struct ShutdownTokenDetail {
1208 pub token_count: i64,
1210}
1211
1212#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1214#[serde(rename_all = "camelCase")]
1215pub struct SessionShutdownData {
1216 pub code_changes: ShutdownCodeChanges,
1218 #[serde(skip_serializing_if = "Option::is_none")]
1220 pub conversation_tokens: Option<i64>,
1221 #[serde(skip_serializing_if = "Option::is_none")]
1223 pub current_model: Option<String>,
1224 #[serde(skip_serializing_if = "Option::is_none")]
1226 pub current_tokens: Option<i64>,
1227 #[serde(skip_serializing_if = "Option::is_none")]
1229 pub error_reason: Option<String>,
1230 #[serde(skip_serializing_if = "Option::is_none")]
1232 pub events_file_size_bytes: Option<i64>,
1233 pub model_metrics: HashMap<String, ShutdownModelMetric>,
1235 pub session_start_time: i64,
1237 pub shutdown_type: ShutdownType,
1239 #[serde(skip_serializing_if = "Option::is_none")]
1241 pub system_tokens: Option<i64>,
1242 #[serde(skip_serializing_if = "Option::is_none")]
1244 pub token_details: Option<HashMap<String, ShutdownTokenDetail>>,
1245 #[serde(skip_serializing_if = "Option::is_none")]
1247 pub tool_definitions_tokens: Option<i64>,
1248 pub total_api_duration_ms: i64,
1250 #[serde(skip_serializing_if = "Option::is_none")]
1259 pub total_nano_aiu: Option<f64>,
1260 #[doc(hidden)]
1262 #[serde(skip_serializing_if = "Option::is_none")]
1263 pub(crate) total_premium_requests: Option<f64>,
1264}
1265
1266#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1268#[serde(rename_all = "camelCase")]
1269pub(crate) struct UsageCheckpointModelCacheState {
1270 pub cache_expires_at: String,
1272 #[doc(hidden)]
1274 pub(crate) cache_ttl_seconds: i64,
1275 pub model_id: String,
1277}
1278
1279#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1281#[serde(rename_all = "camelCase")]
1282pub struct SessionUsageCheckpointData {
1283 #[doc(hidden)]
1285 #[serde(skip_serializing_if = "Option::is_none")]
1286 pub(crate) model_cache_state: Option<Vec<UsageCheckpointModelCacheState>>,
1287 pub total_nano_aiu: f64,
1289 #[doc(hidden)]
1291 #[serde(skip_serializing_if = "Option::is_none")]
1292 pub(crate) total_premium_requests: Option<f64>,
1293}
1294
1295#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1297#[serde(rename_all = "camelCase")]
1298pub struct SessionContextChangedData {
1299 #[serde(skip_serializing_if = "Option::is_none")]
1301 pub base_commit: Option<String>,
1302 #[serde(skip_serializing_if = "Option::is_none")]
1304 pub branch: Option<String>,
1305 pub cwd: String,
1307 #[serde(skip_serializing_if = "Option::is_none")]
1309 pub git_root: Option<String>,
1310 #[serde(skip_serializing_if = "Option::is_none")]
1312 pub head_commit: Option<String>,
1313 #[serde(skip_serializing_if = "Option::is_none")]
1315 pub host_type: Option<WorkingDirectoryContextHostType>,
1316 #[serde(skip_serializing_if = "Option::is_none")]
1318 pub pending_git_context: Option<bool>,
1319 #[serde(skip_serializing_if = "Option::is_none")]
1321 pub repository: Option<String>,
1322 #[serde(skip_serializing_if = "Option::is_none")]
1324 pub repository_host: Option<String>,
1325}
1326
1327#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1329#[serde(rename_all = "camelCase")]
1330pub struct SessionUsageInfoData {
1331 #[serde(skip_serializing_if = "Option::is_none")]
1333 pub conversation_tokens: Option<i64>,
1334 pub current_tokens: i64,
1336 #[serde(skip_serializing_if = "Option::is_none")]
1338 pub is_initial: Option<bool>,
1339 pub messages_length: i64,
1341 #[serde(skip_serializing_if = "Option::is_none")]
1343 pub system_tokens: Option<i64>,
1344 pub token_limit: i64,
1346 #[serde(skip_serializing_if = "Option::is_none")]
1348 pub tool_definitions_tokens: Option<i64>,
1349}
1350
1351#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1353#[serde(rename_all = "camelCase")]
1354pub struct SessionCompactionStartData {
1355 #[serde(skip_serializing_if = "Option::is_none")]
1357 pub conversation_tokens: Option<i64>,
1358 #[serde(skip_serializing_if = "Option::is_none")]
1360 pub current_tokens: Option<i64>,
1361 #[serde(skip_serializing_if = "Option::is_none")]
1363 pub model: Option<String>,
1364 #[serde(skip_serializing_if = "Option::is_none")]
1366 pub system_tokens: Option<i64>,
1367 #[serde(skip_serializing_if = "Option::is_none")]
1369 pub token_limit: Option<i64>,
1370 #[serde(skip_serializing_if = "Option::is_none")]
1372 pub tool_definitions_tokens: Option<i64>,
1373 #[serde(skip_serializing_if = "Option::is_none")]
1375 pub trigger: Option<CompactionTrigger>,
1376}
1377
1378#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1380#[serde(rename_all = "camelCase")]
1381pub struct CompactionCompleteCompactionTokensUsedCopilotUsageTokenDetail {
1382 pub batch_size: i64,
1384 pub cost_per_batch: i64,
1386 pub token_count: i64,
1388 pub token_type: String,
1390}
1391
1392#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1394#[serde(rename_all = "camelCase")]
1395pub(crate) struct CompactionCompleteCompactionTokensUsedCopilotUsage {
1396 #[doc(hidden)]
1398 #[serde(skip_serializing_if = "Option::is_none")]
1399 pub(crate) token_details:
1400 Option<Vec<CompactionCompleteCompactionTokensUsedCopilotUsageTokenDetail>>,
1401 pub total_nano_aiu: f64,
1403}
1404
1405#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1407#[serde(rename_all = "camelCase")]
1408pub struct CompactionCompleteCompactionTokensUsed {
1409 #[serde(skip_serializing_if = "Option::is_none")]
1411 pub cache_read_tokens: Option<i64>,
1412 #[serde(skip_serializing_if = "Option::is_none")]
1414 pub cache_write_tokens: Option<i64>,
1415 #[doc(hidden)]
1417 #[serde(skip_serializing_if = "Option::is_none")]
1418 pub(crate) copilot_usage: Option<CompactionCompleteCompactionTokensUsedCopilotUsage>,
1419 #[serde(skip_serializing_if = "Option::is_none")]
1421 pub duration: Option<i64>,
1422 #[serde(skip_serializing_if = "Option::is_none")]
1424 pub input_tokens: Option<i64>,
1425 #[serde(skip_serializing_if = "Option::is_none")]
1427 pub model: Option<String>,
1428 #[serde(skip_serializing_if = "Option::is_none")]
1430 pub output_tokens: Option<i64>,
1431}
1432
1433#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1435#[serde(rename_all = "camelCase")]
1436pub struct SessionCompactionCompleteData {
1437 #[serde(skip_serializing_if = "Option::is_none")]
1439 pub checkpoint_number: Option<i64>,
1440 #[serde(skip_serializing_if = "Option::is_none")]
1442 pub checkpoint_path: Option<String>,
1443 #[serde(skip_serializing_if = "Option::is_none")]
1445 pub compaction_tokens_used: Option<CompactionCompleteCompactionTokensUsed>,
1446 #[serde(skip_serializing_if = "Option::is_none")]
1448 pub conversation_tokens: Option<i64>,
1449 #[serde(skip_serializing_if = "Option::is_none")]
1451 pub custom_instructions: Option<String>,
1452 #[serde(skip_serializing_if = "Option::is_none")]
1454 pub error: Option<String>,
1455 #[serde(skip_serializing_if = "Option::is_none")]
1457 pub messages_removed: Option<i64>,
1458 #[serde(skip_serializing_if = "Option::is_none")]
1460 pub post_compaction_tokens: Option<i64>,
1461 #[serde(skip_serializing_if = "Option::is_none")]
1463 pub pre_compaction_messages_length: Option<i64>,
1464 #[serde(skip_serializing_if = "Option::is_none")]
1466 pub pre_compaction_tokens: Option<i64>,
1467 #[serde(skip_serializing_if = "Option::is_none")]
1469 pub request_id: Option<RequestId>,
1470 #[serde(skip_serializing_if = "Option::is_none")]
1472 pub service_request_id: Option<String>,
1473 #[serde(skip_serializing_if = "Option::is_none")]
1475 pub status_code: Option<i64>,
1476 pub success: bool,
1478 #[serde(skip_serializing_if = "Option::is_none")]
1480 pub summary_content: Option<String>,
1481 #[serde(skip_serializing_if = "Option::is_none")]
1483 pub system_tokens: Option<i64>,
1484 #[serde(skip_serializing_if = "Option::is_none")]
1486 pub token_limit: Option<i64>,
1487 #[serde(skip_serializing_if = "Option::is_none")]
1489 pub tokens_removed: Option<i64>,
1490 #[serde(skip_serializing_if = "Option::is_none")]
1492 pub tool_definitions_tokens: Option<i64>,
1493 #[serde(skip_serializing_if = "Option::is_none")]
1495 pub trigger: Option<CompactionTrigger>,
1496}
1497
1498#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1500#[serde(rename_all = "camelCase")]
1501pub struct SessionTaskCompleteData {
1502 #[serde(skip_serializing_if = "Option::is_none")]
1504 pub objective_id: Option<i64>,
1505 #[serde(skip_serializing_if = "Option::is_none")]
1507 pub outcome: Option<TaskCompletionOutcome>,
1508 #[serde(skip_serializing_if = "Option::is_none")]
1510 pub reason: Option<String>,
1511 #[serde(skip_serializing_if = "Option::is_none")]
1513 pub success: Option<bool>,
1514 #[serde(skip_serializing_if = "Option::is_none")]
1516 pub summary: Option<String>,
1517}
1518
1519#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1521#[serde(rename_all = "camelCase")]
1522pub struct UserMessageData {
1523 #[serde(skip_serializing_if = "Option::is_none")]
1525 pub agent_mode: Option<UserMessageAgentMode>,
1526 #[serde(skip_serializing_if = "Option::is_none")]
1528 pub attachments: Option<Vec<serde_json::Value>>,
1529 pub content: String,
1531 #[serde(skip_serializing_if = "Option::is_none")]
1533 pub delivery: Option<UserMessageDelivery>,
1534 #[serde(skip_serializing_if = "Option::is_none")]
1536 pub interaction_id: Option<String>,
1537 #[serde(skip_serializing_if = "Option::is_none")]
1539 pub is_autopilot_continuation: Option<bool>,
1540 #[serde(skip_serializing_if = "Option::is_none")]
1542 pub native_document_path_fallback_paths: Option<Vec<String>>,
1543 #[serde(skip_serializing_if = "Option::is_none")]
1545 pub parent_agent_task_id: Option<String>,
1546 #[serde(skip_serializing_if = "Option::is_none")]
1548 pub source: Option<String>,
1549 #[serde(skip_serializing_if = "Option::is_none")]
1551 pub supported_native_document_mime_types: Option<Vec<String>>,
1552 #[serde(skip_serializing_if = "Option::is_none")]
1554 pub transformed_content: Option<String>,
1555}
1556
1557#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1559#[serde(rename_all = "camelCase")]
1560pub struct PendingMessagesModifiedData {}
1561
1562#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1564#[serde(rename_all = "camelCase")]
1565pub struct AssistantTurnStartData {
1566 #[serde(skip_serializing_if = "Option::is_none")]
1568 pub interaction_id: Option<String>,
1569 #[serde(skip_serializing_if = "Option::is_none")]
1571 pub model: Option<String>,
1572 pub turn_id: String,
1574}
1575
1576#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1578#[serde(rename_all = "camelCase")]
1579pub struct AssistantTurnRetryData {
1580 #[serde(skip_serializing_if = "Option::is_none")]
1582 pub model: Option<String>,
1583 #[serde(skip_serializing_if = "Option::is_none")]
1585 pub reason: Option<String>,
1586 pub turn_id: String,
1588}
1589
1590#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1592#[serde(rename_all = "camelCase")]
1593pub struct AssistantIntentData {
1594 pub intent: String,
1596}
1597
1598#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1600#[serde(rename_all = "camelCase")]
1601pub struct AssistantServerToolProgressData {
1602 pub kind: String,
1604 pub output_index: i64,
1606 pub status: String,
1608}
1609
1610#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1612#[serde(rename_all = "camelCase")]
1613pub struct AssistantReasoningData {
1614 pub content: String,
1616 pub reasoning_id: String,
1618 #[serde(skip_serializing_if = "Option::is_none")]
1619 pub rte: Option<bool>,
1620}
1621
1622#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1624#[serde(rename_all = "camelCase")]
1625pub struct AssistantReasoningDeltaData {
1626 pub delta_content: String,
1628 pub reasoning_id: String,
1630}
1631
1632#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1634#[serde(rename_all = "camelCase")]
1635pub struct AssistantToolCallDeltaData {
1636 pub input_delta: String,
1638 pub tool_call_id: String,
1640 #[serde(skip_serializing_if = "Option::is_none")]
1642 pub tool_name: Option<String>,
1643 #[serde(skip_serializing_if = "Option::is_none")]
1645 pub tool_type: Option<AssistantMessageToolRequestType>,
1646}
1647
1648#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1650#[serde(rename_all = "camelCase")]
1651pub struct AssistantStreamingDeltaData {
1652 pub total_response_size_bytes: i64,
1654}
1655
1656#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1665#[serde(rename_all = "camelCase")]
1666pub struct CitationSource {
1667 pub id: String,
1669 #[serde(skip_serializing_if = "Option::is_none")]
1671 pub path: Option<String>,
1672 pub provider: CitationProvider,
1674 #[serde(skip_serializing_if = "Option::is_none")]
1676 pub title: Option<String>,
1677 #[serde(skip_serializing_if = "Option::is_none")]
1679 pub url: Option<String>,
1680}
1681
1682#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1691#[serde(rename_all = "camelCase")]
1692pub struct CitationReference {
1693 #[serde(skip_serializing_if = "Option::is_none")]
1695 pub cited_text: Option<String>,
1696 #[serde(skip_serializing_if = "Option::is_none")]
1698 pub location: Option<serde_json::Value>,
1699 #[serde(skip_serializing_if = "Option::is_none")]
1701 pub provider_metadata: Option<serde_json::Value>,
1702 pub source_id: String,
1704}
1705
1706#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1715#[serde(rename_all = "camelCase")]
1716pub struct CitationSpan {
1717 pub end_index: i64,
1719 pub references: Vec<CitationReference>,
1721 pub start_index: i64,
1723}
1724
1725#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1734#[serde(rename_all = "camelCase")]
1735pub struct Citations {
1736 pub sources: Vec<CitationSource>,
1738 pub spans: Vec<CitationSpan>,
1740}
1741
1742#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1751#[serde(rename_all = "camelCase")]
1752pub struct AssistantMessageServerTools {
1753 #[serde(skip_serializing_if = "Option::is_none")]
1754 pub advisor_model: Option<String>,
1755 #[serde(skip_serializing_if = "Option::is_none")]
1756 pub function_call_namespaces: Option<HashMap<String, String>>,
1757 #[serde(skip_serializing_if = "Option::is_none")]
1758 pub items: Option<Vec<serde_json::Value>>,
1759 pub provider: String,
1760 #[serde(skip_serializing_if = "Option::is_none")]
1761 pub raw_content_blocks: Option<Vec<serde_json::Value>>,
1762}
1763
1764#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1766#[serde(rename_all = "camelCase")]
1767pub struct AssistantMessageToolRequest {
1768 #[serde(skip_serializing_if = "Option::is_none")]
1770 pub arguments: Option<serde_json::Value>,
1771 #[serde(skip_serializing_if = "Option::is_none")]
1773 pub intention_summary: Option<String>,
1774 #[serde(skip_serializing_if = "Option::is_none")]
1776 pub mcp_server_name: Option<String>,
1777 #[serde(skip_serializing_if = "Option::is_none")]
1779 pub mcp_tool_name: Option<String>,
1780 pub name: String,
1782 pub tool_call_id: String,
1784 #[serde(skip_serializing_if = "Option::is_none")]
1786 pub tool_title: Option<String>,
1787 #[serde(skip_serializing_if = "Option::is_none")]
1789 pub r#type: Option<AssistantMessageToolRequestType>,
1790}
1791
1792#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1794#[serde(rename_all = "camelCase")]
1795pub struct AssistantMessageData {
1796 #[serde(skip_serializing_if = "Option::is_none")]
1798 pub api_call_id: Option<String>,
1799 #[serde(skip_serializing_if = "Option::is_none")]
1808 pub citations: Option<Citations>,
1809 #[serde(skip_serializing_if = "Option::is_none")]
1811 pub client_request_id: Option<String>,
1812 pub content: String,
1814 #[serde(skip_serializing_if = "Option::is_none")]
1816 pub encrypted_content: Option<String>,
1817 #[serde(skip_serializing_if = "Option::is_none")]
1819 pub interaction_id: Option<String>,
1820 pub message_id: String,
1822 #[serde(skip_serializing_if = "Option::is_none")]
1824 pub model: Option<String>,
1825 #[serde(skip_serializing_if = "Option::is_none")]
1827 pub output_tokens: Option<i64>,
1828 #[doc(hidden)]
1830 #[deprecated]
1831 #[serde(skip_serializing_if = "Option::is_none")]
1832 pub parent_tool_call_id: Option<String>,
1833 #[serde(skip_serializing_if = "Option::is_none")]
1835 pub phase: Option<String>,
1836 #[serde(skip_serializing_if = "Option::is_none")]
1838 pub reasoning_opaque: Option<String>,
1839 #[serde(skip_serializing_if = "Option::is_none")]
1841 pub reasoning_text: Option<String>,
1842 #[serde(skip_serializing_if = "Option::is_none")]
1844 pub reasoning_wire_field: Option<String>,
1845 #[serde(skip_serializing_if = "Option::is_none")]
1847 pub request_id: Option<RequestId>,
1848 #[serde(skip_serializing_if = "Option::is_none")]
1849 pub rte: Option<bool>,
1850 #[serde(skip_serializing_if = "Option::is_none")]
1852 pub server_tools: Option<AssistantMessageServerTools>,
1853 #[serde(skip_serializing_if = "Option::is_none")]
1855 pub service_request_id: Option<String>,
1856 #[serde(skip_serializing_if = "Option::is_none")]
1858 pub tool_requests: Option<Vec<AssistantMessageToolRequest>>,
1859 #[serde(skip_serializing_if = "Option::is_none")]
1861 pub turn_id: Option<String>,
1862}
1863
1864#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1866#[serde(rename_all = "camelCase")]
1867pub struct AssistantMessageStartData {
1868 pub message_id: String,
1870 #[serde(skip_serializing_if = "Option::is_none")]
1872 pub phase: Option<String>,
1873}
1874
1875#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1877#[serde(rename_all = "camelCase")]
1878pub struct AssistantMessageDeltaData {
1879 pub delta_content: String,
1881 pub message_id: String,
1883 #[doc(hidden)]
1885 #[deprecated]
1886 #[serde(skip_serializing_if = "Option::is_none")]
1887 pub parent_tool_call_id: Option<String>,
1888}
1889
1890#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1892#[serde(rename_all = "camelCase")]
1893pub struct AssistantTurnEndData {
1894 #[serde(skip_serializing_if = "Option::is_none")]
1896 pub model: Option<String>,
1897 pub turn_id: String,
1899}
1900
1901#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1903#[serde(rename_all = "camelCase")]
1904pub struct AssistantIdleData {
1905 #[serde(skip_serializing_if = "Option::is_none")]
1907 pub aborted: Option<bool>,
1908}
1909
1910#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1912#[serde(rename_all = "camelCase")]
1913pub struct AssistantUsageCopilotUsageTokenDetail {
1914 pub batch_size: i64,
1916 pub cost_per_batch: i64,
1918 pub token_count: i64,
1920 pub token_type: String,
1922}
1923
1924#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1926#[serde(rename_all = "camelCase")]
1927pub struct AssistantUsageCopilotUsage {
1928 #[doc(hidden)]
1930 #[serde(skip_serializing_if = "Option::is_none")]
1931 pub(crate) token_details: Option<Vec<AssistantUsageCopilotUsageTokenDetail>>,
1932 pub total_nano_aiu: f64,
1934}
1935
1936#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1938#[serde(rename_all = "camelCase")]
1939pub(crate) struct AssistantUsageQuotaSnapshot {
1940 #[doc(hidden)]
1942 pub(crate) entitlement_requests: i64,
1943 #[doc(hidden)]
1945 #[serde(skip_serializing_if = "Option::is_none")]
1946 pub(crate) has_quota: Option<bool>,
1947 #[doc(hidden)]
1949 pub(crate) is_unlimited_entitlement: bool,
1950 #[doc(hidden)]
1952 pub(crate) overage: f64,
1953 #[doc(hidden)]
1955 pub(crate) overage_allowed_with_exhausted_quota: bool,
1956 #[doc(hidden)]
1958 #[serde(skip_serializing_if = "Option::is_none")]
1959 pub(crate) overage_entitlement: Option<f64>,
1960 #[doc(hidden)]
1962 pub(crate) remaining_percentage: f64,
1963 #[doc(hidden)]
1965 #[serde(skip_serializing_if = "Option::is_none")]
1966 pub(crate) reset_date: Option<String>,
1967 #[doc(hidden)]
1969 #[serde(skip_serializing_if = "Option::is_none")]
1970 pub(crate) token_based_billing: Option<bool>,
1971 #[doc(hidden)]
1973 pub(crate) usage_allowed_with_exhausted_quota: bool,
1974 #[doc(hidden)]
1976 pub(crate) used_requests: i64,
1977}
1978
1979#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1981#[serde(rename_all = "camelCase")]
1982pub struct AssistantUsageData {
1983 #[serde(skip_serializing_if = "Option::is_none")]
1985 pub api_call_id: Option<String>,
1986 #[serde(skip_serializing_if = "Option::is_none")]
1988 pub api_endpoint: Option<AssistantUsageApiEndpoint>,
1989 #[serde(skip_serializing_if = "Option::is_none")]
1991 pub cache_expires_at: Option<String>,
1992 #[serde(skip_serializing_if = "Option::is_none")]
1994 pub cache_read_tokens: Option<i64>,
1995 #[serde(skip_serializing_if = "Option::is_none")]
1997 pub cache_write_tokens: Option<i64>,
1998 #[serde(skip_serializing_if = "Option::is_none")]
2000 pub content_filter_triggered: Option<bool>,
2001 #[serde(skip_serializing_if = "Option::is_none")]
2003 pub copilot_usage: Option<AssistantUsageCopilotUsage>,
2004 #[serde(skip_serializing_if = "Option::is_none")]
2013 pub cost: Option<f64>,
2014 #[serde(skip_serializing_if = "Option::is_none")]
2016 pub duration: Option<i64>,
2017 #[serde(skip_serializing_if = "Option::is_none")]
2019 pub finish_reason: Option<String>,
2020 #[serde(skip_serializing_if = "Option::is_none")]
2022 pub initiator: Option<String>,
2023 #[serde(skip_serializing_if = "Option::is_none")]
2025 pub input_tokens: Option<i64>,
2026 #[serde(skip_serializing_if = "Option::is_none")]
2028 pub interaction_type: Option<String>,
2029 #[serde(skip_serializing_if = "Option::is_none")]
2031 pub inter_token_latency_ms: Option<f64>,
2032 pub model: String,
2034 #[serde(skip_serializing_if = "Option::is_none")]
2036 pub output_tokens: Option<i64>,
2037 #[doc(hidden)]
2039 #[deprecated]
2040 #[serde(skip_serializing_if = "Option::is_none")]
2041 pub parent_tool_call_id: Option<String>,
2042 #[serde(skip_serializing_if = "Option::is_none")]
2044 pub provider_call_id: Option<String>,
2045 #[doc(hidden)]
2047 #[serde(skip_serializing_if = "Option::is_none")]
2048 pub(crate) quota_snapshots: Option<HashMap<String, AssistantUsageQuotaSnapshot>>,
2049 #[serde(skip_serializing_if = "Option::is_none")]
2051 pub reasoning_effort: Option<String>,
2052 #[serde(skip_serializing_if = "Option::is_none")]
2054 pub reasoning_tokens: Option<i64>,
2055 #[serde(skip_serializing_if = "Option::is_none")]
2056 pub rte: Option<bool>,
2057 #[serde(skip_serializing_if = "Option::is_none")]
2059 pub service_request_id: Option<String>,
2060 #[serde(skip_serializing_if = "Option::is_none")]
2062 pub time_to_first_token_ms: Option<f64>,
2063}
2064
2065#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2067#[serde(rename_all = "camelCase")]
2068pub struct ModelCallFailureRequestFingerprint {
2069 pub image_part_count: i64,
2071 pub image_parts_missing_media_type: i64,
2073 #[serde(skip_serializing_if = "Option::is_none")]
2075 pub last_message_role: Option<String>,
2076 pub message_count: i64,
2078 pub nameless_tool_call_count: i64,
2080 pub tool_call_count: i64,
2082 pub tool_result_message_count: i64,
2084}
2085
2086#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2088#[serde(rename_all = "camelCase")]
2089pub struct ModelCallFailureData {
2090 #[serde(skip_serializing_if = "Option::is_none")]
2092 pub api_call_id: Option<String>,
2093 #[serde(skip_serializing_if = "Option::is_none")]
2095 pub api_endpoint: Option<AssistantUsageApiEndpoint>,
2096 #[serde(skip_serializing_if = "Option::is_none")]
2098 pub bad_request_kind: Option<ModelCallFailureBadRequestKind>,
2099 #[serde(skip_serializing_if = "Option::is_none")]
2101 pub duration_ms: Option<i64>,
2102 #[serde(skip_serializing_if = "Option::is_none")]
2104 pub error_code: Option<String>,
2105 #[serde(skip_serializing_if = "Option::is_none")]
2107 pub error_message: Option<String>,
2108 #[serde(skip_serializing_if = "Option::is_none")]
2110 pub error_type: Option<String>,
2111 #[serde(skip_serializing_if = "Option::is_none")]
2113 pub failure_kind: Option<ModelCallFailureKind>,
2114 #[serde(skip_serializing_if = "Option::is_none")]
2116 pub initiator: Option<String>,
2117 #[serde(skip_serializing_if = "Option::is_none")]
2119 pub is_auto: Option<bool>,
2120 #[serde(skip_serializing_if = "Option::is_none")]
2122 pub is_byok: Option<bool>,
2123 #[serde(skip_serializing_if = "Option::is_none")]
2125 pub max_output_tokens: Option<i64>,
2126 #[serde(skip_serializing_if = "Option::is_none")]
2128 pub max_prompt_tokens: Option<i64>,
2129 #[serde(skip_serializing_if = "Option::is_none")]
2131 pub model: Option<String>,
2132 #[serde(skip_serializing_if = "Option::is_none")]
2134 pub provider_call_id: Option<String>,
2135 #[doc(hidden)]
2137 #[serde(skip_serializing_if = "Option::is_none")]
2138 pub(crate) quota_snapshots: Option<HashMap<String, AssistantUsageQuotaSnapshot>>,
2139 #[serde(skip_serializing_if = "Option::is_none")]
2141 pub reasoning_effort: Option<String>,
2142 #[serde(skip_serializing_if = "Option::is_none")]
2144 pub request_fingerprint: Option<ModelCallFailureRequestFingerprint>,
2145 #[serde(skip_serializing_if = "Option::is_none")]
2146 pub rte: Option<bool>,
2147 #[serde(skip_serializing_if = "Option::is_none")]
2149 pub service_request_id: Option<String>,
2150 pub source: ModelCallFailureSource,
2152 #[serde(skip_serializing_if = "Option::is_none")]
2154 pub status_code: Option<i32>,
2155 #[serde(skip_serializing_if = "Option::is_none")]
2157 pub transport: Option<ModelCallFailureTransport>,
2158}
2159
2160#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2162#[serde(rename_all = "camelCase")]
2163pub struct ModelCallStartData {
2164 #[serde(skip_serializing_if = "Option::is_none")]
2166 pub model: Option<String>,
2167 #[doc(hidden)]
2169 #[serde(skip_serializing_if = "Option::is_none")]
2170 pub(crate) previous_response_id: Option<String>,
2171 pub turn_id: String,
2173}
2174
2175#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2177#[serde(rename_all = "camelCase")]
2178pub struct AbortData {
2179 pub reason: AbortReason,
2181}
2182
2183#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2185#[serde(rename_all = "camelCase")]
2186pub struct ToolUserRequestedData {
2187 #[serde(skip_serializing_if = "Option::is_none")]
2189 pub arguments: Option<serde_json::Value>,
2190 pub tool_call_id: String,
2192 pub tool_name: String,
2194}
2195
2196#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2198#[serde(rename_all = "camelCase")]
2199pub struct ToolExecutionStartShellToolInfo {
2200 pub has_write_file_redirection: bool,
2202 pub possible_paths: Vec<String>,
2204}
2205
2206#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2208#[serde(rename_all = "camelCase")]
2209pub struct ToolExecutionStartToolDescriptionMetaUI {
2210 #[serde(skip_serializing_if = "Option::is_none")]
2212 pub resource_uri: Option<String>,
2213 #[serde(skip_serializing_if = "Option::is_none")]
2215 pub visibility: Option<Vec<ToolExecutionStartToolDescriptionMetaUIVisibility>>,
2216}
2217
2218#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2220#[serde(rename_all = "camelCase")]
2221pub struct ToolExecutionStartToolDescriptionMeta {
2222 #[serde(skip_serializing_if = "Option::is_none")]
2224 pub ui: Option<ToolExecutionStartToolDescriptionMetaUI>,
2225}
2226
2227#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2229#[serde(rename_all = "camelCase")]
2230pub struct ToolExecutionStartToolDescription {
2231 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2233 pub meta: Option<ToolExecutionStartToolDescriptionMeta>,
2234 #[serde(skip_serializing_if = "Option::is_none")]
2236 pub description: Option<String>,
2237 pub name: String,
2239}
2240
2241#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2243#[serde(rename_all = "camelCase")]
2244pub struct ToolExecutionStartData {
2245 #[serde(skip_serializing_if = "Option::is_none")]
2247 pub arguments: Option<serde_json::Value>,
2248 #[serde(skip_serializing_if = "Option::is_none")]
2250 pub display_verbatim: Option<bool>,
2251 #[serde(skip_serializing_if = "Option::is_none")]
2253 pub mcp_server_name: Option<String>,
2254 #[serde(skip_serializing_if = "Option::is_none")]
2256 pub mcp_tool_name: Option<String>,
2257 #[serde(skip_serializing_if = "Option::is_none")]
2259 pub model: Option<String>,
2260 #[doc(hidden)]
2262 #[deprecated]
2263 #[serde(skip_serializing_if = "Option::is_none")]
2264 pub parent_tool_call_id: Option<String>,
2265 #[serde(skip_serializing_if = "Option::is_none")]
2266 pub rte: Option<bool>,
2267 #[serde(skip_serializing_if = "Option::is_none")]
2269 pub shell_tool_info: Option<ToolExecutionStartShellToolInfo>,
2270 pub tool_call_id: String,
2272 #[serde(skip_serializing_if = "Option::is_none")]
2274 pub tool_description: Option<ToolExecutionStartToolDescription>,
2275 pub tool_name: String,
2277 #[serde(skip_serializing_if = "Option::is_none")]
2279 pub turn_id: Option<String>,
2280}
2281
2282#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2284#[serde(rename_all = "camelCase")]
2285pub struct ToolExecutionPartialResultData {
2286 pub partial_output: String,
2288 pub tool_call_id: String,
2290}
2291
2292#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2294#[serde(rename_all = "camelCase")]
2295pub struct ToolExecutionProgressData {
2296 pub progress_message: String,
2298 pub tool_call_id: String,
2300}
2301
2302#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2304#[serde(rename_all = "camelCase")]
2305pub struct ToolExecutionCompleteError {
2306 #[serde(skip_serializing_if = "Option::is_none")]
2308 pub code: Option<String>,
2309 pub message: String,
2311}
2312
2313#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2322#[serde(rename_all = "camelCase")]
2323pub struct CitableSource {
2324 pub content: String,
2326 pub id: String,
2328 #[serde(skip_serializing_if = "Option::is_none")]
2330 pub path: Option<String>,
2331 #[serde(skip_serializing_if = "Option::is_none")]
2333 pub title: Option<String>,
2334 #[serde(skip_serializing_if = "Option::is_none")]
2336 pub url: Option<String>,
2337}
2338
2339#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2341#[serde(rename_all = "camelCase")]
2342pub struct ToolExecutionCompleteContentText {
2343 pub text: String,
2345 pub r#type: ToolExecutionCompleteContentTextType,
2347}
2348
2349#[doc(hidden)]
2351#[deprecated]
2352#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2353#[serde(rename_all = "camelCase")]
2354pub struct ToolExecutionCompleteContentTerminal {
2355 #[serde(skip_serializing_if = "Option::is_none")]
2357 pub cwd: Option<String>,
2358 #[serde(skip_serializing_if = "Option::is_none")]
2360 pub exit_code: Option<i64>,
2361 pub text: String,
2363 pub r#type: ToolExecutionCompleteContentTerminalType,
2365}
2366
2367#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2369#[serde(rename_all = "camelCase")]
2370pub struct ToolExecutionCompleteContentShellExit {
2371 #[serde(skip_serializing_if = "Option::is_none")]
2373 pub cwd: Option<String>,
2374 pub exit_code: i64,
2376 #[serde(skip_serializing_if = "Option::is_none")]
2378 pub output_preview: Option<String>,
2379 #[serde(skip_serializing_if = "Option::is_none")]
2381 pub output_truncated: Option<bool>,
2382 pub shell_id: String,
2384 pub r#type: ToolExecutionCompleteContentShellExitType,
2386}
2387
2388#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2390#[serde(rename_all = "camelCase")]
2391pub struct ToolExecutionCompleteContentImage {
2392 pub data: String,
2394 pub mime_type: String,
2396 pub r#type: ToolExecutionCompleteContentImageType,
2398}
2399
2400#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2402#[serde(rename_all = "camelCase")]
2403pub struct ToolExecutionCompleteContentAudio {
2404 pub data: String,
2406 pub mime_type: String,
2408 pub r#type: ToolExecutionCompleteContentAudioType,
2410}
2411
2412#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2414#[serde(rename_all = "camelCase")]
2415pub struct ToolExecutionCompleteContentResourceLinkIcon {
2416 #[serde(skip_serializing_if = "Option::is_none")]
2418 pub mime_type: Option<String>,
2419 #[serde(skip_serializing_if = "Option::is_none")]
2421 pub sizes: Option<Vec<String>>,
2422 pub src: String,
2424 #[serde(skip_serializing_if = "Option::is_none")]
2426 pub theme: Option<ToolExecutionCompleteContentResourceLinkIconTheme>,
2427}
2428
2429#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2431#[serde(rename_all = "camelCase")]
2432pub struct ToolExecutionCompleteContentResourceLink {
2433 #[serde(skip_serializing_if = "Option::is_none")]
2435 pub description: Option<String>,
2436 #[serde(skip_serializing_if = "Option::is_none")]
2438 pub icons: Option<Vec<ToolExecutionCompleteContentResourceLinkIcon>>,
2439 #[serde(skip_serializing_if = "Option::is_none")]
2441 pub mime_type: Option<String>,
2442 pub name: String,
2444 #[serde(skip_serializing_if = "Option::is_none")]
2446 pub size: Option<i64>,
2447 #[serde(skip_serializing_if = "Option::is_none")]
2449 pub title: Option<String>,
2450 pub r#type: ToolExecutionCompleteContentResourceLinkType,
2452 pub uri: String,
2454}
2455
2456#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2458#[serde(rename_all = "camelCase")]
2459pub struct EmbeddedTextResourceContents {
2460 #[serde(skip_serializing_if = "Option::is_none")]
2462 pub mime_type: Option<String>,
2463 pub text: String,
2465 pub uri: String,
2467}
2468
2469#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2471#[serde(rename_all = "camelCase")]
2472pub struct EmbeddedBlobResourceContents {
2473 pub blob: String,
2475 #[serde(skip_serializing_if = "Option::is_none")]
2477 pub mime_type: Option<String>,
2478 pub uri: String,
2480}
2481
2482#[derive(Debug, Clone, Serialize, Deserialize)]
2484#[serde(rename_all = "camelCase")]
2485pub struct ToolExecutionCompleteContentResource {
2486 pub resource: ToolExecutionCompleteContentResourceDetails,
2488 pub r#type: ToolExecutionCompleteContentResourceType,
2490}
2491
2492#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2494#[serde(rename_all = "camelCase")]
2495pub struct ToolExecutionCompleteUIResourceMetaUICsp {
2496 #[serde(skip_serializing_if = "Option::is_none")]
2497 pub base_uri_domains: Option<Vec<String>>,
2498 #[serde(skip_serializing_if = "Option::is_none")]
2499 pub connect_domains: Option<Vec<String>>,
2500 #[serde(skip_serializing_if = "Option::is_none")]
2501 pub frame_domains: Option<Vec<String>>,
2502 #[serde(skip_serializing_if = "Option::is_none")]
2503 pub resource_domains: Option<Vec<String>>,
2504}
2505
2506#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2508#[serde(rename_all = "camelCase")]
2509pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsCamera {}
2510
2511#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2513#[serde(rename_all = "camelCase")]
2514pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite {}
2515
2516#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2518#[serde(rename_all = "camelCase")]
2519pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation {}
2520
2521#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2523#[serde(rename_all = "camelCase")]
2524pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone {}
2525
2526#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2528#[serde(rename_all = "camelCase")]
2529pub struct ToolExecutionCompleteUIResourceMetaUIPermissions {
2530 #[serde(skip_serializing_if = "Option::is_none")]
2532 pub camera: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsCamera>,
2533 #[serde(skip_serializing_if = "Option::is_none")]
2535 pub clipboard_write: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite>,
2536 #[serde(skip_serializing_if = "Option::is_none")]
2538 pub geolocation: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation>,
2539 #[serde(skip_serializing_if = "Option::is_none")]
2541 pub microphone: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone>,
2542}
2543
2544#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2546#[serde(rename_all = "camelCase")]
2547pub struct ToolExecutionCompleteUIResourceMetaUI {
2548 #[serde(skip_serializing_if = "Option::is_none")]
2550 pub csp: Option<ToolExecutionCompleteUIResourceMetaUICsp>,
2551 #[serde(skip_serializing_if = "Option::is_none")]
2552 pub domain: Option<String>,
2553 #[serde(skip_serializing_if = "Option::is_none")]
2555 pub permissions: Option<ToolExecutionCompleteUIResourceMetaUIPermissions>,
2556 #[serde(skip_serializing_if = "Option::is_none")]
2557 pub prefers_border: Option<bool>,
2558}
2559
2560#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2562#[serde(rename_all = "camelCase")]
2563pub struct ToolExecutionCompleteUIResourceMeta {
2564 #[serde(skip_serializing_if = "Option::is_none")]
2566 pub ui: Option<ToolExecutionCompleteUIResourceMetaUI>,
2567}
2568
2569#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2571#[serde(rename_all = "camelCase")]
2572pub struct ToolExecutionCompleteUIResource {
2573 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2575 pub meta: Option<ToolExecutionCompleteUIResourceMeta>,
2576 #[serde(skip_serializing_if = "Option::is_none")]
2578 pub blob: Option<String>,
2579 pub mime_type: String,
2581 #[serde(skip_serializing_if = "Option::is_none")]
2583 pub text: Option<String>,
2584 pub uri: String,
2586}
2587
2588#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2590#[serde(rename_all = "camelCase")]
2591pub struct ToolExecutionCompleteResult {
2592 #[serde(skip_serializing_if = "Option::is_none")]
2601 pub binary_results_for_llm: Option<Vec<serde_json::Value>>,
2602 #[serde(skip_serializing_if = "Option::is_none")]
2611 pub citable_sources: Option<Vec<CitableSource>>,
2612 pub content: String,
2614 #[serde(skip_serializing_if = "Option::is_none")]
2616 pub contents: Option<Vec<ToolExecutionCompleteContent>>,
2617 #[serde(skip_serializing_if = "Option::is_none")]
2619 pub detailed_content: Option<String>,
2620 #[serde(skip_serializing_if = "Option::is_none")]
2629 pub mcp_meta: Option<serde_json::Value>,
2630 #[serde(skip_serializing_if = "Option::is_none")]
2632 pub structured_content: Option<serde_json::Value>,
2633 #[serde(skip_serializing_if = "Option::is_none")]
2635 pub ui_resource: Option<ToolExecutionCompleteUIResource>,
2636}
2637
2638#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2640#[serde(rename_all = "camelCase")]
2641pub struct ToolExecutionCompleteToolDescriptionMetaUI {
2642 #[serde(skip_serializing_if = "Option::is_none")]
2644 pub resource_uri: Option<String>,
2645 #[serde(skip_serializing_if = "Option::is_none")]
2647 pub visibility: Option<Vec<ToolExecutionCompleteToolDescriptionMetaUIVisibility>>,
2648}
2649
2650#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2652#[serde(rename_all = "camelCase")]
2653pub struct ToolExecutionCompleteToolDescriptionMeta {
2654 #[serde(skip_serializing_if = "Option::is_none")]
2656 pub ui: Option<ToolExecutionCompleteToolDescriptionMetaUI>,
2657}
2658
2659#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2661#[serde(rename_all = "camelCase")]
2662pub struct ToolExecutionCompleteToolDescription {
2663 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2665 pub meta: Option<ToolExecutionCompleteToolDescriptionMeta>,
2666 #[serde(skip_serializing_if = "Option::is_none")]
2668 pub description: Option<String>,
2669 pub name: String,
2671}
2672
2673#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2675#[serde(rename_all = "camelCase")]
2676pub struct ToolExecutionCompleteData {
2677 #[serde(skip_serializing_if = "Option::is_none")]
2679 pub error: Option<ToolExecutionCompleteError>,
2680 #[serde(skip_serializing_if = "Option::is_none")]
2682 pub interaction_id: Option<String>,
2683 #[serde(skip_serializing_if = "Option::is_none")]
2685 pub is_user_requested: Option<bool>,
2686 #[serde(skip_serializing_if = "Option::is_none")]
2695 pub mcp_meta: Option<serde_json::Value>,
2696 #[serde(skip_serializing_if = "Option::is_none")]
2698 pub model: Option<String>,
2699 #[doc(hidden)]
2701 #[deprecated]
2702 #[serde(skip_serializing_if = "Option::is_none")]
2703 pub parent_tool_call_id: Option<String>,
2704 #[serde(skip_serializing_if = "Option::is_none")]
2706 pub result: Option<ToolExecutionCompleteResult>,
2707 #[serde(skip_serializing_if = "Option::is_none")]
2708 pub rte: Option<bool>,
2709 #[serde(skip_serializing_if = "Option::is_none")]
2711 pub sandboxed: Option<bool>,
2712 pub success: bool,
2714 pub tool_call_id: String,
2716 #[serde(skip_serializing_if = "Option::is_none")]
2718 pub tool_description: Option<ToolExecutionCompleteToolDescription>,
2719 #[serde(skip_serializing_if = "Option::is_none")]
2721 pub tool_telemetry: Option<HashMap<String, serde_json::Value>>,
2722 #[serde(skip_serializing_if = "Option::is_none")]
2724 pub turn_id: Option<String>,
2725}
2726
2727#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2729#[serde(rename_all = "camelCase")]
2730pub struct ToolSearchActivatedData {
2731 pub strategy: String,
2733 pub tool_names: Vec<String>,
2735}
2736
2737#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2739#[serde(rename_all = "camelCase")]
2740pub struct SkillInvokedData {
2741 #[serde(skip_serializing_if = "Option::is_none")]
2743 pub allowed_tools: Option<Vec<String>>,
2744 pub content: String,
2746 #[serde(skip_serializing_if = "Option::is_none")]
2748 pub description: Option<String>,
2749 #[serde(skip_serializing_if = "Option::is_none")]
2751 pub model: Option<String>,
2752 pub name: String,
2754 pub path: String,
2756 #[serde(skip_serializing_if = "Option::is_none")]
2758 pub plugin_name: Option<String>,
2759 #[serde(skip_serializing_if = "Option::is_none")]
2761 pub plugin_version: Option<String>,
2762 #[serde(skip_serializing_if = "Option::is_none")]
2764 pub source: Option<String>,
2765 #[serde(skip_serializing_if = "Option::is_none")]
2767 pub trigger: Option<SkillInvokedTrigger>,
2768}
2769
2770#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2772#[serde(rename_all = "camelCase")]
2773pub struct SubagentStartedData {
2774 pub agent_description: String,
2776 pub agent_display_name: String,
2778 pub agent_name: String,
2780 #[serde(skip_serializing_if = "Option::is_none")]
2782 pub model: Option<String>,
2783 pub tool_call_id: String,
2785}
2786
2787#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2789#[serde(rename_all = "camelCase")]
2790pub struct SubagentCompletedData {
2791 pub agent_display_name: String,
2793 pub agent_name: String,
2795 #[serde(skip_serializing_if = "Option::is_none")]
2797 pub duration_ms: Option<i64>,
2798 #[serde(skip_serializing_if = "Option::is_none")]
2800 pub model: Option<String>,
2801 pub tool_call_id: String,
2803 #[serde(skip_serializing_if = "Option::is_none")]
2805 pub total_tokens: Option<i64>,
2806 #[serde(skip_serializing_if = "Option::is_none")]
2808 pub total_tool_calls: Option<i64>,
2809}
2810
2811#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2813#[serde(rename_all = "camelCase")]
2814pub struct SubagentFailedData {
2815 pub agent_display_name: String,
2817 pub agent_name: String,
2819 #[serde(skip_serializing_if = "Option::is_none")]
2821 pub duration_ms: Option<i64>,
2822 pub error: String,
2824 #[serde(skip_serializing_if = "Option::is_none")]
2826 pub model: Option<String>,
2827 pub tool_call_id: String,
2829 #[serde(skip_serializing_if = "Option::is_none")]
2831 pub total_tokens: Option<i64>,
2832 #[serde(skip_serializing_if = "Option::is_none")]
2834 pub total_tool_calls: Option<i64>,
2835}
2836
2837#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2839#[serde(rename_all = "camelCase")]
2840pub struct SubagentSelectedData {
2841 pub agent_display_name: String,
2843 pub agent_name: String,
2845 pub tools: Option<Vec<String>>,
2847}
2848
2849#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2851#[serde(rename_all = "camelCase")]
2852pub struct SubagentDeselectedData {}
2853
2854#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2856#[serde(rename_all = "camelCase")]
2857pub struct HookStartData {
2858 pub hook_invocation_id: String,
2860 pub hook_type: String,
2862 #[serde(skip_serializing_if = "Option::is_none")]
2864 pub input: Option<serde_json::Value>,
2865}
2866
2867#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2869#[serde(rename_all = "camelCase")]
2870pub struct HookEndError {
2871 pub message: String,
2873 #[serde(skip_serializing_if = "Option::is_none")]
2875 pub source: Option<String>,
2876 #[serde(skip_serializing_if = "Option::is_none")]
2878 pub stack: Option<String>,
2879}
2880
2881#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2883#[serde(rename_all = "camelCase")]
2884pub struct HookEndData {
2885 #[serde(skip_serializing_if = "Option::is_none")]
2887 pub error: Option<HookEndError>,
2888 pub hook_invocation_id: String,
2890 pub hook_type: String,
2892 #[serde(skip_serializing_if = "Option::is_none")]
2894 pub output: Option<serde_json::Value>,
2895 pub success: bool,
2897}
2898
2899#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2901#[serde(rename_all = "camelCase")]
2902pub struct HookProgressData {
2903 pub message: String,
2905 #[serde(skip_serializing_if = "Option::is_none")]
2907 pub temporary: Option<bool>,
2908}
2909
2910#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2912#[serde(rename_all = "camelCase")]
2913pub struct SessionBinaryAssetData {
2914 pub asset_id: String,
2916 pub byte_length: i64,
2918 pub data: String,
2920 #[serde(skip_serializing_if = "Option::is_none")]
2922 pub description: Option<String>,
2923 #[serde(skip_serializing_if = "Option::is_none")]
2925 pub metadata: Option<HashMap<String, serde_json::Value>>,
2926 pub mime_type: String,
2928 pub r#type: BinaryAssetType,
2930}
2931
2932#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2934#[serde(rename_all = "camelCase")]
2935pub struct SystemMessageMetadata {
2936 #[serde(skip_serializing_if = "Option::is_none")]
2938 pub prompt_version: Option<String>,
2939 #[serde(skip_serializing_if = "Option::is_none")]
2941 pub variables: Option<HashMap<String, serde_json::Value>>,
2942}
2943
2944#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2946#[serde(rename_all = "camelCase")]
2947pub struct SystemMessageData {
2948 pub content: String,
2950 #[serde(skip_serializing_if = "Option::is_none")]
2952 pub interaction_id: Option<String>,
2953 #[serde(skip_serializing_if = "Option::is_none")]
2955 pub metadata: Option<SystemMessageMetadata>,
2956 #[serde(skip_serializing_if = "Option::is_none")]
2958 pub name: Option<String>,
2959 pub role: SystemMessageRole,
2961}
2962
2963#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2965#[serde(rename_all = "camelCase")]
2966pub struct SystemNotificationData {
2967 pub content: String,
2969 pub kind: serde_json::Value,
2971}
2972
2973#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2975#[serde(rename_all = "camelCase")]
2976pub struct PermissionRequestShellCommand {
2977 pub identifier: String,
2979 pub read_only: bool,
2981}
2982
2983#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2985#[serde(rename_all = "camelCase")]
2986pub struct PermissionRequestShellCommandSegment {
2987 pub full_command_text: String,
2989 pub identifier: String,
2991}
2992
2993#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2995#[serde(rename_all = "camelCase")]
2996pub struct PermissionRequestShellPossibleUrl {
2997 pub url: String,
2999}
3000
3001#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3003#[serde(rename_all = "camelCase")]
3004pub struct PermissionRequestShell {
3005 pub can_offer_session_approval: bool,
3007 pub commands: Vec<PermissionRequestShellCommand>,
3009 #[serde(skip_serializing_if = "Option::is_none")]
3011 pub command_segments: Option<Vec<PermissionRequestShellCommandSegment>>,
3012 pub full_command_text: String,
3014 pub has_write_file_redirection: bool,
3016 pub intention: String,
3018 pub kind: PermissionRequestShellKind,
3020 #[serde(skip_serializing_if = "Option::is_none")]
3022 pub managed_approval_required: Option<bool>,
3023 pub possible_paths: Vec<String>,
3025 pub possible_urls: Vec<PermissionRequestShellPossibleUrl>,
3027 #[serde(skip_serializing_if = "Option::is_none")]
3029 pub request_sandbox_bypass: Option<bool>,
3030 #[serde(skip_serializing_if = "Option::is_none")]
3032 pub request_sandbox_bypass_reason: Option<String>,
3033 #[serde(skip_serializing_if = "Option::is_none")]
3035 pub tool_call_id: Option<String>,
3036 #[serde(skip_serializing_if = "Option::is_none")]
3038 pub warning: Option<String>,
3039}
3040
3041#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3043#[serde(rename_all = "camelCase")]
3044pub struct PermissionRequestWrite {
3045 pub can_offer_session_approval: bool,
3047 pub diff: String,
3049 pub file_name: String,
3051 pub intention: String,
3053 pub kind: PermissionRequestWriteKind,
3055 #[serde(skip_serializing_if = "Option::is_none")]
3057 pub managed_approval_required: Option<bool>,
3058 #[serde(skip_serializing_if = "Option::is_none")]
3060 pub new_file_contents: Option<String>,
3061 #[serde(skip_serializing_if = "Option::is_none")]
3063 pub request_sandbox_bypass: Option<bool>,
3064 #[serde(skip_serializing_if = "Option::is_none")]
3066 pub request_sandbox_bypass_reason: 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 PermissionRequestRead {
3076 pub intention: String,
3078 pub kind: PermissionRequestReadKind,
3080 #[serde(skip_serializing_if = "Option::is_none")]
3082 pub managed_approval_required: Option<bool>,
3083 pub path: String,
3085 #[serde(skip_serializing_if = "Option::is_none")]
3087 pub request_sandbox_bypass: Option<bool>,
3088 #[serde(skip_serializing_if = "Option::is_none")]
3090 pub request_sandbox_bypass_reason: Option<String>,
3091 #[serde(skip_serializing_if = "Option::is_none")]
3093 pub tool_call_id: Option<String>,
3094}
3095
3096#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3098#[serde(rename_all = "camelCase")]
3099pub struct PermissionRequestMcp {
3100 #[serde(skip_serializing_if = "Option::is_none")]
3102 pub args: Option<serde_json::Value>,
3103 pub kind: PermissionRequestMcpKind,
3105 pub read_only: bool,
3107 pub server_name: String,
3109 #[serde(skip_serializing_if = "Option::is_none")]
3111 pub tool_call_id: Option<String>,
3112 pub tool_name: String,
3114 pub tool_title: String,
3116}
3117
3118#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3120#[serde(rename_all = "camelCase")]
3121pub struct PermissionRequestUrl {
3122 pub intention: String,
3124 pub kind: PermissionRequestUrlKind,
3126 #[serde(skip_serializing_if = "Option::is_none")]
3128 pub managed_approval_required: Option<bool>,
3129 #[serde(skip_serializing_if = "Option::is_none")]
3131 pub redirected_from: Option<String>,
3132 #[serde(skip_serializing_if = "Option::is_none")]
3134 pub request_sandbox_bypass: Option<bool>,
3135 #[serde(skip_serializing_if = "Option::is_none")]
3137 pub request_sandbox_bypass_reason: Option<String>,
3138 #[serde(skip_serializing_if = "Option::is_none")]
3140 pub tool_call_id: Option<String>,
3141 pub url: String,
3143}
3144
3145#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3147#[serde(rename_all = "camelCase")]
3148pub struct PermissionRequestMemory {
3149 #[serde(skip_serializing_if = "Option::is_none")]
3151 pub action: Option<PermissionRequestMemoryAction>,
3152 #[serde(skip_serializing_if = "Option::is_none")]
3154 pub citations: Option<String>,
3155 #[serde(skip_serializing_if = "Option::is_none")]
3157 pub direction: Option<PermissionRequestMemoryDirection>,
3158 pub fact: String,
3160 pub kind: PermissionRequestMemoryKind,
3162 #[serde(skip_serializing_if = "Option::is_none")]
3164 pub reason: Option<String>,
3165 #[serde(skip_serializing_if = "Option::is_none")]
3167 pub subject: Option<String>,
3168 #[serde(skip_serializing_if = "Option::is_none")]
3170 pub tool_call_id: Option<String>,
3171}
3172
3173#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3175#[serde(rename_all = "camelCase")]
3176pub struct PermissionRequestCustomTool {
3177 #[serde(skip_serializing_if = "Option::is_none")]
3179 pub args: Option<serde_json::Value>,
3180 pub kind: PermissionRequestCustomToolKind,
3182 #[serde(skip_serializing_if = "Option::is_none")]
3184 pub tool_call_id: Option<String>,
3185 pub tool_description: String,
3187 pub tool_name: String,
3189}
3190
3191#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3193#[serde(rename_all = "camelCase")]
3194pub struct PermissionRequestHook {
3195 #[serde(skip_serializing_if = "Option::is_none")]
3197 pub hook_message: Option<String>,
3198 pub kind: PermissionRequestHookKind,
3200 #[serde(skip_serializing_if = "Option::is_none")]
3202 pub tool_args: Option<serde_json::Value>,
3203 #[serde(skip_serializing_if = "Option::is_none")]
3205 pub tool_call_id: Option<String>,
3206 pub tool_name: String,
3208}
3209
3210#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3212#[serde(rename_all = "camelCase")]
3213pub struct PermissionRequestExtensionManagement {
3214 #[serde(skip_serializing_if = "Option::is_none")]
3216 pub extension_name: Option<String>,
3217 pub kind: PermissionRequestExtensionManagementKind,
3219 pub operation: String,
3221 #[serde(skip_serializing_if = "Option::is_none")]
3223 pub tool_call_id: Option<String>,
3224}
3225
3226#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3228#[serde(rename_all = "camelCase")]
3229pub struct PermissionRequestExtensionPermissionAccess {
3230 pub capabilities: Vec<String>,
3232 pub extension_name: String,
3234 pub kind: PermissionRequestExtensionPermissionAccessKind,
3236 #[serde(skip_serializing_if = "Option::is_none")]
3238 pub tool_call_id: Option<String>,
3239}
3240
3241#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3250#[serde(rename_all = "camelCase")]
3251pub struct PermissionAutoApproval {
3252 #[serde(skip_serializing_if = "Option::is_none")]
3254 pub failure_reason: Option<AutoApprovalJudgeFailureReason>,
3255 #[serde(skip_serializing_if = "Option::is_none")]
3257 pub model: Option<String>,
3258 #[serde(skip_serializing_if = "Option::is_none")]
3260 pub reason: Option<String>,
3261 pub recommendation: AutoApprovalRecommendation,
3263}
3264
3265#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3267#[serde(rename_all = "camelCase")]
3268pub struct PermissionPromptRequestCommands {
3269 #[serde(skip_serializing_if = "Option::is_none")]
3278 pub auto_approval: Option<PermissionAutoApproval>,
3279 pub can_offer_session_approval: bool,
3281 pub command_identifiers: Vec<String>,
3283 pub full_command_text: String,
3285 pub intention: String,
3287 pub kind: PermissionPromptRequestCommandsKind,
3289 #[serde(skip_serializing_if = "Option::is_none")]
3291 pub managed_approval_required: Option<bool>,
3292 #[serde(skip_serializing_if = "Option::is_none")]
3294 pub tool_call_id: Option<String>,
3295 #[serde(skip_serializing_if = "Option::is_none")]
3297 pub warning: Option<String>,
3298}
3299
3300#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3302#[serde(rename_all = "camelCase")]
3303pub struct PermissionPromptRequestWrite {
3304 #[serde(skip_serializing_if = "Option::is_none")]
3313 pub auto_approval: Option<PermissionAutoApproval>,
3314 pub can_offer_session_approval: bool,
3316 pub diff: String,
3318 pub file_name: String,
3320 pub intention: String,
3322 pub kind: PermissionPromptRequestWriteKind,
3324 #[serde(skip_serializing_if = "Option::is_none")]
3326 pub managed_approval_required: Option<bool>,
3327 #[serde(skip_serializing_if = "Option::is_none")]
3329 pub new_file_contents: Option<String>,
3330 #[serde(skip_serializing_if = "Option::is_none")]
3332 pub tool_call_id: Option<String>,
3333}
3334
3335#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3337#[serde(rename_all = "camelCase")]
3338pub struct PermissionPromptRequestRead {
3339 #[serde(skip_serializing_if = "Option::is_none")]
3348 pub auto_approval: Option<PermissionAutoApproval>,
3349 pub intention: String,
3351 pub kind: PermissionPromptRequestReadKind,
3353 #[serde(skip_serializing_if = "Option::is_none")]
3355 pub managed_approval_required: Option<bool>,
3356 pub path: String,
3358 #[serde(skip_serializing_if = "Option::is_none")]
3360 pub tool_call_id: Option<String>,
3361}
3362
3363#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3365#[serde(rename_all = "camelCase")]
3366pub struct PermissionPromptRequestMcp {
3367 #[serde(skip_serializing_if = "Option::is_none")]
3369 pub args: Option<serde_json::Value>,
3370 #[serde(skip_serializing_if = "Option::is_none")]
3379 pub auto_approval: Option<PermissionAutoApproval>,
3380 pub kind: PermissionPromptRequestMcpKind,
3382 pub server_name: String,
3384 #[serde(skip_serializing_if = "Option::is_none")]
3386 pub tool_call_id: Option<String>,
3387 pub tool_name: String,
3389 pub tool_title: String,
3391}
3392
3393#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3395#[serde(rename_all = "camelCase")]
3396pub struct PermissionPromptRequestUrl {
3397 #[serde(skip_serializing_if = "Option::is_none")]
3406 pub auto_approval: Option<PermissionAutoApproval>,
3407 pub intention: String,
3409 pub kind: PermissionPromptRequestUrlKind,
3411 #[serde(skip_serializing_if = "Option::is_none")]
3413 pub managed_approval_required: Option<bool>,
3414 #[serde(skip_serializing_if = "Option::is_none")]
3416 pub redirected_from: Option<String>,
3417 #[serde(skip_serializing_if = "Option::is_none")]
3419 pub request_sandbox_bypass: Option<bool>,
3420 #[serde(skip_serializing_if = "Option::is_none")]
3422 pub request_sandbox_bypass_reason: Option<String>,
3423 #[serde(skip_serializing_if = "Option::is_none")]
3425 pub tool_call_id: Option<String>,
3426 pub url: String,
3428}
3429
3430#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3432#[serde(rename_all = "camelCase")]
3433pub struct PermissionPromptRequestMemory {
3434 #[serde(skip_serializing_if = "Option::is_none")]
3436 pub action: Option<PermissionRequestMemoryAction>,
3437 #[serde(skip_serializing_if = "Option::is_none")]
3446 pub auto_approval: Option<PermissionAutoApproval>,
3447 #[serde(skip_serializing_if = "Option::is_none")]
3449 pub citations: Option<String>,
3450 #[serde(skip_serializing_if = "Option::is_none")]
3452 pub direction: Option<PermissionRequestMemoryDirection>,
3453 pub fact: String,
3455 pub kind: PermissionPromptRequestMemoryKind,
3457 #[serde(skip_serializing_if = "Option::is_none")]
3459 pub reason: Option<String>,
3460 #[serde(skip_serializing_if = "Option::is_none")]
3462 pub subject: Option<String>,
3463 #[serde(skip_serializing_if = "Option::is_none")]
3465 pub tool_call_id: Option<String>,
3466}
3467
3468#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3470#[serde(rename_all = "camelCase")]
3471pub struct PermissionPromptRequestCustomTool {
3472 #[serde(skip_serializing_if = "Option::is_none")]
3474 pub args: Option<serde_json::Value>,
3475 #[serde(skip_serializing_if = "Option::is_none")]
3484 pub auto_approval: Option<PermissionAutoApproval>,
3485 pub kind: PermissionPromptRequestCustomToolKind,
3487 #[serde(skip_serializing_if = "Option::is_none")]
3489 pub tool_call_id: Option<String>,
3490 pub tool_description: String,
3492 pub tool_name: String,
3494}
3495
3496#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3498#[serde(rename_all = "camelCase")]
3499pub struct PermissionPromptRequestPath {
3500 pub access_kind: PermissionPromptRequestPathAccessKind,
3502 #[serde(skip_serializing_if = "Option::is_none")]
3511 pub auto_approval: Option<PermissionAutoApproval>,
3512 pub kind: PermissionPromptRequestPathKind,
3514 pub paths: Vec<String>,
3516 #[serde(skip_serializing_if = "Option::is_none")]
3518 pub tool_call_id: Option<String>,
3519}
3520
3521#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3523#[serde(rename_all = "camelCase")]
3524pub struct PermissionPromptRequestHook {
3525 #[serde(skip_serializing_if = "Option::is_none")]
3534 pub auto_approval: Option<PermissionAutoApproval>,
3535 #[serde(skip_serializing_if = "Option::is_none")]
3537 pub hook_message: Option<String>,
3538 pub kind: PermissionPromptRequestHookKind,
3540 #[serde(skip_serializing_if = "Option::is_none")]
3542 pub tool_args: Option<serde_json::Value>,
3543 #[serde(skip_serializing_if = "Option::is_none")]
3545 pub tool_call_id: Option<String>,
3546 pub tool_name: String,
3548}
3549
3550#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3552#[serde(rename_all = "camelCase")]
3553pub struct PermissionPromptRequestExtensionManagement {
3554 #[serde(skip_serializing_if = "Option::is_none")]
3563 pub auto_approval: Option<PermissionAutoApproval>,
3564 #[serde(skip_serializing_if = "Option::is_none")]
3566 pub extension_name: Option<String>,
3567 pub kind: PermissionPromptRequestExtensionManagementKind,
3569 pub operation: String,
3571 #[serde(skip_serializing_if = "Option::is_none")]
3573 pub tool_call_id: Option<String>,
3574}
3575
3576#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3578#[serde(rename_all = "camelCase")]
3579pub struct PermissionPromptRequestExtensionPermissionAccess {
3580 #[serde(skip_serializing_if = "Option::is_none")]
3589 pub auto_approval: Option<PermissionAutoApproval>,
3590 pub capabilities: Vec<String>,
3592 pub extension_name: String,
3594 pub kind: PermissionPromptRequestExtensionPermissionAccessKind,
3596 #[serde(skip_serializing_if = "Option::is_none")]
3598 pub tool_call_id: Option<String>,
3599}
3600
3601#[derive(Debug, Clone, Serialize, Deserialize)]
3603#[serde(rename_all = "camelCase")]
3604pub struct PermissionRequestedData {
3605 pub permission_request: PermissionRequest,
3607 #[serde(skip_serializing_if = "Option::is_none")]
3609 pub prompt_request: Option<PermissionPromptRequest>,
3610 pub request_id: RequestId,
3612 #[serde(skip_serializing_if = "Option::is_none")]
3614 pub resolved_by_hook: Option<bool>,
3615 #[serde(skip_serializing_if = "Option::is_none")]
3617 pub risk_assessment: Option<serde_json::Value>,
3618}
3619
3620#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3622#[serde(rename_all = "camelCase")]
3623pub struct PermissionApproved {
3624 pub kind: PermissionApprovedKind,
3626}
3627
3628#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3630#[serde(rename_all = "camelCase")]
3631pub struct UserToolSessionApprovalCommands {
3632 pub command_identifiers: Vec<String>,
3634 pub kind: UserToolSessionApprovalCommandsKind,
3636}
3637
3638#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3640#[serde(rename_all = "camelCase")]
3641pub struct UserToolSessionApprovalRead {
3642 pub kind: UserToolSessionApprovalReadKind,
3644}
3645
3646#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3648#[serde(rename_all = "camelCase")]
3649pub struct UserToolSessionApprovalWrite {
3650 pub kind: UserToolSessionApprovalWriteKind,
3652}
3653
3654#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3656#[serde(rename_all = "camelCase")]
3657pub struct UserToolSessionApprovalMcp {
3658 pub kind: UserToolSessionApprovalMcpKind,
3660 pub server_name: String,
3662 pub tool_name: Option<String>,
3664}
3665
3666#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3668#[serde(rename_all = "camelCase")]
3669pub struct UserToolSessionApprovalMemory {
3670 pub kind: UserToolSessionApprovalMemoryKind,
3672}
3673
3674#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3676#[serde(rename_all = "camelCase")]
3677pub struct UserToolSessionApprovalCustomTool {
3678 pub kind: UserToolSessionApprovalCustomToolKind,
3680 pub tool_name: String,
3682}
3683
3684#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3686#[serde(rename_all = "camelCase")]
3687pub struct UserToolSessionApprovalExtensionManagement {
3688 pub kind: UserToolSessionApprovalExtensionManagementKind,
3690 #[serde(skip_serializing_if = "Option::is_none")]
3692 pub operation: Option<String>,
3693}
3694
3695#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3697#[serde(rename_all = "camelCase")]
3698pub struct UserToolSessionApprovalExtensionPermissionAccess {
3699 pub extension_name: String,
3701 pub kind: UserToolSessionApprovalExtensionPermissionAccessKind,
3703}
3704
3705#[derive(Debug, Clone, Serialize, Deserialize)]
3707#[serde(rename_all = "camelCase")]
3708pub struct PermissionApprovedForSession {
3709 pub approval: UserToolSessionApproval,
3711 pub kind: PermissionApprovedForSessionKind,
3713}
3714
3715#[derive(Debug, Clone, Serialize, Deserialize)]
3717#[serde(rename_all = "camelCase")]
3718pub struct PermissionApprovedForLocation {
3719 pub approval: UserToolSessionApproval,
3721 pub kind: PermissionApprovedForLocationKind,
3723 pub location_key: String,
3725}
3726
3727#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3729#[serde(rename_all = "camelCase")]
3730pub struct PermissionCancelled {
3731 pub kind: PermissionCancelledKind,
3733 #[serde(skip_serializing_if = "Option::is_none")]
3735 pub reason: Option<String>,
3736}
3737
3738#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3740#[serde(rename_all = "camelCase")]
3741pub struct PermissionRule {
3742 pub argument: Option<String>,
3744 pub kind: String,
3746}
3747
3748#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3750#[serde(rename_all = "camelCase")]
3751pub struct PermissionDeniedByRules {
3752 pub kind: PermissionDeniedByRulesKind,
3754 pub rules: Vec<PermissionRule>,
3756}
3757
3758#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3760#[serde(rename_all = "camelCase")]
3761pub struct PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser {
3762 pub kind: PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUserKind,
3764}
3765
3766#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3768#[serde(rename_all = "camelCase")]
3769pub struct PermissionDeniedInteractivelyByUser {
3770 #[serde(skip_serializing_if = "Option::is_none")]
3772 pub feedback: Option<String>,
3773 #[serde(skip_serializing_if = "Option::is_none")]
3775 pub force_reject: Option<bool>,
3776 pub kind: PermissionDeniedInteractivelyByUserKind,
3778}
3779
3780#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3782#[serde(rename_all = "camelCase")]
3783pub struct PermissionDeniedByContentExclusionPolicy {
3784 pub kind: PermissionDeniedByContentExclusionPolicyKind,
3786 pub message: String,
3788 pub path: String,
3790}
3791
3792#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3794#[serde(rename_all = "camelCase")]
3795pub struct PermissionDeniedByPermissionRequestHook {
3796 #[serde(skip_serializing_if = "Option::is_none")]
3798 pub interrupt: Option<bool>,
3799 pub kind: PermissionDeniedByPermissionRequestHookKind,
3801 #[serde(skip_serializing_if = "Option::is_none")]
3803 pub message: Option<String>,
3804}
3805
3806#[derive(Debug, Clone, Serialize, Deserialize)]
3808#[serde(rename_all = "camelCase")]
3809pub struct PermissionCompletedData {
3810 pub request_id: RequestId,
3812 pub result: PermissionResult,
3814 #[serde(skip_serializing_if = "Option::is_none")]
3816 pub tool_call_id: Option<String>,
3817}
3818
3819#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3821#[serde(rename_all = "camelCase")]
3822pub struct UserInputRequestedData {
3823 #[serde(skip_serializing_if = "Option::is_none")]
3825 pub allow_freeform: Option<bool>,
3826 #[serde(skip_serializing_if = "Option::is_none")]
3828 pub choices: Option<Vec<String>>,
3829 pub question: String,
3831 pub request_id: RequestId,
3833 #[serde(skip_serializing_if = "Option::is_none")]
3835 pub tool_call_id: Option<String>,
3836}
3837
3838#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3840#[serde(rename_all = "camelCase")]
3841pub struct UserInputCompletedData {
3842 #[serde(skip_serializing_if = "Option::is_none")]
3844 pub answer: Option<String>,
3845 pub request_id: RequestId,
3847 #[serde(skip_serializing_if = "Option::is_none")]
3849 pub was_freeform: Option<bool>,
3850}
3851
3852#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3854#[serde(rename_all = "camelCase")]
3855pub struct ElicitationRequestedSchema {
3856 pub properties: HashMap<String, serde_json::Value>,
3858 #[serde(skip_serializing_if = "Option::is_none")]
3860 pub required: Option<Vec<String>>,
3861 pub r#type: ElicitationRequestedSchemaType,
3863}
3864
3865#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3867#[serde(rename_all = "camelCase")]
3868pub struct ElicitationRequestedData {
3869 #[serde(skip_serializing_if = "Option::is_none")]
3871 pub elicitation_source: Option<String>,
3872 pub message: String,
3874 #[serde(skip_serializing_if = "Option::is_none")]
3876 pub mode: Option<ElicitationRequestedMode>,
3877 #[serde(skip_serializing_if = "Option::is_none")]
3879 pub requested_schema: Option<ElicitationRequestedSchema>,
3880 pub request_id: RequestId,
3882 #[serde(skip_serializing_if = "Option::is_none")]
3884 pub tool_call_id: Option<String>,
3885 #[serde(skip_serializing_if = "Option::is_none")]
3887 pub url: Option<String>,
3888}
3889
3890#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3892#[serde(rename_all = "camelCase")]
3893pub struct ElicitationCompletedData {
3894 #[serde(skip_serializing_if = "Option::is_none")]
3896 pub action: Option<ElicitationCompletedAction>,
3897 #[serde(skip_serializing_if = "Option::is_none")]
3899 pub content: Option<HashMap<String, serde_json::Value>>,
3900 pub request_id: RequestId,
3902}
3903
3904#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3906#[serde(rename_all = "camelCase")]
3907pub struct SamplingRequestedData {
3908 pub mcp_request_id: serde_json::Value,
3910 pub request_id: RequestId,
3912 pub server_name: String,
3914}
3915
3916#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3918#[serde(rename_all = "camelCase")]
3919pub struct SamplingCompletedData {
3920 pub request_id: RequestId,
3922}
3923
3924#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3926#[serde(rename_all = "camelCase")]
3927pub struct HeaderEntry {
3928 pub name: String,
3930 pub value: String,
3932}
3933
3934#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3936#[serde(rename_all = "camelCase")]
3937pub struct McpOauthHttpResponse {
3938 #[serde(skip_serializing_if = "Option::is_none")]
3940 pub body: Option<String>,
3941 pub headers: Vec<HeaderEntry>,
3943 pub status_code: i32,
3945}
3946
3947#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3949#[serde(rename_all = "camelCase")]
3950pub struct McpOauthRequiredStaticClientConfig {
3951 pub client_id: String,
3953 #[serde(skip_serializing_if = "Option::is_none")]
3955 pub client_secret: Option<String>,
3956 #[serde(skip_serializing_if = "Option::is_none")]
3958 pub grant_type: Option<McpOauthRequiredStaticClientConfigGrantType>,
3959 #[serde(skip_serializing_if = "Option::is_none")]
3961 pub public_client: Option<bool>,
3962}
3963
3964#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3966#[serde(rename_all = "camelCase")]
3967pub struct McpOauthWWWAuthenticateParams {
3968 #[serde(skip_serializing_if = "Option::is_none")]
3970 pub error: Option<String>,
3971 #[serde(skip_serializing_if = "Option::is_none")]
3973 pub resource_metadata_url: Option<String>,
3974 #[serde(skip_serializing_if = "Option::is_none")]
3976 pub scope: Option<String>,
3977}
3978
3979#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3981#[serde(rename_all = "camelCase")]
3982pub struct McpOauthRequiredData {
3983 #[serde(skip_serializing_if = "Option::is_none")]
3985 pub http_response: Option<McpOauthHttpResponse>,
3986 pub reason: McpOauthRequestReason,
3988 pub request_id: RequestId,
3990 #[serde(skip_serializing_if = "Option::is_none")]
3992 pub resource_metadata: Option<String>,
3993 pub server_name: String,
3995 pub server_url: String,
3997 #[serde(skip_serializing_if = "Option::is_none")]
3999 pub static_client_config: Option<McpOauthRequiredStaticClientConfig>,
4000 #[serde(skip_serializing_if = "Option::is_none")]
4002 pub www_authenticate_params: Option<McpOauthWWWAuthenticateParams>,
4003}
4004
4005#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4007#[serde(rename_all = "camelCase")]
4008pub struct McpOauthCompletedData {
4009 pub outcome: McpOauthCompletionOutcome,
4011 pub request_id: RequestId,
4013}
4014
4015#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4017#[serde(rename_all = "camelCase")]
4018pub struct McpHeadersRefreshRequiredData {
4019 pub reason: McpHeadersRefreshRequiredReason,
4021 pub request_id: RequestId,
4023 pub server_name: String,
4025 pub server_url: String,
4027}
4028
4029#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4031#[serde(rename_all = "camelCase")]
4032pub struct McpHeadersRefreshCompletedData {
4033 pub outcome: McpHeadersRefreshCompletedOutcome,
4035 pub request_id: RequestId,
4037}
4038
4039#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4041#[serde(rename_all = "camelCase")]
4042pub struct SessionCustomNotificationData {
4043 pub name: String,
4045 pub payload: serde_json::Value,
4047 pub source: String,
4049 #[serde(skip_serializing_if = "Option::is_none")]
4051 pub subject: Option<HashMap<String, String>>,
4052 #[serde(skip_serializing_if = "Option::is_none")]
4054 pub version: Option<i64>,
4055}
4056
4057#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4059#[serde(rename_all = "camelCase")]
4060pub struct ExternalToolRequestedData {
4061 #[serde(skip_serializing_if = "Option::is_none")]
4063 pub arguments: Option<serde_json::Value>,
4064 pub request_id: RequestId,
4066 pub session_id: SessionId,
4068 pub tool_call_id: String,
4070 pub tool_name: String,
4072 #[serde(skip_serializing_if = "Option::is_none")]
4074 pub traceparent: Option<String>,
4075 #[serde(skip_serializing_if = "Option::is_none")]
4077 pub tracestate: Option<String>,
4078 #[serde(skip_serializing_if = "Option::is_none")]
4080 pub working_directory: Option<String>,
4081}
4082
4083#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4085#[serde(rename_all = "camelCase")]
4086pub struct ExternalToolCompletedData {
4087 pub request_id: RequestId,
4089}
4090
4091#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4093#[serde(rename_all = "camelCase")]
4094pub struct CommandQueuedData {
4095 pub command: String,
4097 pub request_id: RequestId,
4099}
4100
4101#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4103#[serde(rename_all = "camelCase")]
4104pub struct CommandExecuteData {
4105 pub args: String,
4107 pub command: String,
4109 pub command_name: String,
4111 pub request_id: RequestId,
4113}
4114
4115#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4117#[serde(rename_all = "camelCase")]
4118pub struct CommandCompletedData {
4119 pub request_id: RequestId,
4121}
4122
4123#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4125#[serde(rename_all = "camelCase")]
4126pub struct AutoModeSwitchRequestedData {
4127 #[serde(skip_serializing_if = "Option::is_none")]
4129 pub error_code: Option<String>,
4130 pub request_id: RequestId,
4132 #[serde(skip_serializing_if = "Option::is_none")]
4134 pub retry_after_seconds: Option<i64>,
4135}
4136
4137#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4139#[serde(rename_all = "camelCase")]
4140pub struct AutoModeSwitchCompletedData {
4141 pub request_id: RequestId,
4143 pub response: AutoModeSwitchResponse,
4145}
4146
4147#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4149#[serde(rename_all = "camelCase")]
4150pub struct SessionLimitsExhaustedRequestedData {
4151 pub max_ai_credits: f64,
4153 pub request_id: RequestId,
4155 pub used_ai_credits: f64,
4157}
4158
4159#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4161#[serde(rename_all = "camelCase")]
4162pub struct SessionLimitsExhaustedResponse {
4163 pub action: SessionLimitsExhaustedResponseAction,
4165 #[serde(skip_serializing_if = "Option::is_none")]
4167 pub additional_ai_credits: Option<f64>,
4168 #[serde(skip_serializing_if = "Option::is_none")]
4170 pub max_ai_credits: Option<f64>,
4171}
4172
4173#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4175#[serde(rename_all = "camelCase")]
4176pub struct SessionLimitsExhaustedCompletedData {
4177 pub request_id: RequestId,
4179 pub response: SessionLimitsExhaustedResponse,
4181}
4182
4183#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4192#[serde(rename_all = "camelCase")]
4193pub struct SessionAutoModeResolvedData {
4194 #[serde(skip_serializing_if = "Option::is_none")]
4196 pub available_models: Option<Vec<String>>,
4197 #[serde(skip_serializing_if = "Option::is_none")]
4199 pub candidate_models: Option<Vec<String>>,
4200 #[serde(skip_serializing_if = "Option::is_none")]
4202 pub category_scores: Option<HashMap<String, f64>>,
4203 pub chosen_model: String,
4205 #[serde(skip_serializing_if = "Option::is_none")]
4207 pub chosen_shortfall: Option<f64>,
4208 #[serde(skip_serializing_if = "Option::is_none")]
4210 pub confidence: Option<f64>,
4211 #[serde(skip_serializing_if = "Option::is_none")]
4213 pub end_to_end_latency_ms: Option<f64>,
4214 #[serde(skip_serializing_if = "Option::is_none")]
4216 pub fallback: Option<bool>,
4217 #[serde(skip_serializing_if = "Option::is_none")]
4219 pub fallback_reason: Option<String>,
4220 #[serde(skip_serializing_if = "Option::is_none")]
4222 pub has_image: Option<bool>,
4223 #[serde(skip_serializing_if = "Option::is_none")]
4225 pub predicted_label: Option<String>,
4226 #[serde(skip_serializing_if = "Option::is_none")]
4228 pub reasoning_bucket: Option<AutoModeResolvedReasoningBucket>,
4229 #[serde(skip_serializing_if = "Option::is_none")]
4231 pub router_latency_ms: Option<f64>,
4232 #[serde(skip_serializing_if = "Option::is_none")]
4234 pub routing_method: Option<String>,
4235 #[serde(skip_serializing_if = "Option::is_none")]
4237 pub sticky_override: Option<bool>,
4238}
4239
4240#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4249#[serde(rename_all = "camelCase")]
4250pub struct SessionManagedSettingsResolvedData {
4251 pub bypass_permissions_disabled: bool,
4253 pub device_managed: bool,
4255 pub fail_closed: bool,
4257 pub managed_keys: Vec<String>,
4259 #[serde(skip_serializing_if = "Option::is_none")]
4261 pub permissions_allow_intersected: Option<bool>,
4262 pub server_managed: bool,
4264 #[serde(skip_serializing_if = "Option::is_none")]
4266 pub settings: Option<serde_json::Value>,
4267 pub source: ManagedSettingsResolvedSource,
4269}
4270
4271#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4280#[serde(rename_all = "camelCase")]
4281pub struct SessionManagedSettingsEnforcedData {
4282 pub action: ManagedSettingsEnforcedAction,
4284 #[serde(skip_serializing_if = "Option::is_none")]
4286 pub escalation: Option<ManagedSettingsEnforcedEscalation>,
4287 pub fail_closed: bool,
4289 pub message: String,
4291 pub setting: String,
4293}
4294
4295#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4297#[serde(rename_all = "camelCase")]
4298pub struct CommandsChangedCommand {
4299 #[serde(skip_serializing_if = "Option::is_none")]
4301 pub description: Option<String>,
4302 pub name: String,
4304}
4305
4306#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4308#[serde(rename_all = "camelCase")]
4309pub struct CommandsChangedData {
4310 pub commands: Vec<CommandsChangedCommand>,
4312}
4313
4314#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4316#[serde(rename_all = "camelCase")]
4317pub struct CapabilitiesChangedUI {
4318 #[serde(skip_serializing_if = "Option::is_none")]
4320 pub canvases: Option<bool>,
4321 #[serde(skip_serializing_if = "Option::is_none")]
4323 pub elicitation: Option<bool>,
4324 #[serde(skip_serializing_if = "Option::is_none")]
4326 pub mcp_apps: Option<bool>,
4327}
4328
4329#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4331#[serde(rename_all = "camelCase")]
4332pub struct CapabilitiesChangedData {
4333 #[serde(skip_serializing_if = "Option::is_none")]
4335 pub ui: Option<CapabilitiesChangedUI>,
4336}
4337
4338#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4340#[serde(rename_all = "camelCase")]
4341pub struct ExitPlanModeRequestedData {
4342 pub actions: Vec<ExitPlanModeAction>,
4344 pub plan_content: String,
4346 pub recommended_action: ExitPlanModeAction,
4348 pub request_id: RequestId,
4350 pub summary: String,
4352}
4353
4354#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4356#[serde(rename_all = "camelCase")]
4357pub struct ExitPlanModeCompletedData {
4358 #[serde(skip_serializing_if = "Option::is_none")]
4360 pub approved: Option<bool>,
4361 #[serde(skip_serializing_if = "Option::is_none")]
4363 pub auto_approve_edits: Option<bool>,
4364 #[serde(skip_serializing_if = "Option::is_none")]
4366 pub feedback: Option<String>,
4367 pub request_id: RequestId,
4369 #[serde(skip_serializing_if = "Option::is_none")]
4371 pub selected_action: Option<ExitPlanModeAction>,
4372}
4373
4374#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4376#[serde(rename_all = "camelCase")]
4377pub struct SessionToolsUpdatedData {
4378 pub model: String,
4380}
4381
4382#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4384#[serde(rename_all = "camelCase")]
4385pub struct SessionBackgroundTasksChangedData {}
4386
4387#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4396#[serde(rename_all = "camelCase")]
4397pub struct FactoryRunUpdatedData {
4398 pub revision: i64,
4400 pub run_id: String,
4401}
4402
4403#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4405#[serde(rename_all = "camelCase")]
4406pub struct SkillsLoadedSkill {
4407 #[serde(skip_serializing_if = "Option::is_none")]
4409 pub argument_hint: Option<String>,
4410 pub description: String,
4412 pub enabled: bool,
4414 pub name: String,
4416 #[serde(skip_serializing_if = "Option::is_none")]
4418 pub path: Option<String>,
4419 pub source: SkillSource,
4421 pub user_invocable: bool,
4423}
4424
4425#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4427#[serde(rename_all = "camelCase")]
4428pub struct SessionSkillsLoadedData {
4429 pub skills: Vec<SkillsLoadedSkill>,
4431}
4432
4433#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4435#[serde(rename_all = "camelCase")]
4436pub struct CustomAgentsUpdatedAgent {
4437 pub description: String,
4439 pub display_name: String,
4441 pub id: String,
4443 #[serde(skip_serializing_if = "Option::is_none")]
4445 pub model: Option<String>,
4446 pub name: String,
4448 pub source: String,
4450 pub tools: Option<Vec<String>>,
4452 pub user_invocable: bool,
4454}
4455
4456#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4458#[serde(rename_all = "camelCase")]
4459pub struct SessionCustomAgentsUpdatedData {
4460 pub agents: Vec<CustomAgentsUpdatedAgent>,
4462 pub errors: Vec<String>,
4464 pub warnings: Vec<String>,
4466}
4467
4468#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4470#[serde(rename_all = "camelCase")]
4471pub struct McpServersLoadedServer {
4472 #[serde(skip_serializing_if = "Option::is_none")]
4474 pub error: Option<String>,
4475 pub name: String,
4477 #[serde(skip_serializing_if = "Option::is_none")]
4479 pub plugin_name: Option<String>,
4480 #[serde(skip_serializing_if = "Option::is_none")]
4482 pub plugin_version: Option<String>,
4483 #[serde(skip_serializing_if = "Option::is_none")]
4485 pub source: Option<McpServerSource>,
4486 pub status: McpServerStatus,
4488 #[serde(skip_serializing_if = "Option::is_none")]
4490 pub transport: Option<McpServerTransport>,
4491}
4492
4493#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4495#[serde(rename_all = "camelCase")]
4496pub struct SessionMcpServersLoadedData {
4497 pub servers: Vec<McpServersLoadedServer>,
4499}
4500
4501#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4503#[serde(rename_all = "camelCase")]
4504pub struct SessionMcpServerStatusChangedData {
4505 #[serde(skip_serializing_if = "Option::is_none")]
4507 pub error: Option<String>,
4508 pub server_name: String,
4510 pub status: McpServerStatus,
4512}
4513
4514#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4516#[serde(rename_all = "camelCase")]
4517pub struct McpToolsListChangedData {
4518 pub server_name: String,
4520}
4521
4522#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4524#[serde(rename_all = "camelCase")]
4525pub struct McpResourcesListChangedData {
4526 pub server_name: String,
4528}
4529
4530#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4532#[serde(rename_all = "camelCase")]
4533pub struct McpPromptsListChangedData {
4534 pub server_name: String,
4536}
4537
4538#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4540#[serde(rename_all = "camelCase")]
4541pub struct ExtensionsLoadedExtension {
4542 pub id: String,
4544 pub name: String,
4546 pub source: ExtensionsLoadedExtensionSource,
4548 pub status: ExtensionsLoadedExtensionStatus,
4550}
4551
4552#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4554#[serde(rename_all = "camelCase")]
4555pub struct SessionExtensionsLoadedData {
4556 pub extensions: Vec<ExtensionsLoadedExtension>,
4558}
4559
4560#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4569#[serde(rename_all = "camelCase")]
4570pub struct SessionCanvasOpenedData {
4571 pub canvas_id: String,
4573 pub extension_id: String,
4575 #[serde(skip_serializing_if = "Option::is_none")]
4577 pub extension_name: Option<String>,
4578 #[serde(skip_serializing_if = "Option::is_none")]
4580 pub icon: Option<String>,
4581 #[serde(skip_serializing_if = "Option::is_none")]
4583 pub input: Option<serde_json::Value>,
4584 pub instance_id: String,
4586 #[serde(skip_serializing_if = "Option::is_none")]
4588 pub status: Option<String>,
4589 #[serde(skip_serializing_if = "Option::is_none")]
4591 pub title: Option<String>,
4592 #[serde(skip_serializing_if = "Option::is_none")]
4594 pub url: Option<String>,
4595}
4596
4597#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4606#[serde(rename_all = "camelCase")]
4607pub struct CanvasRegistryChangedCanvasAction {
4608 #[serde(skip_serializing_if = "Option::is_none")]
4610 pub description: Option<String>,
4611 #[serde(skip_serializing_if = "Option::is_none")]
4613 pub input_schema: Option<serde_json::Value>,
4614 pub name: String,
4616}
4617
4618#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4627#[serde(rename_all = "camelCase")]
4628pub struct CanvasRegistryChangedCanvas {
4629 #[serde(skip_serializing_if = "Option::is_none")]
4631 pub actions: Option<Vec<CanvasRegistryChangedCanvasAction>>,
4632 pub canvas_id: String,
4634 pub description: String,
4636 pub display_name: String,
4638 pub extension_id: String,
4640 #[serde(skip_serializing_if = "Option::is_none")]
4642 pub extension_name: Option<String>,
4643 #[serde(skip_serializing_if = "Option::is_none")]
4645 pub icon: Option<String>,
4646 #[serde(skip_serializing_if = "Option::is_none")]
4648 pub input_schema: Option<serde_json::Value>,
4649}
4650
4651#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4660#[serde(rename_all = "camelCase")]
4661pub struct SessionCanvasRegistryChangedData {
4662 pub canvases: Vec<CanvasRegistryChangedCanvas>,
4664}
4665
4666#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4675#[serde(rename_all = "camelCase")]
4676pub struct SessionCanvasClosedData {
4677 pub canvas_id: String,
4679 pub extension_id: String,
4681 pub instance_id: String,
4683}
4684
4685#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4694#[serde(rename_all = "camelCase")]
4695pub struct SessionCanvasUnavailableData {
4696 pub canvas_id: String,
4698 pub extension_id: String,
4700 pub instance_id: String,
4702}
4703
4704#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4713#[serde(rename_all = "camelCase")]
4714pub struct SessionCanvasRecordedData {
4715 pub canvas_id: String,
4717 pub extension_id: String,
4719 #[serde(skip_serializing_if = "Option::is_none")]
4721 pub input: Option<serde_json::Value>,
4722 pub instance_id: String,
4724 #[serde(skip_serializing_if = "Option::is_none")]
4726 pub title: Option<String>,
4727}
4728
4729#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4738#[serde(rename_all = "camelCase")]
4739pub struct SessionCanvasRemovedData {
4740 pub canvas_id: String,
4742 pub extension_id: String,
4744 pub instance_id: String,
4746}
4747
4748#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4750#[serde(rename_all = "camelCase")]
4751pub struct SessionExtensionsAttachmentsPushedData {
4752 pub attachments: Vec<serde_json::Value>,
4754}
4755
4756#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4758#[serde(rename_all = "camelCase")]
4759pub struct McpAppToolCallCompleteError {
4760 pub message: String,
4762}
4763
4764#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4766#[serde(rename_all = "camelCase")]
4767pub struct McpAppToolCallCompleteToolMetaUI {
4768 #[serde(skip_serializing_if = "Option::is_none")]
4770 pub resource_uri: Option<String>,
4771 #[serde(skip_serializing_if = "Option::is_none")]
4773 pub visibility: Option<Vec<String>>,
4774}
4775
4776#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4778#[serde(rename_all = "camelCase")]
4779pub struct McpAppToolCallCompleteToolMeta {
4780 #[serde(skip_serializing_if = "Option::is_none")]
4782 pub ui: Option<McpAppToolCallCompleteToolMetaUI>,
4783}
4784
4785#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4787#[serde(rename_all = "camelCase")]
4788pub struct McpAppToolCallCompleteData {
4789 #[serde(skip_serializing_if = "Option::is_none")]
4791 pub arguments: Option<HashMap<String, serde_json::Value>>,
4792 pub duration_ms: f64,
4794 #[serde(skip_serializing_if = "Option::is_none")]
4796 pub error: Option<McpAppToolCallCompleteError>,
4797 #[serde(skip_serializing_if = "Option::is_none")]
4799 pub result: Option<HashMap<String, serde_json::Value>>,
4800 pub server_name: String,
4802 pub success: bool,
4804 #[serde(skip_serializing_if = "Option::is_none")]
4806 pub tool_meta: Option<McpAppToolCallCompleteToolMeta>,
4807 pub tool_name: String,
4809}
4810
4811#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4813pub enum WorkingDirectoryContextHostType {
4814 #[serde(rename = "github")]
4816 GitHub,
4817 #[serde(rename = "ado")]
4819 Ado,
4820 #[default]
4822 #[serde(other)]
4823 Unknown,
4824}
4825
4826#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4828pub enum ContextTier {
4829 #[serde(rename = "default")]
4831 Default,
4832 #[serde(rename = "long_context")]
4834 LongContext,
4835 #[default]
4837 #[serde(other)]
4838 Unknown,
4839}
4840
4841#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4843pub enum ReasoningSummary {
4844 #[serde(rename = "none")]
4846 None,
4847 #[serde(rename = "concise")]
4849 Concise,
4850 #[serde(rename = "detailed")]
4852 Detailed,
4853 #[default]
4855 #[serde(other)]
4856 Unknown,
4857}
4858
4859#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4861pub enum Verbosity {
4862 #[serde(rename = "low")]
4864 Low,
4865 #[serde(rename = "medium")]
4867 Medium,
4868 #[serde(rename = "high")]
4870 High,
4871 #[default]
4873 #[serde(other)]
4874 Unknown,
4875}
4876
4877#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4879pub enum ScheduleOrigin {
4880 #[serde(rename = "user")]
4882 User,
4883 #[serde(rename = "model")]
4885 Model,
4886 #[default]
4888 #[serde(other)]
4889 Unknown,
4890}
4891
4892#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4894pub enum AutopilotObjectiveChangedOperation {
4895 #[serde(rename = "create")]
4897 Create,
4898 #[serde(rename = "update")]
4900 Update,
4901 #[serde(rename = "delete")]
4903 Delete,
4904 #[default]
4906 #[serde(other)]
4907 Unknown,
4908}
4909
4910#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4912pub enum AutopilotObjectiveChangedStatus {
4913 #[serde(rename = "active")]
4915 Active,
4916 #[serde(rename = "paused")]
4918 Paused,
4919 #[serde(rename = "cap_reached")]
4921 CapReached,
4922 #[serde(rename = "completed")]
4924 Completed,
4925 #[default]
4927 #[serde(other)]
4928 Unknown,
4929}
4930
4931#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4933pub enum SessionMode {
4934 #[serde(rename = "interactive")]
4936 Interactive,
4937 #[serde(rename = "plan")]
4939 Plan,
4940 #[serde(rename = "autopilot")]
4942 Autopilot,
4943 #[default]
4945 #[serde(other)]
4946 Unknown,
4947}
4948
4949#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4958pub enum PermissionAllowAllMode {
4959 #[serde(rename = "off")]
4961 Off,
4962 #[serde(rename = "on")]
4964 On,
4965 #[serde(rename = "auto")]
4967 Auto,
4968 #[default]
4970 #[serde(other)]
4971 Unknown,
4972}
4973
4974#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4976pub enum PlanChangedOperation {
4977 #[serde(rename = "create")]
4979 Create,
4980 #[serde(rename = "update")]
4982 Update,
4983 #[serde(rename = "delete")]
4985 Delete,
4986 #[default]
4988 #[serde(other)]
4989 Unknown,
4990}
4991
4992#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4994pub enum WorkspaceFileChangedOperation {
4995 #[serde(rename = "create")]
4997 Create,
4998 #[serde(rename = "update")]
5000 Update,
5001 #[default]
5003 #[serde(other)]
5004 Unknown,
5005}
5006
5007#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5009pub enum HandoffSourceType {
5010 #[serde(rename = "remote")]
5012 Remote,
5013 #[serde(rename = "local")]
5015 Local,
5016 #[default]
5018 #[serde(other)]
5019 Unknown,
5020}
5021
5022#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5024pub enum ShutdownType {
5025 #[serde(rename = "routine")]
5027 Routine,
5028 #[serde(rename = "error")]
5030 Error,
5031 #[default]
5033 #[serde(other)]
5034 Unknown,
5035}
5036
5037#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5039pub enum CompactionTrigger {
5040 #[serde(rename = "threshold")]
5042 Threshold,
5043 #[serde(rename = "context_limit_retry")]
5045 ContextLimitRetry,
5046 #[serde(rename = "manual")]
5048 Manual,
5049 #[serde(rename = "memory_pressure")]
5051 MemoryPressure,
5052 #[serde(rename = "model_switch")]
5054 ModelSwitch,
5055 #[default]
5057 #[serde(other)]
5058 Unknown,
5059}
5060
5061#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5063pub enum TaskCompletionOutcome {
5064 #[serde(rename = "completed")]
5066 Completed,
5067 #[serde(rename = "continue")]
5069 Continue,
5070 #[serde(rename = "blocked")]
5072 Blocked,
5073 #[default]
5075 #[serde(other)]
5076 Unknown,
5077}
5078
5079#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5081pub enum UserMessageAgentMode {
5082 #[serde(rename = "interactive")]
5084 Interactive,
5085 #[serde(rename = "plan")]
5087 Plan,
5088 #[serde(rename = "autopilot")]
5090 Autopilot,
5091 #[serde(rename = "shell")]
5093 Shell,
5094 #[default]
5096 #[serde(other)]
5097 Unknown,
5098}
5099
5100#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5102pub enum UserMessageDelivery {
5103 #[serde(rename = "idle")]
5105 Idle,
5106 #[serde(rename = "steering")]
5108 Steering,
5109 #[serde(rename = "queued")]
5111 Queued,
5112 #[default]
5114 #[serde(other)]
5115 Unknown,
5116}
5117
5118#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5120pub enum AssistantMessageToolRequestType {
5121 #[serde(rename = "function")]
5123 Function,
5124 #[serde(rename = "custom")]
5126 Custom,
5127 #[default]
5129 #[serde(other)]
5130 Unknown,
5131}
5132
5133#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5142pub enum CitationProvider {
5143 #[serde(rename = "anthropic")]
5145 Anthropic,
5146 #[serde(rename = "openai")]
5148 Openai,
5149 #[serde(rename = "client")]
5151 Client,
5152 #[default]
5154 #[serde(other)]
5155 Unknown,
5156}
5157
5158#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5160pub enum AssistantUsageApiEndpoint {
5161 #[serde(rename = "/chat/completions")]
5163 ChatCompletions,
5164 #[serde(rename = "/v1/messages")]
5166 V1Messages,
5167 #[serde(rename = "/responses")]
5169 Responses,
5170 #[serde(rename = "ws:/responses")]
5172 WsResponses,
5173 #[default]
5175 #[serde(other)]
5176 Unknown,
5177}
5178
5179#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5181pub enum ModelCallFailureBadRequestKind {
5182 #[serde(rename = "bodyless")]
5184 Bodyless,
5185 #[serde(rename = "structured_error")]
5187 StructuredError,
5188 #[default]
5190 #[serde(other)]
5191 Unknown,
5192}
5193
5194#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5196pub enum ModelCallFailureKind {
5197 #[serde(rename = "api")]
5199 Api,
5200 #[serde(rename = "transport")]
5202 Transport,
5203 #[default]
5205 #[serde(other)]
5206 Unknown,
5207}
5208
5209#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5211pub enum ModelCallFailureSource {
5212 #[serde(rename = "top_level")]
5214 TopLevel,
5215 #[serde(rename = "subagent")]
5217 Subagent,
5218 #[serde(rename = "mcp_sampling")]
5220 McpSampling,
5221 #[default]
5223 #[serde(other)]
5224 Unknown,
5225}
5226
5227#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5229pub enum ModelCallFailureTransport {
5230 #[serde(rename = "http")]
5232 Http,
5233 #[serde(rename = "websocket")]
5235 Websocket,
5236 #[default]
5238 #[serde(other)]
5239 Unknown,
5240}
5241
5242#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5244pub enum AbortReason {
5245 #[serde(rename = "user_initiated")]
5247 UserInitiated,
5248 #[serde(rename = "remote_command")]
5250 RemoteCommand,
5251 #[serde(rename = "user_abort")]
5253 UserAbort,
5254 #[default]
5256 #[serde(other)]
5257 Unknown,
5258}
5259
5260#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5262pub enum ToolExecutionStartToolDescriptionMetaUIVisibility {
5263 #[serde(rename = "model")]
5265 Model,
5266 #[serde(rename = "app")]
5268 App,
5269 #[default]
5271 #[serde(other)]
5272 Unknown,
5273}
5274
5275#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5277pub enum ToolExecutionCompleteContentTextType {
5278 #[serde(rename = "text")]
5279 #[default]
5280 Text,
5281}
5282
5283#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5285pub enum ToolExecutionCompleteContentTerminalType {
5286 #[serde(rename = "terminal")]
5287 #[default]
5288 Terminal,
5289}
5290
5291#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5293pub enum ToolExecutionCompleteContentShellExitType {
5294 #[serde(rename = "shell_exit")]
5295 #[default]
5296 ShellExit,
5297}
5298
5299#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5301pub enum ToolExecutionCompleteContentImageType {
5302 #[serde(rename = "image")]
5303 #[default]
5304 Image,
5305}
5306
5307#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5309pub enum ToolExecutionCompleteContentAudioType {
5310 #[serde(rename = "audio")]
5311 #[default]
5312 Audio,
5313}
5314
5315#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5317pub enum ToolExecutionCompleteContentResourceLinkIconTheme {
5318 #[serde(rename = "light")]
5320 Light,
5321 #[serde(rename = "dark")]
5323 Dark,
5324 #[default]
5326 #[serde(other)]
5327 Unknown,
5328}
5329
5330#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5332pub enum ToolExecutionCompleteContentResourceLinkType {
5333 #[serde(rename = "resource_link")]
5334 #[default]
5335 ResourceLink,
5336}
5337
5338#[derive(Debug, Clone, Serialize, Deserialize)]
5340#[serde(untagged)]
5341pub enum ToolExecutionCompleteContentResourceDetails {
5342 EmbeddedTextResourceContents(EmbeddedTextResourceContents),
5343 EmbeddedBlobResourceContents(EmbeddedBlobResourceContents),
5344}
5345
5346#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5348pub enum ToolExecutionCompleteContentResourceType {
5349 #[serde(rename = "resource")]
5350 #[default]
5351 Resource,
5352}
5353
5354#[derive(Debug, Clone, Serialize, Deserialize)]
5356#[serde(untagged)]
5357pub enum ToolExecutionCompleteContent {
5358 Text(ToolExecutionCompleteContentText),
5359 Terminal(ToolExecutionCompleteContentTerminal),
5360 ShellExit(ToolExecutionCompleteContentShellExit),
5361 Image(ToolExecutionCompleteContentImage),
5362 Audio(ToolExecutionCompleteContentAudio),
5363 ResourceLink(ToolExecutionCompleteContentResourceLink),
5364 Resource(ToolExecutionCompleteContentResource),
5365}
5366
5367#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5369pub enum ToolExecutionCompleteToolDescriptionMetaUIVisibility {
5370 #[serde(rename = "model")]
5372 Model,
5373 #[serde(rename = "app")]
5375 App,
5376 #[default]
5378 #[serde(other)]
5379 Unknown,
5380}
5381
5382#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5384pub enum SkillInvokedTrigger {
5385 #[serde(rename = "user-invoked")]
5387 UserInvoked,
5388 #[serde(rename = "agent-invoked")]
5390 AgentInvoked,
5391 #[serde(rename = "context-load")]
5393 ContextLoad,
5394 #[default]
5396 #[serde(other)]
5397 Unknown,
5398}
5399
5400#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5402pub enum BinaryAssetType {
5403 #[serde(rename = "image")]
5405 Image,
5406 #[serde(rename = "resource")]
5408 Resource,
5409 #[default]
5411 #[serde(other)]
5412 Unknown,
5413}
5414
5415#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5417pub enum SystemMessageRole {
5418 #[serde(rename = "system")]
5420 System,
5421 #[serde(rename = "developer")]
5423 Developer,
5424 #[default]
5426 #[serde(other)]
5427 Unknown,
5428}
5429
5430#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5432pub enum PermissionRequestShellKind {
5433 #[serde(rename = "shell")]
5434 #[default]
5435 Shell,
5436}
5437
5438#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5440pub enum PermissionRequestWriteKind {
5441 #[serde(rename = "write")]
5442 #[default]
5443 Write,
5444}
5445
5446#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5448pub enum PermissionRequestReadKind {
5449 #[serde(rename = "read")]
5450 #[default]
5451 Read,
5452}
5453
5454#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5456pub enum PermissionRequestMcpKind {
5457 #[serde(rename = "mcp")]
5458 #[default]
5459 Mcp,
5460}
5461
5462#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5464pub enum PermissionRequestUrlKind {
5465 #[serde(rename = "url")]
5466 #[default]
5467 Url,
5468}
5469
5470#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5472pub enum PermissionRequestMemoryAction {
5473 #[serde(rename = "store")]
5475 Store,
5476 #[serde(rename = "vote")]
5478 Vote,
5479 #[default]
5481 #[serde(other)]
5482 Unknown,
5483}
5484
5485#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5487pub enum PermissionRequestMemoryDirection {
5488 #[serde(rename = "upvote")]
5490 Upvote,
5491 #[serde(rename = "downvote")]
5493 Downvote,
5494 #[default]
5496 #[serde(other)]
5497 Unknown,
5498}
5499
5500#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5502pub enum PermissionRequestMemoryKind {
5503 #[serde(rename = "memory")]
5504 #[default]
5505 Memory,
5506}
5507
5508#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5510pub enum PermissionRequestCustomToolKind {
5511 #[serde(rename = "custom-tool")]
5512 #[default]
5513 CustomTool,
5514}
5515
5516#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5518pub enum PermissionRequestHookKind {
5519 #[serde(rename = "hook")]
5520 #[default]
5521 Hook,
5522}
5523
5524#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5526pub enum PermissionRequestExtensionManagementKind {
5527 #[serde(rename = "extension-management")]
5528 #[default]
5529 ExtensionManagement,
5530}
5531
5532#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5534pub enum PermissionRequestExtensionPermissionAccessKind {
5535 #[serde(rename = "extension-permission-access")]
5536 #[default]
5537 ExtensionPermissionAccess,
5538}
5539
5540#[derive(Debug, Clone, Serialize, Deserialize)]
5542#[serde(untagged)]
5543pub enum PermissionRequest {
5544 Shell(PermissionRequestShell),
5545 Write(PermissionRequestWrite),
5546 Read(PermissionRequestRead),
5547 Mcp(PermissionRequestMcp),
5548 Url(PermissionRequestUrl),
5549 Memory(PermissionRequestMemory),
5550 CustomTool(PermissionRequestCustomTool),
5551 Hook(PermissionRequestHook),
5552 ExtensionManagement(PermissionRequestExtensionManagement),
5553 ExtensionPermissionAccess(PermissionRequestExtensionPermissionAccess),
5554}
5555
5556#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5565pub enum AutoApprovalJudgeFailureReason {
5566 #[serde(rename = "timeout")]
5568 Timeout,
5569 #[serde(rename = "abort")]
5571 Abort,
5572 #[serde(rename = "empty_response")]
5574 EmptyResponse,
5575 #[serde(rename = "model_error")]
5577 ModelError,
5578 #[serde(rename = "parse_error")]
5580 ParseError,
5581 #[default]
5583 #[serde(other)]
5584 Unknown,
5585}
5586
5587#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5596pub enum AutoApprovalRecommendation {
5597 #[serde(rename = "approve")]
5599 Approve,
5600 #[serde(rename = "requireApproval")]
5602 RequireApproval,
5603 #[serde(rename = "excluded")]
5605 Excluded,
5606 #[serde(rename = "error")]
5608 Error,
5609 #[default]
5611 #[serde(other)]
5612 Unknown,
5613}
5614
5615#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5617pub enum PermissionPromptRequestCommandsKind {
5618 #[serde(rename = "commands")]
5619 #[default]
5620 Commands,
5621}
5622
5623#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5625pub enum PermissionPromptRequestWriteKind {
5626 #[serde(rename = "write")]
5627 #[default]
5628 Write,
5629}
5630
5631#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5633pub enum PermissionPromptRequestReadKind {
5634 #[serde(rename = "read")]
5635 #[default]
5636 Read,
5637}
5638
5639#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5641pub enum PermissionPromptRequestMcpKind {
5642 #[serde(rename = "mcp")]
5643 #[default]
5644 Mcp,
5645}
5646
5647#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5649pub enum PermissionPromptRequestUrlKind {
5650 #[serde(rename = "url")]
5651 #[default]
5652 Url,
5653}
5654
5655#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5657pub enum PermissionPromptRequestMemoryKind {
5658 #[serde(rename = "memory")]
5659 #[default]
5660 Memory,
5661}
5662
5663#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5665pub enum PermissionPromptRequestCustomToolKind {
5666 #[serde(rename = "custom-tool")]
5667 #[default]
5668 CustomTool,
5669}
5670
5671#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5673pub enum PermissionPromptRequestPathAccessKind {
5674 #[serde(rename = "read")]
5676 Read,
5677 #[serde(rename = "shell")]
5679 Shell,
5680 #[serde(rename = "write")]
5682 Write,
5683 #[default]
5685 #[serde(other)]
5686 Unknown,
5687}
5688
5689#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5691pub enum PermissionPromptRequestPathKind {
5692 #[serde(rename = "path")]
5693 #[default]
5694 Path,
5695}
5696
5697#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5699pub enum PermissionPromptRequestHookKind {
5700 #[serde(rename = "hook")]
5701 #[default]
5702 Hook,
5703}
5704
5705#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5707pub enum PermissionPromptRequestExtensionManagementKind {
5708 #[serde(rename = "extension-management")]
5709 #[default]
5710 ExtensionManagement,
5711}
5712
5713#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5715pub enum PermissionPromptRequestExtensionPermissionAccessKind {
5716 #[serde(rename = "extension-permission-access")]
5717 #[default]
5718 ExtensionPermissionAccess,
5719}
5720
5721#[derive(Debug, Clone, Serialize, Deserialize)]
5723#[serde(untagged)]
5724pub enum PermissionPromptRequest {
5725 Commands(PermissionPromptRequestCommands),
5726 Write(PermissionPromptRequestWrite),
5727 Read(PermissionPromptRequestRead),
5728 Mcp(PermissionPromptRequestMcp),
5729 Url(PermissionPromptRequestUrl),
5730 Memory(PermissionPromptRequestMemory),
5731 CustomTool(PermissionPromptRequestCustomTool),
5732 Path(PermissionPromptRequestPath),
5733 Hook(PermissionPromptRequestHook),
5734 ExtensionManagement(PermissionPromptRequestExtensionManagement),
5735 ExtensionPermissionAccess(PermissionPromptRequestExtensionPermissionAccess),
5736}
5737
5738#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5740pub enum PermissionApprovedKind {
5741 #[serde(rename = "approved")]
5742 #[default]
5743 Approved,
5744}
5745
5746#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5748pub enum UserToolSessionApprovalCommandsKind {
5749 #[serde(rename = "commands")]
5750 #[default]
5751 Commands,
5752}
5753
5754#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5756pub enum UserToolSessionApprovalReadKind {
5757 #[serde(rename = "read")]
5758 #[default]
5759 Read,
5760}
5761
5762#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5764pub enum UserToolSessionApprovalWriteKind {
5765 #[serde(rename = "write")]
5766 #[default]
5767 Write,
5768}
5769
5770#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5772pub enum UserToolSessionApprovalMcpKind {
5773 #[serde(rename = "mcp")]
5774 #[default]
5775 Mcp,
5776}
5777
5778#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5780pub enum UserToolSessionApprovalMemoryKind {
5781 #[serde(rename = "memory")]
5782 #[default]
5783 Memory,
5784}
5785
5786#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5788pub enum UserToolSessionApprovalCustomToolKind {
5789 #[serde(rename = "custom-tool")]
5790 #[default]
5791 CustomTool,
5792}
5793
5794#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5796pub enum UserToolSessionApprovalExtensionManagementKind {
5797 #[serde(rename = "extension-management")]
5798 #[default]
5799 ExtensionManagement,
5800}
5801
5802#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5804pub enum UserToolSessionApprovalExtensionPermissionAccessKind {
5805 #[serde(rename = "extension-permission-access")]
5806 #[default]
5807 ExtensionPermissionAccess,
5808}
5809
5810#[derive(Debug, Clone, Serialize, Deserialize)]
5812#[serde(untagged)]
5813pub enum UserToolSessionApproval {
5814 Commands(UserToolSessionApprovalCommands),
5815 Read(UserToolSessionApprovalRead),
5816 Write(UserToolSessionApprovalWrite),
5817 Mcp(UserToolSessionApprovalMcp),
5818 Memory(UserToolSessionApprovalMemory),
5819 CustomTool(UserToolSessionApprovalCustomTool),
5820 ExtensionManagement(UserToolSessionApprovalExtensionManagement),
5821 ExtensionPermissionAccess(UserToolSessionApprovalExtensionPermissionAccess),
5822}
5823
5824#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5826pub enum PermissionApprovedForSessionKind {
5827 #[serde(rename = "approved-for-session")]
5828 #[default]
5829 ApprovedForSession,
5830}
5831
5832#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5834pub enum PermissionApprovedForLocationKind {
5835 #[serde(rename = "approved-for-location")]
5836 #[default]
5837 ApprovedForLocation,
5838}
5839
5840#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5842pub enum PermissionCancelledKind {
5843 #[serde(rename = "cancelled")]
5844 #[default]
5845 Cancelled,
5846}
5847
5848#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5850pub enum PermissionDeniedByRulesKind {
5851 #[serde(rename = "denied-by-rules")]
5852 #[default]
5853 DeniedByRules,
5854}
5855
5856#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5858pub enum PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUserKind {
5859 #[serde(rename = "denied-no-approval-rule-and-could-not-request-from-user")]
5860 #[default]
5861 DeniedNoApprovalRuleAndCouldNotRequestFromUser,
5862}
5863
5864#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5866pub enum PermissionDeniedInteractivelyByUserKind {
5867 #[serde(rename = "denied-interactively-by-user")]
5868 #[default]
5869 DeniedInteractivelyByUser,
5870}
5871
5872#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5874pub enum PermissionDeniedByContentExclusionPolicyKind {
5875 #[serde(rename = "denied-by-content-exclusion-policy")]
5876 #[default]
5877 DeniedByContentExclusionPolicy,
5878}
5879
5880#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5882pub enum PermissionDeniedByPermissionRequestHookKind {
5883 #[serde(rename = "denied-by-permission-request-hook")]
5884 #[default]
5885 DeniedByPermissionRequestHook,
5886}
5887
5888#[derive(Debug, Clone, Serialize, Deserialize)]
5890#[serde(untagged)]
5891pub enum PermissionResult {
5892 Approved(PermissionApproved),
5893 ApprovedForSession(PermissionApprovedForSession),
5894 ApprovedForLocation(PermissionApprovedForLocation),
5895 Cancelled(PermissionCancelled),
5896 DeniedByRules(PermissionDeniedByRules),
5897 DeniedNoApprovalRuleAndCouldNotRequestFromUser(
5898 PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser,
5899 ),
5900 DeniedInteractivelyByUser(PermissionDeniedInteractivelyByUser),
5901 DeniedByContentExclusionPolicy(PermissionDeniedByContentExclusionPolicy),
5902 DeniedByPermissionRequestHook(PermissionDeniedByPermissionRequestHook),
5903}
5904
5905#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5907pub enum ElicitationRequestedMode {
5908 #[serde(rename = "form")]
5910 Form,
5911 #[serde(rename = "url")]
5913 Url,
5914 #[default]
5916 #[serde(other)]
5917 Unknown,
5918}
5919
5920#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5922pub enum ElicitationRequestedSchemaType {
5923 #[serde(rename = "object")]
5924 #[default]
5925 Object,
5926}
5927
5928#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5930pub enum ElicitationCompletedAction {
5931 #[serde(rename = "accept")]
5933 Accept,
5934 #[serde(rename = "decline")]
5936 Decline,
5937 #[serde(rename = "cancel")]
5939 Cancel,
5940 #[default]
5942 #[serde(other)]
5943 Unknown,
5944}
5945
5946#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5948pub enum McpOauthRequestReason {
5949 #[serde(rename = "initial")]
5951 Initial,
5952 #[serde(rename = "refresh")]
5954 Refresh,
5955 #[serde(rename = "reauth")]
5957 Reauth,
5958 #[serde(rename = "upscope")]
5960 Upscope,
5961 #[default]
5963 #[serde(other)]
5964 Unknown,
5965}
5966
5967#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5969pub enum McpOauthRequiredStaticClientConfigGrantType {
5970 #[serde(rename = "client_credentials")]
5971 #[default]
5972 ClientCredentials,
5973}
5974
5975#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5977pub enum McpOauthCompletionOutcome {
5978 #[serde(rename = "token")]
5980 Token,
5981 #[serde(rename = "cancelled")]
5983 Cancelled,
5984 #[default]
5986 #[serde(other)]
5987 Unknown,
5988}
5989
5990#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5992pub enum McpHeadersRefreshRequiredReason {
5993 #[serde(rename = "startup")]
5995 Startup,
5996 #[serde(rename = "ttl-expired")]
5998 TtlExpired,
5999 #[serde(rename = "auth-failed")]
6001 AuthFailed,
6002 #[default]
6004 #[serde(other)]
6005 Unknown,
6006}
6007
6008#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6010pub enum McpHeadersRefreshCompletedOutcome {
6011 #[serde(rename = "headers")]
6013 Headers,
6014 #[serde(rename = "none")]
6016 None,
6017 #[serde(rename = "timeout")]
6019 Timeout,
6020 #[default]
6022 #[serde(other)]
6023 Unknown,
6024}
6025
6026#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6028pub enum AutoModeSwitchResponse {
6029 #[serde(rename = "yes")]
6031 Yes,
6032 #[serde(rename = "yes_always")]
6034 YesAlways,
6035 #[serde(rename = "no")]
6037 No,
6038 #[default]
6040 #[serde(other)]
6041 Unknown,
6042}
6043
6044#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6046pub enum SessionLimitsExhaustedResponseAction {
6047 #[serde(rename = "add")]
6049 Add,
6050 #[serde(rename = "set")]
6052 Set,
6053 #[serde(rename = "unset")]
6055 Unset,
6056 #[serde(rename = "cancel")]
6058 Cancel,
6059 #[default]
6061 #[serde(other)]
6062 Unknown,
6063}
6064
6065#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6067pub enum AutoModeResolvedReasoningBucket {
6068 #[serde(rename = "low")]
6070 Low,
6071 #[serde(rename = "medium")]
6073 Medium,
6074 #[serde(rename = "high")]
6076 High,
6077 #[default]
6079 #[serde(other)]
6080 Unknown,
6081}
6082
6083#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6085pub enum ManagedSettingsResolvedSource {
6086 #[serde(rename = "server")]
6088 Server,
6089 #[serde(rename = "device")]
6091 Device,
6092 #[serde(rename = "none")]
6094 None,
6095 #[default]
6097 #[serde(other)]
6098 Unknown,
6099}
6100
6101#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6103pub enum ManagedSettingsEnforcedAction {
6104 #[serde(rename = "bypass_permissions_blocked")]
6106 BypassPermissionsBlocked,
6107 #[default]
6109 #[serde(other)]
6110 Unknown,
6111}
6112
6113#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6115pub enum ManagedSettingsEnforcedEscalation {
6116 #[serde(rename = "allow_all")]
6118 AllowAll,
6119 #[serde(rename = "approve_all")]
6121 ApproveAll,
6122 #[serde(rename = "auto_approval")]
6124 AutoApproval,
6125 #[serde(rename = "unrestricted_paths")]
6127 UnrestrictedPaths,
6128 #[serde(rename = "unrestricted_urls")]
6130 UnrestrictedUrls,
6131 #[default]
6133 #[serde(other)]
6134 Unknown,
6135}
6136
6137#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6139pub enum ExitPlanModeAction {
6140 #[serde(rename = "exit_only")]
6142 ExitOnly,
6143 #[serde(rename = "interactive")]
6145 Interactive,
6146 #[serde(rename = "autopilot")]
6148 Autopilot,
6149 #[serde(rename = "autopilot_fleet")]
6151 AutopilotFleet,
6152 #[default]
6154 #[serde(other)]
6155 Unknown,
6156}
6157
6158#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6160pub enum SkillSource {
6161 #[serde(rename = "project")]
6163 Project,
6164 #[serde(rename = "inherited")]
6166 Inherited,
6167 #[serde(rename = "personal-copilot")]
6169 PersonalCopilot,
6170 #[serde(rename = "personal-agents")]
6172 PersonalAgents,
6173 #[serde(rename = "plugin")]
6175 Plugin,
6176 #[serde(rename = "custom")]
6178 Custom,
6179 #[serde(rename = "builtin")]
6181 Builtin,
6182 #[default]
6184 #[serde(other)]
6185 Unknown,
6186}
6187
6188#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6190pub enum McpServerSource {
6191 #[serde(rename = "user")]
6193 User,
6194 #[serde(rename = "workspace")]
6196 Workspace,
6197 #[serde(rename = "plugin")]
6199 Plugin,
6200 #[serde(rename = "builtin")]
6202 Builtin,
6203 #[default]
6205 #[serde(other)]
6206 Unknown,
6207}
6208
6209#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6211pub enum McpServerStatus {
6212 #[serde(rename = "connected")]
6214 Connected,
6215 #[serde(rename = "failed")]
6217 Failed,
6218 #[serde(rename = "needs-auth")]
6220 NeedsAuth,
6221 #[serde(rename = "pending")]
6223 Pending,
6224 #[serde(rename = "disabled")]
6226 Disabled,
6227 #[serde(rename = "not_configured")]
6229 NotConfigured,
6230 #[default]
6232 #[serde(other)]
6233 Unknown,
6234}
6235
6236#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6238pub enum McpServerTransport {
6239 #[serde(rename = "stdio")]
6241 Stdio,
6242 #[serde(rename = "http")]
6244 Http,
6245 #[serde(rename = "sse")]
6247 Sse,
6248 #[serde(rename = "memory")]
6250 Memory,
6251 #[default]
6253 #[serde(other)]
6254 Unknown,
6255}
6256
6257#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6259pub enum ExtensionsLoadedExtensionSource {
6260 #[serde(rename = "project")]
6262 Project,
6263 #[serde(rename = "user")]
6265 User,
6266 #[serde(rename = "plugin")]
6268 Plugin,
6269 #[serde(rename = "session")]
6271 Session,
6272 #[default]
6274 #[serde(other)]
6275 Unknown,
6276}
6277
6278#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6280pub enum ExtensionsLoadedExtensionStatus {
6281 #[serde(rename = "running")]
6283 Running,
6284 #[serde(rename = "disabled")]
6286 Disabled,
6287 #[serde(rename = "failed")]
6289 Failed,
6290 #[serde(rename = "starting")]
6292 Starting,
6293 #[default]
6295 #[serde(other)]
6296 Unknown,
6297}