[codex] Pin Python SDK to glibc-compatible runtime (#25907)

## Summary
- pin the Python SDK runtime package to `openai-codex-cli-bin==0.136.0`
so Ubuntu/glibc installs resolve a compatible wheel
- refresh generated SDK artifacts and lock data for the runtime update
- keep newly generated client-message-id wire models internal to the
generated protocol layer

## Dependency
- merge #25906 first so the Python SDK release publishes both manylinux
and musllinux runtime wheels before publishing the package with this pin

## Validation
- ran `just fmt`
- regenerated the Python public API helpers
- validated the edited workflow YAML
- CI passed 29/29 checks
This commit is contained in:
Ahmed Ibrahim
2026-06-02 12:27:01 -07:00
committed by GitHub
Unverified
parent 9de568372d
commit bc49677ec8
9 changed files with 407 additions and 110 deletions
@@ -57,6 +57,7 @@ from .v2_all import ThreadRealtimeSdpNotification
from .v2_all import ThreadRealtimeStartedNotification
from .v2_all import ThreadRealtimeTranscriptDeltaNotification
from .v2_all import ThreadRealtimeTranscriptDoneNotification
from .v2_all import ThreadSettingsUpdatedNotification
from .v2_all import ThreadStartedNotification
from .v2_all import ThreadStatusChangedNotification
from .v2_all import ThreadTokenUsageUpdatedNotification
@@ -122,6 +123,7 @@ NOTIFICATION_MODELS: dict[str, type[BaseModel]] = {
"thread/realtime/started": ThreadRealtimeStartedNotification,
"thread/realtime/transcript/delta": ThreadRealtimeTranscriptDeltaNotification,
"thread/realtime/transcript/done": ThreadRealtimeTranscriptDoneNotification,
"thread/settings/updated": ThreadSettingsUpdatedNotification,
"thread/started": ThreadStartedNotification,
"thread/status/changed": ThreadStatusChangedNotification,
"thread/tokenUsage/updated": ThreadTokenUsageUpdatedNotification,
+369 -77
View File
@@ -56,7 +56,7 @@ class ActivePermissionProfile(BaseModel):
extends: Annotated[
str | None,
Field(
description="Parent profile identifier once permissions profiles support inheritance. This is currently always `null`."
description="Parent profile identifier from the selected permissions profile's `extends` setting, when present."
),
] = None
id: Annotated[
@@ -77,6 +77,11 @@ class AddCreditsNudgeEmailStatus(Enum):
cooldown_active = "cooldown_active"
class AdditionalContextKind(Enum):
untrusted = "untrusted"
application = "application"
class AdditionalNetworkPermissions(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -251,6 +256,11 @@ class AuthMode(Enum):
agent_identity = "agentIdentity"
class AutoCompactTokenLimitScope(Enum):
total = "total"
body_after_prefix = "body_after_prefix"
class AutoReviewDecisionSource(RootModel[Literal["agent"]]):
model_config = ConfigDict(
populate_by_name=True,
@@ -563,6 +573,13 @@ class CommandMigration(BaseModel):
name: str
class ComputerUseRequirements(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
allow_locked_computer_use: Annotated[bool | None, Field(alias="allowLockedComputerUse")] = None
class MdmConfigLayerSource(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -675,7 +692,7 @@ class ConfigReadParams(BaseModel):
description="Optional working directory to resolve project config layers. If specified, return the effective config as seen from that directory (i.e., including any project layers between `cwd` and the project/repo root)."
),
] = None
include_layers: Annotated[bool | None, Field(alias="includeLayers")] = False
include_layers: Annotated[bool | None, Field(alias="includeLayers")] = None
class CommandConfiguredHookHandler(BaseModel):
@@ -913,7 +930,7 @@ class FeedbackUploadParams(BaseModel):
)
classification: str
extra_log_files: Annotated[list[str] | None, Field(alias="extraLogFiles")] = None
include_logs: Annotated[bool, Field(alias="includeLogs")]
include_logs: Annotated[bool | None, Field(alias="includeLogs")] = None
reason: str | None = None
tags: dict[str, Any] | None = None
thread_id: Annotated[str | None, Field(alias="threadId")] = None
@@ -939,7 +956,7 @@ class FileChangeOutputDeltaNotification(BaseModel):
class FileSystemAccessMode(Enum):
read = "read"
write = "write"
none = "none"
deny = "deny"
class PathFileSystemPath(BaseModel):
@@ -1276,6 +1293,17 @@ class InputTextFunctionCallOutputContentItem(BaseModel):
]
class EncryptedContentFunctionCallOutputContentItem(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
encrypted_content: str
type: Annotated[
Literal["encrypted_content"],
Field(title="EncryptedContentFunctionCallOutputContentItemType"),
]
class FuzzyFileSearchMatchType(Enum):
file = "file"
directory = "directory"
@@ -1335,7 +1363,7 @@ class GetAccountParams(BaseModel):
alias="refreshToken",
description="When `true`, requests a proactive token refresh before returning.\n\nIn managed auth mode this triggers the normal refresh-token flow. In external auth mode this flag is ignored. Clients should refresh tokens themselves and call `account/login/start` with `chatgptAuthTokens`.",
),
] = False
] = None
class GitInfo(BaseModel):
@@ -1425,6 +1453,8 @@ class HookEventName(Enum):
post_compact = "postCompact"
session_start = "sessionStart"
user_prompt_submit = "userPromptSubmit"
subagent_start = "subagentStart"
subagent_stop = "subagentStop"
stop = "stop"
@@ -1506,6 +1536,8 @@ class HooksListParams(BaseModel):
class ImageDetail(Enum):
auto = "auto"
low = "low"
high = "high"
original = "original"
@@ -1742,6 +1774,8 @@ class ManagedHooksRequirements(BaseModel):
pre_tool_use: Annotated[list[ConfiguredHookMatcherGroup], Field(alias="PreToolUse")]
session_start: Annotated[list[ConfiguredHookMatcherGroup], Field(alias="SessionStart")]
stop: Annotated[list[ConfiguredHookMatcherGroup], Field(alias="Stop")]
subagent_start: Annotated[list[ConfiguredHookMatcherGroup], Field(alias="SubagentStart")]
subagent_stop: Annotated[list[ConfiguredHookMatcherGroup], Field(alias="SubagentStop")]
user_prompt_submit: Annotated[list[ConfiguredHookMatcherGroup], Field(alias="UserPromptSubmit")]
managed_dir: Annotated[str | None, Field(alias="managedDir")] = None
windows_managed_dir: Annotated[str | None, Field(alias="windowsManagedDir")] = None
@@ -1835,6 +1869,18 @@ class McpResourceReadParams(BaseModel):
uri: str
class McpServerInfo(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
description: str | None = None
icons: list | None = None
name: str
title: str | None = None
version: str
website_url: Annotated[str | None, Field(alias="websiteUrl")] = None
class McpServerMigration(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -2142,7 +2188,7 @@ class NetworkRequirements(BaseModel):
class NetworkUnixSocketPermission(Enum):
allow = "allow"
none = "none"
deny = "deny"
class NonSteerableTurnKind(Enum):
@@ -2188,6 +2234,32 @@ class PatchChangeKind(
root: AddPatchChangeKind | DeletePatchChangeKind | UpdatePatchChangeKind
class PermissionProfileListParams(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
cursor: Annotated[
str | None, Field(description="Opaque pagination cursor returned by a previous call.")
] = None
cwd: Annotated[
str | None,
Field(description="Optional working directory to resolve project config layers."),
] = None
limit: Annotated[
int | None, Field(description="Optional page size; defaults to the full result set.", ge=0)
] = None
class PermissionProfileSummary(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
description: Annotated[
str | None, Field(description="Optional user-facing description for display in clients.")
] = None
id: Annotated[str, Field(description="Available permission profile identifier.")]
class Personality(Enum):
none = "none"
friendly = "friendly"
@@ -2332,6 +2404,7 @@ class PluginInterface(BaseModel):
class PluginListMarketplaceKind(Enum):
local = "local"
vertical = "vertical"
workspace_directory = "workspace-directory"
shared_with_me = "shared-with-me"
@@ -3469,6 +3542,20 @@ class SkillsConfigWriteResponse(BaseModel):
effective_enabled: Annotated[bool, Field(alias="effectiveEnabled")]
class SkillsExtraRootsSetParams(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
extra_roots: Annotated[list[AbsolutePathBuf], Field(alias="extraRoots")]
class SkillsExtraRootsSetResponse(BaseModel):
pass
model_config = ConfigDict(
populate_by_name=True,
)
class SkillsListParams(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -3624,6 +3711,20 @@ class ThreadCompactStartResponse(BaseModel):
)
class ThreadGoalClearParams(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
thread_id: Annotated[str, Field(alias="threadId")]
class ThreadGoalClearResponse(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
cleared: bool
class ThreadGoalClearedNotification(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -3631,6 +3732,13 @@ class ThreadGoalClearedNotification(BaseModel):
thread_id: Annotated[str, Field(alias="threadId")]
class ThreadGoalGetParams(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
thread_id: Annotated[str, Field(alias="threadId")]
class ThreadGoalStatus(Enum):
active = "active"
paused = "paused"
@@ -3749,6 +3857,7 @@ class McpToolCallThreadItem(BaseModel):
error: McpToolCallError | None = None
id: str
mcp_app_resource_uri: Annotated[str | None, Field(alias="mcpAppResourceUri")] = None
plugin_id: Annotated[str | None, Field(alias="pluginId")] = None
result: McpToolCallResult | None = None
server: str
status: McpToolCallStatus
@@ -3922,7 +4031,7 @@ class ThreadReadParams(BaseModel):
alias="includeTurns",
description="When true, include turns and their items from rollout history.",
),
] = False
] = None
thread_id: Annotated[str, Field(alias="threadId")]
@@ -4536,6 +4645,14 @@ class AccountUpdatedNotification(BaseModel):
plan_type: Annotated[PlanType | None, Field(alias="planType")] = None
class AdditionalContextEntry(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
kind: AdditionalContextKind
value: str
class AppConfig(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -4629,6 +4746,24 @@ class ThreadNameSetRequest(BaseModel):
params: ThreadSetNameParams
class ThreadGoalGetRequest(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
id: RequestId
method: Annotated[Literal["thread/goal/get"], Field(title="Thread/goal/getRequestMethod")]
params: ThreadGoalGetParams
class ThreadGoalClearRequest(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
id: RequestId
method: Annotated[Literal["thread/goal/clear"], Field(title="Thread/goal/clearRequestMethod")]
params: ThreadGoalClearParams
class ThreadMetadataUpdateRequest(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -4730,6 +4865,17 @@ class SkillsListRequest(BaseModel):
params: SkillsListParams
class SkillsExtraRootsSetRequest(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
id: RequestId
method: Annotated[
Literal["skills/extraRoots/set"], Field(title="Skills/extraRoots/setRequestMethod")
]
params: SkillsExtraRootsSetParams
class HooksListRequest(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -4995,6 +5141,17 @@ class ExperimentalFeatureListRequest(BaseModel):
params: ExperimentalFeatureListParams
class PermissionProfileListRequest(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
id: RequestId
method: Annotated[
Literal["permissionProfile/list"], Field(title="PermissionProfile/listRequestMethod")
]
params: PermissionProfileListParams
class ExperimentalFeatureEnablementSetRequest(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -5431,16 +5588,22 @@ class ConfigRequirements(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
allow_appshots: Annotated[bool | None, Field(alias="allowAppshots")] = None
allow_managed_hooks_only: Annotated[bool | None, Field(alias="allowManagedHooksOnly")] = None
allowed_approval_policies: Annotated[
list[AskForApproval] | None, Field(alias="allowedApprovalPolicies")
] = None
allowed_permissions: Annotated[list[str] | None, Field(alias="allowedPermissions")] = None
allowed_sandbox_modes: Annotated[
list[SandboxMode] | None, Field(alias="allowedSandboxModes")
] = None
allowed_web_search_modes: Annotated[
list[WebSearchMode] | None, Field(alias="allowedWebSearchModes")
] = None
allowed_windows_sandbox_implementations: Annotated[
list[WindowsSandboxSetupMode] | None, Field(alias="allowedWindowsSandboxImplementations")
] = None
computer_use: Annotated[ComputerUseRequirements | None, Field(alias="computerUse")] = None
enforce_residency: Annotated[ResidencyRequirement | None, Field(alias="enforceResidency")] = (
None
)
@@ -5608,13 +5771,19 @@ class InputImageFunctionCallOutputContentItem(BaseModel):
class FunctionCallOutputContentItem(
RootModel[InputTextFunctionCallOutputContentItem | InputImageFunctionCallOutputContentItem]
RootModel[
InputTextFunctionCallOutputContentItem
| InputImageFunctionCallOutputContentItem
| EncryptedContentFunctionCallOutputContentItem
]
):
model_config = ConfigDict(
populate_by_name=True,
)
root: Annotated[
InputTextFunctionCallOutputContentItem | InputImageFunctionCallOutputContentItem,
InputTextFunctionCallOutputContentItem
| InputImageFunctionCallOutputContentItem
| EncryptedContentFunctionCallOutputContentItem,
Field(
description="Responses API compatible content items that can be returned by a tool call. This is a subset of ContentItem with the types we support as function call outputs."
),
@@ -5767,6 +5936,7 @@ class ListMcpServerStatusParams(BaseModel):
int | None,
Field(description="Optional page size; defaults to a server-defined value.", ge=0),
] = None
thread_id: Annotated[str | None, Field(alias="threadId")] = None
class McpResourceReadResponse(BaseModel):
@@ -5784,6 +5954,7 @@ class McpServerStatus(BaseModel):
name: str
resource_templates: Annotated[list[ResourceTemplate], Field(alias="resourceTemplates")]
resources: list[Resource]
server_info: Annotated[McpServerInfo | None, Field(alias="serverInfo")] = None
tools: dict[str, Tool]
@@ -5817,6 +5988,13 @@ class Model(BaseModel):
] = []
availability_nux: Annotated[ModelAvailabilityNux | None, Field(alias="availabilityNux")] = None
default_reasoning_effort: Annotated[ReasoningEffort, Field(alias="defaultReasoningEffort")]
default_service_tier: Annotated[
str | None,
Field(
alias="defaultServiceTier",
description="Catalog default service tier id for this model, when one is configured.",
),
] = None
description: str
display_name: Annotated[str, Field(alias="displayName")]
hidden: bool
@@ -5859,6 +6037,20 @@ class OverriddenMetadata(BaseModel):
overriding_layer: Annotated[ConfigLayerMetadata, Field(alias="overridingLayer")]
class PermissionProfileListResponse(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
data: list[PermissionProfileSummary]
next_cursor: Annotated[
str | None,
Field(
alias="nextCursor",
description="Opaque cursor to pass to the next call to continue after the last item. If None, there are no more items to return.",
),
] = None
class PluginSharePrincipal(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -6332,6 +6524,30 @@ class ThreadGoal(BaseModel):
updated_at: Annotated[int, Field(alias="updatedAt")]
class ThreadGoalGetResponse(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
goal: ThreadGoal | None = None
class ThreadGoalSetParams(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
objective: str | None = None
status: ThreadGoalStatus | None = None
thread_id: Annotated[str, Field(alias="threadId")]
token_budget: Annotated[int | None, Field(alias="tokenBudget")] = None
class ThreadGoalSetResponse(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
goal: ThreadGoal
class ThreadGoalUpdatedNotification(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -6345,6 +6561,7 @@ class UserMessageThreadItem(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
client_id: Annotated[str | None, Field(alias="clientId")] = None
content: list[UserInput]
id: str
type: Annotated[Literal["userMessage"], Field(title="UserMessageThreadItemType")]
@@ -6536,6 +6753,55 @@ class ThreadListParams(BaseModel):
] = None
class ThreadResumeInitialTurnsPageParams(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
items_view: Annotated[
TurnItemsView | None,
Field(
alias="itemsView",
description="How much item detail to include for each returned turn; defaults to summary.",
),
] = None
limit: Annotated[int | None, Field(description="Optional turn page size.", ge=0)] = None
sort_direction: Annotated[
SortDirection | None,
Field(
alias="sortDirection",
description="Optional turn pagination direction; defaults to descending.",
),
] = None
class ThreadSettings(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
active_permission_profile: Annotated[
ActivePermissionProfile | None, Field(alias="activePermissionProfile")
] = None
approval_policy: Annotated[AskForApproval, Field(alias="approvalPolicy")]
approvals_reviewer: Annotated[ApprovalsReviewer, Field(alias="approvalsReviewer")]
collaboration_mode: Annotated[CollaborationMode, Field(alias="collaborationMode")]
cwd: AbsolutePathBuf
effort: ReasoningEffort | None = None
model: str
model_provider: Annotated[str, Field(alias="modelProvider")]
personality: Personality | None = None
sandbox_policy: Annotated[SandboxPolicy, Field(alias="sandboxPolicy")]
service_tier: Annotated[str | None, Field(alias="serviceTier")] = None
summary: ReasoningSummary | None = None
class ThreadSettingsUpdatedNotification(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
thread_id: Annotated[str, Field(alias="threadId")]
thread_settings: Annotated[ThreadSettings, Field(alias="threadSettings")]
class ThreadStartParams(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -6648,6 +6914,7 @@ class TurnStartParams(BaseModel):
description="Override where approval requests are routed for review on this turn and subsequent turns.",
),
] = None
client_user_message_id: Annotated[str | None, Field(alias="clientUserMessageId")] = None
cwd: Annotated[
str | None,
Field(description="Override the working directory for this turn and subsequent turns."),
@@ -6696,6 +6963,7 @@ class TurnSteerParams(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
client_user_message_id: Annotated[str | None, Field(alias="clientUserMessageId")] = None
expected_turn_id: Annotated[
str,
Field(
@@ -6803,6 +7071,15 @@ class ThreadForkRequest(BaseModel):
params: ThreadForkParams
class ThreadGoalSetRequest(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
id: RequestId
method: Annotated[Literal["thread/goal/set"], Field(title="Thread/goal/setRequestMethod")]
params: ThreadGoalSetParams
class ThreadListRequest(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -6891,6 +7168,41 @@ class ConfigValueWriteRequest(BaseModel):
params: ConfigValueWriteParams
class Config(BaseModel):
model_config = ConfigDict(
extra="allow",
populate_by_name=True,
)
analytics: AnalyticsConfig | None = None
approval_policy: AskForApproval | None = None
approvals_reviewer: Annotated[
ApprovalsReviewer | None,
Field(
description="[UNSTABLE] Optional default for where approval requests are routed for review."
),
] = None
compact_prompt: str | None = None
desktop: dict[str, Any] | None = None
developer_instructions: str | None = None
forced_chatgpt_workspace_id: ForcedChatgptWorkspaceIds | None = None
forced_login_method: ForcedLoginMethod | None = None
instructions: str | None = None
model: str | None = None
model_auto_compact_token_limit: int | None = None
model_auto_compact_token_limit_scope: AutoCompactTokenLimitScope | None = None
model_context_window: int | None = None
model_provider: str | None = None
model_reasoning_effort: ReasoningEffort | None = None
model_reasoning_summary: ReasoningSummary | None = None
model_verbosity: Verbosity | None = None
review_model: str | None = None
sandbox_mode: SandboxMode | None = None
sandbox_workspace_write: SandboxWorkspaceWrite | None = None
service_tier: str | None = None
tools: ToolsV2 | None = None
web_search: WebSearchMode | None = None
class ConfigBatchWriteParams(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -6913,6 +7225,15 @@ class ConfigBatchWriteParams(BaseModel):
] = None
class ConfigReadResponse(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
config: Config
layers: list[ConfigLayer] | None = None
origins: dict[str, ConfigLayerMetadata]
class ConfigWriteResponse(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -7115,29 +7436,6 @@ class PluginSummary(BaseModel):
source: PluginSource
class ProfileV2(BaseModel):
model_config = ConfigDict(
extra="allow",
populate_by_name=True,
)
approval_policy: AskForApproval | None = None
approvals_reviewer: Annotated[
ApprovalsReviewer | None,
Field(
description="[UNSTABLE] Optional profile-level override for where approval requests are routed for review. If omitted, the enclosing config default is used."
),
] = None
chatgpt_base_url: str | None = None
model: str | None = None
model_provider: str | None = None
model_reasoning_effort: ReasoningEffort | None = None
model_reasoning_summary: ReasoningSummary | None = None
model_verbosity: Verbosity | None = None
service_tier: str | None = None
tools: ToolsV2 | None = None
web_search: WebSearchMode | None = None
class RequestPermissionProfile(BaseModel):
model_config = ConfigDict(
extra="forbid",
@@ -7229,6 +7527,16 @@ class ThreadGoalUpdatedServerNotification(BaseModel):
params: ThreadGoalUpdatedNotification
class ThreadSettingsUpdatedServerNotification(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
method: Annotated[
Literal["thread/settings/updated"], Field(title="Thread/settings/updatedNotificationMethod")
]
params: ThreadSettingsUpdatedNotification
class ThreadTokenUsageUpdatedServerNotification(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -7393,6 +7701,15 @@ class TurnStartedNotification(BaseModel):
turn: Turn
class TurnsPage(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
backwards_cursor: Annotated[str | None, Field(alias="backwardsCursor")] = None
data: list[Turn]
next_cursor: Annotated[str | None, Field(alias="nextCursor")] = None
class PluginShareSaveRequest(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -7411,51 +7728,6 @@ class ConfigBatchWriteRequest(BaseModel):
params: ConfigBatchWriteParams
class Config(BaseModel):
model_config = ConfigDict(
extra="allow",
populate_by_name=True,
)
analytics: AnalyticsConfig | None = None
approval_policy: AskForApproval | None = None
approvals_reviewer: Annotated[
ApprovalsReviewer | None,
Field(
description="[UNSTABLE] Optional default for where approval requests are routed for review."
),
] = None
compact_prompt: str | None = None
desktop: dict[str, Any] | None = None
developer_instructions: str | None = None
forced_chatgpt_workspace_id: ForcedChatgptWorkspaceIds | None = None
forced_login_method: ForcedLoginMethod | None = None
instructions: str | None = None
model: str | None = None
model_auto_compact_token_limit: int | None = None
model_context_window: int | None = None
model_provider: str | None = None
model_reasoning_effort: ReasoningEffort | None = None
model_reasoning_summary: ReasoningSummary | None = None
model_verbosity: Verbosity | None = None
profile: str | None = None
profiles: dict[str, ProfileV2] | None = {}
review_model: str | None = None
sandbox_mode: SandboxMode | None = None
sandbox_workspace_write: SandboxWorkspaceWrite | None = None
service_tier: str | None = None
tools: ToolsV2 | None = None
web_search: WebSearchMode | None = None
class ConfigReadResponse(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
config: Config
layers: list[ConfigLayer] | None = None
origins: dict[str, ConfigLayerMetadata]
class ExternalAgentConfigDetectResponse(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -7892,6 +8164,14 @@ class ThreadRollbackResponse(BaseModel):
]
class ThreadSearchResult(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
)
snippet: str
thread: Thread
class ThreadStartResponse(BaseModel):
model_config = ConfigDict(
populate_by_name=True,
@@ -7960,6 +8240,9 @@ class ClientRequest(
| ThreadArchiveRequest
| ThreadUnsubscribeRequest
| ThreadNameSetRequest
| ThreadGoalSetRequest
| ThreadGoalGetRequest
| ThreadGoalClearRequest
| ThreadMetadataUpdateRequest
| ThreadUnarchiveRequest
| ThreadCompactStartRequest
@@ -7971,6 +8254,7 @@ class ClientRequest(
| ThreadReadRequest
| ThreadInjectItemsRequest
| SkillsListRequest
| SkillsExtraRootsSetRequest
| HooksListRequest
| MarketplaceAddRequest
| MarketplaceRemoveRequest
@@ -8004,6 +8288,7 @@ class ClientRequest(
| ModelListRequest
| ModelProviderCapabilitiesReadRequest
| ExperimentalFeatureListRequest
| PermissionProfileListRequest
| ExperimentalFeatureEnablementSetRequest
| McpServerOauthLoginRequest
| ConfigMcpServerReloadRequest
@@ -8043,6 +8328,9 @@ class ClientRequest(
| ThreadArchiveRequest
| ThreadUnsubscribeRequest
| ThreadNameSetRequest
| ThreadGoalSetRequest
| ThreadGoalGetRequest
| ThreadGoalClearRequest
| ThreadMetadataUpdateRequest
| ThreadUnarchiveRequest
| ThreadCompactStartRequest
@@ -8054,6 +8342,7 @@ class ClientRequest(
| ThreadReadRequest
| ThreadInjectItemsRequest
| SkillsListRequest
| SkillsExtraRootsSetRequest
| HooksListRequest
| MarketplaceAddRequest
| MarketplaceRemoveRequest
@@ -8087,6 +8376,7 @@ class ClientRequest(
| ModelListRequest
| ModelProviderCapabilitiesReadRequest
| ExperimentalFeatureListRequest
| PermissionProfileListRequest
| ExperimentalFeatureEnablementSetRequest
| McpServerOauthLoginRequest
| ConfigMcpServerReloadRequest
@@ -8158,6 +8448,7 @@ class ServerNotification(
| ThreadNameUpdatedServerNotification
| ThreadGoalUpdatedServerNotification
| ThreadGoalClearedServerNotification
| ThreadSettingsUpdatedServerNotification
| ThreadTokenUsageUpdatedServerNotification
| TurnStartedServerNotification
| HookStartedServerNotification
@@ -8227,6 +8518,7 @@ class ServerNotification(
| ThreadNameUpdatedServerNotification
| ThreadGoalUpdatedServerNotification
| ThreadGoalClearedServerNotification
| ThreadSettingsUpdatedServerNotification
| ThreadTokenUsageUpdatedServerNotification
| TurnStartedServerNotification
| HookStartedServerNotification