/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. *--------------------------------------------------------------------------------------------*/ // AUTO-GENERATED FILE - DO NOT EDIT // Generated from: session-events.schema.json using System.Text.Json; using System.Text.Json.Serialization; namespace GitHub.Copilot.SDK; /// /// Base class for all session events with polymorphic JSON serialization. /// [JsonPolymorphic( TypeDiscriminatorPropertyName = "type", UnknownDerivedTypeHandling = JsonUnknownDerivedTypeHandling.FailSerialization)] [JsonDerivedType(typeof(AbortEvent), "abort")] [JsonDerivedType(typeof(AssistantIntentEvent), "assistant.intent")] [JsonDerivedType(typeof(AssistantMessageEvent), "assistant.message")] [JsonDerivedType(typeof(AssistantMessageDeltaEvent), "assistant.message_delta")] [JsonDerivedType(typeof(AssistantReasoningEvent), "assistant.reasoning")] [JsonDerivedType(typeof(AssistantReasoningDeltaEvent), "assistant.reasoning_delta")] [JsonDerivedType(typeof(AssistantStreamingDeltaEvent), "assistant.streaming_delta")] [JsonDerivedType(typeof(AssistantTurnEndEvent), "assistant.turn_end")] [JsonDerivedType(typeof(AssistantTurnStartEvent), "assistant.turn_start")] [JsonDerivedType(typeof(AssistantUsageEvent), "assistant.usage")] [JsonDerivedType(typeof(HookEndEvent), "hook.end")] [JsonDerivedType(typeof(HookStartEvent), "hook.start")] [JsonDerivedType(typeof(PendingMessagesModifiedEvent), "pending_messages.modified")] [JsonDerivedType(typeof(SessionCompactionCompleteEvent), "session.compaction_complete")] [JsonDerivedType(typeof(SessionCompactionStartEvent), "session.compaction_start")] [JsonDerivedType(typeof(SessionContextChangedEvent), "session.context_changed")] [JsonDerivedType(typeof(SessionErrorEvent), "session.error")] [JsonDerivedType(typeof(SessionHandoffEvent), "session.handoff")] [JsonDerivedType(typeof(SessionIdleEvent), "session.idle")] [JsonDerivedType(typeof(SessionInfoEvent), "session.info")] [JsonDerivedType(typeof(SessionModeChangedEvent), "session.mode_changed")] [JsonDerivedType(typeof(SessionModelChangeEvent), "session.model_change")] [JsonDerivedType(typeof(SessionPlanChangedEvent), "session.plan_changed")] [JsonDerivedType(typeof(SessionResumeEvent), "session.resume")] [JsonDerivedType(typeof(SessionShutdownEvent), "session.shutdown")] [JsonDerivedType(typeof(SessionSnapshotRewindEvent), "session.snapshot_rewind")] [JsonDerivedType(typeof(SessionStartEvent), "session.start")] [JsonDerivedType(typeof(SessionTaskCompleteEvent), "session.task_complete")] [JsonDerivedType(typeof(SessionTitleChangedEvent), "session.title_changed")] [JsonDerivedType(typeof(SessionTruncationEvent), "session.truncation")] [JsonDerivedType(typeof(SessionUsageInfoEvent), "session.usage_info")] [JsonDerivedType(typeof(SessionWarningEvent), "session.warning")] [JsonDerivedType(typeof(SessionWorkspaceFileChangedEvent), "session.workspace_file_changed")] [JsonDerivedType(typeof(SkillInvokedEvent), "skill.invoked")] [JsonDerivedType(typeof(SubagentCompletedEvent), "subagent.completed")] [JsonDerivedType(typeof(SubagentFailedEvent), "subagent.failed")] [JsonDerivedType(typeof(SubagentSelectedEvent), "subagent.selected")] [JsonDerivedType(typeof(SubagentStartedEvent), "subagent.started")] [JsonDerivedType(typeof(SystemMessageEvent), "system.message")] [JsonDerivedType(typeof(ToolExecutionCompleteEvent), "tool.execution_complete")] [JsonDerivedType(typeof(ToolExecutionPartialResultEvent), "tool.execution_partial_result")] [JsonDerivedType(typeof(ToolExecutionProgressEvent), "tool.execution_progress")] [JsonDerivedType(typeof(ToolExecutionStartEvent), "tool.execution_start")] [JsonDerivedType(typeof(ToolUserRequestedEvent), "tool.user_requested")] [JsonDerivedType(typeof(UserMessageEvent), "user.message")] public abstract partial class SessionEvent { [JsonPropertyName("id")] public Guid Id { get; set; } [JsonPropertyName("timestamp")] public DateTimeOffset Timestamp { get; set; } [JsonPropertyName("parentId")] public Guid? ParentId { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("ephemeral")] public bool? Ephemeral { get; set; } /// /// The event type discriminator. /// [JsonIgnore] public abstract string Type { get; } public static SessionEvent FromJson(string json) => JsonSerializer.Deserialize(json, SessionEventsJsonContext.Default.SessionEvent)!; public string ToJson() => JsonSerializer.Serialize(this, SessionEventsJsonContext.Default.SessionEvent); } /// /// Event: session.start /// public partial class SessionStartEvent : SessionEvent { [JsonIgnore] public override string Type => "session.start"; [JsonPropertyName("data")] public required SessionStartData Data { get; set; } } /// /// Event: session.resume /// public partial class SessionResumeEvent : SessionEvent { [JsonIgnore] public override string Type => "session.resume"; [JsonPropertyName("data")] public required SessionResumeData Data { get; set; } } /// /// Event: session.error /// public partial class SessionErrorEvent : SessionEvent { [JsonIgnore] public override string Type => "session.error"; [JsonPropertyName("data")] public required SessionErrorData Data { get; set; } } /// /// Event: session.idle /// public partial class SessionIdleEvent : SessionEvent { [JsonIgnore] public override string Type => "session.idle"; [JsonPropertyName("data")] public required SessionIdleData Data { get; set; } } /// /// Event: session.title_changed /// public partial class SessionTitleChangedEvent : SessionEvent { [JsonIgnore] public override string Type => "session.title_changed"; [JsonPropertyName("data")] public required SessionTitleChangedData Data { get; set; } } /// /// Event: session.info /// public partial class SessionInfoEvent : SessionEvent { [JsonIgnore] public override string Type => "session.info"; [JsonPropertyName("data")] public required SessionInfoData Data { get; set; } } /// /// Event: session.warning /// public partial class SessionWarningEvent : SessionEvent { [JsonIgnore] public override string Type => "session.warning"; [JsonPropertyName("data")] public required SessionWarningData Data { get; set; } } /// /// Event: session.model_change /// public partial class SessionModelChangeEvent : SessionEvent { [JsonIgnore] public override string Type => "session.model_change"; [JsonPropertyName("data")] public required SessionModelChangeData Data { get; set; } } /// /// Event: session.mode_changed /// public partial class SessionModeChangedEvent : SessionEvent { [JsonIgnore] public override string Type => "session.mode_changed"; [JsonPropertyName("data")] public required SessionModeChangedData Data { get; set; } } /// /// Event: session.plan_changed /// public partial class SessionPlanChangedEvent : SessionEvent { [JsonIgnore] public override string Type => "session.plan_changed"; [JsonPropertyName("data")] public required SessionPlanChangedData Data { get; set; } } /// /// Event: session.workspace_file_changed /// public partial class SessionWorkspaceFileChangedEvent : SessionEvent { [JsonIgnore] public override string Type => "session.workspace_file_changed"; [JsonPropertyName("data")] public required SessionWorkspaceFileChangedData Data { get; set; } } /// /// Event: session.handoff /// public partial class SessionHandoffEvent : SessionEvent { [JsonIgnore] public override string Type => "session.handoff"; [JsonPropertyName("data")] public required SessionHandoffData Data { get; set; } } /// /// Event: session.truncation /// public partial class SessionTruncationEvent : SessionEvent { [JsonIgnore] public override string Type => "session.truncation"; [JsonPropertyName("data")] public required SessionTruncationData Data { get; set; } } /// /// Event: session.snapshot_rewind /// public partial class SessionSnapshotRewindEvent : SessionEvent { [JsonIgnore] public override string Type => "session.snapshot_rewind"; [JsonPropertyName("data")] public required SessionSnapshotRewindData Data { get; set; } } /// /// Event: session.shutdown /// public partial class SessionShutdownEvent : SessionEvent { [JsonIgnore] public override string Type => "session.shutdown"; [JsonPropertyName("data")] public required SessionShutdownData Data { get; set; } } /// /// Event: session.context_changed /// public partial class SessionContextChangedEvent : SessionEvent { [JsonIgnore] public override string Type => "session.context_changed"; [JsonPropertyName("data")] public required SessionContextChangedData Data { get; set; } } /// /// Event: session.usage_info /// public partial class SessionUsageInfoEvent : SessionEvent { [JsonIgnore] public override string Type => "session.usage_info"; [JsonPropertyName("data")] public required SessionUsageInfoData Data { get; set; } } /// /// Event: session.compaction_start /// public partial class SessionCompactionStartEvent : SessionEvent { [JsonIgnore] public override string Type => "session.compaction_start"; [JsonPropertyName("data")] public required SessionCompactionStartData Data { get; set; } } /// /// Event: session.compaction_complete /// public partial class SessionCompactionCompleteEvent : SessionEvent { [JsonIgnore] public override string Type => "session.compaction_complete"; [JsonPropertyName("data")] public required SessionCompactionCompleteData Data { get; set; } } /// /// Event: session.task_complete /// public partial class SessionTaskCompleteEvent : SessionEvent { [JsonIgnore] public override string Type => "session.task_complete"; [JsonPropertyName("data")] public required SessionTaskCompleteData Data { get; set; } } /// /// Event: user.message /// public partial class UserMessageEvent : SessionEvent { [JsonIgnore] public override string Type => "user.message"; [JsonPropertyName("data")] public required UserMessageData Data { get; set; } } /// /// Event: pending_messages.modified /// public partial class PendingMessagesModifiedEvent : SessionEvent { [JsonIgnore] public override string Type => "pending_messages.modified"; [JsonPropertyName("data")] public required PendingMessagesModifiedData Data { get; set; } } /// /// Event: assistant.turn_start /// public partial class AssistantTurnStartEvent : SessionEvent { [JsonIgnore] public override string Type => "assistant.turn_start"; [JsonPropertyName("data")] public required AssistantTurnStartData Data { get; set; } } /// /// Event: assistant.intent /// public partial class AssistantIntentEvent : SessionEvent { [JsonIgnore] public override string Type => "assistant.intent"; [JsonPropertyName("data")] public required AssistantIntentData Data { get; set; } } /// /// Event: assistant.reasoning /// public partial class AssistantReasoningEvent : SessionEvent { [JsonIgnore] public override string Type => "assistant.reasoning"; [JsonPropertyName("data")] public required AssistantReasoningData Data { get; set; } } /// /// Event: assistant.reasoning_delta /// public partial class AssistantReasoningDeltaEvent : SessionEvent { [JsonIgnore] public override string Type => "assistant.reasoning_delta"; [JsonPropertyName("data")] public required AssistantReasoningDeltaData Data { get; set; } } /// /// Event: assistant.streaming_delta /// public partial class AssistantStreamingDeltaEvent : SessionEvent { [JsonIgnore] public override string Type => "assistant.streaming_delta"; [JsonPropertyName("data")] public required AssistantStreamingDeltaData Data { get; set; } } /// /// Event: assistant.message /// public partial class AssistantMessageEvent : SessionEvent { [JsonIgnore] public override string Type => "assistant.message"; [JsonPropertyName("data")] public required AssistantMessageData Data { get; set; } } /// /// Event: assistant.message_delta /// public partial class AssistantMessageDeltaEvent : SessionEvent { [JsonIgnore] public override string Type => "assistant.message_delta"; [JsonPropertyName("data")] public required AssistantMessageDeltaData Data { get; set; } } /// /// Event: assistant.turn_end /// public partial class AssistantTurnEndEvent : SessionEvent { [JsonIgnore] public override string Type => "assistant.turn_end"; [JsonPropertyName("data")] public required AssistantTurnEndData Data { get; set; } } /// /// Event: assistant.usage /// public partial class AssistantUsageEvent : SessionEvent { [JsonIgnore] public override string Type => "assistant.usage"; [JsonPropertyName("data")] public required AssistantUsageData Data { get; set; } } /// /// Event: abort /// public partial class AbortEvent : SessionEvent { [JsonIgnore] public override string Type => "abort"; [JsonPropertyName("data")] public required AbortData Data { get; set; } } /// /// Event: tool.user_requested /// public partial class ToolUserRequestedEvent : SessionEvent { [JsonIgnore] public override string Type => "tool.user_requested"; [JsonPropertyName("data")] public required ToolUserRequestedData Data { get; set; } } /// /// Event: tool.execution_start /// public partial class ToolExecutionStartEvent : SessionEvent { [JsonIgnore] public override string Type => "tool.execution_start"; [JsonPropertyName("data")] public required ToolExecutionStartData Data { get; set; } } /// /// Event: tool.execution_partial_result /// public partial class ToolExecutionPartialResultEvent : SessionEvent { [JsonIgnore] public override string Type => "tool.execution_partial_result"; [JsonPropertyName("data")] public required ToolExecutionPartialResultData Data { get; set; } } /// /// Event: tool.execution_progress /// public partial class ToolExecutionProgressEvent : SessionEvent { [JsonIgnore] public override string Type => "tool.execution_progress"; [JsonPropertyName("data")] public required ToolExecutionProgressData Data { get; set; } } /// /// Event: tool.execution_complete /// public partial class ToolExecutionCompleteEvent : SessionEvent { [JsonIgnore] public override string Type => "tool.execution_complete"; [JsonPropertyName("data")] public required ToolExecutionCompleteData Data { get; set; } } /// /// Event: skill.invoked /// public partial class SkillInvokedEvent : SessionEvent { [JsonIgnore] public override string Type => "skill.invoked"; [JsonPropertyName("data")] public required SkillInvokedData Data { get; set; } } /// /// Event: subagent.started /// public partial class SubagentStartedEvent : SessionEvent { [JsonIgnore] public override string Type => "subagent.started"; [JsonPropertyName("data")] public required SubagentStartedData Data { get; set; } } /// /// Event: subagent.completed /// public partial class SubagentCompletedEvent : SessionEvent { [JsonIgnore] public override string Type => "subagent.completed"; [JsonPropertyName("data")] public required SubagentCompletedData Data { get; set; } } /// /// Event: subagent.failed /// public partial class SubagentFailedEvent : SessionEvent { [JsonIgnore] public override string Type => "subagent.failed"; [JsonPropertyName("data")] public required SubagentFailedData Data { get; set; } } /// /// Event: subagent.selected /// public partial class SubagentSelectedEvent : SessionEvent { [JsonIgnore] public override string Type => "subagent.selected"; [JsonPropertyName("data")] public required SubagentSelectedData Data { get; set; } } /// /// Event: hook.start /// public partial class HookStartEvent : SessionEvent { [JsonIgnore] public override string Type => "hook.start"; [JsonPropertyName("data")] public required HookStartData Data { get; set; } } /// /// Event: hook.end /// public partial class HookEndEvent : SessionEvent { [JsonIgnore] public override string Type => "hook.end"; [JsonPropertyName("data")] public required HookEndData Data { get; set; } } /// /// Event: system.message /// public partial class SystemMessageEvent : SessionEvent { [JsonIgnore] public override string Type => "system.message"; [JsonPropertyName("data")] public required SystemMessageData Data { get; set; } } public partial class SessionStartData { [JsonPropertyName("sessionId")] public required string SessionId { get; set; } [JsonPropertyName("version")] public required double Version { get; set; } [JsonPropertyName("producer")] public required string Producer { get; set; } [JsonPropertyName("copilotVersion")] public required string CopilotVersion { get; set; } [JsonPropertyName("startTime")] public required DateTimeOffset StartTime { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("selectedModel")] public string? SelectedModel { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("context")] public SessionStartDataContext? Context { get; set; } } public partial class SessionResumeData { [JsonPropertyName("resumeTime")] public required DateTimeOffset ResumeTime { get; set; } [JsonPropertyName("eventCount")] public required double EventCount { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("context")] public SessionResumeDataContext? Context { get; set; } } public partial class SessionErrorData { [JsonPropertyName("errorType")] public required string ErrorType { get; set; } [JsonPropertyName("message")] public required string Message { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("stack")] public string? Stack { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("statusCode")] public double? StatusCode { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("providerCallId")] public string? ProviderCallId { get; set; } } public partial class SessionIdleData { } public partial class SessionTitleChangedData { [JsonPropertyName("title")] public required string Title { get; set; } } public partial class SessionInfoData { [JsonPropertyName("infoType")] public required string InfoType { get; set; } [JsonPropertyName("message")] public required string Message { get; set; } } public partial class SessionWarningData { [JsonPropertyName("warningType")] public required string WarningType { get; set; } [JsonPropertyName("message")] public required string Message { get; set; } } public partial class SessionModelChangeData { [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("previousModel")] public string? PreviousModel { get; set; } [JsonPropertyName("newModel")] public required string NewModel { get; set; } } public partial class SessionModeChangedData { [JsonPropertyName("previousMode")] public required string PreviousMode { get; set; } [JsonPropertyName("newMode")] public required string NewMode { get; set; } } public partial class SessionPlanChangedData { [JsonPropertyName("operation")] public required SessionPlanChangedDataOperation Operation { get; set; } } public partial class SessionWorkspaceFileChangedData { [JsonPropertyName("path")] public required string Path { get; set; } [JsonPropertyName("operation")] public required SessionWorkspaceFileChangedDataOperation Operation { get; set; } } public partial class SessionHandoffData { [JsonPropertyName("handoffTime")] public required DateTimeOffset HandoffTime { get; set; } [JsonPropertyName("sourceType")] public required SessionHandoffDataSourceType SourceType { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("repository")] public SessionHandoffDataRepository? Repository { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("context")] public string? Context { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("summary")] public string? Summary { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("remoteSessionId")] public string? RemoteSessionId { get; set; } } public partial class SessionTruncationData { [JsonPropertyName("tokenLimit")] public required double TokenLimit { get; set; } [JsonPropertyName("preTruncationTokensInMessages")] public required double PreTruncationTokensInMessages { get; set; } [JsonPropertyName("preTruncationMessagesLength")] public required double PreTruncationMessagesLength { get; set; } [JsonPropertyName("postTruncationTokensInMessages")] public required double PostTruncationTokensInMessages { get; set; } [JsonPropertyName("postTruncationMessagesLength")] public required double PostTruncationMessagesLength { get; set; } [JsonPropertyName("tokensRemovedDuringTruncation")] public required double TokensRemovedDuringTruncation { get; set; } [JsonPropertyName("messagesRemovedDuringTruncation")] public required double MessagesRemovedDuringTruncation { get; set; } [JsonPropertyName("performedBy")] public required string PerformedBy { get; set; } } public partial class SessionSnapshotRewindData { [JsonPropertyName("upToEventId")] public required string UpToEventId { get; set; } [JsonPropertyName("eventsRemoved")] public required double EventsRemoved { get; set; } } public partial class SessionShutdownData { [JsonPropertyName("shutdownType")] public required SessionShutdownDataShutdownType ShutdownType { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("errorReason")] public string? ErrorReason { get; set; } [JsonPropertyName("totalPremiumRequests")] public required double TotalPremiumRequests { get; set; } [JsonPropertyName("totalApiDurationMs")] public required double TotalApiDurationMs { get; set; } [JsonPropertyName("sessionStartTime")] public required double SessionStartTime { get; set; } [JsonPropertyName("codeChanges")] public required SessionShutdownDataCodeChanges CodeChanges { get; set; } [JsonPropertyName("modelMetrics")] public required Dictionary ModelMetrics { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("currentModel")] public string? CurrentModel { get; set; } } public partial class SessionContextChangedData { [JsonPropertyName("cwd")] public required string Cwd { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("gitRoot")] public string? GitRoot { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("repository")] public string? Repository { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("branch")] public string? Branch { get; set; } } public partial class SessionUsageInfoData { [JsonPropertyName("tokenLimit")] public required double TokenLimit { get; set; } [JsonPropertyName("currentTokens")] public required double CurrentTokens { get; set; } [JsonPropertyName("messagesLength")] public required double MessagesLength { get; set; } } public partial class SessionCompactionStartData { } public partial class SessionCompactionCompleteData { [JsonPropertyName("success")] public required bool Success { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("error")] public string? Error { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("preCompactionTokens")] public double? PreCompactionTokens { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("postCompactionTokens")] public double? PostCompactionTokens { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("preCompactionMessagesLength")] public double? PreCompactionMessagesLength { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("messagesRemoved")] public double? MessagesRemoved { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("tokensRemoved")] public double? TokensRemoved { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("summaryContent")] public string? SummaryContent { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("checkpointNumber")] public double? CheckpointNumber { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("checkpointPath")] public string? CheckpointPath { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("compactionTokensUsed")] public SessionCompactionCompleteDataCompactionTokensUsed? CompactionTokensUsed { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("requestId")] public string? RequestId { get; set; } } public partial class SessionTaskCompleteData { [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("summary")] public string? Summary { get; set; } } public partial class UserMessageData { [JsonPropertyName("content")] public required string Content { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("transformedContent")] public string? TransformedContent { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("attachments")] public UserMessageDataAttachmentsItem[]? Attachments { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("source")] public string? Source { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("agentMode")] public UserMessageDataAgentMode? AgentMode { get; set; } } public partial class PendingMessagesModifiedData { } public partial class AssistantTurnStartData { [JsonPropertyName("turnId")] public required string TurnId { get; set; } } public partial class AssistantIntentData { [JsonPropertyName("intent")] public required string Intent { get; set; } } public partial class AssistantReasoningData { [JsonPropertyName("reasoningId")] public required string ReasoningId { get; set; } [JsonPropertyName("content")] public required string Content { get; set; } } public partial class AssistantReasoningDeltaData { [JsonPropertyName("reasoningId")] public required string ReasoningId { get; set; } [JsonPropertyName("deltaContent")] public required string DeltaContent { get; set; } } public partial class AssistantStreamingDeltaData { [JsonPropertyName("totalResponseSizeBytes")] public required double TotalResponseSizeBytes { get; set; } } public partial class AssistantMessageData { [JsonPropertyName("messageId")] public required string MessageId { get; set; } [JsonPropertyName("content")] public required string Content { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("toolRequests")] public AssistantMessageDataToolRequestsItem[]? ToolRequests { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("reasoningOpaque")] public string? ReasoningOpaque { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("reasoningText")] public string? ReasoningText { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("encryptedContent")] public string? EncryptedContent { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("phase")] public string? Phase { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("parentToolCallId")] public string? ParentToolCallId { get; set; } } public partial class AssistantMessageDeltaData { [JsonPropertyName("messageId")] public required string MessageId { get; set; } [JsonPropertyName("deltaContent")] public required string DeltaContent { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("parentToolCallId")] public string? ParentToolCallId { get; set; } } public partial class AssistantTurnEndData { [JsonPropertyName("turnId")] public required string TurnId { get; set; } } public partial class AssistantUsageData { [JsonPropertyName("model")] public required string Model { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("inputTokens")] public double? InputTokens { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("outputTokens")] public double? OutputTokens { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("cacheReadTokens")] public double? CacheReadTokens { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("cacheWriteTokens")] public double? CacheWriteTokens { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("cost")] public double? Cost { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("duration")] public double? Duration { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("initiator")] public string? Initiator { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("apiCallId")] public string? ApiCallId { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("providerCallId")] public string? ProviderCallId { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("parentToolCallId")] public string? ParentToolCallId { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("quotaSnapshots")] public Dictionary? QuotaSnapshots { get; set; } } public partial class AbortData { [JsonPropertyName("reason")] public required string Reason { get; set; } } public partial class ToolUserRequestedData { [JsonPropertyName("toolCallId")] public required string ToolCallId { get; set; } [JsonPropertyName("toolName")] public required string ToolName { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("arguments")] public object? Arguments { get; set; } } public partial class ToolExecutionStartData { [JsonPropertyName("toolCallId")] public required string ToolCallId { get; set; } [JsonPropertyName("toolName")] public required string ToolName { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("arguments")] public object? Arguments { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("mcpServerName")] public string? McpServerName { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("mcpToolName")] public string? McpToolName { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("parentToolCallId")] public string? ParentToolCallId { get; set; } } public partial class ToolExecutionPartialResultData { [JsonPropertyName("toolCallId")] public required string ToolCallId { get; set; } [JsonPropertyName("partialOutput")] public required string PartialOutput { get; set; } } public partial class ToolExecutionProgressData { [JsonPropertyName("toolCallId")] public required string ToolCallId { get; set; } [JsonPropertyName("progressMessage")] public required string ProgressMessage { get; set; } } public partial class ToolExecutionCompleteData { [JsonPropertyName("toolCallId")] public required string ToolCallId { get; set; } [JsonPropertyName("success")] public required bool Success { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("isUserRequested")] public bool? IsUserRequested { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("result")] public ToolExecutionCompleteDataResult? Result { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("error")] public ToolExecutionCompleteDataError? Error { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("toolTelemetry")] public Dictionary? ToolTelemetry { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("parentToolCallId")] public string? ParentToolCallId { get; set; } } public partial class SkillInvokedData { [JsonPropertyName("name")] public required string Name { get; set; } [JsonPropertyName("path")] public required string Path { get; set; } [JsonPropertyName("content")] public required string Content { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("allowedTools")] public string[]? AllowedTools { get; set; } } public partial class SubagentStartedData { [JsonPropertyName("toolCallId")] public required string ToolCallId { get; set; } [JsonPropertyName("agentName")] public required string AgentName { get; set; } [JsonPropertyName("agentDisplayName")] public required string AgentDisplayName { get; set; } [JsonPropertyName("agentDescription")] public required string AgentDescription { get; set; } } public partial class SubagentCompletedData { [JsonPropertyName("toolCallId")] public required string ToolCallId { get; set; } [JsonPropertyName("agentName")] public required string AgentName { get; set; } [JsonPropertyName("agentDisplayName")] public required string AgentDisplayName { get; set; } } public partial class SubagentFailedData { [JsonPropertyName("toolCallId")] public required string ToolCallId { get; set; } [JsonPropertyName("agentName")] public required string AgentName { get; set; } [JsonPropertyName("agentDisplayName")] public required string AgentDisplayName { get; set; } [JsonPropertyName("error")] public required string Error { get; set; } } public partial class SubagentSelectedData { [JsonPropertyName("agentName")] public required string AgentName { get; set; } [JsonPropertyName("agentDisplayName")] public required string AgentDisplayName { get; set; } [JsonPropertyName("tools")] public string[]? Tools { get; set; } } public partial class HookStartData { [JsonPropertyName("hookInvocationId")] public required string HookInvocationId { get; set; } [JsonPropertyName("hookType")] public required string HookType { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("input")] public object? Input { get; set; } } public partial class HookEndData { [JsonPropertyName("hookInvocationId")] public required string HookInvocationId { get; set; } [JsonPropertyName("hookType")] public required string HookType { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("output")] public object? Output { get; set; } [JsonPropertyName("success")] public required bool Success { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("error")] public HookEndDataError? Error { get; set; } } public partial class SystemMessageData { [JsonPropertyName("content")] public required string Content { get; set; } [JsonPropertyName("role")] public required SystemMessageDataRole Role { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("name")] public string? Name { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("metadata")] public SystemMessageDataMetadata? Metadata { get; set; } } public partial class SessionStartDataContext { [JsonPropertyName("cwd")] public required string Cwd { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("gitRoot")] public string? GitRoot { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("repository")] public string? Repository { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("branch")] public string? Branch { get; set; } } public partial class SessionResumeDataContext { [JsonPropertyName("cwd")] public required string Cwd { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("gitRoot")] public string? GitRoot { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("repository")] public string? Repository { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("branch")] public string? Branch { get; set; } } public partial class SessionHandoffDataRepository { [JsonPropertyName("owner")] public required string Owner { get; set; } [JsonPropertyName("name")] public required string Name { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("branch")] public string? Branch { get; set; } } public partial class SessionShutdownDataCodeChanges { [JsonPropertyName("linesAdded")] public required double LinesAdded { get; set; } [JsonPropertyName("linesRemoved")] public required double LinesRemoved { get; set; } [JsonPropertyName("filesModified")] public required string[] FilesModified { get; set; } } public partial class SessionCompactionCompleteDataCompactionTokensUsed { [JsonPropertyName("input")] public required double Input { get; set; } [JsonPropertyName("output")] public required double Output { get; set; } [JsonPropertyName("cachedInput")] public required double CachedInput { get; set; } } public partial class UserMessageDataAttachmentsItemFileLineRange { [JsonPropertyName("start")] public required double Start { get; set; } [JsonPropertyName("end")] public required double End { get; set; } } public partial class UserMessageDataAttachmentsItemFile : UserMessageDataAttachmentsItem { [JsonIgnore] public override string Type => "file"; [JsonPropertyName("path")] public required string Path { get; set; } [JsonPropertyName("displayName")] public required string DisplayName { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("lineRange")] public UserMessageDataAttachmentsItemFileLineRange? LineRange { get; set; } } public partial class UserMessageDataAttachmentsItemDirectoryLineRange { [JsonPropertyName("start")] public required double Start { get; set; } [JsonPropertyName("end")] public required double End { get; set; } } public partial class UserMessageDataAttachmentsItemDirectory : UserMessageDataAttachmentsItem { [JsonIgnore] public override string Type => "directory"; [JsonPropertyName("path")] public required string Path { get; set; } [JsonPropertyName("displayName")] public required string DisplayName { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("lineRange")] public UserMessageDataAttachmentsItemDirectoryLineRange? LineRange { get; set; } } public partial class UserMessageDataAttachmentsItemSelectionSelectionStart { [JsonPropertyName("line")] public required double Line { get; set; } [JsonPropertyName("character")] public required double Character { get; set; } } public partial class UserMessageDataAttachmentsItemSelectionSelectionEnd { [JsonPropertyName("line")] public required double Line { get; set; } [JsonPropertyName("character")] public required double Character { get; set; } } public partial class UserMessageDataAttachmentsItemSelectionSelection { [JsonPropertyName("start")] public required UserMessageDataAttachmentsItemSelectionSelectionStart Start { get; set; } [JsonPropertyName("end")] public required UserMessageDataAttachmentsItemSelectionSelectionEnd End { get; set; } } public partial class UserMessageDataAttachmentsItemSelection : UserMessageDataAttachmentsItem { [JsonIgnore] public override string Type => "selection"; [JsonPropertyName("filePath")] public required string FilePath { get; set; } [JsonPropertyName("displayName")] public required string DisplayName { get; set; } [JsonPropertyName("text")] public required string Text { get; set; } [JsonPropertyName("selection")] public required UserMessageDataAttachmentsItemSelectionSelection Selection { get; set; } } [JsonPolymorphic( TypeDiscriminatorPropertyName = "type", UnknownDerivedTypeHandling = JsonUnknownDerivedTypeHandling.FallBackToBaseType)] [JsonDerivedType(typeof(UserMessageDataAttachmentsItemFile), "file")] [JsonDerivedType(typeof(UserMessageDataAttachmentsItemDirectory), "directory")] [JsonDerivedType(typeof(UserMessageDataAttachmentsItemSelection), "selection")] public partial class UserMessageDataAttachmentsItem { [JsonPropertyName("type")] public virtual string Type { get; set; } = string.Empty; } public partial class AssistantMessageDataToolRequestsItem { [JsonPropertyName("toolCallId")] public required string ToolCallId { get; set; } [JsonPropertyName("name")] public required string Name { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("arguments")] public object? Arguments { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("type")] public AssistantMessageDataToolRequestsItemType? Type { get; set; } } public partial class ToolExecutionCompleteDataResultContentsItemText : ToolExecutionCompleteDataResultContentsItem { [JsonIgnore] public override string Type => "text"; [JsonPropertyName("text")] public required string Text { get; set; } } public partial class ToolExecutionCompleteDataResultContentsItemTerminal : ToolExecutionCompleteDataResultContentsItem { [JsonIgnore] public override string Type => "terminal"; [JsonPropertyName("text")] public required string Text { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("exitCode")] public double? ExitCode { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("cwd")] public string? Cwd { get; set; } } public partial class ToolExecutionCompleteDataResultContentsItemImage : ToolExecutionCompleteDataResultContentsItem { [JsonIgnore] public override string Type => "image"; [JsonPropertyName("data")] public required string Data { get; set; } [JsonPropertyName("mimeType")] public required string MimeType { get; set; } } public partial class ToolExecutionCompleteDataResultContentsItemAudio : ToolExecutionCompleteDataResultContentsItem { [JsonIgnore] public override string Type => "audio"; [JsonPropertyName("data")] public required string Data { get; set; } [JsonPropertyName("mimeType")] public required string MimeType { get; set; } } public partial class ToolExecutionCompleteDataResultContentsItemResourceLinkIconsItem { [JsonPropertyName("src")] public required string Src { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("mimeType")] public string? MimeType { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("sizes")] public string[]? Sizes { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("theme")] public ToolExecutionCompleteDataResultContentsItemResourceLinkIconsItemTheme? Theme { get; set; } } public partial class ToolExecutionCompleteDataResultContentsItemResourceLink : ToolExecutionCompleteDataResultContentsItem { [JsonIgnore] public override string Type => "resource_link"; [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("icons")] public ToolExecutionCompleteDataResultContentsItemResourceLinkIconsItem[]? Icons { get; set; } [JsonPropertyName("name")] public required string Name { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("title")] public string? Title { get; set; } [JsonPropertyName("uri")] public required string Uri { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("description")] public string? Description { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("mimeType")] public string? MimeType { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("size")] public double? Size { get; set; } } public partial class ToolExecutionCompleteDataResultContentsItemResource : ToolExecutionCompleteDataResultContentsItem { [JsonIgnore] public override string Type => "resource"; [JsonPropertyName("resource")] public required object Resource { get; set; } } [JsonPolymorphic( TypeDiscriminatorPropertyName = "type", UnknownDerivedTypeHandling = JsonUnknownDerivedTypeHandling.FallBackToBaseType)] [JsonDerivedType(typeof(ToolExecutionCompleteDataResultContentsItemText), "text")] [JsonDerivedType(typeof(ToolExecutionCompleteDataResultContentsItemTerminal), "terminal")] [JsonDerivedType(typeof(ToolExecutionCompleteDataResultContentsItemImage), "image")] [JsonDerivedType(typeof(ToolExecutionCompleteDataResultContentsItemAudio), "audio")] [JsonDerivedType(typeof(ToolExecutionCompleteDataResultContentsItemResourceLink), "resource_link")] [JsonDerivedType(typeof(ToolExecutionCompleteDataResultContentsItemResource), "resource")] public partial class ToolExecutionCompleteDataResultContentsItem { [JsonPropertyName("type")] public virtual string Type { get; set; } = string.Empty; } public partial class ToolExecutionCompleteDataResult { [JsonPropertyName("content")] public required string Content { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("detailedContent")] public string? DetailedContent { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("contents")] public ToolExecutionCompleteDataResultContentsItem[]? Contents { get; set; } } public partial class ToolExecutionCompleteDataError { [JsonPropertyName("message")] public required string Message { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("code")] public string? Code { get; set; } } public partial class HookEndDataError { [JsonPropertyName("message")] public required string Message { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("stack")] public string? Stack { get; set; } } public partial class SystemMessageDataMetadata { [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("promptVersion")] public string? PromptVersion { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("variables")] public Dictionary? Variables { get; set; } } [JsonConverter(typeof(JsonStringEnumConverter))] public enum SessionPlanChangedDataOperation { [JsonStringEnumMemberName("create")] Create, [JsonStringEnumMemberName("update")] Update, [JsonStringEnumMemberName("delete")] Delete, } [JsonConverter(typeof(JsonStringEnumConverter))] public enum SessionWorkspaceFileChangedDataOperation { [JsonStringEnumMemberName("create")] Create, [JsonStringEnumMemberName("update")] Update, } [JsonConverter(typeof(JsonStringEnumConverter))] public enum SessionHandoffDataSourceType { [JsonStringEnumMemberName("remote")] Remote, [JsonStringEnumMemberName("local")] Local, } [JsonConverter(typeof(JsonStringEnumConverter))] public enum SessionShutdownDataShutdownType { [JsonStringEnumMemberName("routine")] Routine, [JsonStringEnumMemberName("error")] Error, } [JsonConverter(typeof(JsonStringEnumConverter))] public enum UserMessageDataAgentMode { [JsonStringEnumMemberName("interactive")] Interactive, [JsonStringEnumMemberName("plan")] Plan, [JsonStringEnumMemberName("autopilot")] Autopilot, [JsonStringEnumMemberName("shell")] Shell, } [JsonConverter(typeof(JsonStringEnumConverter))] public enum AssistantMessageDataToolRequestsItemType { [JsonStringEnumMemberName("function")] Function, [JsonStringEnumMemberName("custom")] Custom, } [JsonConverter(typeof(JsonStringEnumConverter))] public enum ToolExecutionCompleteDataResultContentsItemResourceLinkIconsItemTheme { [JsonStringEnumMemberName("light")] Light, [JsonStringEnumMemberName("dark")] Dark, } [JsonConverter(typeof(JsonStringEnumConverter))] public enum SystemMessageDataRole { [JsonStringEnumMemberName("system")] System, [JsonStringEnumMemberName("developer")] Developer, } [JsonSourceGenerationOptions( JsonSerializerDefaults.Web, AllowOutOfOrderMetadataProperties = true, NumberHandling = JsonNumberHandling.AllowReadingFromString, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)] [JsonSerializable(typeof(AbortData))] [JsonSerializable(typeof(AbortEvent))] [JsonSerializable(typeof(AssistantIntentData))] [JsonSerializable(typeof(AssistantIntentEvent))] [JsonSerializable(typeof(AssistantMessageData))] [JsonSerializable(typeof(AssistantMessageDataToolRequestsItem))] [JsonSerializable(typeof(AssistantMessageDeltaData))] [JsonSerializable(typeof(AssistantMessageDeltaEvent))] [JsonSerializable(typeof(AssistantMessageEvent))] [JsonSerializable(typeof(AssistantReasoningData))] [JsonSerializable(typeof(AssistantReasoningDeltaData))] [JsonSerializable(typeof(AssistantReasoningDeltaEvent))] [JsonSerializable(typeof(AssistantReasoningEvent))] [JsonSerializable(typeof(AssistantStreamingDeltaData))] [JsonSerializable(typeof(AssistantStreamingDeltaEvent))] [JsonSerializable(typeof(AssistantTurnEndData))] [JsonSerializable(typeof(AssistantTurnEndEvent))] [JsonSerializable(typeof(AssistantTurnStartData))] [JsonSerializable(typeof(AssistantTurnStartEvent))] [JsonSerializable(typeof(AssistantUsageData))] [JsonSerializable(typeof(AssistantUsageEvent))] [JsonSerializable(typeof(HookEndData))] [JsonSerializable(typeof(HookEndDataError))] [JsonSerializable(typeof(HookEndEvent))] [JsonSerializable(typeof(HookStartData))] [JsonSerializable(typeof(HookStartEvent))] [JsonSerializable(typeof(PendingMessagesModifiedData))] [JsonSerializable(typeof(PendingMessagesModifiedEvent))] [JsonSerializable(typeof(SessionCompactionCompleteData))] [JsonSerializable(typeof(SessionCompactionCompleteDataCompactionTokensUsed))] [JsonSerializable(typeof(SessionCompactionCompleteEvent))] [JsonSerializable(typeof(SessionCompactionStartData))] [JsonSerializable(typeof(SessionCompactionStartEvent))] [JsonSerializable(typeof(SessionContextChangedData))] [JsonSerializable(typeof(SessionContextChangedEvent))] [JsonSerializable(typeof(SessionErrorData))] [JsonSerializable(typeof(SessionErrorEvent))] [JsonSerializable(typeof(SessionEvent))] [JsonSerializable(typeof(SessionHandoffData))] [JsonSerializable(typeof(SessionHandoffDataRepository))] [JsonSerializable(typeof(SessionHandoffEvent))] [JsonSerializable(typeof(SessionIdleData))] [JsonSerializable(typeof(SessionIdleEvent))] [JsonSerializable(typeof(SessionInfoData))] [JsonSerializable(typeof(SessionInfoEvent))] [JsonSerializable(typeof(SessionModeChangedData))] [JsonSerializable(typeof(SessionModeChangedEvent))] [JsonSerializable(typeof(SessionModelChangeData))] [JsonSerializable(typeof(SessionModelChangeEvent))] [JsonSerializable(typeof(SessionPlanChangedData))] [JsonSerializable(typeof(SessionPlanChangedEvent))] [JsonSerializable(typeof(SessionResumeData))] [JsonSerializable(typeof(SessionResumeDataContext))] [JsonSerializable(typeof(SessionResumeEvent))] [JsonSerializable(typeof(SessionShutdownData))] [JsonSerializable(typeof(SessionShutdownDataCodeChanges))] [JsonSerializable(typeof(SessionShutdownEvent))] [JsonSerializable(typeof(SessionSnapshotRewindData))] [JsonSerializable(typeof(SessionSnapshotRewindEvent))] [JsonSerializable(typeof(SessionStartData))] [JsonSerializable(typeof(SessionStartDataContext))] [JsonSerializable(typeof(SessionStartEvent))] [JsonSerializable(typeof(SessionTaskCompleteData))] [JsonSerializable(typeof(SessionTaskCompleteEvent))] [JsonSerializable(typeof(SessionTitleChangedData))] [JsonSerializable(typeof(SessionTitleChangedEvent))] [JsonSerializable(typeof(SessionTruncationData))] [JsonSerializable(typeof(SessionTruncationEvent))] [JsonSerializable(typeof(SessionUsageInfoData))] [JsonSerializable(typeof(SessionUsageInfoEvent))] [JsonSerializable(typeof(SessionWarningData))] [JsonSerializable(typeof(SessionWarningEvent))] [JsonSerializable(typeof(SessionWorkspaceFileChangedData))] [JsonSerializable(typeof(SessionWorkspaceFileChangedEvent))] [JsonSerializable(typeof(SkillInvokedData))] [JsonSerializable(typeof(SkillInvokedEvent))] [JsonSerializable(typeof(SubagentCompletedData))] [JsonSerializable(typeof(SubagentCompletedEvent))] [JsonSerializable(typeof(SubagentFailedData))] [JsonSerializable(typeof(SubagentFailedEvent))] [JsonSerializable(typeof(SubagentSelectedData))] [JsonSerializable(typeof(SubagentSelectedEvent))] [JsonSerializable(typeof(SubagentStartedData))] [JsonSerializable(typeof(SubagentStartedEvent))] [JsonSerializable(typeof(SystemMessageData))] [JsonSerializable(typeof(SystemMessageDataMetadata))] [JsonSerializable(typeof(SystemMessageEvent))] [JsonSerializable(typeof(ToolExecutionCompleteData))] [JsonSerializable(typeof(ToolExecutionCompleteDataError))] [JsonSerializable(typeof(ToolExecutionCompleteDataResult))] [JsonSerializable(typeof(ToolExecutionCompleteDataResultContentsItem))] [JsonSerializable(typeof(ToolExecutionCompleteDataResultContentsItemAudio))] [JsonSerializable(typeof(ToolExecutionCompleteDataResultContentsItemImage))] [JsonSerializable(typeof(ToolExecutionCompleteDataResultContentsItemResource))] [JsonSerializable(typeof(ToolExecutionCompleteDataResultContentsItemResourceLink))] [JsonSerializable(typeof(ToolExecutionCompleteDataResultContentsItemResourceLinkIconsItem))] [JsonSerializable(typeof(ToolExecutionCompleteDataResultContentsItemTerminal))] [JsonSerializable(typeof(ToolExecutionCompleteDataResultContentsItemText))] [JsonSerializable(typeof(ToolExecutionCompleteEvent))] [JsonSerializable(typeof(ToolExecutionPartialResultData))] [JsonSerializable(typeof(ToolExecutionPartialResultEvent))] [JsonSerializable(typeof(ToolExecutionProgressData))] [JsonSerializable(typeof(ToolExecutionProgressEvent))] [JsonSerializable(typeof(ToolExecutionStartData))] [JsonSerializable(typeof(ToolExecutionStartEvent))] [JsonSerializable(typeof(ToolUserRequestedData))] [JsonSerializable(typeof(ToolUserRequestedEvent))] [JsonSerializable(typeof(UserMessageData))] [JsonSerializable(typeof(UserMessageDataAttachmentsItem))] [JsonSerializable(typeof(UserMessageDataAttachmentsItemDirectory))] [JsonSerializable(typeof(UserMessageDataAttachmentsItemDirectoryLineRange))] [JsonSerializable(typeof(UserMessageDataAttachmentsItemFile))] [JsonSerializable(typeof(UserMessageDataAttachmentsItemFileLineRange))] [JsonSerializable(typeof(UserMessageDataAttachmentsItemSelection))] [JsonSerializable(typeof(UserMessageDataAttachmentsItemSelectionSelection))] [JsonSerializable(typeof(UserMessageDataAttachmentsItemSelectionSelectionEnd))] [JsonSerializable(typeof(UserMessageDataAttachmentsItemSelectionSelectionStart))] [JsonSerializable(typeof(UserMessageEvent))] internal partial class SessionEventsJsonContext : JsonSerializerContext;