mirror of
https://github.com/openai/codex.git
synced 2026-04-29 10:53:24 +03:00
## Why
`PermissionProfile` is becoming the canonical permissions abstraction,
but the old shape only carried optional filesystem and network fields.
It could describe allowed access, but not who is responsible for
enforcing it. That made `DangerFullAccess` and `ExternalSandbox` lossy
when profiles were exported, cached, or round-tripped through app-server
APIs.
The important model change is that active permissions are now a disjoint
union over the enforcement mode. Conceptually:
```rust
pub enum PermissionProfile {
Managed {
file_system: FileSystemSandboxPolicy,
network: NetworkSandboxPolicy,
},
Disabled,
External {
network: NetworkSandboxPolicy,
},
}
```
This distinction matters because `Disabled` means Codex should apply no
outer sandbox at all, while `External` means filesystem isolation is
owned by an outside caller. Those are not equivalent to a broad managed
sandbox. For example, macOS cannot nest Seatbelt inside Seatbelt, so an
inner sandbox may require the outer Codex layer to use no sandbox rather
than a permissive one.
## How Existing Modeling Maps
Legacy `SandboxPolicy` remains a boundary projection, but it now maps
into the higher-fidelity profile model:
- `ReadOnly` and `WorkspaceWrite` map to `PermissionProfile::Managed`
with restricted filesystem entries plus the corresponding network
policy.
- `DangerFullAccess` maps to `PermissionProfile::Disabled`, preserving
the “no outer sandbox” intent instead of treating it as a lax managed
sandbox.
- `ExternalSandbox { network_access }` maps to
`PermissionProfile::External { network }`, preserving external
filesystem enforcement while still carrying the active network policy.
- Split runtime policies that legacy `SandboxPolicy` cannot faithfully
express, such as managed unrestricted filesystem plus restricted
network, stay `Managed` instead of being collapsed into
`ExternalSandbox`.
- Per-command/session/turn grants remain partial overlays via
`AdditionalPermissionProfile`; full `PermissionProfile` is reserved for
complete active runtime permissions.
## What Changed
- Change active `PermissionProfile` into a tagged union: `managed`,
`disabled`, and `external`.
- Keep partial permission grants separate with
`AdditionalPermissionProfile` for command/session/turn overlays.
- Represent managed filesystem permissions as either `restricted`
entries or `unrestricted`; `glob_scan_max_depth` is non-zero when
present.
- Preserve old rollout compatibility by accepting the pre-tagged `{
network, file_system }` profile shape during deserialization.
- Preserve fidelity for important edge cases: `DangerFullAccess`
round-trips as `disabled`, `ExternalSandbox` round-trips as `external`,
and managed unrestricted filesystem + restricted network stays managed
instead of being mistaken for external enforcement.
- Preserve configured deny-read entries and bounded glob scan depth when
full profiles are projected back into runtime policies, including
unrestricted replacements that now become `:root = write` plus deny
entries.
- Regenerate the experimental app-server v2 JSON/TypeScript schema and
update the `command/exec` README example for the tagged
`permissionProfile` shape.
## Compatibility
Legacy `SandboxPolicy` remains available at config/API boundaries as the
compatibility projection. Existing rollout lines with the old
`PermissionProfile` shape continue to load. The app-server
`permissionProfile` field is experimental, so its v2 wire shape is
intentionally updated to match the higher-fidelity model.
## Verification
- `just write-app-server-schema`
- `cargo check --tests`
- `cargo test -p codex-protocol permission_profile`
- `cargo test -p codex-protocol
preserving_deny_entries_keeps_unrestricted_policy_enforceable`
- `cargo test -p codex-app-server-protocol
permission_profile_file_system_permissions`
- `cargo test -p codex-app-server-protocol serialize_client_response`
- `cargo test -p codex-core
session_configured_reports_permission_profile_for_external_sandbox`
- `just fix`
- `just fix -p codex-protocol`
- `just fix -p codex-app-server-protocol`
- `just fix -p codex-core`
- `just fix -p codex-app-server`
1970 lines
46 KiB
JSON
Generated
1970 lines
46 KiB
JSON
Generated
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"definitions": {
|
|
"AbsolutePathBuf": {
|
|
"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.",
|
|
"type": "string"
|
|
},
|
|
"AdditionalFileSystemPermissions": {
|
|
"properties": {
|
|
"entries": {
|
|
"items": {
|
|
"$ref": "#/definitions/FileSystemSandboxEntry"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"globScanMaxDepth": {
|
|
"format": "uint",
|
|
"minimum": 1.0,
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
},
|
|
"read": {
|
|
"description": "This will be removed in favor of `entries`.",
|
|
"items": {
|
|
"$ref": "#/definitions/AbsolutePathBuf"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"write": {
|
|
"description": "This will be removed in favor of `entries`.",
|
|
"items": {
|
|
"$ref": "#/definitions/AbsolutePathBuf"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"AdditionalNetworkPermissions": {
|
|
"properties": {
|
|
"enabled": {
|
|
"type": [
|
|
"boolean",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"AdditionalPermissionProfile": {
|
|
"properties": {
|
|
"fileSystem": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/AdditionalFileSystemPermissions"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/AdditionalNetworkPermissions"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Partial overlay used for per-command permission requests."
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"ApplyPatchApprovalParams": {
|
|
"properties": {
|
|
"callId": {
|
|
"description": "Use to correlate this with [codex_protocol::protocol::PatchApplyBeginEvent] and [codex_protocol::protocol::PatchApplyEndEvent].",
|
|
"type": "string"
|
|
},
|
|
"conversationId": {
|
|
"$ref": "#/definitions/ThreadId"
|
|
},
|
|
"fileChanges": {
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/FileChange"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"grantRoot": {
|
|
"description": "When set, the agent is asking the user to allow writes under this root for the remainder of the session (unclear if this is honored today).",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"reason": {
|
|
"description": "Optional explanatory reason (e.g. request for extra write access).",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"callId",
|
|
"conversationId",
|
|
"fileChanges"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ChatgptAuthTokensRefreshParams": {
|
|
"properties": {
|
|
"previousAccountId": {
|
|
"description": "Workspace/account identifier that Codex was previously using.\n\nClients that manage multiple accounts/workspaces can use this as a hint to refresh the token for the correct workspace.\n\nThis may be `null` when the prior auth state did not include a workspace identifier (`chatgpt_account_id`).",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"reason": {
|
|
"$ref": "#/definitions/ChatgptAuthTokensRefreshReason"
|
|
}
|
|
},
|
|
"required": [
|
|
"reason"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ChatgptAuthTokensRefreshReason": {
|
|
"oneOf": [
|
|
{
|
|
"description": "Codex attempted a backend request and received `401 Unauthorized`.",
|
|
"enum": [
|
|
"unauthorized"
|
|
],
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"CommandAction": {
|
|
"oneOf": [
|
|
{
|
|
"properties": {
|
|
"command": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"$ref": "#/definitions/AbsolutePathBuf"
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"read"
|
|
],
|
|
"title": "ReadCommandActionType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"command",
|
|
"name",
|
|
"path",
|
|
"type"
|
|
],
|
|
"title": "ReadCommandAction",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"command": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"listFiles"
|
|
],
|
|
"title": "ListFilesCommandActionType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"command",
|
|
"type"
|
|
],
|
|
"title": "ListFilesCommandAction",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"command": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"query": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"search"
|
|
],
|
|
"title": "SearchCommandActionType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"command",
|
|
"type"
|
|
],
|
|
"title": "SearchCommandAction",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"command": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"unknown"
|
|
],
|
|
"title": "UnknownCommandActionType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"command",
|
|
"type"
|
|
],
|
|
"title": "UnknownCommandAction",
|
|
"type": "object"
|
|
}
|
|
]
|
|
},
|
|
"CommandExecutionApprovalDecision": {
|
|
"oneOf": [
|
|
{
|
|
"description": "User approved the command.",
|
|
"enum": [
|
|
"accept"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "User approved the command and future prompts in the same session-scoped approval cache should run without prompting.",
|
|
"enum": [
|
|
"acceptForSession"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": false,
|
|
"description": "User approved the command, and wants to apply the proposed execpolicy amendment so future matching commands can run without prompting.",
|
|
"properties": {
|
|
"acceptWithExecpolicyAmendment": {
|
|
"properties": {
|
|
"execpolicy_amendment": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"execpolicy_amendment"
|
|
],
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"acceptWithExecpolicyAmendment"
|
|
],
|
|
"title": "AcceptWithExecpolicyAmendmentCommandExecutionApprovalDecision",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"additionalProperties": false,
|
|
"description": "User chose a persistent network policy rule (allow/deny) for this host.",
|
|
"properties": {
|
|
"applyNetworkPolicyAmendment": {
|
|
"properties": {
|
|
"network_policy_amendment": {
|
|
"$ref": "#/definitions/NetworkPolicyAmendment"
|
|
}
|
|
},
|
|
"required": [
|
|
"network_policy_amendment"
|
|
],
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"applyNetworkPolicyAmendment"
|
|
],
|
|
"title": "ApplyNetworkPolicyAmendmentCommandExecutionApprovalDecision",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "User denied the command. The agent will continue the turn.",
|
|
"enum": [
|
|
"decline"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "User denied the command. The turn will also be immediately interrupted.",
|
|
"enum": [
|
|
"cancel"
|
|
],
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"CommandExecutionRequestApprovalParams": {
|
|
"properties": {
|
|
"approvalId": {
|
|
"description": "Unique identifier for this specific approval callback.\n\nFor regular shell/unified_exec approvals, this is null.\n\nFor zsh-exec-bridge subcommand approvals, multiple callbacks can belong to one parent `itemId`, so `approvalId` is a distinct opaque callback id (a UUID) used to disambiguate routing.",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"command": {
|
|
"description": "The command to be executed.",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"commandActions": {
|
|
"description": "Best-effort parsed command actions for friendly display.",
|
|
"items": {
|
|
"$ref": "#/definitions/CommandAction"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"cwd": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/AbsolutePathBuf"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The command's working directory."
|
|
},
|
|
"itemId": {
|
|
"type": "string"
|
|
},
|
|
"networkApprovalContext": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/NetworkApprovalContext"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional context for a managed-network approval prompt."
|
|
},
|
|
"proposedExecpolicyAmendment": {
|
|
"description": "Optional proposed execpolicy amendment to allow similar commands without prompting.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"proposedNetworkPolicyAmendments": {
|
|
"description": "Optional proposed network policy amendments (allow/deny host) for future requests.",
|
|
"items": {
|
|
"$ref": "#/definitions/NetworkPolicyAmendment"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"reason": {
|
|
"description": "Optional explanatory reason (e.g. request for network access).",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"threadId": {
|
|
"type": "string"
|
|
},
|
|
"turnId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"itemId",
|
|
"threadId",
|
|
"turnId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"DynamicToolCallParams": {
|
|
"properties": {
|
|
"arguments": true,
|
|
"callId": {
|
|
"type": "string"
|
|
},
|
|
"namespace": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"threadId": {
|
|
"type": "string"
|
|
},
|
|
"tool": {
|
|
"type": "string"
|
|
},
|
|
"turnId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"arguments",
|
|
"callId",
|
|
"threadId",
|
|
"tool",
|
|
"turnId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ExecCommandApprovalParams": {
|
|
"properties": {
|
|
"approvalId": {
|
|
"description": "Identifier for this specific approval callback.",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"callId": {
|
|
"description": "Use to correlate this with [codex_protocol::protocol::ExecCommandBeginEvent] and [codex_protocol::protocol::ExecCommandEndEvent].",
|
|
"type": "string"
|
|
},
|
|
"command": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"conversationId": {
|
|
"$ref": "#/definitions/ThreadId"
|
|
},
|
|
"cwd": {
|
|
"type": "string"
|
|
},
|
|
"parsedCmd": {
|
|
"items": {
|
|
"$ref": "#/definitions/ParsedCommand"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"reason": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"callId",
|
|
"command",
|
|
"conversationId",
|
|
"cwd",
|
|
"parsedCmd"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"FileChange": {
|
|
"oneOf": [
|
|
{
|
|
"properties": {
|
|
"content": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"add"
|
|
],
|
|
"title": "AddFileChangeType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"content",
|
|
"type"
|
|
],
|
|
"title": "AddFileChange",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"content": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"delete"
|
|
],
|
|
"title": "DeleteFileChangeType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"content",
|
|
"type"
|
|
],
|
|
"title": "DeleteFileChange",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"move_path": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"update"
|
|
],
|
|
"title": "UpdateFileChangeType",
|
|
"type": "string"
|
|
},
|
|
"unified_diff": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"unified_diff"
|
|
],
|
|
"title": "UpdateFileChange",
|
|
"type": "object"
|
|
}
|
|
]
|
|
},
|
|
"FileChangeRequestApprovalParams": {
|
|
"properties": {
|
|
"grantRoot": {
|
|
"description": "[UNSTABLE] When set, the agent is asking the user to allow writes under this root for the remainder of the session (unclear if this is honored today).",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"itemId": {
|
|
"type": "string"
|
|
},
|
|
"reason": {
|
|
"description": "Optional explanatory reason (e.g. request for extra write access).",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"threadId": {
|
|
"type": "string"
|
|
},
|
|
"turnId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"itemId",
|
|
"threadId",
|
|
"turnId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"FileSystemAccessMode": {
|
|
"enum": [
|
|
"read",
|
|
"write",
|
|
"none"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"FileSystemPath": {
|
|
"oneOf": [
|
|
{
|
|
"properties": {
|
|
"path": {
|
|
"$ref": "#/definitions/AbsolutePathBuf"
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"path"
|
|
],
|
|
"title": "PathFileSystemPathType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"type"
|
|
],
|
|
"title": "PathFileSystemPath",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"pattern": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"glob_pattern"
|
|
],
|
|
"title": "GlobPatternFileSystemPathType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"pattern",
|
|
"type"
|
|
],
|
|
"title": "GlobPatternFileSystemPath",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"special"
|
|
],
|
|
"title": "SpecialFileSystemPathType",
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"$ref": "#/definitions/FileSystemSpecialPath"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"value"
|
|
],
|
|
"title": "SpecialFileSystemPath",
|
|
"type": "object"
|
|
}
|
|
]
|
|
},
|
|
"FileSystemSandboxEntry": {
|
|
"properties": {
|
|
"access": {
|
|
"$ref": "#/definitions/FileSystemAccessMode"
|
|
},
|
|
"path": {
|
|
"$ref": "#/definitions/FileSystemPath"
|
|
}
|
|
},
|
|
"required": [
|
|
"access",
|
|
"path"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"FileSystemSpecialPath": {
|
|
"oneOf": [
|
|
{
|
|
"properties": {
|
|
"kind": {
|
|
"enum": [
|
|
"root"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"kind"
|
|
],
|
|
"title": "RootFileSystemSpecialPath",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"kind": {
|
|
"enum": [
|
|
"minimal"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"kind"
|
|
],
|
|
"title": "MinimalFileSystemSpecialPath",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"kind": {
|
|
"enum": [
|
|
"current_working_directory"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"kind"
|
|
],
|
|
"title": "CurrentWorkingDirectoryFileSystemSpecialPath",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"kind": {
|
|
"enum": [
|
|
"project_roots"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"subpath": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"kind"
|
|
],
|
|
"title": "KindFileSystemSpecialPath",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"kind": {
|
|
"enum": [
|
|
"tmpdir"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"kind"
|
|
],
|
|
"title": "TmpdirFileSystemSpecialPath",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"kind": {
|
|
"enum": [
|
|
"slash_tmp"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"kind"
|
|
],
|
|
"title": "SlashTmpFileSystemSpecialPath",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"kind": {
|
|
"enum": [
|
|
"unknown"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"subpath": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"kind",
|
|
"path"
|
|
],
|
|
"type": "object"
|
|
}
|
|
]
|
|
},
|
|
"McpElicitationArrayType": {
|
|
"enum": [
|
|
"array"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"McpElicitationBooleanSchema": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"default": {
|
|
"type": [
|
|
"boolean",
|
|
"null"
|
|
]
|
|
},
|
|
"description": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"title": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"type": {
|
|
"$ref": "#/definitions/McpElicitationBooleanType"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"McpElicitationBooleanType": {
|
|
"enum": [
|
|
"boolean"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"McpElicitationConstOption": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"const": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"const",
|
|
"title"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"McpElicitationEnumSchema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/McpElicitationSingleSelectEnumSchema"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/McpElicitationMultiSelectEnumSchema"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/McpElicitationLegacyTitledEnumSchema"
|
|
}
|
|
]
|
|
},
|
|
"McpElicitationLegacyTitledEnumSchema": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"default": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"description": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"enum": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"enumNames": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"title": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"type": {
|
|
"$ref": "#/definitions/McpElicitationStringType"
|
|
}
|
|
},
|
|
"required": [
|
|
"enum",
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"McpElicitationMultiSelectEnumSchema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/McpElicitationUntitledMultiSelectEnumSchema"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/McpElicitationTitledMultiSelectEnumSchema"
|
|
}
|
|
]
|
|
},
|
|
"McpElicitationNumberSchema": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"default": {
|
|
"format": "double",
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
},
|
|
"description": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"maximum": {
|
|
"format": "double",
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
},
|
|
"minimum": {
|
|
"format": "double",
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
},
|
|
"title": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"type": {
|
|
"$ref": "#/definitions/McpElicitationNumberType"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"McpElicitationNumberType": {
|
|
"enum": [
|
|
"number",
|
|
"integer"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"McpElicitationObjectType": {
|
|
"enum": [
|
|
"object"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"McpElicitationPrimitiveSchema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/McpElicitationEnumSchema"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/McpElicitationStringSchema"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/McpElicitationNumberSchema"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/McpElicitationBooleanSchema"
|
|
}
|
|
]
|
|
},
|
|
"McpElicitationSchema": {
|
|
"additionalProperties": false,
|
|
"description": "Typed form schema for MCP `elicitation/create` requests.\n\nThis matches the `requestedSchema` shape from the MCP 2025-11-25 `ElicitRequestFormParams` schema.",
|
|
"properties": {
|
|
"$schema": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"properties": {
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/McpElicitationPrimitiveSchema"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"required": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"type": {
|
|
"$ref": "#/definitions/McpElicitationObjectType"
|
|
}
|
|
},
|
|
"required": [
|
|
"properties",
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"McpElicitationSingleSelectEnumSchema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/McpElicitationUntitledSingleSelectEnumSchema"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/McpElicitationTitledSingleSelectEnumSchema"
|
|
}
|
|
]
|
|
},
|
|
"McpElicitationStringFormat": {
|
|
"enum": [
|
|
"email",
|
|
"uri",
|
|
"date",
|
|
"date-time"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"McpElicitationStringSchema": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"default": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"description": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"format": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/McpElicitationStringFormat"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"maxLength": {
|
|
"format": "uint32",
|
|
"minimum": 0.0,
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
},
|
|
"minLength": {
|
|
"format": "uint32",
|
|
"minimum": 0.0,
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
},
|
|
"title": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"type": {
|
|
"$ref": "#/definitions/McpElicitationStringType"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"McpElicitationStringType": {
|
|
"enum": [
|
|
"string"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"McpElicitationTitledEnumItems": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"anyOf": {
|
|
"items": {
|
|
"$ref": "#/definitions/McpElicitationConstOption"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"anyOf"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"McpElicitationTitledMultiSelectEnumSchema": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"default": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"description": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"items": {
|
|
"$ref": "#/definitions/McpElicitationTitledEnumItems"
|
|
},
|
|
"maxItems": {
|
|
"format": "uint64",
|
|
"minimum": 0.0,
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
},
|
|
"minItems": {
|
|
"format": "uint64",
|
|
"minimum": 0.0,
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
},
|
|
"title": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"type": {
|
|
"$ref": "#/definitions/McpElicitationArrayType"
|
|
}
|
|
},
|
|
"required": [
|
|
"items",
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"McpElicitationTitledSingleSelectEnumSchema": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"default": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"description": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"oneOf": {
|
|
"items": {
|
|
"$ref": "#/definitions/McpElicitationConstOption"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"title": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"type": {
|
|
"$ref": "#/definitions/McpElicitationStringType"
|
|
}
|
|
},
|
|
"required": [
|
|
"oneOf",
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"McpElicitationUntitledEnumItems": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"enum": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"type": {
|
|
"$ref": "#/definitions/McpElicitationStringType"
|
|
}
|
|
},
|
|
"required": [
|
|
"enum",
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"McpElicitationUntitledMultiSelectEnumSchema": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"default": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"description": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"items": {
|
|
"$ref": "#/definitions/McpElicitationUntitledEnumItems"
|
|
},
|
|
"maxItems": {
|
|
"format": "uint64",
|
|
"minimum": 0.0,
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
},
|
|
"minItems": {
|
|
"format": "uint64",
|
|
"minimum": 0.0,
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
},
|
|
"title": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"type": {
|
|
"$ref": "#/definitions/McpElicitationArrayType"
|
|
}
|
|
},
|
|
"required": [
|
|
"items",
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"McpElicitationUntitledSingleSelectEnumSchema": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"default": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"description": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"enum": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"title": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"type": {
|
|
"$ref": "#/definitions/McpElicitationStringType"
|
|
}
|
|
},
|
|
"required": [
|
|
"enum",
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"McpServerElicitationRequestParams": {
|
|
"oneOf": [
|
|
{
|
|
"properties": {
|
|
"_meta": true,
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"mode": {
|
|
"enum": [
|
|
"form"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"requestedSchema": {
|
|
"$ref": "#/definitions/McpElicitationSchema"
|
|
}
|
|
},
|
|
"required": [
|
|
"message",
|
|
"mode",
|
|
"requestedSchema"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"_meta": true,
|
|
"elicitationId": {
|
|
"type": "string"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"mode": {
|
|
"enum": [
|
|
"url"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"elicitationId",
|
|
"message",
|
|
"mode",
|
|
"url"
|
|
],
|
|
"type": "object"
|
|
}
|
|
],
|
|
"properties": {
|
|
"serverName": {
|
|
"type": "string"
|
|
},
|
|
"threadId": {
|
|
"type": "string"
|
|
},
|
|
"turnId": {
|
|
"description": "Active Codex turn when this elicitation was observed, if app-server could correlate one.\n\nThis is nullable because MCP models elicitation as a standalone server-to-client request identified by the MCP server request id. It may be triggered during a turn, but turn context is app-server correlation rather than part of the protocol identity of the elicitation itself.",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"serverName",
|
|
"threadId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"NetworkApprovalContext": {
|
|
"properties": {
|
|
"host": {
|
|
"type": "string"
|
|
},
|
|
"protocol": {
|
|
"$ref": "#/definitions/NetworkApprovalProtocol"
|
|
}
|
|
},
|
|
"required": [
|
|
"host",
|
|
"protocol"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"NetworkApprovalProtocol": {
|
|
"enum": [
|
|
"http",
|
|
"https",
|
|
"socks5Tcp",
|
|
"socks5Udp"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"NetworkPolicyAmendment": {
|
|
"properties": {
|
|
"action": {
|
|
"$ref": "#/definitions/NetworkPolicyRuleAction"
|
|
},
|
|
"host": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"action",
|
|
"host"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"NetworkPolicyRuleAction": {
|
|
"enum": [
|
|
"allow",
|
|
"deny"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"ParsedCommand": {
|
|
"oneOf": [
|
|
{
|
|
"properties": {
|
|
"cmd": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"description": "(Best effort) Path to the file being read by the command. When possible, this is an absolute path, though when relative, it should be resolved against the `cwd`` that will be used to run the command to derive the absolute path.",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"read"
|
|
],
|
|
"title": "ReadParsedCommandType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"cmd",
|
|
"name",
|
|
"path",
|
|
"type"
|
|
],
|
|
"title": "ReadParsedCommand",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"cmd": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"list_files"
|
|
],
|
|
"title": "ListFilesParsedCommandType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"cmd",
|
|
"type"
|
|
],
|
|
"title": "ListFilesParsedCommand",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"cmd": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"query": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"search"
|
|
],
|
|
"title": "SearchParsedCommandType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"cmd",
|
|
"type"
|
|
],
|
|
"title": "SearchParsedCommand",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"cmd": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"unknown"
|
|
],
|
|
"title": "UnknownParsedCommandType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"cmd",
|
|
"type"
|
|
],
|
|
"title": "UnknownParsedCommand",
|
|
"type": "object"
|
|
}
|
|
]
|
|
},
|
|
"PermissionsRequestApprovalParams": {
|
|
"properties": {
|
|
"cwd": {
|
|
"$ref": "#/definitions/AbsolutePathBuf"
|
|
},
|
|
"itemId": {
|
|
"type": "string"
|
|
},
|
|
"permissions": {
|
|
"$ref": "#/definitions/RequestPermissionProfile"
|
|
},
|
|
"reason": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"threadId": {
|
|
"type": "string"
|
|
},
|
|
"turnId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"cwd",
|
|
"itemId",
|
|
"permissions",
|
|
"threadId",
|
|
"turnId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"RequestId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"format": "int64",
|
|
"type": "integer"
|
|
}
|
|
]
|
|
},
|
|
"RequestPermissionProfile": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"fileSystem": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/AdditionalFileSystemPermissions"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/AdditionalNetworkPermissions"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"ThreadId": {
|
|
"type": "string"
|
|
},
|
|
"ToolRequestUserInputOption": {
|
|
"description": "EXPERIMENTAL. Defines a single selectable option for request_user_input.",
|
|
"properties": {
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"description",
|
|
"label"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ToolRequestUserInputParams": {
|
|
"description": "EXPERIMENTAL. Params sent with a request_user_input event.",
|
|
"properties": {
|
|
"itemId": {
|
|
"type": "string"
|
|
},
|
|
"questions": {
|
|
"items": {
|
|
"$ref": "#/definitions/ToolRequestUserInputQuestion"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"threadId": {
|
|
"type": "string"
|
|
},
|
|
"turnId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"itemId",
|
|
"questions",
|
|
"threadId",
|
|
"turnId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ToolRequestUserInputQuestion": {
|
|
"description": "EXPERIMENTAL. Represents one request_user_input question and its required options.",
|
|
"properties": {
|
|
"header": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"isOther": {
|
|
"default": false,
|
|
"type": "boolean"
|
|
},
|
|
"isSecret": {
|
|
"default": false,
|
|
"type": "boolean"
|
|
},
|
|
"options": {
|
|
"items": {
|
|
"$ref": "#/definitions/ToolRequestUserInputOption"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"question": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"header",
|
|
"id",
|
|
"question"
|
|
],
|
|
"type": "object"
|
|
}
|
|
},
|
|
"description": "Request initiated from the server and sent to the client.",
|
|
"oneOf": [
|
|
{
|
|
"description": "NEW APIs Sent when approval is requested for a specific command execution. This request is used for Turns started via turn/start.",
|
|
"properties": {
|
|
"id": {
|
|
"$ref": "#/definitions/RequestId"
|
|
},
|
|
"method": {
|
|
"enum": [
|
|
"item/commandExecution/requestApproval"
|
|
],
|
|
"title": "Item/commandExecution/requestApprovalRequestMethod",
|
|
"type": "string"
|
|
},
|
|
"params": {
|
|
"$ref": "#/definitions/CommandExecutionRequestApprovalParams"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"method",
|
|
"params"
|
|
],
|
|
"title": "Item/commandExecution/requestApprovalRequest",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Sent when approval is requested for a specific file change. This request is used for Turns started via turn/start.",
|
|
"properties": {
|
|
"id": {
|
|
"$ref": "#/definitions/RequestId"
|
|
},
|
|
"method": {
|
|
"enum": [
|
|
"item/fileChange/requestApproval"
|
|
],
|
|
"title": "Item/fileChange/requestApprovalRequestMethod",
|
|
"type": "string"
|
|
},
|
|
"params": {
|
|
"$ref": "#/definitions/FileChangeRequestApprovalParams"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"method",
|
|
"params"
|
|
],
|
|
"title": "Item/fileChange/requestApprovalRequest",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "EXPERIMENTAL - Request input from the user for a tool call.",
|
|
"properties": {
|
|
"id": {
|
|
"$ref": "#/definitions/RequestId"
|
|
},
|
|
"method": {
|
|
"enum": [
|
|
"item/tool/requestUserInput"
|
|
],
|
|
"title": "Item/tool/requestUserInputRequestMethod",
|
|
"type": "string"
|
|
},
|
|
"params": {
|
|
"$ref": "#/definitions/ToolRequestUserInputParams"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"method",
|
|
"params"
|
|
],
|
|
"title": "Item/tool/requestUserInputRequest",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Request input for an MCP server elicitation.",
|
|
"properties": {
|
|
"id": {
|
|
"$ref": "#/definitions/RequestId"
|
|
},
|
|
"method": {
|
|
"enum": [
|
|
"mcpServer/elicitation/request"
|
|
],
|
|
"title": "McpServer/elicitation/requestRequestMethod",
|
|
"type": "string"
|
|
},
|
|
"params": {
|
|
"$ref": "#/definitions/McpServerElicitationRequestParams"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"method",
|
|
"params"
|
|
],
|
|
"title": "McpServer/elicitation/requestRequest",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Request approval for additional permissions from the user.",
|
|
"properties": {
|
|
"id": {
|
|
"$ref": "#/definitions/RequestId"
|
|
},
|
|
"method": {
|
|
"enum": [
|
|
"item/permissions/requestApproval"
|
|
],
|
|
"title": "Item/permissions/requestApprovalRequestMethod",
|
|
"type": "string"
|
|
},
|
|
"params": {
|
|
"$ref": "#/definitions/PermissionsRequestApprovalParams"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"method",
|
|
"params"
|
|
],
|
|
"title": "Item/permissions/requestApprovalRequest",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Execute a dynamic tool call on the client.",
|
|
"properties": {
|
|
"id": {
|
|
"$ref": "#/definitions/RequestId"
|
|
},
|
|
"method": {
|
|
"enum": [
|
|
"item/tool/call"
|
|
],
|
|
"title": "Item/tool/callRequestMethod",
|
|
"type": "string"
|
|
},
|
|
"params": {
|
|
"$ref": "#/definitions/DynamicToolCallParams"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"method",
|
|
"params"
|
|
],
|
|
"title": "Item/tool/callRequest",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"id": {
|
|
"$ref": "#/definitions/RequestId"
|
|
},
|
|
"method": {
|
|
"enum": [
|
|
"account/chatgptAuthTokens/refresh"
|
|
],
|
|
"title": "Account/chatgptAuthTokens/refreshRequestMethod",
|
|
"type": "string"
|
|
},
|
|
"params": {
|
|
"$ref": "#/definitions/ChatgptAuthTokensRefreshParams"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"method",
|
|
"params"
|
|
],
|
|
"title": "Account/chatgptAuthTokens/refreshRequest",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "DEPRECATED APIs below Request to approve a patch. This request is used for Turns started via the legacy APIs (i.e. SendUserTurn, SendUserMessage).",
|
|
"properties": {
|
|
"id": {
|
|
"$ref": "#/definitions/RequestId"
|
|
},
|
|
"method": {
|
|
"enum": [
|
|
"applyPatchApproval"
|
|
],
|
|
"title": "ApplyPatchApprovalRequestMethod",
|
|
"type": "string"
|
|
},
|
|
"params": {
|
|
"$ref": "#/definitions/ApplyPatchApprovalParams"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"method",
|
|
"params"
|
|
],
|
|
"title": "ApplyPatchApprovalRequest",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Request to exec a command. This request is used for Turns started via the legacy APIs (i.e. SendUserTurn, SendUserMessage).",
|
|
"properties": {
|
|
"id": {
|
|
"$ref": "#/definitions/RequestId"
|
|
},
|
|
"method": {
|
|
"enum": [
|
|
"execCommandApproval"
|
|
],
|
|
"title": "ExecCommandApprovalRequestMethod",
|
|
"type": "string"
|
|
},
|
|
"params": {
|
|
"$ref": "#/definitions/ExecCommandApprovalParams"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"method",
|
|
"params"
|
|
],
|
|
"title": "ExecCommandApprovalRequest",
|
|
"type": "object"
|
|
}
|
|
],
|
|
"title": "ServerRequest"
|
|
} |