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.context_cleared")]
67 SessionContextCleared,
68 #[serde(rename = "session.compaction_start")]
69 SessionCompactionStart,
70 #[serde(rename = "session.compaction_complete")]
71 SessionCompactionComplete,
72 #[serde(rename = "session.task_complete")]
73 SessionTaskComplete,
74 #[serde(rename = "user.message")]
75 UserMessage,
76 #[serde(rename = "pending_messages.modified")]
77 PendingMessagesModified,
78 #[serde(rename = "assistant.turn_start")]
79 AssistantTurnStart,
80 #[serde(rename = "assistant.turn_retry")]
81 AssistantTurnRetry,
82 #[serde(rename = "assistant.intent")]
83 AssistantIntent,
84 #[serde(rename = "assistant.server_tool_progress")]
85 AssistantServerToolProgress,
86 #[serde(rename = "assistant.reasoning")]
87 AssistantReasoning,
88 #[serde(rename = "assistant.reasoning_delta")]
89 AssistantReasoningDelta,
90 #[serde(rename = "assistant.tool_call_delta")]
91 AssistantToolCallDelta,
92 #[serde(rename = "assistant.streaming_delta")]
93 AssistantStreamingDelta,
94 #[serde(rename = "assistant.message")]
95 AssistantMessage,
96 #[serde(rename = "assistant.message_start")]
97 AssistantMessageStart,
98 #[serde(rename = "assistant.message_delta")]
99 AssistantMessageDelta,
100 #[serde(rename = "assistant.turn_end")]
101 AssistantTurnEnd,
102 #[serde(rename = "assistant.idle")]
103 AssistantIdle,
104 #[serde(rename = "assistant.usage")]
105 AssistantUsage,
106 #[serde(rename = "model.call_failure")]
107 ModelCallFailure,
108 #[serde(rename = "model.call_start")]
109 ModelCallStart,
110 #[serde(rename = "abort")]
111 Abort,
112 #[serde(rename = "tool.user_requested")]
113 ToolUserRequested,
114 #[serde(rename = "tool.execution_start")]
115 ToolExecutionStart,
116 #[serde(rename = "tool.execution_partial_result")]
117 ToolExecutionPartialResult,
118 #[serde(rename = "tool.execution_progress")]
119 ToolExecutionProgress,
120 #[serde(rename = "tool.execution_complete")]
121 ToolExecutionComplete,
122 #[serde(rename = "tool_search.activated")]
123 ToolSearchActivated,
124 #[serde(rename = "skill.invoked")]
125 SkillInvoked,
126 #[serde(rename = "subagent.started")]
127 SubagentStarted,
128 #[serde(rename = "subagent.completed")]
129 SubagentCompleted,
130 #[serde(rename = "subagent.failed")]
131 SubagentFailed,
132 #[serde(rename = "subagent.selected")]
133 SubagentSelected,
134 #[serde(rename = "subagent.deselected")]
135 SubagentDeselected,
136 #[serde(rename = "hook.start")]
137 HookStart,
138 #[serde(rename = "hook.end")]
139 HookEnd,
140 #[serde(rename = "hook.progress")]
141 HookProgress,
142 #[serde(rename = "session.binary_asset")]
150 SessionBinaryAsset,
151 #[serde(rename = "system.message")]
152 SystemMessage,
153 #[serde(rename = "system.notification")]
154 SystemNotification,
155 #[serde(rename = "permission.requested")]
156 PermissionRequested,
157 #[serde(rename = "permission.completed")]
158 PermissionCompleted,
159 #[serde(rename = "user_input.requested")]
160 UserInputRequested,
161 #[serde(rename = "user_input.completed")]
162 UserInputCompleted,
163 #[serde(rename = "elicitation.requested")]
164 ElicitationRequested,
165 #[serde(rename = "elicitation.completed")]
166 ElicitationCompleted,
167 #[serde(rename = "sampling.requested")]
168 SamplingRequested,
169 #[serde(rename = "sampling.completed")]
170 SamplingCompleted,
171 #[serde(rename = "mcp.oauth_required")]
172 McpOauthRequired,
173 #[serde(rename = "mcp.oauth_completed")]
174 McpOauthCompleted,
175 #[serde(rename = "mcp.headers_refresh_required")]
176 McpHeadersRefreshRequired,
177 #[serde(rename = "mcp.headers_refresh_completed")]
178 McpHeadersRefreshCompleted,
179 #[serde(rename = "session.custom_notification")]
180 SessionCustomNotification,
181 #[serde(rename = "external_tool.requested")]
182 ExternalToolRequested,
183 #[serde(rename = "external_tool.completed")]
184 ExternalToolCompleted,
185 #[serde(rename = "command.queued")]
186 CommandQueued,
187 #[serde(rename = "command.execute")]
188 CommandExecute,
189 #[serde(rename = "command.completed")]
190 CommandCompleted,
191 #[serde(rename = "auto_mode_switch.requested")]
192 AutoModeSwitchRequested,
193 #[serde(rename = "auto_mode_switch.completed")]
194 AutoModeSwitchCompleted,
195 #[serde(rename = "session_limits_exhausted.requested")]
196 SessionLimitsExhaustedRequested,
197 #[serde(rename = "session_limits_exhausted.completed")]
198 SessionLimitsExhaustedCompleted,
199 #[serde(rename = "session.auto_mode_resolved")]
207 SessionAutoModeResolved,
208 #[serde(rename = "session.managed_settings_resolved")]
216 SessionManagedSettingsResolved,
217 #[serde(rename = "session.managed_settings_enforced")]
225 SessionManagedSettingsEnforced,
226 #[serde(rename = "commands.changed")]
227 CommandsChanged,
228 #[serde(rename = "capabilities.changed")]
229 CapabilitiesChanged,
230 #[serde(rename = "exit_plan_mode.requested")]
231 ExitPlanModeRequested,
232 #[serde(rename = "exit_plan_mode.completed")]
233 ExitPlanModeCompleted,
234 #[serde(rename = "session.tools_updated")]
235 SessionToolsUpdated,
236 #[serde(rename = "session.background_tasks_changed")]
237 SessionBackgroundTasksChanged,
238 #[serde(rename = "factory.run_updated")]
246 FactoryRunUpdated,
247 #[serde(rename = "session.skills_loaded")]
248 SessionSkillsLoaded,
249 #[serde(rename = "session.custom_agents_updated")]
250 SessionCustomAgentsUpdated,
251 #[serde(rename = "session.mcp_servers_loaded")]
252 SessionMcpServersLoaded,
253 #[serde(rename = "session.mcp_server_status_changed")]
254 SessionMcpServerStatusChanged,
255 #[serde(rename = "mcp.tools.list_changed")]
256 McpToolsListChanged,
257 #[serde(rename = "mcp.resources.list_changed")]
258 McpResourcesListChanged,
259 #[serde(rename = "mcp.prompts.list_changed")]
260 McpPromptsListChanged,
261 #[serde(rename = "session.extensions_loaded")]
262 SessionExtensionsLoaded,
263 #[serde(rename = "session.canvas.opened")]
271 SessionCanvasOpened,
272 #[serde(rename = "session.canvas.registry_changed")]
280 SessionCanvasRegistryChanged,
281 #[serde(rename = "session.canvas.closed")]
289 SessionCanvasClosed,
290 #[serde(rename = "session.canvas.unavailable")]
298 SessionCanvasUnavailable,
299 #[serde(rename = "session.canvas.recorded")]
307 SessionCanvasRecorded,
308 #[serde(rename = "session.canvas.removed")]
316 SessionCanvasRemoved,
317 #[serde(rename = "session.extensions.attachments_pushed")]
318 SessionExtensionsAttachmentsPushed,
319 #[serde(rename = "mcp_app.tool_call_complete")]
320 McpAppToolCallComplete,
321 #[default]
323 #[serde(other)]
324 Unknown,
325}
326
327#[derive(Debug, Clone, Serialize, Deserialize)]
331#[serde(tag = "type", content = "data")]
332pub enum SessionEventData {
333 #[serde(rename = "session.start")]
334 SessionStart(SessionStartData),
335 #[serde(rename = "session.resume")]
336 SessionResume(SessionResumeData),
337 #[serde(rename = "session.remote_steerable_changed")]
338 SessionRemoteSteerableChanged(SessionRemoteSteerableChangedData),
339 #[serde(rename = "session.error")]
340 SessionError(SessionErrorData),
341 #[serde(rename = "session.idle")]
342 SessionIdle(SessionIdleData),
343 #[serde(rename = "session.title_changed")]
344 SessionTitleChanged(SessionTitleChangedData),
345 #[serde(rename = "session.schedule_created")]
346 SessionScheduleCreated(SessionScheduleCreatedData),
347 #[serde(rename = "session.schedule_cancelled")]
348 SessionScheduleCancelled(SessionScheduleCancelledData),
349 #[serde(rename = "session.schedule_rearmed")]
350 SessionScheduleRearmed(SessionScheduleRearmedData),
351 #[serde(rename = "session.autopilot_objective_changed")]
352 SessionAutopilotObjectiveChanged(SessionAutopilotObjectiveChangedData),
353 #[serde(rename = "session.info")]
354 SessionInfo(SessionInfoData),
355 #[serde(rename = "session.warning")]
356 SessionWarning(SessionWarningData),
357 #[serde(rename = "session.model_change")]
358 SessionModelChange(SessionModelChangeData),
359 #[serde(rename = "session.mode_changed")]
360 SessionModeChanged(SessionModeChangedData),
361 #[serde(rename = "session.session_limits_changed")]
362 SessionSessionLimitsChanged(SessionSessionLimitsChangedData),
363 #[serde(rename = "session.permissions_changed")]
364 SessionPermissionsChanged(SessionPermissionsChangedData),
365 #[serde(rename = "session.plan_changed")]
366 SessionPlanChanged(SessionPlanChangedData),
367 #[serde(rename = "session.todos_changed")]
368 SessionTodosChanged(SessionTodosChangedData),
369 #[serde(rename = "session.workspace_file_changed")]
370 SessionWorkspaceFileChanged(SessionWorkspaceFileChangedData),
371 #[serde(rename = "session.handoff")]
372 SessionHandoff(SessionHandoffData),
373 #[serde(rename = "session.truncation")]
374 SessionTruncation(SessionTruncationData),
375 #[serde(rename = "session.snapshot_rewind")]
376 SessionSnapshotRewind(SessionSnapshotRewindData),
377 #[serde(rename = "session.shutdown")]
378 SessionShutdown(SessionShutdownData),
379 #[serde(rename = "session.usage_checkpoint")]
380 SessionUsageCheckpoint(SessionUsageCheckpointData),
381 #[serde(rename = "session.context_changed")]
382 SessionContextChanged(SessionContextChangedData),
383 #[serde(rename = "session.usage_info")]
384 SessionUsageInfo(SessionUsageInfoData),
385 #[serde(rename = "session.context_cleared")]
386 SessionContextCleared(SessionContextClearedData),
387 #[serde(rename = "session.compaction_start")]
388 SessionCompactionStart(SessionCompactionStartData),
389 #[serde(rename = "session.compaction_complete")]
390 SessionCompactionComplete(SessionCompactionCompleteData),
391 #[serde(rename = "session.task_complete")]
392 SessionTaskComplete(SessionTaskCompleteData),
393 #[serde(rename = "user.message")]
394 UserMessage(UserMessageData),
395 #[serde(rename = "pending_messages.modified")]
396 PendingMessagesModified(PendingMessagesModifiedData),
397 #[serde(rename = "assistant.turn_start")]
398 AssistantTurnStart(AssistantTurnStartData),
399 #[serde(rename = "assistant.turn_retry")]
400 AssistantTurnRetry(AssistantTurnRetryData),
401 #[serde(rename = "assistant.intent")]
402 AssistantIntent(AssistantIntentData),
403 #[serde(rename = "assistant.server_tool_progress")]
404 AssistantServerToolProgress(AssistantServerToolProgressData),
405 #[serde(rename = "assistant.reasoning")]
406 AssistantReasoning(AssistantReasoningData),
407 #[serde(rename = "assistant.reasoning_delta")]
408 AssistantReasoningDelta(AssistantReasoningDeltaData),
409 #[serde(rename = "assistant.tool_call_delta")]
410 AssistantToolCallDelta(AssistantToolCallDeltaData),
411 #[serde(rename = "assistant.streaming_delta")]
412 AssistantStreamingDelta(AssistantStreamingDeltaData),
413 #[serde(rename = "assistant.message")]
414 AssistantMessage(AssistantMessageData),
415 #[serde(rename = "assistant.message_start")]
416 AssistantMessageStart(AssistantMessageStartData),
417 #[serde(rename = "assistant.message_delta")]
418 AssistantMessageDelta(AssistantMessageDeltaData),
419 #[serde(rename = "assistant.turn_end")]
420 AssistantTurnEnd(AssistantTurnEndData),
421 #[serde(rename = "assistant.idle")]
422 AssistantIdle(AssistantIdleData),
423 #[serde(rename = "assistant.usage")]
424 AssistantUsage(AssistantUsageData),
425 #[serde(rename = "model.call_failure")]
426 ModelCallFailure(ModelCallFailureData),
427 #[serde(rename = "model.call_start")]
428 ModelCallStart(ModelCallStartData),
429 #[serde(rename = "abort")]
430 Abort(AbortData),
431 #[serde(rename = "tool.user_requested")]
432 ToolUserRequested(ToolUserRequestedData),
433 #[serde(rename = "tool.execution_start")]
434 ToolExecutionStart(ToolExecutionStartData),
435 #[serde(rename = "tool.execution_partial_result")]
436 ToolExecutionPartialResult(ToolExecutionPartialResultData),
437 #[serde(rename = "tool.execution_progress")]
438 ToolExecutionProgress(ToolExecutionProgressData),
439 #[serde(rename = "tool.execution_complete")]
440 ToolExecutionComplete(ToolExecutionCompleteData),
441 #[serde(rename = "tool_search.activated")]
442 ToolSearchActivated(ToolSearchActivatedData),
443 #[serde(rename = "skill.invoked")]
444 SkillInvoked(SkillInvokedData),
445 #[serde(rename = "subagent.started")]
446 SubagentStarted(SubagentStartedData),
447 #[serde(rename = "subagent.completed")]
448 SubagentCompleted(SubagentCompletedData),
449 #[serde(rename = "subagent.failed")]
450 SubagentFailed(SubagentFailedData),
451 #[serde(rename = "subagent.selected")]
452 SubagentSelected(SubagentSelectedData),
453 #[serde(rename = "subagent.deselected")]
454 SubagentDeselected(SubagentDeselectedData),
455 #[serde(rename = "hook.start")]
456 HookStart(HookStartData),
457 #[serde(rename = "hook.end")]
458 HookEnd(HookEndData),
459 #[serde(rename = "hook.progress")]
460 HookProgress(HookProgressData),
461 #[serde(rename = "session.binary_asset")]
462 SessionBinaryAsset(SessionBinaryAssetData),
463 #[serde(rename = "system.message")]
464 SystemMessage(SystemMessageData),
465 #[serde(rename = "system.notification")]
466 SystemNotification(SystemNotificationData),
467 #[serde(rename = "permission.requested")]
468 PermissionRequested(PermissionRequestedData),
469 #[serde(rename = "permission.completed")]
470 PermissionCompleted(PermissionCompletedData),
471 #[serde(rename = "user_input.requested")]
472 UserInputRequested(UserInputRequestedData),
473 #[serde(rename = "user_input.completed")]
474 UserInputCompleted(UserInputCompletedData),
475 #[serde(rename = "elicitation.requested")]
476 ElicitationRequested(ElicitationRequestedData),
477 #[serde(rename = "elicitation.completed")]
478 ElicitationCompleted(ElicitationCompletedData),
479 #[serde(rename = "sampling.requested")]
480 SamplingRequested(SamplingRequestedData),
481 #[serde(rename = "sampling.completed")]
482 SamplingCompleted(SamplingCompletedData),
483 #[serde(rename = "mcp.oauth_required")]
484 McpOauthRequired(McpOauthRequiredData),
485 #[serde(rename = "mcp.oauth_completed")]
486 McpOauthCompleted(McpOauthCompletedData),
487 #[serde(rename = "mcp.headers_refresh_required")]
488 McpHeadersRefreshRequired(McpHeadersRefreshRequiredData),
489 #[serde(rename = "mcp.headers_refresh_completed")]
490 McpHeadersRefreshCompleted(McpHeadersRefreshCompletedData),
491 #[serde(rename = "session.custom_notification")]
492 SessionCustomNotification(SessionCustomNotificationData),
493 #[serde(rename = "external_tool.requested")]
494 ExternalToolRequested(ExternalToolRequestedData),
495 #[serde(rename = "external_tool.completed")]
496 ExternalToolCompleted(ExternalToolCompletedData),
497 #[serde(rename = "command.queued")]
498 CommandQueued(CommandQueuedData),
499 #[serde(rename = "command.execute")]
500 CommandExecute(CommandExecuteData),
501 #[serde(rename = "command.completed")]
502 CommandCompleted(CommandCompletedData),
503 #[serde(rename = "auto_mode_switch.requested")]
504 AutoModeSwitchRequested(AutoModeSwitchRequestedData),
505 #[serde(rename = "auto_mode_switch.completed")]
506 AutoModeSwitchCompleted(AutoModeSwitchCompletedData),
507 #[serde(rename = "session_limits_exhausted.requested")]
508 SessionLimitsExhaustedRequested(SessionLimitsExhaustedRequestedData),
509 #[serde(rename = "session_limits_exhausted.completed")]
510 SessionLimitsExhaustedCompleted(SessionLimitsExhaustedCompletedData),
511 #[serde(rename = "session.auto_mode_resolved")]
519 SessionAutoModeResolved(SessionAutoModeResolvedData),
520 #[serde(rename = "session.managed_settings_resolved")]
528 SessionManagedSettingsResolved(SessionManagedSettingsResolvedData),
529 #[serde(rename = "session.managed_settings_enforced")]
537 SessionManagedSettingsEnforced(SessionManagedSettingsEnforcedData),
538 #[serde(rename = "commands.changed")]
539 CommandsChanged(CommandsChangedData),
540 #[serde(rename = "capabilities.changed")]
541 CapabilitiesChanged(CapabilitiesChangedData),
542 #[serde(rename = "exit_plan_mode.requested")]
543 ExitPlanModeRequested(ExitPlanModeRequestedData),
544 #[serde(rename = "exit_plan_mode.completed")]
545 ExitPlanModeCompleted(ExitPlanModeCompletedData),
546 #[serde(rename = "session.tools_updated")]
547 SessionToolsUpdated(SessionToolsUpdatedData),
548 #[serde(rename = "session.background_tasks_changed")]
549 SessionBackgroundTasksChanged(SessionBackgroundTasksChangedData),
550 #[serde(rename = "factory.run_updated")]
558 FactoryRunUpdated(FactoryRunUpdatedData),
559 #[serde(rename = "session.skills_loaded")]
560 SessionSkillsLoaded(SessionSkillsLoadedData),
561 #[serde(rename = "session.custom_agents_updated")]
562 SessionCustomAgentsUpdated(SessionCustomAgentsUpdatedData),
563 #[serde(rename = "session.mcp_servers_loaded")]
564 SessionMcpServersLoaded(SessionMcpServersLoadedData),
565 #[serde(rename = "session.mcp_server_status_changed")]
566 SessionMcpServerStatusChanged(SessionMcpServerStatusChangedData),
567 #[serde(rename = "mcp.tools.list_changed")]
568 McpToolsListChanged(McpToolsListChangedData),
569 #[serde(rename = "mcp.resources.list_changed")]
570 McpResourcesListChanged(McpResourcesListChangedData),
571 #[serde(rename = "mcp.prompts.list_changed")]
572 McpPromptsListChanged(McpPromptsListChangedData),
573 #[serde(rename = "session.extensions_loaded")]
574 SessionExtensionsLoaded(SessionExtensionsLoadedData),
575 #[serde(rename = "session.canvas.opened")]
583 SessionCanvasOpened(SessionCanvasOpenedData),
584 #[serde(rename = "session.canvas.registry_changed")]
592 SessionCanvasRegistryChanged(SessionCanvasRegistryChangedData),
593 #[serde(rename = "session.canvas.closed")]
601 SessionCanvasClosed(SessionCanvasClosedData),
602 #[serde(rename = "session.canvas.unavailable")]
610 SessionCanvasUnavailable(SessionCanvasUnavailableData),
611 #[serde(rename = "session.canvas.recorded")]
619 SessionCanvasRecorded(SessionCanvasRecordedData),
620 #[serde(rename = "session.canvas.removed")]
628 SessionCanvasRemoved(SessionCanvasRemovedData),
629 #[serde(rename = "session.extensions.attachments_pushed")]
630 SessionExtensionsAttachmentsPushed(SessionExtensionsAttachmentsPushedData),
631 #[serde(rename = "mcp_app.tool_call_complete")]
632 McpAppToolCallComplete(McpAppToolCallCompleteData),
633}
634
635#[derive(Debug, Clone, Serialize, Deserialize)]
641#[serde(rename_all = "camelCase")]
642pub struct TypedSessionEvent {
643 pub id: String,
645 pub timestamp: String,
647 #[serde(skip_serializing_if = "Option::is_none")]
649 pub parent_id: Option<String>,
650 #[serde(skip_serializing_if = "Option::is_none")]
652 pub ephemeral: Option<bool>,
653 #[serde(skip_serializing_if = "Option::is_none")]
656 pub agent_id: Option<String>,
657 #[serde(flatten)]
659 pub payload: SessionEventData,
660}
661
662#[derive(Debug, Clone, Default, Serialize, Deserialize)]
664#[serde(rename_all = "camelCase")]
665pub struct WorkingDirectoryContext {
666 #[serde(skip_serializing_if = "Option::is_none")]
668 pub base_commit: Option<String>,
669 #[serde(skip_serializing_if = "Option::is_none")]
671 pub branch: Option<String>,
672 pub cwd: String,
674 #[serde(skip_serializing_if = "Option::is_none")]
676 pub git_root: Option<String>,
677 #[serde(skip_serializing_if = "Option::is_none")]
679 pub head_commit: Option<String>,
680 #[serde(skip_serializing_if = "Option::is_none")]
682 pub host_type: Option<WorkingDirectoryContextHostType>,
683 #[serde(skip_serializing_if = "Option::is_none")]
685 pub pending_git_context: Option<bool>,
686 #[serde(skip_serializing_if = "Option::is_none")]
688 pub repository: Option<String>,
689 #[serde(skip_serializing_if = "Option::is_none")]
691 pub repository_host: Option<String>,
692}
693
694#[derive(Debug, Clone, Default, Serialize, Deserialize)]
696#[serde(rename_all = "camelCase")]
697pub struct GitHubMcpToolConfig {
698 #[serde(skip_serializing_if = "Option::is_none")]
700 pub additional_tools: Option<Vec<String>>,
701 #[serde(skip_serializing_if = "Option::is_none")]
703 pub additional_toolsets: Option<Vec<String>>,
704 #[serde(skip_serializing_if = "Option::is_none")]
706 pub enable_all_tools: Option<bool>,
707 #[serde(skip_serializing_if = "Option::is_none")]
709 pub enable_insiders_mode: Option<bool>,
710}
711
712#[derive(Debug, Clone, Default, Serialize, Deserialize)]
714#[serde(rename_all = "camelCase")]
715pub struct SessionLimitsConfig {
716 #[serde(skip_serializing_if = "Option::is_none")]
718 pub max_ai_credits: Option<f64>,
719}
720
721#[derive(Debug, Clone, Default, Serialize, Deserialize)]
723#[serde(rename_all = "camelCase")]
724pub struct SessionStartData {
725 #[serde(skip_serializing_if = "Option::is_none")]
727 pub already_in_use: Option<bool>,
728 #[serde(skip_serializing_if = "Option::is_none")]
730 pub context: Option<WorkingDirectoryContext>,
731 #[serde(skip_serializing_if = "Option::is_none")]
733 pub context_tier: Option<ContextTier>,
734 pub copilot_version: String,
736 #[serde(skip_serializing_if = "Option::is_none")]
738 pub detached_from_spawning_parent_session_id: Option<String>,
739 #[serde(skip_serializing_if = "Option::is_none")]
741 pub github_mcp_tool_config: Option<GitHubMcpToolConfig>,
742 pub producer: String,
744 #[serde(skip_serializing_if = "Option::is_none")]
746 pub reasoning_effort: Option<String>,
747 #[serde(skip_serializing_if = "Option::is_none")]
749 pub reasoning_summary: Option<ReasoningSummary>,
750 #[serde(skip_serializing_if = "Option::is_none")]
752 pub remote_steerable: Option<bool>,
753 #[serde(skip_serializing_if = "Option::is_none")]
755 pub selected_model: Option<String>,
756 pub session_id: SessionId,
758 #[serde(skip_serializing_if = "Option::is_none")]
760 pub session_limits: Option<SessionLimitsConfig>,
761 pub start_time: String,
763 #[serde(skip_serializing_if = "Option::is_none")]
765 pub verbosity: Option<Verbosity>,
766 pub version: i64,
768}
769
770#[derive(Debug, Clone, Default, Serialize, Deserialize)]
772#[serde(rename_all = "camelCase")]
773pub struct SessionResumeData {
774 #[serde(skip_serializing_if = "Option::is_none")]
776 pub already_in_use: Option<bool>,
777 #[serde(skip_serializing_if = "Option::is_none")]
779 pub context: Option<WorkingDirectoryContext>,
780 #[serde(skip_serializing_if = "Option::is_none")]
782 pub context_tier: Option<ContextTier>,
783 #[serde(skip_serializing_if = "Option::is_none")]
785 pub continue_pending_work: Option<bool>,
786 pub event_count: i64,
788 #[serde(skip_serializing_if = "Option::is_none")]
790 pub events_file_size_bytes: Option<i64>,
791 #[serde(skip_serializing_if = "Option::is_none")]
793 pub reasoning_effort: Option<String>,
794 #[serde(skip_serializing_if = "Option::is_none")]
796 pub reasoning_summary: Option<ReasoningSummary>,
797 #[serde(skip_serializing_if = "Option::is_none")]
799 pub remote_steerable: Option<bool>,
800 pub resume_time: String,
802 #[serde(skip_serializing_if = "Option::is_none")]
804 pub selected_model: Option<String>,
805 #[serde(skip_serializing_if = "Option::is_none")]
807 pub session_limits: Option<SessionLimitsConfig>,
808 #[serde(skip_serializing_if = "Option::is_none")]
810 pub session_was_active: Option<bool>,
811 #[serde(skip_serializing_if = "Option::is_none")]
813 pub verbosity: Option<Verbosity>,
814}
815
816#[derive(Debug, Clone, Default, Serialize, Deserialize)]
818#[serde(rename_all = "camelCase")]
819pub struct SessionRemoteSteerableChangedData {
820 pub remote_steerable: bool,
822}
823
824#[derive(Debug, Clone, Default, Serialize, Deserialize)]
826#[serde(rename_all = "camelCase")]
827pub struct SessionErrorData {
828 #[serde(skip_serializing_if = "Option::is_none")]
830 pub eligible_for_auto_switch: Option<bool>,
831 #[serde(skip_serializing_if = "Option::is_none")]
833 pub error_code: Option<String>,
834 pub error_type: String,
836 pub message: String,
838 #[serde(skip_serializing_if = "Option::is_none")]
840 pub provider_call_id: Option<String>,
841 #[serde(skip_serializing_if = "Option::is_none")]
843 pub service_request_id: Option<String>,
844 #[serde(skip_serializing_if = "Option::is_none")]
846 pub stack: Option<String>,
847 #[serde(skip_serializing_if = "Option::is_none")]
849 pub status_code: Option<i32>,
850 #[serde(skip_serializing_if = "Option::is_none")]
852 pub url: Option<String>,
853}
854
855#[derive(Debug, Clone, Default, Serialize, Deserialize)]
857#[serde(rename_all = "camelCase")]
858pub struct SessionIdleData {
859 #[serde(skip_serializing_if = "Option::is_none")]
861 pub aborted: Option<bool>,
862}
863
864#[derive(Debug, Clone, Default, Serialize, Deserialize)]
866#[serde(rename_all = "camelCase")]
867pub struct SessionTitleChangedData {
868 pub title: String,
870}
871
872#[derive(Debug, Clone, Default, Serialize, Deserialize)]
874#[serde(rename_all = "camelCase")]
875pub struct SessionScheduleCreatedData {
876 #[serde(skip_serializing_if = "Option::is_none")]
878 pub at: Option<i64>,
879 #[serde(skip_serializing_if = "Option::is_none")]
881 pub cron: Option<String>,
882 #[serde(skip_serializing_if = "Option::is_none")]
884 pub display_prompt: Option<String>,
885 pub id: i64,
887 #[serde(skip_serializing_if = "Option::is_none")]
889 pub interval_ms: Option<i64>,
890 #[serde(skip_serializing_if = "Option::is_none")]
892 pub origin: Option<ScheduleOrigin>,
893 pub prompt: String,
895 #[serde(skip_serializing_if = "Option::is_none")]
897 pub recurring: Option<bool>,
898 #[serde(skip_serializing_if = "Option::is_none")]
900 pub self_paced: Option<bool>,
901 #[serde(skip_serializing_if = "Option::is_none")]
903 pub tz: Option<String>,
904}
905
906#[derive(Debug, Clone, Default, Serialize, Deserialize)]
908#[serde(rename_all = "camelCase")]
909pub struct SessionScheduleCancelledData {
910 pub id: i64,
912}
913
914#[derive(Debug, Clone, Default, Serialize, Deserialize)]
916#[serde(rename_all = "camelCase")]
917pub struct SessionScheduleRearmedData {
918 pub id: i64,
920 pub next_run_at: i64,
922}
923
924#[derive(Debug, Clone, Default, Serialize, Deserialize)]
926#[serde(rename_all = "camelCase")]
927pub struct SessionAutopilotObjectiveChangedData {
928 #[serde(skip_serializing_if = "Option::is_none")]
930 pub id: Option<i64>,
931 pub operation: AutopilotObjectiveChangedOperation,
933 #[serde(skip_serializing_if = "Option::is_none")]
935 pub status: Option<AutopilotObjectiveChangedStatus>,
936}
937
938#[derive(Debug, Clone, Default, Serialize, Deserialize)]
940#[serde(rename_all = "camelCase")]
941pub struct SessionInfoData {
942 pub info_type: String,
944 pub message: String,
946 #[serde(skip_serializing_if = "Option::is_none")]
948 pub tip: Option<String>,
949 #[serde(skip_serializing_if = "Option::is_none")]
951 pub url: Option<String>,
952}
953
954#[derive(Debug, Clone, Default, Serialize, Deserialize)]
956#[serde(rename_all = "camelCase")]
957pub struct SessionWarningData {
958 pub message: String,
960 #[serde(skip_serializing_if = "Option::is_none")]
962 pub url: Option<String>,
963 pub warning_type: String,
965}
966
967#[derive(Debug, Clone, Default, Serialize, Deserialize)]
969#[serde(rename_all = "camelCase")]
970pub struct SessionModelChangeData {
971 #[serde(skip_serializing_if = "Option::is_none")]
973 pub cause: Option<String>,
974 #[serde(skip_serializing_if = "Option::is_none")]
976 pub context_tier: Option<ContextTier>,
977 pub new_model: String,
979 #[serde(skip_serializing_if = "Option::is_none")]
981 pub previous_model: Option<String>,
982 #[serde(skip_serializing_if = "Option::is_none")]
984 pub previous_reasoning_effort: Option<String>,
985 #[serde(skip_serializing_if = "Option::is_none")]
987 pub previous_reasoning_summary: Option<ReasoningSummary>,
988 #[serde(skip_serializing_if = "Option::is_none")]
990 pub previous_verbosity: Option<Verbosity>,
991 #[serde(skip_serializing_if = "Option::is_none")]
993 pub reasoning_effort: Option<String>,
994 #[serde(skip_serializing_if = "Option::is_none")]
996 pub reasoning_summary: Option<ReasoningSummary>,
997 #[serde(skip_serializing_if = "Option::is_none")]
999 pub verbosity: Option<Verbosity>,
1000}
1001
1002#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1004#[serde(rename_all = "camelCase")]
1005pub struct SessionModeChangedData {
1006 pub new_mode: SessionMode,
1008 pub previous_mode: SessionMode,
1010}
1011
1012#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1014#[serde(rename_all = "camelCase")]
1015pub struct SessionSessionLimitsChangedData {
1016 pub session_limits: Option<SessionLimitsConfig>,
1018}
1019
1020#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1022#[serde(rename_all = "camelCase")]
1023pub struct SessionPermissionsChangedData {
1024 #[serde(skip_serializing_if = "Option::is_none")]
1033 pub allow_all_permission_mode: Option<PermissionAllowAllMode>,
1034 pub allow_all_permissions: bool,
1036 #[serde(skip_serializing_if = "Option::is_none")]
1045 pub previous_allow_all_permission_mode: Option<PermissionAllowAllMode>,
1046 pub previous_allow_all_permissions: bool,
1048}
1049
1050#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1052#[serde(rename_all = "camelCase")]
1053pub struct SessionPlanChangedData {
1054 pub operation: PlanChangedOperation,
1056}
1057
1058#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1060#[serde(rename_all = "camelCase")]
1061pub struct SessionTodosChangedData {}
1062
1063#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1065#[serde(rename_all = "camelCase")]
1066pub struct SessionWorkspaceFileChangedData {
1067 pub operation: WorkspaceFileChangedOperation,
1069 pub path: String,
1071}
1072
1073#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1075#[serde(rename_all = "camelCase")]
1076pub struct HandoffRepository {
1077 #[serde(skip_serializing_if = "Option::is_none")]
1079 pub branch: Option<String>,
1080 pub name: String,
1082 pub owner: String,
1084}
1085
1086#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1088#[serde(rename_all = "camelCase")]
1089pub struct SessionHandoffData {
1090 #[serde(skip_serializing_if = "Option::is_none")]
1092 pub context: Option<String>,
1093 pub handoff_time: String,
1095 #[serde(skip_serializing_if = "Option::is_none")]
1097 pub host: Option<String>,
1098 #[serde(skip_serializing_if = "Option::is_none")]
1100 pub remote_session_id: Option<SessionId>,
1101 #[serde(skip_serializing_if = "Option::is_none")]
1103 pub repository: Option<HandoffRepository>,
1104 pub source_type: HandoffSourceType,
1106 #[serde(skip_serializing_if = "Option::is_none")]
1108 pub summary: Option<String>,
1109}
1110
1111#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1113#[serde(rename_all = "camelCase")]
1114pub struct SessionTruncationData {
1115 pub messages_removed_during_truncation: i64,
1117 pub performed_by: String,
1119 pub post_truncation_messages_length: i64,
1121 pub post_truncation_tokens_in_messages: i64,
1123 pub pre_truncation_messages_length: i64,
1125 pub pre_truncation_tokens_in_messages: i64,
1127 pub token_limit: i64,
1129 pub tokens_removed_during_truncation: i64,
1131}
1132
1133#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1135#[serde(rename_all = "camelCase")]
1136pub struct SessionSnapshotRewindData {
1137 pub events_removed: i64,
1139 pub up_to_event_id: String,
1141}
1142
1143#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1145#[serde(rename_all = "camelCase")]
1146pub struct ShutdownCodeChanges {
1147 pub files_modified: Vec<String>,
1149 pub lines_added: i64,
1151 pub lines_removed: i64,
1153}
1154
1155#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1157#[serde(rename_all = "camelCase")]
1158pub struct ShutdownModelMetricRequests {
1159 #[serde(skip_serializing_if = "Option::is_none")]
1168 pub cost: Option<f64>,
1169 #[serde(skip_serializing_if = "Option::is_none")]
1178 pub count: Option<i64>,
1179}
1180
1181#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1183#[serde(rename_all = "camelCase")]
1184pub struct ShutdownModelMetricTokenDetail {
1185 pub token_count: i64,
1187}
1188
1189#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1191#[serde(rename_all = "camelCase")]
1192pub struct ShutdownModelMetricUsage {
1193 pub cache_read_tokens: i64,
1195 pub cache_write_tokens: i64,
1197 pub input_tokens: i64,
1199 pub output_tokens: i64,
1201 #[serde(skip_serializing_if = "Option::is_none")]
1203 pub reasoning_tokens: Option<i64>,
1204}
1205
1206#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1208#[serde(rename_all = "camelCase")]
1209pub struct ShutdownModelMetric {
1210 pub requests: ShutdownModelMetricRequests,
1212 #[serde(skip_serializing_if = "Option::is_none")]
1214 pub token_details: Option<HashMap<String, ShutdownModelMetricTokenDetail>>,
1215 #[serde(skip_serializing_if = "Option::is_none")]
1224 pub total_nano_aiu: Option<f64>,
1225 pub usage: ShutdownModelMetricUsage,
1227}
1228
1229#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1231#[serde(rename_all = "camelCase")]
1232pub struct ShutdownTokenDetail {
1233 pub token_count: i64,
1235}
1236
1237#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1239#[serde(rename_all = "camelCase")]
1240pub struct SessionShutdownData {
1241 pub code_changes: ShutdownCodeChanges,
1243 #[serde(skip_serializing_if = "Option::is_none")]
1245 pub conversation_tokens: Option<i64>,
1246 #[serde(skip_serializing_if = "Option::is_none")]
1248 pub current_model: Option<String>,
1249 #[serde(skip_serializing_if = "Option::is_none")]
1251 pub current_tokens: Option<i64>,
1252 #[serde(skip_serializing_if = "Option::is_none")]
1254 pub error_reason: Option<String>,
1255 #[serde(skip_serializing_if = "Option::is_none")]
1257 pub events_file_size_bytes: Option<i64>,
1258 pub model_metrics: HashMap<String, ShutdownModelMetric>,
1260 pub session_start_time: i64,
1262 pub shutdown_type: ShutdownType,
1264 #[serde(skip_serializing_if = "Option::is_none")]
1266 pub system_tokens: Option<i64>,
1267 #[serde(skip_serializing_if = "Option::is_none")]
1269 pub token_details: Option<HashMap<String, ShutdownTokenDetail>>,
1270 #[serde(skip_serializing_if = "Option::is_none")]
1272 pub tool_definitions_tokens: Option<i64>,
1273 pub total_api_duration_ms: i64,
1275 #[serde(skip_serializing_if = "Option::is_none")]
1284 pub total_nano_aiu: Option<f64>,
1285 #[doc(hidden)]
1287 #[serde(skip_serializing_if = "Option::is_none")]
1288 pub(crate) total_premium_requests: Option<f64>,
1289}
1290
1291#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1293#[serde(rename_all = "camelCase")]
1294pub(crate) struct UsageCheckpointModelCacheState {
1295 pub cache_expires_at: String,
1297 #[doc(hidden)]
1299 pub(crate) cache_ttl_seconds: i64,
1300 pub model_id: String,
1302}
1303
1304#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1306#[serde(rename_all = "camelCase")]
1307pub struct SessionUsageCheckpointData {
1308 #[doc(hidden)]
1310 #[serde(skip_serializing_if = "Option::is_none")]
1311 pub(crate) model_cache_state: Option<Vec<UsageCheckpointModelCacheState>>,
1312 pub total_nano_aiu: f64,
1314 #[doc(hidden)]
1316 #[serde(skip_serializing_if = "Option::is_none")]
1317 pub(crate) total_premium_requests: Option<f64>,
1318}
1319
1320#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1322#[serde(rename_all = "camelCase")]
1323pub struct SessionContextChangedData {
1324 #[serde(skip_serializing_if = "Option::is_none")]
1326 pub base_commit: Option<String>,
1327 #[serde(skip_serializing_if = "Option::is_none")]
1329 pub branch: Option<String>,
1330 pub cwd: String,
1332 #[serde(skip_serializing_if = "Option::is_none")]
1334 pub git_root: Option<String>,
1335 #[serde(skip_serializing_if = "Option::is_none")]
1337 pub head_commit: Option<String>,
1338 #[serde(skip_serializing_if = "Option::is_none")]
1340 pub host_type: Option<WorkingDirectoryContextHostType>,
1341 #[serde(skip_serializing_if = "Option::is_none")]
1343 pub pending_git_context: Option<bool>,
1344 #[serde(skip_serializing_if = "Option::is_none")]
1346 pub repository: Option<String>,
1347 #[serde(skip_serializing_if = "Option::is_none")]
1349 pub repository_host: Option<String>,
1350}
1351
1352#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1354#[serde(rename_all = "camelCase")]
1355pub struct SessionUsageInfoData {
1356 #[serde(skip_serializing_if = "Option::is_none")]
1358 pub conversation_tokens: Option<i64>,
1359 pub current_tokens: i64,
1361 #[serde(skip_serializing_if = "Option::is_none")]
1363 pub is_initial: Option<bool>,
1364 pub messages_length: i64,
1366 #[serde(skip_serializing_if = "Option::is_none")]
1368 pub system_tokens: Option<i64>,
1369 pub token_limit: i64,
1371 #[serde(skip_serializing_if = "Option::is_none")]
1373 pub tool_definitions_tokens: Option<i64>,
1374}
1375
1376#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1378#[serde(rename_all = "camelCase")]
1379pub struct SessionContextClearedData {
1380 #[serde(skip_serializing_if = "Option::is_none")]
1382 pub initial_message: Option<String>,
1383 pub messages_cleared: i64,
1385}
1386
1387#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1389#[serde(rename_all = "camelCase")]
1390pub struct SessionCompactionStartData {
1391 #[serde(skip_serializing_if = "Option::is_none")]
1393 pub conversation_tokens: Option<i64>,
1394 #[serde(skip_serializing_if = "Option::is_none")]
1396 pub current_tokens: Option<i64>,
1397 #[serde(skip_serializing_if = "Option::is_none")]
1399 pub model: Option<String>,
1400 #[serde(skip_serializing_if = "Option::is_none")]
1402 pub system_tokens: Option<i64>,
1403 #[serde(skip_serializing_if = "Option::is_none")]
1405 pub token_limit: Option<i64>,
1406 #[serde(skip_serializing_if = "Option::is_none")]
1408 pub tool_definitions_tokens: Option<i64>,
1409 #[serde(skip_serializing_if = "Option::is_none")]
1411 pub trigger: Option<CompactionTrigger>,
1412}
1413
1414#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1416#[serde(rename_all = "camelCase")]
1417pub struct CompactionCompleteCompactionTokensUsedCopilotUsageTokenDetail {
1418 pub batch_size: i64,
1420 pub cost_per_batch: i64,
1422 pub token_count: i64,
1424 pub token_type: String,
1426}
1427
1428#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1430#[serde(rename_all = "camelCase")]
1431pub(crate) struct CompactionCompleteCompactionTokensUsedCopilotUsage {
1432 #[doc(hidden)]
1434 #[serde(skip_serializing_if = "Option::is_none")]
1435 pub(crate) token_details:
1436 Option<Vec<CompactionCompleteCompactionTokensUsedCopilotUsageTokenDetail>>,
1437 pub total_nano_aiu: f64,
1439}
1440
1441#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1443#[serde(rename_all = "camelCase")]
1444pub struct CompactionCompleteCompactionTokensUsed {
1445 #[serde(skip_serializing_if = "Option::is_none")]
1447 pub cache_read_tokens: Option<i64>,
1448 #[serde(skip_serializing_if = "Option::is_none")]
1450 pub cache_write_tokens: Option<i64>,
1451 #[doc(hidden)]
1453 #[serde(skip_serializing_if = "Option::is_none")]
1454 pub(crate) copilot_usage: Option<CompactionCompleteCompactionTokensUsedCopilotUsage>,
1455 #[serde(skip_serializing_if = "Option::is_none")]
1457 pub duration: Option<i64>,
1458 #[serde(skip_serializing_if = "Option::is_none")]
1460 pub input_tokens: Option<i64>,
1461 #[serde(skip_serializing_if = "Option::is_none")]
1463 pub model: Option<String>,
1464 #[serde(skip_serializing_if = "Option::is_none")]
1466 pub output_tokens: Option<i64>,
1467}
1468
1469#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1471#[serde(rename_all = "camelCase")]
1472pub struct SessionCompactionCompleteData {
1473 #[serde(skip_serializing_if = "Option::is_none")]
1475 pub checkpoint_number: Option<i64>,
1476 #[serde(skip_serializing_if = "Option::is_none")]
1478 pub checkpoint_path: Option<String>,
1479 #[serde(skip_serializing_if = "Option::is_none")]
1481 pub compaction_tokens_used: Option<CompactionCompleteCompactionTokensUsed>,
1482 #[serde(skip_serializing_if = "Option::is_none")]
1484 pub conversation_tokens: Option<i64>,
1485 #[serde(skip_serializing_if = "Option::is_none")]
1487 pub custom_instructions: Option<String>,
1488 #[serde(skip_serializing_if = "Option::is_none")]
1490 pub error: Option<String>,
1491 #[serde(skip_serializing_if = "Option::is_none")]
1493 pub messages_removed: Option<i64>,
1494 #[serde(skip_serializing_if = "Option::is_none")]
1496 pub post_compaction_tokens: Option<i64>,
1497 #[serde(skip_serializing_if = "Option::is_none")]
1499 pub pre_compaction_messages_length: Option<i64>,
1500 #[serde(skip_serializing_if = "Option::is_none")]
1502 pub pre_compaction_tokens: Option<i64>,
1503 #[serde(skip_serializing_if = "Option::is_none")]
1505 pub request_id: Option<RequestId>,
1506 #[serde(skip_serializing_if = "Option::is_none")]
1508 pub service_request_id: Option<String>,
1509 #[serde(skip_serializing_if = "Option::is_none")]
1511 pub status_code: Option<i64>,
1512 pub success: bool,
1514 #[serde(skip_serializing_if = "Option::is_none")]
1516 pub summary_content: Option<String>,
1517 #[serde(skip_serializing_if = "Option::is_none")]
1519 pub system_tokens: Option<i64>,
1520 #[serde(skip_serializing_if = "Option::is_none")]
1522 pub token_limit: Option<i64>,
1523 #[serde(skip_serializing_if = "Option::is_none")]
1525 pub tokens_removed: Option<i64>,
1526 #[serde(skip_serializing_if = "Option::is_none")]
1528 pub tool_definitions_tokens: Option<i64>,
1529 #[serde(skip_serializing_if = "Option::is_none")]
1531 pub trigger: Option<CompactionTrigger>,
1532}
1533
1534#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1536#[serde(rename_all = "camelCase")]
1537pub struct SessionTaskCompleteData {
1538 #[serde(skip_serializing_if = "Option::is_none")]
1540 pub objective_id: Option<i64>,
1541 #[serde(skip_serializing_if = "Option::is_none")]
1543 pub outcome: Option<TaskCompletionOutcome>,
1544 #[serde(skip_serializing_if = "Option::is_none")]
1546 pub reason: Option<String>,
1547 #[serde(skip_serializing_if = "Option::is_none")]
1549 pub success: Option<bool>,
1550 #[serde(skip_serializing_if = "Option::is_none")]
1552 pub summary: Option<String>,
1553}
1554
1555#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1557#[serde(rename_all = "camelCase")]
1558pub struct UserMessageData {
1559 #[serde(skip_serializing_if = "Option::is_none")]
1561 pub agent_mode: Option<UserMessageAgentMode>,
1562 #[serde(skip_serializing_if = "Option::is_none")]
1564 pub attachments: Option<Vec<serde_json::Value>>,
1565 pub content: String,
1567 #[serde(skip_serializing_if = "Option::is_none")]
1569 pub delivery: Option<UserMessageDelivery>,
1570 #[serde(skip_serializing_if = "Option::is_none")]
1572 pub interaction_id: Option<String>,
1573 #[serde(skip_serializing_if = "Option::is_none")]
1575 pub is_autopilot_continuation: Option<bool>,
1576 #[serde(skip_serializing_if = "Option::is_none")]
1578 pub native_document_path_fallback_paths: Option<Vec<String>>,
1579 #[serde(skip_serializing_if = "Option::is_none")]
1581 pub parent_agent_task_id: Option<String>,
1582 #[serde(skip_serializing_if = "Option::is_none")]
1584 pub source: Option<String>,
1585 #[serde(skip_serializing_if = "Option::is_none")]
1587 pub supported_native_document_mime_types: Option<Vec<String>>,
1588 #[serde(skip_serializing_if = "Option::is_none")]
1590 pub transformed_content: Option<String>,
1591}
1592
1593#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1595#[serde(rename_all = "camelCase")]
1596pub struct PendingMessagesModifiedData {}
1597
1598#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1600#[serde(rename_all = "camelCase")]
1601pub struct AssistantTurnStartData {
1602 #[serde(skip_serializing_if = "Option::is_none")]
1604 pub interaction_id: Option<String>,
1605 #[serde(skip_serializing_if = "Option::is_none")]
1607 pub model: Option<String>,
1608 pub turn_id: String,
1610}
1611
1612#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1614#[serde(rename_all = "camelCase")]
1615pub struct AssistantTurnRetryData {
1616 #[serde(skip_serializing_if = "Option::is_none")]
1618 pub model: Option<String>,
1619 #[serde(skip_serializing_if = "Option::is_none")]
1621 pub reason: Option<String>,
1622 pub turn_id: String,
1624}
1625
1626#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1628#[serde(rename_all = "camelCase")]
1629pub struct AssistantIntentData {
1630 pub intent: String,
1632}
1633
1634#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1636#[serde(rename_all = "camelCase")]
1637pub struct AssistantServerToolProgressData {
1638 pub kind: String,
1640 pub output_index: i64,
1642 pub status: String,
1644}
1645
1646#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1648#[serde(rename_all = "camelCase")]
1649pub struct AssistantReasoningData {
1650 pub content: String,
1652 pub reasoning_id: String,
1654 #[serde(skip_serializing_if = "Option::is_none")]
1655 pub rte: Option<bool>,
1656}
1657
1658#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1660#[serde(rename_all = "camelCase")]
1661pub struct AssistantReasoningDeltaData {
1662 pub delta_content: String,
1664 pub reasoning_id: String,
1666}
1667
1668#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1670#[serde(rename_all = "camelCase")]
1671pub struct AssistantToolCallDeltaData {
1672 pub input_delta: String,
1674 pub tool_call_id: String,
1676 #[serde(skip_serializing_if = "Option::is_none")]
1678 pub tool_name: Option<String>,
1679 #[serde(skip_serializing_if = "Option::is_none")]
1681 pub tool_type: Option<AssistantMessageToolRequestType>,
1682}
1683
1684#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1686#[serde(rename_all = "camelCase")]
1687pub struct AssistantStreamingDeltaData {
1688 pub total_response_size_bytes: i64,
1690}
1691
1692#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1701#[serde(rename_all = "camelCase")]
1702pub struct CitationSource {
1703 pub id: String,
1705 #[serde(skip_serializing_if = "Option::is_none")]
1707 pub path: Option<String>,
1708 pub provider: CitationProvider,
1710 #[serde(skip_serializing_if = "Option::is_none")]
1712 pub title: Option<String>,
1713 #[serde(skip_serializing_if = "Option::is_none")]
1715 pub url: Option<String>,
1716}
1717
1718#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1727#[serde(rename_all = "camelCase")]
1728pub struct CitationReference {
1729 #[serde(skip_serializing_if = "Option::is_none")]
1731 pub cited_text: Option<String>,
1732 #[serde(skip_serializing_if = "Option::is_none")]
1734 pub location: Option<serde_json::Value>,
1735 #[serde(skip_serializing_if = "Option::is_none")]
1737 pub provider_metadata: Option<serde_json::Value>,
1738 pub source_id: String,
1740}
1741
1742#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1751#[serde(rename_all = "camelCase")]
1752pub struct CitationSpan {
1753 pub end_index: i64,
1755 pub references: Vec<CitationReference>,
1757 pub start_index: i64,
1759}
1760
1761#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1770#[serde(rename_all = "camelCase")]
1771pub struct Citations {
1772 pub sources: Vec<CitationSource>,
1774 pub spans: Vec<CitationSpan>,
1776}
1777
1778#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1787#[serde(rename_all = "camelCase")]
1788pub struct AssistantMessageServerTools {
1789 #[serde(skip_serializing_if = "Option::is_none")]
1790 pub advisor_model: Option<String>,
1791 #[serde(skip_serializing_if = "Option::is_none")]
1792 pub function_call_namespaces: Option<HashMap<String, String>>,
1793 #[serde(skip_serializing_if = "Option::is_none")]
1794 pub items: Option<Vec<serde_json::Value>>,
1795 pub provider: String,
1796 #[serde(skip_serializing_if = "Option::is_none")]
1797 pub raw_content_blocks: Option<Vec<serde_json::Value>>,
1798}
1799
1800#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1802#[serde(rename_all = "camelCase")]
1803pub struct AssistantMessageToolRequest {
1804 #[serde(skip_serializing_if = "Option::is_none")]
1806 pub arguments: Option<serde_json::Value>,
1807 #[serde(skip_serializing_if = "Option::is_none")]
1809 pub intention_summary: Option<String>,
1810 #[serde(skip_serializing_if = "Option::is_none")]
1812 pub mcp_server_name: Option<String>,
1813 #[serde(skip_serializing_if = "Option::is_none")]
1815 pub mcp_tool_name: Option<String>,
1816 pub name: String,
1818 pub tool_call_id: String,
1820 #[serde(skip_serializing_if = "Option::is_none")]
1822 pub tool_title: Option<String>,
1823 #[serde(skip_serializing_if = "Option::is_none")]
1825 pub r#type: Option<AssistantMessageToolRequestType>,
1826}
1827
1828#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1830#[serde(rename_all = "camelCase")]
1831pub struct AssistantMessageData {
1832 #[serde(skip_serializing_if = "Option::is_none")]
1834 pub api_call_id: Option<String>,
1835 #[serde(skip_serializing_if = "Option::is_none")]
1837 pub chunk_count: Option<i64>,
1838 #[serde(skip_serializing_if = "Option::is_none")]
1840 pub chunk_index: Option<i64>,
1841 #[serde(skip_serializing_if = "Option::is_none")]
1850 pub citations: Option<Citations>,
1851 #[serde(skip_serializing_if = "Option::is_none")]
1853 pub client_request_id: Option<String>,
1854 pub content: String,
1856 #[serde(skip_serializing_if = "Option::is_none")]
1858 pub encrypted_content: Option<String>,
1859 #[serde(skip_serializing_if = "Option::is_none")]
1861 pub interaction_id: Option<String>,
1862 pub message_id: String,
1864 #[serde(skip_serializing_if = "Option::is_none")]
1866 pub model: Option<String>,
1867 #[serde(skip_serializing_if = "Option::is_none")]
1869 pub output_tokens: Option<i64>,
1870 #[doc(hidden)]
1872 #[deprecated]
1873 #[serde(skip_serializing_if = "Option::is_none")]
1874 pub parent_tool_call_id: Option<String>,
1875 #[serde(skip_serializing_if = "Option::is_none")]
1877 pub phase: Option<String>,
1878 #[serde(skip_serializing_if = "Option::is_none")]
1880 pub reasoning_opaque: Option<String>,
1881 #[serde(skip_serializing_if = "Option::is_none")]
1883 pub reasoning_text: Option<String>,
1884 #[serde(skip_serializing_if = "Option::is_none")]
1886 pub reasoning_wire_field: Option<String>,
1887 #[serde(skip_serializing_if = "Option::is_none")]
1889 pub request_id: Option<RequestId>,
1890 #[serde(skip_serializing_if = "Option::is_none")]
1891 pub rte: Option<bool>,
1892 #[serde(skip_serializing_if = "Option::is_none")]
1894 pub server_tools: Option<AssistantMessageServerTools>,
1895 #[serde(skip_serializing_if = "Option::is_none")]
1897 pub service_request_id: Option<String>,
1898 #[serde(skip_serializing_if = "Option::is_none")]
1900 pub tool_requests: Option<Vec<AssistantMessageToolRequest>>,
1901 #[serde(skip_serializing_if = "Option::is_none")]
1903 pub turn_id: Option<String>,
1904}
1905
1906#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1908#[serde(rename_all = "camelCase")]
1909pub struct AssistantMessageStartData {
1910 pub message_id: String,
1912 #[serde(skip_serializing_if = "Option::is_none")]
1914 pub phase: Option<String>,
1915}
1916
1917#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1919#[serde(rename_all = "camelCase")]
1920pub struct AssistantMessageDeltaData {
1921 pub delta_content: String,
1923 pub message_id: String,
1925 #[doc(hidden)]
1927 #[deprecated]
1928 #[serde(skip_serializing_if = "Option::is_none")]
1929 pub parent_tool_call_id: Option<String>,
1930}
1931
1932#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1934#[serde(rename_all = "camelCase")]
1935pub struct AssistantTurnEndData {
1936 #[serde(skip_serializing_if = "Option::is_none")]
1938 pub model: Option<String>,
1939 pub turn_id: String,
1941}
1942
1943#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1945#[serde(rename_all = "camelCase")]
1946pub struct AssistantIdleData {
1947 #[serde(skip_serializing_if = "Option::is_none")]
1949 pub aborted: Option<bool>,
1950}
1951
1952#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1954#[serde(rename_all = "camelCase")]
1955pub struct AssistantUsageCopilotUsageTokenDetail {
1956 pub batch_size: i64,
1958 pub cost_per_batch: i64,
1960 pub token_count: i64,
1962 pub token_type: String,
1964}
1965
1966#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1968#[serde(rename_all = "camelCase")]
1969pub struct AssistantUsageCopilotUsage {
1970 #[doc(hidden)]
1972 #[serde(skip_serializing_if = "Option::is_none")]
1973 pub(crate) token_details: Option<Vec<AssistantUsageCopilotUsageTokenDetail>>,
1974 pub total_nano_aiu: f64,
1976}
1977
1978#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1980#[serde(rename_all = "camelCase")]
1981pub(crate) struct AssistantUsageQuotaSnapshot {
1982 #[doc(hidden)]
1984 pub(crate) entitlement_requests: i64,
1985 #[doc(hidden)]
1987 #[serde(skip_serializing_if = "Option::is_none")]
1988 pub(crate) has_quota: Option<bool>,
1989 #[doc(hidden)]
1991 pub(crate) is_unlimited_entitlement: bool,
1992 #[doc(hidden)]
1994 pub(crate) overage: f64,
1995 #[doc(hidden)]
1997 pub(crate) overage_allowed_with_exhausted_quota: bool,
1998 #[doc(hidden)]
2000 #[serde(skip_serializing_if = "Option::is_none")]
2001 pub(crate) overage_entitlement: Option<f64>,
2002 #[doc(hidden)]
2004 pub(crate) remaining_percentage: f64,
2005 #[doc(hidden)]
2007 #[serde(skip_serializing_if = "Option::is_none")]
2008 pub(crate) reset_date: Option<String>,
2009 #[doc(hidden)]
2011 #[serde(skip_serializing_if = "Option::is_none")]
2012 pub(crate) token_based_billing: Option<bool>,
2013 #[doc(hidden)]
2015 pub(crate) usage_allowed_with_exhausted_quota: bool,
2016 #[doc(hidden)]
2018 pub(crate) used_requests: i64,
2019}
2020
2021#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2023#[serde(rename_all = "camelCase")]
2024pub struct AssistantUsageData {
2025 #[serde(skip_serializing_if = "Option::is_none")]
2027 pub api_call_id: Option<String>,
2028 #[serde(skip_serializing_if = "Option::is_none")]
2030 pub api_endpoint: Option<AssistantUsageApiEndpoint>,
2031 #[doc(hidden)]
2033 #[serde(skip_serializing_if = "Option::is_none")]
2034 pub(crate) available_tool_count: Option<i64>,
2035 #[serde(skip_serializing_if = "Option::is_none")]
2037 pub cache_expires_at: Option<String>,
2038 #[serde(skip_serializing_if = "Option::is_none")]
2040 pub cache_read_tokens: Option<i64>,
2041 #[serde(skip_serializing_if = "Option::is_none")]
2043 pub cache_write_tokens: Option<i64>,
2044 #[serde(skip_serializing_if = "Option::is_none")]
2046 pub content_filter_triggered: Option<bool>,
2047 #[serde(skip_serializing_if = "Option::is_none")]
2049 pub copilot_usage: Option<AssistantUsageCopilotUsage>,
2050 #[serde(skip_serializing_if = "Option::is_none")]
2059 pub cost: Option<f64>,
2060 #[serde(skip_serializing_if = "Option::is_none")]
2062 pub duration: Option<i64>,
2063 #[serde(skip_serializing_if = "Option::is_none")]
2065 pub finish_reason: Option<String>,
2066 #[serde(skip_serializing_if = "Option::is_none")]
2068 pub initiator: Option<String>,
2069 #[serde(skip_serializing_if = "Option::is_none")]
2071 pub input_tokens: Option<i64>,
2072 #[serde(skip_serializing_if = "Option::is_none")]
2074 pub interaction_type: Option<String>,
2075 #[serde(skip_serializing_if = "Option::is_none")]
2077 pub inter_token_latency_ms: Option<f64>,
2078 pub model: String,
2080 #[doc(hidden)]
2082 #[serde(skip_serializing_if = "Option::is_none")]
2083 pub(crate) num_tool_calls: Option<i64>,
2084 #[serde(skip_serializing_if = "Option::is_none")]
2086 pub output_tokens: Option<i64>,
2087 #[doc(hidden)]
2089 #[deprecated]
2090 #[serde(skip_serializing_if = "Option::is_none")]
2091 pub parent_tool_call_id: Option<String>,
2092 #[serde(skip_serializing_if = "Option::is_none")]
2094 pub provider_call_id: Option<String>,
2095 #[doc(hidden)]
2097 #[serde(skip_serializing_if = "Option::is_none")]
2098 pub(crate) quota_snapshots: Option<HashMap<String, AssistantUsageQuotaSnapshot>>,
2099 #[serde(skip_serializing_if = "Option::is_none")]
2101 pub reasoning_effort: Option<String>,
2102 #[serde(skip_serializing_if = "Option::is_none")]
2104 pub reasoning_tokens: Option<i64>,
2105 #[serde(skip_serializing_if = "Option::is_none")]
2106 pub rte: Option<bool>,
2107 #[serde(skip_serializing_if = "Option::is_none")]
2109 pub service_request_id: Option<String>,
2110 #[serde(skip_serializing_if = "Option::is_none")]
2112 pub time_to_first_token_ms: Option<f64>,
2113 #[doc(hidden)]
2115 #[serde(skip_serializing_if = "Option::is_none")]
2116 pub(crate) tool_counts: Option<HashMap<String, i64>>,
2117 #[doc(hidden)]
2119 #[serde(skip_serializing_if = "Option::is_none")]
2120 pub(crate) tool_token_count: Option<i64>,
2121}
2122
2123#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2125#[serde(rename_all = "camelCase")]
2126pub struct ModelCallFailureRequestFingerprint {
2127 pub image_part_count: i64,
2129 pub image_parts_missing_media_type: i64,
2131 #[serde(skip_serializing_if = "Option::is_none")]
2133 pub last_message_role: Option<String>,
2134 pub message_count: i64,
2136 pub nameless_tool_call_count: i64,
2138 pub tool_call_count: i64,
2140 pub tool_result_message_count: i64,
2142}
2143
2144#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2146#[serde(rename_all = "camelCase")]
2147pub struct ModelCallFailureData {
2148 #[serde(skip_serializing_if = "Option::is_none")]
2150 pub api_call_id: Option<String>,
2151 #[serde(skip_serializing_if = "Option::is_none")]
2153 pub api_endpoint: Option<AssistantUsageApiEndpoint>,
2154 #[serde(skip_serializing_if = "Option::is_none")]
2156 pub bad_request_kind: Option<ModelCallFailureBadRequestKind>,
2157 #[serde(skip_serializing_if = "Option::is_none")]
2159 pub duration_ms: Option<i64>,
2160 #[serde(skip_serializing_if = "Option::is_none")]
2162 pub error_code: Option<String>,
2163 #[serde(skip_serializing_if = "Option::is_none")]
2165 pub error_message: Option<String>,
2166 #[serde(skip_serializing_if = "Option::is_none")]
2168 pub error_type: Option<String>,
2169 #[serde(skip_serializing_if = "Option::is_none")]
2171 pub failure_kind: Option<ModelCallFailureKind>,
2172 #[serde(skip_serializing_if = "Option::is_none")]
2174 pub initiator: Option<String>,
2175 #[serde(skip_serializing_if = "Option::is_none")]
2177 pub is_auto: Option<bool>,
2178 #[serde(skip_serializing_if = "Option::is_none")]
2180 pub is_byok: Option<bool>,
2181 #[serde(skip_serializing_if = "Option::is_none")]
2183 pub max_output_tokens: Option<i64>,
2184 #[serde(skip_serializing_if = "Option::is_none")]
2186 pub max_prompt_tokens: Option<i64>,
2187 #[serde(skip_serializing_if = "Option::is_none")]
2189 pub model: Option<String>,
2190 #[serde(skip_serializing_if = "Option::is_none")]
2192 pub provider_call_id: Option<String>,
2193 #[doc(hidden)]
2195 #[serde(skip_serializing_if = "Option::is_none")]
2196 pub(crate) quota_snapshots: Option<HashMap<String, AssistantUsageQuotaSnapshot>>,
2197 #[serde(skip_serializing_if = "Option::is_none")]
2199 pub reasoning_effort: Option<String>,
2200 #[serde(skip_serializing_if = "Option::is_none")]
2202 pub request_fingerprint: Option<ModelCallFailureRequestFingerprint>,
2203 #[serde(skip_serializing_if = "Option::is_none")]
2204 pub rte: Option<bool>,
2205 #[serde(skip_serializing_if = "Option::is_none")]
2207 pub service_request_id: Option<String>,
2208 pub source: ModelCallFailureSource,
2210 #[serde(skip_serializing_if = "Option::is_none")]
2212 pub status_code: Option<i32>,
2213 #[serde(skip_serializing_if = "Option::is_none")]
2215 pub transport: Option<ModelCallFailureTransport>,
2216}
2217
2218#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2220#[serde(rename_all = "camelCase")]
2221pub struct ModelCallStartData {
2222 #[serde(skip_serializing_if = "Option::is_none")]
2224 pub model: Option<String>,
2225 #[doc(hidden)]
2227 #[serde(skip_serializing_if = "Option::is_none")]
2228 pub(crate) previous_response_id: Option<String>,
2229 pub turn_id: String,
2231}
2232
2233#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2235#[serde(rename_all = "camelCase")]
2236pub struct AbortData {
2237 pub reason: AbortReason,
2239}
2240
2241#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2243#[serde(rename_all = "camelCase")]
2244pub struct ToolUserRequestedData {
2245 #[serde(skip_serializing_if = "Option::is_none")]
2247 pub arguments: Option<serde_json::Value>,
2248 pub tool_call_id: String,
2250 pub tool_name: String,
2252}
2253
2254#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2256#[serde(rename_all = "camelCase")]
2257pub struct ToolExecutionStartShellToolInfo {
2258 #[serde(skip_serializing_if = "Option::is_none")]
2267 pub display_command: Option<String>,
2268 pub has_write_file_redirection: bool,
2270 pub possible_paths: Vec<String>,
2272}
2273
2274#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2276#[serde(rename_all = "camelCase")]
2277pub struct ToolExecutionStartToolDescriptionMetaUI {
2278 #[serde(skip_serializing_if = "Option::is_none")]
2280 pub resource_uri: Option<String>,
2281 #[serde(skip_serializing_if = "Option::is_none")]
2283 pub visibility: Option<Vec<ToolExecutionStartToolDescriptionMetaUIVisibility>>,
2284}
2285
2286#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2288#[serde(rename_all = "camelCase")]
2289pub struct ToolExecutionStartToolDescriptionMeta {
2290 #[serde(skip_serializing_if = "Option::is_none")]
2292 pub ui: Option<ToolExecutionStartToolDescriptionMetaUI>,
2293}
2294
2295#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2297#[serde(rename_all = "camelCase")]
2298pub struct ToolExecutionStartToolDescription {
2299 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2301 pub meta: Option<ToolExecutionStartToolDescriptionMeta>,
2302 #[serde(skip_serializing_if = "Option::is_none")]
2304 pub description: Option<String>,
2305 pub name: String,
2307}
2308
2309#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2311#[serde(rename_all = "camelCase")]
2312pub struct ToolExecutionStartData {
2313 #[serde(skip_serializing_if = "Option::is_none")]
2315 pub arguments: Option<serde_json::Value>,
2316 #[serde(skip_serializing_if = "Option::is_none")]
2318 pub display_verbatim: Option<bool>,
2319 #[serde(skip_serializing_if = "Option::is_none")]
2321 pub mcp_server_name: Option<String>,
2322 #[serde(skip_serializing_if = "Option::is_none")]
2324 pub mcp_tool_name: Option<String>,
2325 #[serde(skip_serializing_if = "Option::is_none")]
2327 pub model: Option<String>,
2328 #[doc(hidden)]
2330 #[deprecated]
2331 #[serde(skip_serializing_if = "Option::is_none")]
2332 pub parent_tool_call_id: Option<String>,
2333 #[serde(skip_serializing_if = "Option::is_none")]
2334 pub rte: Option<bool>,
2335 #[serde(skip_serializing_if = "Option::is_none")]
2337 pub shell_tool_info: Option<ToolExecutionStartShellToolInfo>,
2338 pub tool_call_id: String,
2340 #[serde(skip_serializing_if = "Option::is_none")]
2342 pub tool_description: Option<ToolExecutionStartToolDescription>,
2343 pub tool_name: String,
2345 #[serde(skip_serializing_if = "Option::is_none")]
2347 pub turn_id: Option<String>,
2348}
2349
2350#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2352#[serde(rename_all = "camelCase")]
2353pub struct ToolExecutionPartialResultData {
2354 pub partial_output: String,
2356 pub tool_call_id: String,
2358}
2359
2360#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2362#[serde(rename_all = "camelCase")]
2363pub struct ToolExecutionProgressData {
2364 pub progress_message: String,
2366 pub tool_call_id: String,
2368}
2369
2370#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2372#[serde(rename_all = "camelCase")]
2373pub struct ToolExecutionCompleteError {
2374 #[serde(skip_serializing_if = "Option::is_none")]
2376 pub code: Option<String>,
2377 pub message: String,
2379}
2380
2381#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2390#[serde(rename_all = "camelCase")]
2391pub struct CitableSource {
2392 pub content: String,
2394 pub id: String,
2396 #[serde(skip_serializing_if = "Option::is_none")]
2398 pub path: Option<String>,
2399 #[serde(skip_serializing_if = "Option::is_none")]
2401 pub title: Option<String>,
2402 #[serde(skip_serializing_if = "Option::is_none")]
2404 pub url: Option<String>,
2405}
2406
2407#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2409#[serde(rename_all = "camelCase")]
2410pub struct ToolExecutionCompleteContentText {
2411 pub text: String,
2413 pub r#type: ToolExecutionCompleteContentTextType,
2415}
2416
2417#[doc(hidden)]
2419#[deprecated]
2420#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2421#[serde(rename_all = "camelCase")]
2422pub struct ToolExecutionCompleteContentTerminal {
2423 #[serde(skip_serializing_if = "Option::is_none")]
2425 pub cwd: Option<String>,
2426 #[serde(skip_serializing_if = "Option::is_none")]
2428 pub exit_code: Option<i64>,
2429 pub text: String,
2431 pub r#type: ToolExecutionCompleteContentTerminalType,
2433}
2434
2435#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2437#[serde(rename_all = "camelCase")]
2438pub struct ToolExecutionCompleteContentShellExit {
2439 #[serde(skip_serializing_if = "Option::is_none")]
2441 pub cwd: Option<String>,
2442 pub exit_code: i64,
2444 #[serde(skip_serializing_if = "Option::is_none")]
2446 pub output_preview: Option<String>,
2447 #[serde(skip_serializing_if = "Option::is_none")]
2449 pub output_truncated: Option<bool>,
2450 pub shell_id: String,
2452 pub r#type: ToolExecutionCompleteContentShellExitType,
2454}
2455
2456#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2458#[serde(rename_all = "camelCase")]
2459pub struct ToolExecutionCompleteContentImage {
2460 pub data: String,
2462 pub mime_type: String,
2464 pub r#type: ToolExecutionCompleteContentImageType,
2466}
2467
2468#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2470#[serde(rename_all = "camelCase")]
2471pub struct ToolExecutionCompleteContentAudio {
2472 pub data: String,
2474 pub mime_type: String,
2476 pub r#type: ToolExecutionCompleteContentAudioType,
2478}
2479
2480#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2482#[serde(rename_all = "camelCase")]
2483pub struct ToolExecutionCompleteContentResourceLinkIcon {
2484 #[serde(skip_serializing_if = "Option::is_none")]
2486 pub mime_type: Option<String>,
2487 #[serde(skip_serializing_if = "Option::is_none")]
2489 pub sizes: Option<Vec<String>>,
2490 pub src: String,
2492 #[serde(skip_serializing_if = "Option::is_none")]
2494 pub theme: Option<ToolExecutionCompleteContentResourceLinkIconTheme>,
2495}
2496
2497#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2499#[serde(rename_all = "camelCase")]
2500pub struct ToolExecutionCompleteContentResourceLink {
2501 #[serde(skip_serializing_if = "Option::is_none")]
2503 pub description: Option<String>,
2504 #[serde(skip_serializing_if = "Option::is_none")]
2506 pub icons: Option<Vec<ToolExecutionCompleteContentResourceLinkIcon>>,
2507 #[serde(skip_serializing_if = "Option::is_none")]
2509 pub mime_type: Option<String>,
2510 pub name: String,
2512 #[serde(skip_serializing_if = "Option::is_none")]
2514 pub size: Option<i64>,
2515 #[serde(skip_serializing_if = "Option::is_none")]
2517 pub title: Option<String>,
2518 pub r#type: ToolExecutionCompleteContentResourceLinkType,
2520 pub uri: String,
2522}
2523
2524#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2526#[serde(rename_all = "camelCase")]
2527pub struct EmbeddedTextResourceContents {
2528 #[serde(skip_serializing_if = "Option::is_none")]
2530 pub mime_type: Option<String>,
2531 pub text: String,
2533 pub uri: String,
2535}
2536
2537#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2539#[serde(rename_all = "camelCase")]
2540pub struct EmbeddedBlobResourceContents {
2541 pub blob: String,
2543 #[serde(skip_serializing_if = "Option::is_none")]
2545 pub mime_type: Option<String>,
2546 pub uri: String,
2548}
2549
2550#[derive(Debug, Clone, Serialize, Deserialize)]
2552#[serde(rename_all = "camelCase")]
2553pub struct ToolExecutionCompleteContentResource {
2554 pub resource: ToolExecutionCompleteContentResourceDetails,
2556 pub r#type: ToolExecutionCompleteContentResourceType,
2558}
2559
2560#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2562#[serde(rename_all = "camelCase")]
2563pub struct ToolExecutionCompleteUIResourceMetaUICsp {
2564 #[serde(skip_serializing_if = "Option::is_none")]
2565 pub base_uri_domains: Option<Vec<String>>,
2566 #[serde(skip_serializing_if = "Option::is_none")]
2567 pub connect_domains: Option<Vec<String>>,
2568 #[serde(skip_serializing_if = "Option::is_none")]
2569 pub frame_domains: Option<Vec<String>>,
2570 #[serde(skip_serializing_if = "Option::is_none")]
2571 pub resource_domains: Option<Vec<String>>,
2572}
2573
2574#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2576#[serde(rename_all = "camelCase")]
2577pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsCamera {}
2578
2579#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2581#[serde(rename_all = "camelCase")]
2582pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite {}
2583
2584#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2586#[serde(rename_all = "camelCase")]
2587pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation {}
2588
2589#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2591#[serde(rename_all = "camelCase")]
2592pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone {}
2593
2594#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2596#[serde(rename_all = "camelCase")]
2597pub struct ToolExecutionCompleteUIResourceMetaUIPermissions {
2598 #[serde(skip_serializing_if = "Option::is_none")]
2600 pub camera: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsCamera>,
2601 #[serde(skip_serializing_if = "Option::is_none")]
2603 pub clipboard_write: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite>,
2604 #[serde(skip_serializing_if = "Option::is_none")]
2606 pub geolocation: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation>,
2607 #[serde(skip_serializing_if = "Option::is_none")]
2609 pub microphone: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone>,
2610}
2611
2612#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2614#[serde(rename_all = "camelCase")]
2615pub struct ToolExecutionCompleteUIResourceMetaUI {
2616 #[serde(skip_serializing_if = "Option::is_none")]
2618 pub csp: Option<ToolExecutionCompleteUIResourceMetaUICsp>,
2619 #[serde(skip_serializing_if = "Option::is_none")]
2620 pub domain: Option<String>,
2621 #[serde(skip_serializing_if = "Option::is_none")]
2623 pub permissions: Option<ToolExecutionCompleteUIResourceMetaUIPermissions>,
2624 #[serde(skip_serializing_if = "Option::is_none")]
2625 pub prefers_border: Option<bool>,
2626}
2627
2628#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2630#[serde(rename_all = "camelCase")]
2631pub struct ToolExecutionCompleteUIResourceMeta {
2632 #[serde(skip_serializing_if = "Option::is_none")]
2634 pub ui: Option<ToolExecutionCompleteUIResourceMetaUI>,
2635}
2636
2637#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2639#[serde(rename_all = "camelCase")]
2640pub struct ToolExecutionCompleteUIResource {
2641 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2643 pub meta: Option<ToolExecutionCompleteUIResourceMeta>,
2644 #[serde(skip_serializing_if = "Option::is_none")]
2646 pub blob: Option<String>,
2647 pub mime_type: String,
2649 #[serde(skip_serializing_if = "Option::is_none")]
2651 pub text: Option<String>,
2652 pub uri: String,
2654}
2655
2656#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2658#[serde(rename_all = "camelCase")]
2659pub struct ToolExecutionCompleteResult {
2660 #[serde(skip_serializing_if = "Option::is_none")]
2669 pub binary_results_for_llm: Option<Vec<serde_json::Value>>,
2670 #[serde(skip_serializing_if = "Option::is_none")]
2679 pub citable_sources: Option<Vec<CitableSource>>,
2680 pub content: String,
2682 #[serde(skip_serializing_if = "Option::is_none")]
2684 pub contents: Option<Vec<ToolExecutionCompleteContent>>,
2685 #[serde(skip_serializing_if = "Option::is_none")]
2687 pub detailed_content: Option<String>,
2688 #[serde(skip_serializing_if = "Option::is_none")]
2697 pub mcp_meta: Option<serde_json::Value>,
2698 #[serde(skip_serializing_if = "Option::is_none")]
2700 pub structured_content: Option<serde_json::Value>,
2701 #[serde(skip_serializing_if = "Option::is_none")]
2703 pub ui_resource: Option<ToolExecutionCompleteUIResource>,
2704}
2705
2706#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2708#[serde(rename_all = "camelCase")]
2709pub struct ToolExecutionCompleteToolDescriptionMetaUI {
2710 #[serde(skip_serializing_if = "Option::is_none")]
2712 pub resource_uri: Option<String>,
2713 #[serde(skip_serializing_if = "Option::is_none")]
2715 pub visibility: Option<Vec<ToolExecutionCompleteToolDescriptionMetaUIVisibility>>,
2716}
2717
2718#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2720#[serde(rename_all = "camelCase")]
2721pub struct ToolExecutionCompleteToolDescriptionMeta {
2722 #[serde(skip_serializing_if = "Option::is_none")]
2724 pub ui: Option<ToolExecutionCompleteToolDescriptionMetaUI>,
2725}
2726
2727#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2729#[serde(rename_all = "camelCase")]
2730pub struct ToolExecutionCompleteToolDescription {
2731 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2733 pub meta: Option<ToolExecutionCompleteToolDescriptionMeta>,
2734 #[serde(skip_serializing_if = "Option::is_none")]
2736 pub description: Option<String>,
2737 pub name: String,
2739}
2740
2741#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2743#[serde(rename_all = "camelCase")]
2744pub struct ToolExecutionCompleteData {
2745 #[serde(skip_serializing_if = "Option::is_none")]
2747 pub error: Option<ToolExecutionCompleteError>,
2748 #[serde(skip_serializing_if = "Option::is_none")]
2750 pub interaction_id: Option<String>,
2751 #[serde(skip_serializing_if = "Option::is_none")]
2753 pub is_user_requested: Option<bool>,
2754 #[serde(skip_serializing_if = "Option::is_none")]
2763 pub mcp_meta: Option<serde_json::Value>,
2764 #[serde(skip_serializing_if = "Option::is_none")]
2766 pub model: Option<String>,
2767 #[doc(hidden)]
2769 #[deprecated]
2770 #[serde(skip_serializing_if = "Option::is_none")]
2771 pub parent_tool_call_id: Option<String>,
2772 #[serde(skip_serializing_if = "Option::is_none")]
2774 pub result: Option<ToolExecutionCompleteResult>,
2775 #[serde(skip_serializing_if = "Option::is_none")]
2776 pub rte: Option<bool>,
2777 #[serde(skip_serializing_if = "Option::is_none")]
2779 pub sandboxed: Option<bool>,
2780 pub success: bool,
2782 pub tool_call_id: String,
2784 #[serde(skip_serializing_if = "Option::is_none")]
2786 pub tool_description: Option<ToolExecutionCompleteToolDescription>,
2787 #[serde(skip_serializing_if = "Option::is_none")]
2789 pub tool_telemetry: Option<HashMap<String, serde_json::Value>>,
2790 #[serde(skip_serializing_if = "Option::is_none")]
2792 pub turn_id: Option<String>,
2793}
2794
2795#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2797#[serde(rename_all = "camelCase")]
2798pub struct ToolSearchActivatedData {
2799 pub strategy: String,
2801 pub tool_names: Vec<String>,
2803}
2804
2805#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2807#[serde(rename_all = "camelCase")]
2808pub struct SkillInvokedData {
2809 #[serde(skip_serializing_if = "Option::is_none")]
2811 pub allowed_tools: Option<Vec<String>>,
2812 pub content: String,
2814 #[serde(skip_serializing_if = "Option::is_none")]
2816 pub description: Option<String>,
2817 #[serde(skip_serializing_if = "Option::is_none")]
2819 pub model: Option<String>,
2820 pub name: String,
2822 pub path: String,
2824 #[serde(skip_serializing_if = "Option::is_none")]
2826 pub plugin_name: Option<String>,
2827 #[serde(skip_serializing_if = "Option::is_none")]
2829 pub plugin_version: Option<String>,
2830 #[serde(skip_serializing_if = "Option::is_none")]
2832 pub source: Option<String>,
2833 #[serde(skip_serializing_if = "Option::is_none")]
2835 pub trigger: Option<SkillInvokedTrigger>,
2836}
2837
2838#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2840#[serde(rename_all = "camelCase")]
2841pub struct SubagentStartedData {
2842 pub agent_description: String,
2844 pub agent_display_name: String,
2846 pub agent_name: String,
2848 #[serde(skip_serializing_if = "Option::is_none")]
2850 pub model: Option<String>,
2851 pub tool_call_id: String,
2853}
2854
2855#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2857#[serde(rename_all = "camelCase")]
2858pub struct SubagentCompletedData {
2859 pub agent_display_name: String,
2861 pub agent_name: String,
2863 #[serde(skip_serializing_if = "Option::is_none")]
2865 pub cancelled: Option<bool>,
2866 #[serde(skip_serializing_if = "Option::is_none")]
2868 pub duration_ms: Option<i64>,
2869 #[serde(skip_serializing_if = "Option::is_none")]
2871 pub model: Option<String>,
2872 pub tool_call_id: String,
2874 #[serde(skip_serializing_if = "Option::is_none")]
2876 pub total_tokens: Option<i64>,
2877 #[serde(skip_serializing_if = "Option::is_none")]
2879 pub total_tool_calls: Option<i64>,
2880}
2881
2882#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2884#[serde(rename_all = "camelCase")]
2885pub struct SubagentFailedData {
2886 pub agent_display_name: String,
2888 pub agent_name: String,
2890 #[serde(skip_serializing_if = "Option::is_none")]
2892 pub duration_ms: Option<i64>,
2893 pub error: String,
2895 #[serde(skip_serializing_if = "Option::is_none")]
2897 pub model: Option<String>,
2898 pub tool_call_id: String,
2900 #[serde(skip_serializing_if = "Option::is_none")]
2902 pub total_tokens: Option<i64>,
2903 #[serde(skip_serializing_if = "Option::is_none")]
2905 pub total_tool_calls: Option<i64>,
2906}
2907
2908#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2910#[serde(rename_all = "camelCase")]
2911pub struct SubagentSelectedData {
2912 pub agent_display_name: String,
2914 pub agent_name: String,
2916 pub tools: Option<Vec<String>>,
2918}
2919
2920#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2922#[serde(rename_all = "camelCase")]
2923pub struct SubagentDeselectedData {}
2924
2925#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2927#[serde(rename_all = "camelCase")]
2928pub struct HookStartData {
2929 pub hook_invocation_id: String,
2931 pub hook_type: String,
2933 #[serde(skip_serializing_if = "Option::is_none")]
2935 pub input: Option<serde_json::Value>,
2936}
2937
2938#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2940#[serde(rename_all = "camelCase")]
2941pub struct HookEndError {
2942 pub message: String,
2944 #[serde(skip_serializing_if = "Option::is_none")]
2946 pub source: Option<String>,
2947 #[serde(skip_serializing_if = "Option::is_none")]
2949 pub stack: Option<String>,
2950}
2951
2952#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2954#[serde(rename_all = "camelCase")]
2955pub struct HookEndData {
2956 #[serde(skip_serializing_if = "Option::is_none")]
2958 pub error: Option<HookEndError>,
2959 pub hook_invocation_id: String,
2961 pub hook_type: String,
2963 #[serde(skip_serializing_if = "Option::is_none")]
2965 pub output: Option<serde_json::Value>,
2966 pub success: bool,
2968}
2969
2970#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2972#[serde(rename_all = "camelCase")]
2973pub struct HookProgressData {
2974 pub message: String,
2976 #[serde(skip_serializing_if = "Option::is_none")]
2978 pub temporary: Option<bool>,
2979}
2980
2981#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2983#[serde(rename_all = "camelCase")]
2984pub struct SessionBinaryAssetData {
2985 pub asset_id: String,
2987 pub byte_length: i64,
2989 pub data: String,
2991 #[serde(skip_serializing_if = "Option::is_none")]
2993 pub description: Option<String>,
2994 #[serde(skip_serializing_if = "Option::is_none")]
2996 pub metadata: Option<HashMap<String, serde_json::Value>>,
2997 pub mime_type: String,
2999 pub r#type: BinaryAssetType,
3001}
3002
3003#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3005#[serde(rename_all = "camelCase")]
3006pub struct SystemMessageMetadata {
3007 #[serde(skip_serializing_if = "Option::is_none")]
3009 pub prompt_version: Option<String>,
3010 #[serde(skip_serializing_if = "Option::is_none")]
3012 pub variables: Option<HashMap<String, serde_json::Value>>,
3013}
3014
3015#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3017#[serde(rename_all = "camelCase")]
3018pub struct SystemMessageData {
3019 pub content: String,
3021 #[serde(skip_serializing_if = "Option::is_none")]
3023 pub interaction_id: Option<String>,
3024 #[serde(skip_serializing_if = "Option::is_none")]
3026 pub metadata: Option<SystemMessageMetadata>,
3027 #[serde(skip_serializing_if = "Option::is_none")]
3029 pub name: Option<String>,
3030 pub role: SystemMessageRole,
3032}
3033
3034#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3036#[serde(rename_all = "camelCase")]
3037pub struct SystemNotificationData {
3038 pub content: String,
3040 pub kind: serde_json::Value,
3042}
3043
3044#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3046#[serde(rename_all = "camelCase")]
3047pub struct PermissionRequestShellCommand {
3048 pub identifier: String,
3050 pub read_only: bool,
3052}
3053
3054#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3056#[serde(rename_all = "camelCase")]
3057pub struct PermissionRequestShellCommandSegment {
3058 pub full_command_text: String,
3060 pub identifier: String,
3062}
3063
3064#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3066#[serde(rename_all = "camelCase")]
3067pub struct PermissionRequestShellPossibleUrl {
3068 pub url: String,
3070}
3071
3072#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3074#[serde(rename_all = "camelCase")]
3075pub struct PermissionRequestShell {
3076 pub can_offer_session_approval: bool,
3078 pub commands: Vec<PermissionRequestShellCommand>,
3080 #[serde(skip_serializing_if = "Option::is_none")]
3082 pub command_segments: Option<Vec<PermissionRequestShellCommandSegment>>,
3083 pub full_command_text: String,
3085 pub has_write_file_redirection: bool,
3087 pub intention: String,
3089 pub kind: PermissionRequestShellKind,
3091 #[serde(skip_serializing_if = "Option::is_none")]
3093 pub managed_approval_required: Option<bool>,
3094 pub possible_paths: Vec<String>,
3096 pub possible_urls: Vec<PermissionRequestShellPossibleUrl>,
3098 #[serde(skip_serializing_if = "Option::is_none")]
3100 pub request_sandbox_bypass: Option<bool>,
3101 #[serde(skip_serializing_if = "Option::is_none")]
3103 pub request_sandbox_bypass_reason: Option<String>,
3104 #[serde(skip_serializing_if = "Option::is_none")]
3106 pub tool_call_id: Option<String>,
3107 #[serde(skip_serializing_if = "Option::is_none")]
3109 pub warning: Option<String>,
3110}
3111
3112#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3114#[serde(rename_all = "camelCase")]
3115pub struct PermissionRequestWrite {
3116 pub can_offer_session_approval: bool,
3118 pub diff: String,
3120 pub file_name: String,
3122 pub intention: String,
3124 pub kind: PermissionRequestWriteKind,
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 new_file_contents: 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}
3142
3143#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3145#[serde(rename_all = "camelCase")]
3146pub struct PermissionRequestRead {
3147 pub intention: String,
3149 pub kind: PermissionRequestReadKind,
3151 #[serde(skip_serializing_if = "Option::is_none")]
3153 pub managed_approval_required: Option<bool>,
3154 pub path: String,
3156 #[serde(skip_serializing_if = "Option::is_none")]
3158 pub request_sandbox_bypass: Option<bool>,
3159 #[serde(skip_serializing_if = "Option::is_none")]
3161 pub request_sandbox_bypass_reason: Option<String>,
3162 #[serde(skip_serializing_if = "Option::is_none")]
3164 pub tool_call_id: Option<String>,
3165}
3166
3167#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3169#[serde(rename_all = "camelCase")]
3170pub struct PermissionRequestMcp {
3171 #[serde(skip_serializing_if = "Option::is_none")]
3173 pub args: Option<serde_json::Value>,
3174 pub kind: PermissionRequestMcpKind,
3176 #[serde(skip_serializing_if = "Option::is_none")]
3178 pub managed_approval_required: Option<bool>,
3179 pub read_only: bool,
3181 pub server_name: String,
3183 #[serde(skip_serializing_if = "Option::is_none")]
3185 pub tool_call_id: Option<String>,
3186 pub tool_name: String,
3188 pub tool_title: String,
3190}
3191
3192#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3194#[serde(rename_all = "camelCase")]
3195pub struct PermissionRequestUrl {
3196 pub intention: String,
3198 pub kind: PermissionRequestUrlKind,
3200 #[serde(skip_serializing_if = "Option::is_none")]
3202 pub managed_approval_required: Option<bool>,
3203 #[serde(skip_serializing_if = "Option::is_none")]
3205 pub redirected_from: Option<String>,
3206 #[serde(skip_serializing_if = "Option::is_none")]
3208 pub request_sandbox_bypass: Option<bool>,
3209 #[serde(skip_serializing_if = "Option::is_none")]
3211 pub request_sandbox_bypass_reason: Option<String>,
3212 #[serde(skip_serializing_if = "Option::is_none")]
3214 pub tool_call_id: Option<String>,
3215 pub url: String,
3217}
3218
3219#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3221#[serde(rename_all = "camelCase")]
3222pub struct PermissionRequestMemory {
3223 #[serde(skip_serializing_if = "Option::is_none")]
3225 pub action: Option<PermissionRequestMemoryAction>,
3226 #[serde(skip_serializing_if = "Option::is_none")]
3228 pub citations: Option<String>,
3229 #[serde(skip_serializing_if = "Option::is_none")]
3231 pub direction: Option<PermissionRequestMemoryDirection>,
3232 pub fact: String,
3234 pub kind: PermissionRequestMemoryKind,
3236 #[serde(skip_serializing_if = "Option::is_none")]
3238 pub managed_approval_required: Option<bool>,
3239 #[serde(skip_serializing_if = "Option::is_none")]
3241 pub reason: Option<String>,
3242 #[serde(skip_serializing_if = "Option::is_none")]
3244 pub subject: Option<String>,
3245 #[serde(skip_serializing_if = "Option::is_none")]
3247 pub tool_call_id: Option<String>,
3248}
3249
3250#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3252#[serde(rename_all = "camelCase")]
3253pub struct PermissionRequestCustomTool {
3254 #[serde(skip_serializing_if = "Option::is_none")]
3256 pub args: Option<serde_json::Value>,
3257 pub kind: PermissionRequestCustomToolKind,
3259 #[serde(skip_serializing_if = "Option::is_none")]
3261 pub managed_approval_required: Option<bool>,
3262 #[serde(skip_serializing_if = "Option::is_none")]
3264 pub tool_call_id: Option<String>,
3265 pub tool_description: String,
3267 pub tool_name: String,
3269}
3270
3271#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3273#[serde(rename_all = "camelCase")]
3274pub struct PermissionRequestHook {
3275 #[serde(skip_serializing_if = "Option::is_none")]
3277 pub hook_message: Option<String>,
3278 pub kind: PermissionRequestHookKind,
3280 #[serde(skip_serializing_if = "Option::is_none")]
3282 pub managed_approval_required: Option<bool>,
3283 #[serde(skip_serializing_if = "Option::is_none")]
3285 pub tool_args: Option<serde_json::Value>,
3286 #[serde(skip_serializing_if = "Option::is_none")]
3288 pub tool_call_id: Option<String>,
3289 pub tool_name: String,
3291}
3292
3293#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3295#[serde(rename_all = "camelCase")]
3296pub struct PermissionRequestExtensionManagement {
3297 #[serde(skip_serializing_if = "Option::is_none")]
3299 pub extension_name: Option<String>,
3300 pub kind: PermissionRequestExtensionManagementKind,
3302 #[serde(skip_serializing_if = "Option::is_none")]
3304 pub managed_approval_required: Option<bool>,
3305 pub operation: String,
3307 #[serde(skip_serializing_if = "Option::is_none")]
3309 pub tool_call_id: Option<String>,
3310}
3311
3312#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3314#[serde(rename_all = "camelCase")]
3315pub struct FactoryPermissionPhase {
3316 #[serde(skip_serializing_if = "Option::is_none")]
3318 pub detail: Option<String>,
3319 pub title: String,
3321}
3322
3323#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3325#[serde(rename_all = "camelCase")]
3326pub struct PermissionRequestFactory {
3327 pub approval_key: String,
3329 pub can_persist_approval: bool,
3331 #[serde(skip_serializing_if = "Option::is_none")]
3332 pub declared_max_ai_credits: Option<f64>,
3333 #[serde(skip_serializing_if = "Option::is_none")]
3334 pub declared_max_concurrent_subagents: Option<i64>,
3335 #[serde(skip_serializing_if = "Option::is_none")]
3336 pub declared_max_total_subagents: Option<i64>,
3337 #[serde(skip_serializing_if = "Option::is_none")]
3338 pub declared_timeout_seconds: Option<f64>,
3339 pub description: String,
3341 pub kind: PermissionRequestFactoryKind,
3343 #[serde(skip_serializing_if = "Option::is_none")]
3345 pub managed_approval_required: Option<bool>,
3346 #[serde(skip_serializing_if = "Option::is_none")]
3348 pub max_ai_credits: Option<f64>,
3349 #[serde(skip_serializing_if = "Option::is_none")]
3351 pub max_concurrent_subagents: Option<i64>,
3352 #[serde(skip_serializing_if = "Option::is_none")]
3354 pub max_total_subagents: Option<i64>,
3355 pub name: String,
3357 pub operation: FactoryPermissionOperation,
3359 pub phases: Vec<FactoryPermissionPhase>,
3361 #[serde(skip_serializing_if = "Option::is_none")]
3363 pub timeout_seconds: Option<f64>,
3364 #[serde(skip_serializing_if = "Option::is_none")]
3366 pub tool_call_id: Option<String>,
3367}
3368
3369#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3371#[serde(rename_all = "camelCase")]
3372pub struct PermissionRequestExtensionPermissionAccess {
3373 pub capabilities: Vec<String>,
3375 pub extension_name: String,
3377 pub kind: PermissionRequestExtensionPermissionAccessKind,
3379 #[serde(skip_serializing_if = "Option::is_none")]
3381 pub managed_approval_required: Option<bool>,
3382 #[serde(skip_serializing_if = "Option::is_none")]
3384 pub tool_call_id: Option<String>,
3385}
3386
3387#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3396#[serde(rename_all = "camelCase")]
3397pub struct PermissionAutoApproval {
3398 #[serde(skip_serializing_if = "Option::is_none")]
3400 pub failure_reason: Option<AutoApprovalJudgeFailureReason>,
3401 #[serde(skip_serializing_if = "Option::is_none")]
3403 pub model: Option<String>,
3404 #[serde(skip_serializing_if = "Option::is_none")]
3406 pub reason: Option<String>,
3407 pub recommendation: AutoApprovalRecommendation,
3409}
3410
3411#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3413#[serde(rename_all = "camelCase")]
3414pub struct PermissionPromptRequestCommands {
3415 #[serde(skip_serializing_if = "Option::is_none")]
3424 pub auto_approval: Option<PermissionAutoApproval>,
3425 pub can_offer_session_approval: bool,
3427 pub command_identifiers: Vec<String>,
3429 pub full_command_text: String,
3431 pub intention: String,
3433 pub kind: PermissionPromptRequestCommandsKind,
3435 #[serde(skip_serializing_if = "Option::is_none")]
3437 pub managed_approval_required: Option<bool>,
3438 #[serde(skip_serializing_if = "Option::is_none")]
3440 pub tool_call_id: Option<String>,
3441 #[serde(skip_serializing_if = "Option::is_none")]
3443 pub warning: Option<String>,
3444}
3445
3446#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3448#[serde(rename_all = "camelCase")]
3449pub struct PermissionPromptRequestWrite {
3450 #[serde(skip_serializing_if = "Option::is_none")]
3459 pub auto_approval: Option<PermissionAutoApproval>,
3460 pub can_offer_session_approval: bool,
3462 pub diff: String,
3464 pub file_name: String,
3466 pub intention: String,
3468 pub kind: PermissionPromptRequestWriteKind,
3470 #[serde(skip_serializing_if = "Option::is_none")]
3472 pub managed_approval_required: Option<bool>,
3473 #[serde(skip_serializing_if = "Option::is_none")]
3475 pub new_file_contents: Option<String>,
3476 #[serde(skip_serializing_if = "Option::is_none")]
3478 pub tool_call_id: Option<String>,
3479}
3480
3481#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3483#[serde(rename_all = "camelCase")]
3484pub struct PermissionPromptRequestRead {
3485 #[serde(skip_serializing_if = "Option::is_none")]
3494 pub auto_approval: Option<PermissionAutoApproval>,
3495 pub intention: String,
3497 pub kind: PermissionPromptRequestReadKind,
3499 #[serde(skip_serializing_if = "Option::is_none")]
3501 pub managed_approval_required: Option<bool>,
3502 pub path: String,
3504 #[serde(skip_serializing_if = "Option::is_none")]
3506 pub tool_call_id: Option<String>,
3507}
3508
3509#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3511#[serde(rename_all = "camelCase")]
3512pub struct PermissionPromptRequestMcp {
3513 #[serde(skip_serializing_if = "Option::is_none")]
3515 pub args: Option<serde_json::Value>,
3516 #[serde(skip_serializing_if = "Option::is_none")]
3525 pub auto_approval: Option<PermissionAutoApproval>,
3526 pub kind: PermissionPromptRequestMcpKind,
3528 pub server_name: String,
3530 #[serde(skip_serializing_if = "Option::is_none")]
3532 pub tool_call_id: Option<String>,
3533 pub tool_name: String,
3535 pub tool_title: String,
3537}
3538
3539#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3541#[serde(rename_all = "camelCase")]
3542pub struct PermissionPromptRequestUrl {
3543 #[serde(skip_serializing_if = "Option::is_none")]
3552 pub auto_approval: Option<PermissionAutoApproval>,
3553 pub intention: String,
3555 pub kind: PermissionPromptRequestUrlKind,
3557 #[serde(skip_serializing_if = "Option::is_none")]
3559 pub managed_approval_required: Option<bool>,
3560 #[serde(skip_serializing_if = "Option::is_none")]
3562 pub redirected_from: Option<String>,
3563 #[serde(skip_serializing_if = "Option::is_none")]
3565 pub request_sandbox_bypass: Option<bool>,
3566 #[serde(skip_serializing_if = "Option::is_none")]
3568 pub request_sandbox_bypass_reason: Option<String>,
3569 #[serde(skip_serializing_if = "Option::is_none")]
3571 pub tool_call_id: Option<String>,
3572 pub url: String,
3574}
3575
3576#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3578#[serde(rename_all = "camelCase")]
3579pub struct PermissionPromptRequestMemory {
3580 #[serde(skip_serializing_if = "Option::is_none")]
3582 pub action: Option<PermissionRequestMemoryAction>,
3583 #[serde(skip_serializing_if = "Option::is_none")]
3592 pub auto_approval: Option<PermissionAutoApproval>,
3593 #[serde(skip_serializing_if = "Option::is_none")]
3595 pub citations: Option<String>,
3596 #[serde(skip_serializing_if = "Option::is_none")]
3598 pub direction: Option<PermissionRequestMemoryDirection>,
3599 pub fact: String,
3601 pub kind: PermissionPromptRequestMemoryKind,
3603 #[serde(skip_serializing_if = "Option::is_none")]
3605 pub reason: Option<String>,
3606 #[serde(skip_serializing_if = "Option::is_none")]
3608 pub subject: Option<String>,
3609 #[serde(skip_serializing_if = "Option::is_none")]
3611 pub tool_call_id: Option<String>,
3612}
3613
3614#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3616#[serde(rename_all = "camelCase")]
3617pub struct PermissionPromptRequestCustomTool {
3618 #[serde(skip_serializing_if = "Option::is_none")]
3620 pub args: Option<serde_json::Value>,
3621 #[serde(skip_serializing_if = "Option::is_none")]
3630 pub auto_approval: Option<PermissionAutoApproval>,
3631 pub kind: PermissionPromptRequestCustomToolKind,
3633 #[serde(skip_serializing_if = "Option::is_none")]
3635 pub tool_call_id: Option<String>,
3636 pub tool_description: String,
3638 pub tool_name: String,
3640}
3641
3642#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3644#[serde(rename_all = "camelCase")]
3645pub struct PermissionPromptRequestPath {
3646 pub access_kind: PermissionPromptRequestPathAccessKind,
3648 #[serde(skip_serializing_if = "Option::is_none")]
3657 pub auto_approval: Option<PermissionAutoApproval>,
3658 pub kind: PermissionPromptRequestPathKind,
3660 pub paths: Vec<String>,
3662 #[serde(skip_serializing_if = "Option::is_none")]
3664 pub tool_call_id: Option<String>,
3665}
3666
3667#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3669#[serde(rename_all = "camelCase")]
3670pub struct PermissionPromptRequestHook {
3671 #[serde(skip_serializing_if = "Option::is_none")]
3680 pub auto_approval: Option<PermissionAutoApproval>,
3681 #[serde(skip_serializing_if = "Option::is_none")]
3683 pub hook_message: Option<String>,
3684 pub kind: PermissionPromptRequestHookKind,
3686 #[serde(skip_serializing_if = "Option::is_none")]
3688 pub tool_args: Option<serde_json::Value>,
3689 #[serde(skip_serializing_if = "Option::is_none")]
3691 pub tool_call_id: Option<String>,
3692 pub tool_name: String,
3694}
3695
3696#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3698#[serde(rename_all = "camelCase")]
3699pub struct PermissionPromptRequestExtensionManagement {
3700 #[serde(skip_serializing_if = "Option::is_none")]
3709 pub auto_approval: Option<PermissionAutoApproval>,
3710 #[serde(skip_serializing_if = "Option::is_none")]
3712 pub extension_name: Option<String>,
3713 pub kind: PermissionPromptRequestExtensionManagementKind,
3715 pub operation: String,
3717 #[serde(skip_serializing_if = "Option::is_none")]
3719 pub tool_call_id: Option<String>,
3720}
3721
3722#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3724#[serde(rename_all = "camelCase")]
3725pub struct PermissionPromptRequestFactory {
3726 pub approval_key: String,
3728 #[serde(skip_serializing_if = "Option::is_none")]
3737 pub auto_approval: Option<PermissionAutoApproval>,
3738 pub can_persist_approval: bool,
3740 #[serde(skip_serializing_if = "Option::is_none")]
3741 pub declared_max_ai_credits: Option<f64>,
3742 #[serde(skip_serializing_if = "Option::is_none")]
3743 pub declared_max_concurrent_subagents: Option<i64>,
3744 #[serde(skip_serializing_if = "Option::is_none")]
3745 pub declared_max_total_subagents: Option<i64>,
3746 #[serde(skip_serializing_if = "Option::is_none")]
3747 pub declared_timeout_seconds: Option<f64>,
3748 pub description: String,
3750 pub kind: PermissionPromptRequestFactoryKind,
3752 #[serde(skip_serializing_if = "Option::is_none")]
3754 pub managed_approval_required: Option<bool>,
3755 #[serde(skip_serializing_if = "Option::is_none")]
3757 pub max_ai_credits: Option<f64>,
3758 #[serde(skip_serializing_if = "Option::is_none")]
3760 pub max_concurrent_subagents: Option<i64>,
3761 #[serde(skip_serializing_if = "Option::is_none")]
3763 pub max_total_subagents: Option<i64>,
3764 pub name: String,
3766 pub operation: FactoryPermissionOperation,
3768 pub phases: Vec<FactoryPermissionPhase>,
3770 #[serde(skip_serializing_if = "Option::is_none")]
3772 pub timeout_seconds: Option<f64>,
3773 #[serde(skip_serializing_if = "Option::is_none")]
3775 pub tool_call_id: Option<String>,
3776}
3777
3778#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3780#[serde(rename_all = "camelCase")]
3781pub struct PermissionPromptRequestExtensionPermissionAccess {
3782 #[serde(skip_serializing_if = "Option::is_none")]
3791 pub auto_approval: Option<PermissionAutoApproval>,
3792 pub capabilities: Vec<String>,
3794 pub extension_name: String,
3796 pub kind: PermissionPromptRequestExtensionPermissionAccessKind,
3798 #[serde(skip_serializing_if = "Option::is_none")]
3800 pub tool_call_id: Option<String>,
3801}
3802
3803#[derive(Debug, Clone, Serialize, Deserialize)]
3805#[serde(rename_all = "camelCase")]
3806pub struct PermissionRequestedData {
3807 pub permission_request: PermissionRequest,
3809 #[serde(skip_serializing_if = "Option::is_none")]
3811 pub prompt_request: Option<PermissionPromptRequest>,
3812 pub request_id: RequestId,
3814 #[serde(skip_serializing_if = "Option::is_none")]
3816 pub resolved_by_hook: Option<bool>,
3817 #[serde(skip_serializing_if = "Option::is_none")]
3819 pub risk_assessment: Option<serde_json::Value>,
3820}
3821
3822#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3824#[serde(rename_all = "camelCase")]
3825pub struct PermissionApproved {
3826 pub kind: PermissionApprovedKind,
3828}
3829
3830#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3832#[serde(rename_all = "camelCase")]
3833pub struct UserToolSessionApprovalCommands {
3834 pub command_identifiers: Vec<String>,
3836 pub kind: UserToolSessionApprovalCommandsKind,
3838}
3839
3840#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3842#[serde(rename_all = "camelCase")]
3843pub struct UserToolSessionApprovalRead {
3844 pub kind: UserToolSessionApprovalReadKind,
3846}
3847
3848#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3850#[serde(rename_all = "camelCase")]
3851pub struct UserToolSessionApprovalWrite {
3852 pub kind: UserToolSessionApprovalWriteKind,
3854}
3855
3856#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3858#[serde(rename_all = "camelCase")]
3859pub struct UserToolSessionApprovalMcp {
3860 pub kind: UserToolSessionApprovalMcpKind,
3862 pub server_name: String,
3864 pub tool_name: Option<String>,
3866}
3867
3868#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3870#[serde(rename_all = "camelCase")]
3871pub struct UserToolSessionApprovalMemory {
3872 pub kind: UserToolSessionApprovalMemoryKind,
3874}
3875
3876#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3878#[serde(rename_all = "camelCase")]
3879pub struct UserToolSessionApprovalCustomTool {
3880 pub kind: UserToolSessionApprovalCustomToolKind,
3882 pub tool_name: String,
3884}
3885
3886#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3888#[serde(rename_all = "camelCase")]
3889pub struct UserToolSessionApprovalExtensionManagement {
3890 pub kind: UserToolSessionApprovalExtensionManagementKind,
3892 #[serde(skip_serializing_if = "Option::is_none")]
3894 pub operation: Option<String>,
3895}
3896
3897#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3899#[serde(rename_all = "camelCase")]
3900pub struct UserToolSessionApprovalFactory {
3901 #[serde(skip_serializing_if = "Option::is_none")]
3903 pub approval_key: Option<String>,
3904 pub kind: UserToolSessionApprovalFactoryKind,
3906}
3907
3908#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3910#[serde(rename_all = "camelCase")]
3911pub struct UserToolSessionApprovalExtensionPermissionAccess {
3912 pub extension_name: String,
3914 pub kind: UserToolSessionApprovalExtensionPermissionAccessKind,
3916}
3917
3918#[derive(Debug, Clone, Serialize, Deserialize)]
3920#[serde(rename_all = "camelCase")]
3921pub struct PermissionApprovedForSession {
3922 pub approval: UserToolSessionApproval,
3924 pub kind: PermissionApprovedForSessionKind,
3926}
3927
3928#[derive(Debug, Clone, Serialize, Deserialize)]
3930#[serde(rename_all = "camelCase")]
3931pub struct PermissionApprovedForLocation {
3932 pub approval: UserToolSessionApproval,
3934 pub kind: PermissionApprovedForLocationKind,
3936 pub location_key: String,
3938}
3939
3940#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3942#[serde(rename_all = "camelCase")]
3943pub struct PermissionCancelled {
3944 pub kind: PermissionCancelledKind,
3946 #[serde(skip_serializing_if = "Option::is_none")]
3948 pub reason: Option<String>,
3949}
3950
3951#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3953#[serde(rename_all = "camelCase")]
3954pub struct PermissionRule {
3955 pub argument: Option<String>,
3957 pub kind: String,
3959}
3960
3961#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3963#[serde(rename_all = "camelCase")]
3964pub struct PermissionDeniedByRules {
3965 pub kind: PermissionDeniedByRulesKind,
3967 pub rules: Vec<PermissionRule>,
3969}
3970
3971#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3973#[serde(rename_all = "camelCase")]
3974pub struct PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser {
3975 pub kind: PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUserKind,
3977}
3978
3979#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3981#[serde(rename_all = "camelCase")]
3982pub struct PermissionDeniedInteractivelyByUser {
3983 #[serde(skip_serializing_if = "Option::is_none")]
3985 pub feedback: Option<String>,
3986 #[serde(skip_serializing_if = "Option::is_none")]
3988 pub force_reject: Option<bool>,
3989 pub kind: PermissionDeniedInteractivelyByUserKind,
3991}
3992
3993#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3995#[serde(rename_all = "camelCase")]
3996pub struct PermissionDeniedByContentExclusionPolicy {
3997 pub kind: PermissionDeniedByContentExclusionPolicyKind,
3999 pub message: String,
4001 pub path: String,
4003}
4004
4005#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4007#[serde(rename_all = "camelCase")]
4008pub struct PermissionDeniedByPermissionRequestHook {
4009 #[serde(skip_serializing_if = "Option::is_none")]
4011 pub interrupt: Option<bool>,
4012 pub kind: PermissionDeniedByPermissionRequestHookKind,
4014 #[serde(skip_serializing_if = "Option::is_none")]
4016 pub message: Option<String>,
4017}
4018
4019#[derive(Debug, Clone, Serialize, Deserialize)]
4021#[serde(rename_all = "camelCase")]
4022pub struct PermissionCompletedData {
4023 pub request_id: RequestId,
4025 pub result: PermissionResult,
4027 #[serde(skip_serializing_if = "Option::is_none")]
4029 pub tool_call_id: Option<String>,
4030}
4031
4032#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4034#[serde(rename_all = "camelCase")]
4035pub struct UserInputRequestedData {
4036 #[serde(skip_serializing_if = "Option::is_none")]
4038 pub allow_freeform: Option<bool>,
4039 #[serde(skip_serializing_if = "Option::is_none")]
4041 pub choices: Option<Vec<String>>,
4042 pub question: String,
4044 pub request_id: RequestId,
4046 #[serde(skip_serializing_if = "Option::is_none")]
4048 pub tool_call_id: Option<String>,
4049}
4050
4051#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4053#[serde(rename_all = "camelCase")]
4054pub struct UserInputCompletedData {
4055 #[serde(skip_serializing_if = "Option::is_none")]
4057 pub answer: Option<String>,
4058 pub request_id: RequestId,
4060 #[serde(skip_serializing_if = "Option::is_none")]
4062 pub was_freeform: Option<bool>,
4063}
4064
4065#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4067#[serde(rename_all = "camelCase")]
4068pub struct ElicitationRequestedSchema {
4069 pub properties: HashMap<String, serde_json::Value>,
4071 #[serde(skip_serializing_if = "Option::is_none")]
4073 pub required: Option<Vec<String>>,
4074 pub r#type: ElicitationRequestedSchemaType,
4076}
4077
4078#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4080#[serde(rename_all = "camelCase")]
4081pub struct ElicitationRequestedData {
4082 #[serde(skip_serializing_if = "Option::is_none")]
4084 pub elicitation_source: Option<String>,
4085 pub message: String,
4087 #[serde(skip_serializing_if = "Option::is_none")]
4089 pub mode: Option<ElicitationRequestedMode>,
4090 #[serde(skip_serializing_if = "Option::is_none")]
4092 pub requested_schema: Option<ElicitationRequestedSchema>,
4093 pub request_id: RequestId,
4095 #[serde(skip_serializing_if = "Option::is_none")]
4097 pub tool_call_id: Option<String>,
4098 #[serde(skip_serializing_if = "Option::is_none")]
4100 pub url: Option<String>,
4101}
4102
4103#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4105#[serde(rename_all = "camelCase")]
4106pub struct ElicitationCompletedData {
4107 #[serde(skip_serializing_if = "Option::is_none")]
4109 pub action: Option<ElicitationCompletedAction>,
4110 #[serde(skip_serializing_if = "Option::is_none")]
4112 pub content: Option<HashMap<String, serde_json::Value>>,
4113 pub request_id: RequestId,
4115}
4116
4117#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4119#[serde(rename_all = "camelCase")]
4120pub struct SamplingRequestedData {
4121 pub mcp_request_id: serde_json::Value,
4123 pub request_id: RequestId,
4125 pub server_name: String,
4127}
4128
4129#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4131#[serde(rename_all = "camelCase")]
4132pub struct SamplingCompletedData {
4133 pub request_id: RequestId,
4135}
4136
4137#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4139#[serde(rename_all = "camelCase")]
4140pub struct HeaderEntry {
4141 pub name: String,
4143 pub value: String,
4145}
4146
4147#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4149#[serde(rename_all = "camelCase")]
4150pub struct McpOauthHttpResponse {
4151 #[serde(skip_serializing_if = "Option::is_none")]
4153 pub body: Option<String>,
4154 pub headers: Vec<HeaderEntry>,
4156 pub status_code: i32,
4158}
4159
4160#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4162#[serde(rename_all = "camelCase")]
4163pub struct McpOauthRequiredStaticClientConfig {
4164 pub client_id: String,
4166 #[serde(skip_serializing_if = "Option::is_none")]
4168 pub client_secret: Option<String>,
4169 #[serde(skip_serializing_if = "Option::is_none")]
4171 pub grant_type: Option<McpOauthRequiredStaticClientConfigGrantType>,
4172 #[serde(skip_serializing_if = "Option::is_none")]
4174 pub public_client: Option<bool>,
4175}
4176
4177#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4179#[serde(rename_all = "camelCase")]
4180pub struct McpOauthWWWAuthenticateParams {
4181 #[serde(skip_serializing_if = "Option::is_none")]
4183 pub error: Option<String>,
4184 #[serde(skip_serializing_if = "Option::is_none")]
4186 pub resource_metadata_url: Option<String>,
4187 #[serde(skip_serializing_if = "Option::is_none")]
4189 pub scope: Option<String>,
4190}
4191
4192#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4194#[serde(rename_all = "camelCase")]
4195pub struct McpOauthRequiredData {
4196 #[serde(skip_serializing_if = "Option::is_none")]
4198 pub http_response: Option<McpOauthHttpResponse>,
4199 pub reason: McpOauthRequestReason,
4201 pub request_id: RequestId,
4203 #[serde(skip_serializing_if = "Option::is_none")]
4205 pub resource_metadata: Option<String>,
4206 pub server_name: String,
4208 pub server_url: String,
4210 #[serde(skip_serializing_if = "Option::is_none")]
4212 pub static_client_config: Option<McpOauthRequiredStaticClientConfig>,
4213 #[serde(skip_serializing_if = "Option::is_none")]
4215 pub www_authenticate_params: Option<McpOauthWWWAuthenticateParams>,
4216}
4217
4218#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4220#[serde(rename_all = "camelCase")]
4221pub struct McpOauthCompletedData {
4222 pub outcome: McpOauthCompletionOutcome,
4224 pub request_id: RequestId,
4226}
4227
4228#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4230#[serde(rename_all = "camelCase")]
4231pub struct McpHeadersRefreshRequiredData {
4232 pub reason: McpHeadersRefreshRequiredReason,
4234 pub request_id: RequestId,
4236 pub server_name: String,
4238 pub server_url: String,
4240}
4241
4242#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4244#[serde(rename_all = "camelCase")]
4245pub struct McpHeadersRefreshCompletedData {
4246 pub outcome: McpHeadersRefreshCompletedOutcome,
4248 pub request_id: RequestId,
4250}
4251
4252#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4254#[serde(rename_all = "camelCase")]
4255pub struct SessionCustomNotificationData {
4256 pub name: String,
4258 pub payload: serde_json::Value,
4260 pub source: String,
4262 #[serde(skip_serializing_if = "Option::is_none")]
4264 pub subject: Option<HashMap<String, String>>,
4265 #[serde(skip_serializing_if = "Option::is_none")]
4267 pub version: Option<i64>,
4268}
4269
4270#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4272#[serde(rename_all = "camelCase")]
4273pub struct ExternalToolRequestedData {
4274 #[serde(skip_serializing_if = "Option::is_none")]
4276 pub arguments: Option<serde_json::Value>,
4277 pub request_id: RequestId,
4279 pub session_id: SessionId,
4281 pub tool_call_id: String,
4283 pub tool_name: String,
4285 #[serde(skip_serializing_if = "Option::is_none")]
4287 pub traceparent: Option<String>,
4288 #[serde(skip_serializing_if = "Option::is_none")]
4290 pub tracestate: Option<String>,
4291 #[serde(skip_serializing_if = "Option::is_none")]
4293 pub working_directory: Option<String>,
4294}
4295
4296#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4298#[serde(rename_all = "camelCase")]
4299pub struct ExternalToolCompletedData {
4300 pub request_id: RequestId,
4302}
4303
4304#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4306#[serde(rename_all = "camelCase")]
4307pub struct CommandQueuedData {
4308 pub command: String,
4310 pub request_id: RequestId,
4312}
4313
4314#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4316#[serde(rename_all = "camelCase")]
4317pub struct CommandExecuteData {
4318 pub args: String,
4320 pub command: String,
4322 pub command_name: String,
4324 pub request_id: RequestId,
4326}
4327
4328#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4330#[serde(rename_all = "camelCase")]
4331pub struct CommandCompletedData {
4332 pub request_id: RequestId,
4334}
4335
4336#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4338#[serde(rename_all = "camelCase")]
4339pub struct AutoModeSwitchRequestedData {
4340 #[serde(skip_serializing_if = "Option::is_none")]
4342 pub error_code: Option<String>,
4343 pub request_id: RequestId,
4345 #[serde(skip_serializing_if = "Option::is_none")]
4347 pub retry_after_seconds: Option<i64>,
4348}
4349
4350#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4352#[serde(rename_all = "camelCase")]
4353pub struct AutoModeSwitchCompletedData {
4354 pub request_id: RequestId,
4356 pub response: AutoModeSwitchResponse,
4358}
4359
4360#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4362#[serde(rename_all = "camelCase")]
4363pub struct SessionLimitsExhaustedRequestedData {
4364 pub max_ai_credits: f64,
4366 pub request_id: RequestId,
4368 pub used_ai_credits: f64,
4370}
4371
4372#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4374#[serde(rename_all = "camelCase")]
4375pub struct SessionLimitsExhaustedResponse {
4376 pub action: SessionLimitsExhaustedResponseAction,
4378 #[serde(skip_serializing_if = "Option::is_none")]
4380 pub additional_ai_credits: Option<f64>,
4381 #[serde(skip_serializing_if = "Option::is_none")]
4383 pub max_ai_credits: Option<f64>,
4384}
4385
4386#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4388#[serde(rename_all = "camelCase")]
4389pub struct SessionLimitsExhaustedCompletedData {
4390 pub request_id: RequestId,
4392 pub response: SessionLimitsExhaustedResponse,
4394}
4395
4396#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4405#[serde(rename_all = "camelCase")]
4406pub struct SessionAutoModeResolvedData {
4407 #[serde(skip_serializing_if = "Option::is_none")]
4409 pub available_models: Option<Vec<String>>,
4410 #[serde(skip_serializing_if = "Option::is_none")]
4412 pub candidate_models: Option<Vec<String>>,
4413 #[serde(skip_serializing_if = "Option::is_none")]
4415 pub category_scores: Option<HashMap<String, f64>>,
4416 pub chosen_model: String,
4418 #[serde(skip_serializing_if = "Option::is_none")]
4420 pub chosen_shortfall: Option<f64>,
4421 #[serde(skip_serializing_if = "Option::is_none")]
4423 pub confidence: Option<f64>,
4424 #[serde(skip_serializing_if = "Option::is_none")]
4426 pub end_to_end_latency_ms: Option<f64>,
4427 #[serde(skip_serializing_if = "Option::is_none")]
4429 pub fallback: Option<bool>,
4430 #[serde(skip_serializing_if = "Option::is_none")]
4432 pub fallback_reason: Option<String>,
4433 #[serde(skip_serializing_if = "Option::is_none")]
4435 pub has_image: Option<bool>,
4436 #[serde(skip_serializing_if = "Option::is_none")]
4438 pub predicted_label: Option<String>,
4439 #[serde(skip_serializing_if = "Option::is_none")]
4441 pub reasoning_bucket: Option<AutoModeResolvedReasoningBucket>,
4442 #[serde(skip_serializing_if = "Option::is_none")]
4444 pub router_latency_ms: Option<f64>,
4445 #[serde(skip_serializing_if = "Option::is_none")]
4447 pub routing_method: Option<String>,
4448 #[serde(skip_serializing_if = "Option::is_none")]
4450 pub sticky_override: Option<bool>,
4451}
4452
4453#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4462#[serde(rename_all = "camelCase")]
4463pub struct SessionManagedSettingsResolvedData {
4464 pub bypass_permissions_disabled: bool,
4466 #[serde(skip_serializing_if = "Option::is_none")]
4468 pub client_managed: Option<bool>,
4469 pub device_managed: bool,
4471 pub fail_closed: bool,
4473 pub managed_keys: Vec<String>,
4475 #[serde(skip_serializing_if = "Option::is_none")]
4477 pub permissions_allow_intersected: Option<bool>,
4478 pub server_managed: bool,
4480 #[serde(skip_serializing_if = "Option::is_none")]
4482 pub settings: Option<serde_json::Value>,
4483 pub source: ManagedSettingsResolvedSource,
4485}
4486
4487#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4496#[serde(rename_all = "camelCase")]
4497pub struct SessionManagedSettingsEnforcedData {
4498 pub action: ManagedSettingsEnforcedAction,
4500 #[serde(skip_serializing_if = "Option::is_none")]
4502 pub escalation: Option<ManagedSettingsEnforcedEscalation>,
4503 pub fail_closed: bool,
4505 pub message: String,
4507 pub setting: String,
4509}
4510
4511#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4513#[serde(rename_all = "camelCase")]
4514pub struct CommandsChangedCommand {
4515 #[serde(skip_serializing_if = "Option::is_none")]
4517 pub description: Option<String>,
4518 pub name: String,
4520}
4521
4522#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4524#[serde(rename_all = "camelCase")]
4525pub struct CommandsChangedData {
4526 pub commands: Vec<CommandsChangedCommand>,
4528}
4529
4530#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4532#[serde(rename_all = "camelCase")]
4533pub struct CapabilitiesChangedUI {
4534 #[serde(skip_serializing_if = "Option::is_none")]
4536 pub canvases: Option<bool>,
4537 #[serde(skip_serializing_if = "Option::is_none")]
4539 pub elicitation: Option<bool>,
4540 #[serde(skip_serializing_if = "Option::is_none")]
4542 pub mcp_apps: Option<bool>,
4543}
4544
4545#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4547#[serde(rename_all = "camelCase")]
4548pub struct CapabilitiesChangedData {
4549 #[serde(skip_serializing_if = "Option::is_none")]
4551 pub ui: Option<CapabilitiesChangedUI>,
4552}
4553
4554#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4556#[serde(rename_all = "camelCase")]
4557pub struct ExitPlanModeRequestedData {
4558 pub actions: Vec<ExitPlanModeAction>,
4560 pub plan_content: String,
4562 pub recommended_action: ExitPlanModeAction,
4564 pub request_id: RequestId,
4566 pub summary: String,
4568}
4569
4570#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4572#[serde(rename_all = "camelCase")]
4573pub struct ExitPlanModeCompletedData {
4574 #[serde(skip_serializing_if = "Option::is_none")]
4576 pub approved: Option<bool>,
4577 #[serde(skip_serializing_if = "Option::is_none")]
4579 pub auto_approve_edits: Option<bool>,
4580 #[serde(skip_serializing_if = "Option::is_none")]
4582 pub feedback: Option<String>,
4583 pub request_id: RequestId,
4585 #[serde(skip_serializing_if = "Option::is_none")]
4587 pub selected_action: Option<ExitPlanModeAction>,
4588}
4589
4590#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4592#[serde(rename_all = "camelCase")]
4593pub struct SessionToolsUpdatedData {
4594 pub model: String,
4596}
4597
4598#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4600#[serde(rename_all = "camelCase")]
4601pub struct SessionBackgroundTasksChangedData {}
4602
4603#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4612#[serde(rename_all = "camelCase")]
4613pub struct FactoryRunUpdatedData {
4614 pub revision: i64,
4616 pub run_id: String,
4617}
4618
4619#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4621#[serde(rename_all = "camelCase")]
4622pub struct SkillsLoadedSkill {
4623 #[serde(skip_serializing_if = "Option::is_none")]
4625 pub argument_hint: Option<String>,
4626 #[serde(skip_serializing_if = "Option::is_none")]
4628 pub command_name: Option<String>,
4629 pub description: String,
4631 pub enabled: bool,
4633 pub name: String,
4635 #[serde(skip_serializing_if = "Option::is_none")]
4637 pub path: Option<String>,
4638 pub source: SkillSource,
4640 pub user_invocable: bool,
4642}
4643
4644#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4646#[serde(rename_all = "camelCase")]
4647pub struct SessionSkillsLoadedData {
4648 pub skills: Vec<SkillsLoadedSkill>,
4650}
4651
4652#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4654#[serde(rename_all = "camelCase")]
4655pub struct CustomAgentsUpdatedAgent {
4656 pub description: String,
4658 pub display_name: String,
4660 pub id: String,
4662 #[serde(skip_serializing_if = "Option::is_none")]
4664 pub model: Option<String>,
4665 pub name: String,
4667 pub source: String,
4669 pub tools: Option<Vec<String>>,
4671 pub user_invocable: bool,
4673}
4674
4675#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4677#[serde(rename_all = "camelCase")]
4678pub struct SessionCustomAgentsUpdatedData {
4679 pub agents: Vec<CustomAgentsUpdatedAgent>,
4681 pub errors: Vec<String>,
4683 pub warnings: Vec<String>,
4685}
4686
4687#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4689#[serde(rename_all = "camelCase")]
4690pub struct McpServersLoadedServer {
4691 #[serde(skip_serializing_if = "Option::is_none")]
4693 pub error: Option<String>,
4694 pub name: String,
4696 #[serde(skip_serializing_if = "Option::is_none")]
4698 pub plugin_name: Option<String>,
4699 #[serde(skip_serializing_if = "Option::is_none")]
4701 pub plugin_version: Option<String>,
4702 #[serde(skip_serializing_if = "Option::is_none")]
4704 pub source: Option<McpServerSource>,
4705 pub status: McpServerStatus,
4707 #[serde(skip_serializing_if = "Option::is_none")]
4709 pub transport: Option<McpServerTransport>,
4710}
4711
4712#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4714#[serde(rename_all = "camelCase")]
4715pub struct SessionMcpServersLoadedData {
4716 pub servers: Vec<McpServersLoadedServer>,
4718}
4719
4720#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4722#[serde(rename_all = "camelCase")]
4723pub struct SessionMcpServerStatusChangedData {
4724 #[serde(skip_serializing_if = "Option::is_none")]
4726 pub error: Option<String>,
4727 pub server_name: String,
4729 pub status: McpServerStatus,
4731}
4732
4733#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4735#[serde(rename_all = "camelCase")]
4736pub struct McpToolsListChangedData {
4737 pub server_name: String,
4739}
4740
4741#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4743#[serde(rename_all = "camelCase")]
4744pub struct McpResourcesListChangedData {
4745 pub server_name: String,
4747}
4748
4749#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4751#[serde(rename_all = "camelCase")]
4752pub struct McpPromptsListChangedData {
4753 pub server_name: String,
4755}
4756
4757#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4759#[serde(rename_all = "camelCase")]
4760pub struct ExtensionsLoadedExtension {
4761 pub id: String,
4763 pub name: String,
4765 pub source: ExtensionsLoadedExtensionSource,
4767 pub status: ExtensionsLoadedExtensionStatus,
4769}
4770
4771#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4773#[serde(rename_all = "camelCase")]
4774pub struct SessionExtensionsLoadedData {
4775 pub extensions: Vec<ExtensionsLoadedExtension>,
4777}
4778
4779#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4788#[serde(rename_all = "camelCase")]
4789pub struct SessionCanvasOpenedData {
4790 pub canvas_id: String,
4792 pub extension_id: String,
4794 #[serde(skip_serializing_if = "Option::is_none")]
4796 pub extension_name: Option<String>,
4797 #[serde(skip_serializing_if = "Option::is_none")]
4799 pub icon: Option<String>,
4800 #[serde(skip_serializing_if = "Option::is_none")]
4802 pub input: Option<serde_json::Value>,
4803 pub instance_id: String,
4805 #[serde(skip_serializing_if = "Option::is_none")]
4807 pub status: Option<String>,
4808 #[serde(skip_serializing_if = "Option::is_none")]
4810 pub title: Option<String>,
4811 #[serde(skip_serializing_if = "Option::is_none")]
4813 pub url: Option<String>,
4814}
4815
4816#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4825#[serde(rename_all = "camelCase")]
4826pub struct CanvasRegistryChangedCanvasAction {
4827 #[serde(skip_serializing_if = "Option::is_none")]
4829 pub description: Option<String>,
4830 #[serde(skip_serializing_if = "Option::is_none")]
4832 pub input_schema: Option<serde_json::Value>,
4833 pub name: String,
4835}
4836
4837#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4846#[serde(rename_all = "camelCase")]
4847pub struct CanvasRegistryChangedCanvas {
4848 #[serde(skip_serializing_if = "Option::is_none")]
4850 pub actions: Option<Vec<CanvasRegistryChangedCanvasAction>>,
4851 pub canvas_id: String,
4853 pub description: String,
4855 pub display_name: String,
4857 pub extension_id: String,
4859 #[serde(skip_serializing_if = "Option::is_none")]
4861 pub extension_name: Option<String>,
4862 #[serde(skip_serializing_if = "Option::is_none")]
4864 pub icon: Option<String>,
4865 #[serde(skip_serializing_if = "Option::is_none")]
4867 pub input_schema: Option<serde_json::Value>,
4868}
4869
4870#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4879#[serde(rename_all = "camelCase")]
4880pub struct SessionCanvasRegistryChangedData {
4881 pub canvases: Vec<CanvasRegistryChangedCanvas>,
4883}
4884
4885#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4894#[serde(rename_all = "camelCase")]
4895pub struct SessionCanvasClosedData {
4896 pub canvas_id: String,
4898 pub extension_id: String,
4900 pub instance_id: String,
4902}
4903
4904#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4913#[serde(rename_all = "camelCase")]
4914pub struct SessionCanvasUnavailableData {
4915 pub canvas_id: String,
4917 pub extension_id: String,
4919 pub instance_id: String,
4921}
4922
4923#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4932#[serde(rename_all = "camelCase")]
4933pub struct SessionCanvasRecordedData {
4934 pub canvas_id: String,
4936 pub extension_id: String,
4938 #[serde(skip_serializing_if = "Option::is_none")]
4940 pub input: Option<serde_json::Value>,
4941 pub instance_id: String,
4943 #[serde(skip_serializing_if = "Option::is_none")]
4945 pub title: Option<String>,
4946}
4947
4948#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4957#[serde(rename_all = "camelCase")]
4958pub struct SessionCanvasRemovedData {
4959 pub canvas_id: String,
4961 pub extension_id: String,
4963 pub instance_id: String,
4965}
4966
4967#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4969#[serde(rename_all = "camelCase")]
4970pub struct SessionExtensionsAttachmentsPushedData {
4971 pub attachments: Vec<serde_json::Value>,
4973}
4974
4975#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4977#[serde(rename_all = "camelCase")]
4978pub struct McpAppToolCallCompleteError {
4979 pub message: String,
4981}
4982
4983#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4985#[serde(rename_all = "camelCase")]
4986pub struct McpAppToolCallCompleteToolMetaUI {
4987 #[serde(skip_serializing_if = "Option::is_none")]
4989 pub resource_uri: Option<String>,
4990 #[serde(skip_serializing_if = "Option::is_none")]
4992 pub visibility: Option<Vec<String>>,
4993}
4994
4995#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4997#[serde(rename_all = "camelCase")]
4998pub struct McpAppToolCallCompleteToolMeta {
4999 #[serde(skip_serializing_if = "Option::is_none")]
5001 pub ui: Option<McpAppToolCallCompleteToolMetaUI>,
5002}
5003
5004#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5006#[serde(rename_all = "camelCase")]
5007pub struct McpAppToolCallCompleteData {
5008 #[serde(skip_serializing_if = "Option::is_none")]
5010 pub arguments: Option<HashMap<String, serde_json::Value>>,
5011 pub duration_ms: f64,
5013 #[serde(skip_serializing_if = "Option::is_none")]
5015 pub error: Option<McpAppToolCallCompleteError>,
5016 #[serde(skip_serializing_if = "Option::is_none")]
5018 pub result: Option<HashMap<String, serde_json::Value>>,
5019 pub server_name: String,
5021 pub success: bool,
5023 #[serde(skip_serializing_if = "Option::is_none")]
5025 pub tool_meta: Option<McpAppToolCallCompleteToolMeta>,
5026 pub tool_name: String,
5028}
5029
5030#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5032pub enum WorkingDirectoryContextHostType {
5033 #[serde(rename = "github")]
5035 GitHub,
5036 #[serde(rename = "ado")]
5038 Ado,
5039 #[default]
5041 #[serde(other)]
5042 Unknown,
5043}
5044
5045#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5047pub enum ContextTier {
5048 #[serde(rename = "default")]
5050 Default,
5051 #[serde(rename = "long_context")]
5053 LongContext,
5054 #[default]
5056 #[serde(other)]
5057 Unknown,
5058}
5059
5060#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5062pub enum ReasoningSummary {
5063 #[serde(rename = "none")]
5065 None,
5066 #[serde(rename = "concise")]
5068 Concise,
5069 #[serde(rename = "detailed")]
5071 Detailed,
5072 #[default]
5074 #[serde(other)]
5075 Unknown,
5076}
5077
5078#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5080pub enum Verbosity {
5081 #[serde(rename = "low")]
5083 Low,
5084 #[serde(rename = "medium")]
5086 Medium,
5087 #[serde(rename = "high")]
5089 High,
5090 #[default]
5092 #[serde(other)]
5093 Unknown,
5094}
5095
5096#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5098pub enum ScheduleOrigin {
5099 #[serde(rename = "user")]
5101 User,
5102 #[serde(rename = "model")]
5104 Model,
5105 #[default]
5107 #[serde(other)]
5108 Unknown,
5109}
5110
5111#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5113pub enum AutopilotObjectiveChangedOperation {
5114 #[serde(rename = "create")]
5116 Create,
5117 #[serde(rename = "update")]
5119 Update,
5120 #[serde(rename = "delete")]
5122 Delete,
5123 #[default]
5125 #[serde(other)]
5126 Unknown,
5127}
5128
5129#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5131pub enum AutopilotObjectiveChangedStatus {
5132 #[serde(rename = "active")]
5134 Active,
5135 #[serde(rename = "paused")]
5137 Paused,
5138 #[serde(rename = "cap_reached")]
5140 CapReached,
5141 #[serde(rename = "completed")]
5143 Completed,
5144 #[default]
5146 #[serde(other)]
5147 Unknown,
5148}
5149
5150#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5152pub enum SessionMode {
5153 #[serde(rename = "interactive")]
5155 Interactive,
5156 #[serde(rename = "plan")]
5158 Plan,
5159 #[serde(rename = "autopilot")]
5161 Autopilot,
5162 #[default]
5164 #[serde(other)]
5165 Unknown,
5166}
5167
5168#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5177pub enum PermissionAllowAllMode {
5178 #[serde(rename = "off")]
5180 Off,
5181 #[serde(rename = "on")]
5183 On,
5184 #[serde(rename = "auto")]
5186 Auto,
5187 #[default]
5189 #[serde(other)]
5190 Unknown,
5191}
5192
5193#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5195pub enum PlanChangedOperation {
5196 #[serde(rename = "create")]
5198 Create,
5199 #[serde(rename = "update")]
5201 Update,
5202 #[serde(rename = "delete")]
5204 Delete,
5205 #[default]
5207 #[serde(other)]
5208 Unknown,
5209}
5210
5211#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5213pub enum WorkspaceFileChangedOperation {
5214 #[serde(rename = "create")]
5216 Create,
5217 #[serde(rename = "update")]
5219 Update,
5220 #[default]
5222 #[serde(other)]
5223 Unknown,
5224}
5225
5226#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5228pub enum HandoffSourceType {
5229 #[serde(rename = "remote")]
5231 Remote,
5232 #[serde(rename = "local")]
5234 Local,
5235 #[default]
5237 #[serde(other)]
5238 Unknown,
5239}
5240
5241#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5243pub enum ShutdownType {
5244 #[serde(rename = "routine")]
5246 Routine,
5247 #[serde(rename = "error")]
5249 Error,
5250 #[default]
5252 #[serde(other)]
5253 Unknown,
5254}
5255
5256#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5258pub enum CompactionTrigger {
5259 #[serde(rename = "threshold")]
5261 Threshold,
5262 #[serde(rename = "context_limit_retry")]
5264 ContextLimitRetry,
5265 #[serde(rename = "manual")]
5267 Manual,
5268 #[serde(rename = "memory_pressure")]
5270 MemoryPressure,
5271 #[serde(rename = "model_switch")]
5273 ModelSwitch,
5274 #[default]
5276 #[serde(other)]
5277 Unknown,
5278}
5279
5280#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5282pub enum TaskCompletionOutcome {
5283 #[serde(rename = "completed")]
5285 Completed,
5286 #[serde(rename = "continue")]
5288 Continue,
5289 #[serde(rename = "blocked")]
5291 Blocked,
5292 #[default]
5294 #[serde(other)]
5295 Unknown,
5296}
5297
5298#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5300pub enum UserMessageAgentMode {
5301 #[serde(rename = "interactive")]
5303 Interactive,
5304 #[serde(rename = "plan")]
5306 Plan,
5307 #[serde(rename = "autopilot")]
5309 Autopilot,
5310 #[serde(rename = "shell")]
5312 Shell,
5313 #[default]
5315 #[serde(other)]
5316 Unknown,
5317}
5318
5319#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5321pub enum UserMessageDelivery {
5322 #[serde(rename = "idle")]
5324 Idle,
5325 #[serde(rename = "steering")]
5327 Steering,
5328 #[serde(rename = "queued")]
5330 Queued,
5331 #[default]
5333 #[serde(other)]
5334 Unknown,
5335}
5336
5337#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5339pub enum AssistantMessageToolRequestType {
5340 #[serde(rename = "function")]
5342 Function,
5343 #[serde(rename = "custom")]
5345 Custom,
5346 #[default]
5348 #[serde(other)]
5349 Unknown,
5350}
5351
5352#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5361pub enum CitationProvider {
5362 #[serde(rename = "anthropic")]
5364 Anthropic,
5365 #[serde(rename = "openai")]
5367 Openai,
5368 #[serde(rename = "client")]
5370 Client,
5371 #[default]
5373 #[serde(other)]
5374 Unknown,
5375}
5376
5377#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5379pub enum AssistantUsageApiEndpoint {
5380 #[serde(rename = "/chat/completions")]
5382 ChatCompletions,
5383 #[serde(rename = "/v1/messages")]
5385 V1Messages,
5386 #[serde(rename = "/responses")]
5388 Responses,
5389 #[serde(rename = "ws:/responses")]
5391 WsResponses,
5392 #[default]
5394 #[serde(other)]
5395 Unknown,
5396}
5397
5398#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5400pub enum ModelCallFailureBadRequestKind {
5401 #[serde(rename = "bodyless")]
5403 Bodyless,
5404 #[serde(rename = "structured_error")]
5406 StructuredError,
5407 #[default]
5409 #[serde(other)]
5410 Unknown,
5411}
5412
5413#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5415pub enum ModelCallFailureKind {
5416 #[serde(rename = "api")]
5418 Api,
5419 #[serde(rename = "transport")]
5421 Transport,
5422 #[default]
5424 #[serde(other)]
5425 Unknown,
5426}
5427
5428#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5430pub enum ModelCallFailureSource {
5431 #[serde(rename = "top_level")]
5433 TopLevel,
5434 #[serde(rename = "subagent")]
5436 Subagent,
5437 #[serde(rename = "mcp_sampling")]
5439 McpSampling,
5440 #[default]
5442 #[serde(other)]
5443 Unknown,
5444}
5445
5446#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5448pub enum ModelCallFailureTransport {
5449 #[serde(rename = "http")]
5451 Http,
5452 #[serde(rename = "websocket")]
5454 Websocket,
5455 #[default]
5457 #[serde(other)]
5458 Unknown,
5459}
5460
5461#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5463pub enum AbortReason {
5464 #[serde(rename = "user_initiated")]
5466 UserInitiated,
5467 #[serde(rename = "remote_command")]
5469 RemoteCommand,
5470 #[serde(rename = "user_abort")]
5472 UserAbort,
5473 #[serde(rename = "autopilot_credit_limit")]
5475 AutopilotCreditLimit,
5476 #[default]
5478 #[serde(other)]
5479 Unknown,
5480}
5481
5482#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5484pub enum ToolExecutionStartToolDescriptionMetaUIVisibility {
5485 #[serde(rename = "model")]
5487 Model,
5488 #[serde(rename = "app")]
5490 App,
5491 #[default]
5493 #[serde(other)]
5494 Unknown,
5495}
5496
5497#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5499pub enum ToolExecutionCompleteContentTextType {
5500 #[serde(rename = "text")]
5501 #[default]
5502 Text,
5503}
5504
5505#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5507pub enum ToolExecutionCompleteContentTerminalType {
5508 #[serde(rename = "terminal")]
5509 #[default]
5510 Terminal,
5511}
5512
5513#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5515pub enum ToolExecutionCompleteContentShellExitType {
5516 #[serde(rename = "shell_exit")]
5517 #[default]
5518 ShellExit,
5519}
5520
5521#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5523pub enum ToolExecutionCompleteContentImageType {
5524 #[serde(rename = "image")]
5525 #[default]
5526 Image,
5527}
5528
5529#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5531pub enum ToolExecutionCompleteContentAudioType {
5532 #[serde(rename = "audio")]
5533 #[default]
5534 Audio,
5535}
5536
5537#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5539pub enum ToolExecutionCompleteContentResourceLinkIconTheme {
5540 #[serde(rename = "light")]
5542 Light,
5543 #[serde(rename = "dark")]
5545 Dark,
5546 #[default]
5548 #[serde(other)]
5549 Unknown,
5550}
5551
5552#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5554pub enum ToolExecutionCompleteContentResourceLinkType {
5555 #[serde(rename = "resource_link")]
5556 #[default]
5557 ResourceLink,
5558}
5559
5560#[derive(Debug, Clone, Serialize, Deserialize)]
5562#[serde(untagged)]
5563pub enum ToolExecutionCompleteContentResourceDetails {
5564 EmbeddedTextResourceContents(EmbeddedTextResourceContents),
5565 EmbeddedBlobResourceContents(EmbeddedBlobResourceContents),
5566}
5567
5568#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5570pub enum ToolExecutionCompleteContentResourceType {
5571 #[serde(rename = "resource")]
5572 #[default]
5573 Resource,
5574}
5575
5576#[derive(Debug, Clone, Serialize, Deserialize)]
5578#[serde(untagged)]
5579pub enum ToolExecutionCompleteContent {
5580 Text(ToolExecutionCompleteContentText),
5581 Terminal(ToolExecutionCompleteContentTerminal),
5582 ShellExit(ToolExecutionCompleteContentShellExit),
5583 Image(ToolExecutionCompleteContentImage),
5584 Audio(ToolExecutionCompleteContentAudio),
5585 ResourceLink(ToolExecutionCompleteContentResourceLink),
5586 Resource(ToolExecutionCompleteContentResource),
5587}
5588
5589#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5591pub enum ToolExecutionCompleteToolDescriptionMetaUIVisibility {
5592 #[serde(rename = "model")]
5594 Model,
5595 #[serde(rename = "app")]
5597 App,
5598 #[default]
5600 #[serde(other)]
5601 Unknown,
5602}
5603
5604#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5606pub enum SkillInvokedTrigger {
5607 #[serde(rename = "user-invoked")]
5609 UserInvoked,
5610 #[serde(rename = "agent-invoked")]
5612 AgentInvoked,
5613 #[serde(rename = "context-load")]
5615 ContextLoad,
5616 #[default]
5618 #[serde(other)]
5619 Unknown,
5620}
5621
5622#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5624pub enum BinaryAssetType {
5625 #[serde(rename = "image")]
5627 Image,
5628 #[serde(rename = "resource")]
5630 Resource,
5631 #[default]
5633 #[serde(other)]
5634 Unknown,
5635}
5636
5637#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5639pub enum SystemMessageRole {
5640 #[serde(rename = "system")]
5642 System,
5643 #[serde(rename = "developer")]
5645 Developer,
5646 #[default]
5648 #[serde(other)]
5649 Unknown,
5650}
5651
5652#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5654pub enum PermissionRequestShellKind {
5655 #[serde(rename = "shell")]
5656 #[default]
5657 Shell,
5658}
5659
5660#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5662pub enum PermissionRequestWriteKind {
5663 #[serde(rename = "write")]
5664 #[default]
5665 Write,
5666}
5667
5668#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5670pub enum PermissionRequestReadKind {
5671 #[serde(rename = "read")]
5672 #[default]
5673 Read,
5674}
5675
5676#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5678pub enum PermissionRequestMcpKind {
5679 #[serde(rename = "mcp")]
5680 #[default]
5681 Mcp,
5682}
5683
5684#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5686pub enum PermissionRequestUrlKind {
5687 #[serde(rename = "url")]
5688 #[default]
5689 Url,
5690}
5691
5692#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5694pub enum PermissionRequestMemoryAction {
5695 #[serde(rename = "store")]
5697 Store,
5698 #[serde(rename = "vote")]
5700 Vote,
5701 #[default]
5703 #[serde(other)]
5704 Unknown,
5705}
5706
5707#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5709pub enum PermissionRequestMemoryDirection {
5710 #[serde(rename = "upvote")]
5712 Upvote,
5713 #[serde(rename = "downvote")]
5715 Downvote,
5716 #[default]
5718 #[serde(other)]
5719 Unknown,
5720}
5721
5722#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5724pub enum PermissionRequestMemoryKind {
5725 #[serde(rename = "memory")]
5726 #[default]
5727 Memory,
5728}
5729
5730#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5732pub enum PermissionRequestCustomToolKind {
5733 #[serde(rename = "custom-tool")]
5734 #[default]
5735 CustomTool,
5736}
5737
5738#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5740pub enum PermissionRequestHookKind {
5741 #[serde(rename = "hook")]
5742 #[default]
5743 Hook,
5744}
5745
5746#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5748pub enum PermissionRequestExtensionManagementKind {
5749 #[serde(rename = "extension-management")]
5750 #[default]
5751 ExtensionManagement,
5752}
5753
5754#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5756pub enum PermissionRequestFactoryKind {
5757 #[serde(rename = "factory")]
5758 #[default]
5759 Factory,
5760}
5761
5762#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5764pub enum FactoryPermissionOperation {
5765 #[serde(rename = "run")]
5767 Run,
5768 #[serde(rename = "author")]
5770 Author,
5771 #[default]
5773 #[serde(other)]
5774 Unknown,
5775}
5776
5777#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5779pub enum PermissionRequestExtensionPermissionAccessKind {
5780 #[serde(rename = "extension-permission-access")]
5781 #[default]
5782 ExtensionPermissionAccess,
5783}
5784
5785#[derive(Debug, Clone, Serialize, Deserialize)]
5787#[serde(untagged)]
5788pub enum PermissionRequest {
5789 Shell(PermissionRequestShell),
5790 Write(PermissionRequestWrite),
5791 Read(PermissionRequestRead),
5792 Mcp(PermissionRequestMcp),
5793 Url(PermissionRequestUrl),
5794 Memory(PermissionRequestMemory),
5795 CustomTool(PermissionRequestCustomTool),
5796 Hook(PermissionRequestHook),
5797 ExtensionManagement(PermissionRequestExtensionManagement),
5798 Factory(PermissionRequestFactory),
5799 ExtensionPermissionAccess(PermissionRequestExtensionPermissionAccess),
5800}
5801
5802#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5811pub enum AutoApprovalJudgeFailureReason {
5812 #[serde(rename = "timeout")]
5814 Timeout,
5815 #[serde(rename = "abort")]
5817 Abort,
5818 #[serde(rename = "empty_response")]
5820 EmptyResponse,
5821 #[serde(rename = "model_error")]
5823 ModelError,
5824 #[serde(rename = "parse_error")]
5826 ParseError,
5827 #[default]
5829 #[serde(other)]
5830 Unknown,
5831}
5832
5833#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5842pub enum AutoApprovalRecommendation {
5843 #[serde(rename = "approve")]
5845 Approve,
5846 #[serde(rename = "requireApproval")]
5848 RequireApproval,
5849 #[serde(rename = "excluded")]
5851 Excluded,
5852 #[serde(rename = "error")]
5854 Error,
5855 #[default]
5857 #[serde(other)]
5858 Unknown,
5859}
5860
5861#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5863pub enum PermissionPromptRequestCommandsKind {
5864 #[serde(rename = "commands")]
5865 #[default]
5866 Commands,
5867}
5868
5869#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5871pub enum PermissionPromptRequestWriteKind {
5872 #[serde(rename = "write")]
5873 #[default]
5874 Write,
5875}
5876
5877#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5879pub enum PermissionPromptRequestReadKind {
5880 #[serde(rename = "read")]
5881 #[default]
5882 Read,
5883}
5884
5885#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5887pub enum PermissionPromptRequestMcpKind {
5888 #[serde(rename = "mcp")]
5889 #[default]
5890 Mcp,
5891}
5892
5893#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5895pub enum PermissionPromptRequestUrlKind {
5896 #[serde(rename = "url")]
5897 #[default]
5898 Url,
5899}
5900
5901#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5903pub enum PermissionPromptRequestMemoryKind {
5904 #[serde(rename = "memory")]
5905 #[default]
5906 Memory,
5907}
5908
5909#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5911pub enum PermissionPromptRequestCustomToolKind {
5912 #[serde(rename = "custom-tool")]
5913 #[default]
5914 CustomTool,
5915}
5916
5917#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5919pub enum PermissionPromptRequestPathAccessKind {
5920 #[serde(rename = "read")]
5922 Read,
5923 #[serde(rename = "shell")]
5925 Shell,
5926 #[serde(rename = "write")]
5928 Write,
5929 #[default]
5931 #[serde(other)]
5932 Unknown,
5933}
5934
5935#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5937pub enum PermissionPromptRequestPathKind {
5938 #[serde(rename = "path")]
5939 #[default]
5940 Path,
5941}
5942
5943#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5945pub enum PermissionPromptRequestHookKind {
5946 #[serde(rename = "hook")]
5947 #[default]
5948 Hook,
5949}
5950
5951#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5953pub enum PermissionPromptRequestExtensionManagementKind {
5954 #[serde(rename = "extension-management")]
5955 #[default]
5956 ExtensionManagement,
5957}
5958
5959#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5961pub enum PermissionPromptRequestFactoryKind {
5962 #[serde(rename = "factory")]
5963 #[default]
5964 Factory,
5965}
5966
5967#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5969pub enum PermissionPromptRequestExtensionPermissionAccessKind {
5970 #[serde(rename = "extension-permission-access")]
5971 #[default]
5972 ExtensionPermissionAccess,
5973}
5974
5975#[derive(Debug, Clone, Serialize, Deserialize)]
5977#[serde(untagged)]
5978pub enum PermissionPromptRequest {
5979 Commands(PermissionPromptRequestCommands),
5980 Write(PermissionPromptRequestWrite),
5981 Read(PermissionPromptRequestRead),
5982 Mcp(PermissionPromptRequestMcp),
5983 Url(PermissionPromptRequestUrl),
5984 Memory(PermissionPromptRequestMemory),
5985 CustomTool(PermissionPromptRequestCustomTool),
5986 Path(PermissionPromptRequestPath),
5987 Hook(PermissionPromptRequestHook),
5988 ExtensionManagement(PermissionPromptRequestExtensionManagement),
5989 Factory(PermissionPromptRequestFactory),
5990 ExtensionPermissionAccess(PermissionPromptRequestExtensionPermissionAccess),
5991}
5992
5993#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5995pub enum PermissionApprovedKind {
5996 #[serde(rename = "approved")]
5997 #[default]
5998 Approved,
5999}
6000
6001#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6003pub enum UserToolSessionApprovalCommandsKind {
6004 #[serde(rename = "commands")]
6005 #[default]
6006 Commands,
6007}
6008
6009#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6011pub enum UserToolSessionApprovalReadKind {
6012 #[serde(rename = "read")]
6013 #[default]
6014 Read,
6015}
6016
6017#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6019pub enum UserToolSessionApprovalWriteKind {
6020 #[serde(rename = "write")]
6021 #[default]
6022 Write,
6023}
6024
6025#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6027pub enum UserToolSessionApprovalMcpKind {
6028 #[serde(rename = "mcp")]
6029 #[default]
6030 Mcp,
6031}
6032
6033#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6035pub enum UserToolSessionApprovalMemoryKind {
6036 #[serde(rename = "memory")]
6037 #[default]
6038 Memory,
6039}
6040
6041#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6043pub enum UserToolSessionApprovalCustomToolKind {
6044 #[serde(rename = "custom-tool")]
6045 #[default]
6046 CustomTool,
6047}
6048
6049#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6051pub enum UserToolSessionApprovalExtensionManagementKind {
6052 #[serde(rename = "extension-management")]
6053 #[default]
6054 ExtensionManagement,
6055}
6056
6057#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6059pub enum UserToolSessionApprovalFactoryKind {
6060 #[serde(rename = "factory")]
6061 #[default]
6062 Factory,
6063}
6064
6065#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6067pub enum UserToolSessionApprovalExtensionPermissionAccessKind {
6068 #[serde(rename = "extension-permission-access")]
6069 #[default]
6070 ExtensionPermissionAccess,
6071}
6072
6073#[derive(Debug, Clone, Serialize, Deserialize)]
6075#[serde(untagged)]
6076pub enum UserToolSessionApproval {
6077 Commands(UserToolSessionApprovalCommands),
6078 Read(UserToolSessionApprovalRead),
6079 Write(UserToolSessionApprovalWrite),
6080 Mcp(UserToolSessionApprovalMcp),
6081 Memory(UserToolSessionApprovalMemory),
6082 CustomTool(UserToolSessionApprovalCustomTool),
6083 ExtensionManagement(UserToolSessionApprovalExtensionManagement),
6084 Factory(UserToolSessionApprovalFactory),
6085 ExtensionPermissionAccess(UserToolSessionApprovalExtensionPermissionAccess),
6086}
6087
6088#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6090pub enum PermissionApprovedForSessionKind {
6091 #[serde(rename = "approved-for-session")]
6092 #[default]
6093 ApprovedForSession,
6094}
6095
6096#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6098pub enum PermissionApprovedForLocationKind {
6099 #[serde(rename = "approved-for-location")]
6100 #[default]
6101 ApprovedForLocation,
6102}
6103
6104#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6106pub enum PermissionCancelledKind {
6107 #[serde(rename = "cancelled")]
6108 #[default]
6109 Cancelled,
6110}
6111
6112#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6114pub enum PermissionDeniedByRulesKind {
6115 #[serde(rename = "denied-by-rules")]
6116 #[default]
6117 DeniedByRules,
6118}
6119
6120#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6122pub enum PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUserKind {
6123 #[serde(rename = "denied-no-approval-rule-and-could-not-request-from-user")]
6124 #[default]
6125 DeniedNoApprovalRuleAndCouldNotRequestFromUser,
6126}
6127
6128#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6130pub enum PermissionDeniedInteractivelyByUserKind {
6131 #[serde(rename = "denied-interactively-by-user")]
6132 #[default]
6133 DeniedInteractivelyByUser,
6134}
6135
6136#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6138pub enum PermissionDeniedByContentExclusionPolicyKind {
6139 #[serde(rename = "denied-by-content-exclusion-policy")]
6140 #[default]
6141 DeniedByContentExclusionPolicy,
6142}
6143
6144#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6146pub enum PermissionDeniedByPermissionRequestHookKind {
6147 #[serde(rename = "denied-by-permission-request-hook")]
6148 #[default]
6149 DeniedByPermissionRequestHook,
6150}
6151
6152#[derive(Debug, Clone, Serialize, Deserialize)]
6154#[serde(untagged)]
6155pub enum PermissionResult {
6156 Approved(PermissionApproved),
6157 ApprovedForSession(PermissionApprovedForSession),
6158 ApprovedForLocation(PermissionApprovedForLocation),
6159 Cancelled(PermissionCancelled),
6160 DeniedByRules(PermissionDeniedByRules),
6161 DeniedNoApprovalRuleAndCouldNotRequestFromUser(
6162 PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser,
6163 ),
6164 DeniedInteractivelyByUser(PermissionDeniedInteractivelyByUser),
6165 DeniedByContentExclusionPolicy(PermissionDeniedByContentExclusionPolicy),
6166 DeniedByPermissionRequestHook(PermissionDeniedByPermissionRequestHook),
6167}
6168
6169#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6171pub enum ElicitationRequestedMode {
6172 #[serde(rename = "form")]
6174 Form,
6175 #[serde(rename = "url")]
6177 Url,
6178 #[default]
6180 #[serde(other)]
6181 Unknown,
6182}
6183
6184#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6186pub enum ElicitationRequestedSchemaType {
6187 #[serde(rename = "object")]
6188 #[default]
6189 Object,
6190}
6191
6192#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6194pub enum ElicitationCompletedAction {
6195 #[serde(rename = "accept")]
6197 Accept,
6198 #[serde(rename = "decline")]
6200 Decline,
6201 #[serde(rename = "cancel")]
6203 Cancel,
6204 #[default]
6206 #[serde(other)]
6207 Unknown,
6208}
6209
6210#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6212pub enum McpOauthRequestReason {
6213 #[serde(rename = "initial")]
6215 Initial,
6216 #[serde(rename = "refresh")]
6218 Refresh,
6219 #[serde(rename = "reauth")]
6221 Reauth,
6222 #[serde(rename = "upscope")]
6224 Upscope,
6225 #[default]
6227 #[serde(other)]
6228 Unknown,
6229}
6230
6231#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6233pub enum McpOauthRequiredStaticClientConfigGrantType {
6234 #[serde(rename = "client_credentials")]
6235 #[default]
6236 ClientCredentials,
6237}
6238
6239#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6241pub enum McpOauthCompletionOutcome {
6242 #[serde(rename = "token")]
6244 Token,
6245 #[serde(rename = "cancelled")]
6247 Cancelled,
6248 #[default]
6250 #[serde(other)]
6251 Unknown,
6252}
6253
6254#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6256pub enum McpHeadersRefreshRequiredReason {
6257 #[serde(rename = "startup")]
6259 Startup,
6260 #[serde(rename = "ttl-expired")]
6262 TtlExpired,
6263 #[serde(rename = "auth-failed")]
6265 AuthFailed,
6266 #[default]
6268 #[serde(other)]
6269 Unknown,
6270}
6271
6272#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6274pub enum McpHeadersRefreshCompletedOutcome {
6275 #[serde(rename = "headers")]
6277 Headers,
6278 #[serde(rename = "none")]
6280 None,
6281 #[serde(rename = "timeout")]
6283 Timeout,
6284 #[default]
6286 #[serde(other)]
6287 Unknown,
6288}
6289
6290#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6292pub enum AutoModeSwitchResponse {
6293 #[serde(rename = "yes")]
6295 Yes,
6296 #[serde(rename = "yes_always")]
6298 YesAlways,
6299 #[serde(rename = "no")]
6301 No,
6302 #[default]
6304 #[serde(other)]
6305 Unknown,
6306}
6307
6308#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6310pub enum SessionLimitsExhaustedResponseAction {
6311 #[serde(rename = "add")]
6313 Add,
6314 #[serde(rename = "set")]
6316 Set,
6317 #[serde(rename = "unset")]
6319 Unset,
6320 #[serde(rename = "cancel")]
6322 Cancel,
6323 #[default]
6325 #[serde(other)]
6326 Unknown,
6327}
6328
6329#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6331pub enum AutoModeResolvedReasoningBucket {
6332 #[serde(rename = "low")]
6334 Low,
6335 #[serde(rename = "medium")]
6337 Medium,
6338 #[serde(rename = "high")]
6340 High,
6341 #[default]
6343 #[serde(other)]
6344 Unknown,
6345}
6346
6347#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6349pub enum ManagedSettingsResolvedSource {
6350 #[serde(rename = "server")]
6352 Server,
6353 #[serde(rename = "device")]
6355 Device,
6356 #[serde(rename = "client")]
6358 Client,
6359 #[serde(rename = "mixed")]
6361 Mixed,
6362 #[serde(rename = "none")]
6364 None,
6365 #[default]
6367 #[serde(other)]
6368 Unknown,
6369}
6370
6371#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6373pub enum ManagedSettingsEnforcedAction {
6374 #[serde(rename = "bypass_permissions_blocked")]
6376 BypassPermissionsBlocked,
6377 #[default]
6379 #[serde(other)]
6380 Unknown,
6381}
6382
6383#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6385pub enum ManagedSettingsEnforcedEscalation {
6386 #[serde(rename = "allow_all")]
6388 AllowAll,
6389 #[serde(rename = "approve_all")]
6391 ApproveAll,
6392 #[serde(rename = "auto_approval")]
6394 AutoApproval,
6395 #[serde(rename = "unrestricted_paths")]
6397 UnrestrictedPaths,
6398 #[serde(rename = "unrestricted_urls")]
6400 UnrestrictedUrls,
6401 #[default]
6403 #[serde(other)]
6404 Unknown,
6405}
6406
6407#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6409pub enum ExitPlanModeAction {
6410 #[serde(rename = "exit_only")]
6412 ExitOnly,
6413 #[serde(rename = "interactive")]
6415 Interactive,
6416 #[serde(rename = "autopilot")]
6418 Autopilot,
6419 #[serde(rename = "autopilot_fleet")]
6421 AutopilotFleet,
6422 #[default]
6424 #[serde(other)]
6425 Unknown,
6426}
6427
6428#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6430pub enum SkillSource {
6431 #[serde(rename = "project")]
6433 Project,
6434 #[serde(rename = "inherited")]
6436 Inherited,
6437 #[serde(rename = "personal-copilot")]
6439 PersonalCopilot,
6440 #[serde(rename = "personal-agents")]
6442 PersonalAgents,
6443 #[serde(rename = "plugin")]
6445 Plugin,
6446 #[serde(rename = "custom")]
6448 Custom,
6449 #[serde(rename = "builtin")]
6451 Builtin,
6452 #[default]
6454 #[serde(other)]
6455 Unknown,
6456}
6457
6458#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6460pub enum McpServerSource {
6461 #[serde(rename = "user")]
6463 User,
6464 #[serde(rename = "workspace")]
6466 Workspace,
6467 #[serde(rename = "plugin")]
6469 Plugin,
6470 #[serde(rename = "builtin")]
6472 Builtin,
6473 #[default]
6475 #[serde(other)]
6476 Unknown,
6477}
6478
6479#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6481pub enum McpServerStatus {
6482 #[serde(rename = "connected")]
6484 Connected,
6485 #[serde(rename = "failed")]
6487 Failed,
6488 #[serde(rename = "needs-auth")]
6490 NeedsAuth,
6491 #[serde(rename = "pending")]
6493 Pending,
6494 #[serde(rename = "disabled")]
6496 Disabled,
6497 #[serde(rename = "stopped")]
6499 Stopped,
6500 #[serde(rename = "not_configured")]
6502 NotConfigured,
6503 #[default]
6505 #[serde(other)]
6506 Unknown,
6507}
6508
6509#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6511pub enum McpServerTransport {
6512 #[serde(rename = "stdio")]
6514 Stdio,
6515 #[serde(rename = "http")]
6517 Http,
6518 #[serde(rename = "sse")]
6520 Sse,
6521 #[serde(rename = "memory")]
6523 Memory,
6524 #[default]
6526 #[serde(other)]
6527 Unknown,
6528}
6529
6530#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6532pub enum ExtensionsLoadedExtensionSource {
6533 #[serde(rename = "project")]
6535 Project,
6536 #[serde(rename = "user")]
6538 User,
6539 #[serde(rename = "plugin")]
6541 Plugin,
6542 #[serde(rename = "session")]
6544 Session,
6545 #[default]
6547 #[serde(other)]
6548 Unknown,
6549}
6550
6551#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6553pub enum ExtensionsLoadedExtensionStatus {
6554 #[serde(rename = "running")]
6556 Running,
6557 #[serde(rename = "disabled")]
6559 Disabled,
6560 #[serde(rename = "failed")]
6562 Failed,
6563 #[serde(rename = "starting")]
6565 Starting,
6566 #[default]
6568 #[serde(other)]
6569 Unknown,
6570}