pub enum ServerRequest {
ItemCommandExecutionRequestApproval {
id: RequestId,
params: CommandExecutionRequestApprovalParams,
},
ItemFileChangeRequestApproval {
id: RequestId,
params: FileChangeRequestApprovalParams,
},
ItemToolRequestUserInput {
id: RequestId,
params: ToolRequestUserInputParams,
},
McpServerElicitationRequest {
id: RequestId,
params: McpServerElicitationRequestParams,
},
ItemPermissionsRequestApproval {
id: RequestId,
params: PermissionsRequestApprovalParams,
},
ItemToolCall {
id: RequestId,
params: DynamicToolCallParams,
},
AccountChatgptAuthTokensRefresh {
id: RequestId,
params: ChatgptAuthTokensRefreshParams,
},
AttestationGenerate {
id: RequestId,
params: AttestationGenerateParams,
},
CurrentTimeRead {
id: RequestId,
params: CurrentTimeReadParams,
},
ApplyPatchApproval {
id: RequestId,
params: ApplyPatchApprovalParams,
},
ExecCommandApproval {
id: RequestId,
params: ExecCommandApprovalParams,
},
}Expand description
Request initiated from the server and sent to the client.
JSON schema
{
"title": "ServerRequest",
"description": "Request initiated from the server and sent to the client.",
"oneOf": [
{
"title": "Item/commandExecution/requestApprovalRequest",
"description": "NEW APIs Sent when approval is requested for a specific command execution. This request is used for Turns started via turn/start.",
"type": "object",
"required": [
"id",
"method",
"params"
],
"properties": {
"id": {
"$ref": "#/definitions/RequestId"
},
"method": {
"title": "Item/commandExecution/requestApprovalRequestMethod",
"type": "string",
"enum": [
"item/commandExecution/requestApproval"
]
},
"params": {
"$ref": "#/definitions/CommandExecutionRequestApprovalParams"
}
}
},
{
"title": "Item/fileChange/requestApprovalRequest",
"description": "Sent when approval is requested for a specific file change. This request is used for Turns started via turn/start.",
"type": "object",
"required": [
"id",
"method",
"params"
],
"properties": {
"id": {
"$ref": "#/definitions/RequestId"
},
"method": {
"title": "Item/fileChange/requestApprovalRequestMethod",
"type": "string",
"enum": [
"item/fileChange/requestApproval"
]
},
"params": {
"$ref": "#/definitions/FileChangeRequestApprovalParams"
}
}
},
{
"title": "Item/tool/requestUserInputRequest",
"description": "EXPERIMENTAL - Request input from the user for a tool call.",
"type": "object",
"required": [
"id",
"method",
"params"
],
"properties": {
"id": {
"$ref": "#/definitions/RequestId"
},
"method": {
"title": "Item/tool/requestUserInputRequestMethod",
"type": "string",
"enum": [
"item/tool/requestUserInput"
]
},
"params": {
"$ref": "#/definitions/ToolRequestUserInputParams"
}
}
},
{
"title": "McpServer/elicitation/requestRequest",
"description": "Request input for an MCP server elicitation.",
"type": "object",
"required": [
"id",
"method",
"params"
],
"properties": {
"id": {
"$ref": "#/definitions/RequestId"
},
"method": {
"title": "McpServer/elicitation/requestRequestMethod",
"type": "string",
"enum": [
"mcpServer/elicitation/request"
]
},
"params": {
"$ref": "#/definitions/McpServerElicitationRequestParams"
}
}
},
{
"title": "Item/permissions/requestApprovalRequest",
"description": "Request approval for additional permissions from the user.",
"type": "object",
"required": [
"id",
"method",
"params"
],
"properties": {
"id": {
"$ref": "#/definitions/RequestId"
},
"method": {
"title": "Item/permissions/requestApprovalRequestMethod",
"type": "string",
"enum": [
"item/permissions/requestApproval"
]
},
"params": {
"$ref": "#/definitions/PermissionsRequestApprovalParams"
}
}
},
{
"title": "Item/tool/callRequest",
"description": "Execute a dynamic tool call on the client.",
"type": "object",
"required": [
"id",
"method",
"params"
],
"properties": {
"id": {
"$ref": "#/definitions/RequestId"
},
"method": {
"title": "Item/tool/callRequestMethod",
"type": "string",
"enum": [
"item/tool/call"
]
},
"params": {
"$ref": "#/definitions/DynamicToolCallParams"
}
}
},
{
"title": "Account/chatgptAuthTokens/refreshRequest",
"type": "object",
"required": [
"id",
"method",
"params"
],
"properties": {
"id": {
"$ref": "#/definitions/RequestId"
},
"method": {
"title": "Account/chatgptAuthTokens/refreshRequestMethod",
"type": "string",
"enum": [
"account/chatgptAuthTokens/refresh"
]
},
"params": {
"$ref": "#/definitions/ChatgptAuthTokensRefreshParams"
}
}
},
{
"title": "Attestation/generateRequest",
"description": "Generate a fresh upstream attestation result on demand.",
"type": "object",
"required": [
"id",
"method",
"params"
],
"properties": {
"id": {
"$ref": "#/definitions/RequestId"
},
"method": {
"title": "Attestation/generateRequestMethod",
"type": "string",
"enum": [
"attestation/generate"
]
},
"params": {
"$ref": "#/definitions/AttestationGenerateParams"
}
}
},
{
"title": "CurrentTime/readRequest",
"description": "Read the current time from an external clock owned by the client.",
"type": "object",
"required": [
"id",
"method",
"params"
],
"properties": {
"id": {
"$ref": "#/definitions/RequestId"
},
"method": {
"title": "CurrentTime/readRequestMethod",
"type": "string",
"enum": [
"currentTime/read"
]
},
"params": {
"$ref": "#/definitions/CurrentTimeReadParams"
}
}
},
{
"title": "ApplyPatchApprovalRequest",
"description": "DEPRECATED APIs below Request to approve a patch. This request is used for Turns started via the legacy APIs (i.e. SendUserTurn, SendUserMessage).",
"type": "object",
"required": [
"id",
"method",
"params"
],
"properties": {
"id": {
"$ref": "#/definitions/RequestId"
},
"method": {
"title": "ApplyPatchApprovalRequestMethod",
"type": "string",
"enum": [
"applyPatchApproval"
]
},
"params": {
"$ref": "#/definitions/ApplyPatchApprovalParams"
}
}
},
{
"title": "ExecCommandApprovalRequest",
"description": "Request to exec a command. This request is used for Turns started via the legacy APIs (i.e. SendUserTurn, SendUserMessage).",
"type": "object",
"required": [
"id",
"method",
"params"
],
"properties": {
"id": {
"$ref": "#/definitions/RequestId"
},
"method": {
"title": "ExecCommandApprovalRequestMethod",
"type": "string",
"enum": [
"execCommandApproval"
]
},
"params": {
"$ref": "#/definitions/ExecCommandApprovalParams"
}
}
}
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Variants§
ItemCommandExecutionRequestApproval
Item/commandExecution/requestApprovalRequest
NEW APIs Sent when approval is requested for a specific command execution. This request is used for Turns started via turn/start.
ItemFileChangeRequestApproval
Item/fileChange/requestApprovalRequest
Sent when approval is requested for a specific file change. This request is used for Turns started via turn/start.
ItemToolRequestUserInput
Item/tool/requestUserInputRequest
EXPERIMENTAL - Request input from the user for a tool call.
McpServerElicitationRequest
McpServer/elicitation/requestRequest
Request input for an MCP server elicitation.
ItemPermissionsRequestApproval
Item/permissions/requestApprovalRequest
Request approval for additional permissions from the user.
ItemToolCall
Item/tool/callRequest
Execute a dynamic tool call on the client.
AccountChatgptAuthTokensRefresh
Account/chatgptAuthTokens/refreshRequest
AttestationGenerate
Attestation/generateRequest
Generate a fresh upstream attestation result on demand.
CurrentTimeRead
CurrentTime/readRequest
Read the current time from an external clock owned by the client.
ApplyPatchApproval
ApplyPatchApprovalRequest
DEPRECATED APIs below Request to approve a patch. This request is used for Turns started via the legacy APIs (i.e. SendUserTurn, SendUserMessage).
ExecCommandApproval
ExecCommandApprovalRequest
Request to exec a command. This request is used for Turns started via the legacy APIs (i.e. SendUserTurn, SendUserMessage).
Implementations§
Source§impl ServerRequest
impl ServerRequest
Sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
The wire method name, e.g. "execCommandApproval".
Sourcepub fn expected_response_type_name(&self) -> &'static str
pub fn expected_response_type_name(&self) -> &'static str
The name of the crate::protocol type PendingServerRequest::respond’s
result must serialize to for this specific request. Not always
PascalCase(method_name) + "Response" - a few methods need an
irregular name (see RESPONSE_OVERRIDES in
xtask/src/codex_schema/naming.rs) - so prefer this accessor over
guessing the name yourself.
Trait Implementations§
Source§impl Clone for ServerRequest
impl Clone for ServerRequest
Source§fn clone(&self) -> ServerRequest
fn clone(&self) -> ServerRequest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more