1#![allow(deprecated)]
4
5use std::collections::HashMap;
6
7use serde::{Deserialize, Serialize};
8
9use crate::types::{RequestId, SessionId};
10
11#[derive(Debug, Clone, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
13pub enum SessionEventType {
14 #[serde(rename = "session.start")]
15 SessionStart,
16 #[serde(rename = "session.resume")]
17 SessionResume,
18 #[serde(rename = "session.remote_steerable_changed")]
19 SessionRemoteSteerableChanged,
20 #[serde(rename = "session.error")]
21 SessionError,
22 #[serde(rename = "session.idle")]
23 SessionIdle,
24 #[serde(rename = "session.title_changed")]
25 SessionTitleChanged,
26 #[serde(rename = "session.schedule_created")]
27 SessionScheduleCreated,
28 #[serde(rename = "session.schedule_cancelled")]
29 SessionScheduleCancelled,
30 #[serde(rename = "session.schedule_rearmed")]
31 SessionScheduleRearmed,
32 #[serde(rename = "session.autopilot_objective_changed")]
33 SessionAutopilotObjectiveChanged,
34 #[serde(rename = "session.info")]
35 SessionInfo,
36 #[serde(rename = "session.warning")]
37 SessionWarning,
38 #[serde(rename = "session.model_change")]
39 SessionModelChange,
40 #[serde(rename = "session.mode_changed")]
41 SessionModeChanged,
42 #[serde(rename = "session.session_limits_changed")]
43 SessionSessionLimitsChanged,
44 #[serde(rename = "session.permissions_changed")]
45 SessionPermissionsChanged,
46 #[serde(rename = "session.plan_changed")]
47 SessionPlanChanged,
48 #[serde(rename = "session.todos_changed")]
49 SessionTodosChanged,
50 #[serde(rename = "session.workspace_file_changed")]
51 SessionWorkspaceFileChanged,
52 #[serde(rename = "session.handoff")]
53 SessionHandoff,
54 #[serde(rename = "session.truncation")]
55 SessionTruncation,
56 #[serde(rename = "session.snapshot_rewind")]
57 SessionSnapshotRewind,
58 #[serde(rename = "session.shutdown")]
59 SessionShutdown,
60 #[serde(rename = "session.usage_checkpoint")]
61 SessionUsageCheckpoint,
62 #[serde(rename = "session.context_changed")]
63 SessionContextChanged,
64 #[serde(rename = "session.usage_info")]
65 SessionUsageInfo,
66 #[serde(rename = "session.compaction_start")]
67 SessionCompactionStart,
68 #[serde(rename = "session.compaction_complete")]
69 SessionCompactionComplete,
70 #[serde(rename = "session.task_complete")]
71 SessionTaskComplete,
72 #[serde(rename = "user.message")]
73 UserMessage,
74 #[serde(rename = "pending_messages.modified")]
75 PendingMessagesModified,
76 #[serde(rename = "assistant.turn_start")]
77 AssistantTurnStart,
78 #[serde(rename = "assistant.intent")]
79 AssistantIntent,
80 #[serde(rename = "assistant.reasoning")]
81 AssistantReasoning,
82 #[serde(rename = "assistant.reasoning_delta")]
83 AssistantReasoningDelta,
84 #[serde(rename = "assistant.tool_call_delta")]
85 AssistantToolCallDelta,
86 #[serde(rename = "assistant.streaming_delta")]
87 AssistantStreamingDelta,
88 #[serde(rename = "assistant.message")]
89 AssistantMessage,
90 #[serde(rename = "assistant.message_start")]
91 AssistantMessageStart,
92 #[serde(rename = "assistant.message_delta")]
93 AssistantMessageDelta,
94 #[serde(rename = "assistant.turn_end")]
95 AssistantTurnEnd,
96 #[serde(rename = "assistant.idle")]
97 AssistantIdle,
98 #[serde(rename = "assistant.usage")]
99 AssistantUsage,
100 #[serde(rename = "model.call_failure")]
101 ModelCallFailure,
102 #[serde(rename = "abort")]
103 Abort,
104 #[serde(rename = "tool.user_requested")]
105 ToolUserRequested,
106 #[serde(rename = "tool.execution_start")]
107 ToolExecutionStart,
108 #[serde(rename = "tool.execution_partial_result")]
109 ToolExecutionPartialResult,
110 #[serde(rename = "tool.execution_progress")]
111 ToolExecutionProgress,
112 #[serde(rename = "tool.execution_complete")]
113 ToolExecutionComplete,
114 #[serde(rename = "skill.invoked")]
115 SkillInvoked,
116 #[serde(rename = "subagent.started")]
117 SubagentStarted,
118 #[serde(rename = "subagent.completed")]
119 SubagentCompleted,
120 #[serde(rename = "subagent.failed")]
121 SubagentFailed,
122 #[serde(rename = "subagent.selected")]
123 SubagentSelected,
124 #[serde(rename = "subagent.deselected")]
125 SubagentDeselected,
126 #[serde(rename = "hook.start")]
127 HookStart,
128 #[serde(rename = "hook.end")]
129 HookEnd,
130 #[serde(rename = "hook.progress")]
131 HookProgress,
132 #[serde(rename = "session.binary_asset")]
140 SessionBinaryAsset,
141 #[serde(rename = "system.message")]
142 SystemMessage,
143 #[serde(rename = "system.notification")]
144 SystemNotification,
145 #[serde(rename = "permission.requested")]
146 PermissionRequested,
147 #[serde(rename = "permission.completed")]
148 PermissionCompleted,
149 #[serde(rename = "user_input.requested")]
150 UserInputRequested,
151 #[serde(rename = "user_input.completed")]
152 UserInputCompleted,
153 #[serde(rename = "elicitation.requested")]
154 ElicitationRequested,
155 #[serde(rename = "elicitation.completed")]
156 ElicitationCompleted,
157 #[serde(rename = "sampling.requested")]
158 SamplingRequested,
159 #[serde(rename = "sampling.completed")]
160 SamplingCompleted,
161 #[serde(rename = "mcp.oauth_required")]
162 McpOauthRequired,
163 #[serde(rename = "mcp.oauth_completed")]
164 McpOauthCompleted,
165 #[serde(rename = "mcp.headers_refresh_required")]
166 McpHeadersRefreshRequired,
167 #[serde(rename = "mcp.headers_refresh_completed")]
168 McpHeadersRefreshCompleted,
169 #[serde(rename = "session.custom_notification")]
170 SessionCustomNotification,
171 #[serde(rename = "external_tool.requested")]
172 ExternalToolRequested,
173 #[serde(rename = "external_tool.completed")]
174 ExternalToolCompleted,
175 #[serde(rename = "command.queued")]
176 CommandQueued,
177 #[serde(rename = "command.execute")]
178 CommandExecute,
179 #[serde(rename = "command.completed")]
180 CommandCompleted,
181 #[serde(rename = "auto_mode_switch.requested")]
182 AutoModeSwitchRequested,
183 #[serde(rename = "auto_mode_switch.completed")]
184 AutoModeSwitchCompleted,
185 #[serde(rename = "session_limits_exhausted.requested")]
186 SessionLimitsExhaustedRequested,
187 #[serde(rename = "session_limits_exhausted.completed")]
188 SessionLimitsExhaustedCompleted,
189 #[serde(rename = "commands.changed")]
190 CommandsChanged,
191 #[serde(rename = "capabilities.changed")]
192 CapabilitiesChanged,
193 #[serde(rename = "exit_plan_mode.requested")]
194 ExitPlanModeRequested,
195 #[serde(rename = "exit_plan_mode.completed")]
196 ExitPlanModeCompleted,
197 #[serde(rename = "session.tools_updated")]
198 SessionToolsUpdated,
199 #[serde(rename = "session.background_tasks_changed")]
200 SessionBackgroundTasksChanged,
201 #[serde(rename = "session.skills_loaded")]
202 SessionSkillsLoaded,
203 #[serde(rename = "session.custom_agents_updated")]
204 SessionCustomAgentsUpdated,
205 #[serde(rename = "session.mcp_servers_loaded")]
206 SessionMcpServersLoaded,
207 #[serde(rename = "session.mcp_server_status_changed")]
208 SessionMcpServerStatusChanged,
209 #[serde(rename = "session.extensions_loaded")]
210 SessionExtensionsLoaded,
211 #[serde(rename = "session.canvas.opened")]
219 SessionCanvasOpened,
220 #[serde(rename = "session.canvas.registry_changed")]
228 SessionCanvasRegistryChanged,
229 #[serde(rename = "session.canvas.closed")]
237 SessionCanvasClosed,
238 #[serde(rename = "session.canvas.unavailable")]
246 SessionCanvasUnavailable,
247 #[serde(rename = "session.canvas.recorded")]
255 SessionCanvasRecorded,
256 #[serde(rename = "session.canvas.removed")]
264 SessionCanvasRemoved,
265 #[serde(rename = "session.extensions.attachments_pushed")]
266 SessionExtensionsAttachmentsPushed,
267 #[serde(rename = "mcp_app.tool_call_complete")]
268 McpAppToolCallComplete,
269 #[default]
271 #[serde(other)]
272 Unknown,
273}
274
275#[derive(Debug, Clone, Serialize, Deserialize)]
279#[serde(tag = "type", content = "data")]
280pub enum SessionEventData {
281 #[serde(rename = "session.start")]
282 SessionStart(SessionStartData),
283 #[serde(rename = "session.resume")]
284 SessionResume(SessionResumeData),
285 #[serde(rename = "session.remote_steerable_changed")]
286 SessionRemoteSteerableChanged(SessionRemoteSteerableChangedData),
287 #[serde(rename = "session.error")]
288 SessionError(SessionErrorData),
289 #[serde(rename = "session.idle")]
290 SessionIdle(SessionIdleData),
291 #[serde(rename = "session.title_changed")]
292 SessionTitleChanged(SessionTitleChangedData),
293 #[serde(rename = "session.schedule_created")]
294 SessionScheduleCreated(SessionScheduleCreatedData),
295 #[serde(rename = "session.schedule_cancelled")]
296 SessionScheduleCancelled(SessionScheduleCancelledData),
297 #[serde(rename = "session.schedule_rearmed")]
298 SessionScheduleRearmed(SessionScheduleRearmedData),
299 #[serde(rename = "session.autopilot_objective_changed")]
300 SessionAutopilotObjectiveChanged(SessionAutopilotObjectiveChangedData),
301 #[serde(rename = "session.info")]
302 SessionInfo(SessionInfoData),
303 #[serde(rename = "session.warning")]
304 SessionWarning(SessionWarningData),
305 #[serde(rename = "session.model_change")]
306 SessionModelChange(SessionModelChangeData),
307 #[serde(rename = "session.mode_changed")]
308 SessionModeChanged(SessionModeChangedData),
309 #[serde(rename = "session.session_limits_changed")]
310 SessionSessionLimitsChanged(SessionSessionLimitsChangedData),
311 #[serde(rename = "session.permissions_changed")]
312 SessionPermissionsChanged(SessionPermissionsChangedData),
313 #[serde(rename = "session.plan_changed")]
314 SessionPlanChanged(SessionPlanChangedData),
315 #[serde(rename = "session.todos_changed")]
316 SessionTodosChanged(SessionTodosChangedData),
317 #[serde(rename = "session.workspace_file_changed")]
318 SessionWorkspaceFileChanged(SessionWorkspaceFileChangedData),
319 #[serde(rename = "session.handoff")]
320 SessionHandoff(SessionHandoffData),
321 #[serde(rename = "session.truncation")]
322 SessionTruncation(SessionTruncationData),
323 #[serde(rename = "session.snapshot_rewind")]
324 SessionSnapshotRewind(SessionSnapshotRewindData),
325 #[serde(rename = "session.shutdown")]
326 SessionShutdown(SessionShutdownData),
327 #[serde(rename = "session.usage_checkpoint")]
328 SessionUsageCheckpoint(SessionUsageCheckpointData),
329 #[serde(rename = "session.context_changed")]
330 SessionContextChanged(SessionContextChangedData),
331 #[serde(rename = "session.usage_info")]
332 SessionUsageInfo(SessionUsageInfoData),
333 #[serde(rename = "session.compaction_start")]
334 SessionCompactionStart(SessionCompactionStartData),
335 #[serde(rename = "session.compaction_complete")]
336 SessionCompactionComplete(SessionCompactionCompleteData),
337 #[serde(rename = "session.task_complete")]
338 SessionTaskComplete(SessionTaskCompleteData),
339 #[serde(rename = "user.message")]
340 UserMessage(UserMessageData),
341 #[serde(rename = "pending_messages.modified")]
342 PendingMessagesModified(PendingMessagesModifiedData),
343 #[serde(rename = "assistant.turn_start")]
344 AssistantTurnStart(AssistantTurnStartData),
345 #[serde(rename = "assistant.intent")]
346 AssistantIntent(AssistantIntentData),
347 #[serde(rename = "assistant.reasoning")]
348 AssistantReasoning(AssistantReasoningData),
349 #[serde(rename = "assistant.reasoning_delta")]
350 AssistantReasoningDelta(AssistantReasoningDeltaData),
351 #[serde(rename = "assistant.tool_call_delta")]
352 AssistantToolCallDelta(AssistantToolCallDeltaData),
353 #[serde(rename = "assistant.streaming_delta")]
354 AssistantStreamingDelta(AssistantStreamingDeltaData),
355 #[serde(rename = "assistant.message")]
356 AssistantMessage(AssistantMessageData),
357 #[serde(rename = "assistant.message_start")]
358 AssistantMessageStart(AssistantMessageStartData),
359 #[serde(rename = "assistant.message_delta")]
360 AssistantMessageDelta(AssistantMessageDeltaData),
361 #[serde(rename = "assistant.turn_end")]
362 AssistantTurnEnd(AssistantTurnEndData),
363 #[serde(rename = "assistant.idle")]
364 AssistantIdle(AssistantIdleData),
365 #[serde(rename = "assistant.usage")]
366 AssistantUsage(AssistantUsageData),
367 #[serde(rename = "model.call_failure")]
368 ModelCallFailure(ModelCallFailureData),
369 #[serde(rename = "abort")]
370 Abort(AbortData),
371 #[serde(rename = "tool.user_requested")]
372 ToolUserRequested(ToolUserRequestedData),
373 #[serde(rename = "tool.execution_start")]
374 ToolExecutionStart(ToolExecutionStartData),
375 #[serde(rename = "tool.execution_partial_result")]
376 ToolExecutionPartialResult(ToolExecutionPartialResultData),
377 #[serde(rename = "tool.execution_progress")]
378 ToolExecutionProgress(ToolExecutionProgressData),
379 #[serde(rename = "tool.execution_complete")]
380 ToolExecutionComplete(ToolExecutionCompleteData),
381 #[serde(rename = "skill.invoked")]
382 SkillInvoked(SkillInvokedData),
383 #[serde(rename = "subagent.started")]
384 SubagentStarted(SubagentStartedData),
385 #[serde(rename = "subagent.completed")]
386 SubagentCompleted(SubagentCompletedData),
387 #[serde(rename = "subagent.failed")]
388 SubagentFailed(SubagentFailedData),
389 #[serde(rename = "subagent.selected")]
390 SubagentSelected(SubagentSelectedData),
391 #[serde(rename = "subagent.deselected")]
392 SubagentDeselected(SubagentDeselectedData),
393 #[serde(rename = "hook.start")]
394 HookStart(HookStartData),
395 #[serde(rename = "hook.end")]
396 HookEnd(HookEndData),
397 #[serde(rename = "hook.progress")]
398 HookProgress(HookProgressData),
399 #[serde(rename = "session.binary_asset")]
400 SessionBinaryAsset(SessionBinaryAssetData),
401 #[serde(rename = "system.message")]
402 SystemMessage(SystemMessageData),
403 #[serde(rename = "system.notification")]
404 SystemNotification(SystemNotificationData),
405 #[serde(rename = "permission.requested")]
406 PermissionRequested(PermissionRequestedData),
407 #[serde(rename = "permission.completed")]
408 PermissionCompleted(PermissionCompletedData),
409 #[serde(rename = "user_input.requested")]
410 UserInputRequested(UserInputRequestedData),
411 #[serde(rename = "user_input.completed")]
412 UserInputCompleted(UserInputCompletedData),
413 #[serde(rename = "elicitation.requested")]
414 ElicitationRequested(ElicitationRequestedData),
415 #[serde(rename = "elicitation.completed")]
416 ElicitationCompleted(ElicitationCompletedData),
417 #[serde(rename = "sampling.requested")]
418 SamplingRequested(SamplingRequestedData),
419 #[serde(rename = "sampling.completed")]
420 SamplingCompleted(SamplingCompletedData),
421 #[serde(rename = "mcp.oauth_required")]
422 McpOauthRequired(McpOauthRequiredData),
423 #[serde(rename = "mcp.oauth_completed")]
424 McpOauthCompleted(McpOauthCompletedData),
425 #[serde(rename = "mcp.headers_refresh_required")]
426 McpHeadersRefreshRequired(McpHeadersRefreshRequiredData),
427 #[serde(rename = "mcp.headers_refresh_completed")]
428 McpHeadersRefreshCompleted(McpHeadersRefreshCompletedData),
429 #[serde(rename = "session.custom_notification")]
430 SessionCustomNotification(SessionCustomNotificationData),
431 #[serde(rename = "external_tool.requested")]
432 ExternalToolRequested(ExternalToolRequestedData),
433 #[serde(rename = "external_tool.completed")]
434 ExternalToolCompleted(ExternalToolCompletedData),
435 #[serde(rename = "command.queued")]
436 CommandQueued(CommandQueuedData),
437 #[serde(rename = "command.execute")]
438 CommandExecute(CommandExecuteData),
439 #[serde(rename = "command.completed")]
440 CommandCompleted(CommandCompletedData),
441 #[serde(rename = "auto_mode_switch.requested")]
442 AutoModeSwitchRequested(AutoModeSwitchRequestedData),
443 #[serde(rename = "auto_mode_switch.completed")]
444 AutoModeSwitchCompleted(AutoModeSwitchCompletedData),
445 #[serde(rename = "session_limits_exhausted.requested")]
446 SessionLimitsExhaustedRequested(SessionLimitsExhaustedRequestedData),
447 #[serde(rename = "session_limits_exhausted.completed")]
448 SessionLimitsExhaustedCompleted(SessionLimitsExhaustedCompletedData),
449 #[serde(rename = "commands.changed")]
450 CommandsChanged(CommandsChangedData),
451 #[serde(rename = "capabilities.changed")]
452 CapabilitiesChanged(CapabilitiesChangedData),
453 #[serde(rename = "exit_plan_mode.requested")]
454 ExitPlanModeRequested(ExitPlanModeRequestedData),
455 #[serde(rename = "exit_plan_mode.completed")]
456 ExitPlanModeCompleted(ExitPlanModeCompletedData),
457 #[serde(rename = "session.tools_updated")]
458 SessionToolsUpdated(SessionToolsUpdatedData),
459 #[serde(rename = "session.background_tasks_changed")]
460 SessionBackgroundTasksChanged(SessionBackgroundTasksChangedData),
461 #[serde(rename = "session.skills_loaded")]
462 SessionSkillsLoaded(SessionSkillsLoadedData),
463 #[serde(rename = "session.custom_agents_updated")]
464 SessionCustomAgentsUpdated(SessionCustomAgentsUpdatedData),
465 #[serde(rename = "session.mcp_servers_loaded")]
466 SessionMcpServersLoaded(SessionMcpServersLoadedData),
467 #[serde(rename = "session.mcp_server_status_changed")]
468 SessionMcpServerStatusChanged(SessionMcpServerStatusChangedData),
469 #[serde(rename = "session.extensions_loaded")]
470 SessionExtensionsLoaded(SessionExtensionsLoadedData),
471 #[serde(rename = "session.canvas.opened")]
479 SessionCanvasOpened(SessionCanvasOpenedData),
480 #[serde(rename = "session.canvas.registry_changed")]
488 SessionCanvasRegistryChanged(SessionCanvasRegistryChangedData),
489 #[serde(rename = "session.canvas.closed")]
497 SessionCanvasClosed(SessionCanvasClosedData),
498 #[serde(rename = "session.canvas.unavailable")]
506 SessionCanvasUnavailable(SessionCanvasUnavailableData),
507 #[serde(rename = "session.canvas.recorded")]
515 SessionCanvasRecorded(SessionCanvasRecordedData),
516 #[serde(rename = "session.canvas.removed")]
524 SessionCanvasRemoved(SessionCanvasRemovedData),
525 #[serde(rename = "session.extensions.attachments_pushed")]
526 SessionExtensionsAttachmentsPushed(SessionExtensionsAttachmentsPushedData),
527 #[serde(rename = "mcp_app.tool_call_complete")]
528 McpAppToolCallComplete(McpAppToolCallCompleteData),
529}
530
531#[derive(Debug, Clone, Serialize, Deserialize)]
537#[serde(rename_all = "camelCase")]
538pub struct TypedSessionEvent {
539 pub id: String,
541 pub timestamp: String,
543 #[serde(skip_serializing_if = "Option::is_none")]
545 pub parent_id: Option<String>,
546 #[serde(skip_serializing_if = "Option::is_none")]
548 pub ephemeral: Option<bool>,
549 #[serde(skip_serializing_if = "Option::is_none")]
552 pub agent_id: Option<String>,
553 #[serde(flatten)]
555 pub payload: SessionEventData,
556}
557
558#[derive(Debug, Clone, Default, Serialize, Deserialize)]
560#[serde(rename_all = "camelCase")]
561pub struct WorkingDirectoryContext {
562 #[serde(skip_serializing_if = "Option::is_none")]
564 pub base_commit: Option<String>,
565 #[serde(skip_serializing_if = "Option::is_none")]
567 pub branch: Option<String>,
568 pub cwd: String,
570 #[serde(skip_serializing_if = "Option::is_none")]
572 pub git_root: Option<String>,
573 #[serde(skip_serializing_if = "Option::is_none")]
575 pub head_commit: Option<String>,
576 #[serde(skip_serializing_if = "Option::is_none")]
578 pub host_type: Option<WorkingDirectoryContextHostType>,
579 #[serde(skip_serializing_if = "Option::is_none")]
581 pub repository: Option<String>,
582 #[serde(skip_serializing_if = "Option::is_none")]
584 pub repository_host: Option<String>,
585}
586
587#[derive(Debug, Clone, Default, Serialize, Deserialize)]
589#[serde(rename_all = "camelCase")]
590pub struct SessionLimitsConfig {
591 #[serde(skip_serializing_if = "Option::is_none")]
593 pub max_ai_credits: Option<f64>,
594}
595
596#[derive(Debug, Clone, Default, Serialize, Deserialize)]
598#[serde(rename_all = "camelCase")]
599pub struct SessionStartData {
600 #[serde(skip_serializing_if = "Option::is_none")]
602 pub already_in_use: Option<bool>,
603 #[serde(skip_serializing_if = "Option::is_none")]
605 pub context: Option<WorkingDirectoryContext>,
606 #[serde(skip_serializing_if = "Option::is_none")]
608 pub context_tier: Option<ContextTier>,
609 pub copilot_version: String,
611 #[serde(skip_serializing_if = "Option::is_none")]
613 pub detached_from_spawning_parent_session_id: Option<String>,
614 pub producer: String,
616 #[serde(skip_serializing_if = "Option::is_none")]
618 pub reasoning_effort: Option<String>,
619 #[serde(skip_serializing_if = "Option::is_none")]
621 pub reasoning_summary: Option<ReasoningSummary>,
622 #[serde(skip_serializing_if = "Option::is_none")]
624 pub remote_steerable: Option<bool>,
625 #[serde(skip_serializing_if = "Option::is_none")]
627 pub selected_model: Option<String>,
628 pub session_id: SessionId,
630 #[serde(skip_serializing_if = "Option::is_none")]
632 pub session_limits: Option<SessionLimitsConfig>,
633 pub start_time: String,
635 #[serde(skip_serializing_if = "Option::is_none")]
637 pub verbosity: Option<Verbosity>,
638 pub version: i64,
640}
641
642#[derive(Debug, Clone, Default, Serialize, Deserialize)]
644#[serde(rename_all = "camelCase")]
645pub struct SessionResumeData {
646 #[serde(skip_serializing_if = "Option::is_none")]
648 pub already_in_use: Option<bool>,
649 #[serde(skip_serializing_if = "Option::is_none")]
651 pub context: Option<WorkingDirectoryContext>,
652 #[serde(skip_serializing_if = "Option::is_none")]
654 pub context_tier: Option<ContextTier>,
655 #[serde(skip_serializing_if = "Option::is_none")]
657 pub continue_pending_work: Option<bool>,
658 pub event_count: i64,
660 #[serde(skip_serializing_if = "Option::is_none")]
662 pub events_file_size_bytes: Option<i64>,
663 #[serde(skip_serializing_if = "Option::is_none")]
665 pub reasoning_effort: Option<String>,
666 #[serde(skip_serializing_if = "Option::is_none")]
668 pub reasoning_summary: Option<ReasoningSummary>,
669 #[serde(skip_serializing_if = "Option::is_none")]
671 pub remote_steerable: Option<bool>,
672 pub resume_time: String,
674 #[serde(skip_serializing_if = "Option::is_none")]
676 pub selected_model: Option<String>,
677 #[serde(skip_serializing_if = "Option::is_none")]
679 pub session_limits: Option<SessionLimitsConfig>,
680 #[serde(skip_serializing_if = "Option::is_none")]
682 pub session_was_active: Option<bool>,
683 #[serde(skip_serializing_if = "Option::is_none")]
685 pub verbosity: Option<Verbosity>,
686}
687
688#[derive(Debug, Clone, Default, Serialize, Deserialize)]
690#[serde(rename_all = "camelCase")]
691pub struct SessionRemoteSteerableChangedData {
692 pub remote_steerable: bool,
694}
695
696#[derive(Debug, Clone, Default, Serialize, Deserialize)]
698#[serde(rename_all = "camelCase")]
699pub struct SessionErrorData {
700 #[serde(skip_serializing_if = "Option::is_none")]
702 pub eligible_for_auto_switch: Option<bool>,
703 #[serde(skip_serializing_if = "Option::is_none")]
705 pub error_code: Option<String>,
706 pub error_type: String,
708 pub message: String,
710 #[serde(skip_serializing_if = "Option::is_none")]
712 pub provider_call_id: Option<String>,
713 #[serde(skip_serializing_if = "Option::is_none")]
715 pub service_request_id: Option<String>,
716 #[serde(skip_serializing_if = "Option::is_none")]
718 pub stack: Option<String>,
719 #[serde(skip_serializing_if = "Option::is_none")]
721 pub status_code: Option<i32>,
722 #[serde(skip_serializing_if = "Option::is_none")]
724 pub url: Option<String>,
725}
726
727#[derive(Debug, Clone, Default, Serialize, Deserialize)]
729#[serde(rename_all = "camelCase")]
730pub struct SessionIdleData {
731 #[serde(skip_serializing_if = "Option::is_none")]
733 pub aborted: Option<bool>,
734}
735
736#[derive(Debug, Clone, Default, Serialize, Deserialize)]
738#[serde(rename_all = "camelCase")]
739pub struct SessionTitleChangedData {
740 pub title: String,
742}
743
744#[derive(Debug, Clone, Default, Serialize, Deserialize)]
746#[serde(rename_all = "camelCase")]
747pub struct SessionScheduleCreatedData {
748 #[serde(skip_serializing_if = "Option::is_none")]
750 pub at: Option<i64>,
751 #[serde(skip_serializing_if = "Option::is_none")]
753 pub cron: Option<String>,
754 #[serde(skip_serializing_if = "Option::is_none")]
756 pub display_prompt: Option<String>,
757 pub id: i64,
759 #[serde(skip_serializing_if = "Option::is_none")]
761 pub interval_ms: Option<i64>,
762 pub prompt: String,
764 #[serde(skip_serializing_if = "Option::is_none")]
766 pub recurring: Option<bool>,
767 #[serde(skip_serializing_if = "Option::is_none")]
769 pub self_paced: Option<bool>,
770 #[serde(skip_serializing_if = "Option::is_none")]
772 pub tz: Option<String>,
773}
774
775#[derive(Debug, Clone, Default, Serialize, Deserialize)]
777#[serde(rename_all = "camelCase")]
778pub struct SessionScheduleCancelledData {
779 pub id: i64,
781}
782
783#[derive(Debug, Clone, Default, Serialize, Deserialize)]
785#[serde(rename_all = "camelCase")]
786pub struct SessionScheduleRearmedData {
787 pub id: i64,
789 pub next_run_at: i64,
791}
792
793#[derive(Debug, Clone, Default, Serialize, Deserialize)]
795#[serde(rename_all = "camelCase")]
796pub struct SessionAutopilotObjectiveChangedData {
797 #[serde(skip_serializing_if = "Option::is_none")]
799 pub id: Option<i64>,
800 pub operation: AutopilotObjectiveChangedOperation,
802 #[serde(skip_serializing_if = "Option::is_none")]
804 pub status: Option<AutopilotObjectiveChangedStatus>,
805}
806
807#[derive(Debug, Clone, Default, Serialize, Deserialize)]
809#[serde(rename_all = "camelCase")]
810pub struct SessionInfoData {
811 pub info_type: String,
813 pub message: String,
815 #[serde(skip_serializing_if = "Option::is_none")]
817 pub tip: Option<String>,
818 #[serde(skip_serializing_if = "Option::is_none")]
820 pub url: Option<String>,
821}
822
823#[derive(Debug, Clone, Default, Serialize, Deserialize)]
825#[serde(rename_all = "camelCase")]
826pub struct SessionWarningData {
827 pub message: String,
829 #[serde(skip_serializing_if = "Option::is_none")]
831 pub url: Option<String>,
832 pub warning_type: String,
834}
835
836#[derive(Debug, Clone, Default, Serialize, Deserialize)]
838#[serde(rename_all = "camelCase")]
839pub struct SessionModelChangeData {
840 #[serde(skip_serializing_if = "Option::is_none")]
842 pub cause: Option<String>,
843 #[serde(skip_serializing_if = "Option::is_none")]
845 pub context_tier: Option<ContextTier>,
846 pub new_model: String,
848 #[serde(skip_serializing_if = "Option::is_none")]
850 pub previous_model: Option<String>,
851 #[serde(skip_serializing_if = "Option::is_none")]
853 pub previous_reasoning_effort: Option<String>,
854 #[serde(skip_serializing_if = "Option::is_none")]
856 pub previous_reasoning_summary: Option<ReasoningSummary>,
857 #[serde(skip_serializing_if = "Option::is_none")]
859 pub previous_verbosity: Option<Verbosity>,
860 #[serde(skip_serializing_if = "Option::is_none")]
862 pub reasoning_effort: Option<String>,
863 #[serde(skip_serializing_if = "Option::is_none")]
865 pub reasoning_summary: Option<ReasoningSummary>,
866 #[serde(skip_serializing_if = "Option::is_none")]
868 pub verbosity: Option<Verbosity>,
869}
870
871#[derive(Debug, Clone, Default, Serialize, Deserialize)]
873#[serde(rename_all = "camelCase")]
874pub struct SessionModeChangedData {
875 pub new_mode: SessionMode,
877 pub previous_mode: SessionMode,
879}
880
881#[derive(Debug, Clone, Default, Serialize, Deserialize)]
883#[serde(rename_all = "camelCase")]
884pub struct SessionSessionLimitsChangedData {
885 pub session_limits: Option<SessionLimitsConfig>,
887}
888
889#[derive(Debug, Clone, Default, Serialize, Deserialize)]
891#[serde(rename_all = "camelCase")]
892pub struct SessionPermissionsChangedData {
893 #[serde(skip_serializing_if = "Option::is_none")]
902 pub allow_all_permission_mode: Option<PermissionAllowAllMode>,
903 pub allow_all_permissions: bool,
905 #[serde(skip_serializing_if = "Option::is_none")]
914 pub previous_allow_all_permission_mode: Option<PermissionAllowAllMode>,
915 pub previous_allow_all_permissions: bool,
917}
918
919#[derive(Debug, Clone, Default, Serialize, Deserialize)]
921#[serde(rename_all = "camelCase")]
922pub struct SessionPlanChangedData {
923 pub operation: PlanChangedOperation,
925}
926
927#[derive(Debug, Clone, Default, Serialize, Deserialize)]
929#[serde(rename_all = "camelCase")]
930pub struct SessionTodosChangedData {}
931
932#[derive(Debug, Clone, Default, Serialize, Deserialize)]
934#[serde(rename_all = "camelCase")]
935pub struct SessionWorkspaceFileChangedData {
936 pub operation: WorkspaceFileChangedOperation,
938 pub path: String,
940}
941
942#[derive(Debug, Clone, Default, Serialize, Deserialize)]
944#[serde(rename_all = "camelCase")]
945pub struct HandoffRepository {
946 #[serde(skip_serializing_if = "Option::is_none")]
948 pub branch: Option<String>,
949 pub name: String,
951 pub owner: String,
953}
954
955#[derive(Debug, Clone, Default, Serialize, Deserialize)]
957#[serde(rename_all = "camelCase")]
958pub struct SessionHandoffData {
959 #[serde(skip_serializing_if = "Option::is_none")]
961 pub context: Option<String>,
962 pub handoff_time: String,
964 #[serde(skip_serializing_if = "Option::is_none")]
966 pub host: Option<String>,
967 #[serde(skip_serializing_if = "Option::is_none")]
969 pub remote_session_id: Option<SessionId>,
970 #[serde(skip_serializing_if = "Option::is_none")]
972 pub repository: Option<HandoffRepository>,
973 pub source_type: HandoffSourceType,
975 #[serde(skip_serializing_if = "Option::is_none")]
977 pub summary: Option<String>,
978}
979
980#[derive(Debug, Clone, Default, Serialize, Deserialize)]
982#[serde(rename_all = "camelCase")]
983pub struct SessionTruncationData {
984 pub messages_removed_during_truncation: i64,
986 pub performed_by: String,
988 pub post_truncation_messages_length: i64,
990 pub post_truncation_tokens_in_messages: i64,
992 pub pre_truncation_messages_length: i64,
994 pub pre_truncation_tokens_in_messages: i64,
996 pub token_limit: i64,
998 pub tokens_removed_during_truncation: i64,
1000}
1001
1002#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1004#[serde(rename_all = "camelCase")]
1005pub struct SessionSnapshotRewindData {
1006 pub events_removed: i64,
1008 pub up_to_event_id: String,
1010}
1011
1012#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1014#[serde(rename_all = "camelCase")]
1015pub struct ShutdownCodeChanges {
1016 pub files_modified: Vec<String>,
1018 pub lines_added: i64,
1020 pub lines_removed: i64,
1022}
1023
1024#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1026#[serde(rename_all = "camelCase")]
1027pub struct ShutdownModelMetricRequests {
1028 #[serde(skip_serializing_if = "Option::is_none")]
1037 pub cost: Option<f64>,
1038 #[serde(skip_serializing_if = "Option::is_none")]
1047 pub count: Option<i64>,
1048}
1049
1050#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1052#[serde(rename_all = "camelCase")]
1053pub struct ShutdownModelMetricTokenDetail {
1054 pub token_count: i64,
1056}
1057
1058#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1060#[serde(rename_all = "camelCase")]
1061pub struct ShutdownModelMetricUsage {
1062 pub cache_read_tokens: i64,
1064 pub cache_write_tokens: i64,
1066 pub input_tokens: i64,
1068 pub output_tokens: i64,
1070 #[serde(skip_serializing_if = "Option::is_none")]
1072 pub reasoning_tokens: Option<i64>,
1073}
1074
1075#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1077#[serde(rename_all = "camelCase")]
1078pub struct ShutdownModelMetric {
1079 pub requests: ShutdownModelMetricRequests,
1081 #[serde(skip_serializing_if = "Option::is_none")]
1083 pub token_details: Option<HashMap<String, ShutdownModelMetricTokenDetail>>,
1084 #[serde(skip_serializing_if = "Option::is_none")]
1093 pub total_nano_aiu: Option<f64>,
1094 pub usage: ShutdownModelMetricUsage,
1096}
1097
1098#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1100#[serde(rename_all = "camelCase")]
1101pub struct ShutdownTokenDetail {
1102 pub token_count: i64,
1104}
1105
1106#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1108#[serde(rename_all = "camelCase")]
1109pub struct SessionShutdownData {
1110 pub code_changes: ShutdownCodeChanges,
1112 #[serde(skip_serializing_if = "Option::is_none")]
1114 pub conversation_tokens: Option<i64>,
1115 #[serde(skip_serializing_if = "Option::is_none")]
1117 pub current_model: Option<String>,
1118 #[serde(skip_serializing_if = "Option::is_none")]
1120 pub current_tokens: Option<i64>,
1121 #[serde(skip_serializing_if = "Option::is_none")]
1123 pub error_reason: Option<String>,
1124 #[serde(skip_serializing_if = "Option::is_none")]
1126 pub events_file_size_bytes: Option<i64>,
1127 pub model_metrics: HashMap<String, ShutdownModelMetric>,
1129 pub session_start_time: i64,
1131 pub shutdown_type: ShutdownType,
1133 #[serde(skip_serializing_if = "Option::is_none")]
1135 pub system_tokens: Option<i64>,
1136 #[serde(skip_serializing_if = "Option::is_none")]
1138 pub token_details: Option<HashMap<String, ShutdownTokenDetail>>,
1139 #[serde(skip_serializing_if = "Option::is_none")]
1141 pub tool_definitions_tokens: Option<i64>,
1142 pub total_api_duration_ms: i64,
1144 #[serde(skip_serializing_if = "Option::is_none")]
1153 pub total_nano_aiu: Option<f64>,
1154 #[doc(hidden)]
1156 #[serde(skip_serializing_if = "Option::is_none")]
1157 pub(crate) total_premium_requests: Option<f64>,
1158}
1159
1160#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1162#[serde(rename_all = "camelCase")]
1163pub struct SessionUsageCheckpointData {
1164 pub total_nano_aiu: f64,
1166 #[doc(hidden)]
1168 #[serde(skip_serializing_if = "Option::is_none")]
1169 pub(crate) total_premium_requests: Option<f64>,
1170}
1171
1172#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1174#[serde(rename_all = "camelCase")]
1175pub struct SessionContextChangedData {
1176 #[serde(skip_serializing_if = "Option::is_none")]
1178 pub base_commit: Option<String>,
1179 #[serde(skip_serializing_if = "Option::is_none")]
1181 pub branch: Option<String>,
1182 pub cwd: String,
1184 #[serde(skip_serializing_if = "Option::is_none")]
1186 pub git_root: Option<String>,
1187 #[serde(skip_serializing_if = "Option::is_none")]
1189 pub head_commit: Option<String>,
1190 #[serde(skip_serializing_if = "Option::is_none")]
1192 pub host_type: Option<WorkingDirectoryContextHostType>,
1193 #[serde(skip_serializing_if = "Option::is_none")]
1195 pub repository: Option<String>,
1196 #[serde(skip_serializing_if = "Option::is_none")]
1198 pub repository_host: Option<String>,
1199}
1200
1201#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1203#[serde(rename_all = "camelCase")]
1204pub struct SessionUsageInfoData {
1205 #[serde(skip_serializing_if = "Option::is_none")]
1207 pub conversation_tokens: Option<i64>,
1208 pub current_tokens: i64,
1210 #[serde(skip_serializing_if = "Option::is_none")]
1212 pub is_initial: Option<bool>,
1213 pub messages_length: i64,
1215 #[serde(skip_serializing_if = "Option::is_none")]
1217 pub system_tokens: Option<i64>,
1218 pub token_limit: i64,
1220 #[serde(skip_serializing_if = "Option::is_none")]
1222 pub tool_definitions_tokens: Option<i64>,
1223}
1224
1225#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1227#[serde(rename_all = "camelCase")]
1228pub struct SessionCompactionStartData {
1229 #[serde(skip_serializing_if = "Option::is_none")]
1231 pub conversation_tokens: Option<i64>,
1232 #[serde(skip_serializing_if = "Option::is_none")]
1234 pub model: Option<String>,
1235 #[serde(skip_serializing_if = "Option::is_none")]
1237 pub system_tokens: Option<i64>,
1238 #[serde(skip_serializing_if = "Option::is_none")]
1240 pub tool_definitions_tokens: Option<i64>,
1241}
1242
1243#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1245#[serde(rename_all = "camelCase")]
1246pub struct CompactionCompleteCompactionTokensUsedCopilotUsageTokenDetail {
1247 pub batch_size: i64,
1249 pub cost_per_batch: i64,
1251 pub token_count: i64,
1253 pub token_type: String,
1255}
1256
1257#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1259#[serde(rename_all = "camelCase")]
1260pub(crate) struct CompactionCompleteCompactionTokensUsedCopilotUsage {
1261 #[doc(hidden)]
1263 #[serde(skip_serializing_if = "Option::is_none")]
1264 pub(crate) token_details:
1265 Option<Vec<CompactionCompleteCompactionTokensUsedCopilotUsageTokenDetail>>,
1266 pub total_nano_aiu: f64,
1268}
1269
1270#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1272#[serde(rename_all = "camelCase")]
1273pub struct CompactionCompleteCompactionTokensUsed {
1274 #[serde(skip_serializing_if = "Option::is_none")]
1276 pub cache_read_tokens: Option<i64>,
1277 #[serde(skip_serializing_if = "Option::is_none")]
1279 pub cache_write_tokens: Option<i64>,
1280 #[doc(hidden)]
1282 #[serde(skip_serializing_if = "Option::is_none")]
1283 pub(crate) copilot_usage: Option<CompactionCompleteCompactionTokensUsedCopilotUsage>,
1284 #[serde(skip_serializing_if = "Option::is_none")]
1286 pub duration: Option<i64>,
1287 #[serde(skip_serializing_if = "Option::is_none")]
1289 pub input_tokens: Option<i64>,
1290 #[serde(skip_serializing_if = "Option::is_none")]
1292 pub model: Option<String>,
1293 #[serde(skip_serializing_if = "Option::is_none")]
1295 pub output_tokens: Option<i64>,
1296}
1297
1298#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1300#[serde(rename_all = "camelCase")]
1301pub struct SessionCompactionCompleteData {
1302 #[serde(skip_serializing_if = "Option::is_none")]
1304 pub checkpoint_number: Option<i64>,
1305 #[serde(skip_serializing_if = "Option::is_none")]
1307 pub checkpoint_path: Option<String>,
1308 #[serde(skip_serializing_if = "Option::is_none")]
1310 pub compaction_tokens_used: Option<CompactionCompleteCompactionTokensUsed>,
1311 #[serde(skip_serializing_if = "Option::is_none")]
1313 pub conversation_tokens: Option<i64>,
1314 #[serde(skip_serializing_if = "Option::is_none")]
1316 pub custom_instructions: Option<String>,
1317 #[serde(skip_serializing_if = "Option::is_none")]
1319 pub error: Option<String>,
1320 #[serde(skip_serializing_if = "Option::is_none")]
1322 pub messages_removed: Option<i64>,
1323 #[serde(skip_serializing_if = "Option::is_none")]
1325 pub post_compaction_tokens: Option<i64>,
1326 #[serde(skip_serializing_if = "Option::is_none")]
1328 pub pre_compaction_messages_length: Option<i64>,
1329 #[serde(skip_serializing_if = "Option::is_none")]
1331 pub pre_compaction_tokens: Option<i64>,
1332 #[serde(skip_serializing_if = "Option::is_none")]
1334 pub request_id: Option<RequestId>,
1335 #[serde(skip_serializing_if = "Option::is_none")]
1337 pub service_request_id: Option<String>,
1338 #[serde(skip_serializing_if = "Option::is_none")]
1340 pub status_code: Option<i64>,
1341 pub success: bool,
1343 #[serde(skip_serializing_if = "Option::is_none")]
1345 pub summary_content: Option<String>,
1346 #[serde(skip_serializing_if = "Option::is_none")]
1348 pub system_tokens: Option<i64>,
1349 #[serde(skip_serializing_if = "Option::is_none")]
1351 pub tokens_removed: Option<i64>,
1352 #[serde(skip_serializing_if = "Option::is_none")]
1354 pub tool_definitions_tokens: Option<i64>,
1355}
1356
1357#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1359#[serde(rename_all = "camelCase")]
1360pub struct SessionTaskCompleteData {
1361 #[serde(skip_serializing_if = "Option::is_none")]
1363 pub success: Option<bool>,
1364 #[serde(skip_serializing_if = "Option::is_none")]
1366 pub summary: Option<String>,
1367}
1368
1369#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1371#[serde(rename_all = "camelCase")]
1372pub struct UserMessageData {
1373 #[serde(skip_serializing_if = "Option::is_none")]
1375 pub agent_mode: Option<UserMessageAgentMode>,
1376 #[serde(skip_serializing_if = "Option::is_none")]
1378 pub attachments: Option<Vec<serde_json::Value>>,
1379 pub content: String,
1381 #[serde(skip_serializing_if = "Option::is_none")]
1383 pub delivery: Option<UserMessageDelivery>,
1384 #[serde(skip_serializing_if = "Option::is_none")]
1386 pub interaction_id: Option<String>,
1387 #[serde(skip_serializing_if = "Option::is_none")]
1389 pub is_autopilot_continuation: Option<bool>,
1390 #[serde(skip_serializing_if = "Option::is_none")]
1392 pub native_document_path_fallback_paths: Option<Vec<String>>,
1393 #[serde(skip_serializing_if = "Option::is_none")]
1395 pub parent_agent_task_id: Option<String>,
1396 #[serde(skip_serializing_if = "Option::is_none")]
1398 pub source: Option<String>,
1399 #[serde(skip_serializing_if = "Option::is_none")]
1401 pub supported_native_document_mime_types: Option<Vec<String>>,
1402 #[serde(skip_serializing_if = "Option::is_none")]
1404 pub transformed_content: Option<String>,
1405}
1406
1407#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1409#[serde(rename_all = "camelCase")]
1410pub struct PendingMessagesModifiedData {}
1411
1412#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1414#[serde(rename_all = "camelCase")]
1415pub struct AssistantTurnStartData {
1416 #[serde(skip_serializing_if = "Option::is_none")]
1418 pub interaction_id: Option<String>,
1419 #[serde(skip_serializing_if = "Option::is_none")]
1421 pub model: Option<String>,
1422 pub turn_id: String,
1424}
1425
1426#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1428#[serde(rename_all = "camelCase")]
1429pub struct AssistantIntentData {
1430 pub intent: String,
1432}
1433
1434#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1436#[serde(rename_all = "camelCase")]
1437pub struct AssistantReasoningData {
1438 pub content: String,
1440 pub reasoning_id: String,
1442}
1443
1444#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1446#[serde(rename_all = "camelCase")]
1447pub struct AssistantReasoningDeltaData {
1448 pub delta_content: String,
1450 pub reasoning_id: String,
1452}
1453
1454#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1456#[serde(rename_all = "camelCase")]
1457pub struct AssistantToolCallDeltaData {
1458 pub input_delta: String,
1460 pub tool_call_id: String,
1462 #[serde(skip_serializing_if = "Option::is_none")]
1464 pub tool_name: Option<String>,
1465 #[serde(skip_serializing_if = "Option::is_none")]
1467 pub tool_type: Option<AssistantMessageToolRequestType>,
1468}
1469
1470#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1472#[serde(rename_all = "camelCase")]
1473pub struct AssistantStreamingDeltaData {
1474 pub total_response_size_bytes: i64,
1476}
1477
1478#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1487#[serde(rename_all = "camelCase")]
1488pub struct CitationSource {
1489 pub id: String,
1491 #[serde(skip_serializing_if = "Option::is_none")]
1493 pub path: Option<String>,
1494 pub provider: CitationProvider,
1496 #[serde(skip_serializing_if = "Option::is_none")]
1498 pub title: Option<String>,
1499 #[serde(skip_serializing_if = "Option::is_none")]
1501 pub url: Option<String>,
1502}
1503
1504#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1513#[serde(rename_all = "camelCase")]
1514pub struct CitationReference {
1515 #[serde(skip_serializing_if = "Option::is_none")]
1517 pub cited_text: Option<String>,
1518 #[serde(skip_serializing_if = "Option::is_none")]
1520 pub location: Option<serde_json::Value>,
1521 #[serde(skip_serializing_if = "Option::is_none")]
1523 pub provider_metadata: Option<serde_json::Value>,
1524 pub source_id: String,
1526}
1527
1528#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1537#[serde(rename_all = "camelCase")]
1538pub struct CitationSpan {
1539 pub end_index: i64,
1541 pub references: Vec<CitationReference>,
1543 pub start_index: i64,
1545}
1546
1547#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1556#[serde(rename_all = "camelCase")]
1557pub struct Citations {
1558 pub sources: Vec<CitationSource>,
1560 pub spans: Vec<CitationSpan>,
1562}
1563
1564#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1573#[serde(rename_all = "camelCase")]
1574pub struct AssistantMessageServerTools {
1575 #[serde(skip_serializing_if = "Option::is_none")]
1576 pub advisor_model: Option<String>,
1577 #[serde(skip_serializing_if = "Option::is_none")]
1578 pub function_call_namespaces: Option<HashMap<String, String>>,
1579 #[serde(skip_serializing_if = "Option::is_none")]
1580 pub items: Option<Vec<serde_json::Value>>,
1581 pub provider: String,
1582 #[serde(skip_serializing_if = "Option::is_none")]
1583 pub raw_content_blocks: Option<Vec<serde_json::Value>>,
1584}
1585
1586#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1588#[serde(rename_all = "camelCase")]
1589pub struct AssistantMessageToolRequest {
1590 #[serde(skip_serializing_if = "Option::is_none")]
1592 pub arguments: Option<serde_json::Value>,
1593 #[serde(skip_serializing_if = "Option::is_none")]
1595 pub intention_summary: Option<String>,
1596 #[serde(skip_serializing_if = "Option::is_none")]
1598 pub mcp_server_name: Option<String>,
1599 #[serde(skip_serializing_if = "Option::is_none")]
1601 pub mcp_tool_name: Option<String>,
1602 pub name: String,
1604 pub tool_call_id: String,
1606 #[serde(skip_serializing_if = "Option::is_none")]
1608 pub tool_title: Option<String>,
1609 #[serde(skip_serializing_if = "Option::is_none")]
1611 pub r#type: Option<AssistantMessageToolRequestType>,
1612}
1613
1614#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1616#[serde(rename_all = "camelCase")]
1617pub struct AssistantMessageData {
1618 #[serde(skip_serializing_if = "Option::is_none")]
1620 pub api_call_id: Option<String>,
1621 #[serde(skip_serializing_if = "Option::is_none")]
1630 pub citations: Option<Citations>,
1631 pub content: String,
1633 #[serde(skip_serializing_if = "Option::is_none")]
1635 pub encrypted_content: Option<String>,
1636 #[serde(skip_serializing_if = "Option::is_none")]
1638 pub interaction_id: Option<String>,
1639 pub message_id: String,
1641 #[serde(skip_serializing_if = "Option::is_none")]
1643 pub model: Option<String>,
1644 #[serde(skip_serializing_if = "Option::is_none")]
1646 pub output_tokens: Option<i64>,
1647 #[doc(hidden)]
1649 #[deprecated]
1650 #[serde(skip_serializing_if = "Option::is_none")]
1651 pub parent_tool_call_id: Option<String>,
1652 #[serde(skip_serializing_if = "Option::is_none")]
1654 pub phase: Option<String>,
1655 #[serde(skip_serializing_if = "Option::is_none")]
1657 pub reasoning_opaque: Option<String>,
1658 #[serde(skip_serializing_if = "Option::is_none")]
1660 pub reasoning_text: Option<String>,
1661 #[serde(skip_serializing_if = "Option::is_none")]
1663 pub reasoning_wire_field: Option<String>,
1664 #[serde(skip_serializing_if = "Option::is_none")]
1666 pub request_id: Option<RequestId>,
1667 #[serde(skip_serializing_if = "Option::is_none")]
1669 pub server_tools: Option<AssistantMessageServerTools>,
1670 #[serde(skip_serializing_if = "Option::is_none")]
1672 pub service_request_id: Option<String>,
1673 #[serde(skip_serializing_if = "Option::is_none")]
1675 pub tool_requests: Option<Vec<AssistantMessageToolRequest>>,
1676 #[serde(skip_serializing_if = "Option::is_none")]
1678 pub turn_id: Option<String>,
1679}
1680
1681#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1683#[serde(rename_all = "camelCase")]
1684pub struct AssistantMessageStartData {
1685 pub message_id: String,
1687 #[serde(skip_serializing_if = "Option::is_none")]
1689 pub phase: Option<String>,
1690}
1691
1692#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1694#[serde(rename_all = "camelCase")]
1695pub struct AssistantMessageDeltaData {
1696 pub delta_content: String,
1698 pub message_id: String,
1700 #[doc(hidden)]
1702 #[deprecated]
1703 #[serde(skip_serializing_if = "Option::is_none")]
1704 pub parent_tool_call_id: Option<String>,
1705}
1706
1707#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1709#[serde(rename_all = "camelCase")]
1710pub struct AssistantTurnEndData {
1711 #[serde(skip_serializing_if = "Option::is_none")]
1713 pub model: Option<String>,
1714 pub turn_id: String,
1716}
1717
1718#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1720#[serde(rename_all = "camelCase")]
1721pub struct AssistantIdleData {
1722 #[serde(skip_serializing_if = "Option::is_none")]
1724 pub aborted: Option<bool>,
1725}
1726
1727#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1729#[serde(rename_all = "camelCase")]
1730pub struct AssistantUsageCopilotUsageTokenDetail {
1731 pub batch_size: i64,
1733 pub cost_per_batch: i64,
1735 pub token_count: i64,
1737 pub token_type: String,
1739}
1740
1741#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1743#[serde(rename_all = "camelCase")]
1744pub struct AssistantUsageCopilotUsage {
1745 #[doc(hidden)]
1747 #[serde(skip_serializing_if = "Option::is_none")]
1748 pub(crate) token_details: Option<Vec<AssistantUsageCopilotUsageTokenDetail>>,
1749 pub total_nano_aiu: f64,
1751}
1752
1753#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1755#[serde(rename_all = "camelCase")]
1756pub(crate) struct AssistantUsageQuotaSnapshot {
1757 #[doc(hidden)]
1759 pub(crate) entitlement_requests: i64,
1760 #[doc(hidden)]
1762 #[serde(skip_serializing_if = "Option::is_none")]
1763 pub(crate) has_quota: Option<bool>,
1764 #[doc(hidden)]
1766 pub(crate) is_unlimited_entitlement: bool,
1767 #[doc(hidden)]
1769 pub(crate) overage: f64,
1770 #[doc(hidden)]
1772 pub(crate) overage_allowed_with_exhausted_quota: bool,
1773 #[doc(hidden)]
1775 #[serde(skip_serializing_if = "Option::is_none")]
1776 pub(crate) overage_entitlement: Option<f64>,
1777 #[doc(hidden)]
1779 pub(crate) remaining_percentage: f64,
1780 #[doc(hidden)]
1782 #[serde(skip_serializing_if = "Option::is_none")]
1783 pub(crate) reset_date: Option<String>,
1784 #[doc(hidden)]
1786 #[serde(skip_serializing_if = "Option::is_none")]
1787 pub(crate) token_based_billing: Option<bool>,
1788 #[doc(hidden)]
1790 pub(crate) usage_allowed_with_exhausted_quota: bool,
1791 #[doc(hidden)]
1793 pub(crate) used_requests: i64,
1794}
1795
1796#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1798#[serde(rename_all = "camelCase")]
1799pub struct AssistantUsageData {
1800 #[serde(skip_serializing_if = "Option::is_none")]
1802 pub api_call_id: Option<String>,
1803 #[serde(skip_serializing_if = "Option::is_none")]
1805 pub api_endpoint: Option<AssistantUsageApiEndpoint>,
1806 #[serde(skip_serializing_if = "Option::is_none")]
1808 pub cache_read_tokens: Option<i64>,
1809 #[serde(skip_serializing_if = "Option::is_none")]
1811 pub cache_write_tokens: Option<i64>,
1812 #[serde(skip_serializing_if = "Option::is_none")]
1814 pub content_filter_triggered: Option<bool>,
1815 #[serde(skip_serializing_if = "Option::is_none")]
1817 pub copilot_usage: Option<AssistantUsageCopilotUsage>,
1818 #[serde(skip_serializing_if = "Option::is_none")]
1827 pub cost: Option<f64>,
1828 #[serde(skip_serializing_if = "Option::is_none")]
1830 pub duration: Option<i64>,
1831 #[serde(skip_serializing_if = "Option::is_none")]
1833 pub finish_reason: Option<String>,
1834 #[serde(skip_serializing_if = "Option::is_none")]
1836 pub initiator: Option<String>,
1837 #[serde(skip_serializing_if = "Option::is_none")]
1839 pub input_tokens: Option<i64>,
1840 #[serde(skip_serializing_if = "Option::is_none")]
1842 pub inter_token_latency_ms: Option<f64>,
1843 pub model: String,
1845 #[serde(skip_serializing_if = "Option::is_none")]
1847 pub output_tokens: Option<i64>,
1848 #[doc(hidden)]
1850 #[deprecated]
1851 #[serde(skip_serializing_if = "Option::is_none")]
1852 pub parent_tool_call_id: Option<String>,
1853 #[serde(skip_serializing_if = "Option::is_none")]
1855 pub provider_call_id: Option<String>,
1856 #[doc(hidden)]
1858 #[serde(skip_serializing_if = "Option::is_none")]
1859 pub(crate) quota_snapshots: Option<HashMap<String, AssistantUsageQuotaSnapshot>>,
1860 #[serde(skip_serializing_if = "Option::is_none")]
1862 pub reasoning_effort: Option<String>,
1863 #[serde(skip_serializing_if = "Option::is_none")]
1865 pub reasoning_tokens: Option<i64>,
1866 #[serde(skip_serializing_if = "Option::is_none")]
1868 pub service_request_id: Option<String>,
1869 #[serde(skip_serializing_if = "Option::is_none")]
1871 pub time_to_first_token_ms: Option<f64>,
1872}
1873
1874#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1876#[serde(rename_all = "camelCase")]
1877pub struct ModelCallFailureRequestFingerprint {
1878 pub image_part_count: i64,
1880 pub image_parts_missing_media_type: i64,
1882 #[serde(skip_serializing_if = "Option::is_none")]
1884 pub last_message_role: Option<String>,
1885 pub message_count: i64,
1887 pub nameless_tool_call_count: i64,
1889 pub tool_call_count: i64,
1891 pub tool_result_message_count: i64,
1893}
1894
1895#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1897#[serde(rename_all = "camelCase")]
1898pub struct ModelCallFailureData {
1899 #[serde(skip_serializing_if = "Option::is_none")]
1901 pub api_call_id: Option<String>,
1902 #[serde(skip_serializing_if = "Option::is_none")]
1904 pub bad_request_kind: Option<ModelCallFailureBadRequestKind>,
1905 #[serde(skip_serializing_if = "Option::is_none")]
1907 pub duration_ms: Option<i64>,
1908 #[serde(skip_serializing_if = "Option::is_none")]
1910 pub error_code: Option<String>,
1911 #[serde(skip_serializing_if = "Option::is_none")]
1913 pub error_message: Option<String>,
1914 #[serde(skip_serializing_if = "Option::is_none")]
1916 pub error_type: Option<String>,
1917 #[serde(skip_serializing_if = "Option::is_none")]
1919 pub initiator: Option<String>,
1920 #[serde(skip_serializing_if = "Option::is_none")]
1922 pub model: Option<String>,
1923 #[serde(skip_serializing_if = "Option::is_none")]
1925 pub provider_call_id: Option<String>,
1926 #[doc(hidden)]
1928 #[serde(skip_serializing_if = "Option::is_none")]
1929 pub(crate) quota_snapshots: Option<HashMap<String, AssistantUsageQuotaSnapshot>>,
1930 #[serde(skip_serializing_if = "Option::is_none")]
1932 pub request_fingerprint: Option<ModelCallFailureRequestFingerprint>,
1933 #[serde(skip_serializing_if = "Option::is_none")]
1935 pub service_request_id: Option<String>,
1936 pub source: ModelCallFailureSource,
1938 #[serde(skip_serializing_if = "Option::is_none")]
1940 pub status_code: Option<i32>,
1941}
1942
1943#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1945#[serde(rename_all = "camelCase")]
1946pub struct AbortData {
1947 pub reason: AbortReason,
1949}
1950
1951#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1953#[serde(rename_all = "camelCase")]
1954pub struct ToolUserRequestedData {
1955 #[serde(skip_serializing_if = "Option::is_none")]
1957 pub arguments: Option<serde_json::Value>,
1958 pub tool_call_id: String,
1960 pub tool_name: String,
1962}
1963
1964#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1966#[serde(rename_all = "camelCase")]
1967pub struct ToolExecutionStartShellToolInfo {
1968 pub has_write_file_redirection: bool,
1970 pub possible_paths: Vec<String>,
1972}
1973
1974#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1976#[serde(rename_all = "camelCase")]
1977pub struct ToolExecutionStartToolDescriptionMetaUI {
1978 #[serde(skip_serializing_if = "Option::is_none")]
1980 pub resource_uri: Option<String>,
1981 #[serde(skip_serializing_if = "Option::is_none")]
1983 pub visibility: Option<Vec<ToolExecutionStartToolDescriptionMetaUIVisibility>>,
1984}
1985
1986#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1988#[serde(rename_all = "camelCase")]
1989pub struct ToolExecutionStartToolDescriptionMeta {
1990 #[serde(skip_serializing_if = "Option::is_none")]
1992 pub ui: Option<ToolExecutionStartToolDescriptionMetaUI>,
1993}
1994
1995#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1997#[serde(rename_all = "camelCase")]
1998pub struct ToolExecutionStartToolDescription {
1999 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2001 pub meta: Option<ToolExecutionStartToolDescriptionMeta>,
2002 #[serde(skip_serializing_if = "Option::is_none")]
2004 pub description: Option<String>,
2005 pub name: String,
2007}
2008
2009#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2011#[serde(rename_all = "camelCase")]
2012pub struct ToolExecutionStartData {
2013 #[serde(skip_serializing_if = "Option::is_none")]
2015 pub arguments: Option<serde_json::Value>,
2016 #[serde(skip_serializing_if = "Option::is_none")]
2018 pub display_verbatim: Option<bool>,
2019 #[serde(skip_serializing_if = "Option::is_none")]
2021 pub mcp_server_name: Option<String>,
2022 #[serde(skip_serializing_if = "Option::is_none")]
2024 pub mcp_tool_name: Option<String>,
2025 #[serde(skip_serializing_if = "Option::is_none")]
2027 pub model: Option<String>,
2028 #[doc(hidden)]
2030 #[deprecated]
2031 #[serde(skip_serializing_if = "Option::is_none")]
2032 pub parent_tool_call_id: Option<String>,
2033 #[serde(skip_serializing_if = "Option::is_none")]
2035 pub shell_tool_info: Option<ToolExecutionStartShellToolInfo>,
2036 pub tool_call_id: String,
2038 #[serde(skip_serializing_if = "Option::is_none")]
2040 pub tool_description: Option<ToolExecutionStartToolDescription>,
2041 pub tool_name: String,
2043 #[serde(skip_serializing_if = "Option::is_none")]
2045 pub turn_id: Option<String>,
2046}
2047
2048#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2050#[serde(rename_all = "camelCase")]
2051pub struct ToolExecutionPartialResultData {
2052 pub partial_output: String,
2054 pub tool_call_id: String,
2056}
2057
2058#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2060#[serde(rename_all = "camelCase")]
2061pub struct ToolExecutionProgressData {
2062 pub progress_message: String,
2064 pub tool_call_id: String,
2066}
2067
2068#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2070#[serde(rename_all = "camelCase")]
2071pub struct ToolExecutionCompleteError {
2072 #[serde(skip_serializing_if = "Option::is_none")]
2074 pub code: Option<String>,
2075 pub message: String,
2077}
2078
2079#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2088#[serde(rename_all = "camelCase")]
2089pub struct CitableSource {
2090 pub content: String,
2092 pub id: String,
2094 #[serde(skip_serializing_if = "Option::is_none")]
2096 pub path: Option<String>,
2097 #[serde(skip_serializing_if = "Option::is_none")]
2099 pub title: Option<String>,
2100 #[serde(skip_serializing_if = "Option::is_none")]
2102 pub url: Option<String>,
2103}
2104
2105#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2107#[serde(rename_all = "camelCase")]
2108pub struct ToolExecutionCompleteContentText {
2109 pub text: String,
2111 pub r#type: ToolExecutionCompleteContentTextType,
2113}
2114
2115#[doc(hidden)]
2117#[deprecated]
2118#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2119#[serde(rename_all = "camelCase")]
2120pub struct ToolExecutionCompleteContentTerminal {
2121 #[serde(skip_serializing_if = "Option::is_none")]
2123 pub cwd: Option<String>,
2124 #[serde(skip_serializing_if = "Option::is_none")]
2126 pub exit_code: Option<i64>,
2127 pub text: String,
2129 pub r#type: ToolExecutionCompleteContentTerminalType,
2131}
2132
2133#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2135#[serde(rename_all = "camelCase")]
2136pub struct ToolExecutionCompleteContentShellExit {
2137 #[serde(skip_serializing_if = "Option::is_none")]
2139 pub cwd: Option<String>,
2140 pub exit_code: i64,
2142 #[serde(skip_serializing_if = "Option::is_none")]
2144 pub output_preview: Option<String>,
2145 #[serde(skip_serializing_if = "Option::is_none")]
2147 pub output_truncated: Option<bool>,
2148 pub shell_id: String,
2150 pub r#type: ToolExecutionCompleteContentShellExitType,
2152}
2153
2154#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2156#[serde(rename_all = "camelCase")]
2157pub struct ToolExecutionCompleteContentImage {
2158 pub data: String,
2160 pub mime_type: String,
2162 pub r#type: ToolExecutionCompleteContentImageType,
2164}
2165
2166#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2168#[serde(rename_all = "camelCase")]
2169pub struct ToolExecutionCompleteContentAudio {
2170 pub data: String,
2172 pub mime_type: String,
2174 pub r#type: ToolExecutionCompleteContentAudioType,
2176}
2177
2178#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2180#[serde(rename_all = "camelCase")]
2181pub struct ToolExecutionCompleteContentResourceLinkIcon {
2182 #[serde(skip_serializing_if = "Option::is_none")]
2184 pub mime_type: Option<String>,
2185 #[serde(skip_serializing_if = "Option::is_none")]
2187 pub sizes: Option<Vec<String>>,
2188 pub src: String,
2190 #[serde(skip_serializing_if = "Option::is_none")]
2192 pub theme: Option<ToolExecutionCompleteContentResourceLinkIconTheme>,
2193}
2194
2195#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2197#[serde(rename_all = "camelCase")]
2198pub struct ToolExecutionCompleteContentResourceLink {
2199 #[serde(skip_serializing_if = "Option::is_none")]
2201 pub description: Option<String>,
2202 #[serde(skip_serializing_if = "Option::is_none")]
2204 pub icons: Option<Vec<ToolExecutionCompleteContentResourceLinkIcon>>,
2205 #[serde(skip_serializing_if = "Option::is_none")]
2207 pub mime_type: Option<String>,
2208 pub name: String,
2210 #[serde(skip_serializing_if = "Option::is_none")]
2212 pub size: Option<i64>,
2213 #[serde(skip_serializing_if = "Option::is_none")]
2215 pub title: Option<String>,
2216 pub r#type: ToolExecutionCompleteContentResourceLinkType,
2218 pub uri: String,
2220}
2221
2222#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2224#[serde(rename_all = "camelCase")]
2225pub struct EmbeddedTextResourceContents {
2226 #[serde(skip_serializing_if = "Option::is_none")]
2228 pub mime_type: Option<String>,
2229 pub text: String,
2231 pub uri: String,
2233}
2234
2235#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2237#[serde(rename_all = "camelCase")]
2238pub struct EmbeddedBlobResourceContents {
2239 pub blob: String,
2241 #[serde(skip_serializing_if = "Option::is_none")]
2243 pub mime_type: Option<String>,
2244 pub uri: String,
2246}
2247
2248#[derive(Debug, Clone, Serialize, Deserialize)]
2250#[serde(rename_all = "camelCase")]
2251pub struct ToolExecutionCompleteContentResource {
2252 pub resource: ToolExecutionCompleteContentResourceDetails,
2254 pub r#type: ToolExecutionCompleteContentResourceType,
2256}
2257
2258#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2260#[serde(rename_all = "camelCase")]
2261pub struct ToolExecutionCompleteUIResourceMetaUICsp {
2262 #[serde(skip_serializing_if = "Option::is_none")]
2263 pub base_uri_domains: Option<Vec<String>>,
2264 #[serde(skip_serializing_if = "Option::is_none")]
2265 pub connect_domains: Option<Vec<String>>,
2266 #[serde(skip_serializing_if = "Option::is_none")]
2267 pub frame_domains: Option<Vec<String>>,
2268 #[serde(skip_serializing_if = "Option::is_none")]
2269 pub resource_domains: Option<Vec<String>>,
2270}
2271
2272#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2274#[serde(rename_all = "camelCase")]
2275pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsCamera {}
2276
2277#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2279#[serde(rename_all = "camelCase")]
2280pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite {}
2281
2282#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2284#[serde(rename_all = "camelCase")]
2285pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation {}
2286
2287#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2289#[serde(rename_all = "camelCase")]
2290pub struct ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone {}
2291
2292#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2294#[serde(rename_all = "camelCase")]
2295pub struct ToolExecutionCompleteUIResourceMetaUIPermissions {
2296 #[serde(skip_serializing_if = "Option::is_none")]
2298 pub camera: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsCamera>,
2299 #[serde(skip_serializing_if = "Option::is_none")]
2301 pub clipboard_write: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite>,
2302 #[serde(skip_serializing_if = "Option::is_none")]
2304 pub geolocation: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation>,
2305 #[serde(skip_serializing_if = "Option::is_none")]
2307 pub microphone: Option<ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone>,
2308}
2309
2310#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2312#[serde(rename_all = "camelCase")]
2313pub struct ToolExecutionCompleteUIResourceMetaUI {
2314 #[serde(skip_serializing_if = "Option::is_none")]
2316 pub csp: Option<ToolExecutionCompleteUIResourceMetaUICsp>,
2317 #[serde(skip_serializing_if = "Option::is_none")]
2318 pub domain: Option<String>,
2319 #[serde(skip_serializing_if = "Option::is_none")]
2321 pub permissions: Option<ToolExecutionCompleteUIResourceMetaUIPermissions>,
2322 #[serde(skip_serializing_if = "Option::is_none")]
2323 pub prefers_border: Option<bool>,
2324}
2325
2326#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2328#[serde(rename_all = "camelCase")]
2329pub struct ToolExecutionCompleteUIResourceMeta {
2330 #[serde(skip_serializing_if = "Option::is_none")]
2332 pub ui: Option<ToolExecutionCompleteUIResourceMetaUI>,
2333}
2334
2335#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2337#[serde(rename_all = "camelCase")]
2338pub struct ToolExecutionCompleteUIResource {
2339 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2341 pub meta: Option<ToolExecutionCompleteUIResourceMeta>,
2342 #[serde(skip_serializing_if = "Option::is_none")]
2344 pub blob: Option<String>,
2345 pub mime_type: String,
2347 #[serde(skip_serializing_if = "Option::is_none")]
2349 pub text: Option<String>,
2350 pub uri: String,
2352}
2353
2354#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2356#[serde(rename_all = "camelCase")]
2357pub struct ToolExecutionCompleteResult {
2358 #[serde(skip_serializing_if = "Option::is_none")]
2367 pub binary_results_for_llm: Option<Vec<serde_json::Value>>,
2368 #[serde(skip_serializing_if = "Option::is_none")]
2377 pub citable_sources: Option<Vec<CitableSource>>,
2378 pub content: String,
2380 #[serde(skip_serializing_if = "Option::is_none")]
2382 pub contents: Option<Vec<ToolExecutionCompleteContent>>,
2383 #[serde(skip_serializing_if = "Option::is_none")]
2385 pub detailed_content: Option<String>,
2386 #[serde(skip_serializing_if = "Option::is_none")]
2388 pub structured_content: Option<serde_json::Value>,
2389 #[serde(skip_serializing_if = "Option::is_none")]
2391 pub ui_resource: Option<ToolExecutionCompleteUIResource>,
2392}
2393
2394#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2396#[serde(rename_all = "camelCase")]
2397pub struct ToolExecutionCompleteToolDescriptionMetaUI {
2398 #[serde(skip_serializing_if = "Option::is_none")]
2400 pub resource_uri: Option<String>,
2401 #[serde(skip_serializing_if = "Option::is_none")]
2403 pub visibility: Option<Vec<ToolExecutionCompleteToolDescriptionMetaUIVisibility>>,
2404}
2405
2406#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2408#[serde(rename_all = "camelCase")]
2409pub struct ToolExecutionCompleteToolDescriptionMeta {
2410 #[serde(skip_serializing_if = "Option::is_none")]
2412 pub ui: Option<ToolExecutionCompleteToolDescriptionMetaUI>,
2413}
2414
2415#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2417#[serde(rename_all = "camelCase")]
2418pub struct ToolExecutionCompleteToolDescription {
2419 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
2421 pub meta: Option<ToolExecutionCompleteToolDescriptionMeta>,
2422 #[serde(skip_serializing_if = "Option::is_none")]
2424 pub description: Option<String>,
2425 pub name: String,
2427}
2428
2429#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2431#[serde(rename_all = "camelCase")]
2432pub struct ToolExecutionCompleteData {
2433 #[serde(skip_serializing_if = "Option::is_none")]
2435 pub error: Option<ToolExecutionCompleteError>,
2436 #[serde(skip_serializing_if = "Option::is_none")]
2438 pub interaction_id: Option<String>,
2439 #[serde(skip_serializing_if = "Option::is_none")]
2441 pub is_user_requested: Option<bool>,
2442 #[serde(skip_serializing_if = "Option::is_none")]
2444 pub model: Option<String>,
2445 #[doc(hidden)]
2447 #[deprecated]
2448 #[serde(skip_serializing_if = "Option::is_none")]
2449 pub parent_tool_call_id: Option<String>,
2450 #[serde(skip_serializing_if = "Option::is_none")]
2452 pub result: Option<ToolExecutionCompleteResult>,
2453 #[serde(skip_serializing_if = "Option::is_none")]
2455 pub sandboxed: Option<bool>,
2456 pub success: bool,
2458 pub tool_call_id: String,
2460 #[serde(skip_serializing_if = "Option::is_none")]
2462 pub tool_description: Option<ToolExecutionCompleteToolDescription>,
2463 #[serde(skip_serializing_if = "Option::is_none")]
2465 pub tool_telemetry: Option<HashMap<String, serde_json::Value>>,
2466 #[serde(skip_serializing_if = "Option::is_none")]
2468 pub turn_id: Option<String>,
2469}
2470
2471#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2473#[serde(rename_all = "camelCase")]
2474pub struct SkillInvokedData {
2475 #[serde(skip_serializing_if = "Option::is_none")]
2477 pub allowed_tools: Option<Vec<String>>,
2478 pub content: String,
2480 #[serde(skip_serializing_if = "Option::is_none")]
2482 pub description: Option<String>,
2483 #[serde(skip_serializing_if = "Option::is_none")]
2485 pub model: Option<String>,
2486 pub name: String,
2488 pub path: String,
2490 #[serde(skip_serializing_if = "Option::is_none")]
2492 pub plugin_name: Option<String>,
2493 #[serde(skip_serializing_if = "Option::is_none")]
2495 pub plugin_version: Option<String>,
2496 #[serde(skip_serializing_if = "Option::is_none")]
2498 pub source: Option<String>,
2499 #[serde(skip_serializing_if = "Option::is_none")]
2501 pub trigger: Option<SkillInvokedTrigger>,
2502}
2503
2504#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2506#[serde(rename_all = "camelCase")]
2507pub struct SubagentStartedData {
2508 pub agent_description: String,
2510 pub agent_display_name: String,
2512 pub agent_name: String,
2514 #[serde(skip_serializing_if = "Option::is_none")]
2516 pub model: Option<String>,
2517 pub tool_call_id: String,
2519}
2520
2521#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2523#[serde(rename_all = "camelCase")]
2524pub struct SubagentCompletedData {
2525 pub agent_display_name: String,
2527 pub agent_name: String,
2529 #[serde(skip_serializing_if = "Option::is_none")]
2531 pub duration_ms: Option<i64>,
2532 #[serde(skip_serializing_if = "Option::is_none")]
2534 pub model: Option<String>,
2535 pub tool_call_id: String,
2537 #[serde(skip_serializing_if = "Option::is_none")]
2539 pub total_tokens: Option<i64>,
2540 #[serde(skip_serializing_if = "Option::is_none")]
2542 pub total_tool_calls: Option<i64>,
2543}
2544
2545#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2547#[serde(rename_all = "camelCase")]
2548pub struct SubagentFailedData {
2549 pub agent_display_name: String,
2551 pub agent_name: String,
2553 #[serde(skip_serializing_if = "Option::is_none")]
2555 pub duration_ms: Option<i64>,
2556 pub error: String,
2558 #[serde(skip_serializing_if = "Option::is_none")]
2560 pub model: Option<String>,
2561 pub tool_call_id: String,
2563 #[serde(skip_serializing_if = "Option::is_none")]
2565 pub total_tokens: Option<i64>,
2566 #[serde(skip_serializing_if = "Option::is_none")]
2568 pub total_tool_calls: Option<i64>,
2569}
2570
2571#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2573#[serde(rename_all = "camelCase")]
2574pub struct SubagentSelectedData {
2575 pub agent_display_name: String,
2577 pub agent_name: String,
2579 pub tools: Option<Vec<String>>,
2581}
2582
2583#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2585#[serde(rename_all = "camelCase")]
2586pub struct SubagentDeselectedData {}
2587
2588#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2590#[serde(rename_all = "camelCase")]
2591pub struct HookStartData {
2592 pub hook_invocation_id: String,
2594 pub hook_type: String,
2596 #[serde(skip_serializing_if = "Option::is_none")]
2598 pub input: Option<serde_json::Value>,
2599}
2600
2601#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2603#[serde(rename_all = "camelCase")]
2604pub struct HookEndError {
2605 pub message: String,
2607 #[serde(skip_serializing_if = "Option::is_none")]
2609 pub source: Option<String>,
2610 #[serde(skip_serializing_if = "Option::is_none")]
2612 pub stack: Option<String>,
2613}
2614
2615#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2617#[serde(rename_all = "camelCase")]
2618pub struct HookEndData {
2619 #[serde(skip_serializing_if = "Option::is_none")]
2621 pub error: Option<HookEndError>,
2622 pub hook_invocation_id: String,
2624 pub hook_type: String,
2626 #[serde(skip_serializing_if = "Option::is_none")]
2628 pub output: Option<serde_json::Value>,
2629 pub success: bool,
2631}
2632
2633#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2635#[serde(rename_all = "camelCase")]
2636pub struct HookProgressData {
2637 pub message: String,
2639 #[serde(skip_serializing_if = "Option::is_none")]
2641 pub temporary: Option<bool>,
2642}
2643
2644#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2646#[serde(rename_all = "camelCase")]
2647pub struct SessionBinaryAssetData {
2648 pub asset_id: String,
2650 pub byte_length: i64,
2652 pub data: String,
2654 #[serde(skip_serializing_if = "Option::is_none")]
2656 pub description: Option<String>,
2657 #[serde(skip_serializing_if = "Option::is_none")]
2659 pub metadata: Option<HashMap<String, serde_json::Value>>,
2660 pub mime_type: String,
2662 pub r#type: BinaryAssetType,
2664}
2665
2666#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2668#[serde(rename_all = "camelCase")]
2669pub struct SystemMessageMetadata {
2670 #[serde(skip_serializing_if = "Option::is_none")]
2672 pub prompt_version: Option<String>,
2673 #[serde(skip_serializing_if = "Option::is_none")]
2675 pub variables: Option<HashMap<String, serde_json::Value>>,
2676}
2677
2678#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2680#[serde(rename_all = "camelCase")]
2681pub struct SystemMessageData {
2682 pub content: String,
2684 #[serde(skip_serializing_if = "Option::is_none")]
2686 pub metadata: Option<SystemMessageMetadata>,
2687 #[serde(skip_serializing_if = "Option::is_none")]
2689 pub name: Option<String>,
2690 pub role: SystemMessageRole,
2692}
2693
2694#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2696#[serde(rename_all = "camelCase")]
2697pub struct SystemNotificationData {
2698 pub content: String,
2700 pub kind: serde_json::Value,
2702}
2703
2704#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2706#[serde(rename_all = "camelCase")]
2707pub struct PermissionRequestShellCommand {
2708 pub identifier: String,
2710 pub read_only: bool,
2712}
2713
2714#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2716#[serde(rename_all = "camelCase")]
2717pub struct PermissionRequestShellPossibleUrl {
2718 pub url: String,
2720}
2721
2722#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2724#[serde(rename_all = "camelCase")]
2725pub struct PermissionRequestShell {
2726 pub can_offer_session_approval: bool,
2728 pub commands: Vec<PermissionRequestShellCommand>,
2730 pub full_command_text: String,
2732 pub has_write_file_redirection: bool,
2734 pub intention: String,
2736 pub kind: PermissionRequestShellKind,
2738 pub possible_paths: Vec<String>,
2740 pub possible_urls: Vec<PermissionRequestShellPossibleUrl>,
2742 #[serde(skip_serializing_if = "Option::is_none")]
2744 pub request_sandbox_bypass: Option<bool>,
2745 #[serde(skip_serializing_if = "Option::is_none")]
2747 pub request_sandbox_bypass_reason: Option<String>,
2748 #[serde(skip_serializing_if = "Option::is_none")]
2750 pub tool_call_id: Option<String>,
2751 #[serde(skip_serializing_if = "Option::is_none")]
2753 pub warning: Option<String>,
2754}
2755
2756#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2758#[serde(rename_all = "camelCase")]
2759pub struct PermissionRequestWrite {
2760 pub can_offer_session_approval: bool,
2762 pub diff: String,
2764 pub file_name: String,
2766 pub intention: String,
2768 pub kind: PermissionRequestWriteKind,
2770 #[serde(skip_serializing_if = "Option::is_none")]
2772 pub new_file_contents: Option<String>,
2773 #[serde(skip_serializing_if = "Option::is_none")]
2775 pub request_sandbox_bypass: Option<bool>,
2776 #[serde(skip_serializing_if = "Option::is_none")]
2778 pub request_sandbox_bypass_reason: Option<String>,
2779 #[serde(skip_serializing_if = "Option::is_none")]
2781 pub tool_call_id: Option<String>,
2782}
2783
2784#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2786#[serde(rename_all = "camelCase")]
2787pub struct PermissionRequestRead {
2788 pub intention: String,
2790 pub kind: PermissionRequestReadKind,
2792 pub path: String,
2794 #[serde(skip_serializing_if = "Option::is_none")]
2796 pub request_sandbox_bypass: Option<bool>,
2797 #[serde(skip_serializing_if = "Option::is_none")]
2799 pub request_sandbox_bypass_reason: Option<String>,
2800 #[serde(skip_serializing_if = "Option::is_none")]
2802 pub tool_call_id: Option<String>,
2803}
2804
2805#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2807#[serde(rename_all = "camelCase")]
2808pub struct PermissionRequestMcp {
2809 #[serde(skip_serializing_if = "Option::is_none")]
2811 pub args: Option<serde_json::Value>,
2812 pub kind: PermissionRequestMcpKind,
2814 pub read_only: bool,
2816 pub server_name: String,
2818 #[serde(skip_serializing_if = "Option::is_none")]
2820 pub tool_call_id: Option<String>,
2821 pub tool_name: String,
2823 pub tool_title: String,
2825}
2826
2827#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2829#[serde(rename_all = "camelCase")]
2830pub struct PermissionRequestUrl {
2831 pub intention: String,
2833 pub kind: PermissionRequestUrlKind,
2835 #[serde(skip_serializing_if = "Option::is_none")]
2837 pub request_sandbox_bypass: Option<bool>,
2838 #[serde(skip_serializing_if = "Option::is_none")]
2840 pub request_sandbox_bypass_reason: Option<String>,
2841 #[serde(skip_serializing_if = "Option::is_none")]
2843 pub tool_call_id: Option<String>,
2844 pub url: String,
2846}
2847
2848#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2850#[serde(rename_all = "camelCase")]
2851pub struct PermissionRequestMemory {
2852 #[serde(skip_serializing_if = "Option::is_none")]
2854 pub action: Option<PermissionRequestMemoryAction>,
2855 #[serde(skip_serializing_if = "Option::is_none")]
2857 pub citations: Option<String>,
2858 #[serde(skip_serializing_if = "Option::is_none")]
2860 pub direction: Option<PermissionRequestMemoryDirection>,
2861 pub fact: String,
2863 pub kind: PermissionRequestMemoryKind,
2865 #[serde(skip_serializing_if = "Option::is_none")]
2867 pub reason: Option<String>,
2868 #[serde(skip_serializing_if = "Option::is_none")]
2870 pub subject: Option<String>,
2871 #[serde(skip_serializing_if = "Option::is_none")]
2873 pub tool_call_id: Option<String>,
2874}
2875
2876#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2878#[serde(rename_all = "camelCase")]
2879pub struct PermissionRequestCustomTool {
2880 #[serde(skip_serializing_if = "Option::is_none")]
2882 pub args: Option<serde_json::Value>,
2883 pub kind: PermissionRequestCustomToolKind,
2885 #[serde(skip_serializing_if = "Option::is_none")]
2887 pub tool_call_id: Option<String>,
2888 pub tool_description: String,
2890 pub tool_name: String,
2892}
2893
2894#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2896#[serde(rename_all = "camelCase")]
2897pub struct PermissionRequestHook {
2898 #[serde(skip_serializing_if = "Option::is_none")]
2900 pub hook_message: Option<String>,
2901 pub kind: PermissionRequestHookKind,
2903 #[serde(skip_serializing_if = "Option::is_none")]
2905 pub tool_args: Option<serde_json::Value>,
2906 #[serde(skip_serializing_if = "Option::is_none")]
2908 pub tool_call_id: Option<String>,
2909 pub tool_name: String,
2911}
2912
2913#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2915#[serde(rename_all = "camelCase")]
2916pub struct PermissionRequestExtensionManagement {
2917 #[serde(skip_serializing_if = "Option::is_none")]
2919 pub extension_name: Option<String>,
2920 pub kind: PermissionRequestExtensionManagementKind,
2922 pub operation: String,
2924 #[serde(skip_serializing_if = "Option::is_none")]
2926 pub tool_call_id: Option<String>,
2927}
2928
2929#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2931#[serde(rename_all = "camelCase")]
2932pub struct PermissionRequestExtensionPermissionAccess {
2933 pub capabilities: Vec<String>,
2935 pub extension_name: String,
2937 pub kind: PermissionRequestExtensionPermissionAccessKind,
2939 #[serde(skip_serializing_if = "Option::is_none")]
2941 pub tool_call_id: Option<String>,
2942}
2943
2944#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2953#[serde(rename_all = "camelCase")]
2954pub struct PermissionAutoApproval {
2955 #[serde(skip_serializing_if = "Option::is_none")]
2957 pub reason: Option<String>,
2958 pub recommendation: AutoApprovalRecommendation,
2960}
2961
2962#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2964#[serde(rename_all = "camelCase")]
2965pub struct PermissionPromptRequestCommands {
2966 #[serde(skip_serializing_if = "Option::is_none")]
2975 pub auto_approval: Option<PermissionAutoApproval>,
2976 pub can_offer_session_approval: bool,
2978 pub command_identifiers: Vec<String>,
2980 pub full_command_text: String,
2982 pub intention: String,
2984 pub kind: PermissionPromptRequestCommandsKind,
2986 #[serde(skip_serializing_if = "Option::is_none")]
2988 pub tool_call_id: Option<String>,
2989 #[serde(skip_serializing_if = "Option::is_none")]
2991 pub warning: Option<String>,
2992}
2993
2994#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2996#[serde(rename_all = "camelCase")]
2997pub struct PermissionPromptRequestWrite {
2998 #[serde(skip_serializing_if = "Option::is_none")]
3007 pub auto_approval: Option<PermissionAutoApproval>,
3008 pub can_offer_session_approval: bool,
3010 pub diff: String,
3012 pub file_name: String,
3014 pub intention: String,
3016 pub kind: PermissionPromptRequestWriteKind,
3018 #[serde(skip_serializing_if = "Option::is_none")]
3020 pub new_file_contents: Option<String>,
3021 #[serde(skip_serializing_if = "Option::is_none")]
3023 pub tool_call_id: Option<String>,
3024}
3025
3026#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3028#[serde(rename_all = "camelCase")]
3029pub struct PermissionPromptRequestRead {
3030 #[serde(skip_serializing_if = "Option::is_none")]
3039 pub auto_approval: Option<PermissionAutoApproval>,
3040 pub intention: String,
3042 pub kind: PermissionPromptRequestReadKind,
3044 pub path: String,
3046 #[serde(skip_serializing_if = "Option::is_none")]
3048 pub tool_call_id: Option<String>,
3049}
3050
3051#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3053#[serde(rename_all = "camelCase")]
3054pub struct PermissionPromptRequestMcp {
3055 #[serde(skip_serializing_if = "Option::is_none")]
3057 pub args: Option<serde_json::Value>,
3058 #[serde(skip_serializing_if = "Option::is_none")]
3067 pub auto_approval: Option<PermissionAutoApproval>,
3068 pub kind: PermissionPromptRequestMcpKind,
3070 pub server_name: String,
3072 #[serde(skip_serializing_if = "Option::is_none")]
3074 pub tool_call_id: Option<String>,
3075 pub tool_name: String,
3077 pub tool_title: String,
3079}
3080
3081#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3083#[serde(rename_all = "camelCase")]
3084pub struct PermissionPromptRequestUrl {
3085 #[serde(skip_serializing_if = "Option::is_none")]
3094 pub auto_approval: Option<PermissionAutoApproval>,
3095 pub intention: String,
3097 pub kind: PermissionPromptRequestUrlKind,
3099 #[serde(skip_serializing_if = "Option::is_none")]
3101 pub request_sandbox_bypass: Option<bool>,
3102 #[serde(skip_serializing_if = "Option::is_none")]
3104 pub request_sandbox_bypass_reason: Option<String>,
3105 #[serde(skip_serializing_if = "Option::is_none")]
3107 pub tool_call_id: Option<String>,
3108 pub url: String,
3110}
3111
3112#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3114#[serde(rename_all = "camelCase")]
3115pub struct PermissionPromptRequestMemory {
3116 #[serde(skip_serializing_if = "Option::is_none")]
3118 pub action: Option<PermissionRequestMemoryAction>,
3119 #[serde(skip_serializing_if = "Option::is_none")]
3128 pub auto_approval: Option<PermissionAutoApproval>,
3129 #[serde(skip_serializing_if = "Option::is_none")]
3131 pub citations: Option<String>,
3132 #[serde(skip_serializing_if = "Option::is_none")]
3134 pub direction: Option<PermissionRequestMemoryDirection>,
3135 pub fact: String,
3137 pub kind: PermissionPromptRequestMemoryKind,
3139 #[serde(skip_serializing_if = "Option::is_none")]
3141 pub reason: Option<String>,
3142 #[serde(skip_serializing_if = "Option::is_none")]
3144 pub subject: Option<String>,
3145 #[serde(skip_serializing_if = "Option::is_none")]
3147 pub tool_call_id: Option<String>,
3148}
3149
3150#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3152#[serde(rename_all = "camelCase")]
3153pub struct PermissionPromptRequestCustomTool {
3154 #[serde(skip_serializing_if = "Option::is_none")]
3156 pub args: Option<serde_json::Value>,
3157 #[serde(skip_serializing_if = "Option::is_none")]
3166 pub auto_approval: Option<PermissionAutoApproval>,
3167 pub kind: PermissionPromptRequestCustomToolKind,
3169 #[serde(skip_serializing_if = "Option::is_none")]
3171 pub tool_call_id: Option<String>,
3172 pub tool_description: String,
3174 pub tool_name: String,
3176}
3177
3178#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3180#[serde(rename_all = "camelCase")]
3181pub struct PermissionPromptRequestPath {
3182 pub access_kind: PermissionPromptRequestPathAccessKind,
3184 #[serde(skip_serializing_if = "Option::is_none")]
3193 pub auto_approval: Option<PermissionAutoApproval>,
3194 pub kind: PermissionPromptRequestPathKind,
3196 pub paths: Vec<String>,
3198 #[serde(skip_serializing_if = "Option::is_none")]
3200 pub tool_call_id: Option<String>,
3201}
3202
3203#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3205#[serde(rename_all = "camelCase")]
3206pub struct PermissionPromptRequestHook {
3207 #[serde(skip_serializing_if = "Option::is_none")]
3216 pub auto_approval: Option<PermissionAutoApproval>,
3217 #[serde(skip_serializing_if = "Option::is_none")]
3219 pub hook_message: Option<String>,
3220 pub kind: PermissionPromptRequestHookKind,
3222 #[serde(skip_serializing_if = "Option::is_none")]
3224 pub tool_args: Option<serde_json::Value>,
3225 #[serde(skip_serializing_if = "Option::is_none")]
3227 pub tool_call_id: Option<String>,
3228 pub tool_name: String,
3230}
3231
3232#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3234#[serde(rename_all = "camelCase")]
3235pub struct PermissionPromptRequestExtensionManagement {
3236 #[serde(skip_serializing_if = "Option::is_none")]
3245 pub auto_approval: Option<PermissionAutoApproval>,
3246 #[serde(skip_serializing_if = "Option::is_none")]
3248 pub extension_name: Option<String>,
3249 pub kind: PermissionPromptRequestExtensionManagementKind,
3251 pub operation: String,
3253 #[serde(skip_serializing_if = "Option::is_none")]
3255 pub tool_call_id: Option<String>,
3256}
3257
3258#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3260#[serde(rename_all = "camelCase")]
3261pub struct PermissionPromptRequestExtensionPermissionAccess {
3262 #[serde(skip_serializing_if = "Option::is_none")]
3271 pub auto_approval: Option<PermissionAutoApproval>,
3272 pub capabilities: Vec<String>,
3274 pub extension_name: String,
3276 pub kind: PermissionPromptRequestExtensionPermissionAccessKind,
3278 #[serde(skip_serializing_if = "Option::is_none")]
3280 pub tool_call_id: Option<String>,
3281}
3282
3283#[derive(Debug, Clone, Serialize, Deserialize)]
3285#[serde(rename_all = "camelCase")]
3286pub struct PermissionRequestedData {
3287 pub permission_request: PermissionRequest,
3289 #[serde(skip_serializing_if = "Option::is_none")]
3291 pub prompt_request: Option<PermissionPromptRequest>,
3292 pub request_id: RequestId,
3294 #[serde(skip_serializing_if = "Option::is_none")]
3296 pub resolved_by_hook: Option<bool>,
3297}
3298
3299#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3301#[serde(rename_all = "camelCase")]
3302pub struct PermissionApproved {
3303 pub kind: PermissionApprovedKind,
3305}
3306
3307#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3309#[serde(rename_all = "camelCase")]
3310pub struct UserToolSessionApprovalCommands {
3311 pub command_identifiers: Vec<String>,
3313 pub kind: UserToolSessionApprovalCommandsKind,
3315}
3316
3317#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3319#[serde(rename_all = "camelCase")]
3320pub struct UserToolSessionApprovalRead {
3321 pub kind: UserToolSessionApprovalReadKind,
3323}
3324
3325#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3327#[serde(rename_all = "camelCase")]
3328pub struct UserToolSessionApprovalWrite {
3329 pub kind: UserToolSessionApprovalWriteKind,
3331}
3332
3333#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3335#[serde(rename_all = "camelCase")]
3336pub struct UserToolSessionApprovalMcp {
3337 pub kind: UserToolSessionApprovalMcpKind,
3339 pub server_name: String,
3341 pub tool_name: Option<String>,
3343}
3344
3345#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3347#[serde(rename_all = "camelCase")]
3348pub struct UserToolSessionApprovalMemory {
3349 pub kind: UserToolSessionApprovalMemoryKind,
3351}
3352
3353#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3355#[serde(rename_all = "camelCase")]
3356pub struct UserToolSessionApprovalCustomTool {
3357 pub kind: UserToolSessionApprovalCustomToolKind,
3359 pub tool_name: String,
3361}
3362
3363#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3365#[serde(rename_all = "camelCase")]
3366pub struct UserToolSessionApprovalExtensionManagement {
3367 pub kind: UserToolSessionApprovalExtensionManagementKind,
3369 #[serde(skip_serializing_if = "Option::is_none")]
3371 pub operation: Option<String>,
3372}
3373
3374#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3376#[serde(rename_all = "camelCase")]
3377pub struct UserToolSessionApprovalExtensionPermissionAccess {
3378 pub extension_name: String,
3380 pub kind: UserToolSessionApprovalExtensionPermissionAccessKind,
3382}
3383
3384#[derive(Debug, Clone, Serialize, Deserialize)]
3386#[serde(rename_all = "camelCase")]
3387pub struct PermissionApprovedForSession {
3388 pub approval: UserToolSessionApproval,
3390 pub kind: PermissionApprovedForSessionKind,
3392}
3393
3394#[derive(Debug, Clone, Serialize, Deserialize)]
3396#[serde(rename_all = "camelCase")]
3397pub struct PermissionApprovedForLocation {
3398 pub approval: UserToolSessionApproval,
3400 pub kind: PermissionApprovedForLocationKind,
3402 pub location_key: String,
3404}
3405
3406#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3408#[serde(rename_all = "camelCase")]
3409pub struct PermissionCancelled {
3410 pub kind: PermissionCancelledKind,
3412 #[serde(skip_serializing_if = "Option::is_none")]
3414 pub reason: Option<String>,
3415}
3416
3417#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3419#[serde(rename_all = "camelCase")]
3420pub struct PermissionRule {
3421 pub argument: Option<String>,
3423 pub kind: String,
3425}
3426
3427#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3429#[serde(rename_all = "camelCase")]
3430pub struct PermissionDeniedByRules {
3431 pub kind: PermissionDeniedByRulesKind,
3433 pub rules: Vec<PermissionRule>,
3435}
3436
3437#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3439#[serde(rename_all = "camelCase")]
3440pub struct PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser {
3441 pub kind: PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUserKind,
3443}
3444
3445#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3447#[serde(rename_all = "camelCase")]
3448pub struct PermissionDeniedInteractivelyByUser {
3449 #[serde(skip_serializing_if = "Option::is_none")]
3451 pub feedback: Option<String>,
3452 #[serde(skip_serializing_if = "Option::is_none")]
3454 pub force_reject: Option<bool>,
3455 pub kind: PermissionDeniedInteractivelyByUserKind,
3457}
3458
3459#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3461#[serde(rename_all = "camelCase")]
3462pub struct PermissionDeniedByContentExclusionPolicy {
3463 pub kind: PermissionDeniedByContentExclusionPolicyKind,
3465 pub message: String,
3467 pub path: String,
3469}
3470
3471#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3473#[serde(rename_all = "camelCase")]
3474pub struct PermissionDeniedByPermissionRequestHook {
3475 #[serde(skip_serializing_if = "Option::is_none")]
3477 pub interrupt: Option<bool>,
3478 pub kind: PermissionDeniedByPermissionRequestHookKind,
3480 #[serde(skip_serializing_if = "Option::is_none")]
3482 pub message: Option<String>,
3483}
3484
3485#[derive(Debug, Clone, Serialize, Deserialize)]
3487#[serde(rename_all = "camelCase")]
3488pub struct PermissionCompletedData {
3489 pub request_id: RequestId,
3491 pub result: PermissionResult,
3493 #[serde(skip_serializing_if = "Option::is_none")]
3495 pub tool_call_id: Option<String>,
3496}
3497
3498#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3500#[serde(rename_all = "camelCase")]
3501pub struct UserInputRequestedData {
3502 #[serde(skip_serializing_if = "Option::is_none")]
3504 pub allow_freeform: Option<bool>,
3505 #[serde(skip_serializing_if = "Option::is_none")]
3507 pub choices: Option<Vec<String>>,
3508 pub question: String,
3510 pub request_id: RequestId,
3512 #[serde(skip_serializing_if = "Option::is_none")]
3514 pub tool_call_id: Option<String>,
3515}
3516
3517#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3519#[serde(rename_all = "camelCase")]
3520pub struct UserInputCompletedData {
3521 #[serde(skip_serializing_if = "Option::is_none")]
3523 pub answer: Option<String>,
3524 pub request_id: RequestId,
3526 #[serde(skip_serializing_if = "Option::is_none")]
3528 pub was_freeform: Option<bool>,
3529}
3530
3531#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3533#[serde(rename_all = "camelCase")]
3534pub struct ElicitationRequestedSchema {
3535 pub properties: HashMap<String, serde_json::Value>,
3537 #[serde(skip_serializing_if = "Option::is_none")]
3539 pub required: Option<Vec<String>>,
3540 pub r#type: ElicitationRequestedSchemaType,
3542}
3543
3544#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3546#[serde(rename_all = "camelCase")]
3547pub struct ElicitationRequestedData {
3548 #[serde(skip_serializing_if = "Option::is_none")]
3550 pub elicitation_source: Option<String>,
3551 pub message: String,
3553 #[serde(skip_serializing_if = "Option::is_none")]
3555 pub mode: Option<ElicitationRequestedMode>,
3556 #[serde(skip_serializing_if = "Option::is_none")]
3558 pub requested_schema: Option<ElicitationRequestedSchema>,
3559 pub request_id: RequestId,
3561 #[serde(skip_serializing_if = "Option::is_none")]
3563 pub tool_call_id: Option<String>,
3564 #[serde(skip_serializing_if = "Option::is_none")]
3566 pub url: Option<String>,
3567}
3568
3569#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3571#[serde(rename_all = "camelCase")]
3572pub struct ElicitationCompletedData {
3573 #[serde(skip_serializing_if = "Option::is_none")]
3575 pub action: Option<ElicitationCompletedAction>,
3576 #[serde(skip_serializing_if = "Option::is_none")]
3578 pub content: Option<HashMap<String, serde_json::Value>>,
3579 pub request_id: RequestId,
3581}
3582
3583#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3585#[serde(rename_all = "camelCase")]
3586pub struct SamplingRequestedData {
3587 pub mcp_request_id: serde_json::Value,
3589 pub request_id: RequestId,
3591 pub server_name: String,
3593}
3594
3595#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3597#[serde(rename_all = "camelCase")]
3598pub struct SamplingCompletedData {
3599 pub request_id: RequestId,
3601}
3602
3603#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3605#[serde(rename_all = "camelCase")]
3606pub struct McpOauthRequiredStaticClientConfig {
3607 pub client_id: String,
3609 #[serde(skip_serializing_if = "Option::is_none")]
3611 pub client_secret: Option<String>,
3612 #[serde(skip_serializing_if = "Option::is_none")]
3614 pub grant_type: Option<McpOauthRequiredStaticClientConfigGrantType>,
3615 #[serde(skip_serializing_if = "Option::is_none")]
3617 pub public_client: Option<bool>,
3618}
3619
3620#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3622#[serde(rename_all = "camelCase")]
3623pub struct McpOauthWWWAuthenticateParams {
3624 #[serde(skip_serializing_if = "Option::is_none")]
3626 pub error: Option<String>,
3627 #[serde(skip_serializing_if = "Option::is_none")]
3629 pub resource_metadata_url: Option<String>,
3630 #[serde(skip_serializing_if = "Option::is_none")]
3632 pub scope: Option<String>,
3633}
3634
3635#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3637#[serde(rename_all = "camelCase")]
3638pub struct McpOauthRequiredData {
3639 pub reason: McpOauthRequestReason,
3641 pub request_id: RequestId,
3643 #[serde(skip_serializing_if = "Option::is_none")]
3645 pub resource_metadata: Option<String>,
3646 pub server_name: String,
3648 pub server_url: String,
3650 #[serde(skip_serializing_if = "Option::is_none")]
3652 pub static_client_config: Option<McpOauthRequiredStaticClientConfig>,
3653 #[serde(skip_serializing_if = "Option::is_none")]
3655 pub www_authenticate_params: Option<McpOauthWWWAuthenticateParams>,
3656}
3657
3658#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3660#[serde(rename_all = "camelCase")]
3661pub struct McpOauthCompletedData {
3662 pub outcome: McpOauthCompletionOutcome,
3664 pub request_id: RequestId,
3666}
3667
3668#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3670#[serde(rename_all = "camelCase")]
3671pub struct McpHeadersRefreshRequiredData {
3672 pub reason: McpHeadersRefreshRequiredReason,
3674 pub request_id: RequestId,
3676 pub server_name: String,
3678 pub server_url: String,
3680}
3681
3682#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3684#[serde(rename_all = "camelCase")]
3685pub struct McpHeadersRefreshCompletedData {
3686 pub outcome: McpHeadersRefreshCompletedOutcome,
3688 pub request_id: RequestId,
3690}
3691
3692#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3694#[serde(rename_all = "camelCase")]
3695pub struct SessionCustomNotificationData {
3696 pub name: String,
3698 pub payload: serde_json::Value,
3700 pub source: String,
3702 #[serde(skip_serializing_if = "Option::is_none")]
3704 pub subject: Option<HashMap<String, String>>,
3705 #[serde(skip_serializing_if = "Option::is_none")]
3707 pub version: Option<i64>,
3708}
3709
3710#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3712#[serde(rename_all = "camelCase")]
3713pub struct ExternalToolRequestedData {
3714 #[serde(skip_serializing_if = "Option::is_none")]
3716 pub arguments: Option<serde_json::Value>,
3717 pub request_id: RequestId,
3719 pub session_id: SessionId,
3721 pub tool_call_id: String,
3723 pub tool_name: String,
3725 #[serde(skip_serializing_if = "Option::is_none")]
3727 pub traceparent: Option<String>,
3728 #[serde(skip_serializing_if = "Option::is_none")]
3730 pub tracestate: Option<String>,
3731 #[serde(skip_serializing_if = "Option::is_none")]
3733 pub working_directory: Option<String>,
3734}
3735
3736#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3738#[serde(rename_all = "camelCase")]
3739pub struct ExternalToolCompletedData {
3740 pub request_id: RequestId,
3742}
3743
3744#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3746#[serde(rename_all = "camelCase")]
3747pub struct CommandQueuedData {
3748 pub command: String,
3750 pub request_id: RequestId,
3752}
3753
3754#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3756#[serde(rename_all = "camelCase")]
3757pub struct CommandExecuteData {
3758 pub args: String,
3760 pub command: String,
3762 pub command_name: String,
3764 pub request_id: RequestId,
3766}
3767
3768#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3770#[serde(rename_all = "camelCase")]
3771pub struct CommandCompletedData {
3772 pub request_id: RequestId,
3774}
3775
3776#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3778#[serde(rename_all = "camelCase")]
3779pub struct AutoModeSwitchRequestedData {
3780 #[serde(skip_serializing_if = "Option::is_none")]
3782 pub error_code: Option<String>,
3783 pub request_id: RequestId,
3785 #[serde(skip_serializing_if = "Option::is_none")]
3787 pub retry_after_seconds: Option<i64>,
3788}
3789
3790#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3792#[serde(rename_all = "camelCase")]
3793pub struct AutoModeSwitchCompletedData {
3794 pub request_id: RequestId,
3796 pub response: AutoModeSwitchResponse,
3798}
3799
3800#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3802#[serde(rename_all = "camelCase")]
3803pub struct SessionLimitsExhaustedRequestedData {
3804 pub max_ai_credits: f64,
3806 pub request_id: RequestId,
3808 pub used_ai_credits: f64,
3810}
3811
3812#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3814#[serde(rename_all = "camelCase")]
3815pub struct SessionLimitsExhaustedResponse {
3816 pub action: SessionLimitsExhaustedResponseAction,
3818 #[serde(skip_serializing_if = "Option::is_none")]
3820 pub additional_ai_credits: Option<f64>,
3821 #[serde(skip_serializing_if = "Option::is_none")]
3823 pub max_ai_credits: Option<f64>,
3824}
3825
3826#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3828#[serde(rename_all = "camelCase")]
3829pub struct SessionLimitsExhaustedCompletedData {
3830 pub request_id: RequestId,
3832 pub response: SessionLimitsExhaustedResponse,
3834}
3835
3836#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3838#[serde(rename_all = "camelCase")]
3839pub struct CommandsChangedCommand {
3840 #[serde(skip_serializing_if = "Option::is_none")]
3842 pub description: Option<String>,
3843 pub name: String,
3845}
3846
3847#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3849#[serde(rename_all = "camelCase")]
3850pub struct CommandsChangedData {
3851 pub commands: Vec<CommandsChangedCommand>,
3853}
3854
3855#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3857#[serde(rename_all = "camelCase")]
3858pub struct CapabilitiesChangedUI {
3859 #[serde(skip_serializing_if = "Option::is_none")]
3861 pub canvases: Option<bool>,
3862 #[serde(skip_serializing_if = "Option::is_none")]
3864 pub elicitation: Option<bool>,
3865 #[serde(skip_serializing_if = "Option::is_none")]
3867 pub mcp_apps: Option<bool>,
3868}
3869
3870#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3872#[serde(rename_all = "camelCase")]
3873pub struct CapabilitiesChangedData {
3874 #[serde(skip_serializing_if = "Option::is_none")]
3876 pub ui: Option<CapabilitiesChangedUI>,
3877}
3878
3879#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3881#[serde(rename_all = "camelCase")]
3882pub struct ExitPlanModeRequestedData {
3883 pub actions: Vec<ExitPlanModeAction>,
3885 pub plan_content: String,
3887 pub recommended_action: ExitPlanModeAction,
3889 pub request_id: RequestId,
3891 pub summary: String,
3893}
3894
3895#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3897#[serde(rename_all = "camelCase")]
3898pub struct ExitPlanModeCompletedData {
3899 #[serde(skip_serializing_if = "Option::is_none")]
3901 pub approved: Option<bool>,
3902 #[serde(skip_serializing_if = "Option::is_none")]
3904 pub auto_approve_edits: Option<bool>,
3905 #[serde(skip_serializing_if = "Option::is_none")]
3907 pub feedback: Option<String>,
3908 pub request_id: RequestId,
3910 #[serde(skip_serializing_if = "Option::is_none")]
3912 pub selected_action: Option<ExitPlanModeAction>,
3913}
3914
3915#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3917#[serde(rename_all = "camelCase")]
3918pub struct SessionToolsUpdatedData {
3919 pub model: String,
3921}
3922
3923#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3925#[serde(rename_all = "camelCase")]
3926pub struct SessionBackgroundTasksChangedData {}
3927
3928#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3930#[serde(rename_all = "camelCase")]
3931pub struct SkillsLoadedSkill {
3932 #[serde(skip_serializing_if = "Option::is_none")]
3934 pub argument_hint: Option<String>,
3935 pub description: String,
3937 pub enabled: bool,
3939 pub name: String,
3941 #[serde(skip_serializing_if = "Option::is_none")]
3943 pub path: Option<String>,
3944 pub source: SkillSource,
3946 pub user_invocable: bool,
3948}
3949
3950#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3952#[serde(rename_all = "camelCase")]
3953pub struct SessionSkillsLoadedData {
3954 pub skills: Vec<SkillsLoadedSkill>,
3956}
3957
3958#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3960#[serde(rename_all = "camelCase")]
3961pub struct CustomAgentsUpdatedAgent {
3962 pub description: String,
3964 pub display_name: String,
3966 pub id: String,
3968 #[serde(skip_serializing_if = "Option::is_none")]
3970 pub model: Option<String>,
3971 pub name: String,
3973 pub source: String,
3975 pub tools: Option<Vec<String>>,
3977 pub user_invocable: bool,
3979}
3980
3981#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3983#[serde(rename_all = "camelCase")]
3984pub struct SessionCustomAgentsUpdatedData {
3985 pub agents: Vec<CustomAgentsUpdatedAgent>,
3987 pub errors: Vec<String>,
3989 pub warnings: Vec<String>,
3991}
3992
3993#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3995#[serde(rename_all = "camelCase")]
3996pub struct McpServersLoadedServer {
3997 #[serde(skip_serializing_if = "Option::is_none")]
3999 pub error: Option<String>,
4000 pub name: String,
4002 #[serde(skip_serializing_if = "Option::is_none")]
4004 pub plugin_name: Option<String>,
4005 #[serde(skip_serializing_if = "Option::is_none")]
4007 pub plugin_version: Option<String>,
4008 #[serde(skip_serializing_if = "Option::is_none")]
4010 pub source: Option<McpServerSource>,
4011 pub status: McpServerStatus,
4013 #[serde(skip_serializing_if = "Option::is_none")]
4015 pub transport: Option<McpServerTransport>,
4016}
4017
4018#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4020#[serde(rename_all = "camelCase")]
4021pub struct SessionMcpServersLoadedData {
4022 pub servers: Vec<McpServersLoadedServer>,
4024}
4025
4026#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4028#[serde(rename_all = "camelCase")]
4029pub struct SessionMcpServerStatusChangedData {
4030 #[serde(skip_serializing_if = "Option::is_none")]
4032 pub error: Option<String>,
4033 pub server_name: String,
4035 pub status: McpServerStatus,
4037}
4038
4039#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4041#[serde(rename_all = "camelCase")]
4042pub struct ExtensionsLoadedExtension {
4043 pub id: String,
4045 pub name: String,
4047 pub source: ExtensionsLoadedExtensionSource,
4049 pub status: ExtensionsLoadedExtensionStatus,
4051}
4052
4053#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4055#[serde(rename_all = "camelCase")]
4056pub struct SessionExtensionsLoadedData {
4057 pub extensions: Vec<ExtensionsLoadedExtension>,
4059}
4060
4061#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4070#[serde(rename_all = "camelCase")]
4071pub struct SessionCanvasOpenedData {
4072 pub canvas_id: String,
4074 pub extension_id: String,
4076 #[serde(skip_serializing_if = "Option::is_none")]
4078 pub extension_name: Option<String>,
4079 #[serde(skip_serializing_if = "Option::is_none")]
4081 pub input: Option<serde_json::Value>,
4082 pub instance_id: String,
4084 #[serde(skip_serializing_if = "Option::is_none")]
4086 pub status: Option<String>,
4087 #[serde(skip_serializing_if = "Option::is_none")]
4089 pub title: Option<String>,
4090 #[serde(skip_serializing_if = "Option::is_none")]
4092 pub url: Option<String>,
4093}
4094
4095#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4104#[serde(rename_all = "camelCase")]
4105pub struct CanvasRegistryChangedCanvasAction {
4106 #[serde(skip_serializing_if = "Option::is_none")]
4108 pub description: Option<String>,
4109 #[serde(skip_serializing_if = "Option::is_none")]
4111 pub input_schema: Option<serde_json::Value>,
4112 pub name: String,
4114}
4115
4116#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4125#[serde(rename_all = "camelCase")]
4126pub struct CanvasRegistryChangedCanvas {
4127 #[serde(skip_serializing_if = "Option::is_none")]
4129 pub actions: Option<Vec<CanvasRegistryChangedCanvasAction>>,
4130 pub canvas_id: String,
4132 pub description: String,
4134 pub display_name: String,
4136 pub extension_id: String,
4138 #[serde(skip_serializing_if = "Option::is_none")]
4140 pub extension_name: Option<String>,
4141 #[serde(skip_serializing_if = "Option::is_none")]
4143 pub input_schema: Option<serde_json::Value>,
4144}
4145
4146#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4155#[serde(rename_all = "camelCase")]
4156pub struct SessionCanvasRegistryChangedData {
4157 pub canvases: Vec<CanvasRegistryChangedCanvas>,
4159}
4160
4161#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4170#[serde(rename_all = "camelCase")]
4171pub struct SessionCanvasClosedData {
4172 pub canvas_id: String,
4174 pub extension_id: String,
4176 pub instance_id: String,
4178}
4179
4180#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4189#[serde(rename_all = "camelCase")]
4190pub struct SessionCanvasUnavailableData {
4191 pub canvas_id: String,
4193 pub extension_id: String,
4195 pub instance_id: String,
4197}
4198
4199#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4208#[serde(rename_all = "camelCase")]
4209pub struct SessionCanvasRecordedData {
4210 pub canvas_id: String,
4212 pub extension_id: String,
4214 #[serde(skip_serializing_if = "Option::is_none")]
4216 pub input: Option<serde_json::Value>,
4217 pub instance_id: String,
4219 #[serde(skip_serializing_if = "Option::is_none")]
4221 pub title: Option<String>,
4222}
4223
4224#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4233#[serde(rename_all = "camelCase")]
4234pub struct SessionCanvasRemovedData {
4235 pub canvas_id: String,
4237 pub extension_id: String,
4239 pub instance_id: String,
4241}
4242
4243#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4245#[serde(rename_all = "camelCase")]
4246pub struct SessionExtensionsAttachmentsPushedData {
4247 pub attachments: Vec<serde_json::Value>,
4249}
4250
4251#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4253#[serde(rename_all = "camelCase")]
4254pub struct McpAppToolCallCompleteError {
4255 pub message: String,
4257}
4258
4259#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4261#[serde(rename_all = "camelCase")]
4262pub struct McpAppToolCallCompleteToolMetaUI {
4263 #[serde(skip_serializing_if = "Option::is_none")]
4265 pub resource_uri: Option<String>,
4266 #[serde(skip_serializing_if = "Option::is_none")]
4268 pub visibility: Option<Vec<String>>,
4269}
4270
4271#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4273#[serde(rename_all = "camelCase")]
4274pub struct McpAppToolCallCompleteToolMeta {
4275 #[serde(skip_serializing_if = "Option::is_none")]
4277 pub ui: Option<McpAppToolCallCompleteToolMetaUI>,
4278}
4279
4280#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4282#[serde(rename_all = "camelCase")]
4283pub struct McpAppToolCallCompleteData {
4284 #[serde(skip_serializing_if = "Option::is_none")]
4286 pub arguments: Option<HashMap<String, serde_json::Value>>,
4287 pub duration_ms: f64,
4289 #[serde(skip_serializing_if = "Option::is_none")]
4291 pub error: Option<McpAppToolCallCompleteError>,
4292 #[serde(skip_serializing_if = "Option::is_none")]
4294 pub result: Option<HashMap<String, serde_json::Value>>,
4295 pub server_name: String,
4297 pub success: bool,
4299 #[serde(skip_serializing_if = "Option::is_none")]
4301 pub tool_meta: Option<McpAppToolCallCompleteToolMeta>,
4302 pub tool_name: String,
4304}
4305
4306#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4308pub enum WorkingDirectoryContextHostType {
4309 #[serde(rename = "github")]
4311 GitHub,
4312 #[serde(rename = "ado")]
4314 Ado,
4315 #[default]
4317 #[serde(other)]
4318 Unknown,
4319}
4320
4321#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4323pub enum ContextTier {
4324 #[serde(rename = "default")]
4326 Default,
4327 #[serde(rename = "long_context")]
4329 LongContext,
4330 #[default]
4332 #[serde(other)]
4333 Unknown,
4334}
4335
4336#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4338pub enum ReasoningSummary {
4339 #[serde(rename = "none")]
4341 None,
4342 #[serde(rename = "concise")]
4344 Concise,
4345 #[serde(rename = "detailed")]
4347 Detailed,
4348 #[default]
4350 #[serde(other)]
4351 Unknown,
4352}
4353
4354#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4356pub enum Verbosity {
4357 #[serde(rename = "low")]
4359 Low,
4360 #[serde(rename = "medium")]
4362 Medium,
4363 #[serde(rename = "high")]
4365 High,
4366 #[default]
4368 #[serde(other)]
4369 Unknown,
4370}
4371
4372#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4374pub enum AutopilotObjectiveChangedOperation {
4375 #[serde(rename = "create")]
4377 Create,
4378 #[serde(rename = "update")]
4380 Update,
4381 #[serde(rename = "delete")]
4383 Delete,
4384 #[default]
4386 #[serde(other)]
4387 Unknown,
4388}
4389
4390#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4392pub enum AutopilotObjectiveChangedStatus {
4393 #[serde(rename = "active")]
4395 Active,
4396 #[serde(rename = "paused")]
4398 Paused,
4399 #[serde(rename = "cap_reached")]
4401 CapReached,
4402 #[serde(rename = "completed")]
4404 Completed,
4405 #[default]
4407 #[serde(other)]
4408 Unknown,
4409}
4410
4411#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4413pub enum SessionMode {
4414 #[serde(rename = "interactive")]
4416 Interactive,
4417 #[serde(rename = "plan")]
4419 Plan,
4420 #[serde(rename = "autopilot")]
4422 Autopilot,
4423 #[default]
4425 #[serde(other)]
4426 Unknown,
4427}
4428
4429#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4438pub enum PermissionAllowAllMode {
4439 #[serde(rename = "off")]
4441 Off,
4442 #[serde(rename = "on")]
4444 On,
4445 #[serde(rename = "auto")]
4447 Auto,
4448 #[default]
4450 #[serde(other)]
4451 Unknown,
4452}
4453
4454#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4456pub enum PlanChangedOperation {
4457 #[serde(rename = "create")]
4459 Create,
4460 #[serde(rename = "update")]
4462 Update,
4463 #[serde(rename = "delete")]
4465 Delete,
4466 #[default]
4468 #[serde(other)]
4469 Unknown,
4470}
4471
4472#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4474pub enum WorkspaceFileChangedOperation {
4475 #[serde(rename = "create")]
4477 Create,
4478 #[serde(rename = "update")]
4480 Update,
4481 #[default]
4483 #[serde(other)]
4484 Unknown,
4485}
4486
4487#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4489pub enum HandoffSourceType {
4490 #[serde(rename = "remote")]
4492 Remote,
4493 #[serde(rename = "local")]
4495 Local,
4496 #[default]
4498 #[serde(other)]
4499 Unknown,
4500}
4501
4502#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4504pub enum ShutdownType {
4505 #[serde(rename = "routine")]
4507 Routine,
4508 #[serde(rename = "error")]
4510 Error,
4511 #[default]
4513 #[serde(other)]
4514 Unknown,
4515}
4516
4517#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4519pub enum UserMessageAgentMode {
4520 #[serde(rename = "interactive")]
4522 Interactive,
4523 #[serde(rename = "plan")]
4525 Plan,
4526 #[serde(rename = "autopilot")]
4528 Autopilot,
4529 #[serde(rename = "shell")]
4531 Shell,
4532 #[default]
4534 #[serde(other)]
4535 Unknown,
4536}
4537
4538#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4540pub enum UserMessageDelivery {
4541 #[serde(rename = "idle")]
4543 Idle,
4544 #[serde(rename = "steering")]
4546 Steering,
4547 #[serde(rename = "queued")]
4549 Queued,
4550 #[default]
4552 #[serde(other)]
4553 Unknown,
4554}
4555
4556#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4558pub enum AssistantMessageToolRequestType {
4559 #[serde(rename = "function")]
4561 Function,
4562 #[serde(rename = "custom")]
4564 Custom,
4565 #[default]
4567 #[serde(other)]
4568 Unknown,
4569}
4570
4571#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4580pub enum CitationProvider {
4581 #[serde(rename = "anthropic")]
4583 Anthropic,
4584 #[serde(rename = "openai")]
4586 Openai,
4587 #[serde(rename = "client")]
4589 Client,
4590 #[default]
4592 #[serde(other)]
4593 Unknown,
4594}
4595
4596#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4598pub enum AssistantUsageApiEndpoint {
4599 #[serde(rename = "/chat/completions")]
4601 ChatCompletions,
4602 #[serde(rename = "/v1/messages")]
4604 V1Messages,
4605 #[serde(rename = "/responses")]
4607 Responses,
4608 #[serde(rename = "ws:/responses")]
4610 WsResponses,
4611 #[default]
4613 #[serde(other)]
4614 Unknown,
4615}
4616
4617#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4619pub enum ModelCallFailureBadRequestKind {
4620 #[serde(rename = "bodyless")]
4622 Bodyless,
4623 #[serde(rename = "structured_error")]
4625 StructuredError,
4626 #[default]
4628 #[serde(other)]
4629 Unknown,
4630}
4631
4632#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4634pub enum ModelCallFailureSource {
4635 #[serde(rename = "top_level")]
4637 TopLevel,
4638 #[serde(rename = "subagent")]
4640 Subagent,
4641 #[serde(rename = "mcp_sampling")]
4643 McpSampling,
4644 #[default]
4646 #[serde(other)]
4647 Unknown,
4648}
4649
4650#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4652pub enum AbortReason {
4653 #[serde(rename = "user_initiated")]
4655 UserInitiated,
4656 #[serde(rename = "remote_command")]
4658 RemoteCommand,
4659 #[serde(rename = "user_abort")]
4661 UserAbort,
4662 #[default]
4664 #[serde(other)]
4665 Unknown,
4666}
4667
4668#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4670pub enum ToolExecutionStartToolDescriptionMetaUIVisibility {
4671 #[serde(rename = "model")]
4673 Model,
4674 #[serde(rename = "app")]
4676 App,
4677 #[default]
4679 #[serde(other)]
4680 Unknown,
4681}
4682
4683#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4685pub enum ToolExecutionCompleteContentTextType {
4686 #[serde(rename = "text")]
4687 #[default]
4688 Text,
4689}
4690
4691#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4693pub enum ToolExecutionCompleteContentTerminalType {
4694 #[serde(rename = "terminal")]
4695 #[default]
4696 Terminal,
4697}
4698
4699#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4701pub enum ToolExecutionCompleteContentShellExitType {
4702 #[serde(rename = "shell_exit")]
4703 #[default]
4704 ShellExit,
4705}
4706
4707#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4709pub enum ToolExecutionCompleteContentImageType {
4710 #[serde(rename = "image")]
4711 #[default]
4712 Image,
4713}
4714
4715#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4717pub enum ToolExecutionCompleteContentAudioType {
4718 #[serde(rename = "audio")]
4719 #[default]
4720 Audio,
4721}
4722
4723#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4725pub enum ToolExecutionCompleteContentResourceLinkIconTheme {
4726 #[serde(rename = "light")]
4728 Light,
4729 #[serde(rename = "dark")]
4731 Dark,
4732 #[default]
4734 #[serde(other)]
4735 Unknown,
4736}
4737
4738#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4740pub enum ToolExecutionCompleteContentResourceLinkType {
4741 #[serde(rename = "resource_link")]
4742 #[default]
4743 ResourceLink,
4744}
4745
4746#[derive(Debug, Clone, Serialize, Deserialize)]
4748#[serde(untagged)]
4749pub enum ToolExecutionCompleteContentResourceDetails {
4750 EmbeddedTextResourceContents(EmbeddedTextResourceContents),
4751 EmbeddedBlobResourceContents(EmbeddedBlobResourceContents),
4752}
4753
4754#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4756pub enum ToolExecutionCompleteContentResourceType {
4757 #[serde(rename = "resource")]
4758 #[default]
4759 Resource,
4760}
4761
4762#[derive(Debug, Clone, Serialize, Deserialize)]
4764#[serde(untagged)]
4765pub enum ToolExecutionCompleteContent {
4766 Text(ToolExecutionCompleteContentText),
4767 Terminal(ToolExecutionCompleteContentTerminal),
4768 ShellExit(ToolExecutionCompleteContentShellExit),
4769 Image(ToolExecutionCompleteContentImage),
4770 Audio(ToolExecutionCompleteContentAudio),
4771 ResourceLink(ToolExecutionCompleteContentResourceLink),
4772 Resource(ToolExecutionCompleteContentResource),
4773}
4774
4775#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4777pub enum ToolExecutionCompleteToolDescriptionMetaUIVisibility {
4778 #[serde(rename = "model")]
4780 Model,
4781 #[serde(rename = "app")]
4783 App,
4784 #[default]
4786 #[serde(other)]
4787 Unknown,
4788}
4789
4790#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4792pub enum SkillInvokedTrigger {
4793 #[serde(rename = "user-invoked")]
4795 UserInvoked,
4796 #[serde(rename = "agent-invoked")]
4798 AgentInvoked,
4799 #[serde(rename = "context-load")]
4801 ContextLoad,
4802 #[default]
4804 #[serde(other)]
4805 Unknown,
4806}
4807
4808#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4810pub enum BinaryAssetType {
4811 #[serde(rename = "image")]
4813 Image,
4814 #[serde(rename = "resource")]
4816 Resource,
4817 #[default]
4819 #[serde(other)]
4820 Unknown,
4821}
4822
4823#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4825pub enum SystemMessageRole {
4826 #[serde(rename = "system")]
4828 System,
4829 #[serde(rename = "developer")]
4831 Developer,
4832 #[default]
4834 #[serde(other)]
4835 Unknown,
4836}
4837
4838#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4840pub enum PermissionRequestShellKind {
4841 #[serde(rename = "shell")]
4842 #[default]
4843 Shell,
4844}
4845
4846#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4848pub enum PermissionRequestWriteKind {
4849 #[serde(rename = "write")]
4850 #[default]
4851 Write,
4852}
4853
4854#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4856pub enum PermissionRequestReadKind {
4857 #[serde(rename = "read")]
4858 #[default]
4859 Read,
4860}
4861
4862#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4864pub enum PermissionRequestMcpKind {
4865 #[serde(rename = "mcp")]
4866 #[default]
4867 Mcp,
4868}
4869
4870#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4872pub enum PermissionRequestUrlKind {
4873 #[serde(rename = "url")]
4874 #[default]
4875 Url,
4876}
4877
4878#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4880pub enum PermissionRequestMemoryAction {
4881 #[serde(rename = "store")]
4883 Store,
4884 #[serde(rename = "vote")]
4886 Vote,
4887 #[default]
4889 #[serde(other)]
4890 Unknown,
4891}
4892
4893#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4895pub enum PermissionRequestMemoryDirection {
4896 #[serde(rename = "upvote")]
4898 Upvote,
4899 #[serde(rename = "downvote")]
4901 Downvote,
4902 #[default]
4904 #[serde(other)]
4905 Unknown,
4906}
4907
4908#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4910pub enum PermissionRequestMemoryKind {
4911 #[serde(rename = "memory")]
4912 #[default]
4913 Memory,
4914}
4915
4916#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4918pub enum PermissionRequestCustomToolKind {
4919 #[serde(rename = "custom-tool")]
4920 #[default]
4921 CustomTool,
4922}
4923
4924#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4926pub enum PermissionRequestHookKind {
4927 #[serde(rename = "hook")]
4928 #[default]
4929 Hook,
4930}
4931
4932#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4934pub enum PermissionRequestExtensionManagementKind {
4935 #[serde(rename = "extension-management")]
4936 #[default]
4937 ExtensionManagement,
4938}
4939
4940#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4942pub enum PermissionRequestExtensionPermissionAccessKind {
4943 #[serde(rename = "extension-permission-access")]
4944 #[default]
4945 ExtensionPermissionAccess,
4946}
4947
4948#[derive(Debug, Clone, Serialize, Deserialize)]
4950#[serde(untagged)]
4951pub enum PermissionRequest {
4952 Shell(PermissionRequestShell),
4953 Write(PermissionRequestWrite),
4954 Read(PermissionRequestRead),
4955 Mcp(PermissionRequestMcp),
4956 Url(PermissionRequestUrl),
4957 Memory(PermissionRequestMemory),
4958 CustomTool(PermissionRequestCustomTool),
4959 Hook(PermissionRequestHook),
4960 ExtensionManagement(PermissionRequestExtensionManagement),
4961 ExtensionPermissionAccess(PermissionRequestExtensionPermissionAccess),
4962}
4963
4964#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4973pub enum AutoApprovalRecommendation {
4974 #[serde(rename = "approve")]
4976 Approve,
4977 #[serde(rename = "requireApproval")]
4979 RequireApproval,
4980 #[serde(rename = "excluded")]
4982 Excluded,
4983 #[serde(rename = "error")]
4985 Error,
4986 #[default]
4988 #[serde(other)]
4989 Unknown,
4990}
4991
4992#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4994pub enum PermissionPromptRequestCommandsKind {
4995 #[serde(rename = "commands")]
4996 #[default]
4997 Commands,
4998}
4999
5000#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5002pub enum PermissionPromptRequestWriteKind {
5003 #[serde(rename = "write")]
5004 #[default]
5005 Write,
5006}
5007
5008#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5010pub enum PermissionPromptRequestReadKind {
5011 #[serde(rename = "read")]
5012 #[default]
5013 Read,
5014}
5015
5016#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5018pub enum PermissionPromptRequestMcpKind {
5019 #[serde(rename = "mcp")]
5020 #[default]
5021 Mcp,
5022}
5023
5024#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5026pub enum PermissionPromptRequestUrlKind {
5027 #[serde(rename = "url")]
5028 #[default]
5029 Url,
5030}
5031
5032#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5034pub enum PermissionPromptRequestMemoryKind {
5035 #[serde(rename = "memory")]
5036 #[default]
5037 Memory,
5038}
5039
5040#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5042pub enum PermissionPromptRequestCustomToolKind {
5043 #[serde(rename = "custom-tool")]
5044 #[default]
5045 CustomTool,
5046}
5047
5048#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5050pub enum PermissionPromptRequestPathAccessKind {
5051 #[serde(rename = "read")]
5053 Read,
5054 #[serde(rename = "shell")]
5056 Shell,
5057 #[serde(rename = "write")]
5059 Write,
5060 #[default]
5062 #[serde(other)]
5063 Unknown,
5064}
5065
5066#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5068pub enum PermissionPromptRequestPathKind {
5069 #[serde(rename = "path")]
5070 #[default]
5071 Path,
5072}
5073
5074#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5076pub enum PermissionPromptRequestHookKind {
5077 #[serde(rename = "hook")]
5078 #[default]
5079 Hook,
5080}
5081
5082#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5084pub enum PermissionPromptRequestExtensionManagementKind {
5085 #[serde(rename = "extension-management")]
5086 #[default]
5087 ExtensionManagement,
5088}
5089
5090#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5092pub enum PermissionPromptRequestExtensionPermissionAccessKind {
5093 #[serde(rename = "extension-permission-access")]
5094 #[default]
5095 ExtensionPermissionAccess,
5096}
5097
5098#[derive(Debug, Clone, Serialize, Deserialize)]
5100#[serde(untagged)]
5101pub enum PermissionPromptRequest {
5102 Commands(PermissionPromptRequestCommands),
5103 Write(PermissionPromptRequestWrite),
5104 Read(PermissionPromptRequestRead),
5105 Mcp(PermissionPromptRequestMcp),
5106 Url(PermissionPromptRequestUrl),
5107 Memory(PermissionPromptRequestMemory),
5108 CustomTool(PermissionPromptRequestCustomTool),
5109 Path(PermissionPromptRequestPath),
5110 Hook(PermissionPromptRequestHook),
5111 ExtensionManagement(PermissionPromptRequestExtensionManagement),
5112 ExtensionPermissionAccess(PermissionPromptRequestExtensionPermissionAccess),
5113}
5114
5115#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5117pub enum PermissionApprovedKind {
5118 #[serde(rename = "approved")]
5119 #[default]
5120 Approved,
5121}
5122
5123#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5125pub enum UserToolSessionApprovalCommandsKind {
5126 #[serde(rename = "commands")]
5127 #[default]
5128 Commands,
5129}
5130
5131#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5133pub enum UserToolSessionApprovalReadKind {
5134 #[serde(rename = "read")]
5135 #[default]
5136 Read,
5137}
5138
5139#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5141pub enum UserToolSessionApprovalWriteKind {
5142 #[serde(rename = "write")]
5143 #[default]
5144 Write,
5145}
5146
5147#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5149pub enum UserToolSessionApprovalMcpKind {
5150 #[serde(rename = "mcp")]
5151 #[default]
5152 Mcp,
5153}
5154
5155#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5157pub enum UserToolSessionApprovalMemoryKind {
5158 #[serde(rename = "memory")]
5159 #[default]
5160 Memory,
5161}
5162
5163#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5165pub enum UserToolSessionApprovalCustomToolKind {
5166 #[serde(rename = "custom-tool")]
5167 #[default]
5168 CustomTool,
5169}
5170
5171#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5173pub enum UserToolSessionApprovalExtensionManagementKind {
5174 #[serde(rename = "extension-management")]
5175 #[default]
5176 ExtensionManagement,
5177}
5178
5179#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5181pub enum UserToolSessionApprovalExtensionPermissionAccessKind {
5182 #[serde(rename = "extension-permission-access")]
5183 #[default]
5184 ExtensionPermissionAccess,
5185}
5186
5187#[derive(Debug, Clone, Serialize, Deserialize)]
5189#[serde(untagged)]
5190pub enum UserToolSessionApproval {
5191 Commands(UserToolSessionApprovalCommands),
5192 Read(UserToolSessionApprovalRead),
5193 Write(UserToolSessionApprovalWrite),
5194 Mcp(UserToolSessionApprovalMcp),
5195 Memory(UserToolSessionApprovalMemory),
5196 CustomTool(UserToolSessionApprovalCustomTool),
5197 ExtensionManagement(UserToolSessionApprovalExtensionManagement),
5198 ExtensionPermissionAccess(UserToolSessionApprovalExtensionPermissionAccess),
5199}
5200
5201#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5203pub enum PermissionApprovedForSessionKind {
5204 #[serde(rename = "approved-for-session")]
5205 #[default]
5206 ApprovedForSession,
5207}
5208
5209#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5211pub enum PermissionApprovedForLocationKind {
5212 #[serde(rename = "approved-for-location")]
5213 #[default]
5214 ApprovedForLocation,
5215}
5216
5217#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5219pub enum PermissionCancelledKind {
5220 #[serde(rename = "cancelled")]
5221 #[default]
5222 Cancelled,
5223}
5224
5225#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5227pub enum PermissionDeniedByRulesKind {
5228 #[serde(rename = "denied-by-rules")]
5229 #[default]
5230 DeniedByRules,
5231}
5232
5233#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5235pub enum PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUserKind {
5236 #[serde(rename = "denied-no-approval-rule-and-could-not-request-from-user")]
5237 #[default]
5238 DeniedNoApprovalRuleAndCouldNotRequestFromUser,
5239}
5240
5241#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5243pub enum PermissionDeniedInteractivelyByUserKind {
5244 #[serde(rename = "denied-interactively-by-user")]
5245 #[default]
5246 DeniedInteractivelyByUser,
5247}
5248
5249#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5251pub enum PermissionDeniedByContentExclusionPolicyKind {
5252 #[serde(rename = "denied-by-content-exclusion-policy")]
5253 #[default]
5254 DeniedByContentExclusionPolicy,
5255}
5256
5257#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5259pub enum PermissionDeniedByPermissionRequestHookKind {
5260 #[serde(rename = "denied-by-permission-request-hook")]
5261 #[default]
5262 DeniedByPermissionRequestHook,
5263}
5264
5265#[derive(Debug, Clone, Serialize, Deserialize)]
5267#[serde(untagged)]
5268pub enum PermissionResult {
5269 Approved(PermissionApproved),
5270 ApprovedForSession(PermissionApprovedForSession),
5271 ApprovedForLocation(PermissionApprovedForLocation),
5272 Cancelled(PermissionCancelled),
5273 DeniedByRules(PermissionDeniedByRules),
5274 DeniedNoApprovalRuleAndCouldNotRequestFromUser(
5275 PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser,
5276 ),
5277 DeniedInteractivelyByUser(PermissionDeniedInteractivelyByUser),
5278 DeniedByContentExclusionPolicy(PermissionDeniedByContentExclusionPolicy),
5279 DeniedByPermissionRequestHook(PermissionDeniedByPermissionRequestHook),
5280}
5281
5282#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5284pub enum ElicitationRequestedMode {
5285 #[serde(rename = "form")]
5287 Form,
5288 #[serde(rename = "url")]
5290 Url,
5291 #[default]
5293 #[serde(other)]
5294 Unknown,
5295}
5296
5297#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5299pub enum ElicitationRequestedSchemaType {
5300 #[serde(rename = "object")]
5301 #[default]
5302 Object,
5303}
5304
5305#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5307pub enum ElicitationCompletedAction {
5308 #[serde(rename = "accept")]
5310 Accept,
5311 #[serde(rename = "decline")]
5313 Decline,
5314 #[serde(rename = "cancel")]
5316 Cancel,
5317 #[default]
5319 #[serde(other)]
5320 Unknown,
5321}
5322
5323#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5325pub enum McpOauthRequestReason {
5326 #[serde(rename = "initial")]
5328 Initial,
5329 #[serde(rename = "refresh")]
5331 Refresh,
5332 #[serde(rename = "reauth")]
5334 Reauth,
5335 #[serde(rename = "upscope")]
5337 Upscope,
5338 #[default]
5340 #[serde(other)]
5341 Unknown,
5342}
5343
5344#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5346pub enum McpOauthRequiredStaticClientConfigGrantType {
5347 #[serde(rename = "client_credentials")]
5348 #[default]
5349 ClientCredentials,
5350}
5351
5352#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5354pub enum McpOauthCompletionOutcome {
5355 #[serde(rename = "token")]
5357 Token,
5358 #[serde(rename = "cancelled")]
5360 Cancelled,
5361 #[default]
5363 #[serde(other)]
5364 Unknown,
5365}
5366
5367#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5369pub enum McpHeadersRefreshRequiredReason {
5370 #[serde(rename = "startup")]
5372 Startup,
5373 #[serde(rename = "ttl-expired")]
5375 TtlExpired,
5376 #[serde(rename = "auth-failed")]
5378 AuthFailed,
5379 #[default]
5381 #[serde(other)]
5382 Unknown,
5383}
5384
5385#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5387pub enum McpHeadersRefreshCompletedOutcome {
5388 #[serde(rename = "headers")]
5390 Headers,
5391 #[serde(rename = "none")]
5393 None,
5394 #[serde(rename = "timeout")]
5396 Timeout,
5397 #[default]
5399 #[serde(other)]
5400 Unknown,
5401}
5402
5403#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5405pub enum AutoModeSwitchResponse {
5406 #[serde(rename = "yes")]
5408 Yes,
5409 #[serde(rename = "yes_always")]
5411 YesAlways,
5412 #[serde(rename = "no")]
5414 No,
5415 #[default]
5417 #[serde(other)]
5418 Unknown,
5419}
5420
5421#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5423pub enum SessionLimitsExhaustedResponseAction {
5424 #[serde(rename = "add")]
5426 Add,
5427 #[serde(rename = "set")]
5429 Set,
5430 #[serde(rename = "unset")]
5432 Unset,
5433 #[serde(rename = "cancel")]
5435 Cancel,
5436 #[default]
5438 #[serde(other)]
5439 Unknown,
5440}
5441
5442#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5444pub enum ExitPlanModeAction {
5445 #[serde(rename = "exit_only")]
5447 ExitOnly,
5448 #[serde(rename = "interactive")]
5450 Interactive,
5451 #[serde(rename = "autopilot")]
5453 Autopilot,
5454 #[serde(rename = "autopilot_fleet")]
5456 AutopilotFleet,
5457 #[default]
5459 #[serde(other)]
5460 Unknown,
5461}
5462
5463#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5465pub enum SkillSource {
5466 #[serde(rename = "project")]
5468 Project,
5469 #[serde(rename = "inherited")]
5471 Inherited,
5472 #[serde(rename = "personal-copilot")]
5474 PersonalCopilot,
5475 #[serde(rename = "personal-agents")]
5477 PersonalAgents,
5478 #[serde(rename = "plugin")]
5480 Plugin,
5481 #[serde(rename = "custom")]
5483 Custom,
5484 #[serde(rename = "builtin")]
5486 Builtin,
5487 #[default]
5489 #[serde(other)]
5490 Unknown,
5491}
5492
5493#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5495pub enum McpServerSource {
5496 #[serde(rename = "user")]
5498 User,
5499 #[serde(rename = "workspace")]
5501 Workspace,
5502 #[serde(rename = "plugin")]
5504 Plugin,
5505 #[serde(rename = "builtin")]
5507 Builtin,
5508 #[default]
5510 #[serde(other)]
5511 Unknown,
5512}
5513
5514#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5516pub enum McpServerStatus {
5517 #[serde(rename = "connected")]
5519 Connected,
5520 #[serde(rename = "failed")]
5522 Failed,
5523 #[serde(rename = "needs-auth")]
5525 NeedsAuth,
5526 #[serde(rename = "pending")]
5528 Pending,
5529 #[serde(rename = "disabled")]
5531 Disabled,
5532 #[serde(rename = "not_configured")]
5534 NotConfigured,
5535 #[default]
5537 #[serde(other)]
5538 Unknown,
5539}
5540
5541#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5543pub enum McpServerTransport {
5544 #[serde(rename = "stdio")]
5546 Stdio,
5547 #[serde(rename = "http")]
5549 Http,
5550 #[serde(rename = "sse")]
5552 Sse,
5553 #[serde(rename = "memory")]
5555 Memory,
5556 #[default]
5558 #[serde(other)]
5559 Unknown,
5560}
5561
5562#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5564pub enum ExtensionsLoadedExtensionSource {
5565 #[serde(rename = "project")]
5567 Project,
5568 #[serde(rename = "user")]
5570 User,
5571 #[serde(rename = "plugin")]
5573 Plugin,
5574 #[serde(rename = "session")]
5576 Session,
5577 #[default]
5579 #[serde(other)]
5580 Unknown,
5581}
5582
5583#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5585pub enum ExtensionsLoadedExtensionStatus {
5586 #[serde(rename = "running")]
5588 Running,
5589 #[serde(rename = "disabled")]
5591 Disabled,
5592 #[serde(rename = "failed")]
5594 Failed,
5595 #[serde(rename = "starting")]
5597 Starting,
5598 #[default]
5600 #[serde(other)]
5601 Unknown,
5602}