{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "CommandAction": {
      "oneOf": [
        {
          "properties": {
            "command": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "path": {
              "type": "string"
            },
            "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"
        }
      ]
    },
    "NetworkApprovalContext": {
      "properties": {
        "host": {
          "type": "string"
        },
        "protocol": {
          "$ref": "#/definitions/NetworkApprovalProtocol"
        }
      },
      "required": [
        "host",
        "protocol"
      ],
      "type": "object"
    },
    "NetworkApprovalProtocol": {
      "enum": [
        "http",
        "https",
        "socks5Tcp",
        "socks5Udp"
      ],
      "type": "string"
    }
  },
  "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": {
      "description": "The command's working directory.",
      "type": [
        "string",
        "null"
      ]
    },
    "itemId": {
      "type": "string"
    },
    "networkApprovalContext": {
      "anyOf": [
        {
          "$ref": "#/definitions/NetworkApprovalContext"
        },
        {
          "type": "null"
        }
      ],
      "description": "Optional context for managed-network approval prompts."
    },
    "proposedExecpolicyAmendment": {
      "description": "Optional proposed execpolicy amendment to allow similar commands without prompting.",
      "items": {
        "type": "string"
      },
      "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"
  ],
  "title": "CommandExecutionRequestApprovalParams",
  "type": "object"
}