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 pub device_managed: bool,
4465 pub fail_closed: bool,
4467 pub managed_keys: Vec<String>,
4469 #[serde(skip_serializing_if = "Option::is_none")]
4471 pub permissions_allow_intersected: Option<bool>,
4472 pub server_managed: bool,
4474 #[serde(skip_serializing_if = "Option::is_none")]
4476 pub settings: Option<serde_json::Value>,
4477 pub source: ManagedSettingsResolvedSource,
4479}
4480
4481#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4490#[serde(rename_all = "camelCase")]
4491pub struct SessionManagedSettingsEnforcedData {
4492 pub action: ManagedSettingsEnforcedAction,
4494 #[serde(skip_serializing_if = "Option::is_none")]
4496 pub escalation: Option<ManagedSettingsEnforcedEscalation>,
4497 pub fail_closed: bool,
4499 pub message: String,
4501 pub setting: String,
4503}
4504
4505#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4507#[serde(rename_all = "camelCase")]
4508pub struct CommandsChangedCommand {
4509 #[serde(skip_serializing_if = "Option::is_none")]
4511 pub description: Option<String>,
4512 pub name: String,
4514}
4515
4516#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4518#[serde(rename_all = "camelCase")]
4519pub struct CommandsChangedData {
4520 pub commands: Vec<CommandsChangedCommand>,
4522}
4523
4524#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4526#[serde(rename_all = "camelCase")]
4527pub struct CapabilitiesChangedUI {
4528 #[serde(skip_serializing_if = "Option::is_none")]
4530 pub canvases: Option<bool>,
4531 #[serde(skip_serializing_if = "Option::is_none")]
4533 pub elicitation: Option<bool>,
4534 #[serde(skip_serializing_if = "Option::is_none")]
4536 pub mcp_apps: Option<bool>,
4537}
4538
4539#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4541#[serde(rename_all = "camelCase")]
4542pub struct CapabilitiesChangedData {
4543 #[serde(skip_serializing_if = "Option::is_none")]
4545 pub ui: Option<CapabilitiesChangedUI>,
4546}
4547
4548#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4550#[serde(rename_all = "camelCase")]
4551pub struct ExitPlanModeRequestedData {
4552 pub actions: Vec<ExitPlanModeAction>,
4554 pub plan_content: String,
4556 pub recommended_action: ExitPlanModeAction,
4558 pub request_id: RequestId,
4560 pub summary: String,
4562}
4563
4564#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4566#[serde(rename_all = "camelCase")]
4567pub struct ExitPlanModeCompletedData {
4568 #[serde(skip_serializing_if = "Option::is_none")]
4570 pub approved: Option<bool>,
4571 #[serde(skip_serializing_if = "Option::is_none")]
4573 pub auto_approve_edits: Option<bool>,
4574 #[serde(skip_serializing_if = "Option::is_none")]
4576 pub feedback: Option<String>,
4577 pub request_id: RequestId,
4579 #[serde(skip_serializing_if = "Option::is_none")]
4581 pub selected_action: Option<ExitPlanModeAction>,
4582}
4583
4584#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4586#[serde(rename_all = "camelCase")]
4587pub struct SessionToolsUpdatedData {
4588 pub model: String,
4590}
4591
4592#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4594#[serde(rename_all = "camelCase")]
4595pub struct SessionBackgroundTasksChangedData {}
4596
4597#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4606#[serde(rename_all = "camelCase")]
4607pub struct FactoryRunUpdatedData {
4608 pub revision: i64,
4610 pub run_id: String,
4611}
4612
4613#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4615#[serde(rename_all = "camelCase")]
4616pub struct SkillsLoadedSkill {
4617 #[serde(skip_serializing_if = "Option::is_none")]
4619 pub argument_hint: Option<String>,
4620 pub description: String,
4622 pub enabled: bool,
4624 pub name: String,
4626 #[serde(skip_serializing_if = "Option::is_none")]
4628 pub path: Option<String>,
4629 pub source: SkillSource,
4631 pub user_invocable: bool,
4633}
4634
4635#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4637#[serde(rename_all = "camelCase")]
4638pub struct SessionSkillsLoadedData {
4639 pub skills: Vec<SkillsLoadedSkill>,
4641}
4642
4643#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4645#[serde(rename_all = "camelCase")]
4646pub struct CustomAgentsUpdatedAgent {
4647 pub description: String,
4649 pub display_name: String,
4651 pub id: String,
4653 #[serde(skip_serializing_if = "Option::is_none")]
4655 pub model: Option<String>,
4656 pub name: String,
4658 pub source: String,
4660 pub tools: Option<Vec<String>>,
4662 pub user_invocable: bool,
4664}
4665
4666#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4668#[serde(rename_all = "camelCase")]
4669pub struct SessionCustomAgentsUpdatedData {
4670 pub agents: Vec<CustomAgentsUpdatedAgent>,
4672 pub errors: Vec<String>,
4674 pub warnings: Vec<String>,
4676}
4677
4678#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4680#[serde(rename_all = "camelCase")]
4681pub struct McpServersLoadedServer {
4682 #[serde(skip_serializing_if = "Option::is_none")]
4684 pub error: Option<String>,
4685 pub name: String,
4687 #[serde(skip_serializing_if = "Option::is_none")]
4689 pub plugin_name: Option<String>,
4690 #[serde(skip_serializing_if = "Option::is_none")]
4692 pub plugin_version: Option<String>,
4693 #[serde(skip_serializing_if = "Option::is_none")]
4695 pub source: Option<McpServerSource>,
4696 pub status: McpServerStatus,
4698 #[serde(skip_serializing_if = "Option::is_none")]
4700 pub transport: Option<McpServerTransport>,
4701}
4702
4703#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4705#[serde(rename_all = "camelCase")]
4706pub struct SessionMcpServersLoadedData {
4707 pub servers: Vec<McpServersLoadedServer>,
4709}
4710
4711#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4713#[serde(rename_all = "camelCase")]
4714pub struct SessionMcpServerStatusChangedData {
4715 #[serde(skip_serializing_if = "Option::is_none")]
4717 pub error: Option<String>,
4718 pub server_name: String,
4720 pub status: McpServerStatus,
4722}
4723
4724#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4726#[serde(rename_all = "camelCase")]
4727pub struct McpToolsListChangedData {
4728 pub server_name: String,
4730}
4731
4732#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4734#[serde(rename_all = "camelCase")]
4735pub struct McpResourcesListChangedData {
4736 pub server_name: String,
4738}
4739
4740#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4742#[serde(rename_all = "camelCase")]
4743pub struct McpPromptsListChangedData {
4744 pub server_name: String,
4746}
4747
4748#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4750#[serde(rename_all = "camelCase")]
4751pub struct ExtensionsLoadedExtension {
4752 pub id: String,
4754 pub name: String,
4756 pub source: ExtensionsLoadedExtensionSource,
4758 pub status: ExtensionsLoadedExtensionStatus,
4760}
4761
4762#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4764#[serde(rename_all = "camelCase")]
4765pub struct SessionExtensionsLoadedData {
4766 pub extensions: Vec<ExtensionsLoadedExtension>,
4768}
4769
4770#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4779#[serde(rename_all = "camelCase")]
4780pub struct SessionCanvasOpenedData {
4781 pub canvas_id: String,
4783 pub extension_id: String,
4785 #[serde(skip_serializing_if = "Option::is_none")]
4787 pub extension_name: Option<String>,
4788 #[serde(skip_serializing_if = "Option::is_none")]
4790 pub icon: Option<String>,
4791 #[serde(skip_serializing_if = "Option::is_none")]
4793 pub input: Option<serde_json::Value>,
4794 pub instance_id: String,
4796 #[serde(skip_serializing_if = "Option::is_none")]
4798 pub status: Option<String>,
4799 #[serde(skip_serializing_if = "Option::is_none")]
4801 pub title: Option<String>,
4802 #[serde(skip_serializing_if = "Option::is_none")]
4804 pub url: Option<String>,
4805}
4806
4807#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4816#[serde(rename_all = "camelCase")]
4817pub struct CanvasRegistryChangedCanvasAction {
4818 #[serde(skip_serializing_if = "Option::is_none")]
4820 pub description: Option<String>,
4821 #[serde(skip_serializing_if = "Option::is_none")]
4823 pub input_schema: Option<serde_json::Value>,
4824 pub name: String,
4826}
4827
4828#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4837#[serde(rename_all = "camelCase")]
4838pub struct CanvasRegistryChangedCanvas {
4839 #[serde(skip_serializing_if = "Option::is_none")]
4841 pub actions: Option<Vec<CanvasRegistryChangedCanvasAction>>,
4842 pub canvas_id: String,
4844 pub description: String,
4846 pub display_name: String,
4848 pub extension_id: String,
4850 #[serde(skip_serializing_if = "Option::is_none")]
4852 pub extension_name: Option<String>,
4853 #[serde(skip_serializing_if = "Option::is_none")]
4855 pub icon: Option<String>,
4856 #[serde(skip_serializing_if = "Option::is_none")]
4858 pub input_schema: Option<serde_json::Value>,
4859}
4860
4861#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4870#[serde(rename_all = "camelCase")]
4871pub struct SessionCanvasRegistryChangedData {
4872 pub canvases: Vec<CanvasRegistryChangedCanvas>,
4874}
4875
4876#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4885#[serde(rename_all = "camelCase")]
4886pub struct SessionCanvasClosedData {
4887 pub canvas_id: String,
4889 pub extension_id: String,
4891 pub instance_id: String,
4893}
4894
4895#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4904#[serde(rename_all = "camelCase")]
4905pub struct SessionCanvasUnavailableData {
4906 pub canvas_id: String,
4908 pub extension_id: String,
4910 pub instance_id: String,
4912}
4913
4914#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4923#[serde(rename_all = "camelCase")]
4924pub struct SessionCanvasRecordedData {
4925 pub canvas_id: String,
4927 pub extension_id: String,
4929 #[serde(skip_serializing_if = "Option::is_none")]
4931 pub input: Option<serde_json::Value>,
4932 pub instance_id: String,
4934 #[serde(skip_serializing_if = "Option::is_none")]
4936 pub title: Option<String>,
4937}
4938
4939#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4948#[serde(rename_all = "camelCase")]
4949pub struct SessionCanvasRemovedData {
4950 pub canvas_id: String,
4952 pub extension_id: String,
4954 pub instance_id: String,
4956}
4957
4958#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4960#[serde(rename_all = "camelCase")]
4961pub struct SessionExtensionsAttachmentsPushedData {
4962 pub attachments: Vec<serde_json::Value>,
4964}
4965
4966#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4968#[serde(rename_all = "camelCase")]
4969pub struct McpAppToolCallCompleteError {
4970 pub message: String,
4972}
4973
4974#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4976#[serde(rename_all = "camelCase")]
4977pub struct McpAppToolCallCompleteToolMetaUI {
4978 #[serde(skip_serializing_if = "Option::is_none")]
4980 pub resource_uri: Option<String>,
4981 #[serde(skip_serializing_if = "Option::is_none")]
4983 pub visibility: Option<Vec<String>>,
4984}
4985
4986#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4988#[serde(rename_all = "camelCase")]
4989pub struct McpAppToolCallCompleteToolMeta {
4990 #[serde(skip_serializing_if = "Option::is_none")]
4992 pub ui: Option<McpAppToolCallCompleteToolMetaUI>,
4993}
4994
4995#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4997#[serde(rename_all = "camelCase")]
4998pub struct McpAppToolCallCompleteData {
4999 #[serde(skip_serializing_if = "Option::is_none")]
5001 pub arguments: Option<HashMap<String, serde_json::Value>>,
5002 pub duration_ms: f64,
5004 #[serde(skip_serializing_if = "Option::is_none")]
5006 pub error: Option<McpAppToolCallCompleteError>,
5007 #[serde(skip_serializing_if = "Option::is_none")]
5009 pub result: Option<HashMap<String, serde_json::Value>>,
5010 pub server_name: String,
5012 pub success: bool,
5014 #[serde(skip_serializing_if = "Option::is_none")]
5016 pub tool_meta: Option<McpAppToolCallCompleteToolMeta>,
5017 pub tool_name: String,
5019}
5020
5021#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5023pub enum WorkingDirectoryContextHostType {
5024 #[serde(rename = "github")]
5026 GitHub,
5027 #[serde(rename = "ado")]
5029 Ado,
5030 #[default]
5032 #[serde(other)]
5033 Unknown,
5034}
5035
5036#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5038pub enum ContextTier {
5039 #[serde(rename = "default")]
5041 Default,
5042 #[serde(rename = "long_context")]
5044 LongContext,
5045 #[default]
5047 #[serde(other)]
5048 Unknown,
5049}
5050
5051#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5053pub enum ReasoningSummary {
5054 #[serde(rename = "none")]
5056 None,
5057 #[serde(rename = "concise")]
5059 Concise,
5060 #[serde(rename = "detailed")]
5062 Detailed,
5063 #[default]
5065 #[serde(other)]
5066 Unknown,
5067}
5068
5069#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5071pub enum Verbosity {
5072 #[serde(rename = "low")]
5074 Low,
5075 #[serde(rename = "medium")]
5077 Medium,
5078 #[serde(rename = "high")]
5080 High,
5081 #[default]
5083 #[serde(other)]
5084 Unknown,
5085}
5086
5087#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5089pub enum ScheduleOrigin {
5090 #[serde(rename = "user")]
5092 User,
5093 #[serde(rename = "model")]
5095 Model,
5096 #[default]
5098 #[serde(other)]
5099 Unknown,
5100}
5101
5102#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5104pub enum AutopilotObjectiveChangedOperation {
5105 #[serde(rename = "create")]
5107 Create,
5108 #[serde(rename = "update")]
5110 Update,
5111 #[serde(rename = "delete")]
5113 Delete,
5114 #[default]
5116 #[serde(other)]
5117 Unknown,
5118}
5119
5120#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5122pub enum AutopilotObjectiveChangedStatus {
5123 #[serde(rename = "active")]
5125 Active,
5126 #[serde(rename = "paused")]
5128 Paused,
5129 #[serde(rename = "cap_reached")]
5131 CapReached,
5132 #[serde(rename = "completed")]
5134 Completed,
5135 #[default]
5137 #[serde(other)]
5138 Unknown,
5139}
5140
5141#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5143pub enum SessionMode {
5144 #[serde(rename = "interactive")]
5146 Interactive,
5147 #[serde(rename = "plan")]
5149 Plan,
5150 #[serde(rename = "autopilot")]
5152 Autopilot,
5153 #[default]
5155 #[serde(other)]
5156 Unknown,
5157}
5158
5159#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5168pub enum PermissionAllowAllMode {
5169 #[serde(rename = "off")]
5171 Off,
5172 #[serde(rename = "on")]
5174 On,
5175 #[serde(rename = "auto")]
5177 Auto,
5178 #[default]
5180 #[serde(other)]
5181 Unknown,
5182}
5183
5184#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5186pub enum PlanChangedOperation {
5187 #[serde(rename = "create")]
5189 Create,
5190 #[serde(rename = "update")]
5192 Update,
5193 #[serde(rename = "delete")]
5195 Delete,
5196 #[default]
5198 #[serde(other)]
5199 Unknown,
5200}
5201
5202#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5204pub enum WorkspaceFileChangedOperation {
5205 #[serde(rename = "create")]
5207 Create,
5208 #[serde(rename = "update")]
5210 Update,
5211 #[default]
5213 #[serde(other)]
5214 Unknown,
5215}
5216
5217#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5219pub enum HandoffSourceType {
5220 #[serde(rename = "remote")]
5222 Remote,
5223 #[serde(rename = "local")]
5225 Local,
5226 #[default]
5228 #[serde(other)]
5229 Unknown,
5230}
5231
5232#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5234pub enum ShutdownType {
5235 #[serde(rename = "routine")]
5237 Routine,
5238 #[serde(rename = "error")]
5240 Error,
5241 #[default]
5243 #[serde(other)]
5244 Unknown,
5245}
5246
5247#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5249pub enum CompactionTrigger {
5250 #[serde(rename = "threshold")]
5252 Threshold,
5253 #[serde(rename = "context_limit_retry")]
5255 ContextLimitRetry,
5256 #[serde(rename = "manual")]
5258 Manual,
5259 #[serde(rename = "memory_pressure")]
5261 MemoryPressure,
5262 #[serde(rename = "model_switch")]
5264 ModelSwitch,
5265 #[default]
5267 #[serde(other)]
5268 Unknown,
5269}
5270
5271#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5273pub enum TaskCompletionOutcome {
5274 #[serde(rename = "completed")]
5276 Completed,
5277 #[serde(rename = "continue")]
5279 Continue,
5280 #[serde(rename = "blocked")]
5282 Blocked,
5283 #[default]
5285 #[serde(other)]
5286 Unknown,
5287}
5288
5289#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5291pub enum UserMessageAgentMode {
5292 #[serde(rename = "interactive")]
5294 Interactive,
5295 #[serde(rename = "plan")]
5297 Plan,
5298 #[serde(rename = "autopilot")]
5300 Autopilot,
5301 #[serde(rename = "shell")]
5303 Shell,
5304 #[default]
5306 #[serde(other)]
5307 Unknown,
5308}
5309
5310#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5312pub enum UserMessageDelivery {
5313 #[serde(rename = "idle")]
5315 Idle,
5316 #[serde(rename = "steering")]
5318 Steering,
5319 #[serde(rename = "queued")]
5321 Queued,
5322 #[default]
5324 #[serde(other)]
5325 Unknown,
5326}
5327
5328#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5330pub enum AssistantMessageToolRequestType {
5331 #[serde(rename = "function")]
5333 Function,
5334 #[serde(rename = "custom")]
5336 Custom,
5337 #[default]
5339 #[serde(other)]
5340 Unknown,
5341}
5342
5343#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5352pub enum CitationProvider {
5353 #[serde(rename = "anthropic")]
5355 Anthropic,
5356 #[serde(rename = "openai")]
5358 Openai,
5359 #[serde(rename = "client")]
5361 Client,
5362 #[default]
5364 #[serde(other)]
5365 Unknown,
5366}
5367
5368#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5370pub enum AssistantUsageApiEndpoint {
5371 #[serde(rename = "/chat/completions")]
5373 ChatCompletions,
5374 #[serde(rename = "/v1/messages")]
5376 V1Messages,
5377 #[serde(rename = "/responses")]
5379 Responses,
5380 #[serde(rename = "ws:/responses")]
5382 WsResponses,
5383 #[default]
5385 #[serde(other)]
5386 Unknown,
5387}
5388
5389#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5391pub enum ModelCallFailureBadRequestKind {
5392 #[serde(rename = "bodyless")]
5394 Bodyless,
5395 #[serde(rename = "structured_error")]
5397 StructuredError,
5398 #[default]
5400 #[serde(other)]
5401 Unknown,
5402}
5403
5404#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5406pub enum ModelCallFailureKind {
5407 #[serde(rename = "api")]
5409 Api,
5410 #[serde(rename = "transport")]
5412 Transport,
5413 #[default]
5415 #[serde(other)]
5416 Unknown,
5417}
5418
5419#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5421pub enum ModelCallFailureSource {
5422 #[serde(rename = "top_level")]
5424 TopLevel,
5425 #[serde(rename = "subagent")]
5427 Subagent,
5428 #[serde(rename = "mcp_sampling")]
5430 McpSampling,
5431 #[default]
5433 #[serde(other)]
5434 Unknown,
5435}
5436
5437#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5439pub enum ModelCallFailureTransport {
5440 #[serde(rename = "http")]
5442 Http,
5443 #[serde(rename = "websocket")]
5445 Websocket,
5446 #[default]
5448 #[serde(other)]
5449 Unknown,
5450}
5451
5452#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5454pub enum AbortReason {
5455 #[serde(rename = "user_initiated")]
5457 UserInitiated,
5458 #[serde(rename = "remote_command")]
5460 RemoteCommand,
5461 #[serde(rename = "user_abort")]
5463 UserAbort,
5464 #[serde(rename = "autopilot_credit_limit")]
5466 AutopilotCreditLimit,
5467 #[default]
5469 #[serde(other)]
5470 Unknown,
5471}
5472
5473#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5475pub enum ToolExecutionStartToolDescriptionMetaUIVisibility {
5476 #[serde(rename = "model")]
5478 Model,
5479 #[serde(rename = "app")]
5481 App,
5482 #[default]
5484 #[serde(other)]
5485 Unknown,
5486}
5487
5488#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5490pub enum ToolExecutionCompleteContentTextType {
5491 #[serde(rename = "text")]
5492 #[default]
5493 Text,
5494}
5495
5496#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5498pub enum ToolExecutionCompleteContentTerminalType {
5499 #[serde(rename = "terminal")]
5500 #[default]
5501 Terminal,
5502}
5503
5504#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5506pub enum ToolExecutionCompleteContentShellExitType {
5507 #[serde(rename = "shell_exit")]
5508 #[default]
5509 ShellExit,
5510}
5511
5512#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5514pub enum ToolExecutionCompleteContentImageType {
5515 #[serde(rename = "image")]
5516 #[default]
5517 Image,
5518}
5519
5520#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5522pub enum ToolExecutionCompleteContentAudioType {
5523 #[serde(rename = "audio")]
5524 #[default]
5525 Audio,
5526}
5527
5528#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5530pub enum ToolExecutionCompleteContentResourceLinkIconTheme {
5531 #[serde(rename = "light")]
5533 Light,
5534 #[serde(rename = "dark")]
5536 Dark,
5537 #[default]
5539 #[serde(other)]
5540 Unknown,
5541}
5542
5543#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5545pub enum ToolExecutionCompleteContentResourceLinkType {
5546 #[serde(rename = "resource_link")]
5547 #[default]
5548 ResourceLink,
5549}
5550
5551#[derive(Debug, Clone, Serialize, Deserialize)]
5553#[serde(untagged)]
5554pub enum ToolExecutionCompleteContentResourceDetails {
5555 EmbeddedTextResourceContents(EmbeddedTextResourceContents),
5556 EmbeddedBlobResourceContents(EmbeddedBlobResourceContents),
5557}
5558
5559#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5561pub enum ToolExecutionCompleteContentResourceType {
5562 #[serde(rename = "resource")]
5563 #[default]
5564 Resource,
5565}
5566
5567#[derive(Debug, Clone, Serialize, Deserialize)]
5569#[serde(untagged)]
5570pub enum ToolExecutionCompleteContent {
5571 Text(ToolExecutionCompleteContentText),
5572 Terminal(ToolExecutionCompleteContentTerminal),
5573 ShellExit(ToolExecutionCompleteContentShellExit),
5574 Image(ToolExecutionCompleteContentImage),
5575 Audio(ToolExecutionCompleteContentAudio),
5576 ResourceLink(ToolExecutionCompleteContentResourceLink),
5577 Resource(ToolExecutionCompleteContentResource),
5578}
5579
5580#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5582pub enum ToolExecutionCompleteToolDescriptionMetaUIVisibility {
5583 #[serde(rename = "model")]
5585 Model,
5586 #[serde(rename = "app")]
5588 App,
5589 #[default]
5591 #[serde(other)]
5592 Unknown,
5593}
5594
5595#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5597pub enum SkillInvokedTrigger {
5598 #[serde(rename = "user-invoked")]
5600 UserInvoked,
5601 #[serde(rename = "agent-invoked")]
5603 AgentInvoked,
5604 #[serde(rename = "context-load")]
5606 ContextLoad,
5607 #[default]
5609 #[serde(other)]
5610 Unknown,
5611}
5612
5613#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5615pub enum BinaryAssetType {
5616 #[serde(rename = "image")]
5618 Image,
5619 #[serde(rename = "resource")]
5621 Resource,
5622 #[default]
5624 #[serde(other)]
5625 Unknown,
5626}
5627
5628#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5630pub enum SystemMessageRole {
5631 #[serde(rename = "system")]
5633 System,
5634 #[serde(rename = "developer")]
5636 Developer,
5637 #[default]
5639 #[serde(other)]
5640 Unknown,
5641}
5642
5643#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5645pub enum PermissionRequestShellKind {
5646 #[serde(rename = "shell")]
5647 #[default]
5648 Shell,
5649}
5650
5651#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5653pub enum PermissionRequestWriteKind {
5654 #[serde(rename = "write")]
5655 #[default]
5656 Write,
5657}
5658
5659#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5661pub enum PermissionRequestReadKind {
5662 #[serde(rename = "read")]
5663 #[default]
5664 Read,
5665}
5666
5667#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5669pub enum PermissionRequestMcpKind {
5670 #[serde(rename = "mcp")]
5671 #[default]
5672 Mcp,
5673}
5674
5675#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5677pub enum PermissionRequestUrlKind {
5678 #[serde(rename = "url")]
5679 #[default]
5680 Url,
5681}
5682
5683#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5685pub enum PermissionRequestMemoryAction {
5686 #[serde(rename = "store")]
5688 Store,
5689 #[serde(rename = "vote")]
5691 Vote,
5692 #[default]
5694 #[serde(other)]
5695 Unknown,
5696}
5697
5698#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5700pub enum PermissionRequestMemoryDirection {
5701 #[serde(rename = "upvote")]
5703 Upvote,
5704 #[serde(rename = "downvote")]
5706 Downvote,
5707 #[default]
5709 #[serde(other)]
5710 Unknown,
5711}
5712
5713#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5715pub enum PermissionRequestMemoryKind {
5716 #[serde(rename = "memory")]
5717 #[default]
5718 Memory,
5719}
5720
5721#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5723pub enum PermissionRequestCustomToolKind {
5724 #[serde(rename = "custom-tool")]
5725 #[default]
5726 CustomTool,
5727}
5728
5729#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5731pub enum PermissionRequestHookKind {
5732 #[serde(rename = "hook")]
5733 #[default]
5734 Hook,
5735}
5736
5737#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5739pub enum PermissionRequestExtensionManagementKind {
5740 #[serde(rename = "extension-management")]
5741 #[default]
5742 ExtensionManagement,
5743}
5744
5745#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5747pub enum PermissionRequestFactoryKind {
5748 #[serde(rename = "factory")]
5749 #[default]
5750 Factory,
5751}
5752
5753#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5755pub enum FactoryPermissionOperation {
5756 #[serde(rename = "run")]
5758 Run,
5759 #[serde(rename = "author")]
5761 Author,
5762 #[default]
5764 #[serde(other)]
5765 Unknown,
5766}
5767
5768#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5770pub enum PermissionRequestExtensionPermissionAccessKind {
5771 #[serde(rename = "extension-permission-access")]
5772 #[default]
5773 ExtensionPermissionAccess,
5774}
5775
5776#[derive(Debug, Clone, Serialize, Deserialize)]
5778#[serde(untagged)]
5779pub enum PermissionRequest {
5780 Shell(PermissionRequestShell),
5781 Write(PermissionRequestWrite),
5782 Read(PermissionRequestRead),
5783 Mcp(PermissionRequestMcp),
5784 Url(PermissionRequestUrl),
5785 Memory(PermissionRequestMemory),
5786 CustomTool(PermissionRequestCustomTool),
5787 Hook(PermissionRequestHook),
5788 ExtensionManagement(PermissionRequestExtensionManagement),
5789 Factory(PermissionRequestFactory),
5790 ExtensionPermissionAccess(PermissionRequestExtensionPermissionAccess),
5791}
5792
5793#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5802pub enum AutoApprovalJudgeFailureReason {
5803 #[serde(rename = "timeout")]
5805 Timeout,
5806 #[serde(rename = "abort")]
5808 Abort,
5809 #[serde(rename = "empty_response")]
5811 EmptyResponse,
5812 #[serde(rename = "model_error")]
5814 ModelError,
5815 #[serde(rename = "parse_error")]
5817 ParseError,
5818 #[default]
5820 #[serde(other)]
5821 Unknown,
5822}
5823
5824#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5833pub enum AutoApprovalRecommendation {
5834 #[serde(rename = "approve")]
5836 Approve,
5837 #[serde(rename = "requireApproval")]
5839 RequireApproval,
5840 #[serde(rename = "excluded")]
5842 Excluded,
5843 #[serde(rename = "error")]
5845 Error,
5846 #[default]
5848 #[serde(other)]
5849 Unknown,
5850}
5851
5852#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5854pub enum PermissionPromptRequestCommandsKind {
5855 #[serde(rename = "commands")]
5856 #[default]
5857 Commands,
5858}
5859
5860#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5862pub enum PermissionPromptRequestWriteKind {
5863 #[serde(rename = "write")]
5864 #[default]
5865 Write,
5866}
5867
5868#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5870pub enum PermissionPromptRequestReadKind {
5871 #[serde(rename = "read")]
5872 #[default]
5873 Read,
5874}
5875
5876#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5878pub enum PermissionPromptRequestMcpKind {
5879 #[serde(rename = "mcp")]
5880 #[default]
5881 Mcp,
5882}
5883
5884#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5886pub enum PermissionPromptRequestUrlKind {
5887 #[serde(rename = "url")]
5888 #[default]
5889 Url,
5890}
5891
5892#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5894pub enum PermissionPromptRequestMemoryKind {
5895 #[serde(rename = "memory")]
5896 #[default]
5897 Memory,
5898}
5899
5900#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5902pub enum PermissionPromptRequestCustomToolKind {
5903 #[serde(rename = "custom-tool")]
5904 #[default]
5905 CustomTool,
5906}
5907
5908#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5910pub enum PermissionPromptRequestPathAccessKind {
5911 #[serde(rename = "read")]
5913 Read,
5914 #[serde(rename = "shell")]
5916 Shell,
5917 #[serde(rename = "write")]
5919 Write,
5920 #[default]
5922 #[serde(other)]
5923 Unknown,
5924}
5925
5926#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5928pub enum PermissionPromptRequestPathKind {
5929 #[serde(rename = "path")]
5930 #[default]
5931 Path,
5932}
5933
5934#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5936pub enum PermissionPromptRequestHookKind {
5937 #[serde(rename = "hook")]
5938 #[default]
5939 Hook,
5940}
5941
5942#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5944pub enum PermissionPromptRequestExtensionManagementKind {
5945 #[serde(rename = "extension-management")]
5946 #[default]
5947 ExtensionManagement,
5948}
5949
5950#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5952pub enum PermissionPromptRequestFactoryKind {
5953 #[serde(rename = "factory")]
5954 #[default]
5955 Factory,
5956}
5957
5958#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5960pub enum PermissionPromptRequestExtensionPermissionAccessKind {
5961 #[serde(rename = "extension-permission-access")]
5962 #[default]
5963 ExtensionPermissionAccess,
5964}
5965
5966#[derive(Debug, Clone, Serialize, Deserialize)]
5968#[serde(untagged)]
5969pub enum PermissionPromptRequest {
5970 Commands(PermissionPromptRequestCommands),
5971 Write(PermissionPromptRequestWrite),
5972 Read(PermissionPromptRequestRead),
5973 Mcp(PermissionPromptRequestMcp),
5974 Url(PermissionPromptRequestUrl),
5975 Memory(PermissionPromptRequestMemory),
5976 CustomTool(PermissionPromptRequestCustomTool),
5977 Path(PermissionPromptRequestPath),
5978 Hook(PermissionPromptRequestHook),
5979 ExtensionManagement(PermissionPromptRequestExtensionManagement),
5980 Factory(PermissionPromptRequestFactory),
5981 ExtensionPermissionAccess(PermissionPromptRequestExtensionPermissionAccess),
5982}
5983
5984#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5986pub enum PermissionApprovedKind {
5987 #[serde(rename = "approved")]
5988 #[default]
5989 Approved,
5990}
5991
5992#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5994pub enum UserToolSessionApprovalCommandsKind {
5995 #[serde(rename = "commands")]
5996 #[default]
5997 Commands,
5998}
5999
6000#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6002pub enum UserToolSessionApprovalReadKind {
6003 #[serde(rename = "read")]
6004 #[default]
6005 Read,
6006}
6007
6008#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6010pub enum UserToolSessionApprovalWriteKind {
6011 #[serde(rename = "write")]
6012 #[default]
6013 Write,
6014}
6015
6016#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6018pub enum UserToolSessionApprovalMcpKind {
6019 #[serde(rename = "mcp")]
6020 #[default]
6021 Mcp,
6022}
6023
6024#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6026pub enum UserToolSessionApprovalMemoryKind {
6027 #[serde(rename = "memory")]
6028 #[default]
6029 Memory,
6030}
6031
6032#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6034pub enum UserToolSessionApprovalCustomToolKind {
6035 #[serde(rename = "custom-tool")]
6036 #[default]
6037 CustomTool,
6038}
6039
6040#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6042pub enum UserToolSessionApprovalExtensionManagementKind {
6043 #[serde(rename = "extension-management")]
6044 #[default]
6045 ExtensionManagement,
6046}
6047
6048#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6050pub enum UserToolSessionApprovalFactoryKind {
6051 #[serde(rename = "factory")]
6052 #[default]
6053 Factory,
6054}
6055
6056#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6058pub enum UserToolSessionApprovalExtensionPermissionAccessKind {
6059 #[serde(rename = "extension-permission-access")]
6060 #[default]
6061 ExtensionPermissionAccess,
6062}
6063
6064#[derive(Debug, Clone, Serialize, Deserialize)]
6066#[serde(untagged)]
6067pub enum UserToolSessionApproval {
6068 Commands(UserToolSessionApprovalCommands),
6069 Read(UserToolSessionApprovalRead),
6070 Write(UserToolSessionApprovalWrite),
6071 Mcp(UserToolSessionApprovalMcp),
6072 Memory(UserToolSessionApprovalMemory),
6073 CustomTool(UserToolSessionApprovalCustomTool),
6074 ExtensionManagement(UserToolSessionApprovalExtensionManagement),
6075 Factory(UserToolSessionApprovalFactory),
6076 ExtensionPermissionAccess(UserToolSessionApprovalExtensionPermissionAccess),
6077}
6078
6079#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6081pub enum PermissionApprovedForSessionKind {
6082 #[serde(rename = "approved-for-session")]
6083 #[default]
6084 ApprovedForSession,
6085}
6086
6087#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6089pub enum PermissionApprovedForLocationKind {
6090 #[serde(rename = "approved-for-location")]
6091 #[default]
6092 ApprovedForLocation,
6093}
6094
6095#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6097pub enum PermissionCancelledKind {
6098 #[serde(rename = "cancelled")]
6099 #[default]
6100 Cancelled,
6101}
6102
6103#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6105pub enum PermissionDeniedByRulesKind {
6106 #[serde(rename = "denied-by-rules")]
6107 #[default]
6108 DeniedByRules,
6109}
6110
6111#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6113pub enum PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUserKind {
6114 #[serde(rename = "denied-no-approval-rule-and-could-not-request-from-user")]
6115 #[default]
6116 DeniedNoApprovalRuleAndCouldNotRequestFromUser,
6117}
6118
6119#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6121pub enum PermissionDeniedInteractivelyByUserKind {
6122 #[serde(rename = "denied-interactively-by-user")]
6123 #[default]
6124 DeniedInteractivelyByUser,
6125}
6126
6127#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6129pub enum PermissionDeniedByContentExclusionPolicyKind {
6130 #[serde(rename = "denied-by-content-exclusion-policy")]
6131 #[default]
6132 DeniedByContentExclusionPolicy,
6133}
6134
6135#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6137pub enum PermissionDeniedByPermissionRequestHookKind {
6138 #[serde(rename = "denied-by-permission-request-hook")]
6139 #[default]
6140 DeniedByPermissionRequestHook,
6141}
6142
6143#[derive(Debug, Clone, Serialize, Deserialize)]
6145#[serde(untagged)]
6146pub enum PermissionResult {
6147 Approved(PermissionApproved),
6148 ApprovedForSession(PermissionApprovedForSession),
6149 ApprovedForLocation(PermissionApprovedForLocation),
6150 Cancelled(PermissionCancelled),
6151 DeniedByRules(PermissionDeniedByRules),
6152 DeniedNoApprovalRuleAndCouldNotRequestFromUser(
6153 PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser,
6154 ),
6155 DeniedInteractivelyByUser(PermissionDeniedInteractivelyByUser),
6156 DeniedByContentExclusionPolicy(PermissionDeniedByContentExclusionPolicy),
6157 DeniedByPermissionRequestHook(PermissionDeniedByPermissionRequestHook),
6158}
6159
6160#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6162pub enum ElicitationRequestedMode {
6163 #[serde(rename = "form")]
6165 Form,
6166 #[serde(rename = "url")]
6168 Url,
6169 #[default]
6171 #[serde(other)]
6172 Unknown,
6173}
6174
6175#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6177pub enum ElicitationRequestedSchemaType {
6178 #[serde(rename = "object")]
6179 #[default]
6180 Object,
6181}
6182
6183#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6185pub enum ElicitationCompletedAction {
6186 #[serde(rename = "accept")]
6188 Accept,
6189 #[serde(rename = "decline")]
6191 Decline,
6192 #[serde(rename = "cancel")]
6194 Cancel,
6195 #[default]
6197 #[serde(other)]
6198 Unknown,
6199}
6200
6201#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6203pub enum McpOauthRequestReason {
6204 #[serde(rename = "initial")]
6206 Initial,
6207 #[serde(rename = "refresh")]
6209 Refresh,
6210 #[serde(rename = "reauth")]
6212 Reauth,
6213 #[serde(rename = "upscope")]
6215 Upscope,
6216 #[default]
6218 #[serde(other)]
6219 Unknown,
6220}
6221
6222#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6224pub enum McpOauthRequiredStaticClientConfigGrantType {
6225 #[serde(rename = "client_credentials")]
6226 #[default]
6227 ClientCredentials,
6228}
6229
6230#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6232pub enum McpOauthCompletionOutcome {
6233 #[serde(rename = "token")]
6235 Token,
6236 #[serde(rename = "cancelled")]
6238 Cancelled,
6239 #[default]
6241 #[serde(other)]
6242 Unknown,
6243}
6244
6245#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6247pub enum McpHeadersRefreshRequiredReason {
6248 #[serde(rename = "startup")]
6250 Startup,
6251 #[serde(rename = "ttl-expired")]
6253 TtlExpired,
6254 #[serde(rename = "auth-failed")]
6256 AuthFailed,
6257 #[default]
6259 #[serde(other)]
6260 Unknown,
6261}
6262
6263#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6265pub enum McpHeadersRefreshCompletedOutcome {
6266 #[serde(rename = "headers")]
6268 Headers,
6269 #[serde(rename = "none")]
6271 None,
6272 #[serde(rename = "timeout")]
6274 Timeout,
6275 #[default]
6277 #[serde(other)]
6278 Unknown,
6279}
6280
6281#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6283pub enum AutoModeSwitchResponse {
6284 #[serde(rename = "yes")]
6286 Yes,
6287 #[serde(rename = "yes_always")]
6289 YesAlways,
6290 #[serde(rename = "no")]
6292 No,
6293 #[default]
6295 #[serde(other)]
6296 Unknown,
6297}
6298
6299#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6301pub enum SessionLimitsExhaustedResponseAction {
6302 #[serde(rename = "add")]
6304 Add,
6305 #[serde(rename = "set")]
6307 Set,
6308 #[serde(rename = "unset")]
6310 Unset,
6311 #[serde(rename = "cancel")]
6313 Cancel,
6314 #[default]
6316 #[serde(other)]
6317 Unknown,
6318}
6319
6320#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6322pub enum AutoModeResolvedReasoningBucket {
6323 #[serde(rename = "low")]
6325 Low,
6326 #[serde(rename = "medium")]
6328 Medium,
6329 #[serde(rename = "high")]
6331 High,
6332 #[default]
6334 #[serde(other)]
6335 Unknown,
6336}
6337
6338#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6340pub enum ManagedSettingsResolvedSource {
6341 #[serde(rename = "server")]
6343 Server,
6344 #[serde(rename = "device")]
6346 Device,
6347 #[serde(rename = "none")]
6349 None,
6350 #[default]
6352 #[serde(other)]
6353 Unknown,
6354}
6355
6356#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6358pub enum ManagedSettingsEnforcedAction {
6359 #[serde(rename = "bypass_permissions_blocked")]
6361 BypassPermissionsBlocked,
6362 #[default]
6364 #[serde(other)]
6365 Unknown,
6366}
6367
6368#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6370pub enum ManagedSettingsEnforcedEscalation {
6371 #[serde(rename = "allow_all")]
6373 AllowAll,
6374 #[serde(rename = "approve_all")]
6376 ApproveAll,
6377 #[serde(rename = "auto_approval")]
6379 AutoApproval,
6380 #[serde(rename = "unrestricted_paths")]
6382 UnrestrictedPaths,
6383 #[serde(rename = "unrestricted_urls")]
6385 UnrestrictedUrls,
6386 #[default]
6388 #[serde(other)]
6389 Unknown,
6390}
6391
6392#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6394pub enum ExitPlanModeAction {
6395 #[serde(rename = "exit_only")]
6397 ExitOnly,
6398 #[serde(rename = "interactive")]
6400 Interactive,
6401 #[serde(rename = "autopilot")]
6403 Autopilot,
6404 #[serde(rename = "autopilot_fleet")]
6406 AutopilotFleet,
6407 #[default]
6409 #[serde(other)]
6410 Unknown,
6411}
6412
6413#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6415pub enum SkillSource {
6416 #[serde(rename = "project")]
6418 Project,
6419 #[serde(rename = "inherited")]
6421 Inherited,
6422 #[serde(rename = "personal-copilot")]
6424 PersonalCopilot,
6425 #[serde(rename = "personal-agents")]
6427 PersonalAgents,
6428 #[serde(rename = "plugin")]
6430 Plugin,
6431 #[serde(rename = "custom")]
6433 Custom,
6434 #[serde(rename = "builtin")]
6436 Builtin,
6437 #[default]
6439 #[serde(other)]
6440 Unknown,
6441}
6442
6443#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6445pub enum McpServerSource {
6446 #[serde(rename = "user")]
6448 User,
6449 #[serde(rename = "workspace")]
6451 Workspace,
6452 #[serde(rename = "plugin")]
6454 Plugin,
6455 #[serde(rename = "builtin")]
6457 Builtin,
6458 #[default]
6460 #[serde(other)]
6461 Unknown,
6462}
6463
6464#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6466pub enum McpServerStatus {
6467 #[serde(rename = "connected")]
6469 Connected,
6470 #[serde(rename = "failed")]
6472 Failed,
6473 #[serde(rename = "needs-auth")]
6475 NeedsAuth,
6476 #[serde(rename = "pending")]
6478 Pending,
6479 #[serde(rename = "disabled")]
6481 Disabled,
6482 #[serde(rename = "stopped")]
6484 Stopped,
6485 #[serde(rename = "not_configured")]
6487 NotConfigured,
6488 #[default]
6490 #[serde(other)]
6491 Unknown,
6492}
6493
6494#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6496pub enum McpServerTransport {
6497 #[serde(rename = "stdio")]
6499 Stdio,
6500 #[serde(rename = "http")]
6502 Http,
6503 #[serde(rename = "sse")]
6505 Sse,
6506 #[serde(rename = "memory")]
6508 Memory,
6509 #[default]
6511 #[serde(other)]
6512 Unknown,
6513}
6514
6515#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6517pub enum ExtensionsLoadedExtensionSource {
6518 #[serde(rename = "project")]
6520 Project,
6521 #[serde(rename = "user")]
6523 User,
6524 #[serde(rename = "plugin")]
6526 Plugin,
6527 #[serde(rename = "session")]
6529 Session,
6530 #[default]
6532 #[serde(other)]
6533 Unknown,
6534}
6535
6536#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6538pub enum ExtensionsLoadedExtensionStatus {
6539 #[serde(rename = "running")]
6541 Running,
6542 #[serde(rename = "disabled")]
6544 Disabled,
6545 #[serde(rename = "failed")]
6547 Failed,
6548 #[serde(rename = "starting")]
6550 Starting,
6551 #[default]
6553 #[serde(other)]
6554 Unknown,
6555}