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.response_limits_changed")]
43 SessionResponseLimitsChanged,
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.context_changed")]
61 SessionContextChanged,
62 #[serde(rename = "session.usage_info")]
63 SessionUsageInfo,
64 #[serde(rename = "session.compaction_start")]
65 SessionCompactionStart,
66 #[serde(rename = "session.compaction_complete")]
67 SessionCompactionComplete,
68 #[serde(rename = "session.task_complete")]
69 SessionTaskComplete,
70 #[serde(rename = "user.message")]
71 UserMessage,
72 #[serde(rename = "pending_messages.modified")]
73 PendingMessagesModified,
74 #[serde(rename = "assistant.turn_start")]
75 AssistantTurnStart,
76 #[serde(rename = "assistant.intent")]
77 AssistantIntent,
78 #[serde(rename = "assistant.reasoning")]
79 AssistantReasoning,
80 #[serde(rename = "assistant.reasoning_delta")]
81 AssistantReasoningDelta,
82 #[serde(rename = "assistant.streaming_delta")]
83 AssistantStreamingDelta,
84 #[serde(rename = "assistant.message")]
85 AssistantMessage,
86 #[serde(rename = "assistant.message_start")]
87 AssistantMessageStart,
88 #[serde(rename = "assistant.message_delta")]
89 AssistantMessageDelta,
90 #[serde(rename = "assistant.turn_end")]
91 AssistantTurnEnd,
92 #[serde(rename = "assistant.idle")]
93 AssistantIdle,
94 #[serde(rename = "assistant.usage")]
95 AssistantUsage,
96 #[serde(rename = "model.call_failure")]
97 ModelCallFailure,
98 #[serde(rename = "abort")]
99 Abort,
100 #[serde(rename = "tool.user_requested")]
101 ToolUserRequested,
102 #[serde(rename = "tool.execution_start")]
103 ToolExecutionStart,
104 #[serde(rename = "tool.execution_partial_result")]
105 ToolExecutionPartialResult,
106 #[serde(rename = "tool.execution_progress")]
107 ToolExecutionProgress,
108 #[serde(rename = "tool.execution_complete")]
109 ToolExecutionComplete,
110 #[serde(rename = "skill.invoked")]
111 SkillInvoked,
112 #[serde(rename = "subagent.started")]
113 SubagentStarted,
114 #[serde(rename = "subagent.completed")]
115 SubagentCompleted,
116 #[serde(rename = "subagent.failed")]
117 SubagentFailed,
118 #[serde(rename = "subagent.selected")]
119 SubagentSelected,
120 #[serde(rename = "subagent.deselected")]
121 SubagentDeselected,
122 #[serde(rename = "hook.start")]
123 HookStart,
124 #[serde(rename = "hook.end")]
125 HookEnd,
126 #[serde(rename = "hook.progress")]
127 HookProgress,
128 #[serde(rename = "session.binary_asset")]
136 SessionBinaryAsset,
137 #[serde(rename = "system.message")]
138 SystemMessage,
139 #[serde(rename = "system.notification")]
140 SystemNotification,
141 #[serde(rename = "permission.requested")]
142 PermissionRequested,
143 #[serde(rename = "permission.completed")]
144 PermissionCompleted,
145 #[serde(rename = "user_input.requested")]
146 UserInputRequested,
147 #[serde(rename = "user_input.completed")]
148 UserInputCompleted,
149 #[serde(rename = "elicitation.requested")]
150 ElicitationRequested,
151 #[serde(rename = "elicitation.completed")]
152 ElicitationCompleted,
153 #[serde(rename = "sampling.requested")]
154 SamplingRequested,
155 #[serde(rename = "sampling.completed")]
156 SamplingCompleted,
157 #[serde(rename = "mcp.oauth_required")]
158 McpOauthRequired,
159 #[serde(rename = "mcp.oauth_completed")]
160 McpOauthCompleted,
161 #[serde(rename = "mcp.headers_refresh_required")]
162 McpHeadersRefreshRequired,
163 #[serde(rename = "mcp.headers_refresh_completed")]
164 McpHeadersRefreshCompleted,
165 #[serde(rename = "session.custom_notification")]
166 SessionCustomNotification,
167 #[serde(rename = "external_tool.requested")]
168 ExternalToolRequested,
169 #[serde(rename = "external_tool.completed")]
170 ExternalToolCompleted,
171 #[serde(rename = "command.queued")]
172 CommandQueued,
173 #[serde(rename = "command.execute")]
174 CommandExecute,
175 #[serde(rename = "command.completed")]
176 CommandCompleted,
177 #[serde(rename = "auto_mode_switch.requested")]
178 AutoModeSwitchRequested,
179 #[serde(rename = "auto_mode_switch.completed")]
180 AutoModeSwitchCompleted,
181 #[serde(rename = "commands.changed")]
182 CommandsChanged,
183 #[serde(rename = "capabilities.changed")]
184 CapabilitiesChanged,
185 #[serde(rename = "exit_plan_mode.requested")]
186 ExitPlanModeRequested,
187 #[serde(rename = "exit_plan_mode.completed")]
188 ExitPlanModeCompleted,
189 #[serde(rename = "session.tools_updated")]
190 SessionToolsUpdated,
191 #[serde(rename = "session.background_tasks_changed")]
192 SessionBackgroundTasksChanged,
193 #[serde(rename = "session.skills_loaded")]
194 SessionSkillsLoaded,
195 #[serde(rename = "session.custom_agents_updated")]
196 SessionCustomAgentsUpdated,
197 #[serde(rename = "session.mcp_servers_loaded")]
198 SessionMcpServersLoaded,
199 #[serde(rename = "session.mcp_server_status_changed")]
200 SessionMcpServerStatusChanged,
201 #[serde(rename = "session.extensions_loaded")]
202 SessionExtensionsLoaded,
203 #[serde(rename = "session.canvas.opened")]
211 SessionCanvasOpened,
212 #[serde(rename = "session.canvas.registry_changed")]
220 SessionCanvasRegistryChanged,
221 #[serde(rename = "session.canvas.closed")]
229 SessionCanvasClosed,
230 #[serde(rename = "session.canvas.unavailable")]
238 SessionCanvasUnavailable,
239 #[serde(rename = "session.canvas.recorded")]
247 SessionCanvasRecorded,
248 #[serde(rename = "session.canvas.removed")]
256 SessionCanvasRemoved,
257 #[serde(rename = "session.extensions.attachments_pushed")]
258 SessionExtensionsAttachmentsPushed,
259 #[serde(rename = "mcp_app.tool_call_complete")]
260 McpAppToolCallComplete,
261 #[default]
263 #[serde(other)]
264 Unknown,
265}
266
267#[derive(Debug, Clone, Serialize, Deserialize)]
271#[serde(tag = "type", content = "data")]
272pub enum SessionEventData {
273 #[serde(rename = "session.start")]
274 SessionStart(SessionStartData),
275 #[serde(rename = "session.resume")]
276 SessionResume(SessionResumeData),
277 #[serde(rename = "session.remote_steerable_changed")]
278 SessionRemoteSteerableChanged(SessionRemoteSteerableChangedData),
279 #[serde(rename = "session.error")]
280 SessionError(SessionErrorData),
281 #[serde(rename = "session.idle")]
282 SessionIdle(SessionIdleData),
283 #[serde(rename = "session.title_changed")]
284 SessionTitleChanged(SessionTitleChangedData),
285 #[serde(rename = "session.schedule_created")]
286 SessionScheduleCreated(SessionScheduleCreatedData),
287 #[serde(rename = "session.schedule_cancelled")]
288 SessionScheduleCancelled(SessionScheduleCancelledData),
289 #[serde(rename = "session.schedule_rearmed")]
290 SessionScheduleRearmed(SessionScheduleRearmedData),
291 #[serde(rename = "session.autopilot_objective_changed")]
292 SessionAutopilotObjectiveChanged(SessionAutopilotObjectiveChangedData),
293 #[serde(rename = "session.info")]
294 SessionInfo(SessionInfoData),
295 #[serde(rename = "session.warning")]
296 SessionWarning(SessionWarningData),
297 #[serde(rename = "session.model_change")]
298 SessionModelChange(SessionModelChangeData),
299 #[serde(rename = "session.mode_changed")]
300 SessionModeChanged(SessionModeChangedData),
301 #[serde(rename = "session.response_limits_changed")]
302 SessionResponseLimitsChanged(SessionResponseLimitsChangedData),
303 #[serde(rename = "session.permissions_changed")]
304 SessionPermissionsChanged(SessionPermissionsChangedData),
305 #[serde(rename = "session.plan_changed")]
306 SessionPlanChanged(SessionPlanChangedData),
307 #[serde(rename = "session.todos_changed")]
308 SessionTodosChanged(SessionTodosChangedData),
309 #[serde(rename = "session.workspace_file_changed")]
310 SessionWorkspaceFileChanged(SessionWorkspaceFileChangedData),
311 #[serde(rename = "session.handoff")]
312 SessionHandoff(SessionHandoffData),
313 #[serde(rename = "session.truncation")]
314 SessionTruncation(SessionTruncationData),
315 #[serde(rename = "session.snapshot_rewind")]
316 SessionSnapshotRewind(SessionSnapshotRewindData),
317 #[serde(rename = "session.shutdown")]
318 SessionShutdown(SessionShutdownData),
319 #[serde(rename = "session.context_changed")]
320 SessionContextChanged(SessionContextChangedData),
321 #[serde(rename = "session.usage_info")]
322 SessionUsageInfo(SessionUsageInfoData),
323 #[serde(rename = "session.compaction_start")]
324 SessionCompactionStart(SessionCompactionStartData),
325 #[serde(rename = "session.compaction_complete")]
326 SessionCompactionComplete(SessionCompactionCompleteData),
327 #[serde(rename = "session.task_complete")]
328 SessionTaskComplete(SessionTaskCompleteData),
329 #[serde(rename = "user.message")]
330 UserMessage(UserMessageData),
331 #[serde(rename = "pending_messages.modified")]
332 PendingMessagesModified(PendingMessagesModifiedData),
333 #[serde(rename = "assistant.turn_start")]
334 AssistantTurnStart(AssistantTurnStartData),
335 #[serde(rename = "assistant.intent")]
336 AssistantIntent(AssistantIntentData),
337 #[serde(rename = "assistant.reasoning")]
338 AssistantReasoning(AssistantReasoningData),
339 #[serde(rename = "assistant.reasoning_delta")]
340 AssistantReasoningDelta(AssistantReasoningDeltaData),
341 #[serde(rename = "assistant.streaming_delta")]
342 AssistantStreamingDelta(AssistantStreamingDeltaData),
343 #[serde(rename = "assistant.message")]
344 AssistantMessage(AssistantMessageData),
345 #[serde(rename = "assistant.message_start")]
346 AssistantMessageStart(AssistantMessageStartData),
347 #[serde(rename = "assistant.message_delta")]
348 AssistantMessageDelta(AssistantMessageDeltaData),
349 #[serde(rename = "assistant.turn_end")]
350 AssistantTurnEnd(AssistantTurnEndData),
351 #[serde(rename = "assistant.idle")]
352 AssistantIdle(AssistantIdleData),
353 #[serde(rename = "assistant.usage")]
354 AssistantUsage(AssistantUsageData),
355 #[serde(rename = "model.call_failure")]
356 ModelCallFailure(ModelCallFailureData),
357 #[serde(rename = "abort")]
358 Abort(AbortData),
359 #[serde(rename = "tool.user_requested")]
360 ToolUserRequested(ToolUserRequestedData),
361 #[serde(rename = "tool.execution_start")]
362 ToolExecutionStart(ToolExecutionStartData),
363 #[serde(rename = "tool.execution_partial_result")]
364 ToolExecutionPartialResult(ToolExecutionPartialResultData),
365 #[serde(rename = "tool.execution_progress")]
366 ToolExecutionProgress(ToolExecutionProgressData),
367 #[serde(rename = "tool.execution_complete")]
368 ToolExecutionComplete(ToolExecutionCompleteData),
369 #[serde(rename = "skill.invoked")]
370 SkillInvoked(SkillInvokedData),
371 #[serde(rename = "subagent.started")]
372 SubagentStarted(SubagentStartedData),
373 #[serde(rename = "subagent.completed")]
374 SubagentCompleted(SubagentCompletedData),
375 #[serde(rename = "subagent.failed")]
376 SubagentFailed(SubagentFailedData),
377 #[serde(rename = "subagent.selected")]
378 SubagentSelected(SubagentSelectedData),
379 #[serde(rename = "subagent.deselected")]
380 SubagentDeselected(SubagentDeselectedData),
381 #[serde(rename = "hook.start")]
382 HookStart(HookStartData),
383 #[serde(rename = "hook.end")]
384 HookEnd(HookEndData),
385 #[serde(rename = "hook.progress")]
386 HookProgress(HookProgressData),
387 #[serde(rename = "session.binary_asset")]
388 SessionBinaryAsset(SessionBinaryAssetData),
389 #[serde(rename = "system.message")]
390 SystemMessage(SystemMessageData),
391 #[serde(rename = "system.notification")]
392 SystemNotification(SystemNotificationData),
393 #[serde(rename = "permission.requested")]
394 PermissionRequested(PermissionRequestedData),
395 #[serde(rename = "permission.completed")]
396 PermissionCompleted(PermissionCompletedData),
397 #[serde(rename = "user_input.requested")]
398 UserInputRequested(UserInputRequestedData),
399 #[serde(rename = "user_input.completed")]
400 UserInputCompleted(UserInputCompletedData),
401 #[serde(rename = "elicitation.requested")]
402 ElicitationRequested(ElicitationRequestedData),
403 #[serde(rename = "elicitation.completed")]
404 ElicitationCompleted(ElicitationCompletedData),
405 #[serde(rename = "sampling.requested")]
406 SamplingRequested(SamplingRequestedData),
407 #[serde(rename = "sampling.completed")]
408 SamplingCompleted(SamplingCompletedData),
409 #[serde(rename = "mcp.oauth_required")]
410 McpOauthRequired(McpOauthRequiredData),
411 #[serde(rename = "mcp.oauth_completed")]
412 McpOauthCompleted(McpOauthCompletedData),
413 #[serde(rename = "mcp.headers_refresh_required")]
414 McpHeadersRefreshRequired(McpHeadersRefreshRequiredData),
415 #[serde(rename = "mcp.headers_refresh_completed")]
416 McpHeadersRefreshCompleted(McpHeadersRefreshCompletedData),
417 #[serde(rename = "session.custom_notification")]
418 SessionCustomNotification(SessionCustomNotificationData),
419 #[serde(rename = "external_tool.requested")]
420 ExternalToolRequested(ExternalToolRequestedData),
421 #[serde(rename = "external_tool.completed")]
422 ExternalToolCompleted(ExternalToolCompletedData),
423 #[serde(rename = "command.queued")]
424 CommandQueued(CommandQueuedData),
425 #[serde(rename = "command.execute")]
426 CommandExecute(CommandExecuteData),
427 #[serde(rename = "command.completed")]
428 CommandCompleted(CommandCompletedData),
429 #[serde(rename = "auto_mode_switch.requested")]
430 AutoModeSwitchRequested(AutoModeSwitchRequestedData),
431 #[serde(rename = "auto_mode_switch.completed")]
432 AutoModeSwitchCompleted(AutoModeSwitchCompletedData),
433 #[serde(rename = "commands.changed")]
434 CommandsChanged(CommandsChangedData),
435 #[serde(rename = "capabilities.changed")]
436 CapabilitiesChanged(CapabilitiesChangedData),
437 #[serde(rename = "exit_plan_mode.requested")]
438 ExitPlanModeRequested(ExitPlanModeRequestedData),
439 #[serde(rename = "exit_plan_mode.completed")]
440 ExitPlanModeCompleted(ExitPlanModeCompletedData),
441 #[serde(rename = "session.tools_updated")]
442 SessionToolsUpdated(SessionToolsUpdatedData),
443 #[serde(rename = "session.background_tasks_changed")]
444 SessionBackgroundTasksChanged(SessionBackgroundTasksChangedData),
445 #[serde(rename = "session.skills_loaded")]
446 SessionSkillsLoaded(SessionSkillsLoadedData),
447 #[serde(rename = "session.custom_agents_updated")]
448 SessionCustomAgentsUpdated(SessionCustomAgentsUpdatedData),
449 #[serde(rename = "session.mcp_servers_loaded")]
450 SessionMcpServersLoaded(SessionMcpServersLoadedData),
451 #[serde(rename = "session.mcp_server_status_changed")]
452 SessionMcpServerStatusChanged(SessionMcpServerStatusChangedData),
453 #[serde(rename = "session.extensions_loaded")]
454 SessionExtensionsLoaded(SessionExtensionsLoadedData),
455 #[serde(rename = "session.canvas.opened")]
463 SessionCanvasOpened(SessionCanvasOpenedData),
464 #[serde(rename = "session.canvas.registry_changed")]
472 SessionCanvasRegistryChanged(SessionCanvasRegistryChangedData),
473 #[serde(rename = "session.canvas.closed")]
481 SessionCanvasClosed(SessionCanvasClosedData),
482 #[serde(rename = "session.canvas.unavailable")]
490 SessionCanvasUnavailable(SessionCanvasUnavailableData),
491 #[serde(rename = "session.canvas.recorded")]
499 SessionCanvasRecorded(SessionCanvasRecordedData),
500 #[serde(rename = "session.canvas.removed")]
508 SessionCanvasRemoved(SessionCanvasRemovedData),
509 #[serde(rename = "session.extensions.attachments_pushed")]
510 SessionExtensionsAttachmentsPushed(SessionExtensionsAttachmentsPushedData),
511 #[serde(rename = "mcp_app.tool_call_complete")]
512 McpAppToolCallComplete(McpAppToolCallCompleteData),
513}
514
515#[derive(Debug, Clone, Serialize, Deserialize)]
521#[serde(rename_all = "camelCase")]
522pub struct TypedSessionEvent {
523 pub id: String,
525 pub timestamp: String,
527 #[serde(skip_serializing_if = "Option::is_none")]
529 pub parent_id: Option<String>,
530 #[serde(skip_serializing_if = "Option::is_none")]
532 pub ephemeral: Option<bool>,
533 #[serde(skip_serializing_if = "Option::is_none")]
536 pub agent_id: Option<String>,
537 #[serde(flatten)]
539 pub payload: SessionEventData,
540}
541
542#[derive(Debug, Clone, Default, Serialize, Deserialize)]
544#[serde(rename_all = "camelCase")]
545pub struct WorkingDirectoryContext {
546 #[serde(skip_serializing_if = "Option::is_none")]
548 pub base_commit: Option<String>,
549 #[serde(skip_serializing_if = "Option::is_none")]
551 pub branch: Option<String>,
552 pub cwd: String,
554 #[serde(skip_serializing_if = "Option::is_none")]
556 pub git_root: Option<String>,
557 #[serde(skip_serializing_if = "Option::is_none")]
559 pub head_commit: Option<String>,
560 #[serde(skip_serializing_if = "Option::is_none")]
562 pub host_type: Option<WorkingDirectoryContextHostType>,
563 #[serde(skip_serializing_if = "Option::is_none")]
565 pub repository: Option<String>,
566 #[serde(skip_serializing_if = "Option::is_none")]
568 pub repository_host: Option<String>,
569}
570
571#[derive(Debug, Clone, Default, Serialize, Deserialize)]
573#[serde(rename_all = "camelCase")]
574pub struct ResponseLimitsConfig {
575 #[serde(skip_serializing_if = "Option::is_none")]
577 pub max_ai_credits: Option<f64>,
578}
579
580#[derive(Debug, Clone, Default, Serialize, Deserialize)]
582#[serde(rename_all = "camelCase")]
583pub struct SessionStartData {
584 #[serde(skip_serializing_if = "Option::is_none")]
586 pub already_in_use: Option<bool>,
587 #[serde(skip_serializing_if = "Option::is_none")]
589 pub context: Option<WorkingDirectoryContext>,
590 #[serde(skip_serializing_if = "Option::is_none")]
592 pub context_tier: Option<ContextTier>,
593 pub copilot_version: String,
595 #[serde(skip_serializing_if = "Option::is_none")]
597 pub detached_from_spawning_parent_session_id: Option<String>,
598 pub producer: String,
600 #[serde(skip_serializing_if = "Option::is_none")]
602 pub reasoning_effort: Option<String>,
603 #[serde(skip_serializing_if = "Option::is_none")]
605 pub reasoning_summary: Option<ReasoningSummary>,
606 #[serde(skip_serializing_if = "Option::is_none")]
608 pub remote_steerable: Option<bool>,
609 #[serde(skip_serializing_if = "Option::is_none")]
611 pub response_limits: Option<ResponseLimitsConfig>,
612 #[serde(skip_serializing_if = "Option::is_none")]
614 pub selected_model: Option<String>,
615 pub session_id: SessionId,
617 pub start_time: String,
619 pub version: i64,
621}
622
623#[derive(Debug, Clone, Default, Serialize, Deserialize)]
625#[serde(rename_all = "camelCase")]
626pub struct SessionResumeData {
627 #[serde(skip_serializing_if = "Option::is_none")]
629 pub already_in_use: Option<bool>,
630 #[serde(skip_serializing_if = "Option::is_none")]
632 pub context: Option<WorkingDirectoryContext>,
633 #[serde(skip_serializing_if = "Option::is_none")]
635 pub context_tier: Option<ContextTier>,
636 #[serde(skip_serializing_if = "Option::is_none")]
638 pub continue_pending_work: Option<bool>,
639 pub event_count: i64,
641 #[serde(skip_serializing_if = "Option::is_none")]
643 pub events_file_size_bytes: Option<i64>,
644 #[serde(skip_serializing_if = "Option::is_none")]
646 pub reasoning_effort: Option<String>,
647 #[serde(skip_serializing_if = "Option::is_none")]
649 pub reasoning_summary: Option<ReasoningSummary>,
650 #[serde(skip_serializing_if = "Option::is_none")]
652 pub remote_steerable: Option<bool>,
653 #[serde(skip_serializing_if = "Option::is_none")]
655 pub response_limits: Option<ResponseLimitsConfig>,
656 pub resume_time: String,
658 #[serde(skip_serializing_if = "Option::is_none")]
660 pub selected_model: Option<String>,
661 #[serde(skip_serializing_if = "Option::is_none")]
663 pub session_was_active: Option<bool>,
664}
665
666#[derive(Debug, Clone, Default, Serialize, Deserialize)]
668#[serde(rename_all = "camelCase")]
669pub struct SessionRemoteSteerableChangedData {
670 pub remote_steerable: bool,
672}
673
674#[derive(Debug, Clone, Default, Serialize, Deserialize)]
676#[serde(rename_all = "camelCase")]
677pub struct SessionErrorData {
678 #[serde(skip_serializing_if = "Option::is_none")]
680 pub eligible_for_auto_switch: Option<bool>,
681 #[serde(skip_serializing_if = "Option::is_none")]
683 pub error_code: Option<String>,
684 pub error_type: String,
686 pub message: String,
688 #[serde(skip_serializing_if = "Option::is_none")]
690 pub provider_call_id: Option<String>,
691 #[serde(skip_serializing_if = "Option::is_none")]
693 pub service_request_id: Option<String>,
694 #[serde(skip_serializing_if = "Option::is_none")]
696 pub stack: Option<String>,
697 #[serde(skip_serializing_if = "Option::is_none")]
699 pub status_code: Option<i32>,
700 #[serde(skip_serializing_if = "Option::is_none")]
702 pub url: Option<String>,
703}
704
705#[derive(Debug, Clone, Default, Serialize, Deserialize)]
707#[serde(rename_all = "camelCase")]
708pub struct SessionIdleData {
709 #[serde(skip_serializing_if = "Option::is_none")]
711 pub aborted: Option<bool>,
712}
713
714#[derive(Debug, Clone, Default, Serialize, Deserialize)]
716#[serde(rename_all = "camelCase")]
717pub struct SessionTitleChangedData {
718 pub title: String,
720}
721
722#[derive(Debug, Clone, Default, Serialize, Deserialize)]
724#[serde(rename_all = "camelCase")]
725pub struct SessionScheduleCreatedData {
726 #[serde(skip_serializing_if = "Option::is_none")]
728 pub at: Option<i64>,
729 #[serde(skip_serializing_if = "Option::is_none")]
731 pub cron: Option<String>,
732 #[serde(skip_serializing_if = "Option::is_none")]
734 pub display_prompt: Option<String>,
735 pub id: i64,
737 #[serde(skip_serializing_if = "Option::is_none")]
739 pub interval_ms: Option<i64>,
740 pub prompt: String,
742 #[serde(skip_serializing_if = "Option::is_none")]
744 pub recurring: Option<bool>,
745 #[serde(skip_serializing_if = "Option::is_none")]
747 pub self_paced: Option<bool>,
748 #[serde(skip_serializing_if = "Option::is_none")]
750 pub tz: Option<String>,
751}
752
753#[derive(Debug, Clone, Default, Serialize, Deserialize)]
755#[serde(rename_all = "camelCase")]
756pub struct SessionScheduleCancelledData {
757 pub id: i64,
759}
760
761#[derive(Debug, Clone, Default, Serialize, Deserialize)]
763#[serde(rename_all = "camelCase")]
764pub struct SessionScheduleRearmedData {
765 pub id: i64,
767 pub next_run_at: i64,
769}
770
771#[derive(Debug, Clone, Default, Serialize, Deserialize)]
773#[serde(rename_all = "camelCase")]
774pub struct SessionAutopilotObjectiveChangedData {
775 #[serde(skip_serializing_if = "Option::is_none")]
777 pub id: Option<i64>,
778 pub operation: AutopilotObjectiveChangedOperation,
780 #[serde(skip_serializing_if = "Option::is_none")]
782 pub status: Option<AutopilotObjectiveChangedStatus>,
783}
784
785#[derive(Debug, Clone, Default, Serialize, Deserialize)]
787#[serde(rename_all = "camelCase")]
788pub struct SessionInfoData {
789 pub info_type: String,
791 pub message: String,
793 #[serde(skip_serializing_if = "Option::is_none")]
795 pub tip: Option<String>,
796 #[serde(skip_serializing_if = "Option::is_none")]
798 pub url: Option<String>,
799}
800
801#[derive(Debug, Clone, Default, Serialize, Deserialize)]
803#[serde(rename_all = "camelCase")]
804pub struct SessionWarningData {
805 pub message: String,
807 #[serde(skip_serializing_if = "Option::is_none")]
809 pub url: Option<String>,
810 pub warning_type: String,
812}
813
814#[derive(Debug, Clone, Default, Serialize, Deserialize)]
816#[serde(rename_all = "camelCase")]
817pub struct SessionModelChangeData {
818 #[serde(skip_serializing_if = "Option::is_none")]
820 pub cause: Option<String>,
821 #[serde(skip_serializing_if = "Option::is_none")]
823 pub context_tier: Option<ContextTier>,
824 pub new_model: String,
826 #[serde(skip_serializing_if = "Option::is_none")]
828 pub previous_model: Option<String>,
829 #[serde(skip_serializing_if = "Option::is_none")]
831 pub previous_reasoning_effort: Option<String>,
832 #[serde(skip_serializing_if = "Option::is_none")]
834 pub previous_reasoning_summary: Option<ReasoningSummary>,
835 #[serde(skip_serializing_if = "Option::is_none")]
837 pub reasoning_effort: Option<String>,
838 #[serde(skip_serializing_if = "Option::is_none")]
840 pub reasoning_summary: Option<ReasoningSummary>,
841}
842
843#[derive(Debug, Clone, Default, Serialize, Deserialize)]
845#[serde(rename_all = "camelCase")]
846pub struct SessionModeChangedData {
847 pub new_mode: SessionMode,
849 pub previous_mode: SessionMode,
851}
852
853#[derive(Debug, Clone, Default, Serialize, Deserialize)]
855#[serde(rename_all = "camelCase")]
856pub struct SessionResponseLimitsChangedData {
857 pub response_limits: Option<ResponseLimitsConfig>,
859}
860
861#[derive(Debug, Clone, Default, Serialize, Deserialize)]
863#[serde(rename_all = "camelCase")]
864pub struct SessionPermissionsChangedData {
865 pub allow_all_permissions: bool,
867 pub previous_allow_all_permissions: bool,
869}
870
871#[derive(Debug, Clone, Default, Serialize, Deserialize)]
873#[serde(rename_all = "camelCase")]
874pub struct SessionPlanChangedData {
875 pub operation: PlanChangedOperation,
877}
878
879#[derive(Debug, Clone, Default, Serialize, Deserialize)]
881#[serde(rename_all = "camelCase")]
882pub struct SessionTodosChangedData {}
883
884#[derive(Debug, Clone, Default, Serialize, Deserialize)]
886#[serde(rename_all = "camelCase")]
887pub struct SessionWorkspaceFileChangedData {
888 pub operation: WorkspaceFileChangedOperation,
890 pub path: String,
892}
893
894#[derive(Debug, Clone, Default, Serialize, Deserialize)]
896#[serde(rename_all = "camelCase")]
897pub struct HandoffRepository {
898 #[serde(skip_serializing_if = "Option::is_none")]
900 pub branch: Option<String>,
901 pub name: String,
903 pub owner: String,
905}
906
907#[derive(Debug, Clone, Default, Serialize, Deserialize)]
909#[serde(rename_all = "camelCase")]
910pub struct SessionHandoffData {
911 #[serde(skip_serializing_if = "Option::is_none")]
913 pub context: Option<String>,
914 pub handoff_time: String,
916 #[serde(skip_serializing_if = "Option::is_none")]
918 pub host: Option<String>,
919 #[serde(skip_serializing_if = "Option::is_none")]
921 pub remote_session_id: Option<SessionId>,
922 #[serde(skip_serializing_if = "Option::is_none")]
924 pub repository: Option<HandoffRepository>,
925 pub source_type: HandoffSourceType,
927 #[serde(skip_serializing_if = "Option::is_none")]
929 pub summary: Option<String>,
930}
931
932#[derive(Debug, Clone, Default, Serialize, Deserialize)]
934#[serde(rename_all = "camelCase")]
935pub struct SessionTruncationData {
936 pub messages_removed_during_truncation: i64,
938 pub performed_by: String,
940 pub post_truncation_messages_length: i64,
942 pub post_truncation_tokens_in_messages: i64,
944 pub pre_truncation_messages_length: i64,
946 pub pre_truncation_tokens_in_messages: i64,
948 pub token_limit: i64,
950 pub tokens_removed_during_truncation: i64,
952}
953
954#[derive(Debug, Clone, Default, Serialize, Deserialize)]
956#[serde(rename_all = "camelCase")]
957pub struct SessionSnapshotRewindData {
958 pub events_removed: i64,
960 pub up_to_event_id: String,
962}
963
964#[derive(Debug, Clone, Default, Serialize, Deserialize)]
966#[serde(rename_all = "camelCase")]
967pub struct ShutdownCodeChanges {
968 pub files_modified: Vec<String>,
970 pub lines_added: i64,
972 pub lines_removed: i64,
974}
975
976#[derive(Debug, Clone, Default, Serialize, Deserialize)]
978#[serde(rename_all = "camelCase")]
979pub struct ShutdownModelMetricRequests {
980 #[serde(skip_serializing_if = "Option::is_none")]
989 pub cost: Option<f64>,
990 #[serde(skip_serializing_if = "Option::is_none")]
999 pub count: Option<i64>,
1000}
1001
1002#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1004#[serde(rename_all = "camelCase")]
1005pub struct ShutdownModelMetricTokenDetail {
1006 pub token_count: i64,
1008}
1009
1010#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1012#[serde(rename_all = "camelCase")]
1013pub struct ShutdownModelMetricUsage {
1014 pub cache_read_tokens: i64,
1016 pub cache_write_tokens: i64,
1018 pub input_tokens: i64,
1020 pub output_tokens: i64,
1022 #[serde(skip_serializing_if = "Option::is_none")]
1024 pub reasoning_tokens: Option<i64>,
1025}
1026
1027#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1029#[serde(rename_all = "camelCase")]
1030pub struct ShutdownModelMetric {
1031 pub requests: ShutdownModelMetricRequests,
1033 #[serde(skip_serializing_if = "Option::is_none")]
1035 pub token_details: Option<HashMap<String, ShutdownModelMetricTokenDetail>>,
1036 #[serde(skip_serializing_if = "Option::is_none")]
1045 pub total_nano_aiu: Option<f64>,
1046 pub usage: ShutdownModelMetricUsage,
1048}
1049
1050#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1052#[serde(rename_all = "camelCase")]
1053pub struct ShutdownTokenDetail {
1054 pub token_count: i64,
1056}
1057
1058#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1060#[serde(rename_all = "camelCase")]
1061pub struct SessionShutdownData {
1062 pub code_changes: ShutdownCodeChanges,
1064 #[serde(skip_serializing_if = "Option::is_none")]
1066 pub conversation_tokens: Option<i64>,
1067 #[serde(skip_serializing_if = "Option::is_none")]
1069 pub current_model: Option<String>,
1070 #[serde(skip_serializing_if = "Option::is_none")]
1072 pub current_tokens: Option<i64>,
1073 #[serde(skip_serializing_if = "Option::is_none")]
1075 pub error_reason: Option<String>,
1076 #[serde(skip_serializing_if = "Option::is_none")]
1078 pub events_file_size_bytes: Option<i64>,
1079 pub model_metrics: HashMap<String, ShutdownModelMetric>,
1081 pub session_start_time: i64,
1083 pub shutdown_type: ShutdownType,
1085 #[serde(skip_serializing_if = "Option::is_none")]
1087 pub system_tokens: Option<i64>,
1088 #[serde(skip_serializing_if = "Option::is_none")]
1090 pub token_details: Option<HashMap<String, ShutdownTokenDetail>>,
1091 #[serde(skip_serializing_if = "Option::is_none")]
1093 pub tool_definitions_tokens: Option<i64>,
1094 pub total_api_duration_ms: i64,
1096 #[serde(skip_serializing_if = "Option::is_none")]
1105 pub total_nano_aiu: Option<f64>,
1106 #[doc(hidden)]
1108 #[serde(skip_serializing_if = "Option::is_none")]
1109 pub(crate) total_premium_requests: Option<f64>,
1110}
1111
1112#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1114#[serde(rename_all = "camelCase")]
1115pub struct SessionContextChangedData {
1116 #[serde(skip_serializing_if = "Option::is_none")]
1118 pub base_commit: Option<String>,
1119 #[serde(skip_serializing_if = "Option::is_none")]
1121 pub branch: Option<String>,
1122 pub cwd: String,
1124 #[serde(skip_serializing_if = "Option::is_none")]
1126 pub git_root: Option<String>,
1127 #[serde(skip_serializing_if = "Option::is_none")]
1129 pub head_commit: Option<String>,
1130 #[serde(skip_serializing_if = "Option::is_none")]
1132 pub host_type: Option<WorkingDirectoryContextHostType>,
1133 #[serde(skip_serializing_if = "Option::is_none")]
1135 pub repository: Option<String>,
1136 #[serde(skip_serializing_if = "Option::is_none")]
1138 pub repository_host: Option<String>,
1139}
1140
1141#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1143#[serde(rename_all = "camelCase")]
1144pub struct SessionUsageInfoData {
1145 #[serde(skip_serializing_if = "Option::is_none")]
1147 pub conversation_tokens: Option<i64>,
1148 pub current_tokens: i64,
1150 #[serde(skip_serializing_if = "Option::is_none")]
1152 pub is_initial: Option<bool>,
1153 pub messages_length: i64,
1155 #[serde(skip_serializing_if = "Option::is_none")]
1157 pub system_tokens: Option<i64>,
1158 pub token_limit: i64,
1160 #[serde(skip_serializing_if = "Option::is_none")]
1162 pub tool_definitions_tokens: Option<i64>,
1163}
1164
1165#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1167#[serde(rename_all = "camelCase")]
1168pub struct SessionCompactionStartData {
1169 #[serde(skip_serializing_if = "Option::is_none")]
1171 pub conversation_tokens: Option<i64>,
1172 #[serde(skip_serializing_if = "Option::is_none")]
1174 pub system_tokens: Option<i64>,
1175 #[serde(skip_serializing_if = "Option::is_none")]
1177 pub tool_definitions_tokens: Option<i64>,
1178}
1179
1180#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1182#[serde(rename_all = "camelCase")]
1183pub struct CompactionCompleteCompactionTokensUsedCopilotUsageTokenDetail {
1184 pub batch_size: i64,
1186 pub cost_per_batch: i64,
1188 pub token_count: i64,
1190 pub token_type: String,
1192}
1193
1194#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1196#[serde(rename_all = "camelCase")]
1197pub(crate) struct CompactionCompleteCompactionTokensUsedCopilotUsage {
1198 #[doc(hidden)]
1200 #[serde(skip_serializing_if = "Option::is_none")]
1201 pub(crate) token_details:
1202 Option<Vec<CompactionCompleteCompactionTokensUsedCopilotUsageTokenDetail>>,
1203 pub total_nano_aiu: f64,
1205}
1206
1207#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1209#[serde(rename_all = "camelCase")]
1210pub struct CompactionCompleteCompactionTokensUsed {
1211 #[serde(skip_serializing_if = "Option::is_none")]
1213 pub cache_read_tokens: Option<i64>,
1214 #[serde(skip_serializing_if = "Option::is_none")]
1216 pub cache_write_tokens: Option<i64>,
1217 #[doc(hidden)]
1219 #[serde(skip_serializing_if = "Option::is_none")]
1220 pub(crate) copilot_usage: Option<CompactionCompleteCompactionTokensUsedCopilotUsage>,
1221 #[serde(skip_serializing_if = "Option::is_none")]
1223 pub duration: Option<i64>,
1224 #[serde(skip_serializing_if = "Option::is_none")]
1226 pub input_tokens: Option<i64>,
1227 #[serde(skip_serializing_if = "Option::is_none")]
1229 pub model: Option<String>,
1230 #[serde(skip_serializing_if = "Option::is_none")]
1232 pub output_tokens: Option<i64>,
1233}
1234
1235#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1237#[serde(rename_all = "camelCase")]
1238pub struct SessionCompactionCompleteData {
1239 #[serde(skip_serializing_if = "Option::is_none")]
1241 pub checkpoint_number: Option<i64>,
1242 #[serde(skip_serializing_if = "Option::is_none")]
1244 pub checkpoint_path: Option<String>,
1245 #[serde(skip_serializing_if = "Option::is_none")]
1247 pub compaction_tokens_used: Option<CompactionCompleteCompactionTokensUsed>,
1248 #[serde(skip_serializing_if = "Option::is_none")]
1250 pub conversation_tokens: Option<i64>,
1251 #[serde(skip_serializing_if = "Option::is_none")]
1253 pub custom_instructions: Option<String>,
1254 #[serde(skip_serializing_if = "Option::is_none")]
1256 pub error: Option<String>,
1257 #[serde(skip_serializing_if = "Option::is_none")]
1259 pub messages_removed: Option<i64>,
1260 #[serde(skip_serializing_if = "Option::is_none")]
1262 pub post_compaction_tokens: Option<i64>,
1263 #[serde(skip_serializing_if = "Option::is_none")]
1265 pub pre_compaction_messages_length: Option<i64>,
1266 #[serde(skip_serializing_if = "Option::is_none")]
1268 pub pre_compaction_tokens: Option<i64>,
1269 #[serde(skip_serializing_if = "Option::is_none")]
1271 pub request_id: Option<RequestId>,
1272 #[serde(skip_serializing_if = "Option::is_none")]
1274 pub service_request_id: Option<String>,
1275 #[serde(skip_serializing_if = "Option::is_none")]
1277 pub status_code: Option<i64>,
1278 pub success: bool,
1280 #[serde(skip_serializing_if = "Option::is_none")]
1282 pub summary_content: Option<String>,
1283 #[serde(skip_serializing_if = "Option::is_none")]
1285 pub system_tokens: Option<i64>,
1286 #[serde(skip_serializing_if = "Option::is_none")]
1288 pub tokens_removed: Option<i64>,
1289 #[serde(skip_serializing_if = "Option::is_none")]
1291 pub tool_definitions_tokens: Option<i64>,
1292}
1293
1294#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1296#[serde(rename_all = "camelCase")]
1297pub struct SessionTaskCompleteData {
1298 #[serde(skip_serializing_if = "Option::is_none")]
1300 pub success: Option<bool>,
1301 #[serde(skip_serializing_if = "Option::is_none")]
1303 pub summary: Option<String>,
1304}
1305
1306#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1308#[serde(rename_all = "camelCase")]
1309pub struct UserMessageData {
1310 #[serde(skip_serializing_if = "Option::is_none")]
1312 pub agent_mode: Option<UserMessageAgentMode>,
1313 #[serde(skip_serializing_if = "Option::is_none")]
1315 pub attachments: Option<Vec<serde_json::Value>>,
1316 pub content: String,
1318 #[serde(skip_serializing_if = "Option::is_none")]
1320 pub delivery: Option<UserMessageDelivery>,
1321 #[serde(skip_serializing_if = "Option::is_none")]
1323 pub interaction_id: Option<String>,
1324 #[serde(skip_serializing_if = "Option::is_none")]
1326 pub is_autopilot_continuation: Option<bool>,
1327 #[serde(skip_serializing_if = "Option::is_none")]
1329 pub native_document_path_fallback_paths: Option<Vec<String>>,
1330 #[serde(skip_serializing_if = "Option::is_none")]
1332 pub parent_agent_task_id: Option<String>,
1333 #[serde(skip_serializing_if = "Option::is_none")]
1335 pub source: Option<String>,
1336 #[serde(skip_serializing_if = "Option::is_none")]
1338 pub supported_native_document_mime_types: Option<Vec<String>>,
1339 #[serde(skip_serializing_if = "Option::is_none")]
1341 pub transformed_content: Option<String>,
1342}
1343
1344#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1346#[serde(rename_all = "camelCase")]
1347pub struct PendingMessagesModifiedData {}
1348
1349#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1351#[serde(rename_all = "camelCase")]
1352pub struct AssistantTurnStartData {
1353 #[serde(skip_serializing_if = "Option::is_none")]
1355 pub interaction_id: Option<String>,
1356 pub turn_id: String,
1358}
1359
1360#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1362#[serde(rename_all = "camelCase")]
1363pub struct AssistantIntentData {
1364 pub intent: String,
1366}
1367
1368#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1370#[serde(rename_all = "camelCase")]
1371pub struct AssistantReasoningData {
1372 pub content: String,
1374 pub reasoning_id: String,
1376}
1377
1378#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1380#[serde(rename_all = "camelCase")]
1381pub struct AssistantReasoningDeltaData {
1382 pub delta_content: String,
1384 pub reasoning_id: String,
1386}
1387
1388#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1390#[serde(rename_all = "camelCase")]
1391pub struct AssistantStreamingDeltaData {
1392 pub total_response_size_bytes: i64,
1394}
1395
1396#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1405#[serde(rename_all = "camelCase")]
1406pub struct CitationSource {
1407 pub id: String,
1409 #[serde(skip_serializing_if = "Option::is_none")]
1411 pub path: Option<String>,
1412 pub provider: CitationProvider,
1414 #[serde(skip_serializing_if = "Option::is_none")]
1416 pub title: Option<String>,
1417 #[serde(skip_serializing_if = "Option::is_none")]
1419 pub url: Option<String>,
1420}
1421
1422#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1431#[serde(rename_all = "camelCase")]
1432pub struct CitationReference {
1433 #[serde(skip_serializing_if = "Option::is_none")]
1435 pub cited_text: Option<String>,
1436 #[serde(skip_serializing_if = "Option::is_none")]
1438 pub location: Option<serde_json::Value>,
1439 #[serde(skip_serializing_if = "Option::is_none")]
1441 pub provider_metadata: Option<serde_json::Value>,
1442 pub source_id: String,
1444}
1445
1446#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1455#[serde(rename_all = "camelCase")]
1456pub struct CitationSpan {
1457 pub end_index: i64,
1459 pub references: Vec<CitationReference>,
1461 pub start_index: i64,
1463}
1464
1465#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1474#[serde(rename_all = "camelCase")]
1475pub struct Citations {
1476 pub sources: Vec<CitationSource>,
1478 pub spans: Vec<CitationSpan>,
1480}
1481
1482#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1491#[serde(rename_all = "camelCase")]
1492pub struct AssistantMessageServerTools {
1493 #[serde(skip_serializing_if = "Option::is_none")]
1494 pub advisor_model: Option<String>,
1495 #[serde(skip_serializing_if = "Option::is_none")]
1496 pub function_call_namespaces: Option<HashMap<String, String>>,
1497 #[serde(skip_serializing_if = "Option::is_none")]
1498 pub items: Option<Vec<serde_json::Value>>,
1499 pub provider: String,
1500 #[serde(skip_serializing_if = "Option::is_none")]
1501 pub raw_content_blocks: Option<Vec<serde_json::Value>>,
1502}
1503
1504#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1506#[serde(rename_all = "camelCase")]
1507pub struct AssistantMessageToolRequest {
1508 #[serde(skip_serializing_if = "Option::is_none")]
1510 pub arguments: Option<serde_json::Value>,
1511 #[serde(skip_serializing_if = "Option::is_none")]
1513 pub intention_summary: Option<String>,
1514 #[serde(skip_serializing_if = "Option::is_none")]
1516 pub mcp_server_name: Option<String>,
1517 #[serde(skip_serializing_if = "Option::is_none")]
1519 pub mcp_tool_name: Option<String>,
1520 pub name: String,
1522 pub tool_call_id: String,
1524 #[serde(skip_serializing_if = "Option::is_none")]
1526 pub tool_title: Option<String>,
1527 #[serde(skip_serializing_if = "Option::is_none")]
1529 pub r#type: Option<AssistantMessageToolRequestType>,
1530}
1531
1532#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1534#[serde(rename_all = "camelCase")]
1535pub struct AssistantMessageData {
1536 #[serde(skip_serializing_if = "Option::is_none")]
1538 pub api_call_id: Option<String>,
1539 #[serde(skip_serializing_if = "Option::is_none")]
1548 pub citations: Option<Citations>,
1549 pub content: String,
1551 #[serde(skip_serializing_if = "Option::is_none")]
1553 pub encrypted_content: Option<String>,
1554 #[serde(skip_serializing_if = "Option::is_none")]
1556 pub interaction_id: Option<String>,
1557 pub message_id: String,
1559 #[serde(skip_serializing_if = "Option::is_none")]
1561 pub model: Option<String>,
1562 #[serde(skip_serializing_if = "Option::is_none")]
1564 pub output_tokens: Option<i64>,
1565 #[doc(hidden)]
1567 #[deprecated]
1568 #[serde(skip_serializing_if = "Option::is_none")]
1569 pub parent_tool_call_id: Option<String>,
1570 #[serde(skip_serializing_if = "Option::is_none")]
1572 pub phase: Option<String>,
1573 #[serde(skip_serializing_if = "Option::is_none")]
1575 pub reasoning_opaque: Option<String>,
1576 #[serde(skip_serializing_if = "Option::is_none")]
1578 pub reasoning_text: Option<String>,
1579 #[serde(skip_serializing_if = "Option::is_none")]
1581 pub request_id: Option<RequestId>,
1582 #[serde(skip_serializing_if = "Option::is_none")]
1584 pub server_tools: Option<AssistantMessageServerTools>,
1585 #[serde(skip_serializing_if = "Option::is_none")]
1587 pub service_request_id: Option<String>,
1588 #[serde(skip_serializing_if = "Option::is_none")]
1590 pub tool_requests: Option<Vec<AssistantMessageToolRequest>>,
1591 #[serde(skip_serializing_if = "Option::is_none")]
1593 pub turn_id: Option<String>,
1594}
1595
1596#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1598#[serde(rename_all = "camelCase")]
1599pub struct AssistantMessageStartData {
1600 pub message_id: String,
1602 #[serde(skip_serializing_if = "Option::is_none")]
1604 pub phase: Option<String>,
1605}
1606
1607#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1609#[serde(rename_all = "camelCase")]
1610pub struct AssistantMessageDeltaData {
1611 pub delta_content: String,
1613 pub message_id: String,
1615 #[doc(hidden)]
1617 #[deprecated]
1618 #[serde(skip_serializing_if = "Option::is_none")]
1619 pub parent_tool_call_id: Option<String>,
1620}
1621
1622#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1624#[serde(rename_all = "camelCase")]
1625pub struct AssistantTurnEndData {
1626 pub turn_id: String,
1628}
1629
1630#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1632#[serde(rename_all = "camelCase")]
1633pub struct AssistantIdleData {
1634 #[serde(skip_serializing_if = "Option::is_none")]
1636 pub aborted: Option<bool>,
1637}
1638
1639#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1641#[serde(rename_all = "camelCase")]
1642pub struct AssistantUsageCopilotUsageTokenDetail {
1643 pub batch_size: i64,
1645 pub cost_per_batch: i64,
1647 pub token_count: i64,
1649 pub token_type: String,
1651}
1652
1653#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1655#[serde(rename_all = "camelCase")]
1656pub struct AssistantUsageCopilotUsage {
1657 #[doc(hidden)]
1659 #[serde(skip_serializing_if = "Option::is_none")]
1660 pub(crate) token_details: Option<Vec<AssistantUsageCopilotUsageTokenDetail>>,
1661 pub total_nano_aiu: f64,
1663}
1664
1665#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1667#[serde(rename_all = "camelCase")]
1668pub(crate) struct AssistantUsageQuotaSnapshot {
1669 #[doc(hidden)]
1671 pub(crate) entitlement_requests: i64,
1672 #[doc(hidden)]
1674 #[serde(skip_serializing_if = "Option::is_none")]
1675 pub(crate) has_quota: Option<bool>,
1676 #[doc(hidden)]
1678 pub(crate) is_unlimited_entitlement: bool,
1679 #[doc(hidden)]
1681 pub(crate) overage: f64,
1682 #[doc(hidden)]
1684 pub(crate) overage_allowed_with_exhausted_quota: bool,
1685 #[doc(hidden)]
1687 #[serde(skip_serializing_if = "Option::is_none")]
1688 pub(crate) overage_entitlement: Option<f64>,
1689 #[doc(hidden)]
1691 pub(crate) remaining_percentage: f64,
1692 #[doc(hidden)]
1694 #[serde(skip_serializing_if = "Option::is_none")]
1695 pub(crate) reset_date: Option<String>,
1696 #[doc(hidden)]
1698 #[serde(skip_serializing_if = "Option::is_none")]
1699 pub(crate) token_based_billing: Option<bool>,
1700 #[doc(hidden)]
1702 pub(crate) usage_allowed_with_exhausted_quota: bool,
1703 #[doc(hidden)]
1705 pub(crate) used_requests: i64,
1706}
1707
1708#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1710#[serde(rename_all = "camelCase")]
1711pub struct AssistantUsageData {
1712 #[serde(skip_serializing_if = "Option::is_none")]
1714 pub api_call_id: Option<String>,
1715 #[serde(skip_serializing_if = "Option::is_none")]
1717 pub api_endpoint: Option<AssistantUsageApiEndpoint>,
1718 #[serde(skip_serializing_if = "Option::is_none")]
1720 pub cache_read_tokens: Option<i64>,
1721 #[serde(skip_serializing_if = "Option::is_none")]
1723 pub cache_write_tokens: Option<i64>,
1724 #[serde(skip_serializing_if = "Option::is_none")]
1726 pub content_filter_triggered: Option<bool>,
1727 #[serde(skip_serializing_if = "Option::is_none")]
1729 pub copilot_usage: Option<AssistantUsageCopilotUsage>,
1730 #[serde(skip_serializing_if = "Option::is_none")]
1739 pub cost: Option<f64>,
1740 #[serde(skip_serializing_if = "Option::is_none")]
1742 pub duration: Option<i64>,
1743 #[serde(skip_serializing_if = "Option::is_none")]
1745 pub finish_reason: Option<String>,
1746 #[serde(skip_serializing_if = "Option::is_none")]
1748 pub initiator: Option<String>,
1749 #[serde(skip_serializing_if = "Option::is_none")]
1751 pub input_tokens: Option<i64>,
1752 #[serde(skip_serializing_if = "Option::is_none")]
1754 pub inter_token_latency_ms: Option<f64>,
1755 pub model: String,
1757 #[serde(skip_serializing_if = "Option::is_none")]
1759 pub output_tokens: Option<i64>,
1760 #[doc(hidden)]
1762 #[deprecated]
1763 #[serde(skip_serializing_if = "Option::is_none")]
1764 pub parent_tool_call_id: Option<String>,
1765 #[serde(skip_serializing_if = "Option::is_none")]
1767 pub provider_call_id: Option<String>,
1768 #[doc(hidden)]
1770 #[serde(skip_serializing_if = "Option::is_none")]
1771 pub(crate) quota_snapshots: Option<HashMap<String, AssistantUsageQuotaSnapshot>>,
1772 #[serde(skip_serializing_if = "Option::is_none")]
1774 pub reasoning_effort: Option<String>,
1775 #[serde(skip_serializing_if = "Option::is_none")]
1777 pub reasoning_tokens: Option<i64>,
1778 #[serde(skip_serializing_if = "Option::is_none")]
1780 pub service_request_id: Option<String>,
1781 #[serde(skip_serializing_if = "Option::is_none")]
1783 pub time_to_first_token_ms: Option<i64>,
1784}
1785
1786#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1788#[serde(rename_all = "camelCase")]
1789pub struct ModelCallFailureRequestFingerprint {
1790 pub image_part_count: i64,
1792 pub image_parts_missing_media_type: i64,
1794 #[serde(skip_serializing_if = "Option::is_none")]
1796 pub last_message_role: Option<String>,
1797 pub message_count: i64,
1799 pub nameless_tool_call_count: i64,
1801 pub tool_call_count: i64,
1803 pub tool_result_message_count: i64,
1805}
1806
1807#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1809#[serde(rename_all = "camelCase")]
1810pub struct ModelCallFailureData {
1811 #[serde(skip_serializing_if = "Option::is_none")]
1813 pub api_call_id: Option<String>,
1814 #[serde(skip_serializing_if = "Option::is_none")]
1816 pub bad_request_kind: Option<ModelCallFailureBadRequestKind>,
1817 #[serde(skip_serializing_if = "Option::is_none")]
1819 pub duration_ms: Option<i64>,
1820 #[serde(skip_serializing_if = "Option::is_none")]
1822 pub error_code: Option<String>,
1823 #[serde(skip_serializing_if = "Option::is_none")]
1825 pub error_message: Option<String>,
1826 #[serde(skip_serializing_if = "Option::is_none")]
1828 pub error_type: Option<String>,
1829 #[serde(skip_serializing_if = "Option::is_none")]
1831 pub initiator: Option<String>,
1832 #[serde(skip_serializing_if = "Option::is_none")]
1834 pub model: Option<String>,
1835 #[serde(skip_serializing_if = "Option::is_none")]
1837 pub provider_call_id: Option<String>,
1838 #[doc(hidden)]
1840 #[serde(skip_serializing_if = "Option::is_none")]
1841 pub(crate) quota_snapshots: Option<HashMap<String, AssistantUsageQuotaSnapshot>>,
1842 #[serde(skip_serializing_if = "Option::is_none")]
1844 pub request_fingerprint: Option<ModelCallFailureRequestFingerprint>,
1845 #[serde(skip_serializing_if = "Option::is_none")]
1847 pub service_request_id: Option<String>,
1848 pub source: ModelCallFailureSource,
1850 #[serde(skip_serializing_if = "Option::is_none")]
1852 pub status_code: Option<i32>,
1853}
1854
1855#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1857#[serde(rename_all = "camelCase")]
1858pub struct AbortData {
1859 pub reason: AbortReason,
1861}
1862
1863#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1865#[serde(rename_all = "camelCase")]
1866pub struct ToolUserRequestedData {
1867 #[serde(skip_serializing_if = "Option::is_none")]
1869 pub arguments: Option<serde_json::Value>,
1870 pub tool_call_id: String,
1872 pub tool_name: String,
1874}
1875
1876#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1878#[serde(rename_all = "camelCase")]
1879pub struct ToolExecutionStartShellToolInfo {
1880 pub has_write_file_redirection: bool,
1882 pub possible_paths: Vec<String>,
1884}
1885
1886#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1888#[serde(rename_all = "camelCase")]
1889pub struct ToolExecutionStartToolDescriptionMetaUI {
1890 #[serde(skip_serializing_if = "Option::is_none")]
1892 pub resource_uri: Option<String>,
1893 #[serde(skip_serializing_if = "Option::is_none")]
1895 pub visibility: Option<Vec<ToolExecutionStartToolDescriptionMetaUIVisibility>>,
1896}
1897
1898#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1900#[serde(rename_all = "camelCase")]
1901pub struct ToolExecutionStartToolDescriptionMeta {
1902 #[serde(skip_serializing_if = "Option::is_none")]
1904 pub ui: Option<ToolExecutionStartToolDescriptionMetaUI>,
1905}
1906
1907#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1909#[serde(rename_all = "camelCase")]
1910pub struct ToolExecutionStartToolDescription {
1911 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
1913 pub meta: Option<ToolExecutionStartToolDescriptionMeta>,
1914 #[serde(skip_serializing_if = "Option::is_none")]
1916 pub description: Option<String>,
1917 pub name: String,
1919}
1920
1921#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1923#[serde(rename_all = "camelCase")]
1924pub struct ToolExecutionStartData {
1925 #[serde(skip_serializing_if = "Option::is_none")]
1927 pub arguments: Option<serde_json::Value>,
1928 #[serde(skip_serializing_if = "Option::is_none")]
1930 pub display_verbatim: Option<bool>,
1931 #[serde(skip_serializing_if = "Option::is_none")]
1933 pub mcp_server_name: Option<String>,
1934 #[serde(skip_serializing_if = "Option::is_none")]
1936 pub mcp_tool_name: Option<String>,
1937 #[serde(skip_serializing_if = "Option::is_none")]
1939 pub model: Option<String>,
1940 #[doc(hidden)]
1942 #[deprecated]
1943 #[serde(skip_serializing_if = "Option::is_none")]
1944 pub parent_tool_call_id: Option<String>,
1945 #[serde(skip_serializing_if = "Option::is_none")]
1947 pub shell_tool_info: Option<ToolExecutionStartShellToolInfo>,
1948 pub tool_call_id: String,
1950 #[serde(skip_serializing_if = "Option::is_none")]
1952 pub tool_description: Option<ToolExecutionStartToolDescription>,
1953 pub tool_name: String,
1955 #[serde(skip_serializing_if = "Option::is_none")]
1957 pub turn_id: Option<String>,
1958}
1959
1960#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1962#[serde(rename_all = "camelCase")]
1963pub struct ToolExecutionPartialResultData {
1964 pub partial_output: String,
1966 pub tool_call_id: String,
1968}
1969
1970#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1972#[serde(rename_all = "camelCase")]
1973pub struct ToolExecutionProgressData {
1974 pub progress_message: String,
1976 pub tool_call_id: String,
1978}
1979
1980#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1982#[serde(rename_all = "camelCase")]
1983pub struct ToolExecutionCompleteError {
1984 #[serde(skip_serializing_if = "Option::is_none")]
1986 pub code: Option<String>,
1987 pub message: String,
1989}
1990
1991#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2000#[serde(rename_all = "camelCase")]
2001pub struct CitableSource {
2002 pub content: String,
2004 pub id: String,
2006 #[serde(skip_serializing_if = "Option::is_none")]
2008 pub path: Option<String>,
2009 #[serde(skip_serializing_if = "Option::is_none")]
2011 pub title: Option<String>,
2012 #[serde(skip_serializing_if = "Option::is_none")]
2014 pub url: Option<String>,
2015}
2016
2017#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2019#[serde(rename_all = "camelCase")]
2020pub struct ToolExecutionCompleteContentText {
2021 pub text: String,
2023 pub r#type: ToolExecutionCompleteContentTextType,
2025}
2026
2027#[doc(hidden)]
2029#[deprecated]
2030#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2031#[serde(rename_all = "camelCase")]
2032pub struct ToolExecutionCompleteContentTerminal {
2033 #[serde(skip_serializing_if = "Option::is_none")]
2035 pub cwd: Option<String>,
2036 #[serde(skip_serializing_if = "Option::is_none")]
2038 pub exit_code: Option<i64>,
2039 pub text: String,
2041 pub r#type: ToolExecutionCompleteContentTerminalType,
2043}
2044
2045#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2047#[serde(rename_all = "camelCase")]
2048pub struct ToolExecutionCompleteContentShellExit {
2049 #[serde(skip_serializing_if = "Option::is_none")]
2051 pub cwd: Option<String>,
2052 pub exit_code: i64,
2054 #[serde(skip_serializing_if = "Option::is_none")]
2056 pub output_preview: Option<String>,
2057 #[serde(skip_serializing_if = "Option::is_none")]
2059 pub output_truncated: Option<bool>,
2060 pub shell_id: String,
2062 pub r#type: ToolExecutionCompleteContentShellExitType,
2064}
2065
2066#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2068#[serde(rename_all = "camelCase")]
2069pub struct ToolExecutionCompleteContentImage {
2070 pub data: String,
2072 pub mime_type: String,
2074 pub r#type: ToolExecutionCompleteContentImageType,
2076}
2077
2078#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2080#[serde(rename_all = "camelCase")]
2081pub struct ToolExecutionCompleteContentAudio {
2082 pub data: String,
2084 pub mime_type: String,
2086 pub r#type: ToolExecutionCompleteContentAudioType,
2088}
2089
2090#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2092#[serde(rename_all = "camelCase")]
2093pub struct ToolExecutionCompleteContentResourceLinkIcon {
2094 #[serde(skip_serializing_if = "Option::is_none")]
2096 pub mime_type: Option<String>,
2097 #[serde(skip_serializing_if = "Option::is_none")]
2099 pub sizes: Option<Vec<String>>,
2100 pub src: String,
2102 #[serde(skip_serializing_if = "Option::is_none")]
2104 pub theme: Option<ToolExecutionCompleteContentResourceLinkIconTheme>,
2105}
2106
2107#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2109#[serde(rename_all = "camelCase")]
2110pub struct ToolExecutionCompleteContentResourceLink {
2111 #[serde(skip_serializing_if = "Option::is_none")]
2113 pub description: Option<String>,
2114 #[serde(skip_serializing_if = "Option::is_none")]
2116 pub icons: Option<Vec<ToolExecutionCompleteContentResourceLinkIcon>>,
2117 #[serde(skip_serializing_if = "Option::is_none")]
2119 pub mime_type: Option<String>,
2120 pub name: String,
2122 #[serde(skip_serializing_if = "Option::is_none")]
2124 pub size: Option<i64>,
2125 #[serde(skip_serializing_if = "Option::is_none")]
2127 pub title: Option<String>,
2128 pub r#type: ToolExecutionCompleteContentResourceLinkType,
2130 pub uri: String,
2132}
2133
2134#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2136#[serde(rename_all = "camelCase")]
2137pub struct EmbeddedTextResourceContents {
2138 #[serde(skip_serializing_if = "Option::is_none")]
2140 pub mime_type: Option<String>,
2141 pub text: String,
2143 pub uri: String,
2145}
2146
2147#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2149#[serde(rename_all = "camelCase")]
2150pub struct EmbeddedBlobResourceContents {
2151 pub blob: String,
2153 #[serde(skip_serializing_if = "Option::is_none")]
2155 pub mime_type: Option<String>,
2156 pub uri: String,
2158}
2159
2160#[derive(Debug, Clone, Serialize, Deserialize)]
2162#[serde(rename_all = "camelCase")]
2163pub struct ToolExecutionCompleteContentResource {
2164 pub resource: ToolExecutionCompleteContentResourceDetails,
2166 pub r#type: ToolExecutionCompleteContentResourceType,
2168}
2169
2170#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2172#[serde(rename_all = "camelCase")]
2173pub struct ToolExecutionCompleteUIResourceMetaUICsp {
2174 #[serde(skip_serializing_if = "Option::is_none")]
2175 pub base_uri_domains: Option<Vec<String>>,
2176 #[serde(skip_serializing_if = "Option::is_none")]
2177 pub connect_domains: Option<Vec<String>>,
2178 #[serde(skip_serializing_if = "Option::is_none")]
2179 pub frame_domains: Option<Vec<String>>,
2180 #[serde(skip_serializing_if = "Option::is_none")]
2181 pub resource_domains: Option<Vec<String>>,
2182}
2183
2184#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2186#[serde(rename_all = "camelCase")]
2187pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsCamera {}
2188
2189#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2191#[serde(rename_all = "camelCase")]
2192pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite {}
2193
2194#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2196#[serde(rename_all = "camelCase")]
2197pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation {}
2198
2199#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2201#[serde(rename_all = "camelCase")]
2202pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone {}
2203
2204#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2206#[serde(rename_all = "camelCase")]
2207pub struct ToolExecutionCompleteUIResourceMetaUIPermissions {
2208 #[serde(skip_serializing_if = "Option::is_none")]
2210 pub camera: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsCamera>,
2211 #[serde(skip_serializing_if = "Option::is_none")]
2213 pub clipboard_write: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite>,
2214 #[serde(skip_serializing_if = "Option::is_none")]
2216 pub geolocation: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation>,
2217 #[serde(skip_serializing_if = "Option::is_none")]
2219 pub microphone: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone>,
2220}
2221
2222#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2224#[serde(rename_all = "camelCase")]
2225pub struct ToolExecutionCompleteUIResourceMetaUI {
2226 #[serde(skip_serializing_if = "Option::is_none")]
2228 pub csp: Option<ToolExecutionCompleteUIResourceMetaUICsp>,
2229 #[serde(skip_serializing_if = "Option::is_none")]
2230 pub domain: Option<String>,
2231 #[serde(skip_serializing_if = "Option::is_none")]
2233 pub permissions: Option<ToolExecutionCompleteUIResourceMetaUIPermissions>,
2234 #[serde(skip_serializing_if = "Option::is_none")]
2235 pub prefers_border: Option<bool>,
2236}
2237
2238#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2240#[serde(rename_all = "camelCase")]
2241pub struct ToolExecutionCompleteUIResourceMeta {
2242 #[serde(skip_serializing_if = "Option::is_none")]
2244 pub ui: Option<ToolExecutionCompleteUIResourceMetaUI>,
2245}
2246
2247#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2249#[serde(rename_all = "camelCase")]
2250pub struct ToolExecutionCompleteUIResource {
2251 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2253 pub meta: Option<ToolExecutionCompleteUIResourceMeta>,
2254 #[serde(skip_serializing_if = "Option::is_none")]
2256 pub blob: Option<String>,
2257 pub mime_type: String,
2259 #[serde(skip_serializing_if = "Option::is_none")]
2261 pub text: Option<String>,
2262 pub uri: String,
2264}
2265
2266#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2268#[serde(rename_all = "camelCase")]
2269pub struct ToolExecutionCompleteResult {
2270 #[serde(skip_serializing_if = "Option::is_none")]
2279 pub binary_results_for_llm: Option<Vec<serde_json::Value>>,
2280 #[serde(skip_serializing_if = "Option::is_none")]
2289 pub citable_sources: Option<Vec<CitableSource>>,
2290 pub content: String,
2292 #[serde(skip_serializing_if = "Option::is_none")]
2294 pub contents: Option<Vec<ToolExecutionCompleteContent>>,
2295 #[serde(skip_serializing_if = "Option::is_none")]
2297 pub detailed_content: Option<String>,
2298 #[serde(skip_serializing_if = "Option::is_none")]
2300 pub structured_content: Option<serde_json::Value>,
2301 #[serde(skip_serializing_if = "Option::is_none")]
2303 pub ui_resource: Option<ToolExecutionCompleteUIResource>,
2304}
2305
2306#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2308#[serde(rename_all = "camelCase")]
2309pub struct ToolExecutionCompleteToolDescriptionMetaUI {
2310 #[serde(skip_serializing_if = "Option::is_none")]
2312 pub resource_uri: Option<String>,
2313 #[serde(skip_serializing_if = "Option::is_none")]
2315 pub visibility: Option<Vec<ToolExecutionCompleteToolDescriptionMetaUIVisibility>>,
2316}
2317
2318#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2320#[serde(rename_all = "camelCase")]
2321pub struct ToolExecutionCompleteToolDescriptionMeta {
2322 #[serde(skip_serializing_if = "Option::is_none")]
2324 pub ui: Option<ToolExecutionCompleteToolDescriptionMetaUI>,
2325}
2326
2327#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2329#[serde(rename_all = "camelCase")]
2330pub struct ToolExecutionCompleteToolDescription {
2331 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2333 pub meta: Option<ToolExecutionCompleteToolDescriptionMeta>,
2334 #[serde(skip_serializing_if = "Option::is_none")]
2336 pub description: Option<String>,
2337 pub name: String,
2339}
2340
2341#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2343#[serde(rename_all = "camelCase")]
2344pub struct ToolExecutionCompleteData {
2345 #[serde(skip_serializing_if = "Option::is_none")]
2347 pub error: Option<ToolExecutionCompleteError>,
2348 #[serde(skip_serializing_if = "Option::is_none")]
2350 pub interaction_id: Option<String>,
2351 #[serde(skip_serializing_if = "Option::is_none")]
2353 pub is_user_requested: Option<bool>,
2354 #[serde(skip_serializing_if = "Option::is_none")]
2356 pub model: Option<String>,
2357 #[doc(hidden)]
2359 #[deprecated]
2360 #[serde(skip_serializing_if = "Option::is_none")]
2361 pub parent_tool_call_id: Option<String>,
2362 #[serde(skip_serializing_if = "Option::is_none")]
2364 pub result: Option<ToolExecutionCompleteResult>,
2365 #[serde(skip_serializing_if = "Option::is_none")]
2367 pub sandboxed: Option<bool>,
2368 pub success: bool,
2370 pub tool_call_id: String,
2372 #[serde(skip_serializing_if = "Option::is_none")]
2374 pub tool_description: Option<ToolExecutionCompleteToolDescription>,
2375 #[serde(skip_serializing_if = "Option::is_none")]
2377 pub tool_telemetry: Option<HashMap<String, serde_json::Value>>,
2378 #[serde(skip_serializing_if = "Option::is_none")]
2380 pub turn_id: Option<String>,
2381}
2382
2383#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2385#[serde(rename_all = "camelCase")]
2386pub struct SkillInvokedData {
2387 #[serde(skip_serializing_if = "Option::is_none")]
2389 pub allowed_tools: Option<Vec<String>>,
2390 pub content: String,
2392 #[serde(skip_serializing_if = "Option::is_none")]
2394 pub description: Option<String>,
2395 pub name: String,
2397 pub path: String,
2399 #[serde(skip_serializing_if = "Option::is_none")]
2401 pub plugin_name: Option<String>,
2402 #[serde(skip_serializing_if = "Option::is_none")]
2404 pub plugin_version: Option<String>,
2405 #[serde(skip_serializing_if = "Option::is_none")]
2407 pub source: Option<String>,
2408 #[serde(skip_serializing_if = "Option::is_none")]
2410 pub trigger: Option<SkillInvokedTrigger>,
2411}
2412
2413#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2415#[serde(rename_all = "camelCase")]
2416pub struct SubagentStartedData {
2417 pub agent_description: String,
2419 pub agent_display_name: String,
2421 pub agent_name: String,
2423 #[serde(skip_serializing_if = "Option::is_none")]
2425 pub model: Option<String>,
2426 pub tool_call_id: String,
2428}
2429
2430#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2432#[serde(rename_all = "camelCase")]
2433pub struct SubagentCompletedData {
2434 pub agent_display_name: String,
2436 pub agent_name: String,
2438 #[serde(skip_serializing_if = "Option::is_none")]
2440 pub duration_ms: Option<i64>,
2441 #[serde(skip_serializing_if = "Option::is_none")]
2443 pub model: Option<String>,
2444 pub tool_call_id: String,
2446 #[serde(skip_serializing_if = "Option::is_none")]
2448 pub total_tokens: Option<i64>,
2449 #[serde(skip_serializing_if = "Option::is_none")]
2451 pub total_tool_calls: Option<i64>,
2452}
2453
2454#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2456#[serde(rename_all = "camelCase")]
2457pub struct SubagentFailedData {
2458 pub agent_display_name: String,
2460 pub agent_name: String,
2462 #[serde(skip_serializing_if = "Option::is_none")]
2464 pub duration_ms: Option<i64>,
2465 pub error: String,
2467 #[serde(skip_serializing_if = "Option::is_none")]
2469 pub model: Option<String>,
2470 pub tool_call_id: String,
2472 #[serde(skip_serializing_if = "Option::is_none")]
2474 pub total_tokens: Option<i64>,
2475 #[serde(skip_serializing_if = "Option::is_none")]
2477 pub total_tool_calls: Option<i64>,
2478}
2479
2480#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2482#[serde(rename_all = "camelCase")]
2483pub struct SubagentSelectedData {
2484 pub agent_display_name: String,
2486 pub agent_name: String,
2488 pub tools: Option<Vec<String>>,
2490}
2491
2492#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2494#[serde(rename_all = "camelCase")]
2495pub struct SubagentDeselectedData {}
2496
2497#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2499#[serde(rename_all = "camelCase")]
2500pub struct HookStartData {
2501 pub hook_invocation_id: String,
2503 pub hook_type: String,
2505 #[serde(skip_serializing_if = "Option::is_none")]
2507 pub input: Option<serde_json::Value>,
2508}
2509
2510#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2512#[serde(rename_all = "camelCase")]
2513pub struct HookEndError {
2514 pub message: String,
2516 #[serde(skip_serializing_if = "Option::is_none")]
2518 pub source: Option<String>,
2519 #[serde(skip_serializing_if = "Option::is_none")]
2521 pub stack: Option<String>,
2522}
2523
2524#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2526#[serde(rename_all = "camelCase")]
2527pub struct HookEndData {
2528 #[serde(skip_serializing_if = "Option::is_none")]
2530 pub error: Option<HookEndError>,
2531 pub hook_invocation_id: String,
2533 pub hook_type: String,
2535 #[serde(skip_serializing_if = "Option::is_none")]
2537 pub output: Option<serde_json::Value>,
2538 pub success: bool,
2540}
2541
2542#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2544#[serde(rename_all = "camelCase")]
2545pub struct HookProgressData {
2546 pub message: String,
2548 #[serde(skip_serializing_if = "Option::is_none")]
2550 pub temporary: Option<bool>,
2551}
2552
2553#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2555#[serde(rename_all = "camelCase")]
2556pub struct SessionBinaryAssetData {
2557 pub asset_id: String,
2559 pub byte_length: i64,
2561 pub data: String,
2563 #[serde(skip_serializing_if = "Option::is_none")]
2565 pub description: Option<String>,
2566 #[serde(skip_serializing_if = "Option::is_none")]
2568 pub metadata: Option<HashMap<String, serde_json::Value>>,
2569 pub mime_type: String,
2571 pub r#type: BinaryAssetType,
2573}
2574
2575#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2577#[serde(rename_all = "camelCase")]
2578pub struct SystemMessageMetadata {
2579 #[serde(skip_serializing_if = "Option::is_none")]
2581 pub prompt_version: Option<String>,
2582 #[serde(skip_serializing_if = "Option::is_none")]
2584 pub variables: Option<HashMap<String, serde_json::Value>>,
2585}
2586
2587#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2589#[serde(rename_all = "camelCase")]
2590pub struct SystemMessageData {
2591 pub content: String,
2593 #[serde(skip_serializing_if = "Option::is_none")]
2595 pub metadata: Option<SystemMessageMetadata>,
2596 #[serde(skip_serializing_if = "Option::is_none")]
2598 pub name: Option<String>,
2599 pub role: SystemMessageRole,
2601}
2602
2603#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2605#[serde(rename_all = "camelCase")]
2606pub struct SystemNotificationData {
2607 pub content: String,
2609 pub kind: serde_json::Value,
2611}
2612
2613#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2615#[serde(rename_all = "camelCase")]
2616pub struct PermissionRequestShellCommand {
2617 pub identifier: String,
2619 pub read_only: bool,
2621}
2622
2623#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2625#[serde(rename_all = "camelCase")]
2626pub struct PermissionRequestShellPossibleUrl {
2627 pub url: String,
2629}
2630
2631#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2633#[serde(rename_all = "camelCase")]
2634pub struct PermissionRequestShell {
2635 pub can_offer_session_approval: bool,
2637 pub commands: Vec<PermissionRequestShellCommand>,
2639 pub full_command_text: String,
2641 pub has_write_file_redirection: bool,
2643 pub intention: String,
2645 pub kind: PermissionRequestShellKind,
2647 pub possible_paths: Vec<String>,
2649 pub possible_urls: Vec<PermissionRequestShellPossibleUrl>,
2651 #[serde(skip_serializing_if = "Option::is_none")]
2653 pub request_sandbox_bypass: Option<bool>,
2654 #[serde(skip_serializing_if = "Option::is_none")]
2656 pub request_sandbox_bypass_reason: Option<String>,
2657 #[serde(skip_serializing_if = "Option::is_none")]
2659 pub tool_call_id: Option<String>,
2660 #[serde(skip_serializing_if = "Option::is_none")]
2662 pub warning: Option<String>,
2663}
2664
2665#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2667#[serde(rename_all = "camelCase")]
2668pub struct PermissionRequestWrite {
2669 pub can_offer_session_approval: bool,
2671 pub diff: String,
2673 pub file_name: String,
2675 pub intention: String,
2677 pub kind: PermissionRequestWriteKind,
2679 #[serde(skip_serializing_if = "Option::is_none")]
2681 pub new_file_contents: Option<String>,
2682 #[serde(skip_serializing_if = "Option::is_none")]
2684 pub tool_call_id: Option<String>,
2685}
2686
2687#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2689#[serde(rename_all = "camelCase")]
2690pub struct PermissionRequestRead {
2691 pub intention: String,
2693 pub kind: PermissionRequestReadKind,
2695 pub path: String,
2697 #[serde(skip_serializing_if = "Option::is_none")]
2699 pub tool_call_id: Option<String>,
2700}
2701
2702#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2704#[serde(rename_all = "camelCase")]
2705pub struct PermissionRequestMcp {
2706 #[serde(skip_serializing_if = "Option::is_none")]
2708 pub args: Option<serde_json::Value>,
2709 pub kind: PermissionRequestMcpKind,
2711 pub read_only: bool,
2713 pub server_name: String,
2715 #[serde(skip_serializing_if = "Option::is_none")]
2717 pub tool_call_id: Option<String>,
2718 pub tool_name: String,
2720 pub tool_title: String,
2722}
2723
2724#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2726#[serde(rename_all = "camelCase")]
2727pub struct PermissionRequestUrl {
2728 pub intention: String,
2730 pub kind: PermissionRequestUrlKind,
2732 #[serde(skip_serializing_if = "Option::is_none")]
2734 pub tool_call_id: Option<String>,
2735 pub url: String,
2737}
2738
2739#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2741#[serde(rename_all = "camelCase")]
2742pub struct PermissionRequestMemory {
2743 #[serde(skip_serializing_if = "Option::is_none")]
2745 pub action: Option<PermissionRequestMemoryAction>,
2746 #[serde(skip_serializing_if = "Option::is_none")]
2748 pub citations: Option<String>,
2749 #[serde(skip_serializing_if = "Option::is_none")]
2751 pub direction: Option<PermissionRequestMemoryDirection>,
2752 pub fact: String,
2754 pub kind: PermissionRequestMemoryKind,
2756 #[serde(skip_serializing_if = "Option::is_none")]
2758 pub reason: Option<String>,
2759 #[serde(skip_serializing_if = "Option::is_none")]
2761 pub subject: Option<String>,
2762 #[serde(skip_serializing_if = "Option::is_none")]
2764 pub tool_call_id: Option<String>,
2765}
2766
2767#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2769#[serde(rename_all = "camelCase")]
2770pub struct PermissionRequestCustomTool {
2771 #[serde(skip_serializing_if = "Option::is_none")]
2773 pub args: Option<serde_json::Value>,
2774 pub kind: PermissionRequestCustomToolKind,
2776 #[serde(skip_serializing_if = "Option::is_none")]
2778 pub tool_call_id: Option<String>,
2779 pub tool_description: String,
2781 pub tool_name: String,
2783}
2784
2785#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2787#[serde(rename_all = "camelCase")]
2788pub struct PermissionRequestHook {
2789 #[serde(skip_serializing_if = "Option::is_none")]
2791 pub hook_message: Option<String>,
2792 pub kind: PermissionRequestHookKind,
2794 #[serde(skip_serializing_if = "Option::is_none")]
2796 pub tool_args: Option<serde_json::Value>,
2797 #[serde(skip_serializing_if = "Option::is_none")]
2799 pub tool_call_id: Option<String>,
2800 pub tool_name: String,
2802}
2803
2804#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2806#[serde(rename_all = "camelCase")]
2807pub struct PermissionRequestExtensionManagement {
2808 #[serde(skip_serializing_if = "Option::is_none")]
2810 pub extension_name: Option<String>,
2811 pub kind: PermissionRequestExtensionManagementKind,
2813 pub operation: String,
2815 #[serde(skip_serializing_if = "Option::is_none")]
2817 pub tool_call_id: Option<String>,
2818}
2819
2820#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2822#[serde(rename_all = "camelCase")]
2823pub struct PermissionRequestExtensionPermissionAccess {
2824 pub capabilities: Vec<String>,
2826 pub extension_name: String,
2828 pub kind: PermissionRequestExtensionPermissionAccessKind,
2830 #[serde(skip_serializing_if = "Option::is_none")]
2832 pub tool_call_id: Option<String>,
2833}
2834
2835#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2837#[serde(rename_all = "camelCase")]
2838pub struct PermissionPromptRequestCommands {
2839 pub can_offer_session_approval: bool,
2841 pub command_identifiers: Vec<String>,
2843 pub full_command_text: String,
2845 pub intention: String,
2847 pub kind: PermissionPromptRequestCommandsKind,
2849 #[serde(skip_serializing_if = "Option::is_none")]
2851 pub tool_call_id: Option<String>,
2852 #[serde(skip_serializing_if = "Option::is_none")]
2854 pub warning: Option<String>,
2855}
2856
2857#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2859#[serde(rename_all = "camelCase")]
2860pub struct PermissionPromptRequestWrite {
2861 pub can_offer_session_approval: bool,
2863 pub diff: String,
2865 pub file_name: String,
2867 pub intention: String,
2869 pub kind: PermissionPromptRequestWriteKind,
2871 #[serde(skip_serializing_if = "Option::is_none")]
2873 pub new_file_contents: Option<String>,
2874 #[serde(skip_serializing_if = "Option::is_none")]
2876 pub tool_call_id: Option<String>,
2877}
2878
2879#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2881#[serde(rename_all = "camelCase")]
2882pub struct PermissionPromptRequestRead {
2883 pub intention: String,
2885 pub kind: PermissionPromptRequestReadKind,
2887 pub path: String,
2889 #[serde(skip_serializing_if = "Option::is_none")]
2891 pub tool_call_id: Option<String>,
2892}
2893
2894#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2896#[serde(rename_all = "camelCase")]
2897pub struct PermissionPromptRequestMcp {
2898 #[serde(skip_serializing_if = "Option::is_none")]
2900 pub args: Option<serde_json::Value>,
2901 pub kind: PermissionPromptRequestMcpKind,
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 PermissionPromptRequestUrl {
2918 pub intention: String,
2920 pub kind: PermissionPromptRequestUrlKind,
2922 #[serde(skip_serializing_if = "Option::is_none")]
2924 pub tool_call_id: Option<String>,
2925 pub url: String,
2927}
2928
2929#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2931#[serde(rename_all = "camelCase")]
2932pub struct PermissionPromptRequestMemory {
2933 #[serde(skip_serializing_if = "Option::is_none")]
2935 pub action: Option<PermissionRequestMemoryAction>,
2936 #[serde(skip_serializing_if = "Option::is_none")]
2938 pub citations: Option<String>,
2939 #[serde(skip_serializing_if = "Option::is_none")]
2941 pub direction: Option<PermissionRequestMemoryDirection>,
2942 pub fact: String,
2944 pub kind: PermissionPromptRequestMemoryKind,
2946 #[serde(skip_serializing_if = "Option::is_none")]
2948 pub reason: Option<String>,
2949 #[serde(skip_serializing_if = "Option::is_none")]
2951 pub subject: Option<String>,
2952 #[serde(skip_serializing_if = "Option::is_none")]
2954 pub tool_call_id: Option<String>,
2955}
2956
2957#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2959#[serde(rename_all = "camelCase")]
2960pub struct PermissionPromptRequestCustomTool {
2961 #[serde(skip_serializing_if = "Option::is_none")]
2963 pub args: Option<serde_json::Value>,
2964 pub kind: PermissionPromptRequestCustomToolKind,
2966 #[serde(skip_serializing_if = "Option::is_none")]
2968 pub tool_call_id: Option<String>,
2969 pub tool_description: String,
2971 pub tool_name: String,
2973}
2974
2975#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2977#[serde(rename_all = "camelCase")]
2978pub struct PermissionPromptRequestPath {
2979 pub access_kind: PermissionPromptRequestPathAccessKind,
2981 pub kind: PermissionPromptRequestPathKind,
2983 pub paths: Vec<String>,
2985 #[serde(skip_serializing_if = "Option::is_none")]
2987 pub tool_call_id: Option<String>,
2988}
2989
2990#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2992#[serde(rename_all = "camelCase")]
2993pub struct PermissionPromptRequestHook {
2994 #[serde(skip_serializing_if = "Option::is_none")]
2996 pub hook_message: Option<String>,
2997 pub kind: PermissionPromptRequestHookKind,
2999 #[serde(skip_serializing_if = "Option::is_none")]
3001 pub tool_args: Option<serde_json::Value>,
3002 #[serde(skip_serializing_if = "Option::is_none")]
3004 pub tool_call_id: Option<String>,
3005 pub tool_name: String,
3007}
3008
3009#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3011#[serde(rename_all = "camelCase")]
3012pub struct PermissionPromptRequestExtensionManagement {
3013 #[serde(skip_serializing_if = "Option::is_none")]
3015 pub extension_name: Option<String>,
3016 pub kind: PermissionPromptRequestExtensionManagementKind,
3018 pub operation: String,
3020 #[serde(skip_serializing_if = "Option::is_none")]
3022 pub tool_call_id: Option<String>,
3023}
3024
3025#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3027#[serde(rename_all = "camelCase")]
3028pub struct PermissionPromptRequestExtensionPermissionAccess {
3029 pub capabilities: Vec<String>,
3031 pub extension_name: String,
3033 pub kind: PermissionPromptRequestExtensionPermissionAccessKind,
3035 #[serde(skip_serializing_if = "Option::is_none")]
3037 pub tool_call_id: Option<String>,
3038}
3039
3040#[derive(Debug, Clone, Serialize, Deserialize)]
3042#[serde(rename_all = "camelCase")]
3043pub struct PermissionRequestedData {
3044 pub permission_request: PermissionRequest,
3046 #[serde(skip_serializing_if = "Option::is_none")]
3048 pub prompt_request: Option<PermissionPromptRequest>,
3049 pub request_id: RequestId,
3051 #[serde(skip_serializing_if = "Option::is_none")]
3053 pub resolved_by_hook: Option<bool>,
3054}
3055
3056#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3058#[serde(rename_all = "camelCase")]
3059pub struct PermissionApproved {
3060 pub kind: PermissionApprovedKind,
3062}
3063
3064#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3066#[serde(rename_all = "camelCase")]
3067pub struct UserToolSessionApprovalCommands {
3068 pub command_identifiers: Vec<String>,
3070 pub kind: UserToolSessionApprovalCommandsKind,
3072}
3073
3074#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3076#[serde(rename_all = "camelCase")]
3077pub struct UserToolSessionApprovalRead {
3078 pub kind: UserToolSessionApprovalReadKind,
3080}
3081
3082#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3084#[serde(rename_all = "camelCase")]
3085pub struct UserToolSessionApprovalWrite {
3086 pub kind: UserToolSessionApprovalWriteKind,
3088}
3089
3090#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3092#[serde(rename_all = "camelCase")]
3093pub struct UserToolSessionApprovalMcp {
3094 pub kind: UserToolSessionApprovalMcpKind,
3096 pub server_name: String,
3098 pub tool_name: Option<String>,
3100}
3101
3102#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3104#[serde(rename_all = "camelCase")]
3105pub struct UserToolSessionApprovalMemory {
3106 pub kind: UserToolSessionApprovalMemoryKind,
3108}
3109
3110#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3112#[serde(rename_all = "camelCase")]
3113pub struct UserToolSessionApprovalCustomTool {
3114 pub kind: UserToolSessionApprovalCustomToolKind,
3116 pub tool_name: String,
3118}
3119
3120#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3122#[serde(rename_all = "camelCase")]
3123pub struct UserToolSessionApprovalExtensionManagement {
3124 pub kind: UserToolSessionApprovalExtensionManagementKind,
3126 #[serde(skip_serializing_if = "Option::is_none")]
3128 pub operation: Option<String>,
3129}
3130
3131#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3133#[serde(rename_all = "camelCase")]
3134pub struct UserToolSessionApprovalExtensionPermissionAccess {
3135 pub extension_name: String,
3137 pub kind: UserToolSessionApprovalExtensionPermissionAccessKind,
3139}
3140
3141#[derive(Debug, Clone, Serialize, Deserialize)]
3143#[serde(rename_all = "camelCase")]
3144pub struct PermissionApprovedForSession {
3145 pub approval: UserToolSessionApproval,
3147 pub kind: PermissionApprovedForSessionKind,
3149}
3150
3151#[derive(Debug, Clone, Serialize, Deserialize)]
3153#[serde(rename_all = "camelCase")]
3154pub struct PermissionApprovedForLocation {
3155 pub approval: UserToolSessionApproval,
3157 pub kind: PermissionApprovedForLocationKind,
3159 pub location_key: String,
3161}
3162
3163#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3165#[serde(rename_all = "camelCase")]
3166pub struct PermissionCancelled {
3167 pub kind: PermissionCancelledKind,
3169 #[serde(skip_serializing_if = "Option::is_none")]
3171 pub reason: Option<String>,
3172}
3173
3174#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3176#[serde(rename_all = "camelCase")]
3177pub struct PermissionRule {
3178 pub argument: Option<String>,
3180 pub kind: String,
3182}
3183
3184#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3186#[serde(rename_all = "camelCase")]
3187pub struct PermissionDeniedByRules {
3188 pub kind: PermissionDeniedByRulesKind,
3190 pub rules: Vec<PermissionRule>,
3192}
3193
3194#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3196#[serde(rename_all = "camelCase")]
3197pub struct PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser {
3198 pub kind: PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUserKind,
3200}
3201
3202#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3204#[serde(rename_all = "camelCase")]
3205pub struct PermissionDeniedInteractivelyByUser {
3206 #[serde(skip_serializing_if = "Option::is_none")]
3208 pub feedback: Option<String>,
3209 #[serde(skip_serializing_if = "Option::is_none")]
3211 pub force_reject: Option<bool>,
3212 pub kind: PermissionDeniedInteractivelyByUserKind,
3214}
3215
3216#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3218#[serde(rename_all = "camelCase")]
3219pub struct PermissionDeniedByContentExclusionPolicy {
3220 pub kind: PermissionDeniedByContentExclusionPolicyKind,
3222 pub message: String,
3224 pub path: String,
3226}
3227
3228#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3230#[serde(rename_all = "camelCase")]
3231pub struct PermissionDeniedByPermissionRequestHook {
3232 #[serde(skip_serializing_if = "Option::is_none")]
3234 pub interrupt: Option<bool>,
3235 pub kind: PermissionDeniedByPermissionRequestHookKind,
3237 #[serde(skip_serializing_if = "Option::is_none")]
3239 pub message: Option<String>,
3240}
3241
3242#[derive(Debug, Clone, Serialize, Deserialize)]
3244#[serde(rename_all = "camelCase")]
3245pub struct PermissionCompletedData {
3246 pub request_id: RequestId,
3248 pub result: PermissionResult,
3250 #[serde(skip_serializing_if = "Option::is_none")]
3252 pub tool_call_id: Option<String>,
3253}
3254
3255#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3257#[serde(rename_all = "camelCase")]
3258pub struct UserInputRequestedData {
3259 #[serde(skip_serializing_if = "Option::is_none")]
3261 pub allow_freeform: Option<bool>,
3262 #[serde(skip_serializing_if = "Option::is_none")]
3264 pub choices: Option<Vec<String>>,
3265 pub question: String,
3267 pub request_id: RequestId,
3269 #[serde(skip_serializing_if = "Option::is_none")]
3271 pub tool_call_id: Option<String>,
3272}
3273
3274#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3276#[serde(rename_all = "camelCase")]
3277pub struct UserInputCompletedData {
3278 #[serde(skip_serializing_if = "Option::is_none")]
3280 pub answer: Option<String>,
3281 pub request_id: RequestId,
3283 #[serde(skip_serializing_if = "Option::is_none")]
3285 pub was_freeform: Option<bool>,
3286}
3287
3288#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3290#[serde(rename_all = "camelCase")]
3291pub struct ElicitationRequestedSchema {
3292 pub properties: HashMap<String, serde_json::Value>,
3294 #[serde(skip_serializing_if = "Option::is_none")]
3296 pub required: Option<Vec<String>>,
3297 pub r#type: ElicitationRequestedSchemaType,
3299}
3300
3301#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3303#[serde(rename_all = "camelCase")]
3304pub struct ElicitationRequestedData {
3305 #[serde(skip_serializing_if = "Option::is_none")]
3307 pub elicitation_source: Option<String>,
3308 pub message: String,
3310 #[serde(skip_serializing_if = "Option::is_none")]
3312 pub mode: Option<ElicitationRequestedMode>,
3313 #[serde(skip_serializing_if = "Option::is_none")]
3315 pub requested_schema: Option<ElicitationRequestedSchema>,
3316 pub request_id: RequestId,
3318 #[serde(skip_serializing_if = "Option::is_none")]
3320 pub tool_call_id: Option<String>,
3321 #[serde(skip_serializing_if = "Option::is_none")]
3323 pub url: Option<String>,
3324}
3325
3326#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3328#[serde(rename_all = "camelCase")]
3329pub struct ElicitationCompletedData {
3330 #[serde(skip_serializing_if = "Option::is_none")]
3332 pub action: Option<ElicitationCompletedAction>,
3333 #[serde(skip_serializing_if = "Option::is_none")]
3335 pub content: Option<HashMap<String, serde_json::Value>>,
3336 pub request_id: RequestId,
3338}
3339
3340#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3342#[serde(rename_all = "camelCase")]
3343pub struct SamplingRequestedData {
3344 pub mcp_request_id: serde_json::Value,
3346 pub request_id: RequestId,
3348 pub server_name: String,
3350}
3351
3352#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3354#[serde(rename_all = "camelCase")]
3355pub struct SamplingCompletedData {
3356 pub request_id: RequestId,
3358}
3359
3360#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3362#[serde(rename_all = "camelCase")]
3363pub struct McpOauthRequiredStaticClientConfig {
3364 pub client_id: String,
3366 #[serde(skip_serializing_if = "Option::is_none")]
3368 pub client_secret: Option<String>,
3369 #[serde(skip_serializing_if = "Option::is_none")]
3371 pub grant_type: Option<McpOauthRequiredStaticClientConfigGrantType>,
3372 #[serde(skip_serializing_if = "Option::is_none")]
3374 pub public_client: Option<bool>,
3375}
3376
3377#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3379#[serde(rename_all = "camelCase")]
3380pub struct McpOauthWWWAuthenticateParams {
3381 #[serde(skip_serializing_if = "Option::is_none")]
3383 pub error: Option<String>,
3384 #[serde(skip_serializing_if = "Option::is_none")]
3386 pub resource_metadata_url: Option<String>,
3387 #[serde(skip_serializing_if = "Option::is_none")]
3389 pub scope: Option<String>,
3390}
3391
3392#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3394#[serde(rename_all = "camelCase")]
3395pub struct McpOauthRequiredData {
3396 pub reason: McpOauthRequestReason,
3398 pub request_id: RequestId,
3400 #[serde(skip_serializing_if = "Option::is_none")]
3402 pub resource_metadata: Option<String>,
3403 pub server_name: String,
3405 pub server_url: String,
3407 #[serde(skip_serializing_if = "Option::is_none")]
3409 pub static_client_config: Option<McpOauthRequiredStaticClientConfig>,
3410 #[serde(skip_serializing_if = "Option::is_none")]
3412 pub www_authenticate_params: Option<McpOauthWWWAuthenticateParams>,
3413}
3414
3415#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3417#[serde(rename_all = "camelCase")]
3418pub struct McpOauthCompletedData {
3419 pub outcome: McpOauthCompletionOutcome,
3421 pub request_id: RequestId,
3423}
3424
3425#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3427#[serde(rename_all = "camelCase")]
3428pub struct McpHeadersRefreshRequiredData {
3429 pub reason: McpHeadersRefreshRequiredReason,
3431 pub request_id: RequestId,
3433 pub server_name: String,
3435 pub server_url: String,
3437}
3438
3439#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3441#[serde(rename_all = "camelCase")]
3442pub struct McpHeadersRefreshCompletedData {
3443 pub outcome: McpHeadersRefreshCompletedOutcome,
3445 pub request_id: RequestId,
3447}
3448
3449#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3451#[serde(rename_all = "camelCase")]
3452pub struct SessionCustomNotificationData {
3453 pub name: String,
3455 pub payload: serde_json::Value,
3457 pub source: String,
3459 #[serde(skip_serializing_if = "Option::is_none")]
3461 pub subject: Option<HashMap<String, String>>,
3462 #[serde(skip_serializing_if = "Option::is_none")]
3464 pub version: Option<i64>,
3465}
3466
3467#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3469#[serde(rename_all = "camelCase")]
3470pub struct ExternalToolRequestedData {
3471 #[serde(skip_serializing_if = "Option::is_none")]
3473 pub arguments: Option<serde_json::Value>,
3474 pub request_id: RequestId,
3476 pub session_id: SessionId,
3478 pub tool_call_id: String,
3480 pub tool_name: String,
3482 #[serde(skip_serializing_if = "Option::is_none")]
3484 pub traceparent: Option<String>,
3485 #[serde(skip_serializing_if = "Option::is_none")]
3487 pub tracestate: Option<String>,
3488 #[serde(skip_serializing_if = "Option::is_none")]
3490 pub working_directory: Option<String>,
3491}
3492
3493#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3495#[serde(rename_all = "camelCase")]
3496pub struct ExternalToolCompletedData {
3497 pub request_id: RequestId,
3499}
3500
3501#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3503#[serde(rename_all = "camelCase")]
3504pub struct CommandQueuedData {
3505 pub command: String,
3507 pub request_id: RequestId,
3509}
3510
3511#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3513#[serde(rename_all = "camelCase")]
3514pub struct CommandExecuteData {
3515 pub args: String,
3517 pub command: String,
3519 pub command_name: String,
3521 pub request_id: RequestId,
3523}
3524
3525#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3527#[serde(rename_all = "camelCase")]
3528pub struct CommandCompletedData {
3529 pub request_id: RequestId,
3531}
3532
3533#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3535#[serde(rename_all = "camelCase")]
3536pub struct AutoModeSwitchRequestedData {
3537 #[serde(skip_serializing_if = "Option::is_none")]
3539 pub error_code: Option<String>,
3540 pub request_id: RequestId,
3542 #[serde(skip_serializing_if = "Option::is_none")]
3544 pub retry_after_seconds: Option<i64>,
3545}
3546
3547#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3549#[serde(rename_all = "camelCase")]
3550pub struct AutoModeSwitchCompletedData {
3551 pub request_id: RequestId,
3553 pub response: AutoModeSwitchResponse,
3555}
3556
3557#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3559#[serde(rename_all = "camelCase")]
3560pub struct CommandsChangedCommand {
3561 #[serde(skip_serializing_if = "Option::is_none")]
3563 pub description: Option<String>,
3564 pub name: String,
3566}
3567
3568#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3570#[serde(rename_all = "camelCase")]
3571pub struct CommandsChangedData {
3572 pub commands: Vec<CommandsChangedCommand>,
3574}
3575
3576#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3578#[serde(rename_all = "camelCase")]
3579pub struct CapabilitiesChangedUI {
3580 #[serde(skip_serializing_if = "Option::is_none")]
3582 pub canvases: Option<bool>,
3583 #[serde(skip_serializing_if = "Option::is_none")]
3585 pub elicitation: Option<bool>,
3586 #[serde(skip_serializing_if = "Option::is_none")]
3588 pub mcp_apps: Option<bool>,
3589}
3590
3591#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3593#[serde(rename_all = "camelCase")]
3594pub struct CapabilitiesChangedData {
3595 #[serde(skip_serializing_if = "Option::is_none")]
3597 pub ui: Option<CapabilitiesChangedUI>,
3598}
3599
3600#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3602#[serde(rename_all = "camelCase")]
3603pub struct ExitPlanModeRequestedData {
3604 pub actions: Vec<ExitPlanModeAction>,
3606 pub plan_content: String,
3608 pub recommended_action: ExitPlanModeAction,
3610 pub request_id: RequestId,
3612 pub summary: String,
3614}
3615
3616#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3618#[serde(rename_all = "camelCase")]
3619pub struct ExitPlanModeCompletedData {
3620 #[serde(skip_serializing_if = "Option::is_none")]
3622 pub approved: Option<bool>,
3623 #[serde(skip_serializing_if = "Option::is_none")]
3625 pub auto_approve_edits: Option<bool>,
3626 #[serde(skip_serializing_if = "Option::is_none")]
3628 pub feedback: Option<String>,
3629 pub request_id: RequestId,
3631 #[serde(skip_serializing_if = "Option::is_none")]
3633 pub selected_action: Option<ExitPlanModeAction>,
3634}
3635
3636#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3638#[serde(rename_all = "camelCase")]
3639pub struct SessionToolsUpdatedData {
3640 pub model: String,
3642}
3643
3644#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3646#[serde(rename_all = "camelCase")]
3647pub struct SessionBackgroundTasksChangedData {}
3648
3649#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3651#[serde(rename_all = "camelCase")]
3652pub struct SkillsLoadedSkill {
3653 #[serde(skip_serializing_if = "Option::is_none")]
3655 pub argument_hint: Option<String>,
3656 pub description: String,
3658 pub enabled: bool,
3660 pub name: String,
3662 #[serde(skip_serializing_if = "Option::is_none")]
3664 pub path: Option<String>,
3665 pub source: SkillSource,
3667 pub user_invocable: bool,
3669}
3670
3671#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3673#[serde(rename_all = "camelCase")]
3674pub struct SessionSkillsLoadedData {
3675 pub skills: Vec<SkillsLoadedSkill>,
3677}
3678
3679#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3681#[serde(rename_all = "camelCase")]
3682pub struct CustomAgentsUpdatedAgent {
3683 pub description: String,
3685 pub display_name: String,
3687 pub id: String,
3689 #[serde(skip_serializing_if = "Option::is_none")]
3691 pub model: Option<String>,
3692 pub name: String,
3694 pub source: String,
3696 pub tools: Option<Vec<String>>,
3698 pub user_invocable: bool,
3700}
3701
3702#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3704#[serde(rename_all = "camelCase")]
3705pub struct SessionCustomAgentsUpdatedData {
3706 pub agents: Vec<CustomAgentsUpdatedAgent>,
3708 pub errors: Vec<String>,
3710 pub warnings: Vec<String>,
3712}
3713
3714#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3716#[serde(rename_all = "camelCase")]
3717pub struct McpServersLoadedServer {
3718 #[serde(skip_serializing_if = "Option::is_none")]
3720 pub error: Option<String>,
3721 pub name: String,
3723 #[serde(skip_serializing_if = "Option::is_none")]
3725 pub plugin_name: Option<String>,
3726 #[serde(skip_serializing_if = "Option::is_none")]
3728 pub plugin_version: Option<String>,
3729 #[serde(skip_serializing_if = "Option::is_none")]
3731 pub source: Option<McpServerSource>,
3732 pub status: McpServerStatus,
3734 #[serde(skip_serializing_if = "Option::is_none")]
3736 pub transport: Option<McpServerTransport>,
3737}
3738
3739#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3741#[serde(rename_all = "camelCase")]
3742pub struct SessionMcpServersLoadedData {
3743 pub servers: Vec<McpServersLoadedServer>,
3745}
3746
3747#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3749#[serde(rename_all = "camelCase")]
3750pub struct SessionMcpServerStatusChangedData {
3751 #[serde(skip_serializing_if = "Option::is_none")]
3753 pub error: Option<String>,
3754 pub server_name: String,
3756 pub status: McpServerStatus,
3758}
3759
3760#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3762#[serde(rename_all = "camelCase")]
3763pub struct ExtensionsLoadedExtension {
3764 pub id: String,
3766 pub name: String,
3768 pub source: ExtensionsLoadedExtensionSource,
3770 pub status: ExtensionsLoadedExtensionStatus,
3772}
3773
3774#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3776#[serde(rename_all = "camelCase")]
3777pub struct SessionExtensionsLoadedData {
3778 pub extensions: Vec<ExtensionsLoadedExtension>,
3780}
3781
3782#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3791#[serde(rename_all = "camelCase")]
3792pub struct SessionCanvasOpenedData {
3793 pub canvas_id: String,
3795 pub extension_id: String,
3797 #[serde(skip_serializing_if = "Option::is_none")]
3799 pub extension_name: Option<String>,
3800 #[serde(skip_serializing_if = "Option::is_none")]
3802 pub input: Option<serde_json::Value>,
3803 pub instance_id: String,
3805 #[serde(skip_serializing_if = "Option::is_none")]
3807 pub status: Option<String>,
3808 #[serde(skip_serializing_if = "Option::is_none")]
3810 pub title: Option<String>,
3811 #[serde(skip_serializing_if = "Option::is_none")]
3813 pub url: Option<String>,
3814}
3815
3816#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3825#[serde(rename_all = "camelCase")]
3826pub struct CanvasRegistryChangedCanvasAction {
3827 #[serde(skip_serializing_if = "Option::is_none")]
3829 pub description: Option<String>,
3830 #[serde(skip_serializing_if = "Option::is_none")]
3832 pub input_schema: Option<serde_json::Value>,
3833 pub name: String,
3835}
3836
3837#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3846#[serde(rename_all = "camelCase")]
3847pub struct CanvasRegistryChangedCanvas {
3848 #[serde(skip_serializing_if = "Option::is_none")]
3850 pub actions: Option<Vec<CanvasRegistryChangedCanvasAction>>,
3851 pub canvas_id: String,
3853 pub description: String,
3855 pub display_name: String,
3857 pub extension_id: String,
3859 #[serde(skip_serializing_if = "Option::is_none")]
3861 pub extension_name: Option<String>,
3862 #[serde(skip_serializing_if = "Option::is_none")]
3864 pub input_schema: Option<serde_json::Value>,
3865}
3866
3867#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3876#[serde(rename_all = "camelCase")]
3877pub struct SessionCanvasRegistryChangedData {
3878 pub canvases: Vec<CanvasRegistryChangedCanvas>,
3880}
3881
3882#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3891#[serde(rename_all = "camelCase")]
3892pub struct SessionCanvasClosedData {
3893 pub canvas_id: String,
3895 pub extension_id: String,
3897 pub instance_id: String,
3899}
3900
3901#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3910#[serde(rename_all = "camelCase")]
3911pub struct SessionCanvasUnavailableData {
3912 pub canvas_id: String,
3914 pub extension_id: String,
3916 pub instance_id: String,
3918}
3919
3920#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3929#[serde(rename_all = "camelCase")]
3930pub struct SessionCanvasRecordedData {
3931 pub canvas_id: String,
3933 pub extension_id: String,
3935 #[serde(skip_serializing_if = "Option::is_none")]
3937 pub input: Option<serde_json::Value>,
3938 pub instance_id: String,
3940 #[serde(skip_serializing_if = "Option::is_none")]
3942 pub title: Option<String>,
3943}
3944
3945#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3954#[serde(rename_all = "camelCase")]
3955pub struct SessionCanvasRemovedData {
3956 pub canvas_id: String,
3958 pub extension_id: String,
3960 pub instance_id: String,
3962}
3963
3964#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3966#[serde(rename_all = "camelCase")]
3967pub struct SessionExtensionsAttachmentsPushedData {
3968 pub attachments: Vec<serde_json::Value>,
3970}
3971
3972#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3974#[serde(rename_all = "camelCase")]
3975pub struct McpAppToolCallCompleteError {
3976 pub message: String,
3978}
3979
3980#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3982#[serde(rename_all = "camelCase")]
3983pub struct McpAppToolCallCompleteToolMetaUI {
3984 #[serde(skip_serializing_if = "Option::is_none")]
3986 pub resource_uri: Option<String>,
3987 #[serde(skip_serializing_if = "Option::is_none")]
3989 pub visibility: Option<Vec<String>>,
3990}
3991
3992#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3994#[serde(rename_all = "camelCase")]
3995pub struct McpAppToolCallCompleteToolMeta {
3996 #[serde(skip_serializing_if = "Option::is_none")]
3998 pub ui: Option<McpAppToolCallCompleteToolMetaUI>,
3999}
4000
4001#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4003#[serde(rename_all = "camelCase")]
4004pub struct McpAppToolCallCompleteData {
4005 #[serde(skip_serializing_if = "Option::is_none")]
4007 pub arguments: Option<HashMap<String, serde_json::Value>>,
4008 pub duration_ms: f64,
4010 #[serde(skip_serializing_if = "Option::is_none")]
4012 pub error: Option<McpAppToolCallCompleteError>,
4013 #[serde(skip_serializing_if = "Option::is_none")]
4015 pub result: Option<HashMap<String, serde_json::Value>>,
4016 pub server_name: String,
4018 pub success: bool,
4020 #[serde(skip_serializing_if = "Option::is_none")]
4022 pub tool_meta: Option<McpAppToolCallCompleteToolMeta>,
4023 pub tool_name: String,
4025}
4026
4027#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4029pub enum WorkingDirectoryContextHostType {
4030 #[serde(rename = "github")]
4032 GitHub,
4033 #[serde(rename = "ado")]
4035 Ado,
4036 #[default]
4038 #[serde(other)]
4039 Unknown,
4040}
4041
4042#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4044pub enum ContextTier {
4045 #[serde(rename = "default")]
4047 Default,
4048 #[serde(rename = "long_context")]
4050 LongContext,
4051 #[default]
4053 #[serde(other)]
4054 Unknown,
4055}
4056
4057#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4059pub enum ReasoningSummary {
4060 #[serde(rename = "none")]
4062 None,
4063 #[serde(rename = "concise")]
4065 Concise,
4066 #[serde(rename = "detailed")]
4068 Detailed,
4069 #[default]
4071 #[serde(other)]
4072 Unknown,
4073}
4074
4075#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4077pub enum AutopilotObjectiveChangedOperation {
4078 #[serde(rename = "create")]
4080 Create,
4081 #[serde(rename = "update")]
4083 Update,
4084 #[serde(rename = "delete")]
4086 Delete,
4087 #[default]
4089 #[serde(other)]
4090 Unknown,
4091}
4092
4093#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4095pub enum AutopilotObjectiveChangedStatus {
4096 #[serde(rename = "active")]
4098 Active,
4099 #[serde(rename = "paused")]
4101 Paused,
4102 #[serde(rename = "cap_reached")]
4104 CapReached,
4105 #[serde(rename = "completed")]
4107 Completed,
4108 #[default]
4110 #[serde(other)]
4111 Unknown,
4112}
4113
4114#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4116pub enum SessionMode {
4117 #[serde(rename = "interactive")]
4119 Interactive,
4120 #[serde(rename = "plan")]
4122 Plan,
4123 #[serde(rename = "autopilot")]
4125 Autopilot,
4126 #[default]
4128 #[serde(other)]
4129 Unknown,
4130}
4131
4132#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4134pub enum PlanChangedOperation {
4135 #[serde(rename = "create")]
4137 Create,
4138 #[serde(rename = "update")]
4140 Update,
4141 #[serde(rename = "delete")]
4143 Delete,
4144 #[default]
4146 #[serde(other)]
4147 Unknown,
4148}
4149
4150#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4152pub enum WorkspaceFileChangedOperation {
4153 #[serde(rename = "create")]
4155 Create,
4156 #[serde(rename = "update")]
4158 Update,
4159 #[default]
4161 #[serde(other)]
4162 Unknown,
4163}
4164
4165#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4167pub enum HandoffSourceType {
4168 #[serde(rename = "remote")]
4170 Remote,
4171 #[serde(rename = "local")]
4173 Local,
4174 #[default]
4176 #[serde(other)]
4177 Unknown,
4178}
4179
4180#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4182pub enum ShutdownType {
4183 #[serde(rename = "routine")]
4185 Routine,
4186 #[serde(rename = "error")]
4188 Error,
4189 #[default]
4191 #[serde(other)]
4192 Unknown,
4193}
4194
4195#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4197pub enum UserMessageAgentMode {
4198 #[serde(rename = "interactive")]
4200 Interactive,
4201 #[serde(rename = "plan")]
4203 Plan,
4204 #[serde(rename = "autopilot")]
4206 Autopilot,
4207 #[serde(rename = "shell")]
4209 Shell,
4210 #[default]
4212 #[serde(other)]
4213 Unknown,
4214}
4215
4216#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4218pub enum UserMessageDelivery {
4219 #[serde(rename = "idle")]
4221 Idle,
4222 #[serde(rename = "steering")]
4224 Steering,
4225 #[serde(rename = "queued")]
4227 Queued,
4228 #[default]
4230 #[serde(other)]
4231 Unknown,
4232}
4233
4234#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4243pub enum CitationProvider {
4244 #[serde(rename = "anthropic")]
4246 Anthropic,
4247 #[serde(rename = "openai")]
4249 Openai,
4250 #[serde(rename = "client")]
4252 Client,
4253 #[default]
4255 #[serde(other)]
4256 Unknown,
4257}
4258
4259#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4261pub enum AssistantMessageToolRequestType {
4262 #[serde(rename = "function")]
4264 Function,
4265 #[serde(rename = "custom")]
4267 Custom,
4268 #[default]
4270 #[serde(other)]
4271 Unknown,
4272}
4273
4274#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4276pub enum AssistantUsageApiEndpoint {
4277 #[serde(rename = "/chat/completions")]
4279 ChatCompletions,
4280 #[serde(rename = "/v1/messages")]
4282 V1Messages,
4283 #[serde(rename = "/responses")]
4285 Responses,
4286 #[serde(rename = "ws:/responses")]
4288 WsResponses,
4289 #[default]
4291 #[serde(other)]
4292 Unknown,
4293}
4294
4295#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4297pub enum ModelCallFailureBadRequestKind {
4298 #[serde(rename = "bodyless")]
4300 Bodyless,
4301 #[serde(rename = "structured_error")]
4303 StructuredError,
4304 #[default]
4306 #[serde(other)]
4307 Unknown,
4308}
4309
4310#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4312pub enum ModelCallFailureSource {
4313 #[serde(rename = "top_level")]
4315 TopLevel,
4316 #[serde(rename = "subagent")]
4318 Subagent,
4319 #[serde(rename = "mcp_sampling")]
4321 McpSampling,
4322 #[default]
4324 #[serde(other)]
4325 Unknown,
4326}
4327
4328#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4330pub enum AbortReason {
4331 #[serde(rename = "user_initiated")]
4333 UserInitiated,
4334 #[serde(rename = "remote_command")]
4336 RemoteCommand,
4337 #[serde(rename = "user_abort")]
4339 UserAbort,
4340 #[default]
4342 #[serde(other)]
4343 Unknown,
4344}
4345
4346#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4348pub enum ToolExecutionStartToolDescriptionMetaUIVisibility {
4349 #[serde(rename = "model")]
4351 Model,
4352 #[serde(rename = "app")]
4354 App,
4355 #[default]
4357 #[serde(other)]
4358 Unknown,
4359}
4360
4361#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4363pub enum ToolExecutionCompleteContentTextType {
4364 #[serde(rename = "text")]
4365 #[default]
4366 Text,
4367}
4368
4369#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4371pub enum ToolExecutionCompleteContentTerminalType {
4372 #[serde(rename = "terminal")]
4373 #[default]
4374 Terminal,
4375}
4376
4377#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4379pub enum ToolExecutionCompleteContentShellExitType {
4380 #[serde(rename = "shell_exit")]
4381 #[default]
4382 ShellExit,
4383}
4384
4385#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4387pub enum ToolExecutionCompleteContentImageType {
4388 #[serde(rename = "image")]
4389 #[default]
4390 Image,
4391}
4392
4393#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4395pub enum ToolExecutionCompleteContentAudioType {
4396 #[serde(rename = "audio")]
4397 #[default]
4398 Audio,
4399}
4400
4401#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4403pub enum ToolExecutionCompleteContentResourceLinkIconTheme {
4404 #[serde(rename = "light")]
4406 Light,
4407 #[serde(rename = "dark")]
4409 Dark,
4410 #[default]
4412 #[serde(other)]
4413 Unknown,
4414}
4415
4416#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4418pub enum ToolExecutionCompleteContentResourceLinkType {
4419 #[serde(rename = "resource_link")]
4420 #[default]
4421 ResourceLink,
4422}
4423
4424#[derive(Debug, Clone, Serialize, Deserialize)]
4426#[serde(untagged)]
4427pub enum ToolExecutionCompleteContentResourceDetails {
4428 EmbeddedTextResourceContents(EmbeddedTextResourceContents),
4429 EmbeddedBlobResourceContents(EmbeddedBlobResourceContents),
4430}
4431
4432#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4434pub enum ToolExecutionCompleteContentResourceType {
4435 #[serde(rename = "resource")]
4436 #[default]
4437 Resource,
4438}
4439
4440#[derive(Debug, Clone, Serialize, Deserialize)]
4442#[serde(untagged)]
4443pub enum ToolExecutionCompleteContent {
4444 Text(ToolExecutionCompleteContentText),
4445 Terminal(ToolExecutionCompleteContentTerminal),
4446 ShellExit(ToolExecutionCompleteContentShellExit),
4447 Image(ToolExecutionCompleteContentImage),
4448 Audio(ToolExecutionCompleteContentAudio),
4449 ResourceLink(ToolExecutionCompleteContentResourceLink),
4450 Resource(ToolExecutionCompleteContentResource),
4451}
4452
4453#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4455pub enum ToolExecutionCompleteToolDescriptionMetaUIVisibility {
4456 #[serde(rename = "model")]
4458 Model,
4459 #[serde(rename = "app")]
4461 App,
4462 #[default]
4464 #[serde(other)]
4465 Unknown,
4466}
4467
4468#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4470pub enum SkillInvokedTrigger {
4471 #[serde(rename = "user-invoked")]
4473 UserInvoked,
4474 #[serde(rename = "agent-invoked")]
4476 AgentInvoked,
4477 #[serde(rename = "context-load")]
4479 ContextLoad,
4480 #[default]
4482 #[serde(other)]
4483 Unknown,
4484}
4485
4486#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4488pub enum BinaryAssetType {
4489 #[serde(rename = "image")]
4491 Image,
4492 #[serde(rename = "resource")]
4494 Resource,
4495 #[default]
4497 #[serde(other)]
4498 Unknown,
4499}
4500
4501#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4503pub enum SystemMessageRole {
4504 #[serde(rename = "system")]
4506 System,
4507 #[serde(rename = "developer")]
4509 Developer,
4510 #[default]
4512 #[serde(other)]
4513 Unknown,
4514}
4515
4516#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4518pub enum PermissionRequestShellKind {
4519 #[serde(rename = "shell")]
4520 #[default]
4521 Shell,
4522}
4523
4524#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4526pub enum PermissionRequestWriteKind {
4527 #[serde(rename = "write")]
4528 #[default]
4529 Write,
4530}
4531
4532#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4534pub enum PermissionRequestReadKind {
4535 #[serde(rename = "read")]
4536 #[default]
4537 Read,
4538}
4539
4540#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4542pub enum PermissionRequestMcpKind {
4543 #[serde(rename = "mcp")]
4544 #[default]
4545 Mcp,
4546}
4547
4548#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4550pub enum PermissionRequestUrlKind {
4551 #[serde(rename = "url")]
4552 #[default]
4553 Url,
4554}
4555
4556#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4558pub enum PermissionRequestMemoryAction {
4559 #[serde(rename = "store")]
4561 Store,
4562 #[serde(rename = "vote")]
4564 Vote,
4565 #[default]
4567 #[serde(other)]
4568 Unknown,
4569}
4570
4571#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4573pub enum PermissionRequestMemoryDirection {
4574 #[serde(rename = "upvote")]
4576 Upvote,
4577 #[serde(rename = "downvote")]
4579 Downvote,
4580 #[default]
4582 #[serde(other)]
4583 Unknown,
4584}
4585
4586#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4588pub enum PermissionRequestMemoryKind {
4589 #[serde(rename = "memory")]
4590 #[default]
4591 Memory,
4592}
4593
4594#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4596pub enum PermissionRequestCustomToolKind {
4597 #[serde(rename = "custom-tool")]
4598 #[default]
4599 CustomTool,
4600}
4601
4602#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4604pub enum PermissionRequestHookKind {
4605 #[serde(rename = "hook")]
4606 #[default]
4607 Hook,
4608}
4609
4610#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4612pub enum PermissionRequestExtensionManagementKind {
4613 #[serde(rename = "extension-management")]
4614 #[default]
4615 ExtensionManagement,
4616}
4617
4618#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4620pub enum PermissionRequestExtensionPermissionAccessKind {
4621 #[serde(rename = "extension-permission-access")]
4622 #[default]
4623 ExtensionPermissionAccess,
4624}
4625
4626#[derive(Debug, Clone, Serialize, Deserialize)]
4628#[serde(untagged)]
4629pub enum PermissionRequest {
4630 Shell(PermissionRequestShell),
4631 Write(PermissionRequestWrite),
4632 Read(PermissionRequestRead),
4633 Mcp(PermissionRequestMcp),
4634 Url(PermissionRequestUrl),
4635 Memory(PermissionRequestMemory),
4636 CustomTool(PermissionRequestCustomTool),
4637 Hook(PermissionRequestHook),
4638 ExtensionManagement(PermissionRequestExtensionManagement),
4639 ExtensionPermissionAccess(PermissionRequestExtensionPermissionAccess),
4640}
4641
4642#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4644pub enum PermissionPromptRequestCommandsKind {
4645 #[serde(rename = "commands")]
4646 #[default]
4647 Commands,
4648}
4649
4650#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4652pub enum PermissionPromptRequestWriteKind {
4653 #[serde(rename = "write")]
4654 #[default]
4655 Write,
4656}
4657
4658#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4660pub enum PermissionPromptRequestReadKind {
4661 #[serde(rename = "read")]
4662 #[default]
4663 Read,
4664}
4665
4666#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4668pub enum PermissionPromptRequestMcpKind {
4669 #[serde(rename = "mcp")]
4670 #[default]
4671 Mcp,
4672}
4673
4674#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4676pub enum PermissionPromptRequestUrlKind {
4677 #[serde(rename = "url")]
4678 #[default]
4679 Url,
4680}
4681
4682#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4684pub enum PermissionPromptRequestMemoryKind {
4685 #[serde(rename = "memory")]
4686 #[default]
4687 Memory,
4688}
4689
4690#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4692pub enum PermissionPromptRequestCustomToolKind {
4693 #[serde(rename = "custom-tool")]
4694 #[default]
4695 CustomTool,
4696}
4697
4698#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4700pub enum PermissionPromptRequestPathAccessKind {
4701 #[serde(rename = "read")]
4703 Read,
4704 #[serde(rename = "shell")]
4706 Shell,
4707 #[serde(rename = "write")]
4709 Write,
4710 #[default]
4712 #[serde(other)]
4713 Unknown,
4714}
4715
4716#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4718pub enum PermissionPromptRequestPathKind {
4719 #[serde(rename = "path")]
4720 #[default]
4721 Path,
4722}
4723
4724#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4726pub enum PermissionPromptRequestHookKind {
4727 #[serde(rename = "hook")]
4728 #[default]
4729 Hook,
4730}
4731
4732#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4734pub enum PermissionPromptRequestExtensionManagementKind {
4735 #[serde(rename = "extension-management")]
4736 #[default]
4737 ExtensionManagement,
4738}
4739
4740#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4742pub enum PermissionPromptRequestExtensionPermissionAccessKind {
4743 #[serde(rename = "extension-permission-access")]
4744 #[default]
4745 ExtensionPermissionAccess,
4746}
4747
4748#[derive(Debug, Clone, Serialize, Deserialize)]
4750#[serde(untagged)]
4751pub enum PermissionPromptRequest {
4752 Commands(PermissionPromptRequestCommands),
4753 Write(PermissionPromptRequestWrite),
4754 Read(PermissionPromptRequestRead),
4755 Mcp(PermissionPromptRequestMcp),
4756 Url(PermissionPromptRequestUrl),
4757 Memory(PermissionPromptRequestMemory),
4758 CustomTool(PermissionPromptRequestCustomTool),
4759 Path(PermissionPromptRequestPath),
4760 Hook(PermissionPromptRequestHook),
4761 ExtensionManagement(PermissionPromptRequestExtensionManagement),
4762 ExtensionPermissionAccess(PermissionPromptRequestExtensionPermissionAccess),
4763}
4764
4765#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4767pub enum PermissionApprovedKind {
4768 #[serde(rename = "approved")]
4769 #[default]
4770 Approved,
4771}
4772
4773#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4775pub enum UserToolSessionApprovalCommandsKind {
4776 #[serde(rename = "commands")]
4777 #[default]
4778 Commands,
4779}
4780
4781#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4783pub enum UserToolSessionApprovalReadKind {
4784 #[serde(rename = "read")]
4785 #[default]
4786 Read,
4787}
4788
4789#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4791pub enum UserToolSessionApprovalWriteKind {
4792 #[serde(rename = "write")]
4793 #[default]
4794 Write,
4795}
4796
4797#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4799pub enum UserToolSessionApprovalMcpKind {
4800 #[serde(rename = "mcp")]
4801 #[default]
4802 Mcp,
4803}
4804
4805#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4807pub enum UserToolSessionApprovalMemoryKind {
4808 #[serde(rename = "memory")]
4809 #[default]
4810 Memory,
4811}
4812
4813#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4815pub enum UserToolSessionApprovalCustomToolKind {
4816 #[serde(rename = "custom-tool")]
4817 #[default]
4818 CustomTool,
4819}
4820
4821#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4823pub enum UserToolSessionApprovalExtensionManagementKind {
4824 #[serde(rename = "extension-management")]
4825 #[default]
4826 ExtensionManagement,
4827}
4828
4829#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4831pub enum UserToolSessionApprovalExtensionPermissionAccessKind {
4832 #[serde(rename = "extension-permission-access")]
4833 #[default]
4834 ExtensionPermissionAccess,
4835}
4836
4837#[derive(Debug, Clone, Serialize, Deserialize)]
4839#[serde(untagged)]
4840pub enum UserToolSessionApproval {
4841 Commands(UserToolSessionApprovalCommands),
4842 Read(UserToolSessionApprovalRead),
4843 Write(UserToolSessionApprovalWrite),
4844 Mcp(UserToolSessionApprovalMcp),
4845 Memory(UserToolSessionApprovalMemory),
4846 CustomTool(UserToolSessionApprovalCustomTool),
4847 ExtensionManagement(UserToolSessionApprovalExtensionManagement),
4848 ExtensionPermissionAccess(UserToolSessionApprovalExtensionPermissionAccess),
4849}
4850
4851#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4853pub enum PermissionApprovedForSessionKind {
4854 #[serde(rename = "approved-for-session")]
4855 #[default]
4856 ApprovedForSession,
4857}
4858
4859#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4861pub enum PermissionApprovedForLocationKind {
4862 #[serde(rename = "approved-for-location")]
4863 #[default]
4864 ApprovedForLocation,
4865}
4866
4867#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4869pub enum PermissionCancelledKind {
4870 #[serde(rename = "cancelled")]
4871 #[default]
4872 Cancelled,
4873}
4874
4875#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4877pub enum PermissionDeniedByRulesKind {
4878 #[serde(rename = "denied-by-rules")]
4879 #[default]
4880 DeniedByRules,
4881}
4882
4883#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4885pub enum PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUserKind {
4886 #[serde(rename = "denied-no-approval-rule-and-could-not-request-from-user")]
4887 #[default]
4888 DeniedNoApprovalRuleAndCouldNotRequestFromUser,
4889}
4890
4891#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4893pub enum PermissionDeniedInteractivelyByUserKind {
4894 #[serde(rename = "denied-interactively-by-user")]
4895 #[default]
4896 DeniedInteractivelyByUser,
4897}
4898
4899#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4901pub enum PermissionDeniedByContentExclusionPolicyKind {
4902 #[serde(rename = "denied-by-content-exclusion-policy")]
4903 #[default]
4904 DeniedByContentExclusionPolicy,
4905}
4906
4907#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4909pub enum PermissionDeniedByPermissionRequestHookKind {
4910 #[serde(rename = "denied-by-permission-request-hook")]
4911 #[default]
4912 DeniedByPermissionRequestHook,
4913}
4914
4915#[derive(Debug, Clone, Serialize, Deserialize)]
4917#[serde(untagged)]
4918pub enum PermissionResult {
4919 Approved(PermissionApproved),
4920 ApprovedForSession(PermissionApprovedForSession),
4921 ApprovedForLocation(PermissionApprovedForLocation),
4922 Cancelled(PermissionCancelled),
4923 DeniedByRules(PermissionDeniedByRules),
4924 DeniedNoApprovalRuleAndCouldNotRequestFromUser(
4925 PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser,
4926 ),
4927 DeniedInteractivelyByUser(PermissionDeniedInteractivelyByUser),
4928 DeniedByContentExclusionPolicy(PermissionDeniedByContentExclusionPolicy),
4929 DeniedByPermissionRequestHook(PermissionDeniedByPermissionRequestHook),
4930}
4931
4932#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4934pub enum ElicitationRequestedMode {
4935 #[serde(rename = "form")]
4937 Form,
4938 #[serde(rename = "url")]
4940 Url,
4941 #[default]
4943 #[serde(other)]
4944 Unknown,
4945}
4946
4947#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4949pub enum ElicitationRequestedSchemaType {
4950 #[serde(rename = "object")]
4951 #[default]
4952 Object,
4953}
4954
4955#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4957pub enum ElicitationCompletedAction {
4958 #[serde(rename = "accept")]
4960 Accept,
4961 #[serde(rename = "decline")]
4963 Decline,
4964 #[serde(rename = "cancel")]
4966 Cancel,
4967 #[default]
4969 #[serde(other)]
4970 Unknown,
4971}
4972
4973#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4975pub enum McpOauthRequestReason {
4976 #[serde(rename = "initial")]
4978 Initial,
4979 #[serde(rename = "refresh")]
4981 Refresh,
4982 #[serde(rename = "reauth")]
4984 Reauth,
4985 #[serde(rename = "upscope")]
4987 Upscope,
4988 #[default]
4990 #[serde(other)]
4991 Unknown,
4992}
4993
4994#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4996pub enum McpOauthRequiredStaticClientConfigGrantType {
4997 #[serde(rename = "client_credentials")]
4998 #[default]
4999 ClientCredentials,
5000}
5001
5002#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5004pub enum McpOauthCompletionOutcome {
5005 #[serde(rename = "token")]
5007 Token,
5008 #[serde(rename = "cancelled")]
5010 Cancelled,
5011 #[default]
5013 #[serde(other)]
5014 Unknown,
5015}
5016
5017#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5019pub enum McpHeadersRefreshRequiredReason {
5020 #[serde(rename = "startup")]
5022 Startup,
5023 #[serde(rename = "ttl-expired")]
5025 TtlExpired,
5026 #[serde(rename = "auth-failed")]
5028 AuthFailed,
5029 #[default]
5031 #[serde(other)]
5032 Unknown,
5033}
5034
5035#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5037pub enum McpHeadersRefreshCompletedOutcome {
5038 #[serde(rename = "headers")]
5040 Headers,
5041 #[serde(rename = "none")]
5043 None,
5044 #[serde(rename = "timeout")]
5046 Timeout,
5047 #[default]
5049 #[serde(other)]
5050 Unknown,
5051}
5052
5053#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5055pub enum AutoModeSwitchResponse {
5056 #[serde(rename = "yes")]
5058 Yes,
5059 #[serde(rename = "yes_always")]
5061 YesAlways,
5062 #[serde(rename = "no")]
5064 No,
5065 #[default]
5067 #[serde(other)]
5068 Unknown,
5069}
5070
5071#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5073pub enum ExitPlanModeAction {
5074 #[serde(rename = "exit_only")]
5076 ExitOnly,
5077 #[serde(rename = "interactive")]
5079 Interactive,
5080 #[serde(rename = "autopilot")]
5082 Autopilot,
5083 #[serde(rename = "autopilot_fleet")]
5085 AutopilotFleet,
5086 #[default]
5088 #[serde(other)]
5089 Unknown,
5090}
5091
5092#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5094pub enum SkillSource {
5095 #[serde(rename = "project")]
5097 Project,
5098 #[serde(rename = "inherited")]
5100 Inherited,
5101 #[serde(rename = "personal-copilot")]
5103 PersonalCopilot,
5104 #[serde(rename = "personal-agents")]
5106 PersonalAgents,
5107 #[serde(rename = "plugin")]
5109 Plugin,
5110 #[serde(rename = "custom")]
5112 Custom,
5113 #[serde(rename = "builtin")]
5115 Builtin,
5116 #[default]
5118 #[serde(other)]
5119 Unknown,
5120}
5121
5122#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5124pub enum McpServerSource {
5125 #[serde(rename = "user")]
5127 User,
5128 #[serde(rename = "workspace")]
5130 Workspace,
5131 #[serde(rename = "plugin")]
5133 Plugin,
5134 #[serde(rename = "builtin")]
5136 Builtin,
5137 #[default]
5139 #[serde(other)]
5140 Unknown,
5141}
5142
5143#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5145pub enum McpServerStatus {
5146 #[serde(rename = "connected")]
5148 Connected,
5149 #[serde(rename = "failed")]
5151 Failed,
5152 #[serde(rename = "needs-auth")]
5154 NeedsAuth,
5155 #[serde(rename = "pending")]
5157 Pending,
5158 #[serde(rename = "disabled")]
5160 Disabled,
5161 #[serde(rename = "not_configured")]
5163 NotConfigured,
5164 #[default]
5166 #[serde(other)]
5167 Unknown,
5168}
5169
5170#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5172pub enum McpServerTransport {
5173 #[serde(rename = "stdio")]
5175 Stdio,
5176 #[serde(rename = "http")]
5178 Http,
5179 #[serde(rename = "sse")]
5181 Sse,
5182 #[serde(rename = "memory")]
5184 Memory,
5185 #[default]
5187 #[serde(other)]
5188 Unknown,
5189}
5190
5191#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5193pub enum ExtensionsLoadedExtensionSource {
5194 #[serde(rename = "project")]
5196 Project,
5197 #[serde(rename = "user")]
5199 User,
5200 #[serde(rename = "plugin")]
5202 Plugin,
5203 #[serde(rename = "session")]
5205 Session,
5206 #[default]
5208 #[serde(other)]
5209 Unknown,
5210}
5211
5212#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5214pub enum ExtensionsLoadedExtensionStatus {
5215 #[serde(rename = "running")]
5217 Running,
5218 #[serde(rename = "disabled")]
5220 Disabled,
5221 #[serde(rename = "failed")]
5223 Failed,
5224 #[serde(rename = "starting")]
5226 Starting,
5227 #[default]
5229 #[serde(other)]
5230 Unknown,
5231}