mirror of
https://github.com/openai/codex.git
synced 2026-09-13 11:47:17 +00:00
Generate Python SDK types from repository app-server schemas (#44032)
## Why Keep Python protocol models aligned with the checked-in app-server schemas and preserve reviewed generated artifacts when staging SDK releases. ## What changed - Generate SDK types from the schema directory configured in `pyproject.toml`, with a `--schema-dir` override, instead of invoking the pinned runtime binary. - Refresh Python artifacts through `just write-app-server-schema` for standard repository exports. Skip SDK updates for scratch and experimental exports. - Regenerate protocol models and notification dispatch, deriving the known payload union from the registry so `Notification.payload` covers every registered event. - Explicitly allowlist convenience API parameters so new protocol fields do not silently expand method signatures. Preserve existing approval path wrappers. - Stage SDK releases using checked-in generated files without regenerating them. ## Testing Add coverage for schema selection, refresh gating and failure handling, release artifact preservation, notification payload typing, and approval path compatibility. Update the generation drift test to use repository schemas. GitOrigin-RevId: fab350b07cf170258b91fbafa8da384aeb2e3bd7
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import TypeAlias
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from .v2_all import AccountLoginCompletedNotification
|
||||
@@ -10,6 +12,7 @@ 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
|
||||
@@ -31,6 +34,7 @@ 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
|
||||
@@ -40,12 +44,14 @@ 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 ThreadClosedNotification
|
||||
@@ -53,14 +59,20 @@ 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
|
||||
@@ -75,11 +87,94 @@ from .v2_all import WarningNotification
|
||||
from .v2_all import WindowsSandboxSetupCompletedNotification
|
||||
from .v2_all import WindowsWorldWritableWarningNotification
|
||||
|
||||
NOTIFICATION_MODELS: dict[str, type[BaseModel]] = {
|
||||
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
|
||||
| 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,
|
||||
@@ -106,13 +201,17 @@ NOTIFICATION_MODELS: dict[str, type[BaseModel]] = {
|
||||
"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,
|
||||
@@ -125,14 +224,20 @@ NOTIFICATION_MODELS: dict[str, type[BaseModel]] = {
|
||||
"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,
|
||||
@@ -150,6 +255,7 @@ NOTIFICATION_MODELS: dict[str, type[BaseModel]] = {
|
||||
|
||||
DIRECT_TURN_ID_NOTIFICATION_TYPES: tuple[type[BaseModel], ...] = (
|
||||
AgentMessageDeltaNotification,
|
||||
AuthRecoveryNotification,
|
||||
CommandExecutionOutputDeltaNotification,
|
||||
ContextCompactedNotification,
|
||||
ErrorNotification,
|
||||
@@ -169,6 +275,7 @@ DIRECT_TURN_ID_NOTIFICATION_TYPES: tuple[type[BaseModel], ...] = (
|
||||
ReasoningSummaryPartAddedNotification,
|
||||
ReasoningSummaryTextDeltaNotification,
|
||||
ReasoningTextDeltaNotification,
|
||||
StrictReviewRequiredNotification,
|
||||
TerminalInteractionNotification,
|
||||
ThreadGoalUpdatedNotification,
|
||||
ThreadTokenUsageUpdatedNotification,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user