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 duration_ms: Option<i64>,
2866 #[serde(skip_serializing_if = "Option::is_none")]
2868 pub model: Option<String>,
2869 pub tool_call_id: String,
2871 #[serde(skip_serializing_if = "Option::is_none")]
2873 pub total_tokens: Option<i64>,
2874 #[serde(skip_serializing_if = "Option::is_none")]
2876 pub total_tool_calls: Option<i64>,
2877}
2878
2879#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2881#[serde(rename_all = "camelCase")]
2882pub struct SubagentFailedData {
2883 pub agent_display_name: String,
2885 pub agent_name: String,
2887 #[serde(skip_serializing_if = "Option::is_none")]
2889 pub duration_ms: Option<i64>,
2890 pub error: String,
2892 #[serde(skip_serializing_if = "Option::is_none")]
2894 pub model: Option<String>,
2895 pub tool_call_id: String,
2897 #[serde(skip_serializing_if = "Option::is_none")]
2899 pub total_tokens: Option<i64>,
2900 #[serde(skip_serializing_if = "Option::is_none")]
2902 pub total_tool_calls: Option<i64>,
2903}
2904
2905#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2907#[serde(rename_all = "camelCase")]
2908pub struct SubagentSelectedData {
2909 pub agent_display_name: String,
2911 pub agent_name: String,
2913 pub tools: Option<Vec<String>>,
2915}
2916
2917#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2919#[serde(rename_all = "camelCase")]
2920pub struct SubagentDeselectedData {}
2921
2922#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2924#[serde(rename_all = "camelCase")]
2925pub struct HookStartData {
2926 pub hook_invocation_id: String,
2928 pub hook_type: String,
2930 #[serde(skip_serializing_if = "Option::is_none")]
2932 pub input: Option<serde_json::Value>,
2933}
2934
2935#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2937#[serde(rename_all = "camelCase")]
2938pub struct HookEndError {
2939 pub message: String,
2941 #[serde(skip_serializing_if = "Option::is_none")]
2943 pub source: Option<String>,
2944 #[serde(skip_serializing_if = "Option::is_none")]
2946 pub stack: Option<String>,
2947}
2948
2949#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2951#[serde(rename_all = "camelCase")]
2952pub struct HookEndData {
2953 #[serde(skip_serializing_if = "Option::is_none")]
2955 pub error: Option<HookEndError>,
2956 pub hook_invocation_id: String,
2958 pub hook_type: String,
2960 #[serde(skip_serializing_if = "Option::is_none")]
2962 pub output: Option<serde_json::Value>,
2963 pub success: bool,
2965}
2966
2967#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2969#[serde(rename_all = "camelCase")]
2970pub struct HookProgressData {
2971 pub message: String,
2973 #[serde(skip_serializing_if = "Option::is_none")]
2975 pub temporary: Option<bool>,
2976}
2977
2978#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2980#[serde(rename_all = "camelCase")]
2981pub struct SessionBinaryAssetData {
2982 pub asset_id: String,
2984 pub byte_length: i64,
2986 pub data: String,
2988 #[serde(skip_serializing_if = "Option::is_none")]
2990 pub description: Option<String>,
2991 #[serde(skip_serializing_if = "Option::is_none")]
2993 pub metadata: Option<HashMap<String, serde_json::Value>>,
2994 pub mime_type: String,
2996 pub r#type: BinaryAssetType,
2998}
2999
3000#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3002#[serde(rename_all = "camelCase")]
3003pub struct SystemMessageMetadata {
3004 #[serde(skip_serializing_if = "Option::is_none")]
3006 pub prompt_version: Option<String>,
3007 #[serde(skip_serializing_if = "Option::is_none")]
3009 pub variables: Option<HashMap<String, serde_json::Value>>,
3010}
3011
3012#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3014#[serde(rename_all = "camelCase")]
3015pub struct SystemMessageData {
3016 pub content: String,
3018 #[serde(skip_serializing_if = "Option::is_none")]
3020 pub interaction_id: Option<String>,
3021 #[serde(skip_serializing_if = "Option::is_none")]
3023 pub metadata: Option<SystemMessageMetadata>,
3024 #[serde(skip_serializing_if = "Option::is_none")]
3026 pub name: Option<String>,
3027 pub role: SystemMessageRole,
3029}
3030
3031#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3033#[serde(rename_all = "camelCase")]
3034pub struct SystemNotificationData {
3035 pub content: String,
3037 pub kind: serde_json::Value,
3039}
3040
3041#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3043#[serde(rename_all = "camelCase")]
3044pub struct PermissionRequestShellCommand {
3045 pub identifier: String,
3047 pub read_only: bool,
3049}
3050
3051#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3053#[serde(rename_all = "camelCase")]
3054pub struct PermissionRequestShellCommandSegment {
3055 pub full_command_text: String,
3057 pub identifier: String,
3059}
3060
3061#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3063#[serde(rename_all = "camelCase")]
3064pub struct PermissionRequestShellPossibleUrl {
3065 pub url: String,
3067}
3068
3069#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3071#[serde(rename_all = "camelCase")]
3072pub struct PermissionRequestShell {
3073 pub can_offer_session_approval: bool,
3075 pub commands: Vec<PermissionRequestShellCommand>,
3077 #[serde(skip_serializing_if = "Option::is_none")]
3079 pub command_segments: Option<Vec<PermissionRequestShellCommandSegment>>,
3080 pub full_command_text: String,
3082 pub has_write_file_redirection: bool,
3084 pub intention: String,
3086 pub kind: PermissionRequestShellKind,
3088 #[serde(skip_serializing_if = "Option::is_none")]
3090 pub managed_approval_required: Option<bool>,
3091 pub possible_paths: Vec<String>,
3093 pub possible_urls: Vec<PermissionRequestShellPossibleUrl>,
3095 #[serde(skip_serializing_if = "Option::is_none")]
3097 pub request_sandbox_bypass: Option<bool>,
3098 #[serde(skip_serializing_if = "Option::is_none")]
3100 pub request_sandbox_bypass_reason: Option<String>,
3101 #[serde(skip_serializing_if = "Option::is_none")]
3103 pub tool_call_id: Option<String>,
3104 #[serde(skip_serializing_if = "Option::is_none")]
3106 pub warning: Option<String>,
3107}
3108
3109#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3111#[serde(rename_all = "camelCase")]
3112pub struct PermissionRequestWrite {
3113 pub can_offer_session_approval: bool,
3115 pub diff: String,
3117 pub file_name: String,
3119 pub intention: String,
3121 pub kind: PermissionRequestWriteKind,
3123 #[serde(skip_serializing_if = "Option::is_none")]
3125 pub managed_approval_required: Option<bool>,
3126 #[serde(skip_serializing_if = "Option::is_none")]
3128 pub new_file_contents: Option<String>,
3129 #[serde(skip_serializing_if = "Option::is_none")]
3131 pub request_sandbox_bypass: Option<bool>,
3132 #[serde(skip_serializing_if = "Option::is_none")]
3134 pub request_sandbox_bypass_reason: Option<String>,
3135 #[serde(skip_serializing_if = "Option::is_none")]
3137 pub tool_call_id: Option<String>,
3138}
3139
3140#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3142#[serde(rename_all = "camelCase")]
3143pub struct PermissionRequestRead {
3144 pub intention: String,
3146 pub kind: PermissionRequestReadKind,
3148 #[serde(skip_serializing_if = "Option::is_none")]
3150 pub managed_approval_required: Option<bool>,
3151 pub path: String,
3153 #[serde(skip_serializing_if = "Option::is_none")]
3155 pub request_sandbox_bypass: Option<bool>,
3156 #[serde(skip_serializing_if = "Option::is_none")]
3158 pub request_sandbox_bypass_reason: Option<String>,
3159 #[serde(skip_serializing_if = "Option::is_none")]
3161 pub tool_call_id: Option<String>,
3162}
3163
3164#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3166#[serde(rename_all = "camelCase")]
3167pub struct PermissionRequestMcp {
3168 #[serde(skip_serializing_if = "Option::is_none")]
3170 pub args: Option<serde_json::Value>,
3171 pub kind: PermissionRequestMcpKind,
3173 #[serde(skip_serializing_if = "Option::is_none")]
3175 pub managed_approval_required: Option<bool>,
3176 pub read_only: bool,
3178 pub server_name: String,
3180 #[serde(skip_serializing_if = "Option::is_none")]
3182 pub tool_call_id: Option<String>,
3183 pub tool_name: String,
3185 pub tool_title: String,
3187}
3188
3189#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3191#[serde(rename_all = "camelCase")]
3192pub struct PermissionRequestUrl {
3193 pub intention: String,
3195 pub kind: PermissionRequestUrlKind,
3197 #[serde(skip_serializing_if = "Option::is_none")]
3199 pub managed_approval_required: Option<bool>,
3200 #[serde(skip_serializing_if = "Option::is_none")]
3202 pub redirected_from: Option<String>,
3203 #[serde(skip_serializing_if = "Option::is_none")]
3205 pub request_sandbox_bypass: Option<bool>,
3206 #[serde(skip_serializing_if = "Option::is_none")]
3208 pub request_sandbox_bypass_reason: Option<String>,
3209 #[serde(skip_serializing_if = "Option::is_none")]
3211 pub tool_call_id: Option<String>,
3212 pub url: String,
3214}
3215
3216#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3218#[serde(rename_all = "camelCase")]
3219pub struct PermissionRequestMemory {
3220 #[serde(skip_serializing_if = "Option::is_none")]
3222 pub action: Option<PermissionRequestMemoryAction>,
3223 #[serde(skip_serializing_if = "Option::is_none")]
3225 pub citations: Option<String>,
3226 #[serde(skip_serializing_if = "Option::is_none")]
3228 pub direction: Option<PermissionRequestMemoryDirection>,
3229 pub fact: String,
3231 pub kind: PermissionRequestMemoryKind,
3233 #[serde(skip_serializing_if = "Option::is_none")]
3235 pub managed_approval_required: Option<bool>,
3236 #[serde(skip_serializing_if = "Option::is_none")]
3238 pub reason: Option<String>,
3239 #[serde(skip_serializing_if = "Option::is_none")]
3241 pub subject: Option<String>,
3242 #[serde(skip_serializing_if = "Option::is_none")]
3244 pub tool_call_id: Option<String>,
3245}
3246
3247#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3249#[serde(rename_all = "camelCase")]
3250pub struct PermissionRequestCustomTool {
3251 #[serde(skip_serializing_if = "Option::is_none")]
3253 pub args: Option<serde_json::Value>,
3254 pub kind: PermissionRequestCustomToolKind,
3256 #[serde(skip_serializing_if = "Option::is_none")]
3258 pub managed_approval_required: Option<bool>,
3259 #[serde(skip_serializing_if = "Option::is_none")]
3261 pub tool_call_id: Option<String>,
3262 pub tool_description: String,
3264 pub tool_name: String,
3266}
3267
3268#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3270#[serde(rename_all = "camelCase")]
3271pub struct PermissionRequestHook {
3272 #[serde(skip_serializing_if = "Option::is_none")]
3274 pub hook_message: Option<String>,
3275 pub kind: PermissionRequestHookKind,
3277 #[serde(skip_serializing_if = "Option::is_none")]
3279 pub managed_approval_required: Option<bool>,
3280 #[serde(skip_serializing_if = "Option::is_none")]
3282 pub tool_args: Option<serde_json::Value>,
3283 #[serde(skip_serializing_if = "Option::is_none")]
3285 pub tool_call_id: Option<String>,
3286 pub tool_name: String,
3288}
3289
3290#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3292#[serde(rename_all = "camelCase")]
3293pub struct PermissionRequestExtensionManagement {
3294 #[serde(skip_serializing_if = "Option::is_none")]
3296 pub extension_name: Option<String>,
3297 pub kind: PermissionRequestExtensionManagementKind,
3299 #[serde(skip_serializing_if = "Option::is_none")]
3301 pub managed_approval_required: Option<bool>,
3302 pub operation: String,
3304 #[serde(skip_serializing_if = "Option::is_none")]
3306 pub tool_call_id: Option<String>,
3307}
3308
3309#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3311#[serde(rename_all = "camelCase")]
3312pub struct FactoryPermissionPhase {
3313 #[serde(skip_serializing_if = "Option::is_none")]
3315 pub detail: Option<String>,
3316 pub title: String,
3318}
3319
3320#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3322#[serde(rename_all = "camelCase")]
3323pub struct PermissionRequestFactory {
3324 pub approval_key: String,
3326 pub can_persist_approval: bool,
3328 #[serde(skip_serializing_if = "Option::is_none")]
3329 pub declared_max_ai_credits: Option<f64>,
3330 #[serde(skip_serializing_if = "Option::is_none")]
3331 pub declared_max_concurrent_subagents: Option<i64>,
3332 #[serde(skip_serializing_if = "Option::is_none")]
3333 pub declared_max_total_subagents: Option<i64>,
3334 #[serde(skip_serializing_if = "Option::is_none")]
3335 pub declared_timeout_seconds: Option<f64>,
3336 pub description: String,
3338 pub kind: PermissionRequestFactoryKind,
3340 #[serde(skip_serializing_if = "Option::is_none")]
3342 pub managed_approval_required: Option<bool>,
3343 #[serde(skip_serializing_if = "Option::is_none")]
3345 pub max_ai_credits: Option<f64>,
3346 #[serde(skip_serializing_if = "Option::is_none")]
3348 pub max_concurrent_subagents: Option<i64>,
3349 #[serde(skip_serializing_if = "Option::is_none")]
3351 pub max_total_subagents: Option<i64>,
3352 pub name: String,
3354 pub operation: FactoryPermissionOperation,
3356 pub phases: Vec<FactoryPermissionPhase>,
3358 #[serde(skip_serializing_if = "Option::is_none")]
3360 pub timeout_seconds: Option<f64>,
3361 #[serde(skip_serializing_if = "Option::is_none")]
3363 pub tool_call_id: Option<String>,
3364}
3365
3366#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3368#[serde(rename_all = "camelCase")]
3369pub struct PermissionRequestExtensionPermissionAccess {
3370 pub capabilities: Vec<String>,
3372 pub extension_name: String,
3374 pub kind: PermissionRequestExtensionPermissionAccessKind,
3376 #[serde(skip_serializing_if = "Option::is_none")]
3378 pub managed_approval_required: Option<bool>,
3379 #[serde(skip_serializing_if = "Option::is_none")]
3381 pub tool_call_id: Option<String>,
3382}
3383
3384#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3393#[serde(rename_all = "camelCase")]
3394pub struct PermissionAutoApproval {
3395 #[serde(skip_serializing_if = "Option::is_none")]
3397 pub failure_reason: Option<AutoApprovalJudgeFailureReason>,
3398 #[serde(skip_serializing_if = "Option::is_none")]
3400 pub model: Option<String>,
3401 #[serde(skip_serializing_if = "Option::is_none")]
3403 pub reason: Option<String>,
3404 pub recommendation: AutoApprovalRecommendation,
3406}
3407
3408#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3410#[serde(rename_all = "camelCase")]
3411pub struct PermissionPromptRequestCommands {
3412 #[serde(skip_serializing_if = "Option::is_none")]
3421 pub auto_approval: Option<PermissionAutoApproval>,
3422 pub can_offer_session_approval: bool,
3424 pub command_identifiers: Vec<String>,
3426 pub full_command_text: String,
3428 pub intention: String,
3430 pub kind: PermissionPromptRequestCommandsKind,
3432 #[serde(skip_serializing_if = "Option::is_none")]
3434 pub managed_approval_required: Option<bool>,
3435 #[serde(skip_serializing_if = "Option::is_none")]
3437 pub tool_call_id: Option<String>,
3438 #[serde(skip_serializing_if = "Option::is_none")]
3440 pub warning: Option<String>,
3441}
3442
3443#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3445#[serde(rename_all = "camelCase")]
3446pub struct PermissionPromptRequestWrite {
3447 #[serde(skip_serializing_if = "Option::is_none")]
3456 pub auto_approval: Option<PermissionAutoApproval>,
3457 pub can_offer_session_approval: bool,
3459 pub diff: String,
3461 pub file_name: String,
3463 pub intention: String,
3465 pub kind: PermissionPromptRequestWriteKind,
3467 #[serde(skip_serializing_if = "Option::is_none")]
3469 pub managed_approval_required: Option<bool>,
3470 #[serde(skip_serializing_if = "Option::is_none")]
3472 pub new_file_contents: Option<String>,
3473 #[serde(skip_serializing_if = "Option::is_none")]
3475 pub tool_call_id: Option<String>,
3476}
3477
3478#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3480#[serde(rename_all = "camelCase")]
3481pub struct PermissionPromptRequestRead {
3482 #[serde(skip_serializing_if = "Option::is_none")]
3491 pub auto_approval: Option<PermissionAutoApproval>,
3492 pub intention: String,
3494 pub kind: PermissionPromptRequestReadKind,
3496 #[serde(skip_serializing_if = "Option::is_none")]
3498 pub managed_approval_required: Option<bool>,
3499 pub path: String,
3501 #[serde(skip_serializing_if = "Option::is_none")]
3503 pub tool_call_id: Option<String>,
3504}
3505
3506#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3508#[serde(rename_all = "camelCase")]
3509pub struct PermissionPromptRequestMcp {
3510 #[serde(skip_serializing_if = "Option::is_none")]
3512 pub args: Option<serde_json::Value>,
3513 #[serde(skip_serializing_if = "Option::is_none")]
3522 pub auto_approval: Option<PermissionAutoApproval>,
3523 pub kind: PermissionPromptRequestMcpKind,
3525 pub server_name: String,
3527 #[serde(skip_serializing_if = "Option::is_none")]
3529 pub tool_call_id: Option<String>,
3530 pub tool_name: String,
3532 pub tool_title: String,
3534}
3535
3536#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3538#[serde(rename_all = "camelCase")]
3539pub struct PermissionPromptRequestUrl {
3540 #[serde(skip_serializing_if = "Option::is_none")]
3549 pub auto_approval: Option<PermissionAutoApproval>,
3550 pub intention: String,
3552 pub kind: PermissionPromptRequestUrlKind,
3554 #[serde(skip_serializing_if = "Option::is_none")]
3556 pub managed_approval_required: Option<bool>,
3557 #[serde(skip_serializing_if = "Option::is_none")]
3559 pub redirected_from: Option<String>,
3560 #[serde(skip_serializing_if = "Option::is_none")]
3562 pub request_sandbox_bypass: Option<bool>,
3563 #[serde(skip_serializing_if = "Option::is_none")]
3565 pub request_sandbox_bypass_reason: Option<String>,
3566 #[serde(skip_serializing_if = "Option::is_none")]
3568 pub tool_call_id: Option<String>,
3569 pub url: String,
3571}
3572
3573#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3575#[serde(rename_all = "camelCase")]
3576pub struct PermissionPromptRequestMemory {
3577 #[serde(skip_serializing_if = "Option::is_none")]
3579 pub action: Option<PermissionRequestMemoryAction>,
3580 #[serde(skip_serializing_if = "Option::is_none")]
3589 pub auto_approval: Option<PermissionAutoApproval>,
3590 #[serde(skip_serializing_if = "Option::is_none")]
3592 pub citations: Option<String>,
3593 #[serde(skip_serializing_if = "Option::is_none")]
3595 pub direction: Option<PermissionRequestMemoryDirection>,
3596 pub fact: String,
3598 pub kind: PermissionPromptRequestMemoryKind,
3600 #[serde(skip_serializing_if = "Option::is_none")]
3602 pub reason: Option<String>,
3603 #[serde(skip_serializing_if = "Option::is_none")]
3605 pub subject: Option<String>,
3606 #[serde(skip_serializing_if = "Option::is_none")]
3608 pub tool_call_id: Option<String>,
3609}
3610
3611#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3613#[serde(rename_all = "camelCase")]
3614pub struct PermissionPromptRequestCustomTool {
3615 #[serde(skip_serializing_if = "Option::is_none")]
3617 pub args: Option<serde_json::Value>,
3618 #[serde(skip_serializing_if = "Option::is_none")]
3627 pub auto_approval: Option<PermissionAutoApproval>,
3628 pub kind: PermissionPromptRequestCustomToolKind,
3630 #[serde(skip_serializing_if = "Option::is_none")]
3632 pub tool_call_id: Option<String>,
3633 pub tool_description: String,
3635 pub tool_name: String,
3637}
3638
3639#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3641#[serde(rename_all = "camelCase")]
3642pub struct PermissionPromptRequestPath {
3643 pub access_kind: PermissionPromptRequestPathAccessKind,
3645 #[serde(skip_serializing_if = "Option::is_none")]
3654 pub auto_approval: Option<PermissionAutoApproval>,
3655 pub kind: PermissionPromptRequestPathKind,
3657 pub paths: Vec<String>,
3659 #[serde(skip_serializing_if = "Option::is_none")]
3661 pub tool_call_id: Option<String>,
3662}
3663
3664#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3666#[serde(rename_all = "camelCase")]
3667pub struct PermissionPromptRequestHook {
3668 #[serde(skip_serializing_if = "Option::is_none")]
3677 pub auto_approval: Option<PermissionAutoApproval>,
3678 #[serde(skip_serializing_if = "Option::is_none")]
3680 pub hook_message: Option<String>,
3681 pub kind: PermissionPromptRequestHookKind,
3683 #[serde(skip_serializing_if = "Option::is_none")]
3685 pub tool_args: Option<serde_json::Value>,
3686 #[serde(skip_serializing_if = "Option::is_none")]
3688 pub tool_call_id: Option<String>,
3689 pub tool_name: String,
3691}
3692
3693#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3695#[serde(rename_all = "camelCase")]
3696pub struct PermissionPromptRequestExtensionManagement {
3697 #[serde(skip_serializing_if = "Option::is_none")]
3706 pub auto_approval: Option<PermissionAutoApproval>,
3707 #[serde(skip_serializing_if = "Option::is_none")]
3709 pub extension_name: Option<String>,
3710 pub kind: PermissionPromptRequestExtensionManagementKind,
3712 pub operation: String,
3714 #[serde(skip_serializing_if = "Option::is_none")]
3716 pub tool_call_id: Option<String>,
3717}
3718
3719#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3721#[serde(rename_all = "camelCase")]
3722pub struct PermissionPromptRequestFactory {
3723 pub approval_key: String,
3725 #[serde(skip_serializing_if = "Option::is_none")]
3734 pub auto_approval: Option<PermissionAutoApproval>,
3735 pub can_persist_approval: bool,
3737 #[serde(skip_serializing_if = "Option::is_none")]
3738 pub declared_max_ai_credits: Option<f64>,
3739 #[serde(skip_serializing_if = "Option::is_none")]
3740 pub declared_max_concurrent_subagents: Option<i64>,
3741 #[serde(skip_serializing_if = "Option::is_none")]
3742 pub declared_max_total_subagents: Option<i64>,
3743 #[serde(skip_serializing_if = "Option::is_none")]
3744 pub declared_timeout_seconds: Option<f64>,
3745 pub description: String,
3747 pub kind: PermissionPromptRequestFactoryKind,
3749 #[serde(skip_serializing_if = "Option::is_none")]
3751 pub managed_approval_required: Option<bool>,
3752 #[serde(skip_serializing_if = "Option::is_none")]
3754 pub max_ai_credits: Option<f64>,
3755 #[serde(skip_serializing_if = "Option::is_none")]
3757 pub max_concurrent_subagents: Option<i64>,
3758 #[serde(skip_serializing_if = "Option::is_none")]
3760 pub max_total_subagents: Option<i64>,
3761 pub name: String,
3763 pub operation: FactoryPermissionOperation,
3765 pub phases: Vec<FactoryPermissionPhase>,
3767 #[serde(skip_serializing_if = "Option::is_none")]
3769 pub timeout_seconds: Option<f64>,
3770 #[serde(skip_serializing_if = "Option::is_none")]
3772 pub tool_call_id: Option<String>,
3773}
3774
3775#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3777#[serde(rename_all = "camelCase")]
3778pub struct PermissionPromptRequestExtensionPermissionAccess {
3779 #[serde(skip_serializing_if = "Option::is_none")]
3788 pub auto_approval: Option<PermissionAutoApproval>,
3789 pub capabilities: Vec<String>,
3791 pub extension_name: String,
3793 pub kind: PermissionPromptRequestExtensionPermissionAccessKind,
3795 #[serde(skip_serializing_if = "Option::is_none")]
3797 pub tool_call_id: Option<String>,
3798}
3799
3800#[derive(Debug, Clone, Serialize, Deserialize)]
3802#[serde(rename_all = "camelCase")]
3803pub struct PermissionRequestedData {
3804 pub permission_request: PermissionRequest,
3806 #[serde(skip_serializing_if = "Option::is_none")]
3808 pub prompt_request: Option<PermissionPromptRequest>,
3809 pub request_id: RequestId,
3811 #[serde(skip_serializing_if = "Option::is_none")]
3813 pub resolved_by_hook: Option<bool>,
3814 #[serde(skip_serializing_if = "Option::is_none")]
3816 pub risk_assessment: Option<serde_json::Value>,
3817}
3818
3819#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3821#[serde(rename_all = "camelCase")]
3822pub struct PermissionApproved {
3823 pub kind: PermissionApprovedKind,
3825}
3826
3827#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3829#[serde(rename_all = "camelCase")]
3830pub struct UserToolSessionApprovalCommands {
3831 pub command_identifiers: Vec<String>,
3833 pub kind: UserToolSessionApprovalCommandsKind,
3835}
3836
3837#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3839#[serde(rename_all = "camelCase")]
3840pub struct UserToolSessionApprovalRead {
3841 pub kind: UserToolSessionApprovalReadKind,
3843}
3844
3845#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3847#[serde(rename_all = "camelCase")]
3848pub struct UserToolSessionApprovalWrite {
3849 pub kind: UserToolSessionApprovalWriteKind,
3851}
3852
3853#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3855#[serde(rename_all = "camelCase")]
3856pub struct UserToolSessionApprovalMcp {
3857 pub kind: UserToolSessionApprovalMcpKind,
3859 pub server_name: String,
3861 pub tool_name: Option<String>,
3863}
3864
3865#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3867#[serde(rename_all = "camelCase")]
3868pub struct UserToolSessionApprovalMemory {
3869 pub kind: UserToolSessionApprovalMemoryKind,
3871}
3872
3873#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3875#[serde(rename_all = "camelCase")]
3876pub struct UserToolSessionApprovalCustomTool {
3877 pub kind: UserToolSessionApprovalCustomToolKind,
3879 pub tool_name: String,
3881}
3882
3883#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3885#[serde(rename_all = "camelCase")]
3886pub struct UserToolSessionApprovalExtensionManagement {
3887 pub kind: UserToolSessionApprovalExtensionManagementKind,
3889 #[serde(skip_serializing_if = "Option::is_none")]
3891 pub operation: Option<String>,
3892}
3893
3894#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3896#[serde(rename_all = "camelCase")]
3897pub struct UserToolSessionApprovalFactory {
3898 #[serde(skip_serializing_if = "Option::is_none")]
3900 pub approval_key: Option<String>,
3901 pub kind: UserToolSessionApprovalFactoryKind,
3903}
3904
3905#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3907#[serde(rename_all = "camelCase")]
3908pub struct UserToolSessionApprovalExtensionPermissionAccess {
3909 pub extension_name: String,
3911 pub kind: UserToolSessionApprovalExtensionPermissionAccessKind,
3913}
3914
3915#[derive(Debug, Clone, Serialize, Deserialize)]
3917#[serde(rename_all = "camelCase")]
3918pub struct PermissionApprovedForSession {
3919 pub approval: UserToolSessionApproval,
3921 pub kind: PermissionApprovedForSessionKind,
3923}
3924
3925#[derive(Debug, Clone, Serialize, Deserialize)]
3927#[serde(rename_all = "camelCase")]
3928pub struct PermissionApprovedForLocation {
3929 pub approval: UserToolSessionApproval,
3931 pub kind: PermissionApprovedForLocationKind,
3933 pub location_key: String,
3935}
3936
3937#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3939#[serde(rename_all = "camelCase")]
3940pub struct PermissionCancelled {
3941 pub kind: PermissionCancelledKind,
3943 #[serde(skip_serializing_if = "Option::is_none")]
3945 pub reason: Option<String>,
3946}
3947
3948#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3950#[serde(rename_all = "camelCase")]
3951pub struct PermissionRule {
3952 pub argument: Option<String>,
3954 pub kind: String,
3956}
3957
3958#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3960#[serde(rename_all = "camelCase")]
3961pub struct PermissionDeniedByRules {
3962 pub kind: PermissionDeniedByRulesKind,
3964 pub rules: Vec<PermissionRule>,
3966}
3967
3968#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3970#[serde(rename_all = "camelCase")]
3971pub struct PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser {
3972 pub kind: PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUserKind,
3974}
3975
3976#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3978#[serde(rename_all = "camelCase")]
3979pub struct PermissionDeniedInteractivelyByUser {
3980 #[serde(skip_serializing_if = "Option::is_none")]
3982 pub feedback: Option<String>,
3983 #[serde(skip_serializing_if = "Option::is_none")]
3985 pub force_reject: Option<bool>,
3986 pub kind: PermissionDeniedInteractivelyByUserKind,
3988}
3989
3990#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3992#[serde(rename_all = "camelCase")]
3993pub struct PermissionDeniedByContentExclusionPolicy {
3994 pub kind: PermissionDeniedByContentExclusionPolicyKind,
3996 pub message: String,
3998 pub path: String,
4000}
4001
4002#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4004#[serde(rename_all = "camelCase")]
4005pub struct PermissionDeniedByPermissionRequestHook {
4006 #[serde(skip_serializing_if = "Option::is_none")]
4008 pub interrupt: Option<bool>,
4009 pub kind: PermissionDeniedByPermissionRequestHookKind,
4011 #[serde(skip_serializing_if = "Option::is_none")]
4013 pub message: Option<String>,
4014}
4015
4016#[derive(Debug, Clone, Serialize, Deserialize)]
4018#[serde(rename_all = "camelCase")]
4019pub struct PermissionCompletedData {
4020 pub request_id: RequestId,
4022 pub result: PermissionResult,
4024 #[serde(skip_serializing_if = "Option::is_none")]
4026 pub tool_call_id: Option<String>,
4027}
4028
4029#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4031#[serde(rename_all = "camelCase")]
4032pub struct UserInputRequestedData {
4033 #[serde(skip_serializing_if = "Option::is_none")]
4035 pub allow_freeform: Option<bool>,
4036 #[serde(skip_serializing_if = "Option::is_none")]
4038 pub choices: Option<Vec<String>>,
4039 pub question: String,
4041 pub request_id: RequestId,
4043 #[serde(skip_serializing_if = "Option::is_none")]
4045 pub tool_call_id: Option<String>,
4046}
4047
4048#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4050#[serde(rename_all = "camelCase")]
4051pub struct UserInputCompletedData {
4052 #[serde(skip_serializing_if = "Option::is_none")]
4054 pub answer: Option<String>,
4055 pub request_id: RequestId,
4057 #[serde(skip_serializing_if = "Option::is_none")]
4059 pub was_freeform: Option<bool>,
4060}
4061
4062#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4064#[serde(rename_all = "camelCase")]
4065pub struct ElicitationRequestedSchema {
4066 pub properties: HashMap<String, serde_json::Value>,
4068 #[serde(skip_serializing_if = "Option::is_none")]
4070 pub required: Option<Vec<String>>,
4071 pub r#type: ElicitationRequestedSchemaType,
4073}
4074
4075#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4077#[serde(rename_all = "camelCase")]
4078pub struct ElicitationRequestedData {
4079 #[serde(skip_serializing_if = "Option::is_none")]
4081 pub elicitation_source: Option<String>,
4082 pub message: String,
4084 #[serde(skip_serializing_if = "Option::is_none")]
4086 pub mode: Option<ElicitationRequestedMode>,
4087 #[serde(skip_serializing_if = "Option::is_none")]
4089 pub requested_schema: Option<ElicitationRequestedSchema>,
4090 pub request_id: RequestId,
4092 #[serde(skip_serializing_if = "Option::is_none")]
4094 pub tool_call_id: Option<String>,
4095 #[serde(skip_serializing_if = "Option::is_none")]
4097 pub url: Option<String>,
4098}
4099
4100#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4102#[serde(rename_all = "camelCase")]
4103pub struct ElicitationCompletedData {
4104 #[serde(skip_serializing_if = "Option::is_none")]
4106 pub action: Option<ElicitationCompletedAction>,
4107 #[serde(skip_serializing_if = "Option::is_none")]
4109 pub content: Option<HashMap<String, serde_json::Value>>,
4110 pub request_id: RequestId,
4112}
4113
4114#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4116#[serde(rename_all = "camelCase")]
4117pub struct SamplingRequestedData {
4118 pub mcp_request_id: serde_json::Value,
4120 pub request_id: RequestId,
4122 pub server_name: String,
4124}
4125
4126#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4128#[serde(rename_all = "camelCase")]
4129pub struct SamplingCompletedData {
4130 pub request_id: RequestId,
4132}
4133
4134#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4136#[serde(rename_all = "camelCase")]
4137pub struct HeaderEntry {
4138 pub name: String,
4140 pub value: String,
4142}
4143
4144#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4146#[serde(rename_all = "camelCase")]
4147pub struct McpOauthHttpResponse {
4148 #[serde(skip_serializing_if = "Option::is_none")]
4150 pub body: Option<String>,
4151 pub headers: Vec<HeaderEntry>,
4153 pub status_code: i32,
4155}
4156
4157#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4159#[serde(rename_all = "camelCase")]
4160pub struct McpOauthRequiredStaticClientConfig {
4161 pub client_id: String,
4163 #[serde(skip_serializing_if = "Option::is_none")]
4165 pub client_secret: Option<String>,
4166 #[serde(skip_serializing_if = "Option::is_none")]
4168 pub grant_type: Option<McpOauthRequiredStaticClientConfigGrantType>,
4169 #[serde(skip_serializing_if = "Option::is_none")]
4171 pub public_client: Option<bool>,
4172}
4173
4174#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4176#[serde(rename_all = "camelCase")]
4177pub struct McpOauthWWWAuthenticateParams {
4178 #[serde(skip_serializing_if = "Option::is_none")]
4180 pub error: Option<String>,
4181 #[serde(skip_serializing_if = "Option::is_none")]
4183 pub resource_metadata_url: Option<String>,
4184 #[serde(skip_serializing_if = "Option::is_none")]
4186 pub scope: Option<String>,
4187}
4188
4189#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4191#[serde(rename_all = "camelCase")]
4192pub struct McpOauthRequiredData {
4193 #[serde(skip_serializing_if = "Option::is_none")]
4195 pub http_response: Option<McpOauthHttpResponse>,
4196 pub reason: McpOauthRequestReason,
4198 pub request_id: RequestId,
4200 #[serde(skip_serializing_if = "Option::is_none")]
4202 pub resource_metadata: Option<String>,
4203 pub server_name: String,
4205 pub server_url: String,
4207 #[serde(skip_serializing_if = "Option::is_none")]
4209 pub static_client_config: Option<McpOauthRequiredStaticClientConfig>,
4210 #[serde(skip_serializing_if = "Option::is_none")]
4212 pub www_authenticate_params: Option<McpOauthWWWAuthenticateParams>,
4213}
4214
4215#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4217#[serde(rename_all = "camelCase")]
4218pub struct McpOauthCompletedData {
4219 pub outcome: McpOauthCompletionOutcome,
4221 pub request_id: RequestId,
4223}
4224
4225#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4227#[serde(rename_all = "camelCase")]
4228pub struct McpHeadersRefreshRequiredData {
4229 pub reason: McpHeadersRefreshRequiredReason,
4231 pub request_id: RequestId,
4233 pub server_name: String,
4235 pub server_url: String,
4237}
4238
4239#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4241#[serde(rename_all = "camelCase")]
4242pub struct McpHeadersRefreshCompletedData {
4243 pub outcome: McpHeadersRefreshCompletedOutcome,
4245 pub request_id: RequestId,
4247}
4248
4249#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4251#[serde(rename_all = "camelCase")]
4252pub struct SessionCustomNotificationData {
4253 pub name: String,
4255 pub payload: serde_json::Value,
4257 pub source: String,
4259 #[serde(skip_serializing_if = "Option::is_none")]
4261 pub subject: Option<HashMap<String, String>>,
4262 #[serde(skip_serializing_if = "Option::is_none")]
4264 pub version: Option<i64>,
4265}
4266
4267#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4269#[serde(rename_all = "camelCase")]
4270pub struct ExternalToolRequestedData {
4271 #[serde(skip_serializing_if = "Option::is_none")]
4273 pub arguments: Option<serde_json::Value>,
4274 pub request_id: RequestId,
4276 pub session_id: SessionId,
4278 pub tool_call_id: String,
4280 pub tool_name: String,
4282 #[serde(skip_serializing_if = "Option::is_none")]
4284 pub traceparent: Option<String>,
4285 #[serde(skip_serializing_if = "Option::is_none")]
4287 pub tracestate: Option<String>,
4288 #[serde(skip_serializing_if = "Option::is_none")]
4290 pub working_directory: Option<String>,
4291}
4292
4293#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4295#[serde(rename_all = "camelCase")]
4296pub struct ExternalToolCompletedData {
4297 pub request_id: RequestId,
4299}
4300
4301#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4303#[serde(rename_all = "camelCase")]
4304pub struct CommandQueuedData {
4305 pub command: String,
4307 pub request_id: RequestId,
4309}
4310
4311#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4313#[serde(rename_all = "camelCase")]
4314pub struct CommandExecuteData {
4315 pub args: String,
4317 pub command: String,
4319 pub command_name: String,
4321 pub request_id: RequestId,
4323}
4324
4325#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4327#[serde(rename_all = "camelCase")]
4328pub struct CommandCompletedData {
4329 pub request_id: RequestId,
4331}
4332
4333#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4335#[serde(rename_all = "camelCase")]
4336pub struct AutoModeSwitchRequestedData {
4337 #[serde(skip_serializing_if = "Option::is_none")]
4339 pub error_code: Option<String>,
4340 pub request_id: RequestId,
4342 #[serde(skip_serializing_if = "Option::is_none")]
4344 pub retry_after_seconds: Option<i64>,
4345}
4346
4347#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4349#[serde(rename_all = "camelCase")]
4350pub struct AutoModeSwitchCompletedData {
4351 pub request_id: RequestId,
4353 pub response: AutoModeSwitchResponse,
4355}
4356
4357#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4359#[serde(rename_all = "camelCase")]
4360pub struct SessionLimitsExhaustedRequestedData {
4361 pub max_ai_credits: f64,
4363 pub request_id: RequestId,
4365 pub used_ai_credits: f64,
4367}
4368
4369#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4371#[serde(rename_all = "camelCase")]
4372pub struct SessionLimitsExhaustedResponse {
4373 pub action: SessionLimitsExhaustedResponseAction,
4375 #[serde(skip_serializing_if = "Option::is_none")]
4377 pub additional_ai_credits: Option<f64>,
4378 #[serde(skip_serializing_if = "Option::is_none")]
4380 pub max_ai_credits: Option<f64>,
4381}
4382
4383#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4385#[serde(rename_all = "camelCase")]
4386pub struct SessionLimitsExhaustedCompletedData {
4387 pub request_id: RequestId,
4389 pub response: SessionLimitsExhaustedResponse,
4391}
4392
4393#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4402#[serde(rename_all = "camelCase")]
4403pub struct SessionAutoModeResolvedData {
4404 #[serde(skip_serializing_if = "Option::is_none")]
4406 pub available_models: Option<Vec<String>>,
4407 #[serde(skip_serializing_if = "Option::is_none")]
4409 pub candidate_models: Option<Vec<String>>,
4410 #[serde(skip_serializing_if = "Option::is_none")]
4412 pub category_scores: Option<HashMap<String, f64>>,
4413 pub chosen_model: String,
4415 #[serde(skip_serializing_if = "Option::is_none")]
4417 pub chosen_shortfall: Option<f64>,
4418 #[serde(skip_serializing_if = "Option::is_none")]
4420 pub confidence: Option<f64>,
4421 #[serde(skip_serializing_if = "Option::is_none")]
4423 pub end_to_end_latency_ms: Option<f64>,
4424 #[serde(skip_serializing_if = "Option::is_none")]
4426 pub fallback: Option<bool>,
4427 #[serde(skip_serializing_if = "Option::is_none")]
4429 pub fallback_reason: Option<String>,
4430 #[serde(skip_serializing_if = "Option::is_none")]
4432 pub has_image: Option<bool>,
4433 #[serde(skip_serializing_if = "Option::is_none")]
4435 pub predicted_label: Option<String>,
4436 #[serde(skip_serializing_if = "Option::is_none")]
4438 pub reasoning_bucket: Option<AutoModeResolvedReasoningBucket>,
4439 #[serde(skip_serializing_if = "Option::is_none")]
4441 pub router_latency_ms: Option<f64>,
4442 #[serde(skip_serializing_if = "Option::is_none")]
4444 pub routing_method: Option<String>,
4445 #[serde(skip_serializing_if = "Option::is_none")]
4447 pub sticky_override: Option<bool>,
4448}
4449
4450#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4459#[serde(rename_all = "camelCase")]
4460pub struct SessionManagedSettingsResolvedData {
4461 pub bypass_permissions_disabled: bool,
4463 #[serde(skip_serializing_if = "Option::is_none")]
4465 pub client_managed: Option<bool>,
4466 pub device_managed: bool,
4468 pub fail_closed: bool,
4470 pub managed_keys: Vec<String>,
4472 #[serde(skip_serializing_if = "Option::is_none")]
4474 pub permissions_allow_intersected: Option<bool>,
4475 pub server_managed: bool,
4477 #[serde(skip_serializing_if = "Option::is_none")]
4479 pub settings: Option<serde_json::Value>,
4480 pub source: ManagedSettingsResolvedSource,
4482}
4483
4484#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4493#[serde(rename_all = "camelCase")]
4494pub struct SessionManagedSettingsEnforcedData {
4495 pub action: ManagedSettingsEnforcedAction,
4497 #[serde(skip_serializing_if = "Option::is_none")]
4499 pub escalation: Option<ManagedSettingsEnforcedEscalation>,
4500 pub fail_closed: bool,
4502 pub message: String,
4504 pub setting: String,
4506}
4507
4508#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4510#[serde(rename_all = "camelCase")]
4511pub struct CommandsChangedCommand {
4512 #[serde(skip_serializing_if = "Option::is_none")]
4514 pub description: Option<String>,
4515 pub name: String,
4517}
4518
4519#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4521#[serde(rename_all = "camelCase")]
4522pub struct CommandsChangedData {
4523 pub commands: Vec<CommandsChangedCommand>,
4525}
4526
4527#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4529#[serde(rename_all = "camelCase")]
4530pub struct CapabilitiesChangedUI {
4531 #[serde(skip_serializing_if = "Option::is_none")]
4533 pub canvases: Option<bool>,
4534 #[serde(skip_serializing_if = "Option::is_none")]
4536 pub elicitation: Option<bool>,
4537 #[serde(skip_serializing_if = "Option::is_none")]
4539 pub mcp_apps: Option<bool>,
4540}
4541
4542#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4544#[serde(rename_all = "camelCase")]
4545pub struct CapabilitiesChangedData {
4546 #[serde(skip_serializing_if = "Option::is_none")]
4548 pub ui: Option<CapabilitiesChangedUI>,
4549}
4550
4551#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4553#[serde(rename_all = "camelCase")]
4554pub struct ExitPlanModeRequestedData {
4555 pub actions: Vec<ExitPlanModeAction>,
4557 pub plan_content: String,
4559 pub recommended_action: ExitPlanModeAction,
4561 pub request_id: RequestId,
4563 pub summary: String,
4565}
4566
4567#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4569#[serde(rename_all = "camelCase")]
4570pub struct ExitPlanModeCompletedData {
4571 #[serde(skip_serializing_if = "Option::is_none")]
4573 pub approved: Option<bool>,
4574 #[serde(skip_serializing_if = "Option::is_none")]
4576 pub auto_approve_edits: Option<bool>,
4577 #[serde(skip_serializing_if = "Option::is_none")]
4579 pub feedback: Option<String>,
4580 pub request_id: RequestId,
4582 #[serde(skip_serializing_if = "Option::is_none")]
4584 pub selected_action: Option<ExitPlanModeAction>,
4585}
4586
4587#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4589#[serde(rename_all = "camelCase")]
4590pub struct SessionToolsUpdatedData {
4591 pub model: String,
4593}
4594
4595#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4597#[serde(rename_all = "camelCase")]
4598pub struct SessionBackgroundTasksChangedData {}
4599
4600#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4609#[serde(rename_all = "camelCase")]
4610pub struct FactoryRunUpdatedData {
4611 pub revision: i64,
4613 pub run_id: String,
4614}
4615
4616#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4618#[serde(rename_all = "camelCase")]
4619pub struct SkillsLoadedSkill {
4620 #[serde(skip_serializing_if = "Option::is_none")]
4622 pub argument_hint: Option<String>,
4623 #[serde(skip_serializing_if = "Option::is_none")]
4625 pub command_name: Option<String>,
4626 pub description: String,
4628 pub enabled: bool,
4630 pub name: String,
4632 #[serde(skip_serializing_if = "Option::is_none")]
4634 pub path: Option<String>,
4635 pub source: SkillSource,
4637 pub user_invocable: bool,
4639}
4640
4641#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4643#[serde(rename_all = "camelCase")]
4644pub struct SessionSkillsLoadedData {
4645 pub skills: Vec<SkillsLoadedSkill>,
4647}
4648
4649#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4651#[serde(rename_all = "camelCase")]
4652pub struct CustomAgentsUpdatedAgent {
4653 pub description: String,
4655 pub display_name: String,
4657 pub id: String,
4659 #[serde(skip_serializing_if = "Option::is_none")]
4661 pub model: Option<String>,
4662 pub name: String,
4664 pub source: String,
4666 pub tools: Option<Vec<String>>,
4668 pub user_invocable: bool,
4670}
4671
4672#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4674#[serde(rename_all = "camelCase")]
4675pub struct SessionCustomAgentsUpdatedData {
4676 pub agents: Vec<CustomAgentsUpdatedAgent>,
4678 pub errors: Vec<String>,
4680 pub warnings: Vec<String>,
4682}
4683
4684#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4686#[serde(rename_all = "camelCase")]
4687pub struct McpServersLoadedServer {
4688 #[serde(skip_serializing_if = "Option::is_none")]
4690 pub error: Option<String>,
4691 pub name: String,
4693 #[serde(skip_serializing_if = "Option::is_none")]
4695 pub plugin_name: Option<String>,
4696 #[serde(skip_serializing_if = "Option::is_none")]
4698 pub plugin_version: Option<String>,
4699 #[serde(skip_serializing_if = "Option::is_none")]
4701 pub source: Option<McpServerSource>,
4702 pub status: McpServerStatus,
4704 #[serde(skip_serializing_if = "Option::is_none")]
4706 pub transport: Option<McpServerTransport>,
4707}
4708
4709#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4711#[serde(rename_all = "camelCase")]
4712pub struct SessionMcpServersLoadedData {
4713 pub servers: Vec<McpServersLoadedServer>,
4715}
4716
4717#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4719#[serde(rename_all = "camelCase")]
4720pub struct SessionMcpServerStatusChangedData {
4721 #[serde(skip_serializing_if = "Option::is_none")]
4723 pub error: Option<String>,
4724 pub server_name: String,
4726 pub status: McpServerStatus,
4728}
4729
4730#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4732#[serde(rename_all = "camelCase")]
4733pub struct McpToolsListChangedData {
4734 pub server_name: String,
4736}
4737
4738#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4740#[serde(rename_all = "camelCase")]
4741pub struct McpResourcesListChangedData {
4742 pub server_name: String,
4744}
4745
4746#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4748#[serde(rename_all = "camelCase")]
4749pub struct McpPromptsListChangedData {
4750 pub server_name: String,
4752}
4753
4754#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4756#[serde(rename_all = "camelCase")]
4757pub struct ExtensionsLoadedExtension {
4758 pub id: String,
4760 pub name: String,
4762 pub source: ExtensionsLoadedExtensionSource,
4764 pub status: ExtensionsLoadedExtensionStatus,
4766}
4767
4768#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4770#[serde(rename_all = "camelCase")]
4771pub struct SessionExtensionsLoadedData {
4772 pub extensions: Vec<ExtensionsLoadedExtension>,
4774}
4775
4776#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4785#[serde(rename_all = "camelCase")]
4786pub struct SessionCanvasOpenedData {
4787 pub canvas_id: String,
4789 pub extension_id: String,
4791 #[serde(skip_serializing_if = "Option::is_none")]
4793 pub extension_name: Option<String>,
4794 #[serde(skip_serializing_if = "Option::is_none")]
4796 pub icon: Option<String>,
4797 #[serde(skip_serializing_if = "Option::is_none")]
4799 pub input: Option<serde_json::Value>,
4800 pub instance_id: String,
4802 #[serde(skip_serializing_if = "Option::is_none")]
4804 pub status: Option<String>,
4805 #[serde(skip_serializing_if = "Option::is_none")]
4807 pub title: Option<String>,
4808 #[serde(skip_serializing_if = "Option::is_none")]
4810 pub url: Option<String>,
4811}
4812
4813#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4822#[serde(rename_all = "camelCase")]
4823pub struct CanvasRegistryChangedCanvasAction {
4824 #[serde(skip_serializing_if = "Option::is_none")]
4826 pub description: Option<String>,
4827 #[serde(skip_serializing_if = "Option::is_none")]
4829 pub input_schema: Option<serde_json::Value>,
4830 pub name: String,
4832}
4833
4834#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4843#[serde(rename_all = "camelCase")]
4844pub struct CanvasRegistryChangedCanvas {
4845 #[serde(skip_serializing_if = "Option::is_none")]
4847 pub actions: Option<Vec<CanvasRegistryChangedCanvasAction>>,
4848 pub canvas_id: String,
4850 pub description: String,
4852 pub display_name: String,
4854 pub extension_id: String,
4856 #[serde(skip_serializing_if = "Option::is_none")]
4858 pub extension_name: Option<String>,
4859 #[serde(skip_serializing_if = "Option::is_none")]
4861 pub icon: Option<String>,
4862 #[serde(skip_serializing_if = "Option::is_none")]
4864 pub input_schema: Option<serde_json::Value>,
4865}
4866
4867#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4876#[serde(rename_all = "camelCase")]
4877pub struct SessionCanvasRegistryChangedData {
4878 pub canvases: Vec<CanvasRegistryChangedCanvas>,
4880}
4881
4882#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4891#[serde(rename_all = "camelCase")]
4892pub struct SessionCanvasClosedData {
4893 pub canvas_id: String,
4895 pub extension_id: String,
4897 pub instance_id: String,
4899}
4900
4901#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4910#[serde(rename_all = "camelCase")]
4911pub struct SessionCanvasUnavailableData {
4912 pub canvas_id: String,
4914 pub extension_id: String,
4916 pub instance_id: String,
4918}
4919
4920#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4929#[serde(rename_all = "camelCase")]
4930pub struct SessionCanvasRecordedData {
4931 pub canvas_id: String,
4933 pub extension_id: String,
4935 #[serde(skip_serializing_if = "Option::is_none")]
4937 pub input: Option<serde_json::Value>,
4938 pub instance_id: String,
4940 #[serde(skip_serializing_if = "Option::is_none")]
4942 pub title: Option<String>,
4943}
4944
4945#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4954#[serde(rename_all = "camelCase")]
4955pub struct SessionCanvasRemovedData {
4956 pub canvas_id: String,
4958 pub extension_id: String,
4960 pub instance_id: String,
4962}
4963
4964#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4966#[serde(rename_all = "camelCase")]
4967pub struct SessionExtensionsAttachmentsPushedData {
4968 pub attachments: Vec<serde_json::Value>,
4970}
4971
4972#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4974#[serde(rename_all = "camelCase")]
4975pub struct McpAppToolCallCompleteError {
4976 pub message: String,
4978}
4979
4980#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4982#[serde(rename_all = "camelCase")]
4983pub struct McpAppToolCallCompleteToolMetaUI {
4984 #[serde(skip_serializing_if = "Option::is_none")]
4986 pub resource_uri: Option<String>,
4987 #[serde(skip_serializing_if = "Option::is_none")]
4989 pub visibility: Option<Vec<String>>,
4990}
4991
4992#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4994#[serde(rename_all = "camelCase")]
4995pub struct McpAppToolCallCompleteToolMeta {
4996 #[serde(skip_serializing_if = "Option::is_none")]
4998 pub ui: Option<McpAppToolCallCompleteToolMetaUI>,
4999}
5000
5001#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5003#[serde(rename_all = "camelCase")]
5004pub struct McpAppToolCallCompleteData {
5005 #[serde(skip_serializing_if = "Option::is_none")]
5007 pub arguments: Option<HashMap<String, serde_json::Value>>,
5008 pub duration_ms: f64,
5010 #[serde(skip_serializing_if = "Option::is_none")]
5012 pub error: Option<McpAppToolCallCompleteError>,
5013 #[serde(skip_serializing_if = "Option::is_none")]
5015 pub result: Option<HashMap<String, serde_json::Value>>,
5016 pub server_name: String,
5018 pub success: bool,
5020 #[serde(skip_serializing_if = "Option::is_none")]
5022 pub tool_meta: Option<McpAppToolCallCompleteToolMeta>,
5023 pub tool_name: String,
5025}
5026
5027#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5029pub enum WorkingDirectoryContextHostType {
5030 #[serde(rename = "github")]
5032 GitHub,
5033 #[serde(rename = "ado")]
5035 Ado,
5036 #[default]
5038 #[serde(other)]
5039 Unknown,
5040}
5041
5042#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5044pub enum ContextTier {
5045 #[serde(rename = "default")]
5047 Default,
5048 #[serde(rename = "long_context")]
5050 LongContext,
5051 #[default]
5053 #[serde(other)]
5054 Unknown,
5055}
5056
5057#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5059pub enum ReasoningSummary {
5060 #[serde(rename = "none")]
5062 None,
5063 #[serde(rename = "concise")]
5065 Concise,
5066 #[serde(rename = "detailed")]
5068 Detailed,
5069 #[default]
5071 #[serde(other)]
5072 Unknown,
5073}
5074
5075#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5077pub enum Verbosity {
5078 #[serde(rename = "low")]
5080 Low,
5081 #[serde(rename = "medium")]
5083 Medium,
5084 #[serde(rename = "high")]
5086 High,
5087 #[default]
5089 #[serde(other)]
5090 Unknown,
5091}
5092
5093#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5095pub enum ScheduleOrigin {
5096 #[serde(rename = "user")]
5098 User,
5099 #[serde(rename = "model")]
5101 Model,
5102 #[default]
5104 #[serde(other)]
5105 Unknown,
5106}
5107
5108#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5110pub enum AutopilotObjectiveChangedOperation {
5111 #[serde(rename = "create")]
5113 Create,
5114 #[serde(rename = "update")]
5116 Update,
5117 #[serde(rename = "delete")]
5119 Delete,
5120 #[default]
5122 #[serde(other)]
5123 Unknown,
5124}
5125
5126#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5128pub enum AutopilotObjectiveChangedStatus {
5129 #[serde(rename = "active")]
5131 Active,
5132 #[serde(rename = "paused")]
5134 Paused,
5135 #[serde(rename = "cap_reached")]
5137 CapReached,
5138 #[serde(rename = "completed")]
5140 Completed,
5141 #[default]
5143 #[serde(other)]
5144 Unknown,
5145}
5146
5147#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5149pub enum SessionMode {
5150 #[serde(rename = "interactive")]
5152 Interactive,
5153 #[serde(rename = "plan")]
5155 Plan,
5156 #[serde(rename = "autopilot")]
5158 Autopilot,
5159 #[default]
5161 #[serde(other)]
5162 Unknown,
5163}
5164
5165#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5174pub enum PermissionAllowAllMode {
5175 #[serde(rename = "off")]
5177 Off,
5178 #[serde(rename = "on")]
5180 On,
5181 #[serde(rename = "auto")]
5183 Auto,
5184 #[default]
5186 #[serde(other)]
5187 Unknown,
5188}
5189
5190#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5192pub enum PlanChangedOperation {
5193 #[serde(rename = "create")]
5195 Create,
5196 #[serde(rename = "update")]
5198 Update,
5199 #[serde(rename = "delete")]
5201 Delete,
5202 #[default]
5204 #[serde(other)]
5205 Unknown,
5206}
5207
5208#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5210pub enum WorkspaceFileChangedOperation {
5211 #[serde(rename = "create")]
5213 Create,
5214 #[serde(rename = "update")]
5216 Update,
5217 #[default]
5219 #[serde(other)]
5220 Unknown,
5221}
5222
5223#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5225pub enum HandoffSourceType {
5226 #[serde(rename = "remote")]
5228 Remote,
5229 #[serde(rename = "local")]
5231 Local,
5232 #[default]
5234 #[serde(other)]
5235 Unknown,
5236}
5237
5238#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5240pub enum ShutdownType {
5241 #[serde(rename = "routine")]
5243 Routine,
5244 #[serde(rename = "error")]
5246 Error,
5247 #[default]
5249 #[serde(other)]
5250 Unknown,
5251}
5252
5253#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5255pub enum CompactionTrigger {
5256 #[serde(rename = "threshold")]
5258 Threshold,
5259 #[serde(rename = "context_limit_retry")]
5261 ContextLimitRetry,
5262 #[serde(rename = "manual")]
5264 Manual,
5265 #[serde(rename = "memory_pressure")]
5267 MemoryPressure,
5268 #[serde(rename = "model_switch")]
5270 ModelSwitch,
5271 #[default]
5273 #[serde(other)]
5274 Unknown,
5275}
5276
5277#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5279pub enum TaskCompletionOutcome {
5280 #[serde(rename = "completed")]
5282 Completed,
5283 #[serde(rename = "continue")]
5285 Continue,
5286 #[serde(rename = "blocked")]
5288 Blocked,
5289 #[default]
5291 #[serde(other)]
5292 Unknown,
5293}
5294
5295#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5297pub enum UserMessageAgentMode {
5298 #[serde(rename = "interactive")]
5300 Interactive,
5301 #[serde(rename = "plan")]
5303 Plan,
5304 #[serde(rename = "autopilot")]
5306 Autopilot,
5307 #[serde(rename = "shell")]
5309 Shell,
5310 #[default]
5312 #[serde(other)]
5313 Unknown,
5314}
5315
5316#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5318pub enum UserMessageDelivery {
5319 #[serde(rename = "idle")]
5321 Idle,
5322 #[serde(rename = "steering")]
5324 Steering,
5325 #[serde(rename = "queued")]
5327 Queued,
5328 #[default]
5330 #[serde(other)]
5331 Unknown,
5332}
5333
5334#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5336pub enum AssistantMessageToolRequestType {
5337 #[serde(rename = "function")]
5339 Function,
5340 #[serde(rename = "custom")]
5342 Custom,
5343 #[default]
5345 #[serde(other)]
5346 Unknown,
5347}
5348
5349#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5358pub enum CitationProvider {
5359 #[serde(rename = "anthropic")]
5361 Anthropic,
5362 #[serde(rename = "openai")]
5364 Openai,
5365 #[serde(rename = "client")]
5367 Client,
5368 #[default]
5370 #[serde(other)]
5371 Unknown,
5372}
5373
5374#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5376pub enum AssistantUsageApiEndpoint {
5377 #[serde(rename = "/chat/completions")]
5379 ChatCompletions,
5380 #[serde(rename = "/v1/messages")]
5382 V1Messages,
5383 #[serde(rename = "/responses")]
5385 Responses,
5386 #[serde(rename = "ws:/responses")]
5388 WsResponses,
5389 #[default]
5391 #[serde(other)]
5392 Unknown,
5393}
5394
5395#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5397pub enum ModelCallFailureBadRequestKind {
5398 #[serde(rename = "bodyless")]
5400 Bodyless,
5401 #[serde(rename = "structured_error")]
5403 StructuredError,
5404 #[default]
5406 #[serde(other)]
5407 Unknown,
5408}
5409
5410#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5412pub enum ModelCallFailureKind {
5413 #[serde(rename = "api")]
5415 Api,
5416 #[serde(rename = "transport")]
5418 Transport,
5419 #[default]
5421 #[serde(other)]
5422 Unknown,
5423}
5424
5425#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5427pub enum ModelCallFailureSource {
5428 #[serde(rename = "top_level")]
5430 TopLevel,
5431 #[serde(rename = "subagent")]
5433 Subagent,
5434 #[serde(rename = "mcp_sampling")]
5436 McpSampling,
5437 #[default]
5439 #[serde(other)]
5440 Unknown,
5441}
5442
5443#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5445pub enum ModelCallFailureTransport {
5446 #[serde(rename = "http")]
5448 Http,
5449 #[serde(rename = "websocket")]
5451 Websocket,
5452 #[default]
5454 #[serde(other)]
5455 Unknown,
5456}
5457
5458#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5460pub enum AbortReason {
5461 #[serde(rename = "user_initiated")]
5463 UserInitiated,
5464 #[serde(rename = "remote_command")]
5466 RemoteCommand,
5467 #[serde(rename = "user_abort")]
5469 UserAbort,
5470 #[serde(rename = "autopilot_credit_limit")]
5472 AutopilotCreditLimit,
5473 #[default]
5475 #[serde(other)]
5476 Unknown,
5477}
5478
5479#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5481pub enum ToolExecutionStartToolDescriptionMetaUIVisibility {
5482 #[serde(rename = "model")]
5484 Model,
5485 #[serde(rename = "app")]
5487 App,
5488 #[default]
5490 #[serde(other)]
5491 Unknown,
5492}
5493
5494#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5496pub enum ToolExecutionCompleteContentTextType {
5497 #[serde(rename = "text")]
5498 #[default]
5499 Text,
5500}
5501
5502#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5504pub enum ToolExecutionCompleteContentTerminalType {
5505 #[serde(rename = "terminal")]
5506 #[default]
5507 Terminal,
5508}
5509
5510#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5512pub enum ToolExecutionCompleteContentShellExitType {
5513 #[serde(rename = "shell_exit")]
5514 #[default]
5515 ShellExit,
5516}
5517
5518#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5520pub enum ToolExecutionCompleteContentImageType {
5521 #[serde(rename = "image")]
5522 #[default]
5523 Image,
5524}
5525
5526#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5528pub enum ToolExecutionCompleteContentAudioType {
5529 #[serde(rename = "audio")]
5530 #[default]
5531 Audio,
5532}
5533
5534#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5536pub enum ToolExecutionCompleteContentResourceLinkIconTheme {
5537 #[serde(rename = "light")]
5539 Light,
5540 #[serde(rename = "dark")]
5542 Dark,
5543 #[default]
5545 #[serde(other)]
5546 Unknown,
5547}
5548
5549#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5551pub enum ToolExecutionCompleteContentResourceLinkType {
5552 #[serde(rename = "resource_link")]
5553 #[default]
5554 ResourceLink,
5555}
5556
5557#[derive(Debug, Clone, Serialize, Deserialize)]
5559#[serde(untagged)]
5560pub enum ToolExecutionCompleteContentResourceDetails {
5561 EmbeddedTextResourceContents(EmbeddedTextResourceContents),
5562 EmbeddedBlobResourceContents(EmbeddedBlobResourceContents),
5563}
5564
5565#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5567pub enum ToolExecutionCompleteContentResourceType {
5568 #[serde(rename = "resource")]
5569 #[default]
5570 Resource,
5571}
5572
5573#[derive(Debug, Clone, Serialize, Deserialize)]
5575#[serde(untagged)]
5576pub enum ToolExecutionCompleteContent {
5577 Text(ToolExecutionCompleteContentText),
5578 Terminal(ToolExecutionCompleteContentTerminal),
5579 ShellExit(ToolExecutionCompleteContentShellExit),
5580 Image(ToolExecutionCompleteContentImage),
5581 Audio(ToolExecutionCompleteContentAudio),
5582 ResourceLink(ToolExecutionCompleteContentResourceLink),
5583 Resource(ToolExecutionCompleteContentResource),
5584}
5585
5586#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5588pub enum ToolExecutionCompleteToolDescriptionMetaUIVisibility {
5589 #[serde(rename = "model")]
5591 Model,
5592 #[serde(rename = "app")]
5594 App,
5595 #[default]
5597 #[serde(other)]
5598 Unknown,
5599}
5600
5601#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5603pub enum SkillInvokedTrigger {
5604 #[serde(rename = "user-invoked")]
5606 UserInvoked,
5607 #[serde(rename = "agent-invoked")]
5609 AgentInvoked,
5610 #[serde(rename = "context-load")]
5612 ContextLoad,
5613 #[default]
5615 #[serde(other)]
5616 Unknown,
5617}
5618
5619#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5621pub enum BinaryAssetType {
5622 #[serde(rename = "image")]
5624 Image,
5625 #[serde(rename = "resource")]
5627 Resource,
5628 #[default]
5630 #[serde(other)]
5631 Unknown,
5632}
5633
5634#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5636pub enum SystemMessageRole {
5637 #[serde(rename = "system")]
5639 System,
5640 #[serde(rename = "developer")]
5642 Developer,
5643 #[default]
5645 #[serde(other)]
5646 Unknown,
5647}
5648
5649#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5651pub enum PermissionRequestShellKind {
5652 #[serde(rename = "shell")]
5653 #[default]
5654 Shell,
5655}
5656
5657#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5659pub enum PermissionRequestWriteKind {
5660 #[serde(rename = "write")]
5661 #[default]
5662 Write,
5663}
5664
5665#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5667pub enum PermissionRequestReadKind {
5668 #[serde(rename = "read")]
5669 #[default]
5670 Read,
5671}
5672
5673#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5675pub enum PermissionRequestMcpKind {
5676 #[serde(rename = "mcp")]
5677 #[default]
5678 Mcp,
5679}
5680
5681#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5683pub enum PermissionRequestUrlKind {
5684 #[serde(rename = "url")]
5685 #[default]
5686 Url,
5687}
5688
5689#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5691pub enum PermissionRequestMemoryAction {
5692 #[serde(rename = "store")]
5694 Store,
5695 #[serde(rename = "vote")]
5697 Vote,
5698 #[default]
5700 #[serde(other)]
5701 Unknown,
5702}
5703
5704#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5706pub enum PermissionRequestMemoryDirection {
5707 #[serde(rename = "upvote")]
5709 Upvote,
5710 #[serde(rename = "downvote")]
5712 Downvote,
5713 #[default]
5715 #[serde(other)]
5716 Unknown,
5717}
5718
5719#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5721pub enum PermissionRequestMemoryKind {
5722 #[serde(rename = "memory")]
5723 #[default]
5724 Memory,
5725}
5726
5727#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5729pub enum PermissionRequestCustomToolKind {
5730 #[serde(rename = "custom-tool")]
5731 #[default]
5732 CustomTool,
5733}
5734
5735#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5737pub enum PermissionRequestHookKind {
5738 #[serde(rename = "hook")]
5739 #[default]
5740 Hook,
5741}
5742
5743#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5745pub enum PermissionRequestExtensionManagementKind {
5746 #[serde(rename = "extension-management")]
5747 #[default]
5748 ExtensionManagement,
5749}
5750
5751#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5753pub enum PermissionRequestFactoryKind {
5754 #[serde(rename = "factory")]
5755 #[default]
5756 Factory,
5757}
5758
5759#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5761pub enum FactoryPermissionOperation {
5762 #[serde(rename = "run")]
5764 Run,
5765 #[serde(rename = "author")]
5767 Author,
5768 #[default]
5770 #[serde(other)]
5771 Unknown,
5772}
5773
5774#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5776pub enum PermissionRequestExtensionPermissionAccessKind {
5777 #[serde(rename = "extension-permission-access")]
5778 #[default]
5779 ExtensionPermissionAccess,
5780}
5781
5782#[derive(Debug, Clone, Serialize, Deserialize)]
5784#[serde(untagged)]
5785pub enum PermissionRequest {
5786 Shell(PermissionRequestShell),
5787 Write(PermissionRequestWrite),
5788 Read(PermissionRequestRead),
5789 Mcp(PermissionRequestMcp),
5790 Url(PermissionRequestUrl),
5791 Memory(PermissionRequestMemory),
5792 CustomTool(PermissionRequestCustomTool),
5793 Hook(PermissionRequestHook),
5794 ExtensionManagement(PermissionRequestExtensionManagement),
5795 Factory(PermissionRequestFactory),
5796 ExtensionPermissionAccess(PermissionRequestExtensionPermissionAccess),
5797}
5798
5799#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5808pub enum AutoApprovalJudgeFailureReason {
5809 #[serde(rename = "timeout")]
5811 Timeout,
5812 #[serde(rename = "abort")]
5814 Abort,
5815 #[serde(rename = "empty_response")]
5817 EmptyResponse,
5818 #[serde(rename = "model_error")]
5820 ModelError,
5821 #[serde(rename = "parse_error")]
5823 ParseError,
5824 #[default]
5826 #[serde(other)]
5827 Unknown,
5828}
5829
5830#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5839pub enum AutoApprovalRecommendation {
5840 #[serde(rename = "approve")]
5842 Approve,
5843 #[serde(rename = "requireApproval")]
5845 RequireApproval,
5846 #[serde(rename = "excluded")]
5848 Excluded,
5849 #[serde(rename = "error")]
5851 Error,
5852 #[default]
5854 #[serde(other)]
5855 Unknown,
5856}
5857
5858#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5860pub enum PermissionPromptRequestCommandsKind {
5861 #[serde(rename = "commands")]
5862 #[default]
5863 Commands,
5864}
5865
5866#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5868pub enum PermissionPromptRequestWriteKind {
5869 #[serde(rename = "write")]
5870 #[default]
5871 Write,
5872}
5873
5874#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5876pub enum PermissionPromptRequestReadKind {
5877 #[serde(rename = "read")]
5878 #[default]
5879 Read,
5880}
5881
5882#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5884pub enum PermissionPromptRequestMcpKind {
5885 #[serde(rename = "mcp")]
5886 #[default]
5887 Mcp,
5888}
5889
5890#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5892pub enum PermissionPromptRequestUrlKind {
5893 #[serde(rename = "url")]
5894 #[default]
5895 Url,
5896}
5897
5898#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5900pub enum PermissionPromptRequestMemoryKind {
5901 #[serde(rename = "memory")]
5902 #[default]
5903 Memory,
5904}
5905
5906#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5908pub enum PermissionPromptRequestCustomToolKind {
5909 #[serde(rename = "custom-tool")]
5910 #[default]
5911 CustomTool,
5912}
5913
5914#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5916pub enum PermissionPromptRequestPathAccessKind {
5917 #[serde(rename = "read")]
5919 Read,
5920 #[serde(rename = "shell")]
5922 Shell,
5923 #[serde(rename = "write")]
5925 Write,
5926 #[default]
5928 #[serde(other)]
5929 Unknown,
5930}
5931
5932#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5934pub enum PermissionPromptRequestPathKind {
5935 #[serde(rename = "path")]
5936 #[default]
5937 Path,
5938}
5939
5940#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5942pub enum PermissionPromptRequestHookKind {
5943 #[serde(rename = "hook")]
5944 #[default]
5945 Hook,
5946}
5947
5948#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5950pub enum PermissionPromptRequestExtensionManagementKind {
5951 #[serde(rename = "extension-management")]
5952 #[default]
5953 ExtensionManagement,
5954}
5955
5956#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5958pub enum PermissionPromptRequestFactoryKind {
5959 #[serde(rename = "factory")]
5960 #[default]
5961 Factory,
5962}
5963
5964#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5966pub enum PermissionPromptRequestExtensionPermissionAccessKind {
5967 #[serde(rename = "extension-permission-access")]
5968 #[default]
5969 ExtensionPermissionAccess,
5970}
5971
5972#[derive(Debug, Clone, Serialize, Deserialize)]
5974#[serde(untagged)]
5975pub enum PermissionPromptRequest {
5976 Commands(PermissionPromptRequestCommands),
5977 Write(PermissionPromptRequestWrite),
5978 Read(PermissionPromptRequestRead),
5979 Mcp(PermissionPromptRequestMcp),
5980 Url(PermissionPromptRequestUrl),
5981 Memory(PermissionPromptRequestMemory),
5982 CustomTool(PermissionPromptRequestCustomTool),
5983 Path(PermissionPromptRequestPath),
5984 Hook(PermissionPromptRequestHook),
5985 ExtensionManagement(PermissionPromptRequestExtensionManagement),
5986 Factory(PermissionPromptRequestFactory),
5987 ExtensionPermissionAccess(PermissionPromptRequestExtensionPermissionAccess),
5988}
5989
5990#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5992pub enum PermissionApprovedKind {
5993 #[serde(rename = "approved")]
5994 #[default]
5995 Approved,
5996}
5997
5998#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6000pub enum UserToolSessionApprovalCommandsKind {
6001 #[serde(rename = "commands")]
6002 #[default]
6003 Commands,
6004}
6005
6006#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6008pub enum UserToolSessionApprovalReadKind {
6009 #[serde(rename = "read")]
6010 #[default]
6011 Read,
6012}
6013
6014#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6016pub enum UserToolSessionApprovalWriteKind {
6017 #[serde(rename = "write")]
6018 #[default]
6019 Write,
6020}
6021
6022#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6024pub enum UserToolSessionApprovalMcpKind {
6025 #[serde(rename = "mcp")]
6026 #[default]
6027 Mcp,
6028}
6029
6030#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6032pub enum UserToolSessionApprovalMemoryKind {
6033 #[serde(rename = "memory")]
6034 #[default]
6035 Memory,
6036}
6037
6038#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6040pub enum UserToolSessionApprovalCustomToolKind {
6041 #[serde(rename = "custom-tool")]
6042 #[default]
6043 CustomTool,
6044}
6045
6046#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6048pub enum UserToolSessionApprovalExtensionManagementKind {
6049 #[serde(rename = "extension-management")]
6050 #[default]
6051 ExtensionManagement,
6052}
6053
6054#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6056pub enum UserToolSessionApprovalFactoryKind {
6057 #[serde(rename = "factory")]
6058 #[default]
6059 Factory,
6060}
6061
6062#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6064pub enum UserToolSessionApprovalExtensionPermissionAccessKind {
6065 #[serde(rename = "extension-permission-access")]
6066 #[default]
6067 ExtensionPermissionAccess,
6068}
6069
6070#[derive(Debug, Clone, Serialize, Deserialize)]
6072#[serde(untagged)]
6073pub enum UserToolSessionApproval {
6074 Commands(UserToolSessionApprovalCommands),
6075 Read(UserToolSessionApprovalRead),
6076 Write(UserToolSessionApprovalWrite),
6077 Mcp(UserToolSessionApprovalMcp),
6078 Memory(UserToolSessionApprovalMemory),
6079 CustomTool(UserToolSessionApprovalCustomTool),
6080 ExtensionManagement(UserToolSessionApprovalExtensionManagement),
6081 Factory(UserToolSessionApprovalFactory),
6082 ExtensionPermissionAccess(UserToolSessionApprovalExtensionPermissionAccess),
6083}
6084
6085#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6087pub enum PermissionApprovedForSessionKind {
6088 #[serde(rename = "approved-for-session")]
6089 #[default]
6090 ApprovedForSession,
6091}
6092
6093#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6095pub enum PermissionApprovedForLocationKind {
6096 #[serde(rename = "approved-for-location")]
6097 #[default]
6098 ApprovedForLocation,
6099}
6100
6101#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6103pub enum PermissionCancelledKind {
6104 #[serde(rename = "cancelled")]
6105 #[default]
6106 Cancelled,
6107}
6108
6109#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6111pub enum PermissionDeniedByRulesKind {
6112 #[serde(rename = "denied-by-rules")]
6113 #[default]
6114 DeniedByRules,
6115}
6116
6117#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6119pub enum PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUserKind {
6120 #[serde(rename = "denied-no-approval-rule-and-could-not-request-from-user")]
6121 #[default]
6122 DeniedNoApprovalRuleAndCouldNotRequestFromUser,
6123}
6124
6125#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6127pub enum PermissionDeniedInteractivelyByUserKind {
6128 #[serde(rename = "denied-interactively-by-user")]
6129 #[default]
6130 DeniedInteractivelyByUser,
6131}
6132
6133#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6135pub enum PermissionDeniedByContentExclusionPolicyKind {
6136 #[serde(rename = "denied-by-content-exclusion-policy")]
6137 #[default]
6138 DeniedByContentExclusionPolicy,
6139}
6140
6141#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6143pub enum PermissionDeniedByPermissionRequestHookKind {
6144 #[serde(rename = "denied-by-permission-request-hook")]
6145 #[default]
6146 DeniedByPermissionRequestHook,
6147}
6148
6149#[derive(Debug, Clone, Serialize, Deserialize)]
6151#[serde(untagged)]
6152pub enum PermissionResult {
6153 Approved(PermissionApproved),
6154 ApprovedForSession(PermissionApprovedForSession),
6155 ApprovedForLocation(PermissionApprovedForLocation),
6156 Cancelled(PermissionCancelled),
6157 DeniedByRules(PermissionDeniedByRules),
6158 DeniedNoApprovalRuleAndCouldNotRequestFromUser(
6159 PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser,
6160 ),
6161 DeniedInteractivelyByUser(PermissionDeniedInteractivelyByUser),
6162 DeniedByContentExclusionPolicy(PermissionDeniedByContentExclusionPolicy),
6163 DeniedByPermissionRequestHook(PermissionDeniedByPermissionRequestHook),
6164}
6165
6166#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6168pub enum ElicitationRequestedMode {
6169 #[serde(rename = "form")]
6171 Form,
6172 #[serde(rename = "url")]
6174 Url,
6175 #[default]
6177 #[serde(other)]
6178 Unknown,
6179}
6180
6181#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6183pub enum ElicitationRequestedSchemaType {
6184 #[serde(rename = "object")]
6185 #[default]
6186 Object,
6187}
6188
6189#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6191pub enum ElicitationCompletedAction {
6192 #[serde(rename = "accept")]
6194 Accept,
6195 #[serde(rename = "decline")]
6197 Decline,
6198 #[serde(rename = "cancel")]
6200 Cancel,
6201 #[default]
6203 #[serde(other)]
6204 Unknown,
6205}
6206
6207#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6209pub enum McpOauthRequestReason {
6210 #[serde(rename = "initial")]
6212 Initial,
6213 #[serde(rename = "refresh")]
6215 Refresh,
6216 #[serde(rename = "reauth")]
6218 Reauth,
6219 #[serde(rename = "upscope")]
6221 Upscope,
6222 #[default]
6224 #[serde(other)]
6225 Unknown,
6226}
6227
6228#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6230pub enum McpOauthRequiredStaticClientConfigGrantType {
6231 #[serde(rename = "client_credentials")]
6232 #[default]
6233 ClientCredentials,
6234}
6235
6236#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6238pub enum McpOauthCompletionOutcome {
6239 #[serde(rename = "token")]
6241 Token,
6242 #[serde(rename = "cancelled")]
6244 Cancelled,
6245 #[default]
6247 #[serde(other)]
6248 Unknown,
6249}
6250
6251#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6253pub enum McpHeadersRefreshRequiredReason {
6254 #[serde(rename = "startup")]
6256 Startup,
6257 #[serde(rename = "ttl-expired")]
6259 TtlExpired,
6260 #[serde(rename = "auth-failed")]
6262 AuthFailed,
6263 #[default]
6265 #[serde(other)]
6266 Unknown,
6267}
6268
6269#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6271pub enum McpHeadersRefreshCompletedOutcome {
6272 #[serde(rename = "headers")]
6274 Headers,
6275 #[serde(rename = "none")]
6277 None,
6278 #[serde(rename = "timeout")]
6280 Timeout,
6281 #[default]
6283 #[serde(other)]
6284 Unknown,
6285}
6286
6287#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6289pub enum AutoModeSwitchResponse {
6290 #[serde(rename = "yes")]
6292 Yes,
6293 #[serde(rename = "yes_always")]
6295 YesAlways,
6296 #[serde(rename = "no")]
6298 No,
6299 #[default]
6301 #[serde(other)]
6302 Unknown,
6303}
6304
6305#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6307pub enum SessionLimitsExhaustedResponseAction {
6308 #[serde(rename = "add")]
6310 Add,
6311 #[serde(rename = "set")]
6313 Set,
6314 #[serde(rename = "unset")]
6316 Unset,
6317 #[serde(rename = "cancel")]
6319 Cancel,
6320 #[default]
6322 #[serde(other)]
6323 Unknown,
6324}
6325
6326#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6328pub enum AutoModeResolvedReasoningBucket {
6329 #[serde(rename = "low")]
6331 Low,
6332 #[serde(rename = "medium")]
6334 Medium,
6335 #[serde(rename = "high")]
6337 High,
6338 #[default]
6340 #[serde(other)]
6341 Unknown,
6342}
6343
6344#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6346pub enum ManagedSettingsResolvedSource {
6347 #[serde(rename = "server")]
6349 Server,
6350 #[serde(rename = "device")]
6352 Device,
6353 #[serde(rename = "client")]
6355 Client,
6356 #[serde(rename = "mixed")]
6358 Mixed,
6359 #[serde(rename = "none")]
6361 None,
6362 #[default]
6364 #[serde(other)]
6365 Unknown,
6366}
6367
6368#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6370pub enum ManagedSettingsEnforcedAction {
6371 #[serde(rename = "bypass_permissions_blocked")]
6373 BypassPermissionsBlocked,
6374 #[default]
6376 #[serde(other)]
6377 Unknown,
6378}
6379
6380#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6382pub enum ManagedSettingsEnforcedEscalation {
6383 #[serde(rename = "allow_all")]
6385 AllowAll,
6386 #[serde(rename = "approve_all")]
6388 ApproveAll,
6389 #[serde(rename = "auto_approval")]
6391 AutoApproval,
6392 #[serde(rename = "unrestricted_paths")]
6394 UnrestrictedPaths,
6395 #[serde(rename = "unrestricted_urls")]
6397 UnrestrictedUrls,
6398 #[default]
6400 #[serde(other)]
6401 Unknown,
6402}
6403
6404#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6406pub enum ExitPlanModeAction {
6407 #[serde(rename = "exit_only")]
6409 ExitOnly,
6410 #[serde(rename = "interactive")]
6412 Interactive,
6413 #[serde(rename = "autopilot")]
6415 Autopilot,
6416 #[serde(rename = "autopilot_fleet")]
6418 AutopilotFleet,
6419 #[default]
6421 #[serde(other)]
6422 Unknown,
6423}
6424
6425#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6427pub enum SkillSource {
6428 #[serde(rename = "project")]
6430 Project,
6431 #[serde(rename = "inherited")]
6433 Inherited,
6434 #[serde(rename = "personal-copilot")]
6436 PersonalCopilot,
6437 #[serde(rename = "personal-agents")]
6439 PersonalAgents,
6440 #[serde(rename = "plugin")]
6442 Plugin,
6443 #[serde(rename = "custom")]
6445 Custom,
6446 #[serde(rename = "builtin")]
6448 Builtin,
6449 #[default]
6451 #[serde(other)]
6452 Unknown,
6453}
6454
6455#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6457pub enum McpServerSource {
6458 #[serde(rename = "user")]
6460 User,
6461 #[serde(rename = "workspace")]
6463 Workspace,
6464 #[serde(rename = "plugin")]
6466 Plugin,
6467 #[serde(rename = "builtin")]
6469 Builtin,
6470 #[default]
6472 #[serde(other)]
6473 Unknown,
6474}
6475
6476#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6478pub enum McpServerStatus {
6479 #[serde(rename = "connected")]
6481 Connected,
6482 #[serde(rename = "failed")]
6484 Failed,
6485 #[serde(rename = "needs-auth")]
6487 NeedsAuth,
6488 #[serde(rename = "pending")]
6490 Pending,
6491 #[serde(rename = "disabled")]
6493 Disabled,
6494 #[serde(rename = "stopped")]
6496 Stopped,
6497 #[serde(rename = "not_configured")]
6499 NotConfigured,
6500 #[default]
6502 #[serde(other)]
6503 Unknown,
6504}
6505
6506#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6508pub enum McpServerTransport {
6509 #[serde(rename = "stdio")]
6511 Stdio,
6512 #[serde(rename = "http")]
6514 Http,
6515 #[serde(rename = "sse")]
6517 Sse,
6518 #[serde(rename = "memory")]
6520 Memory,
6521 #[default]
6523 #[serde(other)]
6524 Unknown,
6525}
6526
6527#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6529pub enum ExtensionsLoadedExtensionSource {
6530 #[serde(rename = "project")]
6532 Project,
6533 #[serde(rename = "user")]
6535 User,
6536 #[serde(rename = "plugin")]
6538 Plugin,
6539 #[serde(rename = "session")]
6541 Session,
6542 #[default]
6544 #[serde(other)]
6545 Unknown,
6546}
6547
6548#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6550pub enum ExtensionsLoadedExtensionStatus {
6551 #[serde(rename = "running")]
6553 Running,
6554 #[serde(rename = "disabled")]
6556 Disabled,
6557 #[serde(rename = "failed")]
6559 Failed,
6560 #[serde(rename = "starting")]
6562 Starting,
6563 #[default]
6565 #[serde(other)]
6566 Unknown,
6567}