1#![allow(deprecated)]
4
5use std::collections::HashMap;
6
7use serde::{Deserialize, Serialize};
8
9use crate::types::{RequestId, SessionId};
10
11#[derive(Debug, Clone, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
13pub enum SessionEventType {
14 #[serde(rename = "session.start")]
15 SessionStart,
16 #[serde(rename = "session.resume")]
17 SessionResume,
18 #[serde(rename = "session.remote_steerable_changed")]
19 SessionRemoteSteerableChanged,
20 #[serde(rename = "session.error")]
21 SessionError,
22 #[serde(rename = "session.idle")]
23 SessionIdle,
24 #[serde(rename = "session.title_changed")]
25 SessionTitleChanged,
26 #[serde(rename = "session.schedule_created")]
27 SessionScheduleCreated,
28 #[serde(rename = "session.schedule_cancelled")]
29 SessionScheduleCancelled,
30 #[serde(rename = "session.schedule_rearmed")]
31 SessionScheduleRearmed,
32 #[serde(rename = "session.autopilot_objective_changed")]
33 SessionAutopilotObjectiveChanged,
34 #[serde(rename = "session.info")]
35 SessionInfo,
36 #[serde(rename = "session.warning")]
37 SessionWarning,
38 #[serde(rename = "session.model_change")]
39 SessionModelChange,
40 #[serde(rename = "session.mode_changed")]
41 SessionModeChanged,
42 #[serde(rename = "session.session_limits_changed")]
43 SessionSessionLimitsChanged,
44 #[serde(rename = "session.permissions_changed")]
45 SessionPermissionsChanged,
46 #[serde(rename = "session.plan_changed")]
47 SessionPlanChanged,
48 #[serde(rename = "session.todos_changed")]
49 SessionTodosChanged,
50 #[serde(rename = "session.workspace_file_changed")]
51 SessionWorkspaceFileChanged,
52 #[serde(rename = "session.handoff")]
53 SessionHandoff,
54 #[serde(rename = "session.truncation")]
55 SessionTruncation,
56 #[serde(rename = "session.snapshot_rewind")]
57 SessionSnapshotRewind,
58 #[serde(rename = "session.shutdown")]
59 SessionShutdown,
60 #[serde(rename = "session.usage_checkpoint")]
61 SessionUsageCheckpoint,
62 #[serde(rename = "session.context_changed")]
63 SessionContextChanged,
64 #[serde(rename = "session.usage_info")]
65 SessionUsageInfo,
66 #[serde(rename = "session.compaction_start")]
67 SessionCompactionStart,
68 #[serde(rename = "session.compaction_complete")]
69 SessionCompactionComplete,
70 #[serde(rename = "session.task_complete")]
71 SessionTaskComplete,
72 #[serde(rename = "user.message")]
73 UserMessage,
74 #[serde(rename = "pending_messages.modified")]
75 PendingMessagesModified,
76 #[serde(rename = "assistant.turn_start")]
77 AssistantTurnStart,
78 #[serde(rename = "assistant.intent")]
79 AssistantIntent,
80 #[serde(rename = "assistant.server_tool_progress")]
81 AssistantServerToolProgress,
82 #[serde(rename = "assistant.reasoning")]
83 AssistantReasoning,
84 #[serde(rename = "assistant.reasoning_delta")]
85 AssistantReasoningDelta,
86 #[serde(rename = "assistant.tool_call_delta")]
87 AssistantToolCallDelta,
88 #[serde(rename = "assistant.streaming_delta")]
89 AssistantStreamingDelta,
90 #[serde(rename = "assistant.message")]
91 AssistantMessage,
92 #[serde(rename = "assistant.message_start")]
93 AssistantMessageStart,
94 #[serde(rename = "assistant.message_delta")]
95 AssistantMessageDelta,
96 #[serde(rename = "assistant.turn_end")]
97 AssistantTurnEnd,
98 #[serde(rename = "assistant.idle")]
99 AssistantIdle,
100 #[serde(rename = "assistant.usage")]
101 AssistantUsage,
102 #[serde(rename = "model.call_failure")]
103 ModelCallFailure,
104 #[serde(rename = "abort")]
105 Abort,
106 #[serde(rename = "tool.user_requested")]
107 ToolUserRequested,
108 #[serde(rename = "tool.execution_start")]
109 ToolExecutionStart,
110 #[serde(rename = "tool.execution_partial_result")]
111 ToolExecutionPartialResult,
112 #[serde(rename = "tool.execution_progress")]
113 ToolExecutionProgress,
114 #[serde(rename = "tool.execution_complete")]
115 ToolExecutionComplete,
116 #[serde(rename = "skill.invoked")]
117 SkillInvoked,
118 #[serde(rename = "subagent.started")]
119 SubagentStarted,
120 #[serde(rename = "subagent.completed")]
121 SubagentCompleted,
122 #[serde(rename = "subagent.failed")]
123 SubagentFailed,
124 #[serde(rename = "subagent.selected")]
125 SubagentSelected,
126 #[serde(rename = "subagent.deselected")]
127 SubagentDeselected,
128 #[serde(rename = "hook.start")]
129 HookStart,
130 #[serde(rename = "hook.end")]
131 HookEnd,
132 #[serde(rename = "hook.progress")]
133 HookProgress,
134 #[serde(rename = "session.binary_asset")]
142 SessionBinaryAsset,
143 #[serde(rename = "system.message")]
144 SystemMessage,
145 #[serde(rename = "system.notification")]
146 SystemNotification,
147 #[serde(rename = "permission.requested")]
148 PermissionRequested,
149 #[serde(rename = "permission.completed")]
150 PermissionCompleted,
151 #[serde(rename = "user_input.requested")]
152 UserInputRequested,
153 #[serde(rename = "user_input.completed")]
154 UserInputCompleted,
155 #[serde(rename = "elicitation.requested")]
156 ElicitationRequested,
157 #[serde(rename = "elicitation.completed")]
158 ElicitationCompleted,
159 #[serde(rename = "sampling.requested")]
160 SamplingRequested,
161 #[serde(rename = "sampling.completed")]
162 SamplingCompleted,
163 #[serde(rename = "mcp.oauth_required")]
164 McpOauthRequired,
165 #[serde(rename = "mcp.oauth_completed")]
166 McpOauthCompleted,
167 #[serde(rename = "mcp.headers_refresh_required")]
168 McpHeadersRefreshRequired,
169 #[serde(rename = "mcp.headers_refresh_completed")]
170 McpHeadersRefreshCompleted,
171 #[serde(rename = "session.custom_notification")]
172 SessionCustomNotification,
173 #[serde(rename = "external_tool.requested")]
174 ExternalToolRequested,
175 #[serde(rename = "external_tool.completed")]
176 ExternalToolCompleted,
177 #[serde(rename = "command.queued")]
178 CommandQueued,
179 #[serde(rename = "command.execute")]
180 CommandExecute,
181 #[serde(rename = "command.completed")]
182 CommandCompleted,
183 #[serde(rename = "auto_mode_switch.requested")]
184 AutoModeSwitchRequested,
185 #[serde(rename = "auto_mode_switch.completed")]
186 AutoModeSwitchCompleted,
187 #[serde(rename = "session_limits_exhausted.requested")]
188 SessionLimitsExhaustedRequested,
189 #[serde(rename = "session_limits_exhausted.completed")]
190 SessionLimitsExhaustedCompleted,
191 #[serde(rename = "session.auto_mode_resolved")]
199 SessionAutoModeResolved,
200 #[serde(rename = "session.managed_settings_resolved")]
208 SessionManagedSettingsResolved,
209 #[serde(rename = "commands.changed")]
210 CommandsChanged,
211 #[serde(rename = "capabilities.changed")]
212 CapabilitiesChanged,
213 #[serde(rename = "exit_plan_mode.requested")]
214 ExitPlanModeRequested,
215 #[serde(rename = "exit_plan_mode.completed")]
216 ExitPlanModeCompleted,
217 #[serde(rename = "session.tools_updated")]
218 SessionToolsUpdated,
219 #[serde(rename = "session.background_tasks_changed")]
220 SessionBackgroundTasksChanged,
221 #[serde(rename = "session.skills_loaded")]
222 SessionSkillsLoaded,
223 #[serde(rename = "session.custom_agents_updated")]
224 SessionCustomAgentsUpdated,
225 #[serde(rename = "session.mcp_servers_loaded")]
226 SessionMcpServersLoaded,
227 #[serde(rename = "session.mcp_server_status_changed")]
228 SessionMcpServerStatusChanged,
229 #[serde(rename = "mcp.tools.list_changed")]
230 McpToolsListChanged,
231 #[serde(rename = "mcp.resources.list_changed")]
232 McpResourcesListChanged,
233 #[serde(rename = "mcp.prompts.list_changed")]
234 McpPromptsListChanged,
235 #[serde(rename = "session.extensions_loaded")]
236 SessionExtensionsLoaded,
237 #[serde(rename = "session.canvas.opened")]
245 SessionCanvasOpened,
246 #[serde(rename = "session.canvas.registry_changed")]
254 SessionCanvasRegistryChanged,
255 #[serde(rename = "session.canvas.closed")]
263 SessionCanvasClosed,
264 #[serde(rename = "session.canvas.unavailable")]
272 SessionCanvasUnavailable,
273 #[serde(rename = "session.canvas.recorded")]
281 SessionCanvasRecorded,
282 #[serde(rename = "session.canvas.removed")]
290 SessionCanvasRemoved,
291 #[serde(rename = "session.extensions.attachments_pushed")]
292 SessionExtensionsAttachmentsPushed,
293 #[serde(rename = "mcp_app.tool_call_complete")]
294 McpAppToolCallComplete,
295 #[default]
297 #[serde(other)]
298 Unknown,
299}
300
301#[derive(Debug, Clone, Serialize, Deserialize)]
305#[serde(tag = "type", content = "data")]
306pub enum SessionEventData {
307 #[serde(rename = "session.start")]
308 SessionStart(SessionStartData),
309 #[serde(rename = "session.resume")]
310 SessionResume(SessionResumeData),
311 #[serde(rename = "session.remote_steerable_changed")]
312 SessionRemoteSteerableChanged(SessionRemoteSteerableChangedData),
313 #[serde(rename = "session.error")]
314 SessionError(SessionErrorData),
315 #[serde(rename = "session.idle")]
316 SessionIdle(SessionIdleData),
317 #[serde(rename = "session.title_changed")]
318 SessionTitleChanged(SessionTitleChangedData),
319 #[serde(rename = "session.schedule_created")]
320 SessionScheduleCreated(SessionScheduleCreatedData),
321 #[serde(rename = "session.schedule_cancelled")]
322 SessionScheduleCancelled(SessionScheduleCancelledData),
323 #[serde(rename = "session.schedule_rearmed")]
324 SessionScheduleRearmed(SessionScheduleRearmedData),
325 #[serde(rename = "session.autopilot_objective_changed")]
326 SessionAutopilotObjectiveChanged(SessionAutopilotObjectiveChangedData),
327 #[serde(rename = "session.info")]
328 SessionInfo(SessionInfoData),
329 #[serde(rename = "session.warning")]
330 SessionWarning(SessionWarningData),
331 #[serde(rename = "session.model_change")]
332 SessionModelChange(SessionModelChangeData),
333 #[serde(rename = "session.mode_changed")]
334 SessionModeChanged(SessionModeChangedData),
335 #[serde(rename = "session.session_limits_changed")]
336 SessionSessionLimitsChanged(SessionSessionLimitsChangedData),
337 #[serde(rename = "session.permissions_changed")]
338 SessionPermissionsChanged(SessionPermissionsChangedData),
339 #[serde(rename = "session.plan_changed")]
340 SessionPlanChanged(SessionPlanChangedData),
341 #[serde(rename = "session.todos_changed")]
342 SessionTodosChanged(SessionTodosChangedData),
343 #[serde(rename = "session.workspace_file_changed")]
344 SessionWorkspaceFileChanged(SessionWorkspaceFileChangedData),
345 #[serde(rename = "session.handoff")]
346 SessionHandoff(SessionHandoffData),
347 #[serde(rename = "session.truncation")]
348 SessionTruncation(SessionTruncationData),
349 #[serde(rename = "session.snapshot_rewind")]
350 SessionSnapshotRewind(SessionSnapshotRewindData),
351 #[serde(rename = "session.shutdown")]
352 SessionShutdown(SessionShutdownData),
353 #[serde(rename = "session.usage_checkpoint")]
354 SessionUsageCheckpoint(SessionUsageCheckpointData),
355 #[serde(rename = "session.context_changed")]
356 SessionContextChanged(SessionContextChangedData),
357 #[serde(rename = "session.usage_info")]
358 SessionUsageInfo(SessionUsageInfoData),
359 #[serde(rename = "session.compaction_start")]
360 SessionCompactionStart(SessionCompactionStartData),
361 #[serde(rename = "session.compaction_complete")]
362 SessionCompactionComplete(SessionCompactionCompleteData),
363 #[serde(rename = "session.task_complete")]
364 SessionTaskComplete(SessionTaskCompleteData),
365 #[serde(rename = "user.message")]
366 UserMessage(UserMessageData),
367 #[serde(rename = "pending_messages.modified")]
368 PendingMessagesModified(PendingMessagesModifiedData),
369 #[serde(rename = "assistant.turn_start")]
370 AssistantTurnStart(AssistantTurnStartData),
371 #[serde(rename = "assistant.intent")]
372 AssistantIntent(AssistantIntentData),
373 #[serde(rename = "assistant.server_tool_progress")]
374 AssistantServerToolProgress(AssistantServerToolProgressData),
375 #[serde(rename = "assistant.reasoning")]
376 AssistantReasoning(AssistantReasoningData),
377 #[serde(rename = "assistant.reasoning_delta")]
378 AssistantReasoningDelta(AssistantReasoningDeltaData),
379 #[serde(rename = "assistant.tool_call_delta")]
380 AssistantToolCallDelta(AssistantToolCallDeltaData),
381 #[serde(rename = "assistant.streaming_delta")]
382 AssistantStreamingDelta(AssistantStreamingDeltaData),
383 #[serde(rename = "assistant.message")]
384 AssistantMessage(AssistantMessageData),
385 #[serde(rename = "assistant.message_start")]
386 AssistantMessageStart(AssistantMessageStartData),
387 #[serde(rename = "assistant.message_delta")]
388 AssistantMessageDelta(AssistantMessageDeltaData),
389 #[serde(rename = "assistant.turn_end")]
390 AssistantTurnEnd(AssistantTurnEndData),
391 #[serde(rename = "assistant.idle")]
392 AssistantIdle(AssistantIdleData),
393 #[serde(rename = "assistant.usage")]
394 AssistantUsage(AssistantUsageData),
395 #[serde(rename = "model.call_failure")]
396 ModelCallFailure(ModelCallFailureData),
397 #[serde(rename = "abort")]
398 Abort(AbortData),
399 #[serde(rename = "tool.user_requested")]
400 ToolUserRequested(ToolUserRequestedData),
401 #[serde(rename = "tool.execution_start")]
402 ToolExecutionStart(ToolExecutionStartData),
403 #[serde(rename = "tool.execution_partial_result")]
404 ToolExecutionPartialResult(ToolExecutionPartialResultData),
405 #[serde(rename = "tool.execution_progress")]
406 ToolExecutionProgress(ToolExecutionProgressData),
407 #[serde(rename = "tool.execution_complete")]
408 ToolExecutionComplete(ToolExecutionCompleteData),
409 #[serde(rename = "skill.invoked")]
410 SkillInvoked(SkillInvokedData),
411 #[serde(rename = "subagent.started")]
412 SubagentStarted(SubagentStartedData),
413 #[serde(rename = "subagent.completed")]
414 SubagentCompleted(SubagentCompletedData),
415 #[serde(rename = "subagent.failed")]
416 SubagentFailed(SubagentFailedData),
417 #[serde(rename = "subagent.selected")]
418 SubagentSelected(SubagentSelectedData),
419 #[serde(rename = "subagent.deselected")]
420 SubagentDeselected(SubagentDeselectedData),
421 #[serde(rename = "hook.start")]
422 HookStart(HookStartData),
423 #[serde(rename = "hook.end")]
424 HookEnd(HookEndData),
425 #[serde(rename = "hook.progress")]
426 HookProgress(HookProgressData),
427 #[serde(rename = "session.binary_asset")]
428 SessionBinaryAsset(SessionBinaryAssetData),
429 #[serde(rename = "system.message")]
430 SystemMessage(SystemMessageData),
431 #[serde(rename = "system.notification")]
432 SystemNotification(SystemNotificationData),
433 #[serde(rename = "permission.requested")]
434 PermissionRequested(PermissionRequestedData),
435 #[serde(rename = "permission.completed")]
436 PermissionCompleted(PermissionCompletedData),
437 #[serde(rename = "user_input.requested")]
438 UserInputRequested(UserInputRequestedData),
439 #[serde(rename = "user_input.completed")]
440 UserInputCompleted(UserInputCompletedData),
441 #[serde(rename = "elicitation.requested")]
442 ElicitationRequested(ElicitationRequestedData),
443 #[serde(rename = "elicitation.completed")]
444 ElicitationCompleted(ElicitationCompletedData),
445 #[serde(rename = "sampling.requested")]
446 SamplingRequested(SamplingRequestedData),
447 #[serde(rename = "sampling.completed")]
448 SamplingCompleted(SamplingCompletedData),
449 #[serde(rename = "mcp.oauth_required")]
450 McpOauthRequired(McpOauthRequiredData),
451 #[serde(rename = "mcp.oauth_completed")]
452 McpOauthCompleted(McpOauthCompletedData),
453 #[serde(rename = "mcp.headers_refresh_required")]
454 McpHeadersRefreshRequired(McpHeadersRefreshRequiredData),
455 #[serde(rename = "mcp.headers_refresh_completed")]
456 McpHeadersRefreshCompleted(McpHeadersRefreshCompletedData),
457 #[serde(rename = "session.custom_notification")]
458 SessionCustomNotification(SessionCustomNotificationData),
459 #[serde(rename = "external_tool.requested")]
460 ExternalToolRequested(ExternalToolRequestedData),
461 #[serde(rename = "external_tool.completed")]
462 ExternalToolCompleted(ExternalToolCompletedData),
463 #[serde(rename = "command.queued")]
464 CommandQueued(CommandQueuedData),
465 #[serde(rename = "command.execute")]
466 CommandExecute(CommandExecuteData),
467 #[serde(rename = "command.completed")]
468 CommandCompleted(CommandCompletedData),
469 #[serde(rename = "auto_mode_switch.requested")]
470 AutoModeSwitchRequested(AutoModeSwitchRequestedData),
471 #[serde(rename = "auto_mode_switch.completed")]
472 AutoModeSwitchCompleted(AutoModeSwitchCompletedData),
473 #[serde(rename = "session_limits_exhausted.requested")]
474 SessionLimitsExhaustedRequested(SessionLimitsExhaustedRequestedData),
475 #[serde(rename = "session_limits_exhausted.completed")]
476 SessionLimitsExhaustedCompleted(SessionLimitsExhaustedCompletedData),
477 #[serde(rename = "session.auto_mode_resolved")]
485 SessionAutoModeResolved(SessionAutoModeResolvedData),
486 #[serde(rename = "session.managed_settings_resolved")]
494 SessionManagedSettingsResolved(SessionManagedSettingsResolvedData),
495 #[serde(rename = "commands.changed")]
496 CommandsChanged(CommandsChangedData),
497 #[serde(rename = "capabilities.changed")]
498 CapabilitiesChanged(CapabilitiesChangedData),
499 #[serde(rename = "exit_plan_mode.requested")]
500 ExitPlanModeRequested(ExitPlanModeRequestedData),
501 #[serde(rename = "exit_plan_mode.completed")]
502 ExitPlanModeCompleted(ExitPlanModeCompletedData),
503 #[serde(rename = "session.tools_updated")]
504 SessionToolsUpdated(SessionToolsUpdatedData),
505 #[serde(rename = "session.background_tasks_changed")]
506 SessionBackgroundTasksChanged(SessionBackgroundTasksChangedData),
507 #[serde(rename = "session.skills_loaded")]
508 SessionSkillsLoaded(SessionSkillsLoadedData),
509 #[serde(rename = "session.custom_agents_updated")]
510 SessionCustomAgentsUpdated(SessionCustomAgentsUpdatedData),
511 #[serde(rename = "session.mcp_servers_loaded")]
512 SessionMcpServersLoaded(SessionMcpServersLoadedData),
513 #[serde(rename = "session.mcp_server_status_changed")]
514 SessionMcpServerStatusChanged(SessionMcpServerStatusChangedData),
515 #[serde(rename = "mcp.tools.list_changed")]
516 McpToolsListChanged(McpToolsListChangedData),
517 #[serde(rename = "mcp.resources.list_changed")]
518 McpResourcesListChanged(McpResourcesListChangedData),
519 #[serde(rename = "mcp.prompts.list_changed")]
520 McpPromptsListChanged(McpPromptsListChangedData),
521 #[serde(rename = "session.extensions_loaded")]
522 SessionExtensionsLoaded(SessionExtensionsLoadedData),
523 #[serde(rename = "session.canvas.opened")]
531 SessionCanvasOpened(SessionCanvasOpenedData),
532 #[serde(rename = "session.canvas.registry_changed")]
540 SessionCanvasRegistryChanged(SessionCanvasRegistryChangedData),
541 #[serde(rename = "session.canvas.closed")]
549 SessionCanvasClosed(SessionCanvasClosedData),
550 #[serde(rename = "session.canvas.unavailable")]
558 SessionCanvasUnavailable(SessionCanvasUnavailableData),
559 #[serde(rename = "session.canvas.recorded")]
567 SessionCanvasRecorded(SessionCanvasRecordedData),
568 #[serde(rename = "session.canvas.removed")]
576 SessionCanvasRemoved(SessionCanvasRemovedData),
577 #[serde(rename = "session.extensions.attachments_pushed")]
578 SessionExtensionsAttachmentsPushed(SessionExtensionsAttachmentsPushedData),
579 #[serde(rename = "mcp_app.tool_call_complete")]
580 McpAppToolCallComplete(McpAppToolCallCompleteData),
581}
582
583#[derive(Debug, Clone, Serialize, Deserialize)]
589#[serde(rename_all = "camelCase")]
590pub struct TypedSessionEvent {
591 pub id: String,
593 pub timestamp: String,
595 #[serde(skip_serializing_if = "Option::is_none")]
597 pub parent_id: Option<String>,
598 #[serde(skip_serializing_if = "Option::is_none")]
600 pub ephemeral: Option<bool>,
601 #[serde(skip_serializing_if = "Option::is_none")]
604 pub agent_id: Option<String>,
605 #[serde(flatten)]
607 pub payload: SessionEventData,
608}
609
610#[derive(Debug, Clone, Default, Serialize, Deserialize)]
612#[serde(rename_all = "camelCase")]
613pub struct WorkingDirectoryContext {
614 #[serde(skip_serializing_if = "Option::is_none")]
616 pub base_commit: Option<String>,
617 #[serde(skip_serializing_if = "Option::is_none")]
619 pub branch: Option<String>,
620 pub cwd: String,
622 #[serde(skip_serializing_if = "Option::is_none")]
624 pub git_root: Option<String>,
625 #[serde(skip_serializing_if = "Option::is_none")]
627 pub head_commit: Option<String>,
628 #[serde(skip_serializing_if = "Option::is_none")]
630 pub host_type: Option<WorkingDirectoryContextHostType>,
631 #[serde(skip_serializing_if = "Option::is_none")]
633 pub repository: Option<String>,
634 #[serde(skip_serializing_if = "Option::is_none")]
636 pub repository_host: Option<String>,
637}
638
639#[derive(Debug, Clone, Default, Serialize, Deserialize)]
641#[serde(rename_all = "camelCase")]
642pub struct SessionLimitsConfig {
643 #[serde(skip_serializing_if = "Option::is_none")]
645 pub max_ai_credits: Option<f64>,
646}
647
648#[derive(Debug, Clone, Default, Serialize, Deserialize)]
650#[serde(rename_all = "camelCase")]
651pub struct SessionStartData {
652 #[serde(skip_serializing_if = "Option::is_none")]
654 pub already_in_use: Option<bool>,
655 #[serde(skip_serializing_if = "Option::is_none")]
657 pub context: Option<WorkingDirectoryContext>,
658 #[serde(skip_serializing_if = "Option::is_none")]
660 pub context_tier: Option<ContextTier>,
661 pub copilot_version: String,
663 #[serde(skip_serializing_if = "Option::is_none")]
665 pub detached_from_spawning_parent_session_id: Option<String>,
666 pub producer: String,
668 #[serde(skip_serializing_if = "Option::is_none")]
670 pub reasoning_effort: Option<String>,
671 #[serde(skip_serializing_if = "Option::is_none")]
673 pub reasoning_summary: Option<ReasoningSummary>,
674 #[serde(skip_serializing_if = "Option::is_none")]
676 pub remote_steerable: Option<bool>,
677 #[serde(skip_serializing_if = "Option::is_none")]
679 pub selected_model: Option<String>,
680 pub session_id: SessionId,
682 #[serde(skip_serializing_if = "Option::is_none")]
684 pub session_limits: Option<SessionLimitsConfig>,
685 pub start_time: String,
687 #[serde(skip_serializing_if = "Option::is_none")]
689 pub verbosity: Option<Verbosity>,
690 pub version: i64,
692}
693
694#[derive(Debug, Clone, Default, Serialize, Deserialize)]
696#[serde(rename_all = "camelCase")]
697pub struct SessionResumeData {
698 #[serde(skip_serializing_if = "Option::is_none")]
700 pub already_in_use: Option<bool>,
701 #[serde(skip_serializing_if = "Option::is_none")]
703 pub context: Option<WorkingDirectoryContext>,
704 #[serde(skip_serializing_if = "Option::is_none")]
706 pub context_tier: Option<ContextTier>,
707 #[serde(skip_serializing_if = "Option::is_none")]
709 pub continue_pending_work: Option<bool>,
710 pub event_count: i64,
712 #[serde(skip_serializing_if = "Option::is_none")]
714 pub events_file_size_bytes: Option<i64>,
715 #[serde(skip_serializing_if = "Option::is_none")]
717 pub reasoning_effort: Option<String>,
718 #[serde(skip_serializing_if = "Option::is_none")]
720 pub reasoning_summary: Option<ReasoningSummary>,
721 #[serde(skip_serializing_if = "Option::is_none")]
723 pub remote_steerable: Option<bool>,
724 pub resume_time: String,
726 #[serde(skip_serializing_if = "Option::is_none")]
728 pub selected_model: Option<String>,
729 #[serde(skip_serializing_if = "Option::is_none")]
731 pub session_limits: Option<SessionLimitsConfig>,
732 #[serde(skip_serializing_if = "Option::is_none")]
734 pub session_was_active: Option<bool>,
735 #[serde(skip_serializing_if = "Option::is_none")]
737 pub verbosity: Option<Verbosity>,
738}
739
740#[derive(Debug, Clone, Default, Serialize, Deserialize)]
742#[serde(rename_all = "camelCase")]
743pub struct SessionRemoteSteerableChangedData {
744 pub remote_steerable: bool,
746}
747
748#[derive(Debug, Clone, Default, Serialize, Deserialize)]
750#[serde(rename_all = "camelCase")]
751pub struct SessionErrorData {
752 #[serde(skip_serializing_if = "Option::is_none")]
754 pub eligible_for_auto_switch: Option<bool>,
755 #[serde(skip_serializing_if = "Option::is_none")]
757 pub error_code: Option<String>,
758 pub error_type: String,
760 pub message: String,
762 #[serde(skip_serializing_if = "Option::is_none")]
764 pub provider_call_id: Option<String>,
765 #[serde(skip_serializing_if = "Option::is_none")]
767 pub service_request_id: Option<String>,
768 #[serde(skip_serializing_if = "Option::is_none")]
770 pub stack: Option<String>,
771 #[serde(skip_serializing_if = "Option::is_none")]
773 pub status_code: Option<i32>,
774 #[serde(skip_serializing_if = "Option::is_none")]
776 pub url: Option<String>,
777}
778
779#[derive(Debug, Clone, Default, Serialize, Deserialize)]
781#[serde(rename_all = "camelCase")]
782pub struct SessionIdleData {
783 #[serde(skip_serializing_if = "Option::is_none")]
785 pub aborted: Option<bool>,
786}
787
788#[derive(Debug, Clone, Default, Serialize, Deserialize)]
790#[serde(rename_all = "camelCase")]
791pub struct SessionTitleChangedData {
792 pub title: String,
794}
795
796#[derive(Debug, Clone, Default, Serialize, Deserialize)]
798#[serde(rename_all = "camelCase")]
799pub struct SessionScheduleCreatedData {
800 #[serde(skip_serializing_if = "Option::is_none")]
802 pub at: Option<i64>,
803 #[serde(skip_serializing_if = "Option::is_none")]
805 pub cron: Option<String>,
806 #[serde(skip_serializing_if = "Option::is_none")]
808 pub display_prompt: Option<String>,
809 pub id: i64,
811 #[serde(skip_serializing_if = "Option::is_none")]
813 pub interval_ms: Option<i64>,
814 pub prompt: String,
816 #[serde(skip_serializing_if = "Option::is_none")]
818 pub recurring: Option<bool>,
819 #[serde(skip_serializing_if = "Option::is_none")]
821 pub self_paced: Option<bool>,
822 #[serde(skip_serializing_if = "Option::is_none")]
824 pub tz: Option<String>,
825}
826
827#[derive(Debug, Clone, Default, Serialize, Deserialize)]
829#[serde(rename_all = "camelCase")]
830pub struct SessionScheduleCancelledData {
831 pub id: i64,
833}
834
835#[derive(Debug, Clone, Default, Serialize, Deserialize)]
837#[serde(rename_all = "camelCase")]
838pub struct SessionScheduleRearmedData {
839 pub id: i64,
841 pub next_run_at: i64,
843}
844
845#[derive(Debug, Clone, Default, Serialize, Deserialize)]
847#[serde(rename_all = "camelCase")]
848pub struct SessionAutopilotObjectiveChangedData {
849 #[serde(skip_serializing_if = "Option::is_none")]
851 pub id: Option<i64>,
852 pub operation: AutopilotObjectiveChangedOperation,
854 #[serde(skip_serializing_if = "Option::is_none")]
856 pub status: Option<AutopilotObjectiveChangedStatus>,
857}
858
859#[derive(Debug, Clone, Default, Serialize, Deserialize)]
861#[serde(rename_all = "camelCase")]
862pub struct SessionInfoData {
863 pub info_type: String,
865 pub message: String,
867 #[serde(skip_serializing_if = "Option::is_none")]
869 pub tip: Option<String>,
870 #[serde(skip_serializing_if = "Option::is_none")]
872 pub url: Option<String>,
873}
874
875#[derive(Debug, Clone, Default, Serialize, Deserialize)]
877#[serde(rename_all = "camelCase")]
878pub struct SessionWarningData {
879 pub message: String,
881 #[serde(skip_serializing_if = "Option::is_none")]
883 pub url: Option<String>,
884 pub warning_type: String,
886}
887
888#[derive(Debug, Clone, Default, Serialize, Deserialize)]
890#[serde(rename_all = "camelCase")]
891pub struct SessionModelChangeData {
892 #[serde(skip_serializing_if = "Option::is_none")]
894 pub cause: Option<String>,
895 #[serde(skip_serializing_if = "Option::is_none")]
897 pub context_tier: Option<ContextTier>,
898 pub new_model: String,
900 #[serde(skip_serializing_if = "Option::is_none")]
902 pub previous_model: Option<String>,
903 #[serde(skip_serializing_if = "Option::is_none")]
905 pub previous_reasoning_effort: Option<String>,
906 #[serde(skip_serializing_if = "Option::is_none")]
908 pub previous_reasoning_summary: Option<ReasoningSummary>,
909 #[serde(skip_serializing_if = "Option::is_none")]
911 pub previous_verbosity: Option<Verbosity>,
912 #[serde(skip_serializing_if = "Option::is_none")]
914 pub reasoning_effort: Option<String>,
915 #[serde(skip_serializing_if = "Option::is_none")]
917 pub reasoning_summary: Option<ReasoningSummary>,
918 #[serde(skip_serializing_if = "Option::is_none")]
920 pub verbosity: Option<Verbosity>,
921}
922
923#[derive(Debug, Clone, Default, Serialize, Deserialize)]
925#[serde(rename_all = "camelCase")]
926pub struct SessionModeChangedData {
927 pub new_mode: SessionMode,
929 pub previous_mode: SessionMode,
931}
932
933#[derive(Debug, Clone, Default, Serialize, Deserialize)]
935#[serde(rename_all = "camelCase")]
936pub struct SessionSessionLimitsChangedData {
937 pub session_limits: Option<SessionLimitsConfig>,
939}
940
941#[derive(Debug, Clone, Default, Serialize, Deserialize)]
943#[serde(rename_all = "camelCase")]
944pub struct SessionPermissionsChangedData {
945 #[serde(skip_serializing_if = "Option::is_none")]
954 pub allow_all_permission_mode: Option<PermissionAllowAllMode>,
955 pub allow_all_permissions: bool,
957 #[serde(skip_serializing_if = "Option::is_none")]
966 pub previous_allow_all_permission_mode: Option<PermissionAllowAllMode>,
967 pub previous_allow_all_permissions: bool,
969}
970
971#[derive(Debug, Clone, Default, Serialize, Deserialize)]
973#[serde(rename_all = "camelCase")]
974pub struct SessionPlanChangedData {
975 pub operation: PlanChangedOperation,
977}
978
979#[derive(Debug, Clone, Default, Serialize, Deserialize)]
981#[serde(rename_all = "camelCase")]
982pub struct SessionTodosChangedData {}
983
984#[derive(Debug, Clone, Default, Serialize, Deserialize)]
986#[serde(rename_all = "camelCase")]
987pub struct SessionWorkspaceFileChangedData {
988 pub operation: WorkspaceFileChangedOperation,
990 pub path: String,
992}
993
994#[derive(Debug, Clone, Default, Serialize, Deserialize)]
996#[serde(rename_all = "camelCase")]
997pub struct HandoffRepository {
998 #[serde(skip_serializing_if = "Option::is_none")]
1000 pub branch: Option<String>,
1001 pub name: String,
1003 pub owner: String,
1005}
1006
1007#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1009#[serde(rename_all = "camelCase")]
1010pub struct SessionHandoffData {
1011 #[serde(skip_serializing_if = "Option::is_none")]
1013 pub context: Option<String>,
1014 pub handoff_time: String,
1016 #[serde(skip_serializing_if = "Option::is_none")]
1018 pub host: Option<String>,
1019 #[serde(skip_serializing_if = "Option::is_none")]
1021 pub remote_session_id: Option<SessionId>,
1022 #[serde(skip_serializing_if = "Option::is_none")]
1024 pub repository: Option<HandoffRepository>,
1025 pub source_type: HandoffSourceType,
1027 #[serde(skip_serializing_if = "Option::is_none")]
1029 pub summary: Option<String>,
1030}
1031
1032#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1034#[serde(rename_all = "camelCase")]
1035pub struct SessionTruncationData {
1036 pub messages_removed_during_truncation: i64,
1038 pub performed_by: String,
1040 pub post_truncation_messages_length: i64,
1042 pub post_truncation_tokens_in_messages: i64,
1044 pub pre_truncation_messages_length: i64,
1046 pub pre_truncation_tokens_in_messages: i64,
1048 pub token_limit: i64,
1050 pub tokens_removed_during_truncation: i64,
1052}
1053
1054#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1056#[serde(rename_all = "camelCase")]
1057pub struct SessionSnapshotRewindData {
1058 pub events_removed: i64,
1060 pub up_to_event_id: String,
1062}
1063
1064#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1066#[serde(rename_all = "camelCase")]
1067pub struct ShutdownCodeChanges {
1068 pub files_modified: Vec<String>,
1070 pub lines_added: i64,
1072 pub lines_removed: i64,
1074}
1075
1076#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1078#[serde(rename_all = "camelCase")]
1079pub struct ShutdownModelMetricRequests {
1080 #[serde(skip_serializing_if = "Option::is_none")]
1089 pub cost: Option<f64>,
1090 #[serde(skip_serializing_if = "Option::is_none")]
1099 pub count: Option<i64>,
1100}
1101
1102#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1104#[serde(rename_all = "camelCase")]
1105pub struct ShutdownModelMetricTokenDetail {
1106 pub token_count: i64,
1108}
1109
1110#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1112#[serde(rename_all = "camelCase")]
1113pub struct ShutdownModelMetricUsage {
1114 pub cache_read_tokens: i64,
1116 pub cache_write_tokens: i64,
1118 pub input_tokens: i64,
1120 pub output_tokens: i64,
1122 #[serde(skip_serializing_if = "Option::is_none")]
1124 pub reasoning_tokens: Option<i64>,
1125}
1126
1127#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1129#[serde(rename_all = "camelCase")]
1130pub struct ShutdownModelMetric {
1131 pub requests: ShutdownModelMetricRequests,
1133 #[serde(skip_serializing_if = "Option::is_none")]
1135 pub token_details: Option<HashMap<String, ShutdownModelMetricTokenDetail>>,
1136 #[serde(skip_serializing_if = "Option::is_none")]
1145 pub total_nano_aiu: Option<f64>,
1146 pub usage: ShutdownModelMetricUsage,
1148}
1149
1150#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1152#[serde(rename_all = "camelCase")]
1153pub struct ShutdownTokenDetail {
1154 pub token_count: i64,
1156}
1157
1158#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1160#[serde(rename_all = "camelCase")]
1161pub struct SessionShutdownData {
1162 pub code_changes: ShutdownCodeChanges,
1164 #[serde(skip_serializing_if = "Option::is_none")]
1166 pub conversation_tokens: Option<i64>,
1167 #[serde(skip_serializing_if = "Option::is_none")]
1169 pub current_model: Option<String>,
1170 #[serde(skip_serializing_if = "Option::is_none")]
1172 pub current_tokens: Option<i64>,
1173 #[serde(skip_serializing_if = "Option::is_none")]
1175 pub error_reason: Option<String>,
1176 #[serde(skip_serializing_if = "Option::is_none")]
1178 pub events_file_size_bytes: Option<i64>,
1179 pub model_metrics: HashMap<String, ShutdownModelMetric>,
1181 pub session_start_time: i64,
1183 pub shutdown_type: ShutdownType,
1185 #[serde(skip_serializing_if = "Option::is_none")]
1187 pub system_tokens: Option<i64>,
1188 #[serde(skip_serializing_if = "Option::is_none")]
1190 pub token_details: Option<HashMap<String, ShutdownTokenDetail>>,
1191 #[serde(skip_serializing_if = "Option::is_none")]
1193 pub tool_definitions_tokens: Option<i64>,
1194 pub total_api_duration_ms: i64,
1196 #[serde(skip_serializing_if = "Option::is_none")]
1205 pub total_nano_aiu: Option<f64>,
1206 #[doc(hidden)]
1208 #[serde(skip_serializing_if = "Option::is_none")]
1209 pub(crate) total_premium_requests: Option<f64>,
1210}
1211
1212#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1214#[serde(rename_all = "camelCase")]
1215pub struct SessionUsageCheckpointData {
1216 pub total_nano_aiu: f64,
1218 #[doc(hidden)]
1220 #[serde(skip_serializing_if = "Option::is_none")]
1221 pub(crate) total_premium_requests: Option<f64>,
1222}
1223
1224#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1226#[serde(rename_all = "camelCase")]
1227pub struct SessionContextChangedData {
1228 #[serde(skip_serializing_if = "Option::is_none")]
1230 pub base_commit: Option<String>,
1231 #[serde(skip_serializing_if = "Option::is_none")]
1233 pub branch: Option<String>,
1234 pub cwd: String,
1236 #[serde(skip_serializing_if = "Option::is_none")]
1238 pub git_root: Option<String>,
1239 #[serde(skip_serializing_if = "Option::is_none")]
1241 pub head_commit: Option<String>,
1242 #[serde(skip_serializing_if = "Option::is_none")]
1244 pub host_type: Option<WorkingDirectoryContextHostType>,
1245 #[serde(skip_serializing_if = "Option::is_none")]
1247 pub repository: Option<String>,
1248 #[serde(skip_serializing_if = "Option::is_none")]
1250 pub repository_host: Option<String>,
1251}
1252
1253#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1255#[serde(rename_all = "camelCase")]
1256pub struct SessionUsageInfoData {
1257 #[serde(skip_serializing_if = "Option::is_none")]
1259 pub conversation_tokens: Option<i64>,
1260 pub current_tokens: i64,
1262 #[serde(skip_serializing_if = "Option::is_none")]
1264 pub is_initial: Option<bool>,
1265 pub messages_length: i64,
1267 #[serde(skip_serializing_if = "Option::is_none")]
1269 pub system_tokens: Option<i64>,
1270 pub token_limit: i64,
1272 #[serde(skip_serializing_if = "Option::is_none")]
1274 pub tool_definitions_tokens: Option<i64>,
1275}
1276
1277#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1279#[serde(rename_all = "camelCase")]
1280pub struct SessionCompactionStartData {
1281 #[serde(skip_serializing_if = "Option::is_none")]
1283 pub conversation_tokens: Option<i64>,
1284 #[serde(skip_serializing_if = "Option::is_none")]
1286 pub model: Option<String>,
1287 #[serde(skip_serializing_if = "Option::is_none")]
1289 pub system_tokens: Option<i64>,
1290 #[serde(skip_serializing_if = "Option::is_none")]
1292 pub tool_definitions_tokens: Option<i64>,
1293}
1294
1295#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1297#[serde(rename_all = "camelCase")]
1298pub struct CompactionCompleteCompactionTokensUsedCopilotUsageTokenDetail {
1299 pub batch_size: i64,
1301 pub cost_per_batch: i64,
1303 pub token_count: i64,
1305 pub token_type: String,
1307}
1308
1309#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1311#[serde(rename_all = "camelCase")]
1312pub(crate) struct CompactionCompleteCompactionTokensUsedCopilotUsage {
1313 #[doc(hidden)]
1315 #[serde(skip_serializing_if = "Option::is_none")]
1316 pub(crate) token_details:
1317 Option<Vec<CompactionCompleteCompactionTokensUsedCopilotUsageTokenDetail>>,
1318 pub total_nano_aiu: f64,
1320}
1321
1322#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1324#[serde(rename_all = "camelCase")]
1325pub struct CompactionCompleteCompactionTokensUsed {
1326 #[serde(skip_serializing_if = "Option::is_none")]
1328 pub cache_read_tokens: Option<i64>,
1329 #[serde(skip_serializing_if = "Option::is_none")]
1331 pub cache_write_tokens: Option<i64>,
1332 #[doc(hidden)]
1334 #[serde(skip_serializing_if = "Option::is_none")]
1335 pub(crate) copilot_usage: Option<CompactionCompleteCompactionTokensUsedCopilotUsage>,
1336 #[serde(skip_serializing_if = "Option::is_none")]
1338 pub duration: Option<i64>,
1339 #[serde(skip_serializing_if = "Option::is_none")]
1341 pub input_tokens: Option<i64>,
1342 #[serde(skip_serializing_if = "Option::is_none")]
1344 pub model: Option<String>,
1345 #[serde(skip_serializing_if = "Option::is_none")]
1347 pub output_tokens: Option<i64>,
1348}
1349
1350#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1352#[serde(rename_all = "camelCase")]
1353pub struct SessionCompactionCompleteData {
1354 #[serde(skip_serializing_if = "Option::is_none")]
1356 pub checkpoint_number: Option<i64>,
1357 #[serde(skip_serializing_if = "Option::is_none")]
1359 pub checkpoint_path: Option<String>,
1360 #[serde(skip_serializing_if = "Option::is_none")]
1362 pub compaction_tokens_used: Option<CompactionCompleteCompactionTokensUsed>,
1363 #[serde(skip_serializing_if = "Option::is_none")]
1365 pub conversation_tokens: Option<i64>,
1366 #[serde(skip_serializing_if = "Option::is_none")]
1368 pub custom_instructions: Option<String>,
1369 #[serde(skip_serializing_if = "Option::is_none")]
1371 pub error: Option<String>,
1372 #[serde(skip_serializing_if = "Option::is_none")]
1374 pub messages_removed: Option<i64>,
1375 #[serde(skip_serializing_if = "Option::is_none")]
1377 pub post_compaction_tokens: Option<i64>,
1378 #[serde(skip_serializing_if = "Option::is_none")]
1380 pub pre_compaction_messages_length: Option<i64>,
1381 #[serde(skip_serializing_if = "Option::is_none")]
1383 pub pre_compaction_tokens: Option<i64>,
1384 #[serde(skip_serializing_if = "Option::is_none")]
1386 pub request_id: Option<RequestId>,
1387 #[serde(skip_serializing_if = "Option::is_none")]
1389 pub service_request_id: Option<String>,
1390 #[serde(skip_serializing_if = "Option::is_none")]
1392 pub status_code: Option<i64>,
1393 pub success: bool,
1395 #[serde(skip_serializing_if = "Option::is_none")]
1397 pub summary_content: Option<String>,
1398 #[serde(skip_serializing_if = "Option::is_none")]
1400 pub system_tokens: Option<i64>,
1401 #[serde(skip_serializing_if = "Option::is_none")]
1403 pub tokens_removed: Option<i64>,
1404 #[serde(skip_serializing_if = "Option::is_none")]
1406 pub tool_definitions_tokens: Option<i64>,
1407}
1408
1409#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1411#[serde(rename_all = "camelCase")]
1412pub struct SessionTaskCompleteData {
1413 #[serde(skip_serializing_if = "Option::is_none")]
1415 pub success: Option<bool>,
1416 #[serde(skip_serializing_if = "Option::is_none")]
1418 pub summary: Option<String>,
1419}
1420
1421#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1423#[serde(rename_all = "camelCase")]
1424pub struct UserMessageData {
1425 #[serde(skip_serializing_if = "Option::is_none")]
1427 pub agent_mode: Option<UserMessageAgentMode>,
1428 #[serde(skip_serializing_if = "Option::is_none")]
1430 pub attachments: Option<Vec<serde_json::Value>>,
1431 pub content: String,
1433 #[serde(skip_serializing_if = "Option::is_none")]
1435 pub delivery: Option<UserMessageDelivery>,
1436 #[serde(skip_serializing_if = "Option::is_none")]
1438 pub interaction_id: Option<String>,
1439 #[serde(skip_serializing_if = "Option::is_none")]
1441 pub is_autopilot_continuation: Option<bool>,
1442 #[serde(skip_serializing_if = "Option::is_none")]
1444 pub native_document_path_fallback_paths: Option<Vec<String>>,
1445 #[serde(skip_serializing_if = "Option::is_none")]
1447 pub parent_agent_task_id: Option<String>,
1448 #[serde(skip_serializing_if = "Option::is_none")]
1450 pub source: Option<String>,
1451 #[serde(skip_serializing_if = "Option::is_none")]
1453 pub supported_native_document_mime_types: Option<Vec<String>>,
1454 #[serde(skip_serializing_if = "Option::is_none")]
1456 pub transformed_content: Option<String>,
1457}
1458
1459#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1461#[serde(rename_all = "camelCase")]
1462pub struct PendingMessagesModifiedData {}
1463
1464#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1466#[serde(rename_all = "camelCase")]
1467pub struct AssistantTurnStartData {
1468 #[serde(skip_serializing_if = "Option::is_none")]
1470 pub interaction_id: Option<String>,
1471 #[serde(skip_serializing_if = "Option::is_none")]
1473 pub model: Option<String>,
1474 pub turn_id: String,
1476}
1477
1478#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1480#[serde(rename_all = "camelCase")]
1481pub struct AssistantIntentData {
1482 pub intent: String,
1484}
1485
1486#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1488#[serde(rename_all = "camelCase")]
1489pub struct AssistantServerToolProgressData {
1490 pub kind: String,
1492 pub output_index: i64,
1494 pub status: String,
1496}
1497
1498#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1500#[serde(rename_all = "camelCase")]
1501pub struct AssistantReasoningData {
1502 pub content: String,
1504 pub reasoning_id: String,
1506}
1507
1508#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1510#[serde(rename_all = "camelCase")]
1511pub struct AssistantReasoningDeltaData {
1512 pub delta_content: String,
1514 pub reasoning_id: String,
1516}
1517
1518#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1520#[serde(rename_all = "camelCase")]
1521pub struct AssistantToolCallDeltaData {
1522 pub input_delta: String,
1524 pub tool_call_id: String,
1526 #[serde(skip_serializing_if = "Option::is_none")]
1528 pub tool_name: Option<String>,
1529 #[serde(skip_serializing_if = "Option::is_none")]
1531 pub tool_type: Option<AssistantMessageToolRequestType>,
1532}
1533
1534#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1536#[serde(rename_all = "camelCase")]
1537pub struct AssistantStreamingDeltaData {
1538 pub total_response_size_bytes: i64,
1540}
1541
1542#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1551#[serde(rename_all = "camelCase")]
1552pub struct CitationSource {
1553 pub id: String,
1555 #[serde(skip_serializing_if = "Option::is_none")]
1557 pub path: Option<String>,
1558 pub provider: CitationProvider,
1560 #[serde(skip_serializing_if = "Option::is_none")]
1562 pub title: Option<String>,
1563 #[serde(skip_serializing_if = "Option::is_none")]
1565 pub url: Option<String>,
1566}
1567
1568#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1577#[serde(rename_all = "camelCase")]
1578pub struct CitationReference {
1579 #[serde(skip_serializing_if = "Option::is_none")]
1581 pub cited_text: Option<String>,
1582 #[serde(skip_serializing_if = "Option::is_none")]
1584 pub location: Option<serde_json::Value>,
1585 #[serde(skip_serializing_if = "Option::is_none")]
1587 pub provider_metadata: Option<serde_json::Value>,
1588 pub source_id: String,
1590}
1591
1592#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1601#[serde(rename_all = "camelCase")]
1602pub struct CitationSpan {
1603 pub end_index: i64,
1605 pub references: Vec<CitationReference>,
1607 pub start_index: i64,
1609}
1610
1611#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1620#[serde(rename_all = "camelCase")]
1621pub struct Citations {
1622 pub sources: Vec<CitationSource>,
1624 pub spans: Vec<CitationSpan>,
1626}
1627
1628#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1637#[serde(rename_all = "camelCase")]
1638pub struct AssistantMessageServerTools {
1639 #[serde(skip_serializing_if = "Option::is_none")]
1640 pub advisor_model: Option<String>,
1641 #[serde(skip_serializing_if = "Option::is_none")]
1642 pub function_call_namespaces: Option<HashMap<String, String>>,
1643 #[serde(skip_serializing_if = "Option::is_none")]
1644 pub items: Option<Vec<serde_json::Value>>,
1645 pub provider: String,
1646 #[serde(skip_serializing_if = "Option::is_none")]
1647 pub raw_content_blocks: Option<Vec<serde_json::Value>>,
1648}
1649
1650#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1652#[serde(rename_all = "camelCase")]
1653pub struct AssistantMessageToolRequest {
1654 #[serde(skip_serializing_if = "Option::is_none")]
1656 pub arguments: Option<serde_json::Value>,
1657 #[serde(skip_serializing_if = "Option::is_none")]
1659 pub intention_summary: Option<String>,
1660 #[serde(skip_serializing_if = "Option::is_none")]
1662 pub mcp_server_name: Option<String>,
1663 #[serde(skip_serializing_if = "Option::is_none")]
1665 pub mcp_tool_name: Option<String>,
1666 pub name: String,
1668 pub tool_call_id: String,
1670 #[serde(skip_serializing_if = "Option::is_none")]
1672 pub tool_title: Option<String>,
1673 #[serde(skip_serializing_if = "Option::is_none")]
1675 pub r#type: Option<AssistantMessageToolRequestType>,
1676}
1677
1678#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1680#[serde(rename_all = "camelCase")]
1681pub struct AssistantMessageData {
1682 #[serde(skip_serializing_if = "Option::is_none")]
1684 pub api_call_id: Option<String>,
1685 #[serde(skip_serializing_if = "Option::is_none")]
1694 pub citations: Option<Citations>,
1695 #[serde(skip_serializing_if = "Option::is_none")]
1697 pub client_request_id: Option<String>,
1698 pub content: String,
1700 #[serde(skip_serializing_if = "Option::is_none")]
1702 pub encrypted_content: Option<String>,
1703 #[serde(skip_serializing_if = "Option::is_none")]
1705 pub interaction_id: Option<String>,
1706 pub message_id: String,
1708 #[serde(skip_serializing_if = "Option::is_none")]
1710 pub model: Option<String>,
1711 #[serde(skip_serializing_if = "Option::is_none")]
1713 pub output_tokens: Option<i64>,
1714 #[doc(hidden)]
1716 #[deprecated]
1717 #[serde(skip_serializing_if = "Option::is_none")]
1718 pub parent_tool_call_id: Option<String>,
1719 #[serde(skip_serializing_if = "Option::is_none")]
1721 pub phase: Option<String>,
1722 #[serde(skip_serializing_if = "Option::is_none")]
1724 pub reasoning_opaque: Option<String>,
1725 #[serde(skip_serializing_if = "Option::is_none")]
1727 pub reasoning_text: Option<String>,
1728 #[serde(skip_serializing_if = "Option::is_none")]
1730 pub reasoning_wire_field: Option<String>,
1731 #[serde(skip_serializing_if = "Option::is_none")]
1733 pub request_id: Option<RequestId>,
1734 #[serde(skip_serializing_if = "Option::is_none")]
1736 pub server_tools: Option<AssistantMessageServerTools>,
1737 #[serde(skip_serializing_if = "Option::is_none")]
1739 pub service_request_id: Option<String>,
1740 #[serde(skip_serializing_if = "Option::is_none")]
1742 pub tool_requests: Option<Vec<AssistantMessageToolRequest>>,
1743 #[serde(skip_serializing_if = "Option::is_none")]
1745 pub turn_id: Option<String>,
1746}
1747
1748#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1750#[serde(rename_all = "camelCase")]
1751pub struct AssistantMessageStartData {
1752 pub message_id: String,
1754 #[serde(skip_serializing_if = "Option::is_none")]
1756 pub phase: Option<String>,
1757}
1758
1759#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1761#[serde(rename_all = "camelCase")]
1762pub struct AssistantMessageDeltaData {
1763 pub delta_content: String,
1765 pub message_id: String,
1767 #[doc(hidden)]
1769 #[deprecated]
1770 #[serde(skip_serializing_if = "Option::is_none")]
1771 pub parent_tool_call_id: Option<String>,
1772}
1773
1774#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1776#[serde(rename_all = "camelCase")]
1777pub struct AssistantTurnEndData {
1778 #[serde(skip_serializing_if = "Option::is_none")]
1780 pub model: Option<String>,
1781 pub turn_id: String,
1783}
1784
1785#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1787#[serde(rename_all = "camelCase")]
1788pub struct AssistantIdleData {
1789 #[serde(skip_serializing_if = "Option::is_none")]
1791 pub aborted: Option<bool>,
1792}
1793
1794#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1796#[serde(rename_all = "camelCase")]
1797pub struct AssistantUsageCopilotUsageTokenDetail {
1798 pub batch_size: i64,
1800 pub cost_per_batch: i64,
1802 pub token_count: i64,
1804 pub token_type: String,
1806}
1807
1808#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1810#[serde(rename_all = "camelCase")]
1811pub struct AssistantUsageCopilotUsage {
1812 #[doc(hidden)]
1814 #[serde(skip_serializing_if = "Option::is_none")]
1815 pub(crate) token_details: Option<Vec<AssistantUsageCopilotUsageTokenDetail>>,
1816 pub total_nano_aiu: f64,
1818}
1819
1820#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1822#[serde(rename_all = "camelCase")]
1823pub(crate) struct AssistantUsageQuotaSnapshot {
1824 #[doc(hidden)]
1826 pub(crate) entitlement_requests: i64,
1827 #[doc(hidden)]
1829 #[serde(skip_serializing_if = "Option::is_none")]
1830 pub(crate) has_quota: Option<bool>,
1831 #[doc(hidden)]
1833 pub(crate) is_unlimited_entitlement: bool,
1834 #[doc(hidden)]
1836 pub(crate) overage: f64,
1837 #[doc(hidden)]
1839 pub(crate) overage_allowed_with_exhausted_quota: bool,
1840 #[doc(hidden)]
1842 #[serde(skip_serializing_if = "Option::is_none")]
1843 pub(crate) overage_entitlement: Option<f64>,
1844 #[doc(hidden)]
1846 pub(crate) remaining_percentage: f64,
1847 #[doc(hidden)]
1849 #[serde(skip_serializing_if = "Option::is_none")]
1850 pub(crate) reset_date: Option<String>,
1851 #[doc(hidden)]
1853 #[serde(skip_serializing_if = "Option::is_none")]
1854 pub(crate) token_based_billing: Option<bool>,
1855 #[doc(hidden)]
1857 pub(crate) usage_allowed_with_exhausted_quota: bool,
1858 #[doc(hidden)]
1860 pub(crate) used_requests: i64,
1861}
1862
1863#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1865#[serde(rename_all = "camelCase")]
1866pub struct AssistantUsageData {
1867 #[serde(skip_serializing_if = "Option::is_none")]
1869 pub api_call_id: Option<String>,
1870 #[serde(skip_serializing_if = "Option::is_none")]
1872 pub api_endpoint: Option<AssistantUsageApiEndpoint>,
1873 #[serde(skip_serializing_if = "Option::is_none")]
1875 pub cache_read_tokens: Option<i64>,
1876 #[serde(skip_serializing_if = "Option::is_none")]
1878 pub cache_write_tokens: Option<i64>,
1879 #[serde(skip_serializing_if = "Option::is_none")]
1881 pub content_filter_triggered: Option<bool>,
1882 #[serde(skip_serializing_if = "Option::is_none")]
1884 pub copilot_usage: Option<AssistantUsageCopilotUsage>,
1885 #[serde(skip_serializing_if = "Option::is_none")]
1894 pub cost: Option<f64>,
1895 #[serde(skip_serializing_if = "Option::is_none")]
1897 pub duration: Option<i64>,
1898 #[serde(skip_serializing_if = "Option::is_none")]
1900 pub finish_reason: Option<String>,
1901 #[serde(skip_serializing_if = "Option::is_none")]
1903 pub initiator: Option<String>,
1904 #[serde(skip_serializing_if = "Option::is_none")]
1906 pub input_tokens: Option<i64>,
1907 #[serde(skip_serializing_if = "Option::is_none")]
1909 pub inter_token_latency_ms: Option<f64>,
1910 pub model: String,
1912 #[serde(skip_serializing_if = "Option::is_none")]
1914 pub output_tokens: Option<i64>,
1915 #[doc(hidden)]
1917 #[deprecated]
1918 #[serde(skip_serializing_if = "Option::is_none")]
1919 pub parent_tool_call_id: Option<String>,
1920 #[serde(skip_serializing_if = "Option::is_none")]
1922 pub provider_call_id: Option<String>,
1923 #[doc(hidden)]
1925 #[serde(skip_serializing_if = "Option::is_none")]
1926 pub(crate) quota_snapshots: Option<HashMap<String, AssistantUsageQuotaSnapshot>>,
1927 #[serde(skip_serializing_if = "Option::is_none")]
1929 pub reasoning_effort: Option<String>,
1930 #[serde(skip_serializing_if = "Option::is_none")]
1932 pub reasoning_tokens: Option<i64>,
1933 #[serde(skip_serializing_if = "Option::is_none")]
1935 pub service_request_id: Option<String>,
1936 #[serde(skip_serializing_if = "Option::is_none")]
1938 pub time_to_first_token_ms: Option<f64>,
1939}
1940
1941#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1943#[serde(rename_all = "camelCase")]
1944pub struct ModelCallFailureRequestFingerprint {
1945 pub image_part_count: i64,
1947 pub image_parts_missing_media_type: i64,
1949 #[serde(skip_serializing_if = "Option::is_none")]
1951 pub last_message_role: Option<String>,
1952 pub message_count: i64,
1954 pub nameless_tool_call_count: i64,
1956 pub tool_call_count: i64,
1958 pub tool_result_message_count: i64,
1960}
1961
1962#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1964#[serde(rename_all = "camelCase")]
1965pub struct ModelCallFailureData {
1966 #[serde(skip_serializing_if = "Option::is_none")]
1968 pub api_call_id: Option<String>,
1969 #[serde(skip_serializing_if = "Option::is_none")]
1971 pub bad_request_kind: Option<ModelCallFailureBadRequestKind>,
1972 #[serde(skip_serializing_if = "Option::is_none")]
1974 pub duration_ms: Option<i64>,
1975 #[serde(skip_serializing_if = "Option::is_none")]
1977 pub error_code: Option<String>,
1978 #[serde(skip_serializing_if = "Option::is_none")]
1980 pub error_message: Option<String>,
1981 #[serde(skip_serializing_if = "Option::is_none")]
1983 pub error_type: Option<String>,
1984 #[serde(skip_serializing_if = "Option::is_none")]
1986 pub initiator: Option<String>,
1987 #[serde(skip_serializing_if = "Option::is_none")]
1989 pub model: Option<String>,
1990 #[serde(skip_serializing_if = "Option::is_none")]
1992 pub provider_call_id: Option<String>,
1993 #[doc(hidden)]
1995 #[serde(skip_serializing_if = "Option::is_none")]
1996 pub(crate) quota_snapshots: Option<HashMap<String, AssistantUsageQuotaSnapshot>>,
1997 #[serde(skip_serializing_if = "Option::is_none")]
1999 pub request_fingerprint: Option<ModelCallFailureRequestFingerprint>,
2000 #[serde(skip_serializing_if = "Option::is_none")]
2002 pub service_request_id: Option<String>,
2003 pub source: ModelCallFailureSource,
2005 #[serde(skip_serializing_if = "Option::is_none")]
2007 pub status_code: Option<i32>,
2008}
2009
2010#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2012#[serde(rename_all = "camelCase")]
2013pub struct AbortData {
2014 pub reason: AbortReason,
2016}
2017
2018#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2020#[serde(rename_all = "camelCase")]
2021pub struct ToolUserRequestedData {
2022 #[serde(skip_serializing_if = "Option::is_none")]
2024 pub arguments: Option<serde_json::Value>,
2025 pub tool_call_id: String,
2027 pub tool_name: String,
2029}
2030
2031#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2033#[serde(rename_all = "camelCase")]
2034pub struct ToolExecutionStartShellToolInfo {
2035 pub has_write_file_redirection: bool,
2037 pub possible_paths: Vec<String>,
2039}
2040
2041#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2043#[serde(rename_all = "camelCase")]
2044pub struct ToolExecutionStartToolDescriptionMetaUI {
2045 #[serde(skip_serializing_if = "Option::is_none")]
2047 pub resource_uri: Option<String>,
2048 #[serde(skip_serializing_if = "Option::is_none")]
2050 pub visibility: Option<Vec<ToolExecutionStartToolDescriptionMetaUIVisibility>>,
2051}
2052
2053#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2055#[serde(rename_all = "camelCase")]
2056pub struct ToolExecutionStartToolDescriptionMeta {
2057 #[serde(skip_serializing_if = "Option::is_none")]
2059 pub ui: Option<ToolExecutionStartToolDescriptionMetaUI>,
2060}
2061
2062#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2064#[serde(rename_all = "camelCase")]
2065pub struct ToolExecutionStartToolDescription {
2066 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2068 pub meta: Option<ToolExecutionStartToolDescriptionMeta>,
2069 #[serde(skip_serializing_if = "Option::is_none")]
2071 pub description: Option<String>,
2072 pub name: String,
2074}
2075
2076#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2078#[serde(rename_all = "camelCase")]
2079pub struct ToolExecutionStartData {
2080 #[serde(skip_serializing_if = "Option::is_none")]
2082 pub arguments: Option<serde_json::Value>,
2083 #[serde(skip_serializing_if = "Option::is_none")]
2085 pub display_verbatim: Option<bool>,
2086 #[serde(skip_serializing_if = "Option::is_none")]
2088 pub mcp_server_name: Option<String>,
2089 #[serde(skip_serializing_if = "Option::is_none")]
2091 pub mcp_tool_name: Option<String>,
2092 #[serde(skip_serializing_if = "Option::is_none")]
2094 pub model: Option<String>,
2095 #[doc(hidden)]
2097 #[deprecated]
2098 #[serde(skip_serializing_if = "Option::is_none")]
2099 pub parent_tool_call_id: Option<String>,
2100 #[serde(skip_serializing_if = "Option::is_none")]
2102 pub shell_tool_info: Option<ToolExecutionStartShellToolInfo>,
2103 pub tool_call_id: String,
2105 #[serde(skip_serializing_if = "Option::is_none")]
2107 pub tool_description: Option<ToolExecutionStartToolDescription>,
2108 pub tool_name: String,
2110 #[serde(skip_serializing_if = "Option::is_none")]
2112 pub turn_id: Option<String>,
2113}
2114
2115#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2117#[serde(rename_all = "camelCase")]
2118pub struct ToolExecutionPartialResultData {
2119 pub partial_output: String,
2121 pub tool_call_id: String,
2123}
2124
2125#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2127#[serde(rename_all = "camelCase")]
2128pub struct ToolExecutionProgressData {
2129 pub progress_message: String,
2131 pub tool_call_id: String,
2133}
2134
2135#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2137#[serde(rename_all = "camelCase")]
2138pub struct ToolExecutionCompleteError {
2139 #[serde(skip_serializing_if = "Option::is_none")]
2141 pub code: Option<String>,
2142 pub message: String,
2144}
2145
2146#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2155#[serde(rename_all = "camelCase")]
2156pub struct CitableSource {
2157 pub content: String,
2159 pub id: String,
2161 #[serde(skip_serializing_if = "Option::is_none")]
2163 pub path: Option<String>,
2164 #[serde(skip_serializing_if = "Option::is_none")]
2166 pub title: Option<String>,
2167 #[serde(skip_serializing_if = "Option::is_none")]
2169 pub url: Option<String>,
2170}
2171
2172#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2174#[serde(rename_all = "camelCase")]
2175pub struct ToolExecutionCompleteContentText {
2176 pub text: String,
2178 pub r#type: ToolExecutionCompleteContentTextType,
2180}
2181
2182#[doc(hidden)]
2184#[deprecated]
2185#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2186#[serde(rename_all = "camelCase")]
2187pub struct ToolExecutionCompleteContentTerminal {
2188 #[serde(skip_serializing_if = "Option::is_none")]
2190 pub cwd: Option<String>,
2191 #[serde(skip_serializing_if = "Option::is_none")]
2193 pub exit_code: Option<i64>,
2194 pub text: String,
2196 pub r#type: ToolExecutionCompleteContentTerminalType,
2198}
2199
2200#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2202#[serde(rename_all = "camelCase")]
2203pub struct ToolExecutionCompleteContentShellExit {
2204 #[serde(skip_serializing_if = "Option::is_none")]
2206 pub cwd: Option<String>,
2207 pub exit_code: i64,
2209 #[serde(skip_serializing_if = "Option::is_none")]
2211 pub output_preview: Option<String>,
2212 #[serde(skip_serializing_if = "Option::is_none")]
2214 pub output_truncated: Option<bool>,
2215 pub shell_id: String,
2217 pub r#type: ToolExecutionCompleteContentShellExitType,
2219}
2220
2221#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2223#[serde(rename_all = "camelCase")]
2224pub struct ToolExecutionCompleteContentImage {
2225 pub data: String,
2227 pub mime_type: String,
2229 pub r#type: ToolExecutionCompleteContentImageType,
2231}
2232
2233#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2235#[serde(rename_all = "camelCase")]
2236pub struct ToolExecutionCompleteContentAudio {
2237 pub data: String,
2239 pub mime_type: String,
2241 pub r#type: ToolExecutionCompleteContentAudioType,
2243}
2244
2245#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2247#[serde(rename_all = "camelCase")]
2248pub struct ToolExecutionCompleteContentResourceLinkIcon {
2249 #[serde(skip_serializing_if = "Option::is_none")]
2251 pub mime_type: Option<String>,
2252 #[serde(skip_serializing_if = "Option::is_none")]
2254 pub sizes: Option<Vec<String>>,
2255 pub src: String,
2257 #[serde(skip_serializing_if = "Option::is_none")]
2259 pub theme: Option<ToolExecutionCompleteContentResourceLinkIconTheme>,
2260}
2261
2262#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2264#[serde(rename_all = "camelCase")]
2265pub struct ToolExecutionCompleteContentResourceLink {
2266 #[serde(skip_serializing_if = "Option::is_none")]
2268 pub description: Option<String>,
2269 #[serde(skip_serializing_if = "Option::is_none")]
2271 pub icons: Option<Vec<ToolExecutionCompleteContentResourceLinkIcon>>,
2272 #[serde(skip_serializing_if = "Option::is_none")]
2274 pub mime_type: Option<String>,
2275 pub name: String,
2277 #[serde(skip_serializing_if = "Option::is_none")]
2279 pub size: Option<i64>,
2280 #[serde(skip_serializing_if = "Option::is_none")]
2282 pub title: Option<String>,
2283 pub r#type: ToolExecutionCompleteContentResourceLinkType,
2285 pub uri: String,
2287}
2288
2289#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2291#[serde(rename_all = "camelCase")]
2292pub struct EmbeddedTextResourceContents {
2293 #[serde(skip_serializing_if = "Option::is_none")]
2295 pub mime_type: Option<String>,
2296 pub text: String,
2298 pub uri: String,
2300}
2301
2302#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2304#[serde(rename_all = "camelCase")]
2305pub struct EmbeddedBlobResourceContents {
2306 pub blob: String,
2308 #[serde(skip_serializing_if = "Option::is_none")]
2310 pub mime_type: Option<String>,
2311 pub uri: String,
2313}
2314
2315#[derive(Debug, Clone, Serialize, Deserialize)]
2317#[serde(rename_all = "camelCase")]
2318pub struct ToolExecutionCompleteContentResource {
2319 pub resource: ToolExecutionCompleteContentResourceDetails,
2321 pub r#type: ToolExecutionCompleteContentResourceType,
2323}
2324
2325#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2327#[serde(rename_all = "camelCase")]
2328pub struct ToolExecutionCompleteUIResourceMetaUICsp {
2329 #[serde(skip_serializing_if = "Option::is_none")]
2330 pub base_uri_domains: Option<Vec<String>>,
2331 #[serde(skip_serializing_if = "Option::is_none")]
2332 pub connect_domains: Option<Vec<String>>,
2333 #[serde(skip_serializing_if = "Option::is_none")]
2334 pub frame_domains: Option<Vec<String>>,
2335 #[serde(skip_serializing_if = "Option::is_none")]
2336 pub resource_domains: Option<Vec<String>>,
2337}
2338
2339#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2341#[serde(rename_all = "camelCase")]
2342pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsCamera {}
2343
2344#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2346#[serde(rename_all = "camelCase")]
2347pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite {}
2348
2349#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2351#[serde(rename_all = "camelCase")]
2352pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation {}
2353
2354#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2356#[serde(rename_all = "camelCase")]
2357pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone {}
2358
2359#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2361#[serde(rename_all = "camelCase")]
2362pub struct ToolExecutionCompleteUIResourceMetaUIPermissions {
2363 #[serde(skip_serializing_if = "Option::is_none")]
2365 pub camera: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsCamera>,
2366 #[serde(skip_serializing_if = "Option::is_none")]
2368 pub clipboard_write: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite>,
2369 #[serde(skip_serializing_if = "Option::is_none")]
2371 pub geolocation: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation>,
2372 #[serde(skip_serializing_if = "Option::is_none")]
2374 pub microphone: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone>,
2375}
2376
2377#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2379#[serde(rename_all = "camelCase")]
2380pub struct ToolExecutionCompleteUIResourceMetaUI {
2381 #[serde(skip_serializing_if = "Option::is_none")]
2383 pub csp: Option<ToolExecutionCompleteUIResourceMetaUICsp>,
2384 #[serde(skip_serializing_if = "Option::is_none")]
2385 pub domain: Option<String>,
2386 #[serde(skip_serializing_if = "Option::is_none")]
2388 pub permissions: Option<ToolExecutionCompleteUIResourceMetaUIPermissions>,
2389 #[serde(skip_serializing_if = "Option::is_none")]
2390 pub prefers_border: Option<bool>,
2391}
2392
2393#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2395#[serde(rename_all = "camelCase")]
2396pub struct ToolExecutionCompleteUIResourceMeta {
2397 #[serde(skip_serializing_if = "Option::is_none")]
2399 pub ui: Option<ToolExecutionCompleteUIResourceMetaUI>,
2400}
2401
2402#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2404#[serde(rename_all = "camelCase")]
2405pub struct ToolExecutionCompleteUIResource {
2406 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2408 pub meta: Option<ToolExecutionCompleteUIResourceMeta>,
2409 #[serde(skip_serializing_if = "Option::is_none")]
2411 pub blob: Option<String>,
2412 pub mime_type: String,
2414 #[serde(skip_serializing_if = "Option::is_none")]
2416 pub text: Option<String>,
2417 pub uri: String,
2419}
2420
2421#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2423#[serde(rename_all = "camelCase")]
2424pub struct ToolExecutionCompleteResult {
2425 #[serde(skip_serializing_if = "Option::is_none")]
2434 pub binary_results_for_llm: Option<Vec<serde_json::Value>>,
2435 #[serde(skip_serializing_if = "Option::is_none")]
2444 pub citable_sources: Option<Vec<CitableSource>>,
2445 pub content: String,
2447 #[serde(skip_serializing_if = "Option::is_none")]
2449 pub contents: Option<Vec<ToolExecutionCompleteContent>>,
2450 #[serde(skip_serializing_if = "Option::is_none")]
2452 pub detailed_content: Option<String>,
2453 #[serde(skip_serializing_if = "Option::is_none")]
2462 pub mcp_meta: Option<serde_json::Value>,
2463 #[serde(skip_serializing_if = "Option::is_none")]
2465 pub structured_content: Option<serde_json::Value>,
2466 #[serde(skip_serializing_if = "Option::is_none")]
2468 pub ui_resource: Option<ToolExecutionCompleteUIResource>,
2469}
2470
2471#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2473#[serde(rename_all = "camelCase")]
2474pub struct ToolExecutionCompleteToolDescriptionMetaUI {
2475 #[serde(skip_serializing_if = "Option::is_none")]
2477 pub resource_uri: Option<String>,
2478 #[serde(skip_serializing_if = "Option::is_none")]
2480 pub visibility: Option<Vec<ToolExecutionCompleteToolDescriptionMetaUIVisibility>>,
2481}
2482
2483#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2485#[serde(rename_all = "camelCase")]
2486pub struct ToolExecutionCompleteToolDescriptionMeta {
2487 #[serde(skip_serializing_if = "Option::is_none")]
2489 pub ui: Option<ToolExecutionCompleteToolDescriptionMetaUI>,
2490}
2491
2492#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2494#[serde(rename_all = "camelCase")]
2495pub struct ToolExecutionCompleteToolDescription {
2496 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2498 pub meta: Option<ToolExecutionCompleteToolDescriptionMeta>,
2499 #[serde(skip_serializing_if = "Option::is_none")]
2501 pub description: Option<String>,
2502 pub name: String,
2504}
2505
2506#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2508#[serde(rename_all = "camelCase")]
2509pub struct ToolExecutionCompleteData {
2510 #[serde(skip_serializing_if = "Option::is_none")]
2512 pub error: Option<ToolExecutionCompleteError>,
2513 #[serde(skip_serializing_if = "Option::is_none")]
2515 pub interaction_id: Option<String>,
2516 #[serde(skip_serializing_if = "Option::is_none")]
2518 pub is_user_requested: Option<bool>,
2519 #[serde(skip_serializing_if = "Option::is_none")]
2528 pub mcp_meta: Option<serde_json::Value>,
2529 #[serde(skip_serializing_if = "Option::is_none")]
2531 pub model: Option<String>,
2532 #[doc(hidden)]
2534 #[deprecated]
2535 #[serde(skip_serializing_if = "Option::is_none")]
2536 pub parent_tool_call_id: Option<String>,
2537 #[serde(skip_serializing_if = "Option::is_none")]
2539 pub result: Option<ToolExecutionCompleteResult>,
2540 #[serde(skip_serializing_if = "Option::is_none")]
2542 pub sandboxed: Option<bool>,
2543 pub success: bool,
2545 pub tool_call_id: String,
2547 #[serde(skip_serializing_if = "Option::is_none")]
2549 pub tool_description: Option<ToolExecutionCompleteToolDescription>,
2550 #[serde(skip_serializing_if = "Option::is_none")]
2552 pub tool_telemetry: Option<HashMap<String, serde_json::Value>>,
2553 #[serde(skip_serializing_if = "Option::is_none")]
2555 pub turn_id: Option<String>,
2556}
2557
2558#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2560#[serde(rename_all = "camelCase")]
2561pub struct SkillInvokedData {
2562 #[serde(skip_serializing_if = "Option::is_none")]
2564 pub allowed_tools: Option<Vec<String>>,
2565 pub content: String,
2567 #[serde(skip_serializing_if = "Option::is_none")]
2569 pub description: Option<String>,
2570 #[serde(skip_serializing_if = "Option::is_none")]
2572 pub model: Option<String>,
2573 pub name: String,
2575 pub path: String,
2577 #[serde(skip_serializing_if = "Option::is_none")]
2579 pub plugin_name: Option<String>,
2580 #[serde(skip_serializing_if = "Option::is_none")]
2582 pub plugin_version: Option<String>,
2583 #[serde(skip_serializing_if = "Option::is_none")]
2585 pub source: Option<String>,
2586 #[serde(skip_serializing_if = "Option::is_none")]
2588 pub trigger: Option<SkillInvokedTrigger>,
2589}
2590
2591#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2593#[serde(rename_all = "camelCase")]
2594pub struct SubagentStartedData {
2595 pub agent_description: String,
2597 pub agent_display_name: String,
2599 pub agent_name: String,
2601 #[serde(skip_serializing_if = "Option::is_none")]
2603 pub model: Option<String>,
2604 pub tool_call_id: String,
2606}
2607
2608#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2610#[serde(rename_all = "camelCase")]
2611pub struct SubagentCompletedData {
2612 pub agent_display_name: String,
2614 pub agent_name: String,
2616 #[serde(skip_serializing_if = "Option::is_none")]
2618 pub duration_ms: Option<i64>,
2619 #[serde(skip_serializing_if = "Option::is_none")]
2621 pub model: Option<String>,
2622 pub tool_call_id: String,
2624 #[serde(skip_serializing_if = "Option::is_none")]
2626 pub total_tokens: Option<i64>,
2627 #[serde(skip_serializing_if = "Option::is_none")]
2629 pub total_tool_calls: Option<i64>,
2630}
2631
2632#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2634#[serde(rename_all = "camelCase")]
2635pub struct SubagentFailedData {
2636 pub agent_display_name: String,
2638 pub agent_name: String,
2640 #[serde(skip_serializing_if = "Option::is_none")]
2642 pub duration_ms: Option<i64>,
2643 pub error: String,
2645 #[serde(skip_serializing_if = "Option::is_none")]
2647 pub model: Option<String>,
2648 pub tool_call_id: String,
2650 #[serde(skip_serializing_if = "Option::is_none")]
2652 pub total_tokens: Option<i64>,
2653 #[serde(skip_serializing_if = "Option::is_none")]
2655 pub total_tool_calls: Option<i64>,
2656}
2657
2658#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2660#[serde(rename_all = "camelCase")]
2661pub struct SubagentSelectedData {
2662 pub agent_display_name: String,
2664 pub agent_name: String,
2666 pub tools: Option<Vec<String>>,
2668}
2669
2670#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2672#[serde(rename_all = "camelCase")]
2673pub struct SubagentDeselectedData {}
2674
2675#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2677#[serde(rename_all = "camelCase")]
2678pub struct HookStartData {
2679 pub hook_invocation_id: String,
2681 pub hook_type: String,
2683 #[serde(skip_serializing_if = "Option::is_none")]
2685 pub input: Option<serde_json::Value>,
2686}
2687
2688#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2690#[serde(rename_all = "camelCase")]
2691pub struct HookEndError {
2692 pub message: String,
2694 #[serde(skip_serializing_if = "Option::is_none")]
2696 pub source: Option<String>,
2697 #[serde(skip_serializing_if = "Option::is_none")]
2699 pub stack: Option<String>,
2700}
2701
2702#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2704#[serde(rename_all = "camelCase")]
2705pub struct HookEndData {
2706 #[serde(skip_serializing_if = "Option::is_none")]
2708 pub error: Option<HookEndError>,
2709 pub hook_invocation_id: String,
2711 pub hook_type: String,
2713 #[serde(skip_serializing_if = "Option::is_none")]
2715 pub output: Option<serde_json::Value>,
2716 pub success: bool,
2718}
2719
2720#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2722#[serde(rename_all = "camelCase")]
2723pub struct HookProgressData {
2724 pub message: String,
2726 #[serde(skip_serializing_if = "Option::is_none")]
2728 pub temporary: Option<bool>,
2729}
2730
2731#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2733#[serde(rename_all = "camelCase")]
2734pub struct SessionBinaryAssetData {
2735 pub asset_id: String,
2737 pub byte_length: i64,
2739 pub data: String,
2741 #[serde(skip_serializing_if = "Option::is_none")]
2743 pub description: Option<String>,
2744 #[serde(skip_serializing_if = "Option::is_none")]
2746 pub metadata: Option<HashMap<String, serde_json::Value>>,
2747 pub mime_type: String,
2749 pub r#type: BinaryAssetType,
2751}
2752
2753#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2755#[serde(rename_all = "camelCase")]
2756pub struct SystemMessageMetadata {
2757 #[serde(skip_serializing_if = "Option::is_none")]
2759 pub prompt_version: Option<String>,
2760 #[serde(skip_serializing_if = "Option::is_none")]
2762 pub variables: Option<HashMap<String, serde_json::Value>>,
2763}
2764
2765#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2767#[serde(rename_all = "camelCase")]
2768pub struct SystemMessageData {
2769 pub content: String,
2771 #[serde(skip_serializing_if = "Option::is_none")]
2773 pub metadata: Option<SystemMessageMetadata>,
2774 #[serde(skip_serializing_if = "Option::is_none")]
2776 pub name: Option<String>,
2777 pub role: SystemMessageRole,
2779}
2780
2781#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2783#[serde(rename_all = "camelCase")]
2784pub struct SystemNotificationData {
2785 pub content: String,
2787 pub kind: serde_json::Value,
2789}
2790
2791#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2793#[serde(rename_all = "camelCase")]
2794pub struct PermissionRequestShellCommand {
2795 pub identifier: String,
2797 pub read_only: bool,
2799}
2800
2801#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2803#[serde(rename_all = "camelCase")]
2804pub struct PermissionRequestShellPossibleUrl {
2805 pub url: String,
2807}
2808
2809#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2811#[serde(rename_all = "camelCase")]
2812pub struct PermissionRequestShell {
2813 pub can_offer_session_approval: bool,
2815 pub commands: Vec<PermissionRequestShellCommand>,
2817 pub full_command_text: String,
2819 pub has_write_file_redirection: bool,
2821 pub intention: String,
2823 pub kind: PermissionRequestShellKind,
2825 pub possible_paths: Vec<String>,
2827 pub possible_urls: Vec<PermissionRequestShellPossibleUrl>,
2829 #[serde(skip_serializing_if = "Option::is_none")]
2831 pub request_sandbox_bypass: Option<bool>,
2832 #[serde(skip_serializing_if = "Option::is_none")]
2834 pub request_sandbox_bypass_reason: Option<String>,
2835 #[serde(skip_serializing_if = "Option::is_none")]
2837 pub tool_call_id: Option<String>,
2838 #[serde(skip_serializing_if = "Option::is_none")]
2840 pub warning: Option<String>,
2841}
2842
2843#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2845#[serde(rename_all = "camelCase")]
2846pub struct PermissionRequestWrite {
2847 pub can_offer_session_approval: bool,
2849 pub diff: String,
2851 pub file_name: String,
2853 pub intention: String,
2855 pub kind: PermissionRequestWriteKind,
2857 #[serde(skip_serializing_if = "Option::is_none")]
2859 pub new_file_contents: Option<String>,
2860 #[serde(skip_serializing_if = "Option::is_none")]
2862 pub request_sandbox_bypass: Option<bool>,
2863 #[serde(skip_serializing_if = "Option::is_none")]
2865 pub request_sandbox_bypass_reason: Option<String>,
2866 #[serde(skip_serializing_if = "Option::is_none")]
2868 pub tool_call_id: Option<String>,
2869}
2870
2871#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2873#[serde(rename_all = "camelCase")]
2874pub struct PermissionRequestRead {
2875 pub intention: String,
2877 pub kind: PermissionRequestReadKind,
2879 pub path: String,
2881 #[serde(skip_serializing_if = "Option::is_none")]
2883 pub request_sandbox_bypass: Option<bool>,
2884 #[serde(skip_serializing_if = "Option::is_none")]
2886 pub request_sandbox_bypass_reason: Option<String>,
2887 #[serde(skip_serializing_if = "Option::is_none")]
2889 pub tool_call_id: Option<String>,
2890}
2891
2892#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2894#[serde(rename_all = "camelCase")]
2895pub struct PermissionRequestMcp {
2896 #[serde(skip_serializing_if = "Option::is_none")]
2898 pub args: Option<serde_json::Value>,
2899 pub kind: PermissionRequestMcpKind,
2901 pub read_only: bool,
2903 pub server_name: String,
2905 #[serde(skip_serializing_if = "Option::is_none")]
2907 pub tool_call_id: Option<String>,
2908 pub tool_name: String,
2910 pub tool_title: String,
2912}
2913
2914#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2916#[serde(rename_all = "camelCase")]
2917pub struct PermissionRequestUrl {
2918 pub intention: String,
2920 pub kind: PermissionRequestUrlKind,
2922 #[serde(skip_serializing_if = "Option::is_none")]
2924 pub request_sandbox_bypass: Option<bool>,
2925 #[serde(skip_serializing_if = "Option::is_none")]
2927 pub request_sandbox_bypass_reason: Option<String>,
2928 #[serde(skip_serializing_if = "Option::is_none")]
2930 pub tool_call_id: Option<String>,
2931 pub url: String,
2933}
2934
2935#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2937#[serde(rename_all = "camelCase")]
2938pub struct PermissionRequestMemory {
2939 #[serde(skip_serializing_if = "Option::is_none")]
2941 pub action: Option<PermissionRequestMemoryAction>,
2942 #[serde(skip_serializing_if = "Option::is_none")]
2944 pub citations: Option<String>,
2945 #[serde(skip_serializing_if = "Option::is_none")]
2947 pub direction: Option<PermissionRequestMemoryDirection>,
2948 pub fact: String,
2950 pub kind: PermissionRequestMemoryKind,
2952 #[serde(skip_serializing_if = "Option::is_none")]
2954 pub reason: Option<String>,
2955 #[serde(skip_serializing_if = "Option::is_none")]
2957 pub subject: Option<String>,
2958 #[serde(skip_serializing_if = "Option::is_none")]
2960 pub tool_call_id: Option<String>,
2961}
2962
2963#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2965#[serde(rename_all = "camelCase")]
2966pub struct PermissionRequestCustomTool {
2967 #[serde(skip_serializing_if = "Option::is_none")]
2969 pub args: Option<serde_json::Value>,
2970 pub kind: PermissionRequestCustomToolKind,
2972 #[serde(skip_serializing_if = "Option::is_none")]
2974 pub tool_call_id: Option<String>,
2975 pub tool_description: String,
2977 pub tool_name: String,
2979}
2980
2981#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2983#[serde(rename_all = "camelCase")]
2984pub struct PermissionRequestHook {
2985 #[serde(skip_serializing_if = "Option::is_none")]
2987 pub hook_message: Option<String>,
2988 pub kind: PermissionRequestHookKind,
2990 #[serde(skip_serializing_if = "Option::is_none")]
2992 pub tool_args: Option<serde_json::Value>,
2993 #[serde(skip_serializing_if = "Option::is_none")]
2995 pub tool_call_id: Option<String>,
2996 pub tool_name: String,
2998}
2999
3000#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3002#[serde(rename_all = "camelCase")]
3003pub struct PermissionRequestExtensionManagement {
3004 #[serde(skip_serializing_if = "Option::is_none")]
3006 pub extension_name: Option<String>,
3007 pub kind: PermissionRequestExtensionManagementKind,
3009 pub operation: String,
3011 #[serde(skip_serializing_if = "Option::is_none")]
3013 pub tool_call_id: Option<String>,
3014}
3015
3016#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3018#[serde(rename_all = "camelCase")]
3019pub struct PermissionRequestExtensionPermissionAccess {
3020 pub capabilities: Vec<String>,
3022 pub extension_name: String,
3024 pub kind: PermissionRequestExtensionPermissionAccessKind,
3026 #[serde(skip_serializing_if = "Option::is_none")]
3028 pub tool_call_id: Option<String>,
3029}
3030
3031#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3040#[serde(rename_all = "camelCase")]
3041pub struct PermissionAutoApproval {
3042 #[serde(skip_serializing_if = "Option::is_none")]
3044 pub reason: Option<String>,
3045 pub recommendation: AutoApprovalRecommendation,
3047}
3048
3049#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3051#[serde(rename_all = "camelCase")]
3052pub struct PermissionPromptRequestCommands {
3053 #[serde(skip_serializing_if = "Option::is_none")]
3062 pub auto_approval: Option<PermissionAutoApproval>,
3063 pub can_offer_session_approval: bool,
3065 pub command_identifiers: Vec<String>,
3067 pub full_command_text: String,
3069 pub intention: String,
3071 pub kind: PermissionPromptRequestCommandsKind,
3073 #[serde(skip_serializing_if = "Option::is_none")]
3075 pub tool_call_id: Option<String>,
3076 #[serde(skip_serializing_if = "Option::is_none")]
3078 pub warning: Option<String>,
3079}
3080
3081#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3083#[serde(rename_all = "camelCase")]
3084pub struct PermissionPromptRequestWrite {
3085 #[serde(skip_serializing_if = "Option::is_none")]
3094 pub auto_approval: Option<PermissionAutoApproval>,
3095 pub can_offer_session_approval: bool,
3097 pub diff: String,
3099 pub file_name: String,
3101 pub intention: String,
3103 pub kind: PermissionPromptRequestWriteKind,
3105 #[serde(skip_serializing_if = "Option::is_none")]
3107 pub new_file_contents: Option<String>,
3108 #[serde(skip_serializing_if = "Option::is_none")]
3110 pub tool_call_id: Option<String>,
3111}
3112
3113#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3115#[serde(rename_all = "camelCase")]
3116pub struct PermissionPromptRequestRead {
3117 #[serde(skip_serializing_if = "Option::is_none")]
3126 pub auto_approval: Option<PermissionAutoApproval>,
3127 pub intention: String,
3129 pub kind: PermissionPromptRequestReadKind,
3131 pub path: String,
3133 #[serde(skip_serializing_if = "Option::is_none")]
3135 pub tool_call_id: Option<String>,
3136}
3137
3138#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3140#[serde(rename_all = "camelCase")]
3141pub struct PermissionPromptRequestMcp {
3142 #[serde(skip_serializing_if = "Option::is_none")]
3144 pub args: Option<serde_json::Value>,
3145 #[serde(skip_serializing_if = "Option::is_none")]
3154 pub auto_approval: Option<PermissionAutoApproval>,
3155 pub kind: PermissionPromptRequestMcpKind,
3157 pub server_name: String,
3159 #[serde(skip_serializing_if = "Option::is_none")]
3161 pub tool_call_id: Option<String>,
3162 pub tool_name: String,
3164 pub tool_title: String,
3166}
3167
3168#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3170#[serde(rename_all = "camelCase")]
3171pub struct PermissionPromptRequestUrl {
3172 #[serde(skip_serializing_if = "Option::is_none")]
3181 pub auto_approval: Option<PermissionAutoApproval>,
3182 pub intention: String,
3184 pub kind: PermissionPromptRequestUrlKind,
3186 #[serde(skip_serializing_if = "Option::is_none")]
3188 pub request_sandbox_bypass: Option<bool>,
3189 #[serde(skip_serializing_if = "Option::is_none")]
3191 pub request_sandbox_bypass_reason: Option<String>,
3192 #[serde(skip_serializing_if = "Option::is_none")]
3194 pub tool_call_id: Option<String>,
3195 pub url: String,
3197}
3198
3199#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3201#[serde(rename_all = "camelCase")]
3202pub struct PermissionPromptRequestMemory {
3203 #[serde(skip_serializing_if = "Option::is_none")]
3205 pub action: Option<PermissionRequestMemoryAction>,
3206 #[serde(skip_serializing_if = "Option::is_none")]
3215 pub auto_approval: Option<PermissionAutoApproval>,
3216 #[serde(skip_serializing_if = "Option::is_none")]
3218 pub citations: Option<String>,
3219 #[serde(skip_serializing_if = "Option::is_none")]
3221 pub direction: Option<PermissionRequestMemoryDirection>,
3222 pub fact: String,
3224 pub kind: PermissionPromptRequestMemoryKind,
3226 #[serde(skip_serializing_if = "Option::is_none")]
3228 pub reason: Option<String>,
3229 #[serde(skip_serializing_if = "Option::is_none")]
3231 pub subject: Option<String>,
3232 #[serde(skip_serializing_if = "Option::is_none")]
3234 pub tool_call_id: Option<String>,
3235}
3236
3237#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3239#[serde(rename_all = "camelCase")]
3240pub struct PermissionPromptRequestCustomTool {
3241 #[serde(skip_serializing_if = "Option::is_none")]
3243 pub args: Option<serde_json::Value>,
3244 #[serde(skip_serializing_if = "Option::is_none")]
3253 pub auto_approval: Option<PermissionAutoApproval>,
3254 pub kind: PermissionPromptRequestCustomToolKind,
3256 #[serde(skip_serializing_if = "Option::is_none")]
3258 pub tool_call_id: Option<String>,
3259 pub tool_description: String,
3261 pub tool_name: String,
3263}
3264
3265#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3267#[serde(rename_all = "camelCase")]
3268pub struct PermissionPromptRequestPath {
3269 pub access_kind: PermissionPromptRequestPathAccessKind,
3271 #[serde(skip_serializing_if = "Option::is_none")]
3280 pub auto_approval: Option<PermissionAutoApproval>,
3281 pub kind: PermissionPromptRequestPathKind,
3283 pub paths: Vec<String>,
3285 #[serde(skip_serializing_if = "Option::is_none")]
3287 pub tool_call_id: Option<String>,
3288}
3289
3290#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3292#[serde(rename_all = "camelCase")]
3293pub struct PermissionPromptRequestHook {
3294 #[serde(skip_serializing_if = "Option::is_none")]
3303 pub auto_approval: Option<PermissionAutoApproval>,
3304 #[serde(skip_serializing_if = "Option::is_none")]
3306 pub hook_message: Option<String>,
3307 pub kind: PermissionPromptRequestHookKind,
3309 #[serde(skip_serializing_if = "Option::is_none")]
3311 pub tool_args: Option<serde_json::Value>,
3312 #[serde(skip_serializing_if = "Option::is_none")]
3314 pub tool_call_id: Option<String>,
3315 pub tool_name: String,
3317}
3318
3319#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3321#[serde(rename_all = "camelCase")]
3322pub struct PermissionPromptRequestExtensionManagement {
3323 #[serde(skip_serializing_if = "Option::is_none")]
3332 pub auto_approval: Option<PermissionAutoApproval>,
3333 #[serde(skip_serializing_if = "Option::is_none")]
3335 pub extension_name: Option<String>,
3336 pub kind: PermissionPromptRequestExtensionManagementKind,
3338 pub operation: String,
3340 #[serde(skip_serializing_if = "Option::is_none")]
3342 pub tool_call_id: Option<String>,
3343}
3344
3345#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3347#[serde(rename_all = "camelCase")]
3348pub struct PermissionPromptRequestExtensionPermissionAccess {
3349 #[serde(skip_serializing_if = "Option::is_none")]
3358 pub auto_approval: Option<PermissionAutoApproval>,
3359 pub capabilities: Vec<String>,
3361 pub extension_name: String,
3363 pub kind: PermissionPromptRequestExtensionPermissionAccessKind,
3365 #[serde(skip_serializing_if = "Option::is_none")]
3367 pub tool_call_id: Option<String>,
3368}
3369
3370#[derive(Debug, Clone, Serialize, Deserialize)]
3372#[serde(rename_all = "camelCase")]
3373pub struct PermissionRequestedData {
3374 pub permission_request: PermissionRequest,
3376 #[serde(skip_serializing_if = "Option::is_none")]
3378 pub prompt_request: Option<PermissionPromptRequest>,
3379 pub request_id: RequestId,
3381 #[serde(skip_serializing_if = "Option::is_none")]
3383 pub resolved_by_hook: Option<bool>,
3384}
3385
3386#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3388#[serde(rename_all = "camelCase")]
3389pub struct PermissionApproved {
3390 pub kind: PermissionApprovedKind,
3392}
3393
3394#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3396#[serde(rename_all = "camelCase")]
3397pub struct UserToolSessionApprovalCommands {
3398 pub command_identifiers: Vec<String>,
3400 pub kind: UserToolSessionApprovalCommandsKind,
3402}
3403
3404#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3406#[serde(rename_all = "camelCase")]
3407pub struct UserToolSessionApprovalRead {
3408 pub kind: UserToolSessionApprovalReadKind,
3410}
3411
3412#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3414#[serde(rename_all = "camelCase")]
3415pub struct UserToolSessionApprovalWrite {
3416 pub kind: UserToolSessionApprovalWriteKind,
3418}
3419
3420#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3422#[serde(rename_all = "camelCase")]
3423pub struct UserToolSessionApprovalMcp {
3424 pub kind: UserToolSessionApprovalMcpKind,
3426 pub server_name: String,
3428 pub tool_name: Option<String>,
3430}
3431
3432#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3434#[serde(rename_all = "camelCase")]
3435pub struct UserToolSessionApprovalMemory {
3436 pub kind: UserToolSessionApprovalMemoryKind,
3438}
3439
3440#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3442#[serde(rename_all = "camelCase")]
3443pub struct UserToolSessionApprovalCustomTool {
3444 pub kind: UserToolSessionApprovalCustomToolKind,
3446 pub tool_name: String,
3448}
3449
3450#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3452#[serde(rename_all = "camelCase")]
3453pub struct UserToolSessionApprovalExtensionManagement {
3454 pub kind: UserToolSessionApprovalExtensionManagementKind,
3456 #[serde(skip_serializing_if = "Option::is_none")]
3458 pub operation: Option<String>,
3459}
3460
3461#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3463#[serde(rename_all = "camelCase")]
3464pub struct UserToolSessionApprovalExtensionPermissionAccess {
3465 pub extension_name: String,
3467 pub kind: UserToolSessionApprovalExtensionPermissionAccessKind,
3469}
3470
3471#[derive(Debug, Clone, Serialize, Deserialize)]
3473#[serde(rename_all = "camelCase")]
3474pub struct PermissionApprovedForSession {
3475 pub approval: UserToolSessionApproval,
3477 pub kind: PermissionApprovedForSessionKind,
3479}
3480
3481#[derive(Debug, Clone, Serialize, Deserialize)]
3483#[serde(rename_all = "camelCase")]
3484pub struct PermissionApprovedForLocation {
3485 pub approval: UserToolSessionApproval,
3487 pub kind: PermissionApprovedForLocationKind,
3489 pub location_key: String,
3491}
3492
3493#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3495#[serde(rename_all = "camelCase")]
3496pub struct PermissionCancelled {
3497 pub kind: PermissionCancelledKind,
3499 #[serde(skip_serializing_if = "Option::is_none")]
3501 pub reason: Option<String>,
3502}
3503
3504#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3506#[serde(rename_all = "camelCase")]
3507pub struct PermissionRule {
3508 pub argument: Option<String>,
3510 pub kind: String,
3512}
3513
3514#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3516#[serde(rename_all = "camelCase")]
3517pub struct PermissionDeniedByRules {
3518 pub kind: PermissionDeniedByRulesKind,
3520 pub rules: Vec<PermissionRule>,
3522}
3523
3524#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3526#[serde(rename_all = "camelCase")]
3527pub struct PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser {
3528 pub kind: PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUserKind,
3530}
3531
3532#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3534#[serde(rename_all = "camelCase")]
3535pub struct PermissionDeniedInteractivelyByUser {
3536 #[serde(skip_serializing_if = "Option::is_none")]
3538 pub feedback: Option<String>,
3539 #[serde(skip_serializing_if = "Option::is_none")]
3541 pub force_reject: Option<bool>,
3542 pub kind: PermissionDeniedInteractivelyByUserKind,
3544}
3545
3546#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3548#[serde(rename_all = "camelCase")]
3549pub struct PermissionDeniedByContentExclusionPolicy {
3550 pub kind: PermissionDeniedByContentExclusionPolicyKind,
3552 pub message: String,
3554 pub path: String,
3556}
3557
3558#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3560#[serde(rename_all = "camelCase")]
3561pub struct PermissionDeniedByPermissionRequestHook {
3562 #[serde(skip_serializing_if = "Option::is_none")]
3564 pub interrupt: Option<bool>,
3565 pub kind: PermissionDeniedByPermissionRequestHookKind,
3567 #[serde(skip_serializing_if = "Option::is_none")]
3569 pub message: Option<String>,
3570}
3571
3572#[derive(Debug, Clone, Serialize, Deserialize)]
3574#[serde(rename_all = "camelCase")]
3575pub struct PermissionCompletedData {
3576 pub request_id: RequestId,
3578 pub result: PermissionResult,
3580 #[serde(skip_serializing_if = "Option::is_none")]
3582 pub tool_call_id: Option<String>,
3583}
3584
3585#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3587#[serde(rename_all = "camelCase")]
3588pub struct UserInputRequestedData {
3589 #[serde(skip_serializing_if = "Option::is_none")]
3591 pub allow_freeform: Option<bool>,
3592 #[serde(skip_serializing_if = "Option::is_none")]
3594 pub choices: Option<Vec<String>>,
3595 pub question: String,
3597 pub request_id: RequestId,
3599 #[serde(skip_serializing_if = "Option::is_none")]
3601 pub tool_call_id: Option<String>,
3602}
3603
3604#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3606#[serde(rename_all = "camelCase")]
3607pub struct UserInputCompletedData {
3608 #[serde(skip_serializing_if = "Option::is_none")]
3610 pub answer: Option<String>,
3611 pub request_id: RequestId,
3613 #[serde(skip_serializing_if = "Option::is_none")]
3615 pub was_freeform: Option<bool>,
3616}
3617
3618#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3620#[serde(rename_all = "camelCase")]
3621pub struct ElicitationRequestedSchema {
3622 pub properties: HashMap<String, serde_json::Value>,
3624 #[serde(skip_serializing_if = "Option::is_none")]
3626 pub required: Option<Vec<String>>,
3627 pub r#type: ElicitationRequestedSchemaType,
3629}
3630
3631#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3633#[serde(rename_all = "camelCase")]
3634pub struct ElicitationRequestedData {
3635 #[serde(skip_serializing_if = "Option::is_none")]
3637 pub elicitation_source: Option<String>,
3638 pub message: String,
3640 #[serde(skip_serializing_if = "Option::is_none")]
3642 pub mode: Option<ElicitationRequestedMode>,
3643 #[serde(skip_serializing_if = "Option::is_none")]
3645 pub requested_schema: Option<ElicitationRequestedSchema>,
3646 pub request_id: RequestId,
3648 #[serde(skip_serializing_if = "Option::is_none")]
3650 pub tool_call_id: Option<String>,
3651 #[serde(skip_serializing_if = "Option::is_none")]
3653 pub url: Option<String>,
3654}
3655
3656#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3658#[serde(rename_all = "camelCase")]
3659pub struct ElicitationCompletedData {
3660 #[serde(skip_serializing_if = "Option::is_none")]
3662 pub action: Option<ElicitationCompletedAction>,
3663 #[serde(skip_serializing_if = "Option::is_none")]
3665 pub content: Option<HashMap<String, serde_json::Value>>,
3666 pub request_id: RequestId,
3668}
3669
3670#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3672#[serde(rename_all = "camelCase")]
3673pub struct SamplingRequestedData {
3674 pub mcp_request_id: serde_json::Value,
3676 pub request_id: RequestId,
3678 pub server_name: String,
3680}
3681
3682#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3684#[serde(rename_all = "camelCase")]
3685pub struct SamplingCompletedData {
3686 pub request_id: RequestId,
3688}
3689
3690#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3692#[serde(rename_all = "camelCase")]
3693pub struct HeaderEntry {
3694 pub name: String,
3696 pub value: String,
3698}
3699
3700#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3702#[serde(rename_all = "camelCase")]
3703pub struct McpOauthHttpResponse {
3704 #[serde(skip_serializing_if = "Option::is_none")]
3706 pub body: Option<String>,
3707 pub headers: Vec<HeaderEntry>,
3709 pub status_code: i32,
3711}
3712
3713#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3715#[serde(rename_all = "camelCase")]
3716pub struct McpOauthRequiredStaticClientConfig {
3717 pub client_id: String,
3719 #[serde(skip_serializing_if = "Option::is_none")]
3721 pub client_secret: Option<String>,
3722 #[serde(skip_serializing_if = "Option::is_none")]
3724 pub grant_type: Option<McpOauthRequiredStaticClientConfigGrantType>,
3725 #[serde(skip_serializing_if = "Option::is_none")]
3727 pub public_client: Option<bool>,
3728}
3729
3730#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3732#[serde(rename_all = "camelCase")]
3733pub struct McpOauthWWWAuthenticateParams {
3734 #[serde(skip_serializing_if = "Option::is_none")]
3736 pub error: Option<String>,
3737 #[serde(skip_serializing_if = "Option::is_none")]
3739 pub resource_metadata_url: Option<String>,
3740 #[serde(skip_serializing_if = "Option::is_none")]
3742 pub scope: Option<String>,
3743}
3744
3745#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3747#[serde(rename_all = "camelCase")]
3748pub struct McpOauthRequiredData {
3749 #[serde(skip_serializing_if = "Option::is_none")]
3751 pub http_response: Option<McpOauthHttpResponse>,
3752 pub reason: McpOauthRequestReason,
3754 pub request_id: RequestId,
3756 #[serde(skip_serializing_if = "Option::is_none")]
3758 pub resource_metadata: Option<String>,
3759 pub server_name: String,
3761 pub server_url: String,
3763 #[serde(skip_serializing_if = "Option::is_none")]
3765 pub static_client_config: Option<McpOauthRequiredStaticClientConfig>,
3766 #[serde(skip_serializing_if = "Option::is_none")]
3768 pub www_authenticate_params: Option<McpOauthWWWAuthenticateParams>,
3769}
3770
3771#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3773#[serde(rename_all = "camelCase")]
3774pub struct McpOauthCompletedData {
3775 pub outcome: McpOauthCompletionOutcome,
3777 pub request_id: RequestId,
3779}
3780
3781#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3783#[serde(rename_all = "camelCase")]
3784pub struct McpHeadersRefreshRequiredData {
3785 pub reason: McpHeadersRefreshRequiredReason,
3787 pub request_id: RequestId,
3789 pub server_name: String,
3791 pub server_url: String,
3793}
3794
3795#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3797#[serde(rename_all = "camelCase")]
3798pub struct McpHeadersRefreshCompletedData {
3799 pub outcome: McpHeadersRefreshCompletedOutcome,
3801 pub request_id: RequestId,
3803}
3804
3805#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3807#[serde(rename_all = "camelCase")]
3808pub struct SessionCustomNotificationData {
3809 pub name: String,
3811 pub payload: serde_json::Value,
3813 pub source: String,
3815 #[serde(skip_serializing_if = "Option::is_none")]
3817 pub subject: Option<HashMap<String, String>>,
3818 #[serde(skip_serializing_if = "Option::is_none")]
3820 pub version: Option<i64>,
3821}
3822
3823#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3825#[serde(rename_all = "camelCase")]
3826pub struct ExternalToolRequestedData {
3827 #[serde(skip_serializing_if = "Option::is_none")]
3829 pub arguments: Option<serde_json::Value>,
3830 pub request_id: RequestId,
3832 pub session_id: SessionId,
3834 pub tool_call_id: String,
3836 pub tool_name: String,
3838 #[serde(skip_serializing_if = "Option::is_none")]
3840 pub traceparent: Option<String>,
3841 #[serde(skip_serializing_if = "Option::is_none")]
3843 pub tracestate: Option<String>,
3844 #[serde(skip_serializing_if = "Option::is_none")]
3846 pub working_directory: Option<String>,
3847}
3848
3849#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3851#[serde(rename_all = "camelCase")]
3852pub struct ExternalToolCompletedData {
3853 pub request_id: RequestId,
3855}
3856
3857#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3859#[serde(rename_all = "camelCase")]
3860pub struct CommandQueuedData {
3861 pub command: String,
3863 pub request_id: RequestId,
3865}
3866
3867#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3869#[serde(rename_all = "camelCase")]
3870pub struct CommandExecuteData {
3871 pub args: String,
3873 pub command: String,
3875 pub command_name: String,
3877 pub request_id: RequestId,
3879}
3880
3881#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3883#[serde(rename_all = "camelCase")]
3884pub struct CommandCompletedData {
3885 pub request_id: RequestId,
3887}
3888
3889#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3891#[serde(rename_all = "camelCase")]
3892pub struct AutoModeSwitchRequestedData {
3893 #[serde(skip_serializing_if = "Option::is_none")]
3895 pub error_code: Option<String>,
3896 pub request_id: RequestId,
3898 #[serde(skip_serializing_if = "Option::is_none")]
3900 pub retry_after_seconds: Option<i64>,
3901}
3902
3903#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3905#[serde(rename_all = "camelCase")]
3906pub struct AutoModeSwitchCompletedData {
3907 pub request_id: RequestId,
3909 pub response: AutoModeSwitchResponse,
3911}
3912
3913#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3915#[serde(rename_all = "camelCase")]
3916pub struct SessionLimitsExhaustedRequestedData {
3917 pub max_ai_credits: f64,
3919 pub request_id: RequestId,
3921 pub used_ai_credits: f64,
3923}
3924
3925#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3927#[serde(rename_all = "camelCase")]
3928pub struct SessionLimitsExhaustedResponse {
3929 pub action: SessionLimitsExhaustedResponseAction,
3931 #[serde(skip_serializing_if = "Option::is_none")]
3933 pub additional_ai_credits: Option<f64>,
3934 #[serde(skip_serializing_if = "Option::is_none")]
3936 pub max_ai_credits: Option<f64>,
3937}
3938
3939#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3941#[serde(rename_all = "camelCase")]
3942pub struct SessionLimitsExhaustedCompletedData {
3943 pub request_id: RequestId,
3945 pub response: SessionLimitsExhaustedResponse,
3947}
3948
3949#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3958#[serde(rename_all = "camelCase")]
3959pub struct SessionAutoModeResolvedData {
3960 #[serde(skip_serializing_if = "Option::is_none")]
3962 pub candidate_models: Option<Vec<String>>,
3963 #[serde(skip_serializing_if = "Option::is_none")]
3965 pub category_scores: Option<HashMap<String, f64>>,
3966 pub chosen_model: String,
3968 #[serde(skip_serializing_if = "Option::is_none")]
3970 pub confidence: Option<f64>,
3971 #[serde(skip_serializing_if = "Option::is_none")]
3973 pub predicted_label: Option<String>,
3974 #[serde(skip_serializing_if = "Option::is_none")]
3976 pub reasoning_bucket: Option<AutoModeResolvedReasoningBucket>,
3977}
3978
3979#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3988#[serde(rename_all = "camelCase")]
3989pub struct SessionManagedSettingsResolvedData {
3990 pub bypass_permissions_disabled: bool,
3992 pub device_managed: bool,
3994 pub fail_closed: bool,
3996 pub managed_keys: Vec<String>,
3998 pub server_managed: bool,
4000 #[serde(skip_serializing_if = "Option::is_none")]
4002 pub settings: Option<serde_json::Value>,
4003 pub source: ManagedSettingsResolvedSource,
4005}
4006
4007#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4009#[serde(rename_all = "camelCase")]
4010pub struct CommandsChangedCommand {
4011 #[serde(skip_serializing_if = "Option::is_none")]
4013 pub description: Option<String>,
4014 pub name: String,
4016}
4017
4018#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4020#[serde(rename_all = "camelCase")]
4021pub struct CommandsChangedData {
4022 pub commands: Vec<CommandsChangedCommand>,
4024}
4025
4026#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4028#[serde(rename_all = "camelCase")]
4029pub struct CapabilitiesChangedUI {
4030 #[serde(skip_serializing_if = "Option::is_none")]
4032 pub canvases: Option<bool>,
4033 #[serde(skip_serializing_if = "Option::is_none")]
4035 pub elicitation: Option<bool>,
4036 #[serde(skip_serializing_if = "Option::is_none")]
4038 pub mcp_apps: Option<bool>,
4039}
4040
4041#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4043#[serde(rename_all = "camelCase")]
4044pub struct CapabilitiesChangedData {
4045 #[serde(skip_serializing_if = "Option::is_none")]
4047 pub ui: Option<CapabilitiesChangedUI>,
4048}
4049
4050#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4052#[serde(rename_all = "camelCase")]
4053pub struct ExitPlanModeRequestedData {
4054 pub actions: Vec<ExitPlanModeAction>,
4056 pub plan_content: String,
4058 pub recommended_action: ExitPlanModeAction,
4060 pub request_id: RequestId,
4062 pub summary: String,
4064}
4065
4066#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4068#[serde(rename_all = "camelCase")]
4069pub struct ExitPlanModeCompletedData {
4070 #[serde(skip_serializing_if = "Option::is_none")]
4072 pub approved: Option<bool>,
4073 #[serde(skip_serializing_if = "Option::is_none")]
4075 pub auto_approve_edits: Option<bool>,
4076 #[serde(skip_serializing_if = "Option::is_none")]
4078 pub feedback: Option<String>,
4079 pub request_id: RequestId,
4081 #[serde(skip_serializing_if = "Option::is_none")]
4083 pub selected_action: Option<ExitPlanModeAction>,
4084}
4085
4086#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4088#[serde(rename_all = "camelCase")]
4089pub struct SessionToolsUpdatedData {
4090 pub model: String,
4092}
4093
4094#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4096#[serde(rename_all = "camelCase")]
4097pub struct SessionBackgroundTasksChangedData {}
4098
4099#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4101#[serde(rename_all = "camelCase")]
4102pub struct SkillsLoadedSkill {
4103 #[serde(skip_serializing_if = "Option::is_none")]
4105 pub argument_hint: Option<String>,
4106 pub description: String,
4108 pub enabled: bool,
4110 pub name: String,
4112 #[serde(skip_serializing_if = "Option::is_none")]
4114 pub path: Option<String>,
4115 pub source: SkillSource,
4117 pub user_invocable: bool,
4119}
4120
4121#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4123#[serde(rename_all = "camelCase")]
4124pub struct SessionSkillsLoadedData {
4125 pub skills: Vec<SkillsLoadedSkill>,
4127}
4128
4129#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4131#[serde(rename_all = "camelCase")]
4132pub struct CustomAgentsUpdatedAgent {
4133 pub description: String,
4135 pub display_name: String,
4137 pub id: String,
4139 #[serde(skip_serializing_if = "Option::is_none")]
4141 pub model: Option<String>,
4142 pub name: String,
4144 pub source: String,
4146 pub tools: Option<Vec<String>>,
4148 pub user_invocable: bool,
4150}
4151
4152#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4154#[serde(rename_all = "camelCase")]
4155pub struct SessionCustomAgentsUpdatedData {
4156 pub agents: Vec<CustomAgentsUpdatedAgent>,
4158 pub errors: Vec<String>,
4160 pub warnings: Vec<String>,
4162}
4163
4164#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4166#[serde(rename_all = "camelCase")]
4167pub struct McpServersLoadedServer {
4168 #[serde(skip_serializing_if = "Option::is_none")]
4170 pub error: Option<String>,
4171 pub name: String,
4173 #[serde(skip_serializing_if = "Option::is_none")]
4175 pub plugin_name: Option<String>,
4176 #[serde(skip_serializing_if = "Option::is_none")]
4178 pub plugin_version: Option<String>,
4179 #[serde(skip_serializing_if = "Option::is_none")]
4181 pub source: Option<McpServerSource>,
4182 pub status: McpServerStatus,
4184 #[serde(skip_serializing_if = "Option::is_none")]
4186 pub transport: Option<McpServerTransport>,
4187}
4188
4189#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4191#[serde(rename_all = "camelCase")]
4192pub struct SessionMcpServersLoadedData {
4193 pub servers: Vec<McpServersLoadedServer>,
4195}
4196
4197#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4199#[serde(rename_all = "camelCase")]
4200pub struct SessionMcpServerStatusChangedData {
4201 #[serde(skip_serializing_if = "Option::is_none")]
4203 pub error: Option<String>,
4204 pub server_name: String,
4206 pub status: McpServerStatus,
4208}
4209
4210#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4212#[serde(rename_all = "camelCase")]
4213pub struct McpToolsListChangedData {
4214 pub server_name: String,
4216}
4217
4218#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4220#[serde(rename_all = "camelCase")]
4221pub struct McpResourcesListChangedData {
4222 pub server_name: String,
4224}
4225
4226#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4228#[serde(rename_all = "camelCase")]
4229pub struct McpPromptsListChangedData {
4230 pub server_name: String,
4232}
4233
4234#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4236#[serde(rename_all = "camelCase")]
4237pub struct ExtensionsLoadedExtension {
4238 pub id: String,
4240 pub name: String,
4242 pub source: ExtensionsLoadedExtensionSource,
4244 pub status: ExtensionsLoadedExtensionStatus,
4246}
4247
4248#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4250#[serde(rename_all = "camelCase")]
4251pub struct SessionExtensionsLoadedData {
4252 pub extensions: Vec<ExtensionsLoadedExtension>,
4254}
4255
4256#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4265#[serde(rename_all = "camelCase")]
4266pub struct SessionCanvasOpenedData {
4267 pub canvas_id: String,
4269 pub extension_id: String,
4271 #[serde(skip_serializing_if = "Option::is_none")]
4273 pub extension_name: Option<String>,
4274 #[serde(skip_serializing_if = "Option::is_none")]
4276 pub icon: Option<String>,
4277 #[serde(skip_serializing_if = "Option::is_none")]
4279 pub input: Option<serde_json::Value>,
4280 pub instance_id: String,
4282 #[serde(skip_serializing_if = "Option::is_none")]
4284 pub status: Option<String>,
4285 #[serde(skip_serializing_if = "Option::is_none")]
4287 pub title: Option<String>,
4288 #[serde(skip_serializing_if = "Option::is_none")]
4290 pub url: Option<String>,
4291}
4292
4293#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4302#[serde(rename_all = "camelCase")]
4303pub struct CanvasRegistryChangedCanvasAction {
4304 #[serde(skip_serializing_if = "Option::is_none")]
4306 pub description: Option<String>,
4307 #[serde(skip_serializing_if = "Option::is_none")]
4309 pub input_schema: Option<serde_json::Value>,
4310 pub name: String,
4312}
4313
4314#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4323#[serde(rename_all = "camelCase")]
4324pub struct CanvasRegistryChangedCanvas {
4325 #[serde(skip_serializing_if = "Option::is_none")]
4327 pub actions: Option<Vec<CanvasRegistryChangedCanvasAction>>,
4328 pub canvas_id: String,
4330 pub description: String,
4332 pub display_name: String,
4334 pub extension_id: String,
4336 #[serde(skip_serializing_if = "Option::is_none")]
4338 pub extension_name: Option<String>,
4339 #[serde(skip_serializing_if = "Option::is_none")]
4341 pub icon: Option<String>,
4342 #[serde(skip_serializing_if = "Option::is_none")]
4344 pub input_schema: Option<serde_json::Value>,
4345}
4346
4347#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4356#[serde(rename_all = "camelCase")]
4357pub struct SessionCanvasRegistryChangedData {
4358 pub canvases: Vec<CanvasRegistryChangedCanvas>,
4360}
4361
4362#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4371#[serde(rename_all = "camelCase")]
4372pub struct SessionCanvasClosedData {
4373 pub canvas_id: String,
4375 pub extension_id: String,
4377 pub instance_id: String,
4379}
4380
4381#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4390#[serde(rename_all = "camelCase")]
4391pub struct SessionCanvasUnavailableData {
4392 pub canvas_id: String,
4394 pub extension_id: String,
4396 pub instance_id: String,
4398}
4399
4400#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4409#[serde(rename_all = "camelCase")]
4410pub struct SessionCanvasRecordedData {
4411 pub canvas_id: String,
4413 pub extension_id: String,
4415 #[serde(skip_serializing_if = "Option::is_none")]
4417 pub input: Option<serde_json::Value>,
4418 pub instance_id: String,
4420 #[serde(skip_serializing_if = "Option::is_none")]
4422 pub title: Option<String>,
4423}
4424
4425#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4434#[serde(rename_all = "camelCase")]
4435pub struct SessionCanvasRemovedData {
4436 pub canvas_id: String,
4438 pub extension_id: String,
4440 pub instance_id: String,
4442}
4443
4444#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4446#[serde(rename_all = "camelCase")]
4447pub struct SessionExtensionsAttachmentsPushedData {
4448 pub attachments: Vec<serde_json::Value>,
4450}
4451
4452#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4454#[serde(rename_all = "camelCase")]
4455pub struct McpAppToolCallCompleteError {
4456 pub message: String,
4458}
4459
4460#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4462#[serde(rename_all = "camelCase")]
4463pub struct McpAppToolCallCompleteToolMetaUI {
4464 #[serde(skip_serializing_if = "Option::is_none")]
4466 pub resource_uri: Option<String>,
4467 #[serde(skip_serializing_if = "Option::is_none")]
4469 pub visibility: Option<Vec<String>>,
4470}
4471
4472#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4474#[serde(rename_all = "camelCase")]
4475pub struct McpAppToolCallCompleteToolMeta {
4476 #[serde(skip_serializing_if = "Option::is_none")]
4478 pub ui: Option<McpAppToolCallCompleteToolMetaUI>,
4479}
4480
4481#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4483#[serde(rename_all = "camelCase")]
4484pub struct McpAppToolCallCompleteData {
4485 #[serde(skip_serializing_if = "Option::is_none")]
4487 pub arguments: Option<HashMap<String, serde_json::Value>>,
4488 pub duration_ms: f64,
4490 #[serde(skip_serializing_if = "Option::is_none")]
4492 pub error: Option<McpAppToolCallCompleteError>,
4493 #[serde(skip_serializing_if = "Option::is_none")]
4495 pub result: Option<HashMap<String, serde_json::Value>>,
4496 pub server_name: String,
4498 pub success: bool,
4500 #[serde(skip_serializing_if = "Option::is_none")]
4502 pub tool_meta: Option<McpAppToolCallCompleteToolMeta>,
4503 pub tool_name: String,
4505}
4506
4507#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4509pub enum WorkingDirectoryContextHostType {
4510 #[serde(rename = "github")]
4512 GitHub,
4513 #[serde(rename = "ado")]
4515 Ado,
4516 #[default]
4518 #[serde(other)]
4519 Unknown,
4520}
4521
4522#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4524pub enum ContextTier {
4525 #[serde(rename = "default")]
4527 Default,
4528 #[serde(rename = "long_context")]
4530 LongContext,
4531 #[default]
4533 #[serde(other)]
4534 Unknown,
4535}
4536
4537#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4539pub enum ReasoningSummary {
4540 #[serde(rename = "none")]
4542 None,
4543 #[serde(rename = "concise")]
4545 Concise,
4546 #[serde(rename = "detailed")]
4548 Detailed,
4549 #[default]
4551 #[serde(other)]
4552 Unknown,
4553}
4554
4555#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4557pub enum Verbosity {
4558 #[serde(rename = "low")]
4560 Low,
4561 #[serde(rename = "medium")]
4563 Medium,
4564 #[serde(rename = "high")]
4566 High,
4567 #[default]
4569 #[serde(other)]
4570 Unknown,
4571}
4572
4573#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4575pub enum AutopilotObjectiveChangedOperation {
4576 #[serde(rename = "create")]
4578 Create,
4579 #[serde(rename = "update")]
4581 Update,
4582 #[serde(rename = "delete")]
4584 Delete,
4585 #[default]
4587 #[serde(other)]
4588 Unknown,
4589}
4590
4591#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4593pub enum AutopilotObjectiveChangedStatus {
4594 #[serde(rename = "active")]
4596 Active,
4597 #[serde(rename = "paused")]
4599 Paused,
4600 #[serde(rename = "cap_reached")]
4602 CapReached,
4603 #[serde(rename = "completed")]
4605 Completed,
4606 #[default]
4608 #[serde(other)]
4609 Unknown,
4610}
4611
4612#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4614pub enum SessionMode {
4615 #[serde(rename = "interactive")]
4617 Interactive,
4618 #[serde(rename = "plan")]
4620 Plan,
4621 #[serde(rename = "autopilot")]
4623 Autopilot,
4624 #[default]
4626 #[serde(other)]
4627 Unknown,
4628}
4629
4630#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4639pub enum PermissionAllowAllMode {
4640 #[serde(rename = "off")]
4642 Off,
4643 #[serde(rename = "on")]
4645 On,
4646 #[serde(rename = "auto")]
4648 Auto,
4649 #[default]
4651 #[serde(other)]
4652 Unknown,
4653}
4654
4655#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4657pub enum PlanChangedOperation {
4658 #[serde(rename = "create")]
4660 Create,
4661 #[serde(rename = "update")]
4663 Update,
4664 #[serde(rename = "delete")]
4666 Delete,
4667 #[default]
4669 #[serde(other)]
4670 Unknown,
4671}
4672
4673#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4675pub enum WorkspaceFileChangedOperation {
4676 #[serde(rename = "create")]
4678 Create,
4679 #[serde(rename = "update")]
4681 Update,
4682 #[default]
4684 #[serde(other)]
4685 Unknown,
4686}
4687
4688#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4690pub enum HandoffSourceType {
4691 #[serde(rename = "remote")]
4693 Remote,
4694 #[serde(rename = "local")]
4696 Local,
4697 #[default]
4699 #[serde(other)]
4700 Unknown,
4701}
4702
4703#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4705pub enum ShutdownType {
4706 #[serde(rename = "routine")]
4708 Routine,
4709 #[serde(rename = "error")]
4711 Error,
4712 #[default]
4714 #[serde(other)]
4715 Unknown,
4716}
4717
4718#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4720pub enum UserMessageAgentMode {
4721 #[serde(rename = "interactive")]
4723 Interactive,
4724 #[serde(rename = "plan")]
4726 Plan,
4727 #[serde(rename = "autopilot")]
4729 Autopilot,
4730 #[serde(rename = "shell")]
4732 Shell,
4733 #[default]
4735 #[serde(other)]
4736 Unknown,
4737}
4738
4739#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4741pub enum UserMessageDelivery {
4742 #[serde(rename = "idle")]
4744 Idle,
4745 #[serde(rename = "steering")]
4747 Steering,
4748 #[serde(rename = "queued")]
4750 Queued,
4751 #[default]
4753 #[serde(other)]
4754 Unknown,
4755}
4756
4757#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4759pub enum AssistantMessageToolRequestType {
4760 #[serde(rename = "function")]
4762 Function,
4763 #[serde(rename = "custom")]
4765 Custom,
4766 #[default]
4768 #[serde(other)]
4769 Unknown,
4770}
4771
4772#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4781pub enum CitationProvider {
4782 #[serde(rename = "anthropic")]
4784 Anthropic,
4785 #[serde(rename = "openai")]
4787 Openai,
4788 #[serde(rename = "client")]
4790 Client,
4791 #[default]
4793 #[serde(other)]
4794 Unknown,
4795}
4796
4797#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4799pub enum AssistantUsageApiEndpoint {
4800 #[serde(rename = "/chat/completions")]
4802 ChatCompletions,
4803 #[serde(rename = "/v1/messages")]
4805 V1Messages,
4806 #[serde(rename = "/responses")]
4808 Responses,
4809 #[serde(rename = "ws:/responses")]
4811 WsResponses,
4812 #[default]
4814 #[serde(other)]
4815 Unknown,
4816}
4817
4818#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4820pub enum ModelCallFailureBadRequestKind {
4821 #[serde(rename = "bodyless")]
4823 Bodyless,
4824 #[serde(rename = "structured_error")]
4826 StructuredError,
4827 #[default]
4829 #[serde(other)]
4830 Unknown,
4831}
4832
4833#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4835pub enum ModelCallFailureSource {
4836 #[serde(rename = "top_level")]
4838 TopLevel,
4839 #[serde(rename = "subagent")]
4841 Subagent,
4842 #[serde(rename = "mcp_sampling")]
4844 McpSampling,
4845 #[default]
4847 #[serde(other)]
4848 Unknown,
4849}
4850
4851#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4853pub enum AbortReason {
4854 #[serde(rename = "user_initiated")]
4856 UserInitiated,
4857 #[serde(rename = "remote_command")]
4859 RemoteCommand,
4860 #[serde(rename = "user_abort")]
4862 UserAbort,
4863 #[default]
4865 #[serde(other)]
4866 Unknown,
4867}
4868
4869#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4871pub enum ToolExecutionStartToolDescriptionMetaUIVisibility {
4872 #[serde(rename = "model")]
4874 Model,
4875 #[serde(rename = "app")]
4877 App,
4878 #[default]
4880 #[serde(other)]
4881 Unknown,
4882}
4883
4884#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4886pub enum ToolExecutionCompleteContentTextType {
4887 #[serde(rename = "text")]
4888 #[default]
4889 Text,
4890}
4891
4892#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4894pub enum ToolExecutionCompleteContentTerminalType {
4895 #[serde(rename = "terminal")]
4896 #[default]
4897 Terminal,
4898}
4899
4900#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4902pub enum ToolExecutionCompleteContentShellExitType {
4903 #[serde(rename = "shell_exit")]
4904 #[default]
4905 ShellExit,
4906}
4907
4908#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4910pub enum ToolExecutionCompleteContentImageType {
4911 #[serde(rename = "image")]
4912 #[default]
4913 Image,
4914}
4915
4916#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4918pub enum ToolExecutionCompleteContentAudioType {
4919 #[serde(rename = "audio")]
4920 #[default]
4921 Audio,
4922}
4923
4924#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4926pub enum ToolExecutionCompleteContentResourceLinkIconTheme {
4927 #[serde(rename = "light")]
4929 Light,
4930 #[serde(rename = "dark")]
4932 Dark,
4933 #[default]
4935 #[serde(other)]
4936 Unknown,
4937}
4938
4939#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4941pub enum ToolExecutionCompleteContentResourceLinkType {
4942 #[serde(rename = "resource_link")]
4943 #[default]
4944 ResourceLink,
4945}
4946
4947#[derive(Debug, Clone, Serialize, Deserialize)]
4949#[serde(untagged)]
4950pub enum ToolExecutionCompleteContentResourceDetails {
4951 EmbeddedTextResourceContents(EmbeddedTextResourceContents),
4952 EmbeddedBlobResourceContents(EmbeddedBlobResourceContents),
4953}
4954
4955#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4957pub enum ToolExecutionCompleteContentResourceType {
4958 #[serde(rename = "resource")]
4959 #[default]
4960 Resource,
4961}
4962
4963#[derive(Debug, Clone, Serialize, Deserialize)]
4965#[serde(untagged)]
4966pub enum ToolExecutionCompleteContent {
4967 Text(ToolExecutionCompleteContentText),
4968 Terminal(ToolExecutionCompleteContentTerminal),
4969 ShellExit(ToolExecutionCompleteContentShellExit),
4970 Image(ToolExecutionCompleteContentImage),
4971 Audio(ToolExecutionCompleteContentAudio),
4972 ResourceLink(ToolExecutionCompleteContentResourceLink),
4973 Resource(ToolExecutionCompleteContentResource),
4974}
4975
4976#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4978pub enum ToolExecutionCompleteToolDescriptionMetaUIVisibility {
4979 #[serde(rename = "model")]
4981 Model,
4982 #[serde(rename = "app")]
4984 App,
4985 #[default]
4987 #[serde(other)]
4988 Unknown,
4989}
4990
4991#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4993pub enum SkillInvokedTrigger {
4994 #[serde(rename = "user-invoked")]
4996 UserInvoked,
4997 #[serde(rename = "agent-invoked")]
4999 AgentInvoked,
5000 #[serde(rename = "context-load")]
5002 ContextLoad,
5003 #[default]
5005 #[serde(other)]
5006 Unknown,
5007}
5008
5009#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5011pub enum BinaryAssetType {
5012 #[serde(rename = "image")]
5014 Image,
5015 #[serde(rename = "resource")]
5017 Resource,
5018 #[default]
5020 #[serde(other)]
5021 Unknown,
5022}
5023
5024#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5026pub enum SystemMessageRole {
5027 #[serde(rename = "system")]
5029 System,
5030 #[serde(rename = "developer")]
5032 Developer,
5033 #[default]
5035 #[serde(other)]
5036 Unknown,
5037}
5038
5039#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5041pub enum PermissionRequestShellKind {
5042 #[serde(rename = "shell")]
5043 #[default]
5044 Shell,
5045}
5046
5047#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5049pub enum PermissionRequestWriteKind {
5050 #[serde(rename = "write")]
5051 #[default]
5052 Write,
5053}
5054
5055#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5057pub enum PermissionRequestReadKind {
5058 #[serde(rename = "read")]
5059 #[default]
5060 Read,
5061}
5062
5063#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5065pub enum PermissionRequestMcpKind {
5066 #[serde(rename = "mcp")]
5067 #[default]
5068 Mcp,
5069}
5070
5071#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5073pub enum PermissionRequestUrlKind {
5074 #[serde(rename = "url")]
5075 #[default]
5076 Url,
5077}
5078
5079#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5081pub enum PermissionRequestMemoryAction {
5082 #[serde(rename = "store")]
5084 Store,
5085 #[serde(rename = "vote")]
5087 Vote,
5088 #[default]
5090 #[serde(other)]
5091 Unknown,
5092}
5093
5094#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5096pub enum PermissionRequestMemoryDirection {
5097 #[serde(rename = "upvote")]
5099 Upvote,
5100 #[serde(rename = "downvote")]
5102 Downvote,
5103 #[default]
5105 #[serde(other)]
5106 Unknown,
5107}
5108
5109#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5111pub enum PermissionRequestMemoryKind {
5112 #[serde(rename = "memory")]
5113 #[default]
5114 Memory,
5115}
5116
5117#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5119pub enum PermissionRequestCustomToolKind {
5120 #[serde(rename = "custom-tool")]
5121 #[default]
5122 CustomTool,
5123}
5124
5125#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5127pub enum PermissionRequestHookKind {
5128 #[serde(rename = "hook")]
5129 #[default]
5130 Hook,
5131}
5132
5133#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5135pub enum PermissionRequestExtensionManagementKind {
5136 #[serde(rename = "extension-management")]
5137 #[default]
5138 ExtensionManagement,
5139}
5140
5141#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5143pub enum PermissionRequestExtensionPermissionAccessKind {
5144 #[serde(rename = "extension-permission-access")]
5145 #[default]
5146 ExtensionPermissionAccess,
5147}
5148
5149#[derive(Debug, Clone, Serialize, Deserialize)]
5151#[serde(untagged)]
5152pub enum PermissionRequest {
5153 Shell(PermissionRequestShell),
5154 Write(PermissionRequestWrite),
5155 Read(PermissionRequestRead),
5156 Mcp(PermissionRequestMcp),
5157 Url(PermissionRequestUrl),
5158 Memory(PermissionRequestMemory),
5159 CustomTool(PermissionRequestCustomTool),
5160 Hook(PermissionRequestHook),
5161 ExtensionManagement(PermissionRequestExtensionManagement),
5162 ExtensionPermissionAccess(PermissionRequestExtensionPermissionAccess),
5163}
5164
5165#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5174pub enum AutoApprovalRecommendation {
5175 #[serde(rename = "approve")]
5177 Approve,
5178 #[serde(rename = "requireApproval")]
5180 RequireApproval,
5181 #[serde(rename = "excluded")]
5183 Excluded,
5184 #[serde(rename = "error")]
5186 Error,
5187 #[default]
5189 #[serde(other)]
5190 Unknown,
5191}
5192
5193#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5195pub enum PermissionPromptRequestCommandsKind {
5196 #[serde(rename = "commands")]
5197 #[default]
5198 Commands,
5199}
5200
5201#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5203pub enum PermissionPromptRequestWriteKind {
5204 #[serde(rename = "write")]
5205 #[default]
5206 Write,
5207}
5208
5209#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5211pub enum PermissionPromptRequestReadKind {
5212 #[serde(rename = "read")]
5213 #[default]
5214 Read,
5215}
5216
5217#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5219pub enum PermissionPromptRequestMcpKind {
5220 #[serde(rename = "mcp")]
5221 #[default]
5222 Mcp,
5223}
5224
5225#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5227pub enum PermissionPromptRequestUrlKind {
5228 #[serde(rename = "url")]
5229 #[default]
5230 Url,
5231}
5232
5233#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5235pub enum PermissionPromptRequestMemoryKind {
5236 #[serde(rename = "memory")]
5237 #[default]
5238 Memory,
5239}
5240
5241#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5243pub enum PermissionPromptRequestCustomToolKind {
5244 #[serde(rename = "custom-tool")]
5245 #[default]
5246 CustomTool,
5247}
5248
5249#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5251pub enum PermissionPromptRequestPathAccessKind {
5252 #[serde(rename = "read")]
5254 Read,
5255 #[serde(rename = "shell")]
5257 Shell,
5258 #[serde(rename = "write")]
5260 Write,
5261 #[default]
5263 #[serde(other)]
5264 Unknown,
5265}
5266
5267#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5269pub enum PermissionPromptRequestPathKind {
5270 #[serde(rename = "path")]
5271 #[default]
5272 Path,
5273}
5274
5275#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5277pub enum PermissionPromptRequestHookKind {
5278 #[serde(rename = "hook")]
5279 #[default]
5280 Hook,
5281}
5282
5283#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5285pub enum PermissionPromptRequestExtensionManagementKind {
5286 #[serde(rename = "extension-management")]
5287 #[default]
5288 ExtensionManagement,
5289}
5290
5291#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5293pub enum PermissionPromptRequestExtensionPermissionAccessKind {
5294 #[serde(rename = "extension-permission-access")]
5295 #[default]
5296 ExtensionPermissionAccess,
5297}
5298
5299#[derive(Debug, Clone, Serialize, Deserialize)]
5301#[serde(untagged)]
5302pub enum PermissionPromptRequest {
5303 Commands(PermissionPromptRequestCommands),
5304 Write(PermissionPromptRequestWrite),
5305 Read(PermissionPromptRequestRead),
5306 Mcp(PermissionPromptRequestMcp),
5307 Url(PermissionPromptRequestUrl),
5308 Memory(PermissionPromptRequestMemory),
5309 CustomTool(PermissionPromptRequestCustomTool),
5310 Path(PermissionPromptRequestPath),
5311 Hook(PermissionPromptRequestHook),
5312 ExtensionManagement(PermissionPromptRequestExtensionManagement),
5313 ExtensionPermissionAccess(PermissionPromptRequestExtensionPermissionAccess),
5314}
5315
5316#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5318pub enum PermissionApprovedKind {
5319 #[serde(rename = "approved")]
5320 #[default]
5321 Approved,
5322}
5323
5324#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5326pub enum UserToolSessionApprovalCommandsKind {
5327 #[serde(rename = "commands")]
5328 #[default]
5329 Commands,
5330}
5331
5332#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5334pub enum UserToolSessionApprovalReadKind {
5335 #[serde(rename = "read")]
5336 #[default]
5337 Read,
5338}
5339
5340#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5342pub enum UserToolSessionApprovalWriteKind {
5343 #[serde(rename = "write")]
5344 #[default]
5345 Write,
5346}
5347
5348#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5350pub enum UserToolSessionApprovalMcpKind {
5351 #[serde(rename = "mcp")]
5352 #[default]
5353 Mcp,
5354}
5355
5356#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5358pub enum UserToolSessionApprovalMemoryKind {
5359 #[serde(rename = "memory")]
5360 #[default]
5361 Memory,
5362}
5363
5364#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5366pub enum UserToolSessionApprovalCustomToolKind {
5367 #[serde(rename = "custom-tool")]
5368 #[default]
5369 CustomTool,
5370}
5371
5372#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5374pub enum UserToolSessionApprovalExtensionManagementKind {
5375 #[serde(rename = "extension-management")]
5376 #[default]
5377 ExtensionManagement,
5378}
5379
5380#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5382pub enum UserToolSessionApprovalExtensionPermissionAccessKind {
5383 #[serde(rename = "extension-permission-access")]
5384 #[default]
5385 ExtensionPermissionAccess,
5386}
5387
5388#[derive(Debug, Clone, Serialize, Deserialize)]
5390#[serde(untagged)]
5391pub enum UserToolSessionApproval {
5392 Commands(UserToolSessionApprovalCommands),
5393 Read(UserToolSessionApprovalRead),
5394 Write(UserToolSessionApprovalWrite),
5395 Mcp(UserToolSessionApprovalMcp),
5396 Memory(UserToolSessionApprovalMemory),
5397 CustomTool(UserToolSessionApprovalCustomTool),
5398 ExtensionManagement(UserToolSessionApprovalExtensionManagement),
5399 ExtensionPermissionAccess(UserToolSessionApprovalExtensionPermissionAccess),
5400}
5401
5402#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5404pub enum PermissionApprovedForSessionKind {
5405 #[serde(rename = "approved-for-session")]
5406 #[default]
5407 ApprovedForSession,
5408}
5409
5410#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5412pub enum PermissionApprovedForLocationKind {
5413 #[serde(rename = "approved-for-location")]
5414 #[default]
5415 ApprovedForLocation,
5416}
5417
5418#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5420pub enum PermissionCancelledKind {
5421 #[serde(rename = "cancelled")]
5422 #[default]
5423 Cancelled,
5424}
5425
5426#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5428pub enum PermissionDeniedByRulesKind {
5429 #[serde(rename = "denied-by-rules")]
5430 #[default]
5431 DeniedByRules,
5432}
5433
5434#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5436pub enum PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUserKind {
5437 #[serde(rename = "denied-no-approval-rule-and-could-not-request-from-user")]
5438 #[default]
5439 DeniedNoApprovalRuleAndCouldNotRequestFromUser,
5440}
5441
5442#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5444pub enum PermissionDeniedInteractivelyByUserKind {
5445 #[serde(rename = "denied-interactively-by-user")]
5446 #[default]
5447 DeniedInteractivelyByUser,
5448}
5449
5450#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5452pub enum PermissionDeniedByContentExclusionPolicyKind {
5453 #[serde(rename = "denied-by-content-exclusion-policy")]
5454 #[default]
5455 DeniedByContentExclusionPolicy,
5456}
5457
5458#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5460pub enum PermissionDeniedByPermissionRequestHookKind {
5461 #[serde(rename = "denied-by-permission-request-hook")]
5462 #[default]
5463 DeniedByPermissionRequestHook,
5464}
5465
5466#[derive(Debug, Clone, Serialize, Deserialize)]
5468#[serde(untagged)]
5469pub enum PermissionResult {
5470 Approved(PermissionApproved),
5471 ApprovedForSession(PermissionApprovedForSession),
5472 ApprovedForLocation(PermissionApprovedForLocation),
5473 Cancelled(PermissionCancelled),
5474 DeniedByRules(PermissionDeniedByRules),
5475 DeniedNoApprovalRuleAndCouldNotRequestFromUser(
5476 PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser,
5477 ),
5478 DeniedInteractivelyByUser(PermissionDeniedInteractivelyByUser),
5479 DeniedByContentExclusionPolicy(PermissionDeniedByContentExclusionPolicy),
5480 DeniedByPermissionRequestHook(PermissionDeniedByPermissionRequestHook),
5481}
5482
5483#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5485pub enum ElicitationRequestedMode {
5486 #[serde(rename = "form")]
5488 Form,
5489 #[serde(rename = "url")]
5491 Url,
5492 #[default]
5494 #[serde(other)]
5495 Unknown,
5496}
5497
5498#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5500pub enum ElicitationRequestedSchemaType {
5501 #[serde(rename = "object")]
5502 #[default]
5503 Object,
5504}
5505
5506#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5508pub enum ElicitationCompletedAction {
5509 #[serde(rename = "accept")]
5511 Accept,
5512 #[serde(rename = "decline")]
5514 Decline,
5515 #[serde(rename = "cancel")]
5517 Cancel,
5518 #[default]
5520 #[serde(other)]
5521 Unknown,
5522}
5523
5524#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5526pub enum McpOauthRequestReason {
5527 #[serde(rename = "initial")]
5529 Initial,
5530 #[serde(rename = "refresh")]
5532 Refresh,
5533 #[serde(rename = "reauth")]
5535 Reauth,
5536 #[serde(rename = "upscope")]
5538 Upscope,
5539 #[default]
5541 #[serde(other)]
5542 Unknown,
5543}
5544
5545#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5547pub enum McpOauthRequiredStaticClientConfigGrantType {
5548 #[serde(rename = "client_credentials")]
5549 #[default]
5550 ClientCredentials,
5551}
5552
5553#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5555pub enum McpOauthCompletionOutcome {
5556 #[serde(rename = "token")]
5558 Token,
5559 #[serde(rename = "cancelled")]
5561 Cancelled,
5562 #[default]
5564 #[serde(other)]
5565 Unknown,
5566}
5567
5568#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5570pub enum McpHeadersRefreshRequiredReason {
5571 #[serde(rename = "startup")]
5573 Startup,
5574 #[serde(rename = "ttl-expired")]
5576 TtlExpired,
5577 #[serde(rename = "auth-failed")]
5579 AuthFailed,
5580 #[default]
5582 #[serde(other)]
5583 Unknown,
5584}
5585
5586#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5588pub enum McpHeadersRefreshCompletedOutcome {
5589 #[serde(rename = "headers")]
5591 Headers,
5592 #[serde(rename = "none")]
5594 None,
5595 #[serde(rename = "timeout")]
5597 Timeout,
5598 #[default]
5600 #[serde(other)]
5601 Unknown,
5602}
5603
5604#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5606pub enum AutoModeSwitchResponse {
5607 #[serde(rename = "yes")]
5609 Yes,
5610 #[serde(rename = "yes_always")]
5612 YesAlways,
5613 #[serde(rename = "no")]
5615 No,
5616 #[default]
5618 #[serde(other)]
5619 Unknown,
5620}
5621
5622#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5624pub enum SessionLimitsExhaustedResponseAction {
5625 #[serde(rename = "add")]
5627 Add,
5628 #[serde(rename = "set")]
5630 Set,
5631 #[serde(rename = "unset")]
5633 Unset,
5634 #[serde(rename = "cancel")]
5636 Cancel,
5637 #[default]
5639 #[serde(other)]
5640 Unknown,
5641}
5642
5643#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5645pub enum AutoModeResolvedReasoningBucket {
5646 #[serde(rename = "low")]
5648 Low,
5649 #[serde(rename = "medium")]
5651 Medium,
5652 #[serde(rename = "high")]
5654 High,
5655 #[default]
5657 #[serde(other)]
5658 Unknown,
5659}
5660
5661#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5663pub enum ManagedSettingsResolvedSource {
5664 #[serde(rename = "server")]
5666 Server,
5667 #[serde(rename = "device")]
5669 Device,
5670 #[serde(rename = "none")]
5672 None,
5673 #[default]
5675 #[serde(other)]
5676 Unknown,
5677}
5678
5679#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5681pub enum ExitPlanModeAction {
5682 #[serde(rename = "exit_only")]
5684 ExitOnly,
5685 #[serde(rename = "interactive")]
5687 Interactive,
5688 #[serde(rename = "autopilot")]
5690 Autopilot,
5691 #[serde(rename = "autopilot_fleet")]
5693 AutopilotFleet,
5694 #[default]
5696 #[serde(other)]
5697 Unknown,
5698}
5699
5700#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5702pub enum SkillSource {
5703 #[serde(rename = "project")]
5705 Project,
5706 #[serde(rename = "inherited")]
5708 Inherited,
5709 #[serde(rename = "personal-copilot")]
5711 PersonalCopilot,
5712 #[serde(rename = "personal-agents")]
5714 PersonalAgents,
5715 #[serde(rename = "plugin")]
5717 Plugin,
5718 #[serde(rename = "custom")]
5720 Custom,
5721 #[serde(rename = "builtin")]
5723 Builtin,
5724 #[default]
5726 #[serde(other)]
5727 Unknown,
5728}
5729
5730#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5732pub enum McpServerSource {
5733 #[serde(rename = "user")]
5735 User,
5736 #[serde(rename = "workspace")]
5738 Workspace,
5739 #[serde(rename = "plugin")]
5741 Plugin,
5742 #[serde(rename = "builtin")]
5744 Builtin,
5745 #[default]
5747 #[serde(other)]
5748 Unknown,
5749}
5750
5751#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5753pub enum McpServerStatus {
5754 #[serde(rename = "connected")]
5756 Connected,
5757 #[serde(rename = "failed")]
5759 Failed,
5760 #[serde(rename = "needs-auth")]
5762 NeedsAuth,
5763 #[serde(rename = "pending")]
5765 Pending,
5766 #[serde(rename = "disabled")]
5768 Disabled,
5769 #[serde(rename = "not_configured")]
5771 NotConfigured,
5772 #[default]
5774 #[serde(other)]
5775 Unknown,
5776}
5777
5778#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5780pub enum McpServerTransport {
5781 #[serde(rename = "stdio")]
5783 Stdio,
5784 #[serde(rename = "http")]
5786 Http,
5787 #[serde(rename = "sse")]
5789 Sse,
5790 #[serde(rename = "memory")]
5792 Memory,
5793 #[default]
5795 #[serde(other)]
5796 Unknown,
5797}
5798
5799#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5801pub enum ExtensionsLoadedExtensionSource {
5802 #[serde(rename = "project")]
5804 Project,
5805 #[serde(rename = "user")]
5807 User,
5808 #[serde(rename = "plugin")]
5810 Plugin,
5811 #[serde(rename = "session")]
5813 Session,
5814 #[default]
5816 #[serde(other)]
5817 Unknown,
5818}
5819
5820#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5822pub enum ExtensionsLoadedExtensionStatus {
5823 #[serde(rename = "running")]
5825 Running,
5826 #[serde(rename = "disabled")]
5828 Disabled,
5829 #[serde(rename = "failed")]
5831 Failed,
5832 #[serde(rename = "starting")]
5834 Starting,
5835 #[default]
5837 #[serde(other)]
5838 Unknown,
5839}