| |
| |
|
|
| from __future__ import annotations |
|
|
| from typing import TypeAlias |
|
|
| from pydantic import BaseModel |
|
|
| from .v2_all import AccountLoginCompletedNotification |
| from .v2_all import AccountRateLimitsUpdatedNotification |
| from .v2_all import AccountUpdatedNotification |
| from .v2_all import AgentMessageDeltaNotification |
| from .v2_all import AppListUpdatedNotification |
| from .v2_all import AuthRecoveryNotification |
| from .v2_all import CommandExecOutputDeltaNotification |
| from .v2_all import CommandExecutionOutputDeltaNotification |
| from .v2_all import ConfigWarningNotification |
| from .v2_all import ContextCompactedNotification |
| from .v2_all import DeprecationNoticeNotification |
| from .v2_all import EnvironmentConnectionNotification |
| from .v2_all import ErrorNotification |
| from .v2_all import ExternalAgentConfigImportCompletedNotification |
| from .v2_all import ExternalAgentConfigImportProgressNotification |
| from .v2_all import FileChangeOutputDeltaNotification |
| from .v2_all import FileChangePatchUpdatedNotification |
| from .v2_all import FsChangedNotification |
| from .v2_all import FuzzyFileSearchSessionCompletedNotification |
| from .v2_all import FuzzyFileSearchSessionUpdatedNotification |
| from .v2_all import GuardianWarningNotification |
| from .v2_all import HookCompletedNotification |
| from .v2_all import HookStartedNotification |
| from .v2_all import ItemCompletedNotification |
| from .v2_all import ItemGuardianApprovalReviewCompletedNotification |
| from .v2_all import ItemGuardianApprovalReviewStartedNotification |
| from .v2_all import ItemStartedNotification |
| from .v2_all import McpServerEventStreamNotification |
| from .v2_all import McpServerOauthLoginCompletedNotification |
| from .v2_all import McpServerStatusUpdatedNotification |
| from .v2_all import McpToolCallProgressNotification |
| from .v2_all import ModelReroutedNotification |
| from .v2_all import ModelSafetyBufferingUpdatedNotification |
| from .v2_all import ModelVerificationNotification |
| from .v2_all import PlanDeltaNotification |
| from .v2_all import ProcessExitedNotification |
| from .v2_all import ProcessOutputDeltaNotification |
| from .v2_all import ProjectChangedNotification |
| from .v2_all import ReasoningSummaryPartAddedNotification |
| from .v2_all import ReasoningSummaryTextDeltaNotification |
| from .v2_all import ReasoningTextDeltaNotification |
| from .v2_all import RemoteControlStatusChangedNotification |
| from .v2_all import ServerRequestResolvedNotification |
| from .v2_all import SkillsChangedNotification |
| from .v2_all import StrictReviewRequiredNotification |
| from .v2_all import TerminalInteractionNotification |
| from .v2_all import ThreadArchivedNotification |
| from .v2_all import ThreadAttachmentUpdatedNotification |
| from .v2_all import ThreadClosedNotification |
| from .v2_all import ThreadDeletedNotification |
| from .v2_all import ThreadGoalClearedNotification |
| from .v2_all import ThreadGoalUpdatedNotification |
| from .v2_all import ThreadNameUpdatedNotification |
| from .v2_all import ThreadProjectUpdatedNotification |
| from .v2_all import ThreadQueueChangedNotification |
| from .v2_all import ThreadRealtimeClosedNotification |
| from .v2_all import ThreadRealtimeErrorNotification |
| from .v2_all import ThreadRealtimeItemAddedNotification |
| from .v2_all import ThreadRealtimeItemCompletedNotification |
| from .v2_all import ThreadRealtimeItemStartedNotification |
| from .v2_all import ThreadRealtimeItemTranscriptDeltaNotification |
| from .v2_all import ThreadRealtimeOutputAudioDeltaNotification |
| from .v2_all import ThreadRealtimeSdpNotification |
| from .v2_all import ThreadRealtimeStartedNotification |
| from .v2_all import ThreadRealtimeTranscriptDeltaNotification |
| from .v2_all import ThreadRealtimeTranscriptDoneNotification |
| from .v2_all import ThreadRevertedNotification |
| from .v2_all import ThreadSettingsUpdatedNotification |
| from .v2_all import ThreadStartedNotification |
| from .v2_all import ThreadStatusChangedNotification |
| from .v2_all import ThreadTokenUsageUpdatedNotification |
| from .v2_all import ThreadUnarchivedNotification |
| from .v2_all import TurnCompletedNotification |
| from .v2_all import TurnDiffUpdatedNotification |
| from .v2_all import TurnModerationMetadataNotification |
| from .v2_all import TurnPlanUpdatedNotification |
| from .v2_all import TurnStartedNotification |
| from .v2_all import WarningNotification |
| from .v2_all import WindowsSandboxSetupCompletedNotification |
| from .v2_all import WindowsWorldWritableWarningNotification |
|
|
| KnownNotificationPayload: TypeAlias = ( |
| AccountLoginCompletedNotification |
| | AccountRateLimitsUpdatedNotification |
| | AccountUpdatedNotification |
| | AgentMessageDeltaNotification |
| | AppListUpdatedNotification |
| | AuthRecoveryNotification |
| | CommandExecOutputDeltaNotification |
| | CommandExecutionOutputDeltaNotification |
| | ConfigWarningNotification |
| | ContextCompactedNotification |
| | DeprecationNoticeNotification |
| | EnvironmentConnectionNotification |
| | ErrorNotification |
| | ExternalAgentConfigImportCompletedNotification |
| | ExternalAgentConfigImportProgressNotification |
| | FileChangeOutputDeltaNotification |
| | FileChangePatchUpdatedNotification |
| | FsChangedNotification |
| | FuzzyFileSearchSessionCompletedNotification |
| | FuzzyFileSearchSessionUpdatedNotification |
| | GuardianWarningNotification |
| | HookCompletedNotification |
| | HookStartedNotification |
| | ItemCompletedNotification |
| | ItemGuardianApprovalReviewCompletedNotification |
| | ItemGuardianApprovalReviewStartedNotification |
| | ItemStartedNotification |
| | McpServerEventStreamNotification |
| | McpServerOauthLoginCompletedNotification |
| | McpServerStatusUpdatedNotification |
| | McpToolCallProgressNotification |
| | ModelReroutedNotification |
| | ModelSafetyBufferingUpdatedNotification |
| | ModelVerificationNotification |
| | PlanDeltaNotification |
| | ProcessExitedNotification |
| | ProcessOutputDeltaNotification |
| | ProjectChangedNotification |
| | ReasoningSummaryPartAddedNotification |
| | ReasoningSummaryTextDeltaNotification |
| | ReasoningTextDeltaNotification |
| | RemoteControlStatusChangedNotification |
| | ServerRequestResolvedNotification |
| | SkillsChangedNotification |
| | StrictReviewRequiredNotification |
| | TerminalInteractionNotification |
| | ThreadArchivedNotification |
| | ThreadAttachmentUpdatedNotification |
| | ThreadClosedNotification |
| | ThreadDeletedNotification |
| | ThreadGoalClearedNotification |
| | ThreadGoalUpdatedNotification |
| | ThreadNameUpdatedNotification |
| | ThreadProjectUpdatedNotification |
| | ThreadQueueChangedNotification |
| | ThreadRealtimeClosedNotification |
| | ThreadRealtimeErrorNotification |
| | ThreadRealtimeItemAddedNotification |
| | ThreadRealtimeItemCompletedNotification |
| | ThreadRealtimeItemStartedNotification |
| | ThreadRealtimeItemTranscriptDeltaNotification |
| | ThreadRealtimeOutputAudioDeltaNotification |
| | ThreadRealtimeSdpNotification |
| | ThreadRealtimeStartedNotification |
| | ThreadRealtimeTranscriptDeltaNotification |
| | ThreadRealtimeTranscriptDoneNotification |
| | ThreadRevertedNotification |
| | ThreadSettingsUpdatedNotification |
| | ThreadStartedNotification |
| | ThreadStatusChangedNotification |
| | ThreadTokenUsageUpdatedNotification |
| | ThreadUnarchivedNotification |
| | TurnCompletedNotification |
| | TurnDiffUpdatedNotification |
| | TurnModerationMetadataNotification |
| | TurnPlanUpdatedNotification |
| | TurnStartedNotification |
| | WarningNotification |
| | WindowsSandboxSetupCompletedNotification |
| | WindowsWorldWritableWarningNotification |
| ) |
|
|
| NOTIFICATION_MODELS: dict[str, type[KnownNotificationPayload]] = { |
| "account/login/completed": AccountLoginCompletedNotification, |
| "account/rateLimits/updated": AccountRateLimitsUpdatedNotification, |
| "account/updated": AccountUpdatedNotification, |
| "app/list/updated": AppListUpdatedNotification, |
| "autoApprovalReview/strictReviewRequired": StrictReviewRequiredNotification, |
| "command/exec/outputDelta": CommandExecOutputDeltaNotification, |
| "configWarning": ConfigWarningNotification, |
| "deprecationNotice": DeprecationNoticeNotification, |
| "error": ErrorNotification, |
| "externalAgentConfig/import/completed": ExternalAgentConfigImportCompletedNotification, |
| "externalAgentConfig/import/progress": ExternalAgentConfigImportProgressNotification, |
| "fs/changed": FsChangedNotification, |
| "fuzzyFileSearch/sessionCompleted": FuzzyFileSearchSessionCompletedNotification, |
| "fuzzyFileSearch/sessionUpdated": FuzzyFileSearchSessionUpdatedNotification, |
| "guardianWarning": GuardianWarningNotification, |
| "hook/completed": HookCompletedNotification, |
| "hook/started": HookStartedNotification, |
| "item/agentMessage/delta": AgentMessageDeltaNotification, |
| "item/autoApprovalReview/completed": ItemGuardianApprovalReviewCompletedNotification, |
| "item/autoApprovalReview/started": ItemGuardianApprovalReviewStartedNotification, |
| "item/commandExecution/outputDelta": CommandExecutionOutputDeltaNotification, |
| "item/commandExecution/terminalInteraction": TerminalInteractionNotification, |
| "item/completed": ItemCompletedNotification, |
| "item/fileChange/outputDelta": FileChangeOutputDeltaNotification, |
| "item/fileChange/patchUpdated": FileChangePatchUpdatedNotification, |
| "item/mcpToolCall/progress": McpToolCallProgressNotification, |
| "item/plan/delta": PlanDeltaNotification, |
| "item/reasoning/summaryPartAdded": ReasoningSummaryPartAddedNotification, |
| "item/reasoning/summaryTextDelta": ReasoningSummaryTextDeltaNotification, |
| "item/reasoning/textDelta": ReasoningTextDeltaNotification, |
| "item/started": ItemStartedNotification, |
| "mcpServer/event/stream/notification": McpServerEventStreamNotification, |
| "mcpServer/oauthLogin/completed": McpServerOauthLoginCompletedNotification, |
| "mcpServer/startupStatus/updated": McpServerStatusUpdatedNotification, |
| "model/rerouted": ModelReroutedNotification, |
| "model/safetyBuffering/updated": ModelSafetyBufferingUpdatedNotification, |
| "model/verification": ModelVerificationNotification, |
| "modelProvider/authRecoveryCompleted": AuthRecoveryNotification, |
| "modelProvider/authRecoveryStarted": AuthRecoveryNotification, |
| "process/exited": ProcessExitedNotification, |
| "process/outputDelta": ProcessOutputDeltaNotification, |
| "project/changed": ProjectChangedNotification, |
| "remoteControl/status/changed": RemoteControlStatusChangedNotification, |
| "serverRequest/resolved": ServerRequestResolvedNotification, |
| "skills/changed": SkillsChangedNotification, |
| "thread/archived": ThreadArchivedNotification, |
| "thread/attachment/updated": ThreadAttachmentUpdatedNotification, |
| "thread/closed": ThreadClosedNotification, |
| "thread/compacted": ContextCompactedNotification, |
| "thread/deleted": ThreadDeletedNotification, |
| "thread/environment/connected": EnvironmentConnectionNotification, |
| "thread/environment/disconnected": EnvironmentConnectionNotification, |
| "thread/goal/cleared": ThreadGoalClearedNotification, |
| "thread/goal/updated": ThreadGoalUpdatedNotification, |
| "thread/name/updated": ThreadNameUpdatedNotification, |
| "thread/project/updated": ThreadProjectUpdatedNotification, |
| "thread/queue/changed": ThreadQueueChangedNotification, |
| "thread/realtime/closed": ThreadRealtimeClosedNotification, |
| "thread/realtime/error": ThreadRealtimeErrorNotification, |
| "thread/realtime/item/completed": ThreadRealtimeItemCompletedNotification, |
| "thread/realtime/item/started": ThreadRealtimeItemStartedNotification, |
| "thread/realtime/item/transcript/delta": ThreadRealtimeItemTranscriptDeltaNotification, |
| "thread/realtime/itemAdded": ThreadRealtimeItemAddedNotification, |
| "thread/realtime/outputAudio/delta": ThreadRealtimeOutputAudioDeltaNotification, |
| "thread/realtime/sdp": ThreadRealtimeSdpNotification, |
| "thread/realtime/started": ThreadRealtimeStartedNotification, |
| "thread/realtime/transcript/delta": ThreadRealtimeTranscriptDeltaNotification, |
| "thread/realtime/transcript/done": ThreadRealtimeTranscriptDoneNotification, |
| "thread/reverted": ThreadRevertedNotification, |
| "thread/settings/updated": ThreadSettingsUpdatedNotification, |
| "thread/started": ThreadStartedNotification, |
| "thread/status/changed": ThreadStatusChangedNotification, |
| "thread/tokenUsage/updated": ThreadTokenUsageUpdatedNotification, |
| "thread/unarchived": ThreadUnarchivedNotification, |
| "turn/completed": TurnCompletedNotification, |
| "turn/diff/updated": TurnDiffUpdatedNotification, |
| "turn/moderationMetadata": TurnModerationMetadataNotification, |
| "turn/plan/updated": TurnPlanUpdatedNotification, |
| "turn/started": TurnStartedNotification, |
| "warning": WarningNotification, |
| "windows/worldWritableWarning": WindowsWorldWritableWarningNotification, |
| "windowsSandbox/setupCompleted": WindowsSandboxSetupCompletedNotification, |
| } |
|
|
| DIRECT_TURN_ID_NOTIFICATION_TYPES: tuple[type[BaseModel], ...] = ( |
| AgentMessageDeltaNotification, |
| AuthRecoveryNotification, |
| CommandExecutionOutputDeltaNotification, |
| ContextCompactedNotification, |
| ErrorNotification, |
| FileChangeOutputDeltaNotification, |
| FileChangePatchUpdatedNotification, |
| HookCompletedNotification, |
| HookStartedNotification, |
| ItemCompletedNotification, |
| ItemGuardianApprovalReviewCompletedNotification, |
| ItemGuardianApprovalReviewStartedNotification, |
| ItemStartedNotification, |
| McpToolCallProgressNotification, |
| ModelReroutedNotification, |
| ModelSafetyBufferingUpdatedNotification, |
| ModelVerificationNotification, |
| PlanDeltaNotification, |
| ReasoningSummaryPartAddedNotification, |
| ReasoningSummaryTextDeltaNotification, |
| ReasoningTextDeltaNotification, |
| StrictReviewRequiredNotification, |
| TerminalInteractionNotification, |
| ThreadGoalUpdatedNotification, |
| ThreadTokenUsageUpdatedNotification, |
| TurnDiffUpdatedNotification, |
| TurnModerationMetadataNotification, |
| TurnPlanUpdatedNotification, |
| ) |
|
|
| NESTED_TURN_NOTIFICATION_TYPES: tuple[type[BaseModel], ...] = ( |
| TurnCompletedNotification, |
| TurnStartedNotification, |
| ) |
|
|
|
|
| def notification_turn_id(payload: BaseModel) -> str | None: |
| """Return the turn id carried by generated notification payload metadata.""" |
| if isinstance(payload, DIRECT_TURN_ID_NOTIFICATION_TYPES): |
| return payload.turn_id if isinstance(payload.turn_id, str) else None |
| if isinstance(payload, NESTED_TURN_NOTIFICATION_TYPES): |
| return payload.turn.id |
| return None |
|
|