mirror of
https://github.com/openai/codex.git
synced 2026-10-29 19:08:43 +00:00
## Why Managed command policies need to require a human decision independently of automatic review, hook allowances, and saved approvals. ## What changed - Support `decision = "prompt-user"` in managed `requirements.toml` prefix rules, requiring a fresh, one-time human decision for matching commands. - Add experimental `humanCommand` approval requests for clients advertising both `experimentalApi` and `requiredHumanApproval`. Accept only `accept`, `decline`, or `cancel`; reject commands when no capable client is available. - Restrict responses to capable clients that received the request, and replay pending prompts to compatible clients on reconnect. - Enable the capability in the TUI and update protocol schemas and client bindings. ## Testing Add coverage for fresh decisions overriding saved allowances, hook allowances, and automatic review, plus child-thread approval routing and rejection of responses from incompatible or unrelated clients. GitOrigin-RevId: 0b95ff6aab7f8a04b7298c8a4329d1fddf6a603e
92 lines
2.6 KiB
JSON
Generated
92 lines
2.6 KiB
JSON
Generated
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"definitions": {
|
|
"ClientInfo": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"version": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"version"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"InitializeCapabilities": {
|
|
"description": "Client-declared capabilities negotiated during initialize.",
|
|
"properties": {
|
|
"experimentalApi": {
|
|
"default": false,
|
|
"description": "Opt into receiving experimental API methods and fields.",
|
|
"type": "boolean"
|
|
},
|
|
"explicitGatewayOauth": {
|
|
"description": "Use explicit gateway OAuth login instead of automatic browser authorization. Applies to this app-server's gateway runtime; later connections cannot undo it.",
|
|
"type": "boolean"
|
|
},
|
|
"extensions": {
|
|
"additionalProperties": true,
|
|
"description": "MCP extension settings declared by the app-server client.",
|
|
"type": [
|
|
"object",
|
|
"null"
|
|
]
|
|
},
|
|
"mcpServerOpenaiFormElicitation": {
|
|
"description": "Legacy opt-in for the `openai/form` MCP extension.\n\nNew clients should declare `openai/form` in [`Self::extensions`].",
|
|
"type": "boolean"
|
|
},
|
|
"optOutNotificationMethods": {
|
|
"description": "Exact notification method names that should be suppressed for this connection (for example `thread/started`).",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"requestAttestation": {
|
|
"default": false,
|
|
"description": "Opt into `attestation/generate` requests for upstream `x-oai-attestation`.",
|
|
"type": "boolean"
|
|
},
|
|
"requiredHumanApproval": {
|
|
"description": "Present `humanCommand` approvals to a person and return only a one-time decision. Requires `experimentalApi`. Pending requests can be replayed to compatible clients.",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
},
|
|
"properties": {
|
|
"capabilities": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/InitializeCapabilities"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"clientInfo": {
|
|
"$ref": "#/definitions/ClientInfo"
|
|
}
|
|
},
|
|
"required": [
|
|
"clientInfo"
|
|
],
|
|
"title": "InitializeParams",
|
|
"type": "object"
|
|
} |