mirror of
https://github.com/openai/codex.git
synced 2026-05-17 01:32:32 +00:00
8808 lines
243 KiB
Python
8808 lines
243 KiB
Python
# generated by datamodel-codegen:
|
|
# filename: codex_app_server_protocol.v2.schemas.json
|
|
|
|
from __future__ import annotations
|
|
from pydantic import BaseModel, ConfigDict, Field, RootModel
|
|
from typing import Annotated, Any, Literal
|
|
from enum import Enum
|
|
|
|
|
|
class CodexAppServerProtocolV2(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class AbsolutePathBuf(RootModel[str]):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: Annotated[
|
|
str,
|
|
Field(
|
|
description="A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).\n\nIMPORTANT: When deserializing an `AbsolutePathBuf`, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute."
|
|
),
|
|
]
|
|
|
|
|
|
class ApiKeyAccount(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[Literal["apiKey"], Field(title="ApiKeyAccountType")]
|
|
|
|
|
|
class AmazonBedrockAccount(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[Literal["amazonBedrock"], Field(title="AmazonBedrockAccountType")]
|
|
|
|
|
|
class AccountLoginCompletedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
error: str | None = None
|
|
login_id: Annotated[str | None, Field(alias="loginId")] = None
|
|
success: bool
|
|
|
|
|
|
class AdditionalWritableRootActivePermissionProfileModification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
path: AbsolutePathBuf
|
|
type: Annotated[
|
|
Literal["additionalWritableRoot"],
|
|
Field(title="AdditionalWritableRootActivePermissionProfileModificationType"),
|
|
]
|
|
|
|
|
|
class ActivePermissionProfileModification(
|
|
RootModel[AdditionalWritableRootActivePermissionProfileModification]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: AdditionalWritableRootActivePermissionProfileModification
|
|
|
|
|
|
class AddCreditsNudgeCreditType(Enum):
|
|
credits = "credits"
|
|
usage_limit = "usage_limit"
|
|
|
|
|
|
class AddCreditsNudgeEmailStatus(Enum):
|
|
sent = "sent"
|
|
cooldown_active = "cooldown_active"
|
|
|
|
|
|
class AdditionalNetworkPermissions(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
enabled: bool | None = None
|
|
|
|
|
|
class AgentMessageDeltaNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
delta: str
|
|
item_id: Annotated[str, Field(alias="itemId")]
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class AgentPath(RootModel[str]):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: str
|
|
|
|
|
|
class AnalyticsConfig(BaseModel):
|
|
model_config = ConfigDict(
|
|
extra="allow",
|
|
populate_by_name=True,
|
|
)
|
|
enabled: bool | None = None
|
|
|
|
|
|
class AppBranding(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
category: str | None = None
|
|
developer: str | None = None
|
|
is_discoverable_app: Annotated[bool, Field(alias="isDiscoverableApp")]
|
|
privacy_policy: Annotated[str | None, Field(alias="privacyPolicy")] = None
|
|
terms_of_service: Annotated[str | None, Field(alias="termsOfService")] = None
|
|
website: str | None = None
|
|
|
|
|
|
class AppReview(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
status: str
|
|
|
|
|
|
class AppScreenshot(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
file_id: Annotated[str | None, Field(alias="fileId")] = None
|
|
url: str | None = None
|
|
user_prompt: Annotated[str, Field(alias="userPrompt")]
|
|
|
|
|
|
class AppSummary(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
description: str | None = None
|
|
id: str
|
|
install_url: Annotated[str | None, Field(alias="installUrl")] = None
|
|
name: str
|
|
needs_auth: Annotated[bool, Field(alias="needsAuth")]
|
|
|
|
|
|
class AppToolApproval(Enum):
|
|
auto = "auto"
|
|
prompt = "prompt"
|
|
approve = "approve"
|
|
|
|
|
|
class AppToolConfig(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
approval_mode: AppToolApproval | None = None
|
|
enabled: bool | None = None
|
|
|
|
|
|
class AppToolsConfig(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class ApprovalsReviewer(Enum):
|
|
user = "user"
|
|
auto_review = "auto_review"
|
|
guardian_subagent = "guardian_subagent"
|
|
|
|
|
|
class AppsDefaultConfig(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
destructive_enabled: bool | None = True
|
|
enabled: bool | None = True
|
|
open_world_enabled: bool | None = True
|
|
|
|
|
|
class AppsListParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cursor: Annotated[
|
|
str | None,
|
|
Field(description="Opaque pagination cursor returned by a previous call."),
|
|
] = None
|
|
force_refetch: Annotated[
|
|
bool | None,
|
|
Field(
|
|
alias="forceRefetch",
|
|
description="When true, bypass app caches and fetch the latest data from sources.",
|
|
),
|
|
] = None
|
|
limit: Annotated[
|
|
int | None,
|
|
Field(
|
|
description="Optional page size; defaults to a reasonable server-side value.",
|
|
ge=0,
|
|
),
|
|
] = None
|
|
thread_id: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="threadId",
|
|
description="Optional thread id used to evaluate app feature gating from that thread's config.",
|
|
),
|
|
] = None
|
|
|
|
|
|
class AskForApprovalValue(Enum):
|
|
untrusted = "untrusted"
|
|
on_failure = "on-failure"
|
|
on_request = "on-request"
|
|
never = "never"
|
|
|
|
|
|
class Granular(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
mcp_elicitations: bool
|
|
request_permissions: bool | None = False
|
|
rules: bool
|
|
sandbox_approval: bool
|
|
skill_approval: bool | None = False
|
|
|
|
|
|
class GranularAskForApproval(BaseModel):
|
|
model_config = ConfigDict(
|
|
extra="forbid",
|
|
populate_by_name=True,
|
|
)
|
|
granular: Granular
|
|
|
|
|
|
class AskForApproval(RootModel[AskForApprovalValue | GranularAskForApproval]):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: AskForApprovalValue | GranularAskForApproval
|
|
|
|
|
|
class AuthMode(Enum):
|
|
apikey = "apikey"
|
|
chatgpt = "chatgpt"
|
|
chatgpt_auth_tokens = "chatgptAuthTokens"
|
|
agent_identity = "agentIdentity"
|
|
|
|
|
|
class AutoReviewDecisionSource(RootModel[Literal["agent"]]):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: Annotated[
|
|
Literal["agent"],
|
|
Field(
|
|
description="[UNSTABLE] Source that produced a terminal approval auto-review decision."
|
|
),
|
|
]
|
|
|
|
|
|
class ByteRange(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
end: Annotated[int, Field(ge=0)]
|
|
start: Annotated[int, Field(ge=0)]
|
|
|
|
|
|
class CancelLoginAccountParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
login_id: Annotated[str, Field(alias="loginId")]
|
|
|
|
|
|
class CancelLoginAccountStatus(Enum):
|
|
canceled = "canceled"
|
|
not_found = "notFound"
|
|
|
|
|
|
class ClientInfo(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
name: str
|
|
title: str | None = None
|
|
version: str
|
|
|
|
|
|
class CodexErrorInfoValue(Enum):
|
|
context_window_exceeded = "contextWindowExceeded"
|
|
usage_limit_exceeded = "usageLimitExceeded"
|
|
server_overloaded = "serverOverloaded"
|
|
cyber_policy = "cyberPolicy"
|
|
internal_server_error = "internalServerError"
|
|
unauthorized = "unauthorized"
|
|
bad_request = "badRequest"
|
|
thread_rollback_failed = "threadRollbackFailed"
|
|
sandbox_error = "sandboxError"
|
|
other = "other"
|
|
|
|
|
|
class HttpConnectionFailed(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
http_status_code: Annotated[int | None, Field(alias="httpStatusCode", ge=0)] = None
|
|
|
|
|
|
class HttpConnectionFailedCodexErrorInfo(BaseModel):
|
|
model_config = ConfigDict(
|
|
extra="forbid",
|
|
populate_by_name=True,
|
|
)
|
|
http_connection_failed: Annotated[
|
|
HttpConnectionFailed, Field(alias="httpConnectionFailed")
|
|
]
|
|
|
|
|
|
class ResponseStreamConnectionFailed(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
http_status_code: Annotated[int | None, Field(alias="httpStatusCode", ge=0)] = None
|
|
|
|
|
|
class ResponseStreamConnectionFailedCodexErrorInfo(BaseModel):
|
|
model_config = ConfigDict(
|
|
extra="forbid",
|
|
populate_by_name=True,
|
|
)
|
|
response_stream_connection_failed: Annotated[
|
|
ResponseStreamConnectionFailed, Field(alias="responseStreamConnectionFailed")
|
|
]
|
|
|
|
|
|
class ResponseStreamDisconnected(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
http_status_code: Annotated[int | None, Field(alias="httpStatusCode", ge=0)] = None
|
|
|
|
|
|
class ResponseStreamDisconnectedCodexErrorInfo(BaseModel):
|
|
model_config = ConfigDict(
|
|
extra="forbid",
|
|
populate_by_name=True,
|
|
)
|
|
response_stream_disconnected: Annotated[
|
|
ResponseStreamDisconnected, Field(alias="responseStreamDisconnected")
|
|
]
|
|
|
|
|
|
class ResponseTooManyFailedAttempts(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
http_status_code: Annotated[int | None, Field(alias="httpStatusCode", ge=0)] = None
|
|
|
|
|
|
class ResponseTooManyFailedAttemptsCodexErrorInfo(BaseModel):
|
|
model_config = ConfigDict(
|
|
extra="forbid",
|
|
populate_by_name=True,
|
|
)
|
|
response_too_many_failed_attempts: Annotated[
|
|
ResponseTooManyFailedAttempts, Field(alias="responseTooManyFailedAttempts")
|
|
]
|
|
|
|
|
|
class CollabAgentStatus(Enum):
|
|
pending_init = "pendingInit"
|
|
running = "running"
|
|
interrupted = "interrupted"
|
|
completed = "completed"
|
|
errored = "errored"
|
|
shutdown = "shutdown"
|
|
not_found = "notFound"
|
|
|
|
|
|
class CollabAgentTool(Enum):
|
|
spawn_agent = "spawnAgent"
|
|
send_input = "sendInput"
|
|
resume_agent = "resumeAgent"
|
|
wait = "wait"
|
|
close_agent = "closeAgent"
|
|
|
|
|
|
class CollabAgentToolCallStatus(Enum):
|
|
in_progress = "inProgress"
|
|
completed = "completed"
|
|
failed = "failed"
|
|
|
|
|
|
class ReadCommandAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
command: str
|
|
name: str
|
|
path: AbsolutePathBuf
|
|
type: Annotated[Literal["read"], Field(title="ReadCommandActionType")]
|
|
|
|
|
|
class ListFilesCommandAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
command: str
|
|
path: str | None = None
|
|
type: Annotated[Literal["listFiles"], Field(title="ListFilesCommandActionType")]
|
|
|
|
|
|
class SearchCommandAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
command: str
|
|
path: str | None = None
|
|
query: str | None = None
|
|
type: Annotated[Literal["search"], Field(title="SearchCommandActionType")]
|
|
|
|
|
|
class UnknownCommandAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
command: str
|
|
type: Annotated[Literal["unknown"], Field(title="UnknownCommandActionType")]
|
|
|
|
|
|
class CommandAction(
|
|
RootModel[
|
|
ReadCommandAction
|
|
| ListFilesCommandAction
|
|
| SearchCommandAction
|
|
| UnknownCommandAction
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: (
|
|
ReadCommandAction
|
|
| ListFilesCommandAction
|
|
| SearchCommandAction
|
|
| UnknownCommandAction
|
|
)
|
|
|
|
|
|
class CommandExecOutputStream(Enum):
|
|
stdout = "stdout"
|
|
stderr = "stderr"
|
|
|
|
|
|
class CommandExecResizeResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class CommandExecResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
exit_code: Annotated[int, Field(alias="exitCode", description="Process exit code.")]
|
|
stderr: Annotated[
|
|
str,
|
|
Field(
|
|
description="Buffered stderr capture.\n\nEmpty when stderr was streamed via `command/exec/outputDelta`."
|
|
),
|
|
]
|
|
stdout: Annotated[
|
|
str,
|
|
Field(
|
|
description="Buffered stdout capture.\n\nEmpty when stdout was streamed via `command/exec/outputDelta`."
|
|
),
|
|
]
|
|
|
|
|
|
class CommandExecTerminalSize(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cols: Annotated[int, Field(description="Terminal width in character cells.", ge=0)]
|
|
rows: Annotated[int, Field(description="Terminal height in character cells.", ge=0)]
|
|
|
|
|
|
class CommandExecTerminateParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
process_id: Annotated[
|
|
str,
|
|
Field(
|
|
alias="processId",
|
|
description="Client-supplied, connection-scoped `processId` from the original `command/exec` request.",
|
|
),
|
|
]
|
|
|
|
|
|
class CommandExecTerminateResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class CommandExecWriteParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
close_stdin: Annotated[
|
|
bool | None,
|
|
Field(
|
|
alias="closeStdin",
|
|
description="Close stdin after writing `deltaBase64`, if present.",
|
|
),
|
|
] = None
|
|
delta_base64: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="deltaBase64",
|
|
description="Optional base64-encoded stdin bytes to write.",
|
|
),
|
|
] = None
|
|
process_id: Annotated[
|
|
str,
|
|
Field(
|
|
alias="processId",
|
|
description="Client-supplied, connection-scoped `processId` from the original `command/exec` request.",
|
|
),
|
|
]
|
|
|
|
|
|
class CommandExecWriteResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class CommandExecutionOutputDeltaNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
delta: str
|
|
item_id: Annotated[str, Field(alias="itemId")]
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class CommandExecutionSource(Enum):
|
|
agent = "agent"
|
|
user_shell = "userShell"
|
|
unified_exec_startup = "unifiedExecStartup"
|
|
unified_exec_interaction = "unifiedExecInteraction"
|
|
|
|
|
|
class CommandExecutionStatus(Enum):
|
|
in_progress = "inProgress"
|
|
completed = "completed"
|
|
failed = "failed"
|
|
declined = "declined"
|
|
|
|
|
|
class CommandMigration(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
name: str
|
|
|
|
|
|
class MdmConfigLayerSource(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
domain: str
|
|
key: str
|
|
type: Annotated[Literal["mdm"], Field(title="MdmConfigLayerSourceType")]
|
|
|
|
|
|
class SystemConfigLayerSource(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
file: Annotated[
|
|
AbsolutePathBuf,
|
|
Field(
|
|
description="This is the path to the system config.toml file, though it is not guaranteed to exist."
|
|
),
|
|
]
|
|
type: Annotated[Literal["system"], Field(title="SystemConfigLayerSourceType")]
|
|
|
|
|
|
class UserConfigLayerSource(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
file: Annotated[
|
|
AbsolutePathBuf,
|
|
Field(
|
|
description="This is the path to the user's config.toml file, though it is not guaranteed to exist."
|
|
),
|
|
]
|
|
type: Annotated[Literal["user"], Field(title="UserConfigLayerSourceType")]
|
|
|
|
|
|
class ProjectConfigLayerSource(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
dot_codex_folder: Annotated[AbsolutePathBuf, Field(alias="dotCodexFolder")]
|
|
type: Annotated[Literal["project"], Field(title="ProjectConfigLayerSourceType")]
|
|
|
|
|
|
class SessionFlagsConfigLayerSource(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[
|
|
Literal["sessionFlags"], Field(title="SessionFlagsConfigLayerSourceType")
|
|
]
|
|
|
|
|
|
class LegacyManagedConfigTomlFromFileConfigLayerSource(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
file: AbsolutePathBuf
|
|
type: Annotated[
|
|
Literal["legacyManagedConfigTomlFromFile"],
|
|
Field(title="LegacyManagedConfigTomlFromFileConfigLayerSourceType"),
|
|
]
|
|
|
|
|
|
class LegacyManagedConfigTomlFromMdmConfigLayerSource(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[
|
|
Literal["legacyManagedConfigTomlFromMdm"],
|
|
Field(title="LegacyManagedConfigTomlFromMdmConfigLayerSourceType"),
|
|
]
|
|
|
|
|
|
class ConfigLayerSource(
|
|
RootModel[
|
|
MdmConfigLayerSource
|
|
| SystemConfigLayerSource
|
|
| UserConfigLayerSource
|
|
| ProjectConfigLayerSource
|
|
| SessionFlagsConfigLayerSource
|
|
| LegacyManagedConfigTomlFromFileConfigLayerSource
|
|
| LegacyManagedConfigTomlFromMdmConfigLayerSource
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: (
|
|
MdmConfigLayerSource
|
|
| SystemConfigLayerSource
|
|
| UserConfigLayerSource
|
|
| ProjectConfigLayerSource
|
|
| SessionFlagsConfigLayerSource
|
|
| LegacyManagedConfigTomlFromFileConfigLayerSource
|
|
| LegacyManagedConfigTomlFromMdmConfigLayerSource
|
|
)
|
|
|
|
|
|
class ConfigReadParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cwd: Annotated[
|
|
str | None,
|
|
Field(
|
|
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
|
|
|
|
|
|
class CommandConfiguredHookHandler(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
async_: Annotated[bool, Field(alias="async")]
|
|
command: str
|
|
status_message: Annotated[str | None, Field(alias="statusMessage")] = None
|
|
timeout_sec: Annotated[int | None, Field(alias="timeoutSec", ge=0)] = None
|
|
type: Annotated[Literal["command"], Field(title="CommandConfiguredHookHandlerType")]
|
|
|
|
|
|
class PromptConfiguredHookHandler(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[Literal["prompt"], Field(title="PromptConfiguredHookHandlerType")]
|
|
|
|
|
|
class AgentConfiguredHookHandler(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[Literal["agent"], Field(title="AgentConfiguredHookHandlerType")]
|
|
|
|
|
|
class ConfiguredHookHandler(
|
|
RootModel[
|
|
CommandConfiguredHookHandler
|
|
| PromptConfiguredHookHandler
|
|
| AgentConfiguredHookHandler
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: (
|
|
CommandConfiguredHookHandler
|
|
| PromptConfiguredHookHandler
|
|
| AgentConfiguredHookHandler
|
|
)
|
|
|
|
|
|
class ConfiguredHookMatcherGroup(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
hooks: list[ConfiguredHookHandler]
|
|
matcher: str | None = None
|
|
|
|
|
|
class InputTextContentItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
text: str
|
|
type: Annotated[Literal["input_text"], Field(title="InputTextContentItemType")]
|
|
|
|
|
|
class OutputTextContentItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
text: str
|
|
type: Annotated[Literal["output_text"], Field(title="OutputTextContentItemType")]
|
|
|
|
|
|
class ContextCompactedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class CreditsSnapshot(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
balance: str | None = None
|
|
has_credits: Annotated[bool, Field(alias="hasCredits")]
|
|
unlimited: bool
|
|
|
|
|
|
class DeprecationNoticeNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
details: Annotated[
|
|
str | None,
|
|
Field(
|
|
description="Optional extra guidance, such as migration steps or rationale."
|
|
),
|
|
] = None
|
|
summary: Annotated[str, Field(description="Concise summary of what is deprecated.")]
|
|
|
|
|
|
class InputTextDynamicToolCallOutputContentItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
text: str
|
|
type: Annotated[
|
|
Literal["inputText"],
|
|
Field(title="InputTextDynamicToolCallOutputContentItemType"),
|
|
]
|
|
|
|
|
|
class InputImageDynamicToolCallOutputContentItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
image_url: Annotated[str, Field(alias="imageUrl")]
|
|
type: Annotated[
|
|
Literal["inputImage"],
|
|
Field(title="InputImageDynamicToolCallOutputContentItemType"),
|
|
]
|
|
|
|
|
|
class DynamicToolCallOutputContentItem(
|
|
RootModel[
|
|
InputTextDynamicToolCallOutputContentItem
|
|
| InputImageDynamicToolCallOutputContentItem
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: (
|
|
InputTextDynamicToolCallOutputContentItem
|
|
| InputImageDynamicToolCallOutputContentItem
|
|
)
|
|
|
|
|
|
class DynamicToolCallStatus(Enum):
|
|
in_progress = "inProgress"
|
|
completed = "completed"
|
|
failed = "failed"
|
|
|
|
|
|
class DynamicToolSpec(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
defer_loading: Annotated[bool | None, Field(alias="deferLoading")] = None
|
|
description: str
|
|
input_schema: Annotated[Any, Field(alias="inputSchema")]
|
|
name: str
|
|
namespace: str | None = None
|
|
|
|
|
|
class ExperimentalFeatureEnablementSetParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
enablement: Annotated[
|
|
dict[str, bool],
|
|
Field(
|
|
description="Process-wide runtime feature enablement keyed by canonical feature name.\n\nOnly named features are updated. Omitted features are left unchanged. Send an empty map for a no-op."
|
|
),
|
|
]
|
|
|
|
|
|
class ExperimentalFeatureEnablementSetResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
enablement: Annotated[
|
|
dict[str, bool],
|
|
Field(description="Feature enablement entries updated by this request."),
|
|
]
|
|
|
|
|
|
class ExperimentalFeatureListParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cursor: Annotated[
|
|
str | None,
|
|
Field(description="Opaque pagination cursor returned by a previous call."),
|
|
] = None
|
|
limit: Annotated[
|
|
int | None,
|
|
Field(
|
|
description="Optional page size; defaults to a reasonable server-side value.",
|
|
ge=0,
|
|
),
|
|
] = None
|
|
|
|
|
|
class ExperimentalFeatureStage(Enum):
|
|
beta = "beta"
|
|
under_development = "underDevelopment"
|
|
stable = "stable"
|
|
deprecated = "deprecated"
|
|
removed = "removed"
|
|
|
|
|
|
class ExternalAgentConfigDetectParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cwds: Annotated[
|
|
list[str] | None,
|
|
Field(
|
|
description="Zero or more working directories to include for repo-scoped detection."
|
|
),
|
|
] = None
|
|
include_home: Annotated[
|
|
bool | None,
|
|
Field(
|
|
alias="includeHome",
|
|
description="If true, include detection under the user's home (~/.claude, ~/.codex, etc.).",
|
|
),
|
|
] = None
|
|
|
|
|
|
class ExternalAgentConfigImportCompletedNotification(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class ExternalAgentConfigImportResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class ExternalAgentConfigMigrationItemType(Enum):
|
|
agents_md = "AGENTS_MD"
|
|
config = "CONFIG"
|
|
skills = "SKILLS"
|
|
plugins = "PLUGINS"
|
|
mcp_server_config = "MCP_SERVER_CONFIG"
|
|
subagents = "SUBAGENTS"
|
|
hooks = "HOOKS"
|
|
commands = "COMMANDS"
|
|
sessions = "SESSIONS"
|
|
|
|
|
|
class FeedbackUploadParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
classification: str
|
|
extra_log_files: Annotated[list[str] | None, Field(alias="extraLogFiles")] = None
|
|
include_logs: Annotated[bool, Field(alias="includeLogs")]
|
|
reason: str | None = None
|
|
tags: dict[str, Any] | None = None
|
|
thread_id: Annotated[str | None, Field(alias="threadId")] = None
|
|
|
|
|
|
class FeedbackUploadResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class FileChangeOutputDeltaNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
delta: str
|
|
item_id: Annotated[str, Field(alias="itemId")]
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class FileSystemAccessMode(Enum):
|
|
read = "read"
|
|
write = "write"
|
|
none = "none"
|
|
|
|
|
|
class PathFileSystemPath(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
path: AbsolutePathBuf
|
|
type: Annotated[Literal["path"], Field(title="PathFileSystemPathType")]
|
|
|
|
|
|
class GlobPatternFileSystemPath(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
pattern: str
|
|
type: Annotated[
|
|
Literal["glob_pattern"], Field(title="GlobPatternFileSystemPathType")
|
|
]
|
|
|
|
|
|
class RootFileSystemSpecialPath(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
kind: Literal["root"]
|
|
|
|
|
|
class MinimalFileSystemSpecialPath(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
kind: Literal["minimal"]
|
|
|
|
|
|
class KindFileSystemSpecialPath(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
kind: Literal["project_roots"]
|
|
subpath: str | None = None
|
|
|
|
|
|
class TmpdirFileSystemSpecialPath(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
kind: Literal["tmpdir"]
|
|
|
|
|
|
class SlashTmpFileSystemSpecialPath(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
kind: Literal["slash_tmp"]
|
|
|
|
|
|
class FileSystemSpecialPath1(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
kind: Literal["unknown"]
|
|
path: str
|
|
subpath: str | None = None
|
|
|
|
|
|
class FileSystemSpecialPath(
|
|
RootModel[
|
|
RootFileSystemSpecialPath
|
|
| MinimalFileSystemSpecialPath
|
|
| KindFileSystemSpecialPath
|
|
| TmpdirFileSystemSpecialPath
|
|
| SlashTmpFileSystemSpecialPath
|
|
| FileSystemSpecialPath1
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: (
|
|
RootFileSystemSpecialPath
|
|
| MinimalFileSystemSpecialPath
|
|
| KindFileSystemSpecialPath
|
|
| TmpdirFileSystemSpecialPath
|
|
| SlashTmpFileSystemSpecialPath
|
|
| FileSystemSpecialPath1
|
|
)
|
|
|
|
|
|
class ForcedLoginMethod(Enum):
|
|
chatgpt = "chatgpt"
|
|
api = "api"
|
|
|
|
|
|
class FsChangedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
changed_paths: Annotated[
|
|
list[AbsolutePathBuf],
|
|
Field(
|
|
alias="changedPaths",
|
|
description="File or directory paths associated with this event.",
|
|
),
|
|
]
|
|
watch_id: Annotated[
|
|
str,
|
|
Field(
|
|
alias="watchId",
|
|
description="Watch identifier previously provided to `fs/watch`.",
|
|
),
|
|
]
|
|
|
|
|
|
class FsCopyParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
destination_path: Annotated[
|
|
AbsolutePathBuf,
|
|
Field(alias="destinationPath", description="Absolute destination path."),
|
|
]
|
|
recursive: Annotated[
|
|
bool | None,
|
|
Field(description="Required for directory copies; ignored for file copies."),
|
|
] = None
|
|
source_path: Annotated[
|
|
AbsolutePathBuf, Field(alias="sourcePath", description="Absolute source path.")
|
|
]
|
|
|
|
|
|
class FsCopyResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class FsCreateDirectoryParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
path: Annotated[
|
|
AbsolutePathBuf, Field(description="Absolute directory path to create.")
|
|
]
|
|
recursive: Annotated[
|
|
bool | None,
|
|
Field(
|
|
description="Whether parent directories should also be created. Defaults to `true`."
|
|
),
|
|
] = None
|
|
|
|
|
|
class FsCreateDirectoryResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class FsGetMetadataParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
path: Annotated[AbsolutePathBuf, Field(description="Absolute path to inspect.")]
|
|
|
|
|
|
class FsGetMetadataResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
created_at_ms: Annotated[
|
|
int,
|
|
Field(
|
|
alias="createdAtMs",
|
|
description="File creation time in Unix milliseconds when available, otherwise `0`.",
|
|
),
|
|
]
|
|
is_directory: Annotated[
|
|
bool,
|
|
Field(
|
|
alias="isDirectory", description="Whether the path resolves to a directory."
|
|
),
|
|
]
|
|
is_file: Annotated[
|
|
bool,
|
|
Field(
|
|
alias="isFile", description="Whether the path resolves to a regular file."
|
|
),
|
|
]
|
|
is_symlink: Annotated[
|
|
bool,
|
|
Field(
|
|
alias="isSymlink", description="Whether the path itself is a symbolic link."
|
|
),
|
|
]
|
|
modified_at_ms: Annotated[
|
|
int,
|
|
Field(
|
|
alias="modifiedAtMs",
|
|
description="File modification time in Unix milliseconds when available, otherwise `0`.",
|
|
),
|
|
]
|
|
|
|
|
|
class FsReadDirectoryEntry(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
file_name: Annotated[
|
|
str,
|
|
Field(
|
|
alias="fileName",
|
|
description="Direct child entry name only, not an absolute or relative path.",
|
|
),
|
|
]
|
|
is_directory: Annotated[
|
|
bool,
|
|
Field(
|
|
alias="isDirectory",
|
|
description="Whether this entry resolves to a directory.",
|
|
),
|
|
]
|
|
is_file: Annotated[
|
|
bool,
|
|
Field(
|
|
alias="isFile", description="Whether this entry resolves to a regular file."
|
|
),
|
|
]
|
|
|
|
|
|
class FsReadDirectoryParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
path: Annotated[
|
|
AbsolutePathBuf, Field(description="Absolute directory path to read.")
|
|
]
|
|
|
|
|
|
class FsReadDirectoryResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
entries: Annotated[
|
|
list[FsReadDirectoryEntry],
|
|
Field(description="Direct child entries in the requested directory."),
|
|
]
|
|
|
|
|
|
class FsReadFileParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
path: Annotated[AbsolutePathBuf, Field(description="Absolute path to read.")]
|
|
|
|
|
|
class FsReadFileResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
data_base64: Annotated[
|
|
str, Field(alias="dataBase64", description="File contents encoded as base64.")
|
|
]
|
|
|
|
|
|
class FsRemoveParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
force: Annotated[
|
|
bool | None,
|
|
Field(
|
|
description="Whether missing paths should be ignored. Defaults to `true`."
|
|
),
|
|
] = None
|
|
path: Annotated[AbsolutePathBuf, Field(description="Absolute path to remove.")]
|
|
recursive: Annotated[
|
|
bool | None,
|
|
Field(
|
|
description="Whether directory removal should recurse. Defaults to `true`."
|
|
),
|
|
] = None
|
|
|
|
|
|
class FsRemoveResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class FsUnwatchParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
watch_id: Annotated[
|
|
str,
|
|
Field(
|
|
alias="watchId",
|
|
description="Watch identifier previously provided to `fs/watch`.",
|
|
),
|
|
]
|
|
|
|
|
|
class FsUnwatchResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class FsWatchParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
path: Annotated[
|
|
AbsolutePathBuf, Field(description="Absolute file or directory path to watch.")
|
|
]
|
|
watch_id: Annotated[
|
|
str,
|
|
Field(
|
|
alias="watchId",
|
|
description="Connection-scoped watch identifier used for `fs/unwatch` and `fs/changed`.",
|
|
),
|
|
]
|
|
|
|
|
|
class FsWatchResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
path: Annotated[
|
|
AbsolutePathBuf,
|
|
Field(description="Canonicalized path associated with the watch."),
|
|
]
|
|
|
|
|
|
class FsWriteFileParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
data_base64: Annotated[
|
|
str, Field(alias="dataBase64", description="File contents encoded as base64.")
|
|
]
|
|
path: Annotated[AbsolutePathBuf, Field(description="Absolute path to write.")]
|
|
|
|
|
|
class FsWriteFileResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class InputTextFunctionCallOutputContentItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
text: str
|
|
type: Annotated[
|
|
Literal["input_text"], Field(title="InputTextFunctionCallOutputContentItemType")
|
|
]
|
|
|
|
|
|
class FuzzyFileSearchMatchType(Enum):
|
|
file = "file"
|
|
directory = "directory"
|
|
|
|
|
|
class FuzzyFileSearchParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cancellation_token: Annotated[str | None, Field(alias="cancellationToken")] = None
|
|
query: str
|
|
roots: list[str]
|
|
|
|
|
|
class Indice(RootModel[int]):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: Annotated[int, Field(ge=0)]
|
|
|
|
|
|
class FuzzyFileSearchResult(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
file_name: str
|
|
indices: list[Indice] | None = None
|
|
match_type: FuzzyFileSearchMatchType
|
|
path: str
|
|
root: str
|
|
score: Annotated[int, Field(ge=0)]
|
|
|
|
|
|
class FuzzyFileSearchSessionCompletedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
session_id: Annotated[str, Field(alias="sessionId")]
|
|
|
|
|
|
class FuzzyFileSearchSessionUpdatedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
files: list[FuzzyFileSearchResult]
|
|
query: str
|
|
session_id: Annotated[str, Field(alias="sessionId")]
|
|
|
|
|
|
class GetAccountParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
refresh_token: Annotated[
|
|
bool | None,
|
|
Field(
|
|
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
|
|
|
|
|
|
class GitInfo(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
branch: str | None = None
|
|
origin_url: Annotated[str | None, Field(alias="originUrl")] = None
|
|
sha: str | None = None
|
|
|
|
|
|
class ApplyPatchGuardianApprovalReviewAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cwd: AbsolutePathBuf
|
|
files: list[AbsolutePathBuf]
|
|
type: Annotated[
|
|
Literal["applyPatch"], Field(title="ApplyPatchGuardianApprovalReviewActionType")
|
|
]
|
|
|
|
|
|
class McpToolCallGuardianApprovalReviewAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
connector_id: Annotated[str | None, Field(alias="connectorId")] = None
|
|
connector_name: Annotated[str | None, Field(alias="connectorName")] = None
|
|
server: str
|
|
tool_name: Annotated[str, Field(alias="toolName")]
|
|
tool_title: Annotated[str | None, Field(alias="toolTitle")] = None
|
|
type: Annotated[
|
|
Literal["mcpToolCall"],
|
|
Field(title="McpToolCallGuardianApprovalReviewActionType"),
|
|
]
|
|
|
|
|
|
class GuardianApprovalReviewStatus(Enum):
|
|
in_progress = "inProgress"
|
|
approved = "approved"
|
|
denied = "denied"
|
|
timed_out = "timedOut"
|
|
aborted = "aborted"
|
|
|
|
|
|
class GuardianCommandSource(Enum):
|
|
shell = "shell"
|
|
unified_exec = "unifiedExec"
|
|
|
|
|
|
class GuardianRiskLevel(Enum):
|
|
low = "low"
|
|
medium = "medium"
|
|
high = "high"
|
|
critical = "critical"
|
|
|
|
|
|
class GuardianUserAuthorization(Enum):
|
|
unknown = "unknown"
|
|
low = "low"
|
|
medium = "medium"
|
|
high = "high"
|
|
|
|
|
|
class GuardianWarningNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
message: Annotated[
|
|
str, Field(description="Concise guardian warning message for the user.")
|
|
]
|
|
thread_id: Annotated[
|
|
str,
|
|
Field(alias="threadId", description="Thread target for the guardian warning."),
|
|
]
|
|
|
|
|
|
class HookErrorInfo(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
message: str
|
|
path: str
|
|
|
|
|
|
class HookEventName(Enum):
|
|
pre_tool_use = "preToolUse"
|
|
permission_request = "permissionRequest"
|
|
post_tool_use = "postToolUse"
|
|
pre_compact = "preCompact"
|
|
post_compact = "postCompact"
|
|
session_start = "sessionStart"
|
|
user_prompt_submit = "userPromptSubmit"
|
|
stop = "stop"
|
|
|
|
|
|
class HookExecutionMode(Enum):
|
|
sync = "sync"
|
|
async_ = "async"
|
|
|
|
|
|
class HookHandlerType(Enum):
|
|
command = "command"
|
|
prompt = "prompt"
|
|
agent = "agent"
|
|
|
|
|
|
class HookMigration(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
name: str
|
|
|
|
|
|
class HookOutputEntryKind(Enum):
|
|
warning = "warning"
|
|
stop = "stop"
|
|
feedback = "feedback"
|
|
context = "context"
|
|
error = "error"
|
|
|
|
|
|
class HookPromptFragment(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
hook_run_id: Annotated[str, Field(alias="hookRunId")]
|
|
text: str
|
|
|
|
|
|
class HookRunStatus(Enum):
|
|
running = "running"
|
|
completed = "completed"
|
|
failed = "failed"
|
|
blocked = "blocked"
|
|
stopped = "stopped"
|
|
|
|
|
|
class HookScope(Enum):
|
|
thread = "thread"
|
|
turn = "turn"
|
|
|
|
|
|
class HookSource(Enum):
|
|
system = "system"
|
|
user = "user"
|
|
project = "project"
|
|
mdm = "mdm"
|
|
session_flags = "sessionFlags"
|
|
plugin = "plugin"
|
|
cloud_requirements = "cloudRequirements"
|
|
legacy_managed_config_file = "legacyManagedConfigFile"
|
|
legacy_managed_config_mdm = "legacyManagedConfigMdm"
|
|
unknown = "unknown"
|
|
|
|
|
|
class HookTrustStatus(Enum):
|
|
managed = "managed"
|
|
untrusted = "untrusted"
|
|
trusted = "trusted"
|
|
modified = "modified"
|
|
|
|
|
|
class HooksListParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cwds: Annotated[
|
|
list[str] | None,
|
|
Field(
|
|
description="When empty, defaults to the current session working directory."
|
|
),
|
|
] = None
|
|
|
|
|
|
class ImageDetail(Enum):
|
|
auto = "auto"
|
|
low = "low"
|
|
high = "high"
|
|
original = "original"
|
|
|
|
|
|
class InitializeCapabilities(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
experimental_api: Annotated[
|
|
bool | None,
|
|
Field(
|
|
alias="experimentalApi",
|
|
description="Opt into receiving experimental API methods and fields.",
|
|
),
|
|
] = False
|
|
opt_out_notification_methods: Annotated[
|
|
list[str] | None,
|
|
Field(
|
|
alias="optOutNotificationMethods",
|
|
description="Exact notification method names that should be suppressed for this connection (for example `thread/started`).",
|
|
),
|
|
] = None
|
|
request_attestation: Annotated[
|
|
bool | None,
|
|
Field(
|
|
alias="requestAttestation",
|
|
description="Opt into `attestation/generate` requests for upstream `x-oai-attestation`.",
|
|
),
|
|
] = False
|
|
|
|
|
|
class InitializeParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
capabilities: InitializeCapabilities | None = None
|
|
client_info: Annotated[ClientInfo, Field(alias="clientInfo")]
|
|
|
|
|
|
class InputModality(Enum):
|
|
text = "text"
|
|
image = "image"
|
|
|
|
|
|
class ExecLocalShellAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
command: list[str]
|
|
env: dict[str, Any] | None = None
|
|
timeout_ms: Annotated[int | None, Field(ge=0)] = None
|
|
type: Annotated[Literal["exec"], Field(title="ExecLocalShellActionType")]
|
|
user: str | None = None
|
|
working_directory: str | None = None
|
|
|
|
|
|
class LocalShellAction(RootModel[ExecLocalShellAction]):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: ExecLocalShellAction
|
|
|
|
|
|
class LocalShellStatus(Enum):
|
|
completed = "completed"
|
|
in_progress = "in_progress"
|
|
incomplete = "incomplete"
|
|
|
|
|
|
class ApiKeyLoginAccountParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
api_key: Annotated[str, Field(alias="apiKey")]
|
|
type: Annotated[Literal["apiKey"], Field(title="ApiKeyv2::LoginAccountParamsType")]
|
|
|
|
|
|
class ChatgptLoginAccountParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
codex_streamlined_login: Annotated[
|
|
bool | None, Field(alias="codexStreamlinedLogin")
|
|
] = None
|
|
type: Annotated[
|
|
Literal["chatgpt"], Field(title="Chatgptv2::LoginAccountParamsType")
|
|
]
|
|
|
|
|
|
class ChatgptDeviceCodeLoginAccountParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[
|
|
Literal["chatgptDeviceCode"],
|
|
Field(title="ChatgptDeviceCodev2::LoginAccountParamsType"),
|
|
]
|
|
|
|
|
|
class ChatgptAuthTokensLoginAccountParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
access_token: Annotated[
|
|
str,
|
|
Field(
|
|
alias="accessToken",
|
|
description="Access token (JWT) supplied by the client. This token is used for backend API requests and email extraction.",
|
|
),
|
|
]
|
|
chatgpt_account_id: Annotated[
|
|
str,
|
|
Field(
|
|
alias="chatgptAccountId",
|
|
description="Workspace/account identifier supplied by the client.",
|
|
),
|
|
]
|
|
chatgpt_plan_type: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="chatgptPlanType",
|
|
description="Optional plan type supplied by the client.\n\nWhen `null`, Codex attempts to derive the plan type from access-token claims. If unavailable, the plan defaults to `unknown`.",
|
|
),
|
|
] = None
|
|
type: Annotated[
|
|
Literal["chatgptAuthTokens"],
|
|
Field(title="ChatgptAuthTokensv2::LoginAccountParamsType"),
|
|
]
|
|
|
|
|
|
class LoginAccountParams(
|
|
RootModel[
|
|
ApiKeyLoginAccountParams
|
|
| ChatgptLoginAccountParams
|
|
| ChatgptDeviceCodeLoginAccountParams
|
|
| ChatgptAuthTokensLoginAccountParams
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: Annotated[
|
|
ApiKeyLoginAccountParams
|
|
| ChatgptLoginAccountParams
|
|
| ChatgptDeviceCodeLoginAccountParams
|
|
| ChatgptAuthTokensLoginAccountParams,
|
|
Field(title="LoginAccountParams"),
|
|
]
|
|
|
|
|
|
class ApiKeyLoginAccountResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[
|
|
Literal["apiKey"], Field(title="ApiKeyv2::LoginAccountResponseType")
|
|
]
|
|
|
|
|
|
class ChatgptLoginAccountResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
auth_url: Annotated[
|
|
str,
|
|
Field(
|
|
alias="authUrl",
|
|
description="URL the client should open in a browser to initiate the OAuth flow.",
|
|
),
|
|
]
|
|
login_id: Annotated[str, Field(alias="loginId")]
|
|
type: Annotated[
|
|
Literal["chatgpt"], Field(title="Chatgptv2::LoginAccountResponseType")
|
|
]
|
|
|
|
|
|
class ChatgptDeviceCodeLoginAccountResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
login_id: Annotated[str, Field(alias="loginId")]
|
|
type: Annotated[
|
|
Literal["chatgptDeviceCode"],
|
|
Field(title="ChatgptDeviceCodev2::LoginAccountResponseType"),
|
|
]
|
|
user_code: Annotated[
|
|
str,
|
|
Field(
|
|
alias="userCode",
|
|
description="One-time code the user must enter after signing in.",
|
|
),
|
|
]
|
|
verification_url: Annotated[
|
|
str,
|
|
Field(
|
|
alias="verificationUrl",
|
|
description="URL the client should open in a browser to complete device code authorization.",
|
|
),
|
|
]
|
|
|
|
|
|
class ChatgptAuthTokensLoginAccountResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[
|
|
Literal["chatgptAuthTokens"],
|
|
Field(title="ChatgptAuthTokensv2::LoginAccountResponseType"),
|
|
]
|
|
|
|
|
|
class LoginAccountResponse(
|
|
RootModel[
|
|
ApiKeyLoginAccountResponse
|
|
| ChatgptLoginAccountResponse
|
|
| ChatgptDeviceCodeLoginAccountResponse
|
|
| ChatgptAuthTokensLoginAccountResponse
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: Annotated[
|
|
ApiKeyLoginAccountResponse
|
|
| ChatgptLoginAccountResponse
|
|
| ChatgptDeviceCodeLoginAccountResponse
|
|
| ChatgptAuthTokensLoginAccountResponse,
|
|
Field(title="LoginAccountResponse"),
|
|
]
|
|
|
|
|
|
class LogoutAccountResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class ManagedHooksRequirements(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
permission_request: Annotated[
|
|
list[ConfiguredHookMatcherGroup], Field(alias="PermissionRequest")
|
|
]
|
|
post_compact: Annotated[
|
|
list[ConfiguredHookMatcherGroup], Field(alias="PostCompact")
|
|
]
|
|
post_tool_use: Annotated[
|
|
list[ConfiguredHookMatcherGroup], Field(alias="PostToolUse")
|
|
]
|
|
pre_compact: Annotated[list[ConfiguredHookMatcherGroup], Field(alias="PreCompact")]
|
|
pre_tool_use: Annotated[list[ConfiguredHookMatcherGroup], Field(alias="PreToolUse")]
|
|
session_start: Annotated[
|
|
list[ConfiguredHookMatcherGroup], Field(alias="SessionStart")
|
|
]
|
|
stop: Annotated[list[ConfiguredHookMatcherGroup], Field(alias="Stop")]
|
|
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
|
|
|
|
|
|
class MarketplaceAddParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
ref_name: Annotated[str | None, Field(alias="refName")] = None
|
|
source: str
|
|
sparse_paths: Annotated[list[str] | None, Field(alias="sparsePaths")] = None
|
|
|
|
|
|
class MarketplaceAddResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
already_added: Annotated[bool, Field(alias="alreadyAdded")]
|
|
installed_root: Annotated[AbsolutePathBuf, Field(alias="installedRoot")]
|
|
marketplace_name: Annotated[str, Field(alias="marketplaceName")]
|
|
|
|
|
|
class MarketplaceInterface(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
display_name: Annotated[str | None, Field(alias="displayName")] = None
|
|
|
|
|
|
class MarketplaceLoadErrorInfo(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
marketplace_path: Annotated[AbsolutePathBuf, Field(alias="marketplacePath")]
|
|
message: str
|
|
|
|
|
|
class MarketplaceRemoveParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
marketplace_name: Annotated[str, Field(alias="marketplaceName")]
|
|
|
|
|
|
class MarketplaceRemoveResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
installed_root: Annotated[AbsolutePathBuf | None, Field(alias="installedRoot")] = (
|
|
None
|
|
)
|
|
marketplace_name: Annotated[str, Field(alias="marketplaceName")]
|
|
|
|
|
|
class MarketplaceUpgradeErrorInfo(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
marketplace_name: Annotated[str, Field(alias="marketplaceName")]
|
|
message: str
|
|
|
|
|
|
class MarketplaceUpgradeParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
marketplace_name: Annotated[str | None, Field(alias="marketplaceName")] = None
|
|
|
|
|
|
class MarketplaceUpgradeResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
errors: list[MarketplaceUpgradeErrorInfo]
|
|
selected_marketplaces: Annotated[list[str], Field(alias="selectedMarketplaces")]
|
|
upgraded_roots: Annotated[list[AbsolutePathBuf], Field(alias="upgradedRoots")]
|
|
|
|
|
|
class McpAuthStatus(Enum):
|
|
unsupported = "unsupported"
|
|
not_logged_in = "notLoggedIn"
|
|
bearer_token = "bearerToken"
|
|
o_auth = "oAuth"
|
|
|
|
|
|
class McpResourceReadParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
server: str
|
|
thread_id: Annotated[str | None, Field(alias="threadId")] = None
|
|
uri: str
|
|
|
|
|
|
class McpServerMigration(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
name: str
|
|
|
|
|
|
class McpServerOauthLoginCompletedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
error: str | None = None
|
|
name: str
|
|
success: bool
|
|
|
|
|
|
class McpServerOauthLoginParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
name: str
|
|
scopes: list[str] | None = None
|
|
timeout_secs: Annotated[int | None, Field(alias="timeoutSecs")] = None
|
|
|
|
|
|
class McpServerOauthLoginResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
authorization_url: Annotated[str, Field(alias="authorizationUrl")]
|
|
|
|
|
|
class McpServerRefreshResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class McpServerStartupState(Enum):
|
|
starting = "starting"
|
|
ready = "ready"
|
|
failed = "failed"
|
|
cancelled = "cancelled"
|
|
|
|
|
|
class McpServerStatusDetail(Enum):
|
|
full = "full"
|
|
tools_and_auth_only = "toolsAndAuthOnly"
|
|
|
|
|
|
class McpServerStatusUpdatedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
error: str | None = None
|
|
name: str
|
|
status: McpServerStartupState
|
|
|
|
|
|
class McpServerToolCallParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
field_meta: Annotated[Any | None, Field(alias="_meta")] = None
|
|
arguments: Any | None = None
|
|
server: str
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
tool: str
|
|
|
|
|
|
class McpServerToolCallResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
field_meta: Annotated[Any | None, Field(alias="_meta")] = None
|
|
content: list
|
|
is_error: Annotated[bool | None, Field(alias="isError")] = None
|
|
structured_content: Annotated[Any | None, Field(alias="structuredContent")] = None
|
|
|
|
|
|
class McpToolCallError(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
message: str
|
|
|
|
|
|
class McpToolCallProgressNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
item_id: Annotated[str, Field(alias="itemId")]
|
|
message: str
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class McpToolCallResult(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
field_meta: Annotated[Any | None, Field(alias="_meta")] = None
|
|
content: list
|
|
structured_content: Annotated[Any | None, Field(alias="structuredContent")] = None
|
|
|
|
|
|
class McpToolCallStatus(Enum):
|
|
in_progress = "inProgress"
|
|
completed = "completed"
|
|
failed = "failed"
|
|
|
|
|
|
class MemoryCitationEntry(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
line_end: Annotated[int, Field(alias="lineEnd", ge=0)]
|
|
line_start: Annotated[int, Field(alias="lineStart", ge=0)]
|
|
note: str
|
|
path: str
|
|
|
|
|
|
class MergeStrategy(Enum):
|
|
replace = "replace"
|
|
upsert = "upsert"
|
|
|
|
|
|
class MessagePhase(Enum):
|
|
commentary = "commentary"
|
|
final_answer = "final_answer"
|
|
|
|
|
|
class ModeKind(Enum):
|
|
plan = "plan"
|
|
default = "default"
|
|
|
|
|
|
class ModelAvailabilityNux(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
message: str
|
|
|
|
|
|
class ModelListParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cursor: Annotated[
|
|
str | None,
|
|
Field(description="Opaque pagination cursor returned by a previous call."),
|
|
] = None
|
|
include_hidden: Annotated[
|
|
bool | None,
|
|
Field(
|
|
alias="includeHidden",
|
|
description="When true, include models that are hidden from the default picker list.",
|
|
),
|
|
] = None
|
|
limit: Annotated[
|
|
int | None,
|
|
Field(
|
|
description="Optional page size; defaults to a reasonable server-side value.",
|
|
ge=0,
|
|
),
|
|
] = None
|
|
|
|
|
|
class ModelProviderCapabilitiesReadParams(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class ModelProviderCapabilitiesReadResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
image_generation: Annotated[bool, Field(alias="imageGeneration")]
|
|
namespace_tools: Annotated[bool, Field(alias="namespaceTools")]
|
|
web_search: Annotated[bool, Field(alias="webSearch")]
|
|
|
|
|
|
class ModelRerouteReason(RootModel[Literal["highRiskCyberActivity"]]):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: Literal["highRiskCyberActivity"]
|
|
|
|
|
|
class ModelReroutedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
from_model: Annotated[str, Field(alias="fromModel")]
|
|
reason: ModelRerouteReason
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
to_model: Annotated[str, Field(alias="toModel")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class ModelServiceTier(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
description: str
|
|
id: str
|
|
name: str
|
|
|
|
|
|
class ModelUpgradeInfo(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
migration_markdown: Annotated[str | None, Field(alias="migrationMarkdown")] = None
|
|
model: str
|
|
model_link: Annotated[str | None, Field(alias="modelLink")] = None
|
|
upgrade_copy: Annotated[str | None, Field(alias="upgradeCopy")] = None
|
|
|
|
|
|
class ModelVerification(RootModel[Literal["trustedAccessForCyber"]]):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: Literal["trustedAccessForCyber"]
|
|
|
|
|
|
class ModelVerificationNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
verifications: list[ModelVerification]
|
|
|
|
|
|
class NetworkAccess(Enum):
|
|
restricted = "restricted"
|
|
enabled = "enabled"
|
|
|
|
|
|
class NetworkApprovalProtocol(Enum):
|
|
http = "http"
|
|
https = "https"
|
|
socks5_tcp = "socks5Tcp"
|
|
socks5_udp = "socks5Udp"
|
|
|
|
|
|
class NetworkDomainPermission(Enum):
|
|
allow = "allow"
|
|
deny = "deny"
|
|
|
|
|
|
class NetworkRequirements(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
allow_local_binding: Annotated[bool | None, Field(alias="allowLocalBinding")] = None
|
|
allow_unix_sockets: Annotated[
|
|
list[str] | None,
|
|
Field(
|
|
alias="allowUnixSockets",
|
|
description="Legacy compatibility view derived from `unix_sockets`.",
|
|
),
|
|
] = None
|
|
allow_upstream_proxy: Annotated[bool | None, Field(alias="allowUpstreamProxy")] = (
|
|
None
|
|
)
|
|
allowed_domains: Annotated[
|
|
list[str] | None,
|
|
Field(
|
|
alias="allowedDomains",
|
|
description="Legacy compatibility view derived from `domains`.",
|
|
),
|
|
] = None
|
|
dangerously_allow_all_unix_sockets: Annotated[
|
|
bool | None, Field(alias="dangerouslyAllowAllUnixSockets")
|
|
] = None
|
|
dangerously_allow_non_loopback_proxy: Annotated[
|
|
bool | None, Field(alias="dangerouslyAllowNonLoopbackProxy")
|
|
] = None
|
|
denied_domains: Annotated[
|
|
list[str] | None,
|
|
Field(
|
|
alias="deniedDomains",
|
|
description="Legacy compatibility view derived from `domains`.",
|
|
),
|
|
] = None
|
|
domains: Annotated[
|
|
dict[str, Any] | None,
|
|
Field(
|
|
description="Canonical network permission map for `experimental_network`."
|
|
),
|
|
] = None
|
|
enabled: bool | None = None
|
|
http_port: Annotated[int | None, Field(alias="httpPort", ge=0)] = None
|
|
managed_allowed_domains_only: Annotated[
|
|
bool | None,
|
|
Field(
|
|
alias="managedAllowedDomainsOnly",
|
|
description="When true, only managed allowlist entries are respected while managed network enforcement is active.",
|
|
),
|
|
] = None
|
|
socks_port: Annotated[int | None, Field(alias="socksPort", ge=0)] = None
|
|
unix_sockets: Annotated[
|
|
dict[str, Any] | None,
|
|
Field(
|
|
alias="unixSockets",
|
|
description="Canonical unix socket permission map for `experimental_network`.",
|
|
),
|
|
] = None
|
|
|
|
|
|
class NetworkUnixSocketPermission(Enum):
|
|
allow = "allow"
|
|
none = "none"
|
|
|
|
|
|
class NonSteerableTurnKind(Enum):
|
|
review = "review"
|
|
compact = "compact"
|
|
|
|
|
|
class PatchApplyStatus(Enum):
|
|
in_progress = "inProgress"
|
|
completed = "completed"
|
|
failed = "failed"
|
|
declined = "declined"
|
|
|
|
|
|
class AddPatchChangeKind(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[Literal["add"], Field(title="AddPatchChangeKindType")]
|
|
|
|
|
|
class DeletePatchChangeKind(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[Literal["delete"], Field(title="DeletePatchChangeKindType")]
|
|
|
|
|
|
class UpdatePatchChangeKind(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
move_path: str | None = None
|
|
type: Annotated[Literal["update"], Field(title="UpdatePatchChangeKindType")]
|
|
|
|
|
|
class PatchChangeKind(
|
|
RootModel[AddPatchChangeKind | DeletePatchChangeKind | UpdatePatchChangeKind]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: AddPatchChangeKind | DeletePatchChangeKind | UpdatePatchChangeKind
|
|
|
|
|
|
class DisabledPermissionProfile(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[Literal["disabled"], Field(title="DisabledPermissionProfileType")]
|
|
|
|
|
|
class UnrestrictedPermissionProfileFileSystemPermissions(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[
|
|
Literal["unrestricted"],
|
|
Field(title="UnrestrictedPermissionProfileFileSystemPermissionsType"),
|
|
]
|
|
|
|
|
|
class AdditionalWritableRootPermissionProfileModificationParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
path: AbsolutePathBuf
|
|
type: Annotated[
|
|
Literal["additionalWritableRoot"],
|
|
Field(title="AdditionalWritableRootPermissionProfileModificationParamsType"),
|
|
]
|
|
|
|
|
|
class PermissionProfileModificationParams(
|
|
RootModel[AdditionalWritableRootPermissionProfileModificationParams]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: AdditionalWritableRootPermissionProfileModificationParams
|
|
|
|
|
|
class PermissionProfileNetworkPermissions(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
enabled: bool
|
|
|
|
|
|
class ProfilePermissionProfileSelectionParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: str
|
|
modifications: list[PermissionProfileModificationParams] | None = None
|
|
type: Annotated[
|
|
Literal["profile"], Field(title="ProfilePermissionProfileSelectionParamsType")
|
|
]
|
|
|
|
|
|
class PermissionProfileSelectionParams(
|
|
RootModel[ProfilePermissionProfileSelectionParams]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: ProfilePermissionProfileSelectionParams
|
|
|
|
|
|
class Personality(Enum):
|
|
none = "none"
|
|
friendly = "friendly"
|
|
pragmatic = "pragmatic"
|
|
|
|
|
|
class PlanDeltaNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
delta: str
|
|
item_id: Annotated[str, Field(alias="itemId")]
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class PlanType(Enum):
|
|
free = "free"
|
|
go = "go"
|
|
plus = "plus"
|
|
pro = "pro"
|
|
prolite = "prolite"
|
|
team = "team"
|
|
self_serve_business_usage_based = "self_serve_business_usage_based"
|
|
business = "business"
|
|
enterprise_cbp_usage_based = "enterprise_cbp_usage_based"
|
|
enterprise = "enterprise"
|
|
edu = "edu"
|
|
unknown = "unknown"
|
|
|
|
|
|
class PluginAuthPolicy(Enum):
|
|
on_install = "ON_INSTALL"
|
|
on_use = "ON_USE"
|
|
|
|
|
|
class PluginAvailability(Enum):
|
|
disabled_by_admin = "DISABLED_BY_ADMIN"
|
|
available = "AVAILABLE"
|
|
|
|
|
|
class PluginHookSummary(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
event_name: Annotated[HookEventName, Field(alias="eventName")]
|
|
key: str
|
|
|
|
|
|
class PluginInstallParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
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
|
|
|
|
|
|
class PluginInstallPolicy(Enum):
|
|
not_available = "NOT_AVAILABLE"
|
|
available = "AVAILABLE"
|
|
installed_by_default = "INSTALLED_BY_DEFAULT"
|
|
|
|
|
|
class PluginInstallResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
apps_needing_auth: Annotated[list[AppSummary], Field(alias="appsNeedingAuth")]
|
|
auth_policy: Annotated[PluginAuthPolicy, Field(alias="authPolicy")]
|
|
|
|
|
|
class PluginInterface(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
brand_color: Annotated[str | None, Field(alias="brandColor")] = None
|
|
capabilities: list[str]
|
|
category: str | None = None
|
|
composer_icon: Annotated[
|
|
AbsolutePathBuf | None,
|
|
Field(
|
|
alias="composerIcon",
|
|
description="Local composer icon path, resolved from the installed plugin package.",
|
|
),
|
|
] = None
|
|
composer_icon_url: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="composerIconUrl",
|
|
description="Remote composer icon URL from the plugin catalog.",
|
|
),
|
|
] = None
|
|
default_prompt: Annotated[
|
|
list[str] | None,
|
|
Field(
|
|
alias="defaultPrompt",
|
|
description="Starter prompts for the plugin. Capped at 3 entries with a maximum of 128 characters per entry.",
|
|
),
|
|
] = None
|
|
developer_name: Annotated[str | None, Field(alias="developerName")] = None
|
|
display_name: Annotated[str | None, Field(alias="displayName")] = None
|
|
logo: Annotated[
|
|
AbsolutePathBuf | None,
|
|
Field(
|
|
description="Local logo path, resolved from the installed plugin package."
|
|
),
|
|
] = None
|
|
logo_url: Annotated[
|
|
str | None,
|
|
Field(alias="logoUrl", description="Remote logo URL from the plugin catalog."),
|
|
] = None
|
|
long_description: Annotated[str | None, Field(alias="longDescription")] = None
|
|
privacy_policy_url: Annotated[str | None, Field(alias="privacyPolicyUrl")] = None
|
|
screenshot_urls: Annotated[
|
|
list[str],
|
|
Field(
|
|
alias="screenshotUrls",
|
|
description="Remote screenshot URLs from the plugin catalog.",
|
|
),
|
|
]
|
|
screenshots: Annotated[
|
|
list[AbsolutePathBuf],
|
|
Field(
|
|
description="Local screenshot paths, resolved from the installed plugin package."
|
|
),
|
|
]
|
|
short_description: Annotated[str | None, Field(alias="shortDescription")] = None
|
|
terms_of_service_url: Annotated[str | None, Field(alias="termsOfServiceUrl")] = None
|
|
website_url: Annotated[str | None, Field(alias="websiteUrl")] = None
|
|
|
|
|
|
class PluginListMarketplaceKind(Enum):
|
|
local = "local"
|
|
workspace_directory = "workspace-directory"
|
|
shared_with_me = "shared-with-me"
|
|
|
|
|
|
class PluginListParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cwds: Annotated[
|
|
list[AbsolutePathBuf] | None,
|
|
Field(
|
|
description="Optional working directories used to discover repo marketplaces. When omitted, only home-scoped marketplaces and the official curated marketplace are considered."
|
|
),
|
|
] = None
|
|
marketplace_kinds: Annotated[
|
|
list[PluginListMarketplaceKind] | None,
|
|
Field(
|
|
alias="marketplaceKinds",
|
|
description="Optional marketplace kind filter. When omitted, only local marketplaces are queried, plus the default remote catalog when enabled by feature flag.",
|
|
),
|
|
] = None
|
|
|
|
|
|
class PluginReadParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
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
|
|
|
|
|
|
class PluginShareDeleteParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
remote_plugin_id: Annotated[str, Field(alias="remotePluginId")]
|
|
|
|
|
|
class PluginShareDeleteResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class PluginShareDiscoverability(Enum):
|
|
listed = "LISTED"
|
|
unlisted = "UNLISTED"
|
|
private = "PRIVATE"
|
|
|
|
|
|
class PluginShareListParams(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class PluginSharePrincipalRole(Enum):
|
|
reader = "reader"
|
|
editor = "editor"
|
|
owner = "owner"
|
|
|
|
|
|
class PluginSharePrincipalType(Enum):
|
|
user = "user"
|
|
group = "group"
|
|
workspace = "workspace"
|
|
|
|
|
|
class PluginShareSaveResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
remote_plugin_id: Annotated[str, Field(alias="remotePluginId")]
|
|
share_url: Annotated[str, Field(alias="shareUrl")]
|
|
|
|
|
|
class PluginShareTargetRole(Enum):
|
|
reader = "reader"
|
|
editor = "editor"
|
|
|
|
|
|
class PluginShareUpdateDiscoverability(Enum):
|
|
unlisted = "UNLISTED"
|
|
private = "PRIVATE"
|
|
|
|
|
|
class PluginSkillReadParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
remote_marketplace_name: Annotated[str, Field(alias="remoteMarketplaceName")]
|
|
remote_plugin_id: Annotated[str, Field(alias="remotePluginId")]
|
|
skill_name: Annotated[str, Field(alias="skillName")]
|
|
|
|
|
|
class PluginSkillReadResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
contents: str | None = None
|
|
|
|
|
|
class LocalPluginSource(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
path: AbsolutePathBuf
|
|
type: Annotated[Literal["local"], Field(title="LocalPluginSourceType")]
|
|
|
|
|
|
class GitPluginSource(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
path: str | None = None
|
|
ref_name: Annotated[str | None, Field(alias="refName")] = None
|
|
sha: str | None = None
|
|
type: Annotated[Literal["git"], Field(title="GitPluginSourceType")]
|
|
url: str
|
|
|
|
|
|
class RemotePluginSource(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[Literal["remote"], Field(title="RemotePluginSourceType")]
|
|
|
|
|
|
class PluginSource(RootModel[LocalPluginSource | GitPluginSource | RemotePluginSource]):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: LocalPluginSource | GitPluginSource | RemotePluginSource
|
|
|
|
|
|
class PluginUninstallParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
plugin_id: Annotated[str, Field(alias="pluginId")]
|
|
|
|
|
|
class PluginUninstallResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class PluginsMigration(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
marketplace_name: Annotated[str, Field(alias="marketplaceName")]
|
|
plugin_names: Annotated[list[str], Field(alias="pluginNames")]
|
|
|
|
|
|
class ProcessExitedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
exit_code: Annotated[int, Field(alias="exitCode", description="Process exit code.")]
|
|
process_handle: Annotated[
|
|
str,
|
|
Field(
|
|
alias="processHandle",
|
|
description="Client-supplied, connection-scoped `processHandle` from `process/spawn`.",
|
|
),
|
|
]
|
|
stderr: Annotated[
|
|
str,
|
|
Field(
|
|
description="Buffered stderr capture.\n\nEmpty when stderr was streamed via `process/outputDelta`."
|
|
),
|
|
]
|
|
stderr_cap_reached: Annotated[
|
|
bool,
|
|
Field(
|
|
alias="stderrCapReached",
|
|
description="Whether stderr reached `outputBytesCap`.\n\nIn streaming mode, stderr is empty and cap state is also reported on the final stderr `process/outputDelta` notification.",
|
|
),
|
|
]
|
|
stdout: Annotated[
|
|
str,
|
|
Field(
|
|
description="Buffered stdout capture.\n\nEmpty when stdout was streamed via `process/outputDelta`."
|
|
),
|
|
]
|
|
stdout_cap_reached: Annotated[
|
|
bool,
|
|
Field(
|
|
alias="stdoutCapReached",
|
|
description="Whether stdout reached `outputBytesCap`.\n\nIn streaming mode, stdout is empty and cap state is also reported on the final stdout `process/outputDelta` notification.",
|
|
),
|
|
]
|
|
|
|
|
|
class ProcessOutputStream(Enum):
|
|
stdout = "stdout"
|
|
stderr = "stderr"
|
|
|
|
|
|
class ProcessTerminalSize(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cols: Annotated[int, Field(description="Terminal width in character cells.", ge=0)]
|
|
rows: Annotated[int, Field(description="Terminal height in character cells.", ge=0)]
|
|
|
|
|
|
class RateLimitReachedType(Enum):
|
|
rate_limit_reached = "rate_limit_reached"
|
|
workspace_owner_credits_depleted = "workspace_owner_credits_depleted"
|
|
workspace_member_credits_depleted = "workspace_member_credits_depleted"
|
|
workspace_owner_usage_limit_reached = "workspace_owner_usage_limit_reached"
|
|
workspace_member_usage_limit_reached = "workspace_member_usage_limit_reached"
|
|
|
|
|
|
class RateLimitWindow(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
resets_at: Annotated[int | None, Field(alias="resetsAt")] = None
|
|
used_percent: Annotated[int, Field(alias="usedPercent")]
|
|
window_duration_mins: Annotated[int | None, Field(alias="windowDurationMins")] = (
|
|
None
|
|
)
|
|
|
|
|
|
class RealtimeConversationVersion(Enum):
|
|
v1 = "v1"
|
|
v2 = "v2"
|
|
|
|
|
|
class RealtimeOutputModality(Enum):
|
|
text = "text"
|
|
audio = "audio"
|
|
|
|
|
|
class RealtimeVoice(Enum):
|
|
alloy = "alloy"
|
|
arbor = "arbor"
|
|
ash = "ash"
|
|
ballad = "ballad"
|
|
breeze = "breeze"
|
|
cedar = "cedar"
|
|
coral = "coral"
|
|
cove = "cove"
|
|
echo = "echo"
|
|
ember = "ember"
|
|
juniper = "juniper"
|
|
maple = "maple"
|
|
marin = "marin"
|
|
sage = "sage"
|
|
shimmer = "shimmer"
|
|
sol = "sol"
|
|
spruce = "spruce"
|
|
vale = "vale"
|
|
verse = "verse"
|
|
|
|
|
|
class RealtimeVoicesList(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
default_v1: Annotated[RealtimeVoice, Field(alias="defaultV1")]
|
|
default_v2: Annotated[RealtimeVoice, Field(alias="defaultV2")]
|
|
v1: list[RealtimeVoice]
|
|
v2: list[RealtimeVoice]
|
|
|
|
|
|
class ReasoningEffort(Enum):
|
|
none = "none"
|
|
minimal = "minimal"
|
|
low = "low"
|
|
medium = "medium"
|
|
high = "high"
|
|
xhigh = "xhigh"
|
|
|
|
|
|
class ReasoningEffortOption(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
description: str
|
|
reasoning_effort: Annotated[ReasoningEffort, Field(alias="reasoningEffort")]
|
|
|
|
|
|
class ReasoningTextReasoningItemContent(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
text: str
|
|
type: Annotated[
|
|
Literal["reasoning_text"], Field(title="ReasoningTextReasoningItemContentType")
|
|
]
|
|
|
|
|
|
class TextReasoningItemContent(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
text: str
|
|
type: Annotated[Literal["text"], Field(title="TextReasoningItemContentType")]
|
|
|
|
|
|
class ReasoningItemContent(
|
|
RootModel[ReasoningTextReasoningItemContent | TextReasoningItemContent]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: ReasoningTextReasoningItemContent | TextReasoningItemContent
|
|
|
|
|
|
class SummaryTextReasoningItemReasoningSummary(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
text: str
|
|
type: Annotated[
|
|
Literal["summary_text"],
|
|
Field(title="SummaryTextReasoningItemReasoningSummaryType"),
|
|
]
|
|
|
|
|
|
class ReasoningItemReasoningSummary(
|
|
RootModel[SummaryTextReasoningItemReasoningSummary]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: SummaryTextReasoningItemReasoningSummary
|
|
|
|
|
|
class ReasoningSummaryValue(Enum):
|
|
auto = "auto"
|
|
concise = "concise"
|
|
detailed = "detailed"
|
|
|
|
|
|
class ReasoningSummary(RootModel[ReasoningSummaryValue | Literal["none"]]):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: Annotated[
|
|
ReasoningSummaryValue | Literal["none"],
|
|
Field(
|
|
description="A summary of the reasoning performed by the model. This can be useful for debugging and understanding the model's reasoning process. See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#reasoning-summaries"
|
|
),
|
|
]
|
|
|
|
|
|
class ReasoningSummaryPartAddedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
item_id: Annotated[str, Field(alias="itemId")]
|
|
summary_index: Annotated[int, Field(alias="summaryIndex")]
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class ReasoningSummaryTextDeltaNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
delta: str
|
|
item_id: Annotated[str, Field(alias="itemId")]
|
|
summary_index: Annotated[int, Field(alias="summaryIndex")]
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class ReasoningTextDeltaNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
content_index: Annotated[int, Field(alias="contentIndex")]
|
|
delta: str
|
|
item_id: Annotated[str, Field(alias="itemId")]
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class RemoteControlConnectionStatus(Enum):
|
|
disabled = "disabled"
|
|
connecting = "connecting"
|
|
connected = "connected"
|
|
errored = "errored"
|
|
|
|
|
|
class RemoteControlStatusChangedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
environment_id: Annotated[str | None, Field(alias="environmentId")] = None
|
|
installation_id: Annotated[str, Field(alias="installationId")]
|
|
status: RemoteControlConnectionStatus
|
|
|
|
|
|
class RequestId(RootModel[str | int]):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: str | int
|
|
|
|
|
|
class ResidencyRequirement(RootModel[Literal["us"]]):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: Literal["us"]
|
|
|
|
|
|
class Resource(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
field_meta: Annotated[Any | None, Field(alias="_meta")] = None
|
|
annotations: Any | None = None
|
|
description: str | None = None
|
|
icons: list | None = None
|
|
mime_type: Annotated[str | None, Field(alias="mimeType")] = None
|
|
name: str
|
|
size: int | None = None
|
|
title: str | None = None
|
|
uri: str
|
|
|
|
|
|
class ResourceContent1(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
field_meta: Annotated[Any | None, Field(alias="_meta")] = None
|
|
mime_type: Annotated[str | None, Field(alias="mimeType")] = None
|
|
text: str
|
|
uri: Annotated[str, Field(description="The URI of this resource.")]
|
|
|
|
|
|
class ResourceContent2(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
field_meta: Annotated[Any | None, Field(alias="_meta")] = None
|
|
blob: str
|
|
mime_type: Annotated[str | None, Field(alias="mimeType")] = None
|
|
uri: Annotated[str, Field(description="The URI of this resource.")]
|
|
|
|
|
|
class ResourceContent(RootModel[ResourceContent1 | ResourceContent2]):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: Annotated[
|
|
ResourceContent1 | ResourceContent2,
|
|
Field(
|
|
description="Contents returned when reading a resource from an MCP server."
|
|
),
|
|
]
|
|
|
|
|
|
class ResourceTemplate(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
annotations: Any | None = None
|
|
description: str | None = None
|
|
mime_type: Annotated[str | None, Field(alias="mimeType")] = None
|
|
name: str
|
|
title: str | None = None
|
|
uri_template: Annotated[str, Field(alias="uriTemplate")]
|
|
|
|
|
|
class ReasoningResponseItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
content: list[ReasoningItemContent] | None = None
|
|
encrypted_content: str | None = None
|
|
summary: list[ReasoningItemReasoningSummary]
|
|
type: Annotated[Literal["reasoning"], Field(title="ReasoningResponseItemType")]
|
|
|
|
|
|
class LocalShellCallResponseItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
action: LocalShellAction
|
|
call_id: Annotated[
|
|
str | None, Field(description="Set when using the Responses API.")
|
|
] = None
|
|
id: Annotated[
|
|
str | None,
|
|
Field(
|
|
description="Legacy id field retained for compatibility with older payloads."
|
|
),
|
|
] = None
|
|
status: LocalShellStatus
|
|
type: Annotated[
|
|
Literal["local_shell_call"], Field(title="LocalShellCallResponseItemType")
|
|
]
|
|
|
|
|
|
class FunctionCallResponseItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
arguments: str
|
|
call_id: str
|
|
id: str | None = None
|
|
name: str
|
|
namespace: str | None = None
|
|
type: Annotated[
|
|
Literal["function_call"], Field(title="FunctionCallResponseItemType")
|
|
]
|
|
|
|
|
|
class ToolSearchCallResponseItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
arguments: Any
|
|
call_id: str | None = None
|
|
execution: str
|
|
id: str | None = None
|
|
status: str | None = None
|
|
type: Annotated[
|
|
Literal["tool_search_call"], Field(title="ToolSearchCallResponseItemType")
|
|
]
|
|
|
|
|
|
class CustomToolCallResponseItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
call_id: str
|
|
id: str | None = None
|
|
input: str
|
|
name: str
|
|
status: str | None = None
|
|
type: Annotated[
|
|
Literal["custom_tool_call"], Field(title="CustomToolCallResponseItemType")
|
|
]
|
|
|
|
|
|
class ToolSearchOutputResponseItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
call_id: str | None = None
|
|
execution: str
|
|
status: str
|
|
tools: list
|
|
type: Annotated[
|
|
Literal["tool_search_output"], Field(title="ToolSearchOutputResponseItemType")
|
|
]
|
|
|
|
|
|
class ImageGenerationCallResponseItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: str
|
|
result: str
|
|
revised_prompt: str | None = None
|
|
status: str
|
|
type: Annotated[
|
|
Literal["image_generation_call"],
|
|
Field(title="ImageGenerationCallResponseItemType"),
|
|
]
|
|
|
|
|
|
class CompactionResponseItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
encrypted_content: str
|
|
type: Annotated[Literal["compaction"], Field(title="CompactionResponseItemType")]
|
|
|
|
|
|
class ContextCompactionResponseItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
encrypted_content: str | None = None
|
|
type: Annotated[
|
|
Literal["context_compaction"], Field(title="ContextCompactionResponseItemType")
|
|
]
|
|
|
|
|
|
class OtherResponseItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[Literal["other"], Field(title="OtherResponseItemType")]
|
|
|
|
|
|
class SearchResponsesApiWebSearchAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
queries: list[str] | None = None
|
|
query: str | None = None
|
|
type: Annotated[
|
|
Literal["search"], Field(title="SearchResponsesApiWebSearchActionType")
|
|
]
|
|
|
|
|
|
class OpenPageResponsesApiWebSearchAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[
|
|
Literal["open_page"], Field(title="OpenPageResponsesApiWebSearchActionType")
|
|
]
|
|
url: str | None = None
|
|
|
|
|
|
class FindInPageResponsesApiWebSearchAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
pattern: str | None = None
|
|
type: Annotated[
|
|
Literal["find_in_page"],
|
|
Field(title="FindInPageResponsesApiWebSearchActionType"),
|
|
]
|
|
url: str | None = None
|
|
|
|
|
|
class OtherResponsesApiWebSearchAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[
|
|
Literal["other"], Field(title="OtherResponsesApiWebSearchActionType")
|
|
]
|
|
|
|
|
|
class ResponsesApiWebSearchAction(
|
|
RootModel[
|
|
SearchResponsesApiWebSearchAction
|
|
| OpenPageResponsesApiWebSearchAction
|
|
| FindInPageResponsesApiWebSearchAction
|
|
| OtherResponsesApiWebSearchAction
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: (
|
|
SearchResponsesApiWebSearchAction
|
|
| OpenPageResponsesApiWebSearchAction
|
|
| FindInPageResponsesApiWebSearchAction
|
|
| OtherResponsesApiWebSearchAction
|
|
)
|
|
|
|
|
|
class ReviewDelivery(Enum):
|
|
inline = "inline"
|
|
detached = "detached"
|
|
|
|
|
|
class UncommittedChangesReviewTarget(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[
|
|
Literal["uncommittedChanges"], Field(title="UncommittedChangesReviewTargetType")
|
|
]
|
|
|
|
|
|
class BaseBranchReviewTarget(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
branch: str
|
|
type: Annotated[Literal["baseBranch"], Field(title="BaseBranchReviewTargetType")]
|
|
|
|
|
|
class CommitReviewTarget(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
sha: str
|
|
title: Annotated[
|
|
str | None,
|
|
Field(
|
|
description="Optional human-readable label (e.g., commit subject) for UIs."
|
|
),
|
|
] = None
|
|
type: Annotated[Literal["commit"], Field(title="CommitReviewTargetType")]
|
|
|
|
|
|
class CustomReviewTarget(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
instructions: str
|
|
type: Annotated[Literal["custom"], Field(title="CustomReviewTargetType")]
|
|
|
|
|
|
class ReviewTarget(
|
|
RootModel[
|
|
UncommittedChangesReviewTarget
|
|
| BaseBranchReviewTarget
|
|
| CommitReviewTarget
|
|
| CustomReviewTarget
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: (
|
|
UncommittedChangesReviewTarget
|
|
| BaseBranchReviewTarget
|
|
| CommitReviewTarget
|
|
| CustomReviewTarget
|
|
)
|
|
|
|
|
|
class SandboxMode(Enum):
|
|
read_only = "read-only"
|
|
workspace_write = "workspace-write"
|
|
danger_full_access = "danger-full-access"
|
|
|
|
|
|
class DangerFullAccessSandboxPolicy(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[
|
|
Literal["dangerFullAccess"], Field(title="DangerFullAccessSandboxPolicyType")
|
|
]
|
|
|
|
|
|
class ReadOnlySandboxPolicy(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
network_access: Annotated[bool | None, Field(alias="networkAccess")] = False
|
|
type: Annotated[Literal["readOnly"], Field(title="ReadOnlySandboxPolicyType")]
|
|
|
|
|
|
class ExternalSandboxSandboxPolicy(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
network_access: Annotated[NetworkAccess | None, Field(alias="networkAccess")] = (
|
|
"restricted"
|
|
)
|
|
type: Annotated[
|
|
Literal["externalSandbox"], Field(title="ExternalSandboxSandboxPolicyType")
|
|
]
|
|
|
|
|
|
class WorkspaceWriteSandboxPolicy(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
exclude_slash_tmp: Annotated[bool | None, Field(alias="excludeSlashTmp")] = False
|
|
exclude_tmpdir_env_var: Annotated[
|
|
bool | None, Field(alias="excludeTmpdirEnvVar")
|
|
] = False
|
|
network_access: Annotated[bool | None, Field(alias="networkAccess")] = False
|
|
type: Annotated[
|
|
Literal["workspaceWrite"], Field(title="WorkspaceWriteSandboxPolicyType")
|
|
]
|
|
writable_roots: Annotated[
|
|
list[AbsolutePathBuf] | None, Field(alias="writableRoots")
|
|
] = []
|
|
|
|
|
|
class SandboxPolicy(
|
|
RootModel[
|
|
DangerFullAccessSandboxPolicy
|
|
| ReadOnlySandboxPolicy
|
|
| ExternalSandboxSandboxPolicy
|
|
| WorkspaceWriteSandboxPolicy
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: (
|
|
DangerFullAccessSandboxPolicy
|
|
| ReadOnlySandboxPolicy
|
|
| ExternalSandboxSandboxPolicy
|
|
| WorkspaceWriteSandboxPolicy
|
|
)
|
|
|
|
|
|
class SandboxWorkspaceWrite(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
exclude_slash_tmp: bool | None = False
|
|
exclude_tmpdir_env_var: bool | None = False
|
|
network_access: bool | None = False
|
|
writable_roots: list[str] | None = []
|
|
|
|
|
|
class SendAddCreditsNudgeEmailParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
credit_type: Annotated[AddCreditsNudgeCreditType, Field(alias="creditType")]
|
|
|
|
|
|
class SendAddCreditsNudgeEmailResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
status: AddCreditsNudgeEmailStatus
|
|
|
|
|
|
class ItemAgentMessageDeltaServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["item/agentMessage/delta"],
|
|
Field(title="Item/agentMessage/deltaNotificationMethod"),
|
|
]
|
|
params: AgentMessageDeltaNotification
|
|
|
|
|
|
class ItemPlanDeltaServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["item/plan/delta"], Field(title="Item/plan/deltaNotificationMethod")
|
|
]
|
|
params: PlanDeltaNotification
|
|
|
|
|
|
class ProcessExitedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["process/exited"], Field(title="Process/exitedNotificationMethod")
|
|
]
|
|
params: ProcessExitedNotification
|
|
|
|
|
|
class ItemCommandExecutionOutputDeltaServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["item/commandExecution/outputDelta"],
|
|
Field(title="Item/commandExecution/outputDeltaNotificationMethod"),
|
|
]
|
|
params: CommandExecutionOutputDeltaNotification
|
|
|
|
|
|
class ItemFileChangeOutputDeltaServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["item/fileChange/outputDelta"],
|
|
Field(title="Item/fileChange/outputDeltaNotificationMethod"),
|
|
]
|
|
params: FileChangeOutputDeltaNotification
|
|
|
|
|
|
class ItemMcpToolCallProgressServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["item/mcpToolCall/progress"],
|
|
Field(title="Item/mcpToolCall/progressNotificationMethod"),
|
|
]
|
|
params: McpToolCallProgressNotification
|
|
|
|
|
|
class McpServerOauthLoginCompletedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["mcpServer/oauthLogin/completed"],
|
|
Field(title="McpServer/oauthLogin/completedNotificationMethod"),
|
|
]
|
|
params: McpServerOauthLoginCompletedNotification
|
|
|
|
|
|
class McpServerStartupStatusUpdatedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["mcpServer/startupStatus/updated"],
|
|
Field(title="McpServer/startupStatus/updatedNotificationMethod"),
|
|
]
|
|
params: McpServerStatusUpdatedNotification
|
|
|
|
|
|
class RemoteControlStatusChangedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["remoteControl/status/changed"],
|
|
Field(title="RemoteControl/status/changedNotificationMethod"),
|
|
]
|
|
params: RemoteControlStatusChangedNotification
|
|
|
|
|
|
class ExternalAgentConfigImportCompletedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["externalAgentConfig/import/completed"],
|
|
Field(title="ExternalAgentConfig/import/completedNotificationMethod"),
|
|
]
|
|
params: ExternalAgentConfigImportCompletedNotification
|
|
|
|
|
|
class FsChangedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["fs/changed"], Field(title="Fs/changedNotificationMethod")
|
|
]
|
|
params: FsChangedNotification
|
|
|
|
|
|
class ItemReasoningSummaryTextDeltaServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["item/reasoning/summaryTextDelta"],
|
|
Field(title="Item/reasoning/summaryTextDeltaNotificationMethod"),
|
|
]
|
|
params: ReasoningSummaryTextDeltaNotification
|
|
|
|
|
|
class ItemReasoningSummaryPartAddedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["item/reasoning/summaryPartAdded"],
|
|
Field(title="Item/reasoning/summaryPartAddedNotificationMethod"),
|
|
]
|
|
params: ReasoningSummaryPartAddedNotification
|
|
|
|
|
|
class ItemReasoningTextDeltaServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["item/reasoning/textDelta"],
|
|
Field(title="Item/reasoning/textDeltaNotificationMethod"),
|
|
]
|
|
params: ReasoningTextDeltaNotification
|
|
|
|
|
|
class ThreadCompactedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/compacted"], Field(title="Thread/compactedNotificationMethod")
|
|
]
|
|
params: ContextCompactedNotification
|
|
|
|
|
|
class ModelReroutedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["model/rerouted"], Field(title="Model/reroutedNotificationMethod")
|
|
]
|
|
params: ModelReroutedNotification
|
|
|
|
|
|
class ModelVerificationServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["model/verification"],
|
|
Field(title="Model/verificationNotificationMethod"),
|
|
]
|
|
params: ModelVerificationNotification
|
|
|
|
|
|
class GuardianWarningServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["guardianWarning"], Field(title="GuardianWarningNotificationMethod")
|
|
]
|
|
params: GuardianWarningNotification
|
|
|
|
|
|
class DeprecationNoticeServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["deprecationNotice"], Field(title="DeprecationNoticeNotificationMethod")
|
|
]
|
|
params: DeprecationNoticeNotification
|
|
|
|
|
|
class FuzzyFileSearchSessionUpdatedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["fuzzyFileSearch/sessionUpdated"],
|
|
Field(title="FuzzyFileSearch/sessionUpdatedNotificationMethod"),
|
|
]
|
|
params: FuzzyFileSearchSessionUpdatedNotification
|
|
|
|
|
|
class FuzzyFileSearchSessionCompletedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["fuzzyFileSearch/sessionCompleted"],
|
|
Field(title="FuzzyFileSearch/sessionCompletedNotificationMethod"),
|
|
]
|
|
params: FuzzyFileSearchSessionCompletedNotification
|
|
|
|
|
|
class AccountLoginCompletedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["account/login/completed"],
|
|
Field(title="Account/login/completedNotificationMethod"),
|
|
]
|
|
params: AccountLoginCompletedNotification
|
|
|
|
|
|
class ServerRequestResolvedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
request_id: Annotated[RequestId, Field(alias="requestId")]
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class SessionMigration(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cwd: str
|
|
path: str
|
|
title: str | None = None
|
|
|
|
|
|
class SessionSourceValue(Enum):
|
|
cli = "cli"
|
|
vscode = "vscode"
|
|
exec = "exec"
|
|
app_server = "appServer"
|
|
unknown = "unknown"
|
|
|
|
|
|
class CustomSessionSource(BaseModel):
|
|
model_config = ConfigDict(
|
|
extra="forbid",
|
|
populate_by_name=True,
|
|
)
|
|
custom: str
|
|
|
|
|
|
class Settings(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
developer_instructions: str | None = None
|
|
model: str
|
|
reasoning_effort: ReasoningEffort | None = None
|
|
|
|
|
|
class SkillErrorInfo(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
message: str
|
|
path: str
|
|
|
|
|
|
class SkillInterface(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
brand_color: Annotated[str | None, Field(alias="brandColor")] = None
|
|
default_prompt: Annotated[str | None, Field(alias="defaultPrompt")] = None
|
|
display_name: Annotated[str | None, Field(alias="displayName")] = None
|
|
icon_large: Annotated[AbsolutePathBuf | None, Field(alias="iconLarge")] = None
|
|
icon_small: Annotated[AbsolutePathBuf | None, Field(alias="iconSmall")] = None
|
|
short_description: Annotated[str | None, Field(alias="shortDescription")] = None
|
|
|
|
|
|
class SkillScope(Enum):
|
|
user = "user"
|
|
repo = "repo"
|
|
system = "system"
|
|
admin = "admin"
|
|
|
|
|
|
class SkillSummary(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
description: str
|
|
enabled: bool
|
|
interface: SkillInterface | None = None
|
|
name: str
|
|
path: AbsolutePathBuf | None = None
|
|
short_description: Annotated[str | None, Field(alias="shortDescription")] = None
|
|
|
|
|
|
class SkillToolDependency(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
command: str | None = None
|
|
description: str | None = None
|
|
transport: str | None = None
|
|
type: str
|
|
url: str | None = None
|
|
value: str
|
|
|
|
|
|
class SkillsChangedNotification(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class SkillsConfigWriteParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
enabled: bool
|
|
name: Annotated[str | None, Field(description="Name-based selector.")] = None
|
|
path: Annotated[
|
|
AbsolutePathBuf | None, Field(description="Path-based selector.")
|
|
] = None
|
|
|
|
|
|
class SkillsConfigWriteResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
effective_enabled: Annotated[bool, Field(alias="effectiveEnabled")]
|
|
|
|
|
|
class SkillsListParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cwds: Annotated[
|
|
list[str] | None,
|
|
Field(
|
|
description="When empty, defaults to the current session working directory."
|
|
),
|
|
] = None
|
|
force_reload: Annotated[
|
|
bool | None,
|
|
Field(
|
|
alias="forceReload",
|
|
description="When true, bypass the skills cache and re-scan skills from disk.",
|
|
),
|
|
] = None
|
|
|
|
|
|
class SortDirection(Enum):
|
|
asc = "asc"
|
|
desc = "desc"
|
|
|
|
|
|
class SubAgentSourceValue(Enum):
|
|
review = "review"
|
|
compact = "compact"
|
|
memory_consolidation = "memory_consolidation"
|
|
|
|
|
|
class OtherSubAgentSource(BaseModel):
|
|
model_config = ConfigDict(
|
|
extra="forbid",
|
|
populate_by_name=True,
|
|
)
|
|
other: str
|
|
|
|
|
|
class SubagentMigration(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
name: str
|
|
|
|
|
|
class TerminalInteractionNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
item_id: Annotated[str, Field(alias="itemId")]
|
|
process_id: Annotated[str, Field(alias="processId")]
|
|
stdin: str
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class TextElement(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
byte_range: Annotated[
|
|
ByteRange,
|
|
Field(
|
|
alias="byteRange",
|
|
description="Byte range in the parent `text` buffer that this element occupies.",
|
|
),
|
|
]
|
|
placeholder: Annotated[
|
|
str | None,
|
|
Field(
|
|
description="Optional human-readable placeholder for the element, displayed in the UI."
|
|
),
|
|
] = None
|
|
|
|
|
|
class TextPosition(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
column: Annotated[
|
|
int,
|
|
Field(description="1-based column number (in Unicode scalar values).", ge=0),
|
|
]
|
|
line: Annotated[int, Field(description="1-based line number.", ge=0)]
|
|
|
|
|
|
class TextRange(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
end: TextPosition
|
|
start: TextPosition
|
|
|
|
|
|
class ThreadActiveFlag(Enum):
|
|
waiting_on_approval = "waitingOnApproval"
|
|
waiting_on_user_input = "waitingOnUserInput"
|
|
|
|
|
|
class ThreadApproveGuardianDeniedActionParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
event: Annotated[
|
|
Any,
|
|
Field(
|
|
description="Serialized `codex_protocol::protocol::GuardianAssessmentEvent`."
|
|
),
|
|
]
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadApproveGuardianDeniedActionResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class ThreadArchiveParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadArchiveResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class ThreadArchivedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadClosedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadCompactStartParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadCompactStartResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class ThreadGoalClearedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadGoalStatus(Enum):
|
|
active = "active"
|
|
paused = "paused"
|
|
budget_limited = "budgetLimited"
|
|
complete = "complete"
|
|
|
|
|
|
class ThreadId(RootModel[str]):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: str
|
|
|
|
|
|
class ThreadInjectItemsParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
items: Annotated[
|
|
list,
|
|
Field(
|
|
description="Raw Responses API items to append to the thread's model-visible history."
|
|
),
|
|
]
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadInjectItemsResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class HookPromptThreadItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
fragments: list[HookPromptFragment]
|
|
id: str
|
|
type: Annotated[Literal["hookPrompt"], Field(title="HookPromptThreadItemType")]
|
|
|
|
|
|
class PlanThreadItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: str
|
|
text: str
|
|
type: Annotated[Literal["plan"], Field(title="PlanThreadItemType")]
|
|
|
|
|
|
class ReasoningThreadItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
content: list[str] | None = []
|
|
id: str
|
|
summary: list[str] | None = []
|
|
type: Annotated[Literal["reasoning"], Field(title="ReasoningThreadItemType")]
|
|
|
|
|
|
class CommandExecutionThreadItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
aggregated_output: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="aggregatedOutput",
|
|
description="The command's output, aggregated from stdout and stderr.",
|
|
),
|
|
] = None
|
|
command: Annotated[str, Field(description="The command to be executed.")]
|
|
command_actions: Annotated[
|
|
list[CommandAction],
|
|
Field(
|
|
alias="commandActions",
|
|
description="A best-effort parsing of the command to understand the action(s) it will perform. This returns a list of CommandAction objects because a single shell command may be composed of many commands piped together.",
|
|
),
|
|
]
|
|
cwd: Annotated[
|
|
AbsolutePathBuf, Field(description="The command's working directory.")
|
|
]
|
|
duration_ms: Annotated[
|
|
int | None,
|
|
Field(
|
|
alias="durationMs",
|
|
description="The duration of the command execution in milliseconds.",
|
|
),
|
|
] = None
|
|
exit_code: Annotated[
|
|
int | None, Field(alias="exitCode", description="The command's exit code.")
|
|
] = None
|
|
id: str
|
|
process_id: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="processId",
|
|
description="Identifier for the underlying PTY process (when available).",
|
|
),
|
|
] = None
|
|
source: CommandExecutionSource | None = "agent"
|
|
status: CommandExecutionStatus
|
|
type: Annotated[
|
|
Literal["commandExecution"], Field(title="CommandExecutionThreadItemType")
|
|
]
|
|
|
|
|
|
class McpToolCallThreadItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
arguments: Any
|
|
duration_ms: Annotated[
|
|
int | None,
|
|
Field(
|
|
alias="durationMs",
|
|
description="The duration of the MCP tool call in milliseconds.",
|
|
),
|
|
] = None
|
|
error: McpToolCallError | None = None
|
|
id: str
|
|
mcp_app_resource_uri: Annotated[str | None, Field(alias="mcpAppResourceUri")] = None
|
|
result: McpToolCallResult | None = None
|
|
server: str
|
|
status: McpToolCallStatus
|
|
tool: str
|
|
type: Annotated[Literal["mcpToolCall"], Field(title="McpToolCallThreadItemType")]
|
|
|
|
|
|
class DynamicToolCallThreadItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
arguments: Any
|
|
content_items: Annotated[
|
|
list[DynamicToolCallOutputContentItem] | None, Field(alias="contentItems")
|
|
] = None
|
|
duration_ms: Annotated[
|
|
int | None,
|
|
Field(
|
|
alias="durationMs",
|
|
description="The duration of the dynamic tool call in milliseconds.",
|
|
),
|
|
] = None
|
|
id: str
|
|
namespace: str | None = None
|
|
status: DynamicToolCallStatus
|
|
success: bool | None = None
|
|
tool: str
|
|
type: Annotated[
|
|
Literal["dynamicToolCall"], Field(title="DynamicToolCallThreadItemType")
|
|
]
|
|
|
|
|
|
class ImageViewThreadItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: str
|
|
path: AbsolutePathBuf
|
|
type: Annotated[Literal["imageView"], Field(title="ImageViewThreadItemType")]
|
|
|
|
|
|
class ImageGenerationThreadItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: str
|
|
result: str
|
|
revised_prompt: Annotated[str | None, Field(alias="revisedPrompt")] = None
|
|
saved_path: Annotated[AbsolutePathBuf | None, Field(alias="savedPath")] = None
|
|
status: str
|
|
type: Annotated[
|
|
Literal["imageGeneration"], Field(title="ImageGenerationThreadItemType")
|
|
]
|
|
|
|
|
|
class EnteredReviewModeThreadItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: str
|
|
review: str
|
|
type: Annotated[
|
|
Literal["enteredReviewMode"], Field(title="EnteredReviewModeThreadItemType")
|
|
]
|
|
|
|
|
|
class ExitedReviewModeThreadItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: str
|
|
review: str
|
|
type: Annotated[
|
|
Literal["exitedReviewMode"], Field(title="ExitedReviewModeThreadItemType")
|
|
]
|
|
|
|
|
|
class ContextCompactionThreadItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: str
|
|
type: Annotated[
|
|
Literal["contextCompaction"], Field(title="ContextCompactionThreadItemType")
|
|
]
|
|
|
|
|
|
class ThreadListCwdFilter(RootModel[str | list[str]]):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: str | list[str]
|
|
|
|
|
|
class ThreadLoadedListParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cursor: Annotated[
|
|
str | None,
|
|
Field(description="Opaque pagination cursor returned by a previous call."),
|
|
] = None
|
|
limit: Annotated[
|
|
int | None, Field(description="Optional page size; defaults to no limit.", ge=0)
|
|
] = None
|
|
|
|
|
|
class ThreadLoadedListResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
data: Annotated[
|
|
list[str],
|
|
Field(description="Thread ids for sessions currently loaded in memory."),
|
|
]
|
|
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 ThreadMemoryMode(Enum):
|
|
enabled = "enabled"
|
|
disabled = "disabled"
|
|
|
|
|
|
class ThreadMetadataGitInfoUpdateParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
branch: Annotated[
|
|
str | None,
|
|
Field(
|
|
description="Omit to leave the stored branch unchanged, set to `null` to clear it, or provide a non-empty string to replace it."
|
|
),
|
|
] = None
|
|
origin_url: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="originUrl",
|
|
description="Omit to leave the stored origin URL unchanged, set to `null` to clear it, or provide a non-empty string to replace it.",
|
|
),
|
|
] = None
|
|
sha: Annotated[
|
|
str | None,
|
|
Field(
|
|
description="Omit to leave the stored commit unchanged, set to `null` to clear it, or provide a non-empty string to replace it."
|
|
),
|
|
] = None
|
|
|
|
|
|
class ThreadMetadataUpdateParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
git_info: Annotated[
|
|
ThreadMetadataGitInfoUpdateParams | None,
|
|
Field(
|
|
alias="gitInfo",
|
|
description="Patch the stored Git metadata for this thread. Omit a field to leave it unchanged, set it to `null` to clear it, or provide a string to replace the stored value.",
|
|
),
|
|
] = None
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadNameUpdatedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
thread_name: Annotated[str | None, Field(alias="threadName")] = None
|
|
|
|
|
|
class ThreadReadParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
include_turns: Annotated[
|
|
bool | None,
|
|
Field(
|
|
alias="includeTurns",
|
|
description="When true, include turns and their items from rollout history.",
|
|
),
|
|
] = False
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadRealtimeAudioChunk(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
data: str
|
|
item_id: Annotated[str | None, Field(alias="itemId")] = None
|
|
num_channels: Annotated[int, Field(alias="numChannels", ge=0)]
|
|
sample_rate: Annotated[int, Field(alias="sampleRate", ge=0)]
|
|
samples_per_channel: Annotated[
|
|
int | None, Field(alias="samplesPerChannel", ge=0)
|
|
] = None
|
|
|
|
|
|
class ThreadRealtimeClosedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
reason: str | None = None
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadRealtimeErrorNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
message: str
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadRealtimeItemAddedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
item: Any
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadRealtimeOutputAudioDeltaNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
audio: ThreadRealtimeAudioChunk
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadRealtimeSdpNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
sdp: str
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class WebsocketThreadRealtimeStartTransport(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[
|
|
Literal["websocket"], Field(title="WebsocketThreadRealtimeStartTransportType")
|
|
]
|
|
|
|
|
|
class WebrtcThreadRealtimeStartTransport(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
sdp: Annotated[
|
|
str,
|
|
Field(
|
|
description="SDP offer generated by a WebRTC RTCPeerConnection after configuring audio and the realtime events data channel."
|
|
),
|
|
]
|
|
type: Annotated[
|
|
Literal["webrtc"], Field(title="WebrtcThreadRealtimeStartTransportType")
|
|
]
|
|
|
|
|
|
class ThreadRealtimeStartTransport(
|
|
RootModel[
|
|
WebsocketThreadRealtimeStartTransport | WebrtcThreadRealtimeStartTransport
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: Annotated[
|
|
WebsocketThreadRealtimeStartTransport | WebrtcThreadRealtimeStartTransport,
|
|
Field(description="EXPERIMENTAL - transport used by thread realtime."),
|
|
]
|
|
|
|
|
|
class ThreadRealtimeStartedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
realtime_session_id: Annotated[str | None, Field(alias="realtimeSessionId")] = None
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
version: RealtimeConversationVersion
|
|
|
|
|
|
class ThreadRealtimeTranscriptDeltaNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
delta: Annotated[
|
|
str, Field(description="Live transcript delta from the realtime event.")
|
|
]
|
|
role: str
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadRealtimeTranscriptDoneNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
role: str
|
|
text: Annotated[
|
|
str, Field(description="Final complete text for the transcript part.")
|
|
]
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadResumeParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
approval_policy: Annotated[AskForApproval | None, Field(alias="approvalPolicy")] = (
|
|
None
|
|
)
|
|
approvals_reviewer: Annotated[
|
|
ApprovalsReviewer | None,
|
|
Field(
|
|
alias="approvalsReviewer",
|
|
description="Override where approval requests are routed for review on this thread and subsequent turns.",
|
|
),
|
|
] = None
|
|
base_instructions: Annotated[str | None, Field(alias="baseInstructions")] = None
|
|
config: dict[str, Any] | None = None
|
|
cwd: str | None = None
|
|
developer_instructions: Annotated[
|
|
str | None, Field(alias="developerInstructions")
|
|
] = None
|
|
model: Annotated[
|
|
str | None,
|
|
Field(description="Configuration overrides for the resumed thread, if any."),
|
|
] = None
|
|
model_provider: Annotated[str | None, Field(alias="modelProvider")] = None
|
|
personality: Personality | None = None
|
|
sandbox: SandboxMode | None = None
|
|
service_tier: Annotated[str | None, Field(alias="serviceTier")] = None
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadRollbackParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
num_turns: Annotated[
|
|
int,
|
|
Field(
|
|
alias="numTurns",
|
|
description="The number of turns to drop from the end of the thread. Must be >= 1.\n\nThis only modifies the thread's history and does not revert local file changes that have been made by the agent. Clients are responsible for reverting these changes.",
|
|
ge=0,
|
|
),
|
|
]
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadSetNameParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
name: str
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadSetNameResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class ThreadShellCommandParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
command: Annotated[
|
|
str,
|
|
Field(
|
|
description="Shell command string evaluated by the thread's configured shell. Unlike `command/exec`, this intentionally preserves shell syntax such as pipes, redirects, and quoting. This runs unsandboxed with full access rather than inheriting the thread sandbox policy."
|
|
),
|
|
]
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadShellCommandResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class ThreadSortKey(Enum):
|
|
created_at = "created_at"
|
|
updated_at = "updated_at"
|
|
|
|
|
|
class ThreadSource(Enum):
|
|
user = "user"
|
|
subagent = "subagent"
|
|
memory_consolidation = "memory_consolidation"
|
|
|
|
|
|
class ThreadSourceKind(Enum):
|
|
cli = "cli"
|
|
vscode = "vscode"
|
|
exec = "exec"
|
|
app_server = "appServer"
|
|
sub_agent = "subAgent"
|
|
sub_agent_review = "subAgentReview"
|
|
sub_agent_compact = "subAgentCompact"
|
|
sub_agent_thread_spawn = "subAgentThreadSpawn"
|
|
sub_agent_other = "subAgentOther"
|
|
unknown = "unknown"
|
|
|
|
|
|
class ThreadStartSource(Enum):
|
|
startup = "startup"
|
|
clear = "clear"
|
|
|
|
|
|
class NotLoadedThreadStatus(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[Literal["notLoaded"], Field(title="NotLoadedThreadStatusType")]
|
|
|
|
|
|
class IdleThreadStatus(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[Literal["idle"], Field(title="IdleThreadStatusType")]
|
|
|
|
|
|
class SystemErrorThreadStatus(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[Literal["systemError"], Field(title="SystemErrorThreadStatusType")]
|
|
|
|
|
|
class ActiveThreadStatus(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
active_flags: Annotated[list[ThreadActiveFlag], Field(alias="activeFlags")]
|
|
type: Annotated[Literal["active"], Field(title="ActiveThreadStatusType")]
|
|
|
|
|
|
class ThreadStatus(
|
|
RootModel[
|
|
NotLoadedThreadStatus
|
|
| IdleThreadStatus
|
|
| SystemErrorThreadStatus
|
|
| ActiveThreadStatus
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: (
|
|
NotLoadedThreadStatus
|
|
| IdleThreadStatus
|
|
| SystemErrorThreadStatus
|
|
| ActiveThreadStatus
|
|
)
|
|
|
|
|
|
class ThreadStatusChangedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
status: ThreadStatus
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadUnarchiveParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadUnarchivedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadUnsubscribeParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadUnsubscribeStatus(Enum):
|
|
not_loaded = "notLoaded"
|
|
not_subscribed = "notSubscribed"
|
|
unsubscribed = "unsubscribed"
|
|
|
|
|
|
class TokenUsageBreakdown(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cached_input_tokens: Annotated[int, Field(alias="cachedInputTokens")]
|
|
input_tokens: Annotated[int, Field(alias="inputTokens")]
|
|
output_tokens: Annotated[int, Field(alias="outputTokens")]
|
|
reasoning_output_tokens: Annotated[int, Field(alias="reasoningOutputTokens")]
|
|
total_tokens: Annotated[int, Field(alias="totalTokens")]
|
|
|
|
|
|
class Tool(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
field_meta: Annotated[Any | None, Field(alias="_meta")] = None
|
|
annotations: Any | None = None
|
|
description: str | None = None
|
|
icons: list | None = None
|
|
input_schema: Annotated[Any, Field(alias="inputSchema")]
|
|
name: str
|
|
output_schema: Annotated[Any | None, Field(alias="outputSchema")] = None
|
|
title: str | None = None
|
|
|
|
|
|
class TurnDiffUpdatedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
diff: str
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class TurnEnvironmentParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cwd: AbsolutePathBuf
|
|
environment_id: Annotated[str, Field(alias="environmentId")]
|
|
|
|
|
|
class TurnInterruptParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class TurnInterruptResponse(BaseModel):
|
|
pass
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
class TurnItemsView(Enum):
|
|
not_loaded = "notLoaded"
|
|
summary = "summary"
|
|
full = "full"
|
|
|
|
|
|
class TurnPlanStepStatus(Enum):
|
|
pending = "pending"
|
|
in_progress = "inProgress"
|
|
completed = "completed"
|
|
|
|
|
|
class TurnStatus(Enum):
|
|
completed = "completed"
|
|
interrupted = "interrupted"
|
|
failed = "failed"
|
|
in_progress = "inProgress"
|
|
|
|
|
|
class TurnSteerResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class TextUserInput(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
text: str
|
|
text_elements: Annotated[
|
|
list[TextElement] | None,
|
|
Field(
|
|
description="UI-defined spans within `text` used to render or persist special elements."
|
|
),
|
|
] = []
|
|
type: Annotated[Literal["text"], Field(title="TextUserInputType")]
|
|
|
|
|
|
class ImageUserInput(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[Literal["image"], Field(title="ImageUserInputType")]
|
|
url: str
|
|
|
|
|
|
class LocalImageUserInput(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
path: str
|
|
type: Annotated[Literal["localImage"], Field(title="LocalImageUserInputType")]
|
|
|
|
|
|
class SkillUserInput(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
name: str
|
|
path: str
|
|
type: Annotated[Literal["skill"], Field(title="SkillUserInputType")]
|
|
|
|
|
|
class MentionUserInput(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
name: str
|
|
path: str
|
|
type: Annotated[Literal["mention"], Field(title="MentionUserInputType")]
|
|
|
|
|
|
class UserInput(
|
|
RootModel[
|
|
TextUserInput
|
|
| ImageUserInput
|
|
| LocalImageUserInput
|
|
| SkillUserInput
|
|
| MentionUserInput
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: (
|
|
TextUserInput
|
|
| ImageUserInput
|
|
| LocalImageUserInput
|
|
| SkillUserInput
|
|
| MentionUserInput
|
|
)
|
|
|
|
|
|
class Verbosity(Enum):
|
|
low = "low"
|
|
medium = "medium"
|
|
high = "high"
|
|
|
|
|
|
class WarningNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
message: Annotated[str, Field(description="Concise warning message for the user.")]
|
|
thread_id: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="threadId",
|
|
description="Optional thread target when the warning applies to a specific thread.",
|
|
),
|
|
] = None
|
|
|
|
|
|
class SearchWebSearchAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
queries: list[str] | None = None
|
|
query: str | None = None
|
|
type: Annotated[Literal["search"], Field(title="SearchWebSearchActionType")]
|
|
|
|
|
|
class OpenPageWebSearchAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[Literal["openPage"], Field(title="OpenPageWebSearchActionType")]
|
|
url: str | None = None
|
|
|
|
|
|
class FindInPageWebSearchAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
pattern: str | None = None
|
|
type: Annotated[Literal["findInPage"], Field(title="FindInPageWebSearchActionType")]
|
|
url: str | None = None
|
|
|
|
|
|
class OtherWebSearchAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[Literal["other"], Field(title="OtherWebSearchActionType")]
|
|
|
|
|
|
class WebSearchAction(
|
|
RootModel[
|
|
SearchWebSearchAction
|
|
| OpenPageWebSearchAction
|
|
| FindInPageWebSearchAction
|
|
| OtherWebSearchAction
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: (
|
|
SearchWebSearchAction
|
|
| OpenPageWebSearchAction
|
|
| FindInPageWebSearchAction
|
|
| OtherWebSearchAction
|
|
)
|
|
|
|
|
|
class WebSearchContextSize(Enum):
|
|
low = "low"
|
|
medium = "medium"
|
|
high = "high"
|
|
|
|
|
|
class WebSearchLocation(BaseModel):
|
|
model_config = ConfigDict(
|
|
extra="forbid",
|
|
populate_by_name=True,
|
|
)
|
|
city: str | None = None
|
|
country: str | None = None
|
|
region: str | None = None
|
|
timezone: str | None = None
|
|
|
|
|
|
class WebSearchMode(Enum):
|
|
disabled = "disabled"
|
|
cached = "cached"
|
|
live = "live"
|
|
|
|
|
|
class WebSearchToolConfig(BaseModel):
|
|
model_config = ConfigDict(
|
|
extra="forbid",
|
|
populate_by_name=True,
|
|
)
|
|
allowed_domains: list[str] | None = None
|
|
context_size: WebSearchContextSize | None = None
|
|
location: WebSearchLocation | None = None
|
|
|
|
|
|
class WindowsSandboxReadiness(Enum):
|
|
ready = "ready"
|
|
not_configured = "notConfigured"
|
|
update_required = "updateRequired"
|
|
|
|
|
|
class WindowsSandboxReadinessResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
status: WindowsSandboxReadiness
|
|
|
|
|
|
class WindowsSandboxSetupMode(Enum):
|
|
elevated = "elevated"
|
|
unelevated = "unelevated"
|
|
|
|
|
|
class WindowsSandboxSetupStartParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cwd: AbsolutePathBuf | None = None
|
|
mode: WindowsSandboxSetupMode
|
|
|
|
|
|
class WindowsSandboxSetupStartResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
started: bool
|
|
|
|
|
|
class WindowsWorldWritableWarningNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
extra_count: Annotated[int, Field(alias="extraCount", ge=0)]
|
|
failed_scan: Annotated[bool, Field(alias="failedScan")]
|
|
sample_paths: Annotated[list[str], Field(alias="samplePaths")]
|
|
|
|
|
|
class WriteStatus(Enum):
|
|
ok = "ok"
|
|
ok_overridden = "okOverridden"
|
|
|
|
|
|
class ChatgptAccount(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
email: str
|
|
plan_type: Annotated[PlanType, Field(alias="planType")]
|
|
type: Annotated[Literal["chatgpt"], Field(title="ChatgptAccountType")]
|
|
|
|
|
|
class Account(RootModel[ApiKeyAccount | ChatgptAccount | AmazonBedrockAccount]):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: ApiKeyAccount | ChatgptAccount | AmazonBedrockAccount
|
|
|
|
|
|
class AccountUpdatedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
auth_mode: Annotated[AuthMode | None, Field(alias="authMode")] = None
|
|
plan_type: Annotated[PlanType | None, Field(alias="planType")] = None
|
|
|
|
|
|
class ActivePermissionProfile(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
extends: Annotated[
|
|
str | None,
|
|
Field(
|
|
description="Parent profile identifier once permissions profiles support inheritance. This is currently always `null`."
|
|
),
|
|
] = None
|
|
id: Annotated[
|
|
str,
|
|
Field(
|
|
description="Identifier from `default_permissions` or the implicit built-in default, such as `:workspace` or a user-defined `[permissions.<id>]` profile."
|
|
),
|
|
]
|
|
modifications: Annotated[
|
|
list[ActivePermissionProfileModification] | None,
|
|
Field(
|
|
description="Bounded user-requested modifications applied on top of the named profile, if any."
|
|
),
|
|
] = []
|
|
|
|
|
|
class AppConfig(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
default_tools_approval_mode: AppToolApproval | None = None
|
|
default_tools_enabled: bool | None = None
|
|
destructive_enabled: bool | None = None
|
|
enabled: bool | None = True
|
|
open_world_enabled: bool | None = None
|
|
tools: AppToolsConfig | None = None
|
|
|
|
|
|
class AppMetadata(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
categories: list[str] | None = None
|
|
developer: str | None = None
|
|
first_party_requires_install: Annotated[
|
|
bool | None, Field(alias="firstPartyRequiresInstall")
|
|
] = None
|
|
first_party_type: Annotated[str | None, Field(alias="firstPartyType")] = None
|
|
review: AppReview | None = None
|
|
screenshots: list[AppScreenshot] | None = None
|
|
seo_description: Annotated[str | None, Field(alias="seoDescription")] = None
|
|
show_in_composer_when_unlinked: Annotated[
|
|
bool | None, Field(alias="showInComposerWhenUnlinked")
|
|
] = None
|
|
sub_categories: Annotated[list[str] | None, Field(alias="subCategories")] = None
|
|
version: str | None = None
|
|
version_id: Annotated[str | None, Field(alias="versionId")] = None
|
|
version_notes: Annotated[str | None, Field(alias="versionNotes")] = None
|
|
|
|
|
|
class AppsConfig(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
field_default: Annotated[AppsDefaultConfig | None, Field(alias="_default")] = None
|
|
|
|
|
|
class CancelLoginAccountResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
status: CancelLoginAccountStatus
|
|
|
|
|
|
class InitializeRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["initialize"], Field(title="InitializeRequestMethod")]
|
|
params: InitializeParams
|
|
|
|
|
|
class ThreadResumeRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["thread/resume"], Field(title="Thread/resumeRequestMethod")
|
|
]
|
|
params: ThreadResumeParams
|
|
|
|
|
|
class ThreadArchiveRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["thread/archive"], Field(title="Thread/archiveRequestMethod")
|
|
]
|
|
params: ThreadArchiveParams
|
|
|
|
|
|
class ThreadUnsubscribeRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["thread/unsubscribe"], Field(title="Thread/unsubscribeRequestMethod")
|
|
]
|
|
params: ThreadUnsubscribeParams
|
|
|
|
|
|
class ThreadNameSetRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["thread/name/set"], Field(title="Thread/name/setRequestMethod")
|
|
]
|
|
params: ThreadSetNameParams
|
|
|
|
|
|
class ThreadMetadataUpdateRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["thread/metadata/update"],
|
|
Field(title="Thread/metadata/updateRequestMethod"),
|
|
]
|
|
params: ThreadMetadataUpdateParams
|
|
|
|
|
|
class ThreadUnarchiveRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["thread/unarchive"], Field(title="Thread/unarchiveRequestMethod")
|
|
]
|
|
params: ThreadUnarchiveParams
|
|
|
|
|
|
class ThreadCompactStartRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["thread/compact/start"],
|
|
Field(title="Thread/compact/startRequestMethod"),
|
|
]
|
|
params: ThreadCompactStartParams
|
|
|
|
|
|
class ThreadShellCommandRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["thread/shellCommand"], Field(title="Thread/shellCommandRequestMethod")
|
|
]
|
|
params: ThreadShellCommandParams
|
|
|
|
|
|
class ThreadApproveGuardianDeniedActionRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["thread/approveGuardianDeniedAction"],
|
|
Field(title="Thread/approveGuardianDeniedActionRequestMethod"),
|
|
]
|
|
params: ThreadApproveGuardianDeniedActionParams
|
|
|
|
|
|
class ThreadRollbackRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["thread/rollback"], Field(title="Thread/rollbackRequestMethod")
|
|
]
|
|
params: ThreadRollbackParams
|
|
|
|
|
|
class ThreadLoadedListRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["thread/loaded/list"], Field(title="Thread/loaded/listRequestMethod")
|
|
]
|
|
params: ThreadLoadedListParams
|
|
|
|
|
|
class ThreadReadRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["thread/read"], Field(title="Thread/readRequestMethod")]
|
|
params: ThreadReadParams
|
|
|
|
|
|
class ThreadInjectItemsRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["thread/inject_items"], Field(title="Thread/injectItemsRequestMethod")
|
|
]
|
|
params: ThreadInjectItemsParams
|
|
|
|
|
|
class SkillsListRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["skills/list"], Field(title="Skills/listRequestMethod")]
|
|
params: SkillsListParams
|
|
|
|
|
|
class HooksListRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["hooks/list"], Field(title="Hooks/listRequestMethod")]
|
|
params: HooksListParams
|
|
|
|
|
|
class MarketplaceAddRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["marketplace/add"], Field(title="Marketplace/addRequestMethod")
|
|
]
|
|
params: MarketplaceAddParams
|
|
|
|
|
|
class MarketplaceRemoveRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["marketplace/remove"], Field(title="Marketplace/removeRequestMethod")
|
|
]
|
|
params: MarketplaceRemoveParams
|
|
|
|
|
|
class MarketplaceUpgradeRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["marketplace/upgrade"], Field(title="Marketplace/upgradeRequestMethod")
|
|
]
|
|
params: MarketplaceUpgradeParams
|
|
|
|
|
|
class PluginListRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["plugin/list"], Field(title="Plugin/listRequestMethod")]
|
|
params: PluginListParams
|
|
|
|
|
|
class PluginReadRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["plugin/read"], Field(title="Plugin/readRequestMethod")]
|
|
params: PluginReadParams
|
|
|
|
|
|
class PluginSkillReadRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["plugin/skill/read"], Field(title="Plugin/skill/readRequestMethod")
|
|
]
|
|
params: PluginSkillReadParams
|
|
|
|
|
|
class PluginShareListRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["plugin/share/list"], Field(title="Plugin/share/listRequestMethod")
|
|
]
|
|
params: PluginShareListParams
|
|
|
|
|
|
class PluginShareDeleteRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["plugin/share/delete"], Field(title="Plugin/share/deleteRequestMethod")
|
|
]
|
|
params: PluginShareDeleteParams
|
|
|
|
|
|
class AppListRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["app/list"], Field(title="App/listRequestMethod")]
|
|
params: AppsListParams
|
|
|
|
|
|
class FsReadFileRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["fs/readFile"], Field(title="Fs/readFileRequestMethod")]
|
|
params: FsReadFileParams
|
|
|
|
|
|
class FsWriteFileRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["fs/writeFile"], Field(title="Fs/writeFileRequestMethod")]
|
|
params: FsWriteFileParams
|
|
|
|
|
|
class FsCreateDirectoryRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["fs/createDirectory"], Field(title="Fs/createDirectoryRequestMethod")
|
|
]
|
|
params: FsCreateDirectoryParams
|
|
|
|
|
|
class FsGetMetadataRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["fs/getMetadata"], Field(title="Fs/getMetadataRequestMethod")
|
|
]
|
|
params: FsGetMetadataParams
|
|
|
|
|
|
class FsReadDirectoryRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["fs/readDirectory"], Field(title="Fs/readDirectoryRequestMethod")
|
|
]
|
|
params: FsReadDirectoryParams
|
|
|
|
|
|
class FsRemoveRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["fs/remove"], Field(title="Fs/removeRequestMethod")]
|
|
params: FsRemoveParams
|
|
|
|
|
|
class FsCopyRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["fs/copy"], Field(title="Fs/copyRequestMethod")]
|
|
params: FsCopyParams
|
|
|
|
|
|
class FsWatchRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["fs/watch"], Field(title="Fs/watchRequestMethod")]
|
|
params: FsWatchParams
|
|
|
|
|
|
class FsUnwatchRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["fs/unwatch"], Field(title="Fs/unwatchRequestMethod")]
|
|
params: FsUnwatchParams
|
|
|
|
|
|
class SkillsConfigWriteRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["skills/config/write"], Field(title="Skills/config/writeRequestMethod")
|
|
]
|
|
params: SkillsConfigWriteParams
|
|
|
|
|
|
class PluginInstallRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["plugin/install"], Field(title="Plugin/installRequestMethod")
|
|
]
|
|
params: PluginInstallParams
|
|
|
|
|
|
class PluginUninstallRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["plugin/uninstall"], Field(title="Plugin/uninstallRequestMethod")
|
|
]
|
|
params: PluginUninstallParams
|
|
|
|
|
|
class TurnInterruptRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["turn/interrupt"], Field(title="Turn/interruptRequestMethod")
|
|
]
|
|
params: TurnInterruptParams
|
|
|
|
|
|
class ModelListRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["model/list"], Field(title="Model/listRequestMethod")]
|
|
params: ModelListParams
|
|
|
|
|
|
class ModelProviderCapabilitiesReadRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["modelProvider/capabilities/read"],
|
|
Field(title="ModelProvider/capabilities/readRequestMethod"),
|
|
]
|
|
params: ModelProviderCapabilitiesReadParams
|
|
|
|
|
|
class ExperimentalFeatureListRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["experimentalFeature/list"],
|
|
Field(title="ExperimentalFeature/listRequestMethod"),
|
|
]
|
|
params: ExperimentalFeatureListParams
|
|
|
|
|
|
class ExperimentalFeatureEnablementSetRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["experimentalFeature/enablement/set"],
|
|
Field(title="ExperimentalFeature/enablement/setRequestMethod"),
|
|
]
|
|
params: ExperimentalFeatureEnablementSetParams
|
|
|
|
|
|
class McpServerOauthLoginRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["mcpServer/oauth/login"],
|
|
Field(title="McpServer/oauth/loginRequestMethod"),
|
|
]
|
|
params: McpServerOauthLoginParams
|
|
|
|
|
|
class ConfigMcpServerReloadRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["config/mcpServer/reload"],
|
|
Field(title="Config/mcpServer/reloadRequestMethod"),
|
|
]
|
|
params: None = None
|
|
|
|
|
|
class McpServerResourceReadRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["mcpServer/resource/read"],
|
|
Field(title="McpServer/resource/readRequestMethod"),
|
|
]
|
|
params: McpResourceReadParams
|
|
|
|
|
|
class McpServerToolCallRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["mcpServer/tool/call"], Field(title="McpServer/tool/callRequestMethod")
|
|
]
|
|
params: McpServerToolCallParams
|
|
|
|
|
|
class WindowsSandboxSetupStartRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["windowsSandbox/setupStart"],
|
|
Field(title="WindowsSandbox/setupStartRequestMethod"),
|
|
]
|
|
params: WindowsSandboxSetupStartParams
|
|
|
|
|
|
class WindowsSandboxReadinessRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["windowsSandbox/readiness"],
|
|
Field(title="WindowsSandbox/readinessRequestMethod"),
|
|
]
|
|
params: None = None
|
|
|
|
|
|
class AccountLoginStartRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["account/login/start"], Field(title="Account/login/startRequestMethod")
|
|
]
|
|
params: LoginAccountParams
|
|
|
|
|
|
class AccountLoginCancelRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["account/login/cancel"],
|
|
Field(title="Account/login/cancelRequestMethod"),
|
|
]
|
|
params: CancelLoginAccountParams
|
|
|
|
|
|
class AccountLogoutRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["account/logout"], Field(title="Account/logoutRequestMethod")
|
|
]
|
|
params: None = None
|
|
|
|
|
|
class AccountRateLimitsReadRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["account/rateLimits/read"],
|
|
Field(title="Account/rateLimits/readRequestMethod"),
|
|
]
|
|
params: None = None
|
|
|
|
|
|
class AccountSendAddCreditsNudgeEmailRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["account/sendAddCreditsNudgeEmail"],
|
|
Field(title="Account/sendAddCreditsNudgeEmailRequestMethod"),
|
|
]
|
|
params: SendAddCreditsNudgeEmailParams
|
|
|
|
|
|
class FeedbackUploadRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["feedback/upload"], Field(title="Feedback/uploadRequestMethod")
|
|
]
|
|
params: FeedbackUploadParams
|
|
|
|
|
|
class CommandExecWriteRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["command/exec/write"], Field(title="Command/exec/writeRequestMethod")
|
|
]
|
|
params: CommandExecWriteParams
|
|
|
|
|
|
class CommandExecTerminateRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["command/exec/terminate"],
|
|
Field(title="Command/exec/terminateRequestMethod"),
|
|
]
|
|
params: CommandExecTerminateParams
|
|
|
|
|
|
class ConfigReadRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["config/read"], Field(title="Config/readRequestMethod")]
|
|
params: ConfigReadParams
|
|
|
|
|
|
class ExternalAgentConfigDetectRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["externalAgentConfig/detect"],
|
|
Field(title="ExternalAgentConfig/detectRequestMethod"),
|
|
]
|
|
params: ExternalAgentConfigDetectParams
|
|
|
|
|
|
class ConfigRequirementsReadRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["configRequirements/read"],
|
|
Field(title="ConfigRequirements/readRequestMethod"),
|
|
]
|
|
params: None = None
|
|
|
|
|
|
class AccountReadRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["account/read"], Field(title="Account/readRequestMethod")]
|
|
params: GetAccountParams
|
|
|
|
|
|
class FuzzyFileSearchRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["fuzzyFileSearch"], Field(title="FuzzyFileSearchRequestMethod")
|
|
]
|
|
params: FuzzyFileSearchParams
|
|
|
|
|
|
class ActiveTurnNotSteerable(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
turn_kind: Annotated[NonSteerableTurnKind, Field(alias="turnKind")]
|
|
|
|
|
|
class ActiveTurnNotSteerableCodexErrorInfo(BaseModel):
|
|
model_config = ConfigDict(
|
|
extra="forbid",
|
|
populate_by_name=True,
|
|
)
|
|
active_turn_not_steerable: Annotated[
|
|
ActiveTurnNotSteerable, Field(alias="activeTurnNotSteerable")
|
|
]
|
|
|
|
|
|
class CodexErrorInfo(
|
|
RootModel[
|
|
CodexErrorInfoValue
|
|
| HttpConnectionFailedCodexErrorInfo
|
|
| ResponseStreamConnectionFailedCodexErrorInfo
|
|
| ResponseStreamDisconnectedCodexErrorInfo
|
|
| ResponseTooManyFailedAttemptsCodexErrorInfo
|
|
| ActiveTurnNotSteerableCodexErrorInfo
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: Annotated[
|
|
CodexErrorInfoValue
|
|
| HttpConnectionFailedCodexErrorInfo
|
|
| ResponseStreamConnectionFailedCodexErrorInfo
|
|
| ResponseStreamDisconnectedCodexErrorInfo
|
|
| ResponseTooManyFailedAttemptsCodexErrorInfo
|
|
| ActiveTurnNotSteerableCodexErrorInfo,
|
|
Field(
|
|
description="This translation layer make sure that we expose codex error code in camel case.\n\nWhen an upstream HTTP status is available (for example, from the Responses API or a provider), it is forwarded in `httpStatusCode` on the relevant `codexErrorInfo` variant."
|
|
),
|
|
]
|
|
|
|
|
|
class CollabAgentState(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
message: str | None = None
|
|
status: CollabAgentStatus
|
|
|
|
|
|
class CollaborationMode(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
mode: ModeKind
|
|
settings: Settings
|
|
|
|
|
|
class CollaborationModeMask(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
mode: ModeKind | None = None
|
|
model: str | None = None
|
|
name: str
|
|
reasoning_effort: ReasoningEffort | None = None
|
|
|
|
|
|
class CommandExecOutputDeltaNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cap_reached: Annotated[
|
|
bool,
|
|
Field(
|
|
alias="capReached",
|
|
description="`true` on the final streamed chunk for a stream when `outputBytesCap` truncated later output on that stream.",
|
|
),
|
|
]
|
|
delta_base64: Annotated[
|
|
str, Field(alias="deltaBase64", description="Base64-encoded output bytes.")
|
|
]
|
|
process_id: Annotated[
|
|
str,
|
|
Field(
|
|
alias="processId",
|
|
description="Client-supplied, connection-scoped `processId` from the original `command/exec` request.",
|
|
),
|
|
]
|
|
stream: Annotated[
|
|
CommandExecOutputStream, Field(description="Output stream for this chunk.")
|
|
]
|
|
|
|
|
|
class CommandExecParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
command: Annotated[
|
|
list[str], Field(description="Command argv vector. Empty arrays are rejected.")
|
|
]
|
|
cwd: Annotated[
|
|
str | None,
|
|
Field(description="Optional working directory. Defaults to the server cwd."),
|
|
] = None
|
|
disable_output_cap: Annotated[
|
|
bool | None,
|
|
Field(
|
|
alias="disableOutputCap",
|
|
description="Disable stdout/stderr capture truncation for this request.\n\nCannot be combined with `outputBytesCap`.",
|
|
),
|
|
] = None
|
|
disable_timeout: Annotated[
|
|
bool | None,
|
|
Field(
|
|
alias="disableTimeout",
|
|
description="Disable the timeout entirely for this request.\n\nCannot be combined with `timeoutMs`.",
|
|
),
|
|
] = None
|
|
env: Annotated[
|
|
dict[str, Any] | None,
|
|
Field(
|
|
description="Optional environment overrides merged into the server-computed environment.\n\nMatching names override inherited values. Set a key to `null` to unset an inherited variable."
|
|
),
|
|
] = None
|
|
output_bytes_cap: Annotated[
|
|
int | None,
|
|
Field(
|
|
alias="outputBytesCap",
|
|
description="Optional per-stream stdout/stderr capture cap in bytes.\n\nWhen omitted, the server default applies. Cannot be combined with `disableOutputCap`.",
|
|
ge=0,
|
|
),
|
|
] = None
|
|
process_id: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="processId",
|
|
description="Optional client-supplied, connection-scoped process id.\n\nRequired for `tty`, `streamStdin`, `streamStdoutStderr`, and follow-up `command/exec/write`, `command/exec/resize`, and `command/exec/terminate` calls. When omitted, buffered execution gets an internal id that is not exposed to the client.",
|
|
),
|
|
] = None
|
|
sandbox_policy: Annotated[
|
|
SandboxPolicy | None,
|
|
Field(
|
|
alias="sandboxPolicy",
|
|
description="Optional sandbox policy for this command.\n\nUses the same shape as thread/turn execution sandbox configuration and defaults to the user's configured policy when omitted. Cannot be combined with `permissionProfile`.",
|
|
),
|
|
] = None
|
|
size: Annotated[
|
|
CommandExecTerminalSize | None,
|
|
Field(
|
|
description="Optional initial PTY size in character cells. Only valid when `tty` is true."
|
|
),
|
|
] = None
|
|
stream_stdin: Annotated[
|
|
bool | None,
|
|
Field(
|
|
alias="streamStdin",
|
|
description="Allow follow-up `command/exec/write` requests to write stdin bytes.\n\nRequires a client-supplied `processId`.",
|
|
),
|
|
] = None
|
|
stream_stdout_stderr: Annotated[
|
|
bool | None,
|
|
Field(
|
|
alias="streamStdoutStderr",
|
|
description="Stream stdout/stderr via `command/exec/outputDelta` notifications.\n\nStreamed bytes are not duplicated into the final response and require a client-supplied `processId`.",
|
|
),
|
|
] = None
|
|
timeout_ms: Annotated[
|
|
int | None,
|
|
Field(
|
|
alias="timeoutMs",
|
|
description="Optional timeout in milliseconds.\n\nWhen omitted, the server default applies. Cannot be combined with `disableTimeout`.",
|
|
),
|
|
] = None
|
|
tty: Annotated[
|
|
bool | None,
|
|
Field(
|
|
description="Enable PTY mode.\n\nThis implies `streamStdin` and `streamStdoutStderr`."
|
|
),
|
|
] = None
|
|
|
|
|
|
class CommandExecResizeParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
process_id: Annotated[
|
|
str,
|
|
Field(
|
|
alias="processId",
|
|
description="Client-supplied, connection-scoped `processId` from the original `command/exec` request.",
|
|
),
|
|
]
|
|
size: Annotated[
|
|
CommandExecTerminalSize, Field(description="New PTY size in character cells.")
|
|
]
|
|
|
|
|
|
class ConfigEdit(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
key_path: Annotated[str, Field(alias="keyPath")]
|
|
merge_strategy: Annotated[MergeStrategy, Field(alias="mergeStrategy")]
|
|
value: Any
|
|
|
|
|
|
class ConfigLayer(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
config: Any
|
|
disabled_reason: Annotated[str | None, Field(alias="disabledReason")] = None
|
|
name: ConfigLayerSource
|
|
version: str
|
|
|
|
|
|
class ConfigLayerMetadata(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
name: ConfigLayerSource
|
|
version: str
|
|
|
|
|
|
class ConfigRequirements(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
allowed_approval_policies: Annotated[
|
|
list[AskForApproval] | None, Field(alias="allowedApprovalPolicies")
|
|
] = None
|
|
allowed_sandbox_modes: Annotated[
|
|
list[SandboxMode] | None, Field(alias="allowedSandboxModes")
|
|
] = None
|
|
allowed_web_search_modes: Annotated[
|
|
list[WebSearchMode] | None, Field(alias="allowedWebSearchModes")
|
|
] = None
|
|
enforce_residency: Annotated[
|
|
ResidencyRequirement | None, Field(alias="enforceResidency")
|
|
] = None
|
|
feature_requirements: Annotated[
|
|
dict[str, Any] | None, Field(alias="featureRequirements")
|
|
] = None
|
|
|
|
|
|
class ConfigRequirementsReadResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
requirements: Annotated[
|
|
ConfigRequirements | None,
|
|
Field(
|
|
description="Null if no requirements are configured (e.g. no requirements.toml/MDM entries)."
|
|
),
|
|
] = None
|
|
|
|
|
|
class ConfigValueWriteParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
expected_version: Annotated[str | None, Field(alias="expectedVersion")] = None
|
|
file_path: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="filePath",
|
|
description="Path to the config file to write; defaults to the user's `config.toml` when omitted.",
|
|
),
|
|
] = None
|
|
key_path: Annotated[str, Field(alias="keyPath")]
|
|
merge_strategy: Annotated[MergeStrategy, Field(alias="mergeStrategy")]
|
|
value: Any
|
|
|
|
|
|
class ConfigWarningNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
details: Annotated[
|
|
str | None, Field(description="Optional extra guidance or error details.")
|
|
] = None
|
|
path: Annotated[
|
|
str | None,
|
|
Field(
|
|
description="Optional path to the config file that triggered the warning."
|
|
),
|
|
] = None
|
|
range: Annotated[
|
|
TextRange | None,
|
|
Field(
|
|
description="Optional range for the error location inside the config file."
|
|
),
|
|
] = None
|
|
summary: Annotated[str, Field(description="Concise summary of the warning.")]
|
|
|
|
|
|
class InputImageContentItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
detail: ImageDetail | None = None
|
|
image_url: str
|
|
type: Annotated[Literal["input_image"], Field(title="InputImageContentItemType")]
|
|
|
|
|
|
class ContentItem(
|
|
RootModel[InputTextContentItem | InputImageContentItem | OutputTextContentItem]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: InputTextContentItem | InputImageContentItem | OutputTextContentItem
|
|
|
|
|
|
class ExperimentalFeature(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
announcement: Annotated[
|
|
str | None,
|
|
Field(
|
|
description="Announcement copy shown to users when the feature is introduced. Null when this feature is not in beta."
|
|
),
|
|
] = None
|
|
default_enabled: Annotated[
|
|
bool,
|
|
Field(
|
|
alias="defaultEnabled",
|
|
description="Whether this feature is enabled by default.",
|
|
),
|
|
]
|
|
description: Annotated[
|
|
str | None,
|
|
Field(
|
|
description="Short summary describing what the feature does. Null when this feature is not in beta."
|
|
),
|
|
] = None
|
|
display_name: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="displayName",
|
|
description="User-facing display name shown in the experimental features UI. Null when this feature is not in beta.",
|
|
),
|
|
] = None
|
|
enabled: Annotated[
|
|
bool,
|
|
Field(
|
|
description="Whether this feature is currently enabled in the loaded config."
|
|
),
|
|
]
|
|
name: Annotated[
|
|
str, Field(description="Stable key used in config.toml and CLI flag toggles.")
|
|
]
|
|
stage: Annotated[
|
|
ExperimentalFeatureStage,
|
|
Field(description="Lifecycle stage of this feature flag."),
|
|
]
|
|
|
|
|
|
class ExperimentalFeatureListResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
data: list[ExperimentalFeature]
|
|
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 SpecialFileSystemPath(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
type: Annotated[Literal["special"], Field(title="SpecialFileSystemPathType")]
|
|
value: FileSystemSpecialPath
|
|
|
|
|
|
class FileSystemPath(
|
|
RootModel[PathFileSystemPath | GlobPatternFileSystemPath | SpecialFileSystemPath]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: PathFileSystemPath | GlobPatternFileSystemPath | SpecialFileSystemPath
|
|
|
|
|
|
class FileSystemSandboxEntry(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
access: FileSystemAccessMode
|
|
path: FileSystemPath
|
|
|
|
|
|
class FileUpdateChange(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
diff: str
|
|
kind: PatchChangeKind
|
|
path: str
|
|
|
|
|
|
class InputImageFunctionCallOutputContentItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
detail: ImageDetail | None = None
|
|
image_url: str
|
|
type: Annotated[
|
|
Literal["input_image"],
|
|
Field(title="InputImageFunctionCallOutputContentItemType"),
|
|
]
|
|
|
|
|
|
class FunctionCallOutputContentItem(
|
|
RootModel[
|
|
InputTextFunctionCallOutputContentItem | InputImageFunctionCallOutputContentItem
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: Annotated[
|
|
InputTextFunctionCallOutputContentItem
|
|
| InputImageFunctionCallOutputContentItem,
|
|
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."
|
|
),
|
|
]
|
|
|
|
|
|
class GetAccountResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
account: Account | None = None
|
|
requires_openai_auth: Annotated[bool, Field(alias="requiresOpenaiAuth")]
|
|
|
|
|
|
class GuardianApprovalReview(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
rationale: str | None = None
|
|
risk_level: Annotated[GuardianRiskLevel | None, Field(alias="riskLevel")] = None
|
|
status: GuardianApprovalReviewStatus
|
|
user_authorization: Annotated[
|
|
GuardianUserAuthorization | None, Field(alias="userAuthorization")
|
|
] = None
|
|
|
|
|
|
class CommandGuardianApprovalReviewAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
command: str
|
|
cwd: AbsolutePathBuf
|
|
source: GuardianCommandSource
|
|
type: Annotated[
|
|
Literal["command"], Field(title="CommandGuardianApprovalReviewActionType")
|
|
]
|
|
|
|
|
|
class ExecveGuardianApprovalReviewAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
argv: list[str]
|
|
cwd: AbsolutePathBuf
|
|
program: str
|
|
source: GuardianCommandSource
|
|
type: Annotated[
|
|
Literal["execve"], Field(title="ExecveGuardianApprovalReviewActionType")
|
|
]
|
|
|
|
|
|
class NetworkAccessGuardianApprovalReviewAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
host: str
|
|
port: Annotated[int, Field(ge=0)]
|
|
protocol: NetworkApprovalProtocol
|
|
target: str
|
|
type: Annotated[
|
|
Literal["networkAccess"],
|
|
Field(title="NetworkAccessGuardianApprovalReviewActionType"),
|
|
]
|
|
|
|
|
|
class HookMetadata(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
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
|
|
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")]
|
|
|
|
|
|
class HookOutputEntry(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
kind: HookOutputEntryKind
|
|
text: str
|
|
|
|
|
|
class HookRunSummary(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
completed_at: Annotated[int | None, Field(alias="completedAt")] = None
|
|
display_order: Annotated[int, Field(alias="displayOrder")]
|
|
duration_ms: Annotated[int | None, Field(alias="durationMs")] = None
|
|
entries: list[HookOutputEntry]
|
|
event_name: Annotated[HookEventName, Field(alias="eventName")]
|
|
execution_mode: Annotated[HookExecutionMode, Field(alias="executionMode")]
|
|
handler_type: Annotated[HookHandlerType, Field(alias="handlerType")]
|
|
id: str
|
|
scope: HookScope
|
|
source: HookSource | None = "unknown"
|
|
source_path: Annotated[AbsolutePathBuf, Field(alias="sourcePath")]
|
|
started_at: Annotated[int, Field(alias="startedAt")]
|
|
status: HookRunStatus
|
|
status_message: Annotated[str | None, Field(alias="statusMessage")] = None
|
|
|
|
|
|
class HookStartedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
run: HookRunSummary
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str | None, Field(alias="turnId")] = None
|
|
|
|
|
|
class HooksListEntry(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cwd: str
|
|
errors: list[HookErrorInfo]
|
|
hooks: list[HookMetadata]
|
|
warnings: list[str]
|
|
|
|
|
|
class HooksListResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
data: list[HooksListEntry]
|
|
|
|
|
|
class ListMcpServerStatusParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cursor: Annotated[
|
|
str | None,
|
|
Field(description="Opaque pagination cursor returned by a previous call."),
|
|
] = None
|
|
detail: Annotated[
|
|
McpServerStatusDetail | None,
|
|
Field(
|
|
description="Controls how much MCP inventory data to fetch for each server. Defaults to `Full` when omitted."
|
|
),
|
|
] = None
|
|
limit: Annotated[
|
|
int | None,
|
|
Field(
|
|
description="Optional page size; defaults to a server-defined value.", ge=0
|
|
),
|
|
] = None
|
|
|
|
|
|
class McpResourceReadResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
contents: list[ResourceContent]
|
|
|
|
|
|
class McpServerStatus(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
auth_status: Annotated[McpAuthStatus, Field(alias="authStatus")]
|
|
name: str
|
|
resource_templates: Annotated[
|
|
list[ResourceTemplate], Field(alias="resourceTemplates")
|
|
]
|
|
resources: list[Resource]
|
|
tools: dict[str, Tool]
|
|
|
|
|
|
class MemoryCitation(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
entries: list[MemoryCitationEntry]
|
|
thread_ids: Annotated[list[str], Field(alias="threadIds")]
|
|
|
|
|
|
class MigrationDetails(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
commands: list[CommandMigration] | None = []
|
|
hooks: list[HookMigration] | None = []
|
|
mcp_servers: Annotated[
|
|
list[McpServerMigration] | None, Field(alias="mcpServers")
|
|
] = []
|
|
plugins: list[PluginsMigration] | None = []
|
|
sessions: list[SessionMigration] | None = []
|
|
subagents: list[SubagentMigration] | None = []
|
|
|
|
|
|
class Model(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
additional_speed_tiers: Annotated[
|
|
list[str] | None,
|
|
Field(
|
|
alias="additionalSpeedTiers",
|
|
description="Deprecated: use `serviceTiers` instead.",
|
|
),
|
|
] = []
|
|
availability_nux: Annotated[
|
|
ModelAvailabilityNux | None, Field(alias="availabilityNux")
|
|
] = None
|
|
default_reasoning_effort: Annotated[
|
|
ReasoningEffort, Field(alias="defaultReasoningEffort")
|
|
]
|
|
description: str
|
|
display_name: Annotated[str, Field(alias="displayName")]
|
|
hidden: bool
|
|
id: str
|
|
input_modalities: Annotated[
|
|
list[InputModality] | None, Field(alias="inputModalities")
|
|
] = ["text", "image"]
|
|
is_default: Annotated[bool, Field(alias="isDefault")]
|
|
model: str
|
|
service_tiers: Annotated[
|
|
list[ModelServiceTier] | None, Field(alias="serviceTiers")
|
|
] = []
|
|
supported_reasoning_efforts: Annotated[
|
|
list[ReasoningEffortOption], Field(alias="supportedReasoningEfforts")
|
|
]
|
|
supports_personality: Annotated[bool | None, Field(alias="supportsPersonality")] = (
|
|
False
|
|
)
|
|
upgrade: str | None = None
|
|
upgrade_info: Annotated[ModelUpgradeInfo | None, Field(alias="upgradeInfo")] = None
|
|
|
|
|
|
class ModelListResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
data: list[Model]
|
|
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 OverriddenMetadata(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
effective_value: Annotated[Any, Field(alias="effectiveValue")]
|
|
message: str
|
|
overriding_layer: Annotated[ConfigLayerMetadata, Field(alias="overridingLayer")]
|
|
|
|
|
|
class ExternalPermissionProfile(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
network: PermissionProfileNetworkPermissions
|
|
type: Annotated[Literal["external"], Field(title="ExternalPermissionProfileType")]
|
|
|
|
|
|
class RestrictedPermissionProfileFileSystemPermissions(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
entries: list[FileSystemSandboxEntry]
|
|
glob_scan_max_depth: Annotated[
|
|
int | None, Field(alias="globScanMaxDepth", ge=1)
|
|
] = None
|
|
type: Annotated[
|
|
Literal["restricted"],
|
|
Field(title="RestrictedPermissionProfileFileSystemPermissionsType"),
|
|
]
|
|
|
|
|
|
class PermissionProfileFileSystemPermissions(
|
|
RootModel[
|
|
RestrictedPermissionProfileFileSystemPermissions
|
|
| UnrestrictedPermissionProfileFileSystemPermissions
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: (
|
|
RestrictedPermissionProfileFileSystemPermissions
|
|
| UnrestrictedPermissionProfileFileSystemPermissions
|
|
)
|
|
|
|
|
|
class PluginSharePrincipal(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
name: str
|
|
principal_id: Annotated[str, Field(alias="principalId")]
|
|
principal_type: Annotated[PluginSharePrincipalType, Field(alias="principalType")]
|
|
role: PluginSharePrincipalRole
|
|
|
|
|
|
class PluginShareTarget(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
principal_id: Annotated[str, Field(alias="principalId")]
|
|
principal_type: Annotated[PluginSharePrincipalType, Field(alias="principalType")]
|
|
role: PluginShareTargetRole
|
|
|
|
|
|
class PluginShareUpdateTargetsParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
discoverability: PluginShareUpdateDiscoverability
|
|
remote_plugin_id: Annotated[str, Field(alias="remotePluginId")]
|
|
share_targets: Annotated[list[PluginShareTarget], Field(alias="shareTargets")]
|
|
|
|
|
|
class PluginShareUpdateTargetsResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
discoverability: PluginShareDiscoverability
|
|
principals: list[PluginSharePrincipal]
|
|
|
|
|
|
class ProcessOutputDeltaNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cap_reached: Annotated[
|
|
bool,
|
|
Field(
|
|
alias="capReached",
|
|
description="True on the final streamed chunk for this stream when output was truncated by `outputBytesCap`.",
|
|
),
|
|
]
|
|
delta_base64: Annotated[
|
|
str, Field(alias="deltaBase64", description="Base64-encoded output bytes.")
|
|
]
|
|
process_handle: Annotated[
|
|
str,
|
|
Field(
|
|
alias="processHandle",
|
|
description="Client-supplied, connection-scoped `processHandle` from `process/spawn`.",
|
|
),
|
|
]
|
|
stream: Annotated[
|
|
ProcessOutputStream, Field(description="Output stream this chunk belongs to.")
|
|
]
|
|
|
|
|
|
class RateLimitSnapshot(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
credits: CreditsSnapshot | None = None
|
|
limit_id: Annotated[str | None, Field(alias="limitId")] = None
|
|
limit_name: Annotated[str | None, Field(alias="limitName")] = None
|
|
plan_type: Annotated[PlanType | None, Field(alias="planType")] = None
|
|
primary: RateLimitWindow | None = None
|
|
rate_limit_reached_type: Annotated[
|
|
RateLimitReachedType | None, Field(alias="rateLimitReachedType")
|
|
] = None
|
|
secondary: RateLimitWindow | None = None
|
|
|
|
|
|
class MessageResponseItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
content: list[ContentItem]
|
|
id: str | None = None
|
|
phase: MessagePhase | None = None
|
|
role: str
|
|
type: Annotated[Literal["message"], Field(title="MessageResponseItemType")]
|
|
|
|
|
|
class WebSearchCallResponseItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
action: ResponsesApiWebSearchAction | None = None
|
|
id: str | None = None
|
|
status: str | None = None
|
|
type: Annotated[
|
|
Literal["web_search_call"], Field(title="WebSearchCallResponseItemType")
|
|
]
|
|
|
|
|
|
class ReviewStartParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
delivery: Annotated[
|
|
ReviewDelivery | None,
|
|
Field(
|
|
description="Where to run the review: inline (default) on the current thread or detached on a new thread (returned in `reviewThreadId`)."
|
|
),
|
|
] = None
|
|
target: ReviewTarget
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class ThreadStatusChangedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/status/changed"],
|
|
Field(title="Thread/status/changedNotificationMethod"),
|
|
]
|
|
params: ThreadStatusChangedNotification
|
|
|
|
|
|
class ThreadArchivedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/archived"], Field(title="Thread/archivedNotificationMethod")
|
|
]
|
|
params: ThreadArchivedNotification
|
|
|
|
|
|
class ThreadUnarchivedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/unarchived"], Field(title="Thread/unarchivedNotificationMethod")
|
|
]
|
|
params: ThreadUnarchivedNotification
|
|
|
|
|
|
class ThreadClosedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/closed"], Field(title="Thread/closedNotificationMethod")
|
|
]
|
|
params: ThreadClosedNotification
|
|
|
|
|
|
class SkillsChangedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["skills/changed"], Field(title="Skills/changedNotificationMethod")
|
|
]
|
|
params: SkillsChangedNotification
|
|
|
|
|
|
class ThreadNameUpdatedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/name/updated"],
|
|
Field(title="Thread/name/updatedNotificationMethod"),
|
|
]
|
|
params: ThreadNameUpdatedNotification
|
|
|
|
|
|
class ThreadGoalClearedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/goal/cleared"],
|
|
Field(title="Thread/goal/clearedNotificationMethod"),
|
|
]
|
|
params: ThreadGoalClearedNotification
|
|
|
|
|
|
class HookStartedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["hook/started"], Field(title="Hook/startedNotificationMethod")
|
|
]
|
|
params: HookStartedNotification
|
|
|
|
|
|
class TurnDiffUpdatedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["turn/diff/updated"], Field(title="Turn/diff/updatedNotificationMethod")
|
|
]
|
|
params: TurnDiffUpdatedNotification
|
|
|
|
|
|
class CommandExecOutputDeltaServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["command/exec/outputDelta"],
|
|
Field(title="Command/exec/outputDeltaNotificationMethod"),
|
|
]
|
|
params: CommandExecOutputDeltaNotification
|
|
|
|
|
|
class ProcessOutputDeltaServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["process/outputDelta"],
|
|
Field(title="Process/outputDeltaNotificationMethod"),
|
|
]
|
|
params: ProcessOutputDeltaNotification
|
|
|
|
|
|
class ItemCommandExecutionTerminalInteractionServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["item/commandExecution/terminalInteraction"],
|
|
Field(title="Item/commandExecution/terminalInteractionNotificationMethod"),
|
|
]
|
|
params: TerminalInteractionNotification
|
|
|
|
|
|
class ServerRequestResolvedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["serverRequest/resolved"],
|
|
Field(title="ServerRequest/resolvedNotificationMethod"),
|
|
]
|
|
params: ServerRequestResolvedNotification
|
|
|
|
|
|
class AccountUpdatedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["account/updated"], Field(title="Account/updatedNotificationMethod")
|
|
]
|
|
params: AccountUpdatedNotification
|
|
|
|
|
|
class WarningServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[Literal["warning"], Field(title="WarningNotificationMethod")]
|
|
params: WarningNotification
|
|
|
|
|
|
class ConfigWarningServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["configWarning"], Field(title="ConfigWarningNotificationMethod")
|
|
]
|
|
params: ConfigWarningNotification
|
|
|
|
|
|
class ThreadRealtimeStartedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/realtime/started"],
|
|
Field(title="Thread/realtime/startedNotificationMethod"),
|
|
]
|
|
params: ThreadRealtimeStartedNotification
|
|
|
|
|
|
class ThreadRealtimeItemAddedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/realtime/itemAdded"],
|
|
Field(title="Thread/realtime/itemAddedNotificationMethod"),
|
|
]
|
|
params: ThreadRealtimeItemAddedNotification
|
|
|
|
|
|
class ThreadRealtimeTranscriptDeltaServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/realtime/transcript/delta"],
|
|
Field(title="Thread/realtime/transcript/deltaNotificationMethod"),
|
|
]
|
|
params: ThreadRealtimeTranscriptDeltaNotification
|
|
|
|
|
|
class ThreadRealtimeTranscriptDoneServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/realtime/transcript/done"],
|
|
Field(title="Thread/realtime/transcript/doneNotificationMethod"),
|
|
]
|
|
params: ThreadRealtimeTranscriptDoneNotification
|
|
|
|
|
|
class ThreadRealtimeOutputAudioDeltaServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/realtime/outputAudio/delta"],
|
|
Field(title="Thread/realtime/outputAudio/deltaNotificationMethod"),
|
|
]
|
|
params: ThreadRealtimeOutputAudioDeltaNotification
|
|
|
|
|
|
class ThreadRealtimeSdpServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/realtime/sdp"],
|
|
Field(title="Thread/realtime/sdpNotificationMethod"),
|
|
]
|
|
params: ThreadRealtimeSdpNotification
|
|
|
|
|
|
class ThreadRealtimeErrorServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/realtime/error"],
|
|
Field(title="Thread/realtime/errorNotificationMethod"),
|
|
]
|
|
params: ThreadRealtimeErrorNotification
|
|
|
|
|
|
class ThreadRealtimeClosedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/realtime/closed"],
|
|
Field(title="Thread/realtime/closedNotificationMethod"),
|
|
]
|
|
params: ThreadRealtimeClosedNotification
|
|
|
|
|
|
class WindowsWorldWritableWarningServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["windows/worldWritableWarning"],
|
|
Field(title="Windows/worldWritableWarningNotificationMethod"),
|
|
]
|
|
params: WindowsWorldWritableWarningNotification
|
|
|
|
|
|
class SkillDependencies(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
tools: list[SkillToolDependency]
|
|
|
|
|
|
class SkillMetadata(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
dependencies: SkillDependencies | None = None
|
|
description: str
|
|
enabled: bool
|
|
interface: SkillInterface | None = None
|
|
name: str
|
|
path: AbsolutePathBuf
|
|
scope: SkillScope
|
|
short_description: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="shortDescription",
|
|
description="Legacy short_description from SKILL.md. Prefer SKILL.json interface.short_description.",
|
|
),
|
|
] = None
|
|
|
|
|
|
class SkillsListEntry(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cwd: str
|
|
errors: list[SkillErrorInfo]
|
|
skills: list[SkillMetadata]
|
|
|
|
|
|
class SkillsListResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
data: list[SkillsListEntry]
|
|
|
|
|
|
class ThreadSpawn(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
agent_nickname: str | None = None
|
|
agent_path: AgentPath | None = None
|
|
agent_role: str | None = None
|
|
depth: int
|
|
parent_thread_id: ThreadId
|
|
|
|
|
|
class ThreadSpawnSubAgentSource(BaseModel):
|
|
model_config = ConfigDict(
|
|
extra="forbid",
|
|
populate_by_name=True,
|
|
)
|
|
thread_spawn: ThreadSpawn
|
|
|
|
|
|
class SubAgentSource(
|
|
RootModel[SubAgentSourceValue | ThreadSpawnSubAgentSource | OtherSubAgentSource]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: SubAgentSourceValue | ThreadSpawnSubAgentSource | OtherSubAgentSource
|
|
|
|
|
|
class ThreadForkParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
approval_policy: Annotated[AskForApproval | None, Field(alias="approvalPolicy")] = (
|
|
None
|
|
)
|
|
approvals_reviewer: Annotated[
|
|
ApprovalsReviewer | None,
|
|
Field(
|
|
alias="approvalsReviewer",
|
|
description="Override where approval requests are routed for review on this thread and subsequent turns.",
|
|
),
|
|
] = None
|
|
base_instructions: Annotated[str | None, Field(alias="baseInstructions")] = None
|
|
config: dict[str, Any] | None = None
|
|
cwd: str | None = None
|
|
developer_instructions: Annotated[
|
|
str | None, Field(alias="developerInstructions")
|
|
] = None
|
|
ephemeral: bool | None = None
|
|
model: Annotated[
|
|
str | None,
|
|
Field(description="Configuration overrides for the forked thread, if any."),
|
|
] = None
|
|
model_provider: Annotated[str | None, Field(alias="modelProvider")] = None
|
|
sandbox: SandboxMode | None = None
|
|
service_tier: Annotated[str | None, Field(alias="serviceTier")] = None
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
thread_source: Annotated[
|
|
ThreadSource | None,
|
|
Field(
|
|
alias="threadSource",
|
|
description="Optional client-supplied analytics source classification for this forked thread.",
|
|
),
|
|
] = None
|
|
|
|
|
|
class ThreadGoal(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
created_at: Annotated[int, Field(alias="createdAt")]
|
|
objective: str
|
|
status: ThreadGoalStatus
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
time_used_seconds: Annotated[int, Field(alias="timeUsedSeconds")]
|
|
token_budget: Annotated[int | None, Field(alias="tokenBudget")] = None
|
|
tokens_used: Annotated[int, Field(alias="tokensUsed")]
|
|
updated_at: Annotated[int, Field(alias="updatedAt")]
|
|
|
|
|
|
class ThreadGoalUpdatedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
goal: ThreadGoal
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str | None, Field(alias="turnId")] = None
|
|
|
|
|
|
class UserMessageThreadItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
content: list[UserInput]
|
|
id: str
|
|
type: Annotated[Literal["userMessage"], Field(title="UserMessageThreadItemType")]
|
|
|
|
|
|
class AgentMessageThreadItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: str
|
|
memory_citation: Annotated[MemoryCitation | None, Field(alias="memoryCitation")] = (
|
|
None
|
|
)
|
|
phase: MessagePhase | None = None
|
|
text: str
|
|
type: Annotated[Literal["agentMessage"], Field(title="AgentMessageThreadItemType")]
|
|
|
|
|
|
class FileChangeThreadItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
changes: list[FileUpdateChange]
|
|
id: str
|
|
status: PatchApplyStatus
|
|
type: Annotated[Literal["fileChange"], Field(title="FileChangeThreadItemType")]
|
|
|
|
|
|
class CollabAgentToolCallThreadItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
agents_states: Annotated[
|
|
dict[str, CollabAgentState],
|
|
Field(
|
|
alias="agentsStates",
|
|
description="Last known status of the target agents, when available.",
|
|
),
|
|
]
|
|
id: Annotated[
|
|
str, Field(description="Unique identifier for this collab tool call.")
|
|
]
|
|
model: Annotated[
|
|
str | None,
|
|
Field(description="Model requested for the spawned agent, when applicable."),
|
|
] = None
|
|
prompt: Annotated[
|
|
str | None,
|
|
Field(
|
|
description="Prompt text sent as part of the collab tool call, when available."
|
|
),
|
|
] = None
|
|
reasoning_effort: Annotated[
|
|
ReasoningEffort | None,
|
|
Field(
|
|
alias="reasoningEffort",
|
|
description="Reasoning effort requested for the spawned agent, when applicable.",
|
|
),
|
|
] = None
|
|
receiver_thread_ids: Annotated[
|
|
list[str],
|
|
Field(
|
|
alias="receiverThreadIds",
|
|
description="Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
|
),
|
|
]
|
|
sender_thread_id: Annotated[
|
|
str,
|
|
Field(
|
|
alias="senderThreadId",
|
|
description="Thread ID of the agent issuing the collab request.",
|
|
),
|
|
]
|
|
status: Annotated[
|
|
CollabAgentToolCallStatus,
|
|
Field(description="Current status of the collab tool call."),
|
|
]
|
|
tool: Annotated[
|
|
CollabAgentTool, Field(description="Name of the collab tool that was invoked.")
|
|
]
|
|
type: Annotated[
|
|
Literal["collabAgentToolCall"], Field(title="CollabAgentToolCallThreadItemType")
|
|
]
|
|
|
|
|
|
class WebSearchThreadItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
action: WebSearchAction | None = None
|
|
id: str
|
|
query: str
|
|
type: Annotated[Literal["webSearch"], Field(title="WebSearchThreadItemType")]
|
|
|
|
|
|
class ThreadItem(
|
|
RootModel[
|
|
UserMessageThreadItem
|
|
| HookPromptThreadItem
|
|
| AgentMessageThreadItem
|
|
| PlanThreadItem
|
|
| ReasoningThreadItem
|
|
| CommandExecutionThreadItem
|
|
| FileChangeThreadItem
|
|
| McpToolCallThreadItem
|
|
| DynamicToolCallThreadItem
|
|
| CollabAgentToolCallThreadItem
|
|
| WebSearchThreadItem
|
|
| ImageViewThreadItem
|
|
| ImageGenerationThreadItem
|
|
| EnteredReviewModeThreadItem
|
|
| ExitedReviewModeThreadItem
|
|
| ContextCompactionThreadItem
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: (
|
|
UserMessageThreadItem
|
|
| HookPromptThreadItem
|
|
| AgentMessageThreadItem
|
|
| PlanThreadItem
|
|
| ReasoningThreadItem
|
|
| CommandExecutionThreadItem
|
|
| FileChangeThreadItem
|
|
| McpToolCallThreadItem
|
|
| DynamicToolCallThreadItem
|
|
| CollabAgentToolCallThreadItem
|
|
| WebSearchThreadItem
|
|
| ImageViewThreadItem
|
|
| ImageGenerationThreadItem
|
|
| EnteredReviewModeThreadItem
|
|
| ExitedReviewModeThreadItem
|
|
| ContextCompactionThreadItem
|
|
)
|
|
|
|
|
|
class ThreadListParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
archived: Annotated[
|
|
bool | None,
|
|
Field(
|
|
description="Optional archived filter; when set to true, only archived threads are returned. If false or null, only non-archived threads are returned."
|
|
),
|
|
] = None
|
|
cursor: Annotated[
|
|
str | None,
|
|
Field(description="Opaque pagination cursor returned by a previous call."),
|
|
] = None
|
|
cwd: Annotated[
|
|
ThreadListCwdFilter | None,
|
|
Field(
|
|
description="Optional cwd filter or filters; when set, only threads whose session cwd exactly matches one of these paths are returned."
|
|
),
|
|
] = None
|
|
limit: Annotated[
|
|
int | None,
|
|
Field(
|
|
description="Optional page size; defaults to a reasonable server-side value.",
|
|
ge=0,
|
|
),
|
|
] = None
|
|
model_providers: Annotated[
|
|
list[str] | None,
|
|
Field(
|
|
alias="modelProviders",
|
|
description="Optional provider filter; when set, only sessions recorded under these providers are returned. When present but empty, includes all providers.",
|
|
),
|
|
] = None
|
|
search_term: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="searchTerm",
|
|
description="Optional substring filter for the extracted thread title.",
|
|
),
|
|
] = None
|
|
sort_direction: Annotated[
|
|
SortDirection | None,
|
|
Field(
|
|
alias="sortDirection",
|
|
description="Optional sort direction; defaults to descending (newest first).",
|
|
),
|
|
] = None
|
|
sort_key: Annotated[
|
|
ThreadSortKey | None,
|
|
Field(
|
|
alias="sortKey", description="Optional sort key; defaults to created_at."
|
|
),
|
|
] = None
|
|
source_kinds: Annotated[
|
|
list[ThreadSourceKind] | None,
|
|
Field(
|
|
alias="sourceKinds",
|
|
description="Optional source filter; when set, only sessions from these source kinds are returned. When omitted or empty, defaults to interactive sources.",
|
|
),
|
|
] = None
|
|
use_state_db_only: Annotated[
|
|
bool | None,
|
|
Field(
|
|
alias="useStateDbOnly",
|
|
description="If true, return from the state DB without scanning JSONL rollouts to repair thread metadata. Omitted or false preserves scan-and-repair behavior.",
|
|
),
|
|
] = None
|
|
|
|
|
|
class ThreadStartParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
approval_policy: Annotated[AskForApproval | None, Field(alias="approvalPolicy")] = (
|
|
None
|
|
)
|
|
approvals_reviewer: Annotated[
|
|
ApprovalsReviewer | None,
|
|
Field(
|
|
alias="approvalsReviewer",
|
|
description="Override where approval requests are routed for review on this thread and subsequent turns.",
|
|
),
|
|
] = None
|
|
base_instructions: Annotated[str | None, Field(alias="baseInstructions")] = None
|
|
config: dict[str, Any] | None = None
|
|
cwd: str | None = None
|
|
developer_instructions: Annotated[
|
|
str | None, Field(alias="developerInstructions")
|
|
] = None
|
|
ephemeral: bool | None = None
|
|
model: str | None = None
|
|
model_provider: Annotated[str | None, Field(alias="modelProvider")] = None
|
|
personality: Personality | None = None
|
|
sandbox: SandboxMode | None = None
|
|
service_name: Annotated[str | None, Field(alias="serviceName")] = None
|
|
service_tier: Annotated[str | None, Field(alias="serviceTier")] = None
|
|
session_start_source: Annotated[
|
|
ThreadStartSource | None, Field(alias="sessionStartSource")
|
|
] = None
|
|
thread_source: Annotated[
|
|
ThreadSource | None,
|
|
Field(
|
|
alias="threadSource",
|
|
description="Optional client-supplied analytics source classification for this thread.",
|
|
),
|
|
] = None
|
|
|
|
|
|
class ThreadTokenUsage(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
last: TokenUsageBreakdown
|
|
model_context_window: Annotated[int | None, Field(alias="modelContextWindow")] = (
|
|
None
|
|
)
|
|
total: TokenUsageBreakdown
|
|
|
|
|
|
class ThreadTokenUsageUpdatedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
token_usage: Annotated[ThreadTokenUsage, Field(alias="tokenUsage")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class ThreadUnsubscribeResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
status: ThreadUnsubscribeStatus
|
|
|
|
|
|
class ToolsV2(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
view_image: bool | None = None
|
|
web_search: WebSearchToolConfig | None = None
|
|
|
|
|
|
class TurnError(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
additional_details: Annotated[str | None, Field(alias="additionalDetails")] = None
|
|
codex_error_info: Annotated[
|
|
CodexErrorInfo | None, Field(alias="codexErrorInfo")
|
|
] = None
|
|
message: str
|
|
|
|
|
|
class TurnPlanStep(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
status: TurnPlanStepStatus
|
|
step: str
|
|
|
|
|
|
class TurnPlanUpdatedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
explanation: str | None = None
|
|
plan: list[TurnPlanStep]
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class TurnStartParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
approval_policy: Annotated[
|
|
AskForApproval | None,
|
|
Field(
|
|
alias="approvalPolicy",
|
|
description="Override the approval policy for this turn and subsequent turns.",
|
|
),
|
|
] = None
|
|
approvals_reviewer: Annotated[
|
|
ApprovalsReviewer | None,
|
|
Field(
|
|
alias="approvalsReviewer",
|
|
description="Override where approval requests are routed for review on this turn and subsequent turns.",
|
|
),
|
|
] = None
|
|
cwd: Annotated[
|
|
str | None,
|
|
Field(
|
|
description="Override the working directory for this turn and subsequent turns."
|
|
),
|
|
] = None
|
|
effort: Annotated[
|
|
ReasoningEffort | None,
|
|
Field(
|
|
description="Override the reasoning effort for this turn and subsequent turns."
|
|
),
|
|
] = None
|
|
input: list[UserInput]
|
|
model: Annotated[
|
|
str | None,
|
|
Field(description="Override the model for this turn and subsequent turns."),
|
|
] = None
|
|
output_schema: Annotated[
|
|
Any | None,
|
|
Field(
|
|
alias="outputSchema",
|
|
description="Optional JSON Schema used to constrain the final assistant message for this turn.",
|
|
),
|
|
] = None
|
|
personality: Annotated[
|
|
Personality | None,
|
|
Field(
|
|
description="Override the personality for this turn and subsequent turns."
|
|
),
|
|
] = None
|
|
sandbox_policy: Annotated[
|
|
SandboxPolicy | None,
|
|
Field(
|
|
alias="sandboxPolicy",
|
|
description="Override the sandbox policy for this turn and subsequent turns.",
|
|
),
|
|
] = None
|
|
service_tier: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="serviceTier",
|
|
description="Override the service tier for this turn and subsequent turns.",
|
|
),
|
|
] = None
|
|
summary: Annotated[
|
|
ReasoningSummary | None,
|
|
Field(
|
|
description="Override the reasoning summary for this turn and subsequent turns."
|
|
),
|
|
] = None
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class TurnSteerParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
expected_turn_id: Annotated[
|
|
str,
|
|
Field(
|
|
alias="expectedTurnId",
|
|
description="Required active turn id precondition. The request fails when it does not match the currently active turn.",
|
|
),
|
|
]
|
|
input: list[UserInput]
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
|
|
|
|
class WindowsSandboxSetupCompletedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
error: str | None = None
|
|
mode: WindowsSandboxSetupMode
|
|
success: bool
|
|
|
|
|
|
class AccountRateLimitsUpdatedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
rate_limits: Annotated[RateLimitSnapshot, Field(alias="rateLimits")]
|
|
|
|
|
|
class AdditionalFileSystemPermissions(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
entries: list[FileSystemSandboxEntry] | None = None
|
|
glob_scan_max_depth: Annotated[
|
|
int | None, Field(alias="globScanMaxDepth", ge=1)
|
|
] = None
|
|
read: Annotated[
|
|
list[AbsolutePathBuf] | None,
|
|
Field(description="This will be removed in favor of `entries`."),
|
|
] = None
|
|
write: Annotated[
|
|
list[AbsolutePathBuf] | None,
|
|
Field(description="This will be removed in favor of `entries`."),
|
|
] = None
|
|
|
|
|
|
class AppInfo(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
app_metadata: Annotated[AppMetadata | None, Field(alias="appMetadata")] = None
|
|
branding: AppBranding | None = None
|
|
description: str | None = None
|
|
distribution_channel: Annotated[str | None, Field(alias="distributionChannel")] = (
|
|
None
|
|
)
|
|
id: str
|
|
install_url: Annotated[str | None, Field(alias="installUrl")] = None
|
|
is_accessible: Annotated[bool | None, Field(alias="isAccessible")] = False
|
|
is_enabled: Annotated[
|
|
bool | None,
|
|
Field(
|
|
alias="isEnabled",
|
|
description="Whether this app is enabled in config.toml. Example: ```toml [apps.bad_app] enabled = false ```",
|
|
),
|
|
] = True
|
|
labels: dict[str, Any] | None = None
|
|
logo_url: Annotated[str | None, Field(alias="logoUrl")] = None
|
|
logo_url_dark: Annotated[str | None, Field(alias="logoUrlDark")] = None
|
|
name: str
|
|
plugin_display_names: Annotated[
|
|
list[str] | None, Field(alias="pluginDisplayNames")
|
|
] = []
|
|
|
|
|
|
class AppListUpdatedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
data: list[AppInfo]
|
|
|
|
|
|
class AppsListResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
data: list[AppInfo]
|
|
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 ThreadStartRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["thread/start"], Field(title="Thread/startRequestMethod")]
|
|
params: ThreadStartParams
|
|
|
|
|
|
class ThreadForkRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["thread/fork"], Field(title="Thread/forkRequestMethod")]
|
|
params: ThreadForkParams
|
|
|
|
|
|
class ThreadListRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["thread/list"], Field(title="Thread/listRequestMethod")]
|
|
params: ThreadListParams
|
|
|
|
|
|
class PluginShareUpdateTargetsRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["plugin/share/updateTargets"],
|
|
Field(title="Plugin/share/updateTargetsRequestMethod"),
|
|
]
|
|
params: PluginShareUpdateTargetsParams
|
|
|
|
|
|
class TurnStartRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["turn/start"], Field(title="Turn/startRequestMethod")]
|
|
params: TurnStartParams
|
|
|
|
|
|
class TurnSteerRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["turn/steer"], Field(title="Turn/steerRequestMethod")]
|
|
params: TurnSteerParams
|
|
|
|
|
|
class ReviewStartRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["review/start"], Field(title="Review/startRequestMethod")]
|
|
params: ReviewStartParams
|
|
|
|
|
|
class McpServerStatusListRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["mcpServerStatus/list"],
|
|
Field(title="McpServerStatus/listRequestMethod"),
|
|
]
|
|
params: ListMcpServerStatusParams
|
|
|
|
|
|
class CommandExecRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[Literal["command/exec"], Field(title="Command/execRequestMethod")]
|
|
params: CommandExecParams
|
|
|
|
|
|
class CommandExecResizeRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["command/exec/resize"], Field(title="Command/exec/resizeRequestMethod")
|
|
]
|
|
params: CommandExecResizeParams
|
|
|
|
|
|
class ConfigValueWriteRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["config/value/write"], Field(title="Config/value/writeRequestMethod")
|
|
]
|
|
params: ConfigValueWriteParams
|
|
|
|
|
|
class ConfigBatchWriteParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
edits: list[ConfigEdit]
|
|
expected_version: Annotated[str | None, Field(alias="expectedVersion")] = None
|
|
file_path: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="filePath",
|
|
description="Path to the config file to write; defaults to the user's `config.toml` when omitted.",
|
|
),
|
|
] = None
|
|
reload_user_config: Annotated[
|
|
bool | None,
|
|
Field(
|
|
alias="reloadUserConfig",
|
|
description="When true, hot-reload the updated user config into all loaded threads after writing.",
|
|
),
|
|
] = None
|
|
|
|
|
|
class ConfigWriteResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
file_path: Annotated[
|
|
AbsolutePathBuf,
|
|
Field(
|
|
alias="filePath",
|
|
description="Canonical path to the config file that was written.",
|
|
),
|
|
]
|
|
overridden_metadata: Annotated[
|
|
OverriddenMetadata | None, Field(alias="overriddenMetadata")
|
|
] = None
|
|
status: WriteStatus
|
|
version: str
|
|
|
|
|
|
class ErrorNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
error: TurnError
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
will_retry: Annotated[bool, Field(alias="willRetry")]
|
|
|
|
|
|
class ExternalAgentConfigMigrationItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
cwd: Annotated[
|
|
str | None,
|
|
Field(
|
|
description="Null or empty means home-scoped migration; non-empty means repo-scoped migration."
|
|
),
|
|
] = None
|
|
description: str
|
|
details: MigrationDetails | None = None
|
|
item_type: Annotated[ExternalAgentConfigMigrationItemType, Field(alias="itemType")]
|
|
|
|
|
|
class FileChangePatchUpdatedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
changes: list[FileUpdateChange]
|
|
item_id: Annotated[str, Field(alias="itemId")]
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class FunctionCallOutputBody(RootModel[str | list[FunctionCallOutputContentItem]]):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: str | list[FunctionCallOutputContentItem]
|
|
|
|
|
|
class GetAccountRateLimitsResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
rate_limits: Annotated[
|
|
RateLimitSnapshot,
|
|
Field(
|
|
alias="rateLimits",
|
|
description="Backward-compatible single-bucket view; mirrors the historical payload.",
|
|
),
|
|
]
|
|
rate_limits_by_limit_id: Annotated[
|
|
dict[str, Any] | None,
|
|
Field(
|
|
alias="rateLimitsByLimitId",
|
|
description="Multi-bucket view keyed by metered `limit_id` (for example, `codex`).",
|
|
),
|
|
] = None
|
|
|
|
|
|
class HookCompletedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
run: HookRunSummary
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str | None, Field(alias="turnId")] = None
|
|
|
|
|
|
class ItemCompletedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
completed_at_ms: Annotated[
|
|
int,
|
|
Field(
|
|
alias="completedAtMs",
|
|
description="Unix timestamp (in milliseconds) when this item lifecycle completed.",
|
|
),
|
|
]
|
|
item: ThreadItem
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class ItemStartedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
item: ThreadItem
|
|
started_at_ms: Annotated[
|
|
int,
|
|
Field(
|
|
alias="startedAtMs",
|
|
description="Unix timestamp (in milliseconds) when this item lifecycle started.",
|
|
),
|
|
]
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class ListMcpServerStatusResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
data: list[McpServerStatus]
|
|
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 ManagedPermissionProfile(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
file_system: Annotated[
|
|
PermissionProfileFileSystemPermissions, Field(alias="fileSystem")
|
|
]
|
|
network: PermissionProfileNetworkPermissions
|
|
type: Annotated[Literal["managed"], Field(title="ManagedPermissionProfileType")]
|
|
|
|
|
|
class PermissionProfile(
|
|
RootModel[
|
|
ManagedPermissionProfile | DisabledPermissionProfile | ExternalPermissionProfile
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: (
|
|
ManagedPermissionProfile | DisabledPermissionProfile | ExternalPermissionProfile
|
|
)
|
|
|
|
|
|
class PluginShareContext(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
creator_account_user_id: Annotated[
|
|
str | None, Field(alias="creatorAccountUserId")
|
|
] = None
|
|
creator_name: Annotated[str | None, Field(alias="creatorName")] = None
|
|
discoverability: PluginShareDiscoverability | None = None
|
|
remote_plugin_id: Annotated[str, Field(alias="remotePluginId")]
|
|
share_principals: Annotated[
|
|
list[PluginSharePrincipal] | None, Field(alias="sharePrincipals")
|
|
] = None
|
|
share_url: Annotated[str | None, Field(alias="shareUrl")] = None
|
|
|
|
|
|
class PluginShareSaveParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
discoverability: PluginShareDiscoverability | None = None
|
|
plugin_path: Annotated[AbsolutePathBuf, Field(alias="pluginPath")]
|
|
remote_plugin_id: Annotated[str | None, Field(alias="remotePluginId")] = None
|
|
share_targets: Annotated[
|
|
list[PluginShareTarget] | None, Field(alias="shareTargets")
|
|
] = None
|
|
|
|
|
|
class PluginSummary(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
auth_policy: Annotated[PluginAuthPolicy, Field(alias="authPolicy")]
|
|
availability: Annotated[
|
|
PluginAvailability | None,
|
|
Field(description="Availability state for installing and using the plugin."),
|
|
] = "AVAILABLE"
|
|
enabled: bool
|
|
id: str
|
|
install_policy: Annotated[PluginInstallPolicy, Field(alias="installPolicy")]
|
|
installed: bool
|
|
interface: PluginInterface | None = None
|
|
keywords: list[str] | None = []
|
|
name: str
|
|
share_context: Annotated[
|
|
PluginShareContext | None,
|
|
Field(
|
|
alias="shareContext",
|
|
description="Remote sharing context associated with this plugin when available.",
|
|
),
|
|
] = None
|
|
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",
|
|
populate_by_name=True,
|
|
)
|
|
file_system: Annotated[
|
|
AdditionalFileSystemPermissions | None, Field(alias="fileSystem")
|
|
] = None
|
|
network: AdditionalNetworkPermissions | None = None
|
|
|
|
|
|
class FunctionCallOutputResponseItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
call_id: str
|
|
output: FunctionCallOutputBody
|
|
type: Annotated[
|
|
Literal["function_call_output"],
|
|
Field(title="FunctionCallOutputResponseItemType"),
|
|
]
|
|
|
|
|
|
class CustomToolCallOutputResponseItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
call_id: str
|
|
name: str | None = None
|
|
output: FunctionCallOutputBody
|
|
type: Annotated[
|
|
Literal["custom_tool_call_output"],
|
|
Field(title="CustomToolCallOutputResponseItemType"),
|
|
]
|
|
|
|
|
|
class ResponseItem(
|
|
RootModel[
|
|
MessageResponseItem
|
|
| ReasoningResponseItem
|
|
| LocalShellCallResponseItem
|
|
| FunctionCallResponseItem
|
|
| ToolSearchCallResponseItem
|
|
| FunctionCallOutputResponseItem
|
|
| CustomToolCallResponseItem
|
|
| CustomToolCallOutputResponseItem
|
|
| ToolSearchOutputResponseItem
|
|
| WebSearchCallResponseItem
|
|
| ImageGenerationCallResponseItem
|
|
| CompactionResponseItem
|
|
| ContextCompactionResponseItem
|
|
| OtherResponseItem
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: (
|
|
MessageResponseItem
|
|
| ReasoningResponseItem
|
|
| LocalShellCallResponseItem
|
|
| FunctionCallResponseItem
|
|
| ToolSearchCallResponseItem
|
|
| FunctionCallOutputResponseItem
|
|
| CustomToolCallResponseItem
|
|
| CustomToolCallOutputResponseItem
|
|
| ToolSearchOutputResponseItem
|
|
| WebSearchCallResponseItem
|
|
| ImageGenerationCallResponseItem
|
|
| CompactionResponseItem
|
|
| ContextCompactionResponseItem
|
|
| OtherResponseItem
|
|
)
|
|
|
|
|
|
class ErrorServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[Literal["error"], Field(title="ErrorNotificationMethod")]
|
|
params: ErrorNotification
|
|
|
|
|
|
class ThreadGoalUpdatedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/goal/updated"],
|
|
Field(title="Thread/goal/updatedNotificationMethod"),
|
|
]
|
|
params: ThreadGoalUpdatedNotification
|
|
|
|
|
|
class ThreadTokenUsageUpdatedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/tokenUsage/updated"],
|
|
Field(title="Thread/tokenUsage/updatedNotificationMethod"),
|
|
]
|
|
params: ThreadTokenUsageUpdatedNotification
|
|
|
|
|
|
class HookCompletedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["hook/completed"], Field(title="Hook/completedNotificationMethod")
|
|
]
|
|
params: HookCompletedNotification
|
|
|
|
|
|
class TurnPlanUpdatedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["turn/plan/updated"], Field(title="Turn/plan/updatedNotificationMethod")
|
|
]
|
|
params: TurnPlanUpdatedNotification
|
|
|
|
|
|
class ItemStartedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["item/started"], Field(title="Item/startedNotificationMethod")
|
|
]
|
|
params: ItemStartedNotification
|
|
|
|
|
|
class ItemCompletedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["item/completed"], Field(title="Item/completedNotificationMethod")
|
|
]
|
|
params: ItemCompletedNotification
|
|
|
|
|
|
class ItemFileChangePatchUpdatedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["item/fileChange/patchUpdated"],
|
|
Field(title="Item/fileChange/patchUpdatedNotificationMethod"),
|
|
]
|
|
params: FileChangePatchUpdatedNotification
|
|
|
|
|
|
class AccountRateLimitsUpdatedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["account/rateLimits/updated"],
|
|
Field(title="Account/rateLimits/updatedNotificationMethod"),
|
|
]
|
|
params: AccountRateLimitsUpdatedNotification
|
|
|
|
|
|
class AppListUpdatedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["app/list/updated"], Field(title="App/list/updatedNotificationMethod")
|
|
]
|
|
params: AppListUpdatedNotification
|
|
|
|
|
|
class WindowsSandboxSetupCompletedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["windowsSandbox/setupCompleted"],
|
|
Field(title="WindowsSandbox/setupCompletedNotificationMethod"),
|
|
]
|
|
params: WindowsSandboxSetupCompletedNotification
|
|
|
|
|
|
class SubAgentSessionSource(BaseModel):
|
|
model_config = ConfigDict(
|
|
extra="forbid",
|
|
populate_by_name=True,
|
|
)
|
|
sub_agent: Annotated[SubAgentSource, Field(alias="subAgent")]
|
|
|
|
|
|
class SessionSource(
|
|
RootModel[SessionSourceValue | CustomSessionSource | SubAgentSessionSource]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: SessionSourceValue | CustomSessionSource | SubAgentSessionSource
|
|
|
|
|
|
class Turn(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
completed_at: Annotated[
|
|
int | None,
|
|
Field(
|
|
alias="completedAt",
|
|
description="Unix timestamp (in seconds) when the turn completed.",
|
|
),
|
|
] = None
|
|
duration_ms: Annotated[
|
|
int | None,
|
|
Field(
|
|
alias="durationMs",
|
|
description="Duration between turn start and completion in milliseconds, if known.",
|
|
),
|
|
] = None
|
|
error: Annotated[
|
|
TurnError | None,
|
|
Field(description="Only populated when the Turn's status is failed."),
|
|
] = None
|
|
id: str
|
|
items: Annotated[
|
|
list[ThreadItem],
|
|
Field(description="Thread items currently included in this turn payload."),
|
|
]
|
|
items_view: Annotated[
|
|
TurnItemsView | None,
|
|
Field(
|
|
alias="itemsView",
|
|
description="Describes how much of `items` has been loaded for this turn.",
|
|
),
|
|
] = "full"
|
|
started_at: Annotated[
|
|
int | None,
|
|
Field(
|
|
alias="startedAt",
|
|
description="Unix timestamp (in seconds) when the turn started.",
|
|
),
|
|
] = None
|
|
status: TurnStatus
|
|
|
|
|
|
class TurnCompletedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn: Turn
|
|
|
|
|
|
class TurnStartResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
turn: Turn
|
|
|
|
|
|
class TurnStartedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn: Turn
|
|
|
|
|
|
class PluginShareSaveRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["plugin/share/save"], Field(title="Plugin/share/saveRequestMethod")
|
|
]
|
|
params: PluginShareSaveParams
|
|
|
|
|
|
class ConfigBatchWriteRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["config/batchWrite"], Field(title="Config/batchWriteRequestMethod")
|
|
]
|
|
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
|
|
developer_instructions: str | None = None
|
|
forced_chatgpt_workspace_id: str | 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,
|
|
)
|
|
items: list[ExternalAgentConfigMigrationItem]
|
|
|
|
|
|
class ExternalAgentConfigImportParams(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
migration_items: Annotated[
|
|
list[ExternalAgentConfigMigrationItem], Field(alias="migrationItems")
|
|
]
|
|
|
|
|
|
class RequestPermissionsGuardianApprovalReviewAction(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
permissions: RequestPermissionProfile
|
|
reason: str | None = None
|
|
type: Annotated[
|
|
Literal["requestPermissions"],
|
|
Field(title="RequestPermissionsGuardianApprovalReviewActionType"),
|
|
]
|
|
|
|
|
|
class GuardianApprovalReviewAction(
|
|
RootModel[
|
|
CommandGuardianApprovalReviewAction
|
|
| ExecveGuardianApprovalReviewAction
|
|
| ApplyPatchGuardianApprovalReviewAction
|
|
| NetworkAccessGuardianApprovalReviewAction
|
|
| McpToolCallGuardianApprovalReviewAction
|
|
| RequestPermissionsGuardianApprovalReviewAction
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: (
|
|
CommandGuardianApprovalReviewAction
|
|
| ExecveGuardianApprovalReviewAction
|
|
| ApplyPatchGuardianApprovalReviewAction
|
|
| NetworkAccessGuardianApprovalReviewAction
|
|
| McpToolCallGuardianApprovalReviewAction
|
|
| RequestPermissionsGuardianApprovalReviewAction
|
|
)
|
|
|
|
|
|
class ItemGuardianApprovalReviewCompletedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
action: GuardianApprovalReviewAction
|
|
completed_at_ms: Annotated[
|
|
int,
|
|
Field(
|
|
alias="completedAtMs",
|
|
description="Unix timestamp (in milliseconds) when this review completed.",
|
|
),
|
|
]
|
|
decision_source: Annotated[AutoReviewDecisionSource, Field(alias="decisionSource")]
|
|
review: GuardianApprovalReview
|
|
review_id: Annotated[
|
|
str, Field(alias="reviewId", description="Stable identifier for this review.")
|
|
]
|
|
started_at_ms: Annotated[
|
|
int,
|
|
Field(
|
|
alias="startedAtMs",
|
|
description="Unix timestamp (in milliseconds) when this review started.",
|
|
),
|
|
]
|
|
target_item_id: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="targetItemId",
|
|
description="Identifier for the reviewed item or tool call when one exists.\n\nIn most cases, one review maps to one target item. The exceptions are - execve reviews, where a single command may contain multiple execve calls to review (only possible when using the shell_zsh_fork feature) - network policy reviews, where there is no target item\n\nA network call is triggered by a CommandExecution item, so having a target_item_id set to the CommandExecution item would be misleading because the review is about the network call, not the command execution. Therefore, target_item_id is set to None for network policy reviews.",
|
|
),
|
|
] = None
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class ItemGuardianApprovalReviewStartedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
action: GuardianApprovalReviewAction
|
|
review: GuardianApprovalReview
|
|
review_id: Annotated[
|
|
str, Field(alias="reviewId", description="Stable identifier for this review.")
|
|
]
|
|
started_at_ms: Annotated[
|
|
int,
|
|
Field(
|
|
alias="startedAtMs",
|
|
description="Unix timestamp (in milliseconds) when this review started.",
|
|
),
|
|
]
|
|
target_item_id: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="targetItemId",
|
|
description="Identifier for the reviewed item or tool call when one exists.\n\nIn most cases, one review maps to one target item. The exceptions are - execve reviews, where a single command may contain multiple execve calls to review (only possible when using the shell_zsh_fork feature) - network policy reviews, where there is no target item\n\nA network call is triggered by a CommandExecution item, so having a target_item_id set to the CommandExecution item would be misleading because the review is about the network call, not the command execution. Therefore, target_item_id is set to None for network policy reviews.",
|
|
),
|
|
] = None
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class PluginDetail(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
apps: list[AppSummary]
|
|
description: str | None = None
|
|
hooks: list[PluginHookSummary]
|
|
marketplace_name: Annotated[str, Field(alias="marketplaceName")]
|
|
marketplace_path: Annotated[
|
|
AbsolutePathBuf | None, Field(alias="marketplacePath")
|
|
] = None
|
|
mcp_servers: Annotated[list[str], Field(alias="mcpServers")]
|
|
skills: list[SkillSummary]
|
|
summary: PluginSummary
|
|
|
|
|
|
class PluginMarketplaceEntry(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
interface: MarketplaceInterface | None = None
|
|
name: str
|
|
path: Annotated[
|
|
AbsolutePathBuf | None,
|
|
Field(
|
|
description="Local marketplace file path when the marketplace is backed by a local file. Remote-only catalog marketplaces do not have a local path."
|
|
),
|
|
] = None
|
|
plugins: list[PluginSummary]
|
|
|
|
|
|
class PluginReadResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
plugin: PluginDetail
|
|
|
|
|
|
class PluginShareListItem(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
local_plugin_path: Annotated[
|
|
AbsolutePathBuf | None, Field(alias="localPluginPath")
|
|
] = None
|
|
plugin: PluginSummary
|
|
|
|
|
|
class PluginShareListResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
data: list[PluginShareListItem]
|
|
|
|
|
|
class RawResponseItemCompletedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
item: ResponseItem
|
|
thread_id: Annotated[str, Field(alias="threadId")]
|
|
turn_id: Annotated[str, Field(alias="turnId")]
|
|
|
|
|
|
class ReviewStartResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
review_thread_id: Annotated[
|
|
str,
|
|
Field(
|
|
alias="reviewThreadId",
|
|
description="Identifies the thread where the review runs.\n\nFor inline reviews, this is the original thread id. For detached reviews, this is the id of the new review thread.",
|
|
),
|
|
]
|
|
turn: Turn
|
|
|
|
|
|
class TurnStartedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["turn/started"], Field(title="Turn/startedNotificationMethod")
|
|
]
|
|
params: TurnStartedNotification
|
|
|
|
|
|
class TurnCompletedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["turn/completed"], Field(title="Turn/completedNotificationMethod")
|
|
]
|
|
params: TurnCompletedNotification
|
|
|
|
|
|
class ItemAutoApprovalReviewStartedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["item/autoApprovalReview/started"],
|
|
Field(title="Item/autoApprovalReview/startedNotificationMethod"),
|
|
]
|
|
params: ItemGuardianApprovalReviewStartedNotification
|
|
|
|
|
|
class ItemAutoApprovalReviewCompletedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["item/autoApprovalReview/completed"],
|
|
Field(title="Item/autoApprovalReview/completedNotificationMethod"),
|
|
]
|
|
params: ItemGuardianApprovalReviewCompletedNotification
|
|
|
|
|
|
class Thread(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
agent_nickname: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="agentNickname",
|
|
description="Optional random unique nickname assigned to an AgentControl-spawned sub-agent.",
|
|
),
|
|
] = None
|
|
agent_role: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="agentRole",
|
|
description="Optional role (agent_role) assigned to an AgentControl-spawned sub-agent.",
|
|
),
|
|
] = None
|
|
cli_version: Annotated[
|
|
str,
|
|
Field(
|
|
alias="cliVersion",
|
|
description="Version of the CLI that created the thread.",
|
|
),
|
|
]
|
|
created_at: Annotated[
|
|
int,
|
|
Field(
|
|
alias="createdAt",
|
|
description="Unix timestamp (in seconds) when the thread was created.",
|
|
),
|
|
]
|
|
cwd: Annotated[
|
|
AbsolutePathBuf, Field(description="Working directory captured for the thread.")
|
|
]
|
|
ephemeral: Annotated[
|
|
bool,
|
|
Field(
|
|
description="Whether the thread is ephemeral and should not be materialized on disk."
|
|
),
|
|
]
|
|
forked_from_id: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="forkedFromId",
|
|
description="Source thread id when this thread was created by forking another thread.",
|
|
),
|
|
] = None
|
|
git_info: Annotated[
|
|
GitInfo | None,
|
|
Field(
|
|
alias="gitInfo",
|
|
description="Optional Git metadata captured when the thread was created.",
|
|
),
|
|
] = None
|
|
id: str
|
|
model_provider: Annotated[
|
|
str,
|
|
Field(
|
|
alias="modelProvider",
|
|
description="Model provider used for this thread (for example, 'openai').",
|
|
),
|
|
]
|
|
name: Annotated[
|
|
str | None, Field(description="Optional user-facing thread title.")
|
|
] = None
|
|
path: Annotated[
|
|
str | None, Field(description="[UNSTABLE] Path to the thread on disk.")
|
|
] = None
|
|
preview: Annotated[
|
|
str,
|
|
Field(
|
|
description="Usually the first user message in the thread, if available."
|
|
),
|
|
]
|
|
session_id: Annotated[
|
|
str,
|
|
Field(
|
|
alias="sessionId",
|
|
description="Session id shared by threads that belong to the same session tree.",
|
|
),
|
|
]
|
|
source: Annotated[
|
|
SessionSource,
|
|
Field(
|
|
description="Origin of the thread (CLI, VSCode, codex exec, codex app-server, etc.)."
|
|
),
|
|
]
|
|
status: Annotated[
|
|
ThreadStatus, Field(description="Current runtime status for the thread.")
|
|
]
|
|
thread_source: Annotated[
|
|
ThreadSource | None,
|
|
Field(
|
|
alias="threadSource",
|
|
description="Optional analytics source classification for this thread.",
|
|
),
|
|
] = None
|
|
turns: Annotated[
|
|
list[Turn],
|
|
Field(
|
|
description="Only populated on `thread/resume`, `thread/rollback`, `thread/fork`, and `thread/read` (when `includeTurns` is true) responses. For all other responses and notifications returning a Thread, the turns field will be an empty list."
|
|
),
|
|
]
|
|
updated_at: Annotated[
|
|
int,
|
|
Field(
|
|
alias="updatedAt",
|
|
description="Unix timestamp (in seconds) when the thread was last updated.",
|
|
),
|
|
]
|
|
|
|
|
|
class ThreadForkResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
approval_policy: Annotated[AskForApproval, Field(alias="approvalPolicy")]
|
|
approvals_reviewer: Annotated[
|
|
ApprovalsReviewer,
|
|
Field(
|
|
alias="approvalsReviewer",
|
|
description="Reviewer currently used for approval requests on this thread.",
|
|
),
|
|
]
|
|
cwd: AbsolutePathBuf
|
|
instruction_sources: Annotated[
|
|
list[AbsolutePathBuf] | None,
|
|
Field(
|
|
alias="instructionSources",
|
|
description="Instruction source files currently loaded for this thread.",
|
|
),
|
|
] = []
|
|
model: str
|
|
model_provider: Annotated[str, Field(alias="modelProvider")]
|
|
reasoning_effort: Annotated[
|
|
ReasoningEffort | None, Field(alias="reasoningEffort")
|
|
] = None
|
|
sandbox: Annotated[
|
|
SandboxPolicy,
|
|
Field(
|
|
description="Legacy sandbox policy retained for compatibility. Experimental clients should prefer `permissionProfile` when they need exact runtime permissions."
|
|
),
|
|
]
|
|
service_tier: Annotated[str | None, Field(alias="serviceTier")] = None
|
|
thread: Thread
|
|
|
|
|
|
class ThreadListResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
backwards_cursor: Annotated[
|
|
str | None,
|
|
Field(
|
|
alias="backwardsCursor",
|
|
description="Opaque cursor to pass as `cursor` when reversing `sortDirection`. This is only populated when the page contains at least one thread. Use it with the opposite `sortDirection`; for timestamp sorts it anchors at the start of the page timestamp so same-second updates are not skipped.",
|
|
),
|
|
] = None
|
|
data: list[Thread]
|
|
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 ThreadMetadataUpdateResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread: Thread
|
|
|
|
|
|
class ThreadReadResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread: Thread
|
|
|
|
|
|
class ThreadResumeResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
approval_policy: Annotated[AskForApproval, Field(alias="approvalPolicy")]
|
|
approvals_reviewer: Annotated[
|
|
ApprovalsReviewer,
|
|
Field(
|
|
alias="approvalsReviewer",
|
|
description="Reviewer currently used for approval requests on this thread.",
|
|
),
|
|
]
|
|
cwd: AbsolutePathBuf
|
|
instruction_sources: Annotated[
|
|
list[AbsolutePathBuf] | None,
|
|
Field(
|
|
alias="instructionSources",
|
|
description="Instruction source files currently loaded for this thread.",
|
|
),
|
|
] = []
|
|
model: str
|
|
model_provider: Annotated[str, Field(alias="modelProvider")]
|
|
reasoning_effort: Annotated[
|
|
ReasoningEffort | None, Field(alias="reasoningEffort")
|
|
] = None
|
|
sandbox: Annotated[
|
|
SandboxPolicy,
|
|
Field(
|
|
description="Legacy sandbox policy retained for compatibility. Experimental clients should prefer `permissionProfile` when they need exact runtime permissions."
|
|
),
|
|
]
|
|
service_tier: Annotated[str | None, Field(alias="serviceTier")] = None
|
|
thread: Thread
|
|
|
|
|
|
class ThreadRollbackResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread: Annotated[
|
|
Thread,
|
|
Field(
|
|
description="The updated thread after applying the rollback, with `turns` populated.\n\nThe ThreadItems stored in each Turn are lossy since we explicitly do not persist all agent interactions, such as command executions. This is the same behavior as `thread/resume`."
|
|
),
|
|
]
|
|
|
|
|
|
class ThreadStartResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
approval_policy: Annotated[AskForApproval, Field(alias="approvalPolicy")]
|
|
approvals_reviewer: Annotated[
|
|
ApprovalsReviewer,
|
|
Field(
|
|
alias="approvalsReviewer",
|
|
description="Reviewer currently used for approval requests on this thread.",
|
|
),
|
|
]
|
|
cwd: AbsolutePathBuf
|
|
instruction_sources: Annotated[
|
|
list[AbsolutePathBuf] | None,
|
|
Field(
|
|
alias="instructionSources",
|
|
description="Instruction source files currently loaded for this thread.",
|
|
),
|
|
] = []
|
|
model: str
|
|
model_provider: Annotated[str, Field(alias="modelProvider")]
|
|
reasoning_effort: Annotated[
|
|
ReasoningEffort | None, Field(alias="reasoningEffort")
|
|
] = None
|
|
sandbox: Annotated[
|
|
SandboxPolicy,
|
|
Field(
|
|
description="Legacy sandbox policy retained for compatibility. Experimental clients should prefer `permissionProfile` when they need exact runtime permissions."
|
|
),
|
|
]
|
|
service_tier: Annotated[str | None, Field(alias="serviceTier")] = None
|
|
thread: Thread
|
|
|
|
|
|
class ThreadStartedNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread: Thread
|
|
|
|
|
|
class ThreadUnarchiveResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
thread: Thread
|
|
|
|
|
|
class ExternalAgentConfigImportRequest(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
id: RequestId
|
|
method: Annotated[
|
|
Literal["externalAgentConfig/import"],
|
|
Field(title="ExternalAgentConfig/importRequestMethod"),
|
|
]
|
|
params: ExternalAgentConfigImportParams
|
|
|
|
|
|
class ClientRequest(
|
|
RootModel[
|
|
InitializeRequest
|
|
| ThreadStartRequest
|
|
| ThreadResumeRequest
|
|
| ThreadForkRequest
|
|
| ThreadArchiveRequest
|
|
| ThreadUnsubscribeRequest
|
|
| ThreadNameSetRequest
|
|
| ThreadMetadataUpdateRequest
|
|
| ThreadUnarchiveRequest
|
|
| ThreadCompactStartRequest
|
|
| ThreadShellCommandRequest
|
|
| ThreadApproveGuardianDeniedActionRequest
|
|
| ThreadRollbackRequest
|
|
| ThreadListRequest
|
|
| ThreadLoadedListRequest
|
|
| ThreadReadRequest
|
|
| ThreadInjectItemsRequest
|
|
| SkillsListRequest
|
|
| HooksListRequest
|
|
| MarketplaceAddRequest
|
|
| MarketplaceRemoveRequest
|
|
| MarketplaceUpgradeRequest
|
|
| PluginListRequest
|
|
| PluginReadRequest
|
|
| PluginSkillReadRequest
|
|
| PluginShareSaveRequest
|
|
| PluginShareUpdateTargetsRequest
|
|
| PluginShareListRequest
|
|
| PluginShareDeleteRequest
|
|
| AppListRequest
|
|
| FsReadFileRequest
|
|
| FsWriteFileRequest
|
|
| FsCreateDirectoryRequest
|
|
| FsGetMetadataRequest
|
|
| FsReadDirectoryRequest
|
|
| FsRemoveRequest
|
|
| FsCopyRequest
|
|
| FsWatchRequest
|
|
| FsUnwatchRequest
|
|
| SkillsConfigWriteRequest
|
|
| PluginInstallRequest
|
|
| PluginUninstallRequest
|
|
| TurnStartRequest
|
|
| TurnSteerRequest
|
|
| TurnInterruptRequest
|
|
| ReviewStartRequest
|
|
| ModelListRequest
|
|
| ModelProviderCapabilitiesReadRequest
|
|
| ExperimentalFeatureListRequest
|
|
| ExperimentalFeatureEnablementSetRequest
|
|
| McpServerOauthLoginRequest
|
|
| ConfigMcpServerReloadRequest
|
|
| McpServerStatusListRequest
|
|
| McpServerResourceReadRequest
|
|
| McpServerToolCallRequest
|
|
| WindowsSandboxSetupStartRequest
|
|
| WindowsSandboxReadinessRequest
|
|
| AccountLoginStartRequest
|
|
| AccountLoginCancelRequest
|
|
| AccountLogoutRequest
|
|
| AccountRateLimitsReadRequest
|
|
| AccountSendAddCreditsNudgeEmailRequest
|
|
| FeedbackUploadRequest
|
|
| CommandExecRequest
|
|
| CommandExecWriteRequest
|
|
| CommandExecTerminateRequest
|
|
| CommandExecResizeRequest
|
|
| ConfigReadRequest
|
|
| ExternalAgentConfigDetectRequest
|
|
| ExternalAgentConfigImportRequest
|
|
| ConfigValueWriteRequest
|
|
| ConfigBatchWriteRequest
|
|
| ConfigRequirementsReadRequest
|
|
| AccountReadRequest
|
|
| FuzzyFileSearchRequest
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: Annotated[
|
|
InitializeRequest
|
|
| ThreadStartRequest
|
|
| ThreadResumeRequest
|
|
| ThreadForkRequest
|
|
| ThreadArchiveRequest
|
|
| ThreadUnsubscribeRequest
|
|
| ThreadNameSetRequest
|
|
| ThreadMetadataUpdateRequest
|
|
| ThreadUnarchiveRequest
|
|
| ThreadCompactStartRequest
|
|
| ThreadShellCommandRequest
|
|
| ThreadApproveGuardianDeniedActionRequest
|
|
| ThreadRollbackRequest
|
|
| ThreadListRequest
|
|
| ThreadLoadedListRequest
|
|
| ThreadReadRequest
|
|
| ThreadInjectItemsRequest
|
|
| SkillsListRequest
|
|
| HooksListRequest
|
|
| MarketplaceAddRequest
|
|
| MarketplaceRemoveRequest
|
|
| MarketplaceUpgradeRequest
|
|
| PluginListRequest
|
|
| PluginReadRequest
|
|
| PluginSkillReadRequest
|
|
| PluginShareSaveRequest
|
|
| PluginShareUpdateTargetsRequest
|
|
| PluginShareListRequest
|
|
| PluginShareDeleteRequest
|
|
| AppListRequest
|
|
| FsReadFileRequest
|
|
| FsWriteFileRequest
|
|
| FsCreateDirectoryRequest
|
|
| FsGetMetadataRequest
|
|
| FsReadDirectoryRequest
|
|
| FsRemoveRequest
|
|
| FsCopyRequest
|
|
| FsWatchRequest
|
|
| FsUnwatchRequest
|
|
| SkillsConfigWriteRequest
|
|
| PluginInstallRequest
|
|
| PluginUninstallRequest
|
|
| TurnStartRequest
|
|
| TurnSteerRequest
|
|
| TurnInterruptRequest
|
|
| ReviewStartRequest
|
|
| ModelListRequest
|
|
| ModelProviderCapabilitiesReadRequest
|
|
| ExperimentalFeatureListRequest
|
|
| ExperimentalFeatureEnablementSetRequest
|
|
| McpServerOauthLoginRequest
|
|
| ConfigMcpServerReloadRequest
|
|
| McpServerStatusListRequest
|
|
| McpServerResourceReadRequest
|
|
| McpServerToolCallRequest
|
|
| WindowsSandboxSetupStartRequest
|
|
| WindowsSandboxReadinessRequest
|
|
| AccountLoginStartRequest
|
|
| AccountLoginCancelRequest
|
|
| AccountLogoutRequest
|
|
| AccountRateLimitsReadRequest
|
|
| AccountSendAddCreditsNudgeEmailRequest
|
|
| FeedbackUploadRequest
|
|
| CommandExecRequest
|
|
| CommandExecWriteRequest
|
|
| CommandExecTerminateRequest
|
|
| CommandExecResizeRequest
|
|
| ConfigReadRequest
|
|
| ExternalAgentConfigDetectRequest
|
|
| ExternalAgentConfigImportRequest
|
|
| ConfigValueWriteRequest
|
|
| ConfigBatchWriteRequest
|
|
| ConfigRequirementsReadRequest
|
|
| AccountReadRequest
|
|
| FuzzyFileSearchRequest,
|
|
Field(
|
|
description="Request from the client to the server.", title="ClientRequest"
|
|
),
|
|
]
|
|
|
|
|
|
class PluginListResponse(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
featured_plugin_ids: Annotated[
|
|
list[str] | None, Field(alias="featuredPluginIds")
|
|
] = []
|
|
marketplace_load_errors: Annotated[
|
|
list[MarketplaceLoadErrorInfo] | None, Field(alias="marketplaceLoadErrors")
|
|
] = []
|
|
marketplaces: list[PluginMarketplaceEntry]
|
|
|
|
|
|
class ThreadStartedServerNotification(BaseModel):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
method: Annotated[
|
|
Literal["thread/started"], Field(title="Thread/startedNotificationMethod")
|
|
]
|
|
params: ThreadStartedNotification
|
|
|
|
|
|
class ServerNotification(
|
|
RootModel[
|
|
ErrorServerNotification
|
|
| ThreadStartedServerNotification
|
|
| ThreadStatusChangedServerNotification
|
|
| ThreadArchivedServerNotification
|
|
| ThreadUnarchivedServerNotification
|
|
| ThreadClosedServerNotification
|
|
| SkillsChangedServerNotification
|
|
| ThreadNameUpdatedServerNotification
|
|
| ThreadGoalUpdatedServerNotification
|
|
| ThreadGoalClearedServerNotification
|
|
| ThreadTokenUsageUpdatedServerNotification
|
|
| TurnStartedServerNotification
|
|
| HookStartedServerNotification
|
|
| TurnCompletedServerNotification
|
|
| HookCompletedServerNotification
|
|
| TurnDiffUpdatedServerNotification
|
|
| TurnPlanUpdatedServerNotification
|
|
| ItemStartedServerNotification
|
|
| ItemAutoApprovalReviewStartedServerNotification
|
|
| ItemAutoApprovalReviewCompletedServerNotification
|
|
| ItemCompletedServerNotification
|
|
| ItemAgentMessageDeltaServerNotification
|
|
| ItemPlanDeltaServerNotification
|
|
| CommandExecOutputDeltaServerNotification
|
|
| ProcessOutputDeltaServerNotification
|
|
| ProcessExitedServerNotification
|
|
| ItemCommandExecutionOutputDeltaServerNotification
|
|
| ItemCommandExecutionTerminalInteractionServerNotification
|
|
| ItemFileChangeOutputDeltaServerNotification
|
|
| ItemFileChangePatchUpdatedServerNotification
|
|
| ServerRequestResolvedServerNotification
|
|
| ItemMcpToolCallProgressServerNotification
|
|
| McpServerOauthLoginCompletedServerNotification
|
|
| McpServerStartupStatusUpdatedServerNotification
|
|
| AccountUpdatedServerNotification
|
|
| AccountRateLimitsUpdatedServerNotification
|
|
| AppListUpdatedServerNotification
|
|
| RemoteControlStatusChangedServerNotification
|
|
| ExternalAgentConfigImportCompletedServerNotification
|
|
| FsChangedServerNotification
|
|
| ItemReasoningSummaryTextDeltaServerNotification
|
|
| ItemReasoningSummaryPartAddedServerNotification
|
|
| ItemReasoningTextDeltaServerNotification
|
|
| ThreadCompactedServerNotification
|
|
| ModelReroutedServerNotification
|
|
| ModelVerificationServerNotification
|
|
| WarningServerNotification
|
|
| GuardianWarningServerNotification
|
|
| DeprecationNoticeServerNotification
|
|
| ConfigWarningServerNotification
|
|
| FuzzyFileSearchSessionUpdatedServerNotification
|
|
| FuzzyFileSearchSessionCompletedServerNotification
|
|
| ThreadRealtimeStartedServerNotification
|
|
| ThreadRealtimeItemAddedServerNotification
|
|
| ThreadRealtimeTranscriptDeltaServerNotification
|
|
| ThreadRealtimeTranscriptDoneServerNotification
|
|
| ThreadRealtimeOutputAudioDeltaServerNotification
|
|
| ThreadRealtimeSdpServerNotification
|
|
| ThreadRealtimeErrorServerNotification
|
|
| ThreadRealtimeClosedServerNotification
|
|
| WindowsWorldWritableWarningServerNotification
|
|
| WindowsSandboxSetupCompletedServerNotification
|
|
| AccountLoginCompletedServerNotification
|
|
]
|
|
):
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
)
|
|
root: Annotated[
|
|
ErrorServerNotification
|
|
| ThreadStartedServerNotification
|
|
| ThreadStatusChangedServerNotification
|
|
| ThreadArchivedServerNotification
|
|
| ThreadUnarchivedServerNotification
|
|
| ThreadClosedServerNotification
|
|
| SkillsChangedServerNotification
|
|
| ThreadNameUpdatedServerNotification
|
|
| ThreadGoalUpdatedServerNotification
|
|
| ThreadGoalClearedServerNotification
|
|
| ThreadTokenUsageUpdatedServerNotification
|
|
| TurnStartedServerNotification
|
|
| HookStartedServerNotification
|
|
| TurnCompletedServerNotification
|
|
| HookCompletedServerNotification
|
|
| TurnDiffUpdatedServerNotification
|
|
| TurnPlanUpdatedServerNotification
|
|
| ItemStartedServerNotification
|
|
| ItemAutoApprovalReviewStartedServerNotification
|
|
| ItemAutoApprovalReviewCompletedServerNotification
|
|
| ItemCompletedServerNotification
|
|
| ItemAgentMessageDeltaServerNotification
|
|
| ItemPlanDeltaServerNotification
|
|
| CommandExecOutputDeltaServerNotification
|
|
| ProcessOutputDeltaServerNotification
|
|
| ProcessExitedServerNotification
|
|
| ItemCommandExecutionOutputDeltaServerNotification
|
|
| ItemCommandExecutionTerminalInteractionServerNotification
|
|
| ItemFileChangeOutputDeltaServerNotification
|
|
| ItemFileChangePatchUpdatedServerNotification
|
|
| ServerRequestResolvedServerNotification
|
|
| ItemMcpToolCallProgressServerNotification
|
|
| McpServerOauthLoginCompletedServerNotification
|
|
| McpServerStartupStatusUpdatedServerNotification
|
|
| AccountUpdatedServerNotification
|
|
| AccountRateLimitsUpdatedServerNotification
|
|
| AppListUpdatedServerNotification
|
|
| RemoteControlStatusChangedServerNotification
|
|
| ExternalAgentConfigImportCompletedServerNotification
|
|
| FsChangedServerNotification
|
|
| ItemReasoningSummaryTextDeltaServerNotification
|
|
| ItemReasoningSummaryPartAddedServerNotification
|
|
| ItemReasoningTextDeltaServerNotification
|
|
| ThreadCompactedServerNotification
|
|
| ModelReroutedServerNotification
|
|
| ModelVerificationServerNotification
|
|
| WarningServerNotification
|
|
| GuardianWarningServerNotification
|
|
| DeprecationNoticeServerNotification
|
|
| ConfigWarningServerNotification
|
|
| FuzzyFileSearchSessionUpdatedServerNotification
|
|
| FuzzyFileSearchSessionCompletedServerNotification
|
|
| ThreadRealtimeStartedServerNotification
|
|
| ThreadRealtimeItemAddedServerNotification
|
|
| ThreadRealtimeTranscriptDeltaServerNotification
|
|
| ThreadRealtimeTranscriptDoneServerNotification
|
|
| ThreadRealtimeOutputAudioDeltaServerNotification
|
|
| ThreadRealtimeSdpServerNotification
|
|
| ThreadRealtimeErrorServerNotification
|
|
| ThreadRealtimeClosedServerNotification
|
|
| WindowsWorldWritableWarningServerNotification
|
|
| WindowsSandboxSetupCompletedServerNotification
|
|
| AccountLoginCompletedServerNotification,
|
|
Field(
|
|
description="Notification sent from the server to the client.",
|
|
title="ServerNotification",
|
|
),
|
|
]
|