mirror of
https://github.com/openai/codex.git
synced 2026-05-17 17:53:06 +00:00
## Why The Python SDK needs the same tight formatter/lint loop as the rest of the repo: a safe Ruff autofix pass, Ruff formatting, editor save behavior, and CI checks that catch drift. Without that loop, SDK changes can land with formatting or import ordering that differs from what reviewers and CI expect. ## What - Add Ruff configuration to `sdk/python/pyproject.toml`, excluding generated protocol code and notebooks from the normal lint/format pass. - Update `just fmt` so it still formats Rust and also runs Python SDK Ruff autofix and formatting. - Add Python SDK CI steps for `ruff check` and `ruff format --check` before pytest. - Recommend the Ruff VS Code extension and enable Python format/fix/organize-on-save so Cmd+S uses the same tooling. - Apply the resulting Ruff formatting to SDK Python files, examples, and the checked-in generated `v2_all.py` output emitted by the pinned generator. - Add a guard test for the `just fmt` recipe so it keeps working from both Rust and Python SDK working directories. ## Stack 1. #21891 `[1/8]` Pin Python SDK runtime dependency 2. #21893 `[2/8]` Generate Python SDK types from pinned runtime 3. #21895 `[3/8]` Run Python SDK tests in CI 4. #21896 `[4/8]` Define Python SDK public API surface 5. #21905 `[5/8]` Rename Python SDK package to `openai-codex` 6. #21910 `[6/8]` Add high-level Python SDK approval mode 7. #22014 `[7/8]` Add Python SDK app-server integration harness 8. This PR `[8/8]` Add Python SDK Ruff formatting ## Verification - Added `test_root_fmt_recipe_formats_rust_and_python_sdk` for the shared format recipe. - Ran `just fmt` after the recipe update. --------- Co-authored-by: Codex <noreply@openai.com>
8296 lines
239 KiB
Python
8296 lines
239 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",
|
|
),
|
|
]
|