mirror of
https://github.com/openai/codex.git
synced 2026-08-26 13:38:49 +00:00
## What changed - Add `ApprovedMcpPolicyAmendment` to represent MCP approvals that persist across sessions. - Route MCP approval responses directly through the shared `ReviewDecision` type while preserving session-only approvals, rejection reasons, timeouts, and cancellations. - Reject the MCP-only policy decision if it reaches command, shell, network, or other tool approval paths. ## Testing - Update MCP approval parsing, normalization, hook, and Guardian tests for the shared decisions. - Verify generic tool approvals reject MCP policy amendments. GitOrigin-RevId: b8cc931dc61d4c794915145273ede82b9eb30fc8
146 lines
4.2 KiB
JSON
Generated
146 lines
4.2 KiB
JSON
Generated
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"definitions": {
|
|
"NetworkPolicyAmendment": {
|
|
"properties": {
|
|
"action": {
|
|
"$ref": "#/definitions/NetworkPolicyRuleAction"
|
|
},
|
|
"host": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"action",
|
|
"host"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"NetworkPolicyRuleAction": {
|
|
"enum": [
|
|
"allow",
|
|
"deny"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"ReviewDecision": {
|
|
"description": "User's decision in response to an ExecApprovalRequest.",
|
|
"oneOf": [
|
|
{
|
|
"description": "User has approved this command and the agent should execute it.",
|
|
"enum": [
|
|
"approved"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": false,
|
|
"description": "User has approved this command and wants to apply the proposed execpolicy amendment so future matching commands are permitted.",
|
|
"properties": {
|
|
"approved_execpolicy_amendment": {
|
|
"properties": {
|
|
"proposed_execpolicy_amendment": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"proposed_execpolicy_amendment"
|
|
],
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"approved_execpolicy_amendment"
|
|
],
|
|
"title": "ApprovedExecpolicyAmendmentReviewDecision",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "User has approved this request and wants future prompts in the same session-scoped approval cache to be automatically approved for the remainder of the session.",
|
|
"enum": [
|
|
"approved_for_session"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "User has approved this MCP tool call and wants to amend its policy so matching future calls are automatically approved across sessions.",
|
|
"enum": [
|
|
"approved_mcp_policy_amendment"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": false,
|
|
"description": "User chose to persist a network policy rule (allow/deny) for future requests to the same host.",
|
|
"properties": {
|
|
"network_policy_amendment": {
|
|
"properties": {
|
|
"network_policy_amendment": {
|
|
"$ref": "#/definitions/NetworkPolicyAmendment"
|
|
}
|
|
},
|
|
"required": [
|
|
"network_policy_amendment"
|
|
],
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"network_policy_amendment"
|
|
],
|
|
"title": "NetworkPolicyAmendmentReviewDecision",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"additionalProperties": false,
|
|
"description": "User has denied this command and the agent should not execute it, but it should continue the session and try something else.",
|
|
"properties": {
|
|
"denied": {
|
|
"properties": {
|
|
"rejection": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"rejection"
|
|
],
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"denied"
|
|
],
|
|
"title": "DeniedReviewDecision",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Automatic approval review timed out before reaching a decision.",
|
|
"enum": [
|
|
"timed_out"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "User has denied this command and the agent should not do anything until the user's next command.",
|
|
"enum": [
|
|
"abort"
|
|
],
|
|
"type": "string"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"properties": {
|
|
"decision": {
|
|
"$ref": "#/definitions/ReviewDecision"
|
|
}
|
|
},
|
|
"required": [
|
|
"decision"
|
|
],
|
|
"title": "ExecCommandApprovalResponse",
|
|
"type": "object"
|
|
} |