mirror of
https://github.com/openai/codex.git
synced 2026-10-19 17:28:46 +00:00
Prepare Python SDK 0.149.0 release
This commit is contained in:
@@ -16,7 +16,7 @@ classifiers = [
|
||||
"Intended Audience :: Developers",
|
||||
"Topic :: Software Development :: Libraries :: Python Modules",
|
||||
]
|
||||
dependencies = ["pydantic>=2.12", "openai-codex-cli-bin==0.147.0"]
|
||||
dependencies = ["pydantic>=2.12", "openai-codex-cli-bin==0.149.0"]
|
||||
|
||||
[project.urls]
|
||||
Homepage = "https://github.com/openai/codex"
|
||||
@@ -65,10 +65,10 @@ combine-as-imports = true
|
||||
|
||||
[tool.uv]
|
||||
exclude-newer = "7 days"
|
||||
exclude-newer-package = { openai-codex-cli-bin = "2026-08-19T00:00:00Z" }
|
||||
exclude-newer-package = { openai-codex-cli-bin = "2026-08-21T05:44:00Z" }
|
||||
index-strategy = "first-index"
|
||||
|
||||
[tool.uv.pip]
|
||||
exclude-newer = "7 days"
|
||||
exclude-newer-package = { openai-codex-cli-bin = "2026-08-19T00:00:00Z" }
|
||||
exclude-newer-package = { openai-codex-cli-bin = "2026-08-21T05:44:00Z" }
|
||||
index-strategy = "first-index"
|
||||
|
||||
@@ -40,12 +40,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,6 +55,8 @@ 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
|
||||
@@ -61,6 +65,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 ThreadRevertedNotification
|
||||
from .v2_all import ThreadSettingsUpdatedNotification
|
||||
from .v2_all import ThreadStartedNotification
|
||||
from .v2_all import ThreadStatusChangedNotification
|
||||
@@ -80,6 +85,7 @@ NOTIFICATION_MODELS: dict[str, type[BaseModel]] = {
|
||||
"account/rateLimits/updated": AccountRateLimitsUpdatedNotification,
|
||||
"account/updated": AccountUpdatedNotification,
|
||||
"app/list/updated": AppListUpdatedNotification,
|
||||
"autoApprovalReview/strictReviewRequired": StrictReviewRequiredNotification,
|
||||
"command/exec/outputDelta": CommandExecOutputDeltaNotification,
|
||||
"configWarning": ConfigWarningNotification,
|
||||
"deprecationNotice": DeprecationNoticeNotification,
|
||||
@@ -113,6 +119,7 @@ NOTIFICATION_MODELS: dict[str, type[BaseModel]] = {
|
||||
"model/verification": ModelVerificationNotification,
|
||||
"process/exited": ProcessExitedNotification,
|
||||
"process/outputDelta": ProcessOutputDeltaNotification,
|
||||
"project/changed": ProjectChangedNotification,
|
||||
"remoteControl/status/changed": RemoteControlStatusChangedNotification,
|
||||
"serverRequest/resolved": ServerRequestResolvedNotification,
|
||||
"skills/changed": SkillsChangedNotification,
|
||||
@@ -125,6 +132,8 @@ 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/itemAdded": ThreadRealtimeItemAddedNotification,
|
||||
@@ -133,6 +142,7 @@ NOTIFICATION_MODELS: dict[str, type[BaseModel]] = {
|
||||
"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,
|
||||
@@ -169,6 +179,7 @@ DIRECT_TURN_ID_NOTIFICATION_TYPES: tuple[type[BaseModel], ...] = (
|
||||
ReasoningSummaryPartAddedNotification,
|
||||
ReasoningSummaryTextDeltaNotification,
|
||||
ReasoningTextDeltaNotification,
|
||||
StrictReviewRequiredNotification,
|
||||
TerminalInteractionNotification,
|
||||
ThreadGoalUpdatedNotification,
|
||||
ThreadTokenUsageUpdatedNotification,
|
||||
|
||||
@@ -102,6 +102,13 @@ class AdditionalNetworkPermissions(BaseModel):
|
||||
enabled: bool | None = None
|
||||
|
||||
|
||||
class AgentMessageDelivery(RootModel[Literal["async"]]):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
root: Literal["async"]
|
||||
|
||||
|
||||
class AgentMessageDeltaNotification(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -314,6 +321,13 @@ class AppsReadParams(BaseModel):
|
||||
description="When true, include display-only public tool summaries in the returned metadata.",
|
||||
),
|
||||
] = None
|
||||
thread_id: Annotated[
|
||||
str | None,
|
||||
Field(
|
||||
alias="threadId",
|
||||
description="Optional loaded thread id used to evaluate effective app configuration.",
|
||||
),
|
||||
] = None
|
||||
|
||||
|
||||
class AskForApprovalValue(Enum):
|
||||
@@ -375,6 +389,14 @@ class AutoReviewDecisionSource(RootModel[Literal["agent"]]):
|
||||
]
|
||||
|
||||
|
||||
class AutoReviewRequirements(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
ignore_rules: Annotated[list[str] | None, Field(alias="ignoreRules")] = None
|
||||
required_on_models: Annotated[list[str] | None, Field(alias="requiredOnModels")] = None
|
||||
|
||||
|
||||
class BrowserUseRequirements(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -423,6 +445,13 @@ class CapabilityRootLocation(RootModel[EnvironmentCapabilityRootLocation]):
|
||||
]
|
||||
|
||||
|
||||
class CliAuthCredentialsStoreMode(Enum):
|
||||
file = "file"
|
||||
keyring = "keyring"
|
||||
auto = "auto"
|
||||
ephemeral = "ephemeral"
|
||||
|
||||
|
||||
class ClientInfo(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -438,6 +467,7 @@ class CodexErrorInfoValue(Enum):
|
||||
usage_limit_exceeded = "usageLimitExceeded"
|
||||
server_overloaded = "serverOverloaded"
|
||||
cyber_policy = "cyberPolicy"
|
||||
misalignment_policy_violation = "misalignmentPolicyViolation"
|
||||
internal_server_error = "internalServerError"
|
||||
unauthorized = "unauthorized"
|
||||
bad_request = "badRequest"
|
||||
@@ -696,6 +726,18 @@ class ComputerUseRequirements(BaseModel):
|
||||
allow_locked_computer_use: Annotated[bool | None, Field(alias="allowLockedComputerUse")] = None
|
||||
|
||||
|
||||
class PackagedDefaultsConfigLayerSource(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
file: Annotated[
|
||||
AbsolutePathBuf, Field(description="Path to the packaged default configuration file.")
|
||||
]
|
||||
type: Annotated[
|
||||
Literal["packagedDefaults"], Field(title="PackagedDefaultsConfigLayerSourceType")
|
||||
]
|
||||
|
||||
|
||||
class MdmConfigLayerSource(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -791,7 +833,8 @@ class LegacyManagedConfigTomlFromMdmConfigLayerSource(BaseModel):
|
||||
|
||||
class ConfigLayerSource(
|
||||
RootModel[
|
||||
MdmConfigLayerSource
|
||||
PackagedDefaultsConfigLayerSource
|
||||
| MdmConfigLayerSource
|
||||
| SystemConfigLayerSource
|
||||
| EnterpriseManagedConfigLayerSource
|
||||
| UserConfigLayerSource
|
||||
@@ -805,7 +848,8 @@ class ConfigLayerSource(
|
||||
populate_by_name=True,
|
||||
)
|
||||
root: (
|
||||
MdmConfigLayerSource
|
||||
PackagedDefaultsConfigLayerSource
|
||||
| MdmConfigLayerSource
|
||||
| SystemConfigLayerSource
|
||||
| EnterpriseManagedConfigLayerSource
|
||||
| UserConfigLayerSource
|
||||
@@ -849,6 +893,18 @@ class CommandConfiguredHookHandler(BaseModel):
|
||||
type: Annotated[Literal["command"], Field(title="CommandConfiguredHookHandlerType")]
|
||||
|
||||
|
||||
class McpToolConfiguredHookHandler(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
input: dict[str, Any]
|
||||
server: str
|
||||
status_message: Annotated[str | None, Field(alias="statusMessage")] = None
|
||||
timeout_sec: Annotated[int | None, Field(alias="timeoutSec", ge=0)] = None
|
||||
tool: str
|
||||
type: Annotated[Literal["mcp_tool"], Field(title="McpToolConfiguredHookHandlerType")]
|
||||
|
||||
|
||||
class PromptConfiguredHookHandler(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -865,13 +921,21 @@ class AgentConfiguredHookHandler(BaseModel):
|
||||
|
||||
class ConfiguredHookHandler(
|
||||
RootModel[
|
||||
CommandConfiguredHookHandler | PromptConfiguredHookHandler | AgentConfiguredHookHandler
|
||||
CommandConfiguredHookHandler
|
||||
| McpToolConfiguredHookHandler
|
||||
| PromptConfiguredHookHandler
|
||||
| AgentConfiguredHookHandler
|
||||
]
|
||||
):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
root: CommandConfiguredHookHandler | PromptConfiguredHookHandler | AgentConfiguredHookHandler
|
||||
root: (
|
||||
CommandConfiguredHookHandler
|
||||
| McpToolConfiguredHookHandler
|
||||
| PromptConfiguredHookHandler
|
||||
| AgentConfiguredHookHandler
|
||||
)
|
||||
|
||||
|
||||
class ConfiguredHookMatcherGroup(BaseModel):
|
||||
@@ -1648,14 +1712,17 @@ class GetAccountParams(BaseModel):
|
||||
] = None
|
||||
|
||||
|
||||
class GetAccountTokenUsageResponse(BaseModel):
|
||||
class GetAccountTokenUsageParams(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
daily_usage_buckets: Annotated[
|
||||
list[AccountTokenUsageDailyBucket] | None, Field(alias="dailyUsageBuckets")
|
||||
thread_id: Annotated[
|
||||
str | None,
|
||||
Field(
|
||||
alias="threadId",
|
||||
description="When present, read estimated usage for this thread instead of account-wide token activity.",
|
||||
),
|
||||
] = None
|
||||
summary: AccountTokenUsageSummary
|
||||
|
||||
|
||||
class GitInfo(BaseModel):
|
||||
@@ -1758,6 +1825,7 @@ class HookExecutionMode(Enum):
|
||||
|
||||
class HookHandlerType(Enum):
|
||||
command = "command"
|
||||
mcp_tool = "mcpTool"
|
||||
prompt = "prompt"
|
||||
agent = "agent"
|
||||
|
||||
@@ -1836,6 +1904,24 @@ class ImageDetail(Enum):
|
||||
original = "original"
|
||||
|
||||
|
||||
class UsageLimitExceededImageGenerationFailure(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
limit_id: Annotated[str, Field(alias="limitId")]
|
||||
resets_at: Annotated[int | None, Field(alias="resetsAt")] = None
|
||||
type: Annotated[
|
||||
Literal["usageLimitExceeded"], Field(title="UsageLimitExceededImageGenerationFailureType")
|
||||
]
|
||||
|
||||
|
||||
class ImageGenerationFailure(RootModel[UsageLimitExceededImageGenerationFailure]):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
root: UsageLimitExceededImageGenerationFailure
|
||||
|
||||
|
||||
class InitializeCapabilities(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -2211,6 +2297,14 @@ class McpResourceReadParams(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
connector_id: Annotated[str | None, Field(alias="connectorId")] = None
|
||||
origin_call_id: Annotated[
|
||||
str | None,
|
||||
Field(
|
||||
alias="originCallId",
|
||||
description="Originating MCP tool call used to select the resource's app.",
|
||||
),
|
||||
] = None
|
||||
server: str
|
||||
thread_id: Annotated[str | None, Field(alias="threadId")] = None
|
||||
uri: str
|
||||
@@ -2235,6 +2329,12 @@ class McpServerMigration(BaseModel):
|
||||
name: str
|
||||
|
||||
|
||||
class McpServerOauthClientRegistration(Enum):
|
||||
auto = "auto"
|
||||
cimd = "cimd"
|
||||
dcr = "dcr"
|
||||
|
||||
|
||||
class McpServerOauthLoginCompletedNotification(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -2249,6 +2349,13 @@ class McpServerOauthLoginParams(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
client_registration: Annotated[
|
||||
McpServerOauthClientRegistration | None,
|
||||
Field(
|
||||
alias="clientRegistration",
|
||||
description="Registration strategy for this login only; omission selects automatic discovery.",
|
||||
),
|
||||
] = None
|
||||
name: str
|
||||
scopes: list[str] | None = None
|
||||
thread_id: Annotated[str | None, Field(alias="threadId")] = None
|
||||
@@ -2480,6 +2587,13 @@ class ModelUpgradeInfo(BaseModel):
|
||||
migration_markdown: Annotated[str | None, Field(alias="migrationMarkdown")] = None
|
||||
model: str
|
||||
model_link: Annotated[str | None, Field(alias="modelLink")] = None
|
||||
retirement_at: Annotated[
|
||||
int | None,
|
||||
Field(
|
||||
alias="retirementAt",
|
||||
description="Informational Unix timestamp for this upgrade's scheduled retirement, if known.",
|
||||
),
|
||||
] = None
|
||||
upgrade_copy: Annotated[str | None, Field(alias="upgradeCopy")] = None
|
||||
|
||||
|
||||
@@ -2524,6 +2638,12 @@ class MultiAgentMode(RootModel[MultiAgentModeValue | CustomMultiAgentMode]):
|
||||
]
|
||||
|
||||
|
||||
class MultiAgentVersion(Enum):
|
||||
disabled = "disabled"
|
||||
v1 = "v1"
|
||||
v2 = "v2"
|
||||
|
||||
|
||||
class NetworkAccess(Enum):
|
||||
restricted = "restricted"
|
||||
enabled = "enabled"
|
||||
@@ -2605,6 +2725,15 @@ class NonSteerableTurnKind(Enum):
|
||||
compact = "compact"
|
||||
|
||||
|
||||
class NullableGetAccountTokenUsageParams(RootModel[GetAccountTokenUsageParams | None]):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
root: Annotated[
|
||||
GetAccountTokenUsageParams | None, Field(title="Nullable_GetAccountTokenUsageParams")
|
||||
]
|
||||
|
||||
|
||||
class PatchApplyStatus(Enum):
|
||||
in_progress = "inProgress"
|
||||
completed = "completed"
|
||||
@@ -2710,6 +2839,8 @@ class PlanType(str, Enum):
|
||||
enterprise_cbp_usage_based = "enterprise_cbp_usage_based"
|
||||
enterprise = "enterprise"
|
||||
edu = "edu"
|
||||
edu_plus = "edu_plus"
|
||||
edu_pro = "edu_pro"
|
||||
unknown = "unknown"
|
||||
|
||||
@classmethod
|
||||
@@ -2751,6 +2882,13 @@ class PluginInstallParams(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
install_attempt_id: Annotated[
|
||||
str | None,
|
||||
Field(
|
||||
alias="installAttemptId",
|
||||
description="Client-generated identifier used to correlate one installation attempt.",
|
||||
),
|
||||
] = None
|
||||
marketplace_path: Annotated[AbsolutePathBuf | None, Field(alias="marketplacePath")] = None
|
||||
plugin_name: Annotated[str, Field(alias="pluginName")]
|
||||
remote_marketplace_name: Annotated[str | None, Field(alias="remoteMarketplaceName")] = None
|
||||
@@ -3129,6 +3267,27 @@ class ProcessTerminalSize(BaseModel):
|
||||
rows: Annotated[int, Field(description="Terminal height in character cells.", ge=0)]
|
||||
|
||||
|
||||
class ProjectChangeType(Enum):
|
||||
created = "created"
|
||||
updated = "updated"
|
||||
deleted = "deleted"
|
||||
|
||||
|
||||
class ProjectChangedNotification(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
change_type: Annotated[ProjectChangeType, Field(alias="changeType")]
|
||||
project_id: Annotated[str, Field(alias="projectId")]
|
||||
|
||||
|
||||
class ProjectRoot(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
path: AbsolutePathBuf
|
||||
|
||||
|
||||
class RateLimitReachedType(Enum):
|
||||
rate_limit_reached = "rate_limit_reached"
|
||||
workspace_owner_credits_depleted = "workspace_owner_credits_depleted"
|
||||
@@ -3798,6 +3957,40 @@ class SendAddCreditsNudgeEmailResponse(BaseModel):
|
||||
status: AddCreditsNudgeEmailStatus
|
||||
|
||||
|
||||
class ServerDiagnosticsGauge(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
name: str
|
||||
value: Annotated[int, Field(ge=0)]
|
||||
|
||||
|
||||
class ServerDiagnosticsProcess(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
id: Annotated[int, Field(ge=0)]
|
||||
physical_footprint_bytes: Annotated[int | None, Field(alias="physicalFootprintBytes", ge=0)] = (
|
||||
None
|
||||
)
|
||||
resident_memory_bytes: Annotated[int | None, Field(alias="residentMemoryBytes", ge=0)] = None
|
||||
|
||||
|
||||
class ProjectChangedServerNotification(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
emitted_at_ms: Annotated[
|
||||
int | None,
|
||||
Field(
|
||||
alias="emittedAtMs",
|
||||
description="Unix timestamp (in milliseconds) when app-server emitted this notification.",
|
||||
),
|
||||
] = None
|
||||
method: Annotated[Literal["project/changed"], Field(title="Project/changedNotificationMethod")]
|
||||
params: ProjectChangedNotification
|
||||
|
||||
|
||||
class ThreadEnvironmentConnectedServerNotification(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -4370,6 +4563,21 @@ class SpendControlLimitSnapshot(BaseModel):
|
||||
used: str
|
||||
|
||||
|
||||
class StrictReviewRequiredNotification(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
started_at_ms: Annotated[
|
||||
int,
|
||||
Field(
|
||||
alias="startedAtMs",
|
||||
description="Unix timestamp (in milliseconds) when this review started.",
|
||||
),
|
||||
]
|
||||
thread_id: Annotated[str, Field(alias="threadId")]
|
||||
turn_id: Annotated[str, Field(alias="turnId")]
|
||||
|
||||
|
||||
class SubAgentActivityKind(Enum):
|
||||
started = "started"
|
||||
interacted = "interacted"
|
||||
@@ -4717,6 +4925,7 @@ class ImageGenerationThreadItem(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
failure: ImageGenerationFailure | None = None
|
||||
id: str
|
||||
result: str
|
||||
revised_prompt: Annotated[str | None, Field(alias="revisedPrompt")] = None
|
||||
@@ -4839,6 +5048,21 @@ class ThreadNameUpdatedNotification(BaseModel):
|
||||
thread_name: Annotated[str | None, Field(alias="threadName")] = None
|
||||
|
||||
|
||||
class ThreadProjectUpdatedNotification(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
project_id: Annotated[str | None, Field(alias="projectId")] = None
|
||||
thread_id: Annotated[str, Field(alias="threadId")]
|
||||
|
||||
|
||||
class ThreadQueueChangedNotification(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
thread_id: Annotated[str, Field(alias="threadId")]
|
||||
|
||||
|
||||
class ThreadReadParams(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -4997,6 +5221,13 @@ class ThreadResumeParams(BaseModel):
|
||||
thread_id: Annotated[str, Field(alias="threadId")]
|
||||
|
||||
|
||||
class ThreadRevertedNotification(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
thread_id: Annotated[str, Field(alias="threadId")]
|
||||
|
||||
|
||||
class ThreadRollbackParams(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -5018,33 +5249,22 @@ class ThreadSearchSortKey(Enum):
|
||||
recency_at = "recency_at"
|
||||
|
||||
|
||||
class ThreadSection(BaseModel):
|
||||
class ThreadSectionAppearance(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
id: Annotated[
|
||||
str,
|
||||
Field(
|
||||
description="Opaque UUIDv7 identity that remains stable when the section is renamed."
|
||||
),
|
||||
]
|
||||
name: Annotated[str, Field(description="The current user-visible section name.")]
|
||||
color: str | None = None
|
||||
icon: str | None = None
|
||||
|
||||
|
||||
class ThreadSectionCreateParams(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
appearance: ThreadSectionAppearance | None = None
|
||||
name: Annotated[str, Field(description="The user-visible name of the section.")]
|
||||
|
||||
|
||||
class ThreadSectionCreateResponse(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
section: ThreadSection
|
||||
|
||||
|
||||
class ThreadSectionDeleteParams(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -5077,20 +5297,6 @@ class ThreadSectionListParams(BaseModel):
|
||||
] = None
|
||||
|
||||
|
||||
class ThreadSectionListResponse(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
data: list[ThreadSection]
|
||||
next_cursor: Annotated[
|
||||
str | None,
|
||||
Field(
|
||||
alias="nextCursor",
|
||||
description="Opaque cursor for the next page, or `null` when no sections remain.",
|
||||
),
|
||||
] = None
|
||||
|
||||
|
||||
class ThreadSectionMoveParams(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -5126,6 +5332,12 @@ class ThreadSectionUpdateParams(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
appearance: Annotated[
|
||||
ThreadSectionAppearance | None,
|
||||
Field(
|
||||
description="Omit to preserve appearance, use `null` to clear it, or provide a replacement."
|
||||
),
|
||||
] = None
|
||||
name: Annotated[str, Field(description="The updated user-visible name of the section.")]
|
||||
section_id: Annotated[
|
||||
str,
|
||||
@@ -5136,13 +5348,6 @@ class ThreadSectionUpdateParams(BaseModel):
|
||||
]
|
||||
|
||||
|
||||
class ThreadSectionUpdateResponse(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
section: ThreadSection
|
||||
|
||||
|
||||
class ThreadSetNameParams(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -5293,6 +5498,21 @@ class ThreadUnsubscribeStatus(Enum):
|
||||
unsubscribed = "unsubscribed"
|
||||
|
||||
|
||||
class ThreadUsageBreakdownGroup(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
cached_input_tokens: Annotated[int | None, Field(alias="cachedInputTokens")] = None
|
||||
estimated_usage_credits_micros: Annotated[int, Field(alias="estimatedUsageCreditsMicros")]
|
||||
input_tokens: Annotated[int | None, Field(alias="inputTokens")] = None
|
||||
model: str | None = None
|
||||
net_new_input_tokens: Annotated[int | None, Field(alias="netNewInputTokens")] = None
|
||||
output_tokens: Annotated[int | None, Field(alias="outputTokens")] = None
|
||||
reasoning_effort: Annotated[str | None, Field(alias="reasoningEffort")] = None
|
||||
speed: str | None = None
|
||||
total_tokens: Annotated[int | None, Field(alias="totalTokens")] = None
|
||||
|
||||
|
||||
class TokenUsageBreakdown(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -6423,7 +6643,7 @@ class AccountUsageReadRequest(BaseModel):
|
||||
)
|
||||
id: RequestId
|
||||
method: Annotated[Literal["account/usage/read"], Field(title="Account/usage/readRequestMethod")]
|
||||
params: None = None
|
||||
params: GetAccountTokenUsageParams | None = None
|
||||
|
||||
|
||||
class AccountWorkspaceMessagesReadRequest(BaseModel):
|
||||
@@ -7101,7 +7321,7 @@ class NetworkAccessGuardianApprovalReviewAction(BaseModel):
|
||||
]
|
||||
|
||||
|
||||
class HookMetadata(BaseModel):
|
||||
class HookMetadata1(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
@@ -7113,12 +7333,10 @@ class HookMetadata(BaseModel):
|
||||
ge=0,
|
||||
),
|
||||
] = None
|
||||
command: str | None = None
|
||||
current_hash: Annotated[str, Field(alias="currentHash")]
|
||||
display_order: Annotated[int, Field(alias="displayOrder")]
|
||||
enabled: bool
|
||||
event_name: Annotated[HookEventName, Field(alias="eventName")]
|
||||
handler_type: Annotated[HookHandlerType, Field(alias="handlerType")]
|
||||
is_managed: Annotated[bool, Field(alias="isManaged")]
|
||||
key: str
|
||||
matcher: str | None = None
|
||||
@@ -7128,6 +7346,104 @@ class HookMetadata(BaseModel):
|
||||
status_message: Annotated[str | None, Field(alias="statusMessage")] = None
|
||||
timeout_sec: Annotated[int, Field(alias="timeoutSec", ge=0)]
|
||||
trust_status: Annotated[HookTrustStatus, Field(alias="trustStatus")]
|
||||
async_: Annotated[bool | None, Field(alias="async")] = False
|
||||
command: str
|
||||
handler_type: Annotated[Literal["command"], Field(alias="handlerType")]
|
||||
|
||||
|
||||
class HookMetadata2(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
additional_context_limit: Annotated[
|
||||
int | None,
|
||||
Field(
|
||||
alias="additionalContextLimit",
|
||||
description="Configured `additionalContext` spill threshold. `null` uses 2,500 tokens; `0` disables spilling.",
|
||||
ge=0,
|
||||
),
|
||||
] = None
|
||||
current_hash: Annotated[str, Field(alias="currentHash")]
|
||||
display_order: Annotated[int, Field(alias="displayOrder")]
|
||||
enabled: bool
|
||||
event_name: Annotated[HookEventName, Field(alias="eventName")]
|
||||
is_managed: Annotated[bool, Field(alias="isManaged")]
|
||||
key: str
|
||||
matcher: str | None = None
|
||||
plugin_id: Annotated[str | None, Field(alias="pluginId")] = None
|
||||
source: HookSource
|
||||
source_path: Annotated[AbsolutePathBuf, Field(alias="sourcePath")]
|
||||
status_message: Annotated[str | None, Field(alias="statusMessage")] = None
|
||||
timeout_sec: Annotated[int, Field(alias="timeoutSec", ge=0)]
|
||||
trust_status: Annotated[HookTrustStatus, Field(alias="trustStatus")]
|
||||
handler_type: Annotated[Literal["mcpTool"], Field(alias="handlerType")]
|
||||
server: str
|
||||
tool: str
|
||||
|
||||
|
||||
class PromptHookMetadata(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
additional_context_limit: Annotated[
|
||||
int | None,
|
||||
Field(
|
||||
alias="additionalContextLimit",
|
||||
description="Configured `additionalContext` spill threshold. `null` uses 2,500 tokens; `0` disables spilling.",
|
||||
ge=0,
|
||||
),
|
||||
] = None
|
||||
current_hash: Annotated[str, Field(alias="currentHash")]
|
||||
display_order: Annotated[int, Field(alias="displayOrder")]
|
||||
enabled: bool
|
||||
event_name: Annotated[HookEventName, Field(alias="eventName")]
|
||||
is_managed: Annotated[bool, Field(alias="isManaged")]
|
||||
key: str
|
||||
matcher: str | None = None
|
||||
plugin_id: Annotated[str | None, Field(alias="pluginId")] = None
|
||||
source: HookSource
|
||||
source_path: Annotated[AbsolutePathBuf, Field(alias="sourcePath")]
|
||||
status_message: Annotated[str | None, Field(alias="statusMessage")] = None
|
||||
timeout_sec: Annotated[int, Field(alias="timeoutSec", ge=0)]
|
||||
trust_status: Annotated[HookTrustStatus, Field(alias="trustStatus")]
|
||||
handler_type: Annotated[Literal["prompt"], Field(alias="handlerType")]
|
||||
|
||||
|
||||
class AgentHookMetadata(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
additional_context_limit: Annotated[
|
||||
int | None,
|
||||
Field(
|
||||
alias="additionalContextLimit",
|
||||
description="Configured `additionalContext` spill threshold. `null` uses 2,500 tokens; `0` disables spilling.",
|
||||
ge=0,
|
||||
),
|
||||
] = None
|
||||
current_hash: Annotated[str, Field(alias="currentHash")]
|
||||
display_order: Annotated[int, Field(alias="displayOrder")]
|
||||
enabled: bool
|
||||
event_name: Annotated[HookEventName, Field(alias="eventName")]
|
||||
is_managed: Annotated[bool, Field(alias="isManaged")]
|
||||
key: str
|
||||
matcher: str | None = None
|
||||
plugin_id: Annotated[str | None, Field(alias="pluginId")] = None
|
||||
source: HookSource
|
||||
source_path: Annotated[AbsolutePathBuf, Field(alias="sourcePath")]
|
||||
status_message: Annotated[str | None, Field(alias="statusMessage")] = None
|
||||
timeout_sec: Annotated[int, Field(alias="timeoutSec", ge=0)]
|
||||
trust_status: Annotated[HookTrustStatus, Field(alias="trustStatus")]
|
||||
handler_type: Annotated[Literal["agent"], Field(alias="handlerType")]
|
||||
|
||||
|
||||
class HookMetadata(
|
||||
RootModel[HookMetadata1 | HookMetadata2 | PromptHookMetadata | AgentHookMetadata]
|
||||
):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
root: HookMetadata1 | HookMetadata2 | PromptHookMetadata | AgentHookMetadata
|
||||
|
||||
|
||||
class HookOutputEntry(BaseModel):
|
||||
@@ -7243,6 +7559,13 @@ class McpResourceReadResponse(BaseModel):
|
||||
populate_by_name=True,
|
||||
)
|
||||
contents: list[ResourceContent]
|
||||
origin_call_id: Annotated[
|
||||
str | None,
|
||||
Field(
|
||||
alias="originCallId",
|
||||
description="Originating call when the server applied app-specific resource scoping.",
|
||||
),
|
||||
] = None
|
||||
|
||||
|
||||
class McpServerStatus(BaseModel):
|
||||
@@ -7251,6 +7574,7 @@ class McpServerStatus(BaseModel):
|
||||
)
|
||||
auth_status: Annotated[McpAuthStatus, Field(alias="authStatus")]
|
||||
name: str
|
||||
plugin_id: Annotated[str | None, Field(alias="pluginId")] = None
|
||||
resource_templates: Annotated[list[ResourceTemplate], Field(alias="resourceTemplates")]
|
||||
resources: list[Resource]
|
||||
server_info: Annotated[McpServerInfo | None, Field(alias="serverInfo")] = None
|
||||
@@ -7307,6 +7631,13 @@ class Model(BaseModel):
|
||||
is_default: Annotated[bool, Field(alias="isDefault")]
|
||||
model: str
|
||||
model_specialty: Annotated[str | None, Field(alias="modelSpecialty")] = None
|
||||
multi_agent_version: Annotated[
|
||||
MultiAgentVersion | None,
|
||||
Field(
|
||||
alias="multiAgentVersion",
|
||||
description="Multi-agent runtime declared by this model, when available.",
|
||||
),
|
||||
] = None
|
||||
service_tiers: Annotated[list[ModelServiceTier] | None, Field(alias="serviceTiers")] = []
|
||||
supported_reasoning_efforts: Annotated[
|
||||
list[ReasoningEffortOption], Field(alias="supportedReasoningEfforts")
|
||||
@@ -7426,6 +7757,28 @@ class ProcessOutputDeltaNotification(BaseModel):
|
||||
]
|
||||
|
||||
|
||||
class Project(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
created_at: Annotated[int, Field(alias="createdAt")]
|
||||
id: str
|
||||
metadata: dict[str, str]
|
||||
name: str
|
||||
position: int
|
||||
roots: list[ProjectRoot]
|
||||
updated_at: Annotated[int, Field(alias="updatedAt")]
|
||||
|
||||
|
||||
class QueuedSubmission(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
client_user_message_id: Annotated[str, Field(alias="clientUserMessageId")]
|
||||
id: str
|
||||
input: list[UserInput]
|
||||
|
||||
|
||||
class RateLimitResetCredit(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -7671,6 +8024,21 @@ class ThreadClosedServerNotification(BaseModel):
|
||||
params: ThreadClosedNotification
|
||||
|
||||
|
||||
class ThreadRevertedServerNotification(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
emitted_at_ms: Annotated[
|
||||
int | None,
|
||||
Field(
|
||||
alias="emittedAtMs",
|
||||
description="Unix timestamp (in milliseconds) when app-server emitted this notification.",
|
||||
),
|
||||
] = None
|
||||
method: Annotated[Literal["thread/reverted"], Field(title="Thread/revertedNotificationMethod")]
|
||||
params: ThreadRevertedNotification
|
||||
|
||||
|
||||
class SkillsChangedServerNotification(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -7720,6 +8088,40 @@ class ThreadGoalClearedServerNotification(BaseModel):
|
||||
params: ThreadGoalClearedNotification
|
||||
|
||||
|
||||
class ThreadQueueChangedServerNotification(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
emitted_at_ms: Annotated[
|
||||
int | None,
|
||||
Field(
|
||||
alias="emittedAtMs",
|
||||
description="Unix timestamp (in milliseconds) when app-server emitted this notification.",
|
||||
),
|
||||
] = None
|
||||
method: Annotated[
|
||||
Literal["thread/queue/changed"], Field(title="Thread/queue/changedNotificationMethod")
|
||||
]
|
||||
params: ThreadQueueChangedNotification
|
||||
|
||||
|
||||
class ThreadProjectUpdatedServerNotification(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
emitted_at_ms: Annotated[
|
||||
int | None,
|
||||
Field(
|
||||
alias="emittedAtMs",
|
||||
description="Unix timestamp (in milliseconds) when app-server emitted this notification.",
|
||||
),
|
||||
] = None
|
||||
method: Annotated[
|
||||
Literal["thread/project/updated"], Field(title="Thread/project/updatedNotificationMethod")
|
||||
]
|
||||
params: ThreadProjectUpdatedNotification
|
||||
|
||||
|
||||
class HookStartedServerNotification(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -7752,6 +8154,24 @@ class TurnDiffUpdatedServerNotification(BaseModel):
|
||||
params: TurnDiffUpdatedNotification
|
||||
|
||||
|
||||
class AutoApprovalReviewStrictReviewRequiredServerNotification(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
emitted_at_ms: Annotated[
|
||||
int | None,
|
||||
Field(
|
||||
alias="emittedAtMs",
|
||||
description="Unix timestamp (in milliseconds) when app-server emitted this notification.",
|
||||
),
|
||||
] = None
|
||||
method: Annotated[
|
||||
Literal["autoApprovalReview/strictReviewRequired"],
|
||||
Field(title="AutoApprovalReview/strictReviewRequiredNotificationMethod"),
|
||||
]
|
||||
params: StrictReviewRequiredNotification
|
||||
|
||||
|
||||
class CommandExecOutputDeltaServerNotification(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -8231,6 +8651,7 @@ class AgentMessageThreadItem(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
delivery: AgentMessageDelivery | None = None
|
||||
id: str
|
||||
memory_citation: Annotated[MemoryCitation | None, Field(alias="memoryCitation")] = None
|
||||
phase: MessagePhase | None = None
|
||||
@@ -8515,6 +8936,51 @@ class ThreadResumeInitialTurnsPageParams(BaseModel):
|
||||
] = None
|
||||
|
||||
|
||||
class ThreadSection(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
appearance: Annotated[
|
||||
ThreadSectionAppearance | None,
|
||||
Field(description="Optional appearance synchronized across clients."),
|
||||
] = None
|
||||
id: Annotated[
|
||||
str,
|
||||
Field(
|
||||
description="Opaque UUIDv7 identity that remains stable when the section is renamed."
|
||||
),
|
||||
]
|
||||
name: Annotated[str, Field(description="The current user-visible section name.")]
|
||||
|
||||
|
||||
class ThreadSectionCreateResponse(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
section: ThreadSection
|
||||
|
||||
|
||||
class ThreadSectionListResponse(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
data: list[ThreadSection]
|
||||
next_cursor: Annotated[
|
||||
str | None,
|
||||
Field(
|
||||
alias="nextCursor",
|
||||
description="Opaque cursor for the next page, or `null` when no sections remain.",
|
||||
),
|
||||
] = None
|
||||
|
||||
|
||||
class ThreadSectionUpdateResponse(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
section: ThreadSection
|
||||
|
||||
|
||||
class ThreadSettings(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -8603,6 +9069,16 @@ class ThreadUnsubscribeResponse(BaseModel):
|
||||
status: ThreadUnsubscribeStatus
|
||||
|
||||
|
||||
class ThreadUsage(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
estimated_usage_credits_micros: Annotated[int, Field(alias="estimatedUsageCreditsMicros")]
|
||||
estimated_usage_usd_micros: Annotated[int | None, Field(alias="estimatedUsageUsdMicros")] = None
|
||||
groups: list[ThreadUsageBreakdownGroup]
|
||||
thread_id: Annotated[str, Field(alias="threadId")]
|
||||
|
||||
|
||||
class ToolsV2(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -9140,6 +9616,23 @@ class GetAccountRateLimitsResponse(BaseModel):
|
||||
] = None
|
||||
|
||||
|
||||
class GetAccountTokenUsageResponse(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
daily_usage_buckets: Annotated[
|
||||
list[AccountTokenUsageDailyBucket] | None, Field(alias="dailyUsageBuckets")
|
||||
] = None
|
||||
summary: AccountTokenUsageSummary
|
||||
thread_usage: Annotated[
|
||||
ThreadUsage | None,
|
||||
Field(
|
||||
alias="threadUsage",
|
||||
description="Estimated usage when a thread was requested and its billing route is available.",
|
||||
),
|
||||
] = None
|
||||
|
||||
|
||||
class GetWorkspaceMessagesResponse(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -9771,10 +10264,15 @@ class ConfigRequirements(BaseModel):
|
||||
allowed_windows_sandbox_implementations: Annotated[
|
||||
list[WindowsSandboxSetupMode] | None, Field(alias="allowedWindowsSandboxImplementations")
|
||||
] = None
|
||||
auto_review: Annotated[AutoReviewRequirements | None, Field(alias="autoReview")] = None
|
||||
browser_use: Annotated[BrowserUseRequirements | None, Field(alias="browserUse")] = None
|
||||
chatgpt_base_url: Annotated[str | None, Field(alias="chatgptBaseUrl")] = None
|
||||
check_for_update_on_startup: Annotated[bool | None, Field(alias="checkForUpdateOnStartup")] = (
|
||||
None
|
||||
)
|
||||
cli_auth_credentials_store: Annotated[
|
||||
CliAuthCredentialsStoreMode | None, Field(alias="cliAuthCredentialsStore")
|
||||
] = None
|
||||
computer_use: Annotated[ComputerUseRequirements | None, Field(alias="computerUse")] = None
|
||||
default_permissions: Annotated[str | None, Field(alias="defaultPermissions")] = None
|
||||
enforce_residency: Annotated[ResidencyRequirement | None, Field(alias="enforceResidency")] = (
|
||||
@@ -10065,6 +10563,13 @@ class Thread(BaseModel):
|
||||
preview: Annotated[
|
||||
str, Field(description="Usually the first user message in the thread, if available.")
|
||||
]
|
||||
project_id: Annotated[
|
||||
str | None,
|
||||
Field(
|
||||
alias="projectId",
|
||||
description="Canonical project assignment owned by app-server, if any.",
|
||||
),
|
||||
] = None
|
||||
recency_at: Annotated[
|
||||
int | None,
|
||||
Field(
|
||||
@@ -10691,10 +11196,14 @@ class ServerNotification(
|
||||
| ThreadDeletedServerNotification
|
||||
| ThreadUnarchivedServerNotification
|
||||
| ThreadClosedServerNotification
|
||||
| ThreadRevertedServerNotification
|
||||
| SkillsChangedServerNotification
|
||||
| ThreadNameUpdatedServerNotification
|
||||
| ThreadGoalUpdatedServerNotification
|
||||
| ThreadGoalClearedServerNotification
|
||||
| ThreadQueueChangedServerNotification
|
||||
| ProjectChangedServerNotification
|
||||
| ThreadProjectUpdatedServerNotification
|
||||
| ThreadEnvironmentConnectedServerNotification
|
||||
| ThreadEnvironmentDisconnectedServerNotification
|
||||
| ThreadSettingsUpdatedServerNotification
|
||||
@@ -10708,6 +11217,7 @@ class ServerNotification(
|
||||
| ItemStartedServerNotification
|
||||
| ItemAutoApprovalReviewStartedServerNotification
|
||||
| ItemAutoApprovalReviewCompletedServerNotification
|
||||
| AutoApprovalReviewStrictReviewRequiredServerNotification
|
||||
| ItemCompletedServerNotification
|
||||
| ItemAgentMessageDeltaServerNotification
|
||||
| ItemPlanDeltaServerNotification
|
||||
@@ -10767,10 +11277,14 @@ class ServerNotification(
|
||||
| ThreadDeletedServerNotification
|
||||
| ThreadUnarchivedServerNotification
|
||||
| ThreadClosedServerNotification
|
||||
| ThreadRevertedServerNotification
|
||||
| SkillsChangedServerNotification
|
||||
| ThreadNameUpdatedServerNotification
|
||||
| ThreadGoalUpdatedServerNotification
|
||||
| ThreadGoalClearedServerNotification
|
||||
| ThreadQueueChangedServerNotification
|
||||
| ProjectChangedServerNotification
|
||||
| ThreadProjectUpdatedServerNotification
|
||||
| ThreadEnvironmentConnectedServerNotification
|
||||
| ThreadEnvironmentDisconnectedServerNotification
|
||||
| ThreadSettingsUpdatedServerNotification
|
||||
@@ -10784,6 +11298,7 @@ class ServerNotification(
|
||||
| ItemStartedServerNotification
|
||||
| ItemAutoApprovalReviewStartedServerNotification
|
||||
| ItemAutoApprovalReviewCompletedServerNotification
|
||||
| AutoApprovalReviewStrictReviewRequiredServerNotification
|
||||
| ItemCompletedServerNotification
|
||||
| ItemAgentMessageDeltaServerNotification
|
||||
| ItemPlanDeltaServerNotification
|
||||
|
||||
@@ -515,10 +515,10 @@ def test_source_sdk_template_pins_published_runtime() -> None:
|
||||
"dependencies": pyproject["project"]["dependencies"],
|
||||
} == {
|
||||
"sdk_template_version": "0.0.0-dev",
|
||||
"runtime_pin": "0.147.0",
|
||||
"runtime_pin": "0.149.0",
|
||||
"dependencies": [
|
||||
"pydantic>=2.12",
|
||||
"openai-codex-cli-bin==0.147.0",
|
||||
"openai-codex-cli-bin==0.149.0",
|
||||
],
|
||||
}
|
||||
|
||||
@@ -592,7 +592,7 @@ def test_runtime_setup_reads_independent_runtime_pin_and_release_tags() -> None:
|
||||
} == {
|
||||
"package_name": "openai-codex-cli-bin",
|
||||
"sdk_template_version": "0.0.0-dev",
|
||||
"runtime_pin": "0.147.0",
|
||||
"runtime_pin": "0.149.0",
|
||||
"normalized_release_version": "0.116.0a1",
|
||||
"normalized_alpha_hotfix_version": "0.116.0a1.post2",
|
||||
"release_tag": "rust-v0.116.0-alpha.1",
|
||||
@@ -841,7 +841,7 @@ def test_stage_sdk_release_preserves_reviewed_runtime_pin(tmp_path: Path) -> Non
|
||||
script = _load_update_script_module()
|
||||
staged = script.stage_python_sdk_package(
|
||||
tmp_path / "sdk-stage",
|
||||
"0.147.0",
|
||||
"0.149.0",
|
||||
)
|
||||
|
||||
pyproject = tomllib.loads((staged / "pyproject.toml").read_text())
|
||||
@@ -851,18 +851,18 @@ def test_stage_sdk_release_preserves_reviewed_runtime_pin(tmp_path: Path) -> Non
|
||||
"dependencies": pyproject["project"]["dependencies"],
|
||||
} == {
|
||||
"name": "openai-codex",
|
||||
"version": "0.147.0",
|
||||
"version": "0.149.0",
|
||||
"dependencies": [
|
||||
"pydantic>=2.12",
|
||||
"openai-codex-cli-bin==0.147.0",
|
||||
"openai-codex-cli-bin==0.149.0",
|
||||
],
|
||||
}
|
||||
assert (
|
||||
'__version__ = "0.147.0"'
|
||||
'__version__ = "0.149.0"'
|
||||
not in (staged / "src" / "openai_codex" / "__init__.py").read_text()
|
||||
)
|
||||
assert (
|
||||
'client_version: str = "0.147.0"'
|
||||
'client_version: str = "0.149.0"'
|
||||
not in (staged / "src" / "openai_codex" / "client.py").read_text()
|
||||
)
|
||||
assert not any((staged / "src" / "openai_codex").glob("bin/**"))
|
||||
@@ -875,7 +875,7 @@ def test_stage_sdk_release_replaces_existing_staging_dir(tmp_path: Path) -> None
|
||||
old_file.parent.mkdir(parents=True)
|
||||
old_file.write_text("stale")
|
||||
|
||||
staged = script.stage_python_sdk_package(staging_dir, "0.147.0")
|
||||
staged = script.stage_python_sdk_package(staging_dir, "0.149.0")
|
||||
|
||||
assert staged == staging_dir
|
||||
assert not old_file.exists()
|
||||
@@ -887,11 +887,11 @@ def test_sdk_release_matches_stable_runtime(tmp_path: Path) -> None:
|
||||
|
||||
sdk_stage = script.stage_python_sdk_package(
|
||||
tmp_path / "sdk-stage",
|
||||
"0.147.0",
|
||||
"0.149.0",
|
||||
)
|
||||
runtime_stage = script.stage_python_runtime_package(
|
||||
tmp_path / "runtime-stage",
|
||||
"0.147.0",
|
||||
"0.149.0",
|
||||
package_archive,
|
||||
)
|
||||
|
||||
@@ -903,11 +903,11 @@ def test_sdk_release_matches_stable_runtime(tmp_path: Path) -> None:
|
||||
"runtime_version": runtime_pyproject["project"]["version"],
|
||||
"sdk_dependencies": sdk_pyproject["project"]["dependencies"],
|
||||
} == {
|
||||
"sdk_version": "0.147.0",
|
||||
"runtime_version": "0.147.0",
|
||||
"sdk_version": "0.149.0",
|
||||
"runtime_version": "0.149.0",
|
||||
"sdk_dependencies": [
|
||||
"pydantic>=2.12",
|
||||
"openai-codex-cli-bin==0.147.0",
|
||||
"openai-codex-cli-bin==0.149.0",
|
||||
],
|
||||
}
|
||||
|
||||
@@ -920,7 +920,7 @@ def test_stage_sdk_runs_type_generation_before_staging(tmp_path: Path) -> None:
|
||||
"stage-sdk",
|
||||
str(tmp_path / "sdk-stage"),
|
||||
"--sdk-version",
|
||||
"0.147.0",
|
||||
"0.149.0",
|
||||
]
|
||||
)
|
||||
|
||||
@@ -951,7 +951,7 @@ def test_stage_sdk_runs_type_generation_before_staging(tmp_path: Path) -> None:
|
||||
|
||||
script.run_command(args, ops)
|
||||
|
||||
assert calls == ["generate_types", "stage_sdk:0.147.0"]
|
||||
assert calls == ["generate_types", "stage_sdk:0.149.0"]
|
||||
|
||||
|
||||
def test_stage_runtime_stages_package_without_type_generation(tmp_path: Path) -> None:
|
||||
|
||||
@@ -40,7 +40,7 @@ def test_generated_files_are_up_to_date():
|
||||
|
||||
# Regenerate contract artifacts via the pinned runtime package, not a local
|
||||
# app-server binary from the checkout or CI environment.
|
||||
assert importlib.metadata.version("openai-codex-cli-bin") == "0.147.0"
|
||||
assert importlib.metadata.version("openai-codex-cli-bin") == "0.149.0"
|
||||
env = os.environ.copy()
|
||||
env.pop("CODEX_EXEC_PATH", None)
|
||||
python_bin = str(Path(sys.executable).parent)
|
||||
|
||||
Generated
+11
-11
@@ -7,7 +7,7 @@ exclude-newer = "0001-01-01T00:00:00Z" # This has no effect and is included for
|
||||
exclude-newer-span = "P7D"
|
||||
|
||||
[options.exclude-newer-package]
|
||||
openai-codex-cli-bin = "2026-08-19T00:00:00Z"
|
||||
openai-codex-cli-bin = "2026-08-21T05:44:00Z"
|
||||
|
||||
[[package]]
|
||||
name = "annotated-types"
|
||||
@@ -306,7 +306,7 @@ test = [
|
||||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "openai-codex-cli-bin", specifier = "==0.147.0" },
|
||||
{ name = "openai-codex-cli-bin", specifier = "==0.149.0" },
|
||||
{ name = "pydantic", specifier = ">=2.12" },
|
||||
]
|
||||
|
||||
@@ -325,17 +325,17 @@ test = [
|
||||
|
||||
[[package]]
|
||||
name = "openai-codex-cli-bin"
|
||||
version = "0.147.0"
|
||||
version = "0.149.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/46/85/3302e5265f35941a24f614573e1a27e6f218d7fa71e4dd3b1353d1726c5a/openai_codex_cli_bin-0.147.0-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:19c3a72a0eac6706bb5023088ab7eb31d8cfc06bf7860250b5c5b90f4505489b", size = 116948927, upload-time = "2026-08-18T06:05:53.479Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/b8/0c/6474ef2f854ecf217550d06667a8ac988b5656c448b680e5b5ece5ae5152/openai_codex_cli_bin-0.147.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:b851943fffc48aa7c5c130b6a34be09964833d2785546eda96d749427c6e24f2", size = 107573930, upload-time = "2026-08-18T06:05:57.701Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/59/4b/0efce457a301271301b9229b36b3f53ca94d5f4db1d605c86e0da9833565/openai_codex_cli_bin-0.147.0-py3-none-manylinux_2_17_aarch64.whl", hash = "sha256:aab3e27ce07cd7bc7a78708efa40375b28e89f586851c495ef55aa6cb6806d11", size = 111220520, upload-time = "2026-08-18T06:06:01.636Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f2/e4/5e4fb0f61ca90c2bb42a8823e08fe05957c54591d1e161c56a93d27d565d/openai_codex_cli_bin-0.147.0-py3-none-manylinux_2_17_x86_64.whl", hash = "sha256:cb3907d633cda87c4b68b47ff4979e6054c02a08c41b15aa2e9a689558a61074", size = 119921665, upload-time = "2026-08-18T06:06:05.666Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f9/83/a52e32fc63bde10996e38cb4e1175c402c578ee7c7ca79b96abee5219127/openai_codex_cli_bin-0.147.0-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:ea0bfdee98164fc7d589eea5623aff06c8f8f2ba3f9bc550297429db45ea68f7", size = 111220518, upload-time = "2026-08-18T06:06:09.538Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/e9/b6/c159da0a1ec136fde6d2742ec05347e311f000dfe19024ed7d708cf60aa5/openai_codex_cli_bin-0.147.0-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:a9be23f46326494b7ebf4bd98cbe985542f5ad076355f3b0fb636a984df56816", size = 119921665, upload-time = "2026-08-18T06:06:15.061Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/54/38/1bb47e08b9c523b673358e4f5597fc99699e855ec63bd02fdc157f1679c9/openai_codex_cli_bin-0.147.0-py3-none-win_amd64.whl", hash = "sha256:1a403ff803ae27e078189a0fd24687f32d43c46f152e50cdbe3eddc9e302f697", size = 127586208, upload-time = "2026-08-18T06:06:19.395Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/d2/1e/a44a8da140ef080aebac6da6517e8fe6ac1aad49436c8b1f9b87e735b813/openai_codex_cli_bin-0.147.0-py3-none-win_arm64.whl", hash = "sha256:be0c8b9e34b067151d0964a24e9f4b8b48ea516448a08ef2636f357ebdc877b7", size = 117863410, upload-time = "2026-08-18T06:06:23.554Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/38/47/2bc9a23d0d2dbcf515287b51719de3731c45c54708d31825da72e4bfb2ab/openai_codex_cli_bin-0.149.0-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:75d6cc460928053d7cf4ab7311529b62c9c023abef2887f1da2de0bbda04d9a0", size = 120217719, upload-time = "2026-08-21T05:42:17.253Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/c0/ad/208c83aa56532a41fe1a5895dc27191f95b9fcd6d3e2b027031e6b527c01/openai_codex_cli_bin-0.149.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:2a6865f3d827a2f010983753add06cb7eacd8e135679da5c6b2ee0f8a4c7e594", size = 110399883, upload-time = "2026-08-21T05:42:29.583Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/b6/6f/f35f5c15ea8e2a2136b1577dd2998ff535eaec31678131146b742e3621e9/openai_codex_cli_bin-0.149.0-py3-none-manylinux_2_17_aarch64.whl", hash = "sha256:986ee1c12f04065a390ab46f92c7f7561aea29c136872a65e834d58ecf43eb4f", size = 114097934, upload-time = "2026-08-21T05:42:40.977Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/5f/99/b5eb1f18ee446996dc1622bd1cd484e90f91c187ab0d66516064ae8abf06/openai_codex_cli_bin-0.149.0-py3-none-manylinux_2_17_x86_64.whl", hash = "sha256:8134aa26af0eb8ac87793058ae1b83621e5d8458a4e664502f0647742499f2c1", size = 123378423, upload-time = "2026-08-21T05:42:52.626Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/9b/4a/ec1b95fb43b2553be4b396999146c9f70fb1e06f16651aa96d6365d43c98/openai_codex_cli_bin-0.149.0-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:6730ea9b54e00cd4576ddfc8fe3338ec41c24d327a2861240ecd79deab2b889a", size = 114097931, upload-time = "2026-08-21T05:43:03.362Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/2f/6f/0650fcfaefd6bbea6764e10fa19512fa13b418936674ba238b747dafc930/openai_codex_cli_bin-0.149.0-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:620c53b4a3ce635fa8585659ea0af08c8c4ce49705ef30bb06f269d0b53fbd52", size = 123378421, upload-time = "2026-08-21T05:43:13.773Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/68/89/d9f436c049c67a8c92eaca2407a2d13f8c74e69dcb27560633b878986f2d/openai_codex_cli_bin-0.149.0-py3-none-win_amd64.whl", hash = "sha256:fc1a9981b76a93d9375f0ed567768798a6f236f47d8026e3dca83bfa4eff0e1b", size = 135361508, upload-time = "2026-08-21T05:43:23.785Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/1e/69/9c0030b9531e47a9fe6d9d4da6b154aef7340d9b053b7fa3dd1a2fe8f90d/openai_codex_cli_bin-0.149.0-py3-none-win_arm64.whl", hash = "sha256:05bc14a86033f4edf4e703be72d3d36372582d681c7dbbfdef15e9f0561774ec", size = 125269074, upload-time = "2026-08-21T05:43:31.612Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
Reference in New Issue
Block a user