{
  "$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": {
        "read": {
          "items": {
            "$ref": "#/definitions/AbsolutePathBuf"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "write": {
          "items": {
            "$ref": "#/definitions/AbsolutePathBuf"
          },
          "type": [
            "array",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "AdditionalMacOsPermissions": {
      "properties": {
        "accessibility": {
          "type": "boolean"
        },
        "automations": {
          "$ref": "#/definitions/MacOsAutomationPermission"
        },
        "calendar": {
          "type": "boolean"
        },
        "contacts": {
          "$ref": "#/definitions/MacOsContactsPermission"
        },
        "launchServices": {
          "type": "boolean"
        },
        "preferences": {
          "$ref": "#/definitions/MacOsPreferencesPermission"
        },
        "reminders": {
          "type": "boolean"
        }
      },
      "required": [
        "accessibility",
        "automations",
        "calendar",
        "contacts",
        "launchServices",
        "preferences",
        "reminders"
      ],
      "type": "object"
    },
    "AdditionalNetworkPermissions": {
      "properties": {
        "enabled": {
          "type": [
            "boolean",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "AdditionalPermissionProfile": {
      "properties": {
        "fileSystem": {
          "anyOf": [
            {
              "$ref": "#/definitions/AdditionalFileSystemPermissions"
            },
            {
              "type": "null"
            }
          ]
        },
        "macos": {
          "anyOf": [
            {
              "$ref": "#/definitions/AdditionalMacOsPermissions"
            },
            {
              "type": "null"
            }
          ]
        },
        "network": {
          "anyOf": [
            {
              "$ref": "#/definitions/AdditionalNetworkPermissions"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object"
    },
    "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"
        }
      ]
    },
    "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"
        }
      ]
    },
    "CommandExecutionRequestApprovalSkillMetadata": {
      "properties": {
        "pathToSkillsMd": {
          "type": "string"
        }
      },
      "required": [
        "pathToSkillsMd"
      ],
      "type": "object"
    },
    "MacOsAutomationPermission": {
      "oneOf": [
        {
          "enum": [
            "none",
            "all"
          ],
          "type": "string"
        },
        {
          "additionalProperties": false,
          "properties": {
            "bundle_ids": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": [
            "bundle_ids"
          ],
          "title": "BundleIdsMacOsAutomationPermission",
          "type": "object"
        }
      ]
    },
    "MacOsContactsPermission": {
      "enum": [
        "none",
        "read_only",
        "read_write"
      ],
      "type": "string"
    },
    "MacOsPreferencesPermission": {
      "enum": [
        "none",
        "read_only",
        "read_write"
      ],
      "type": "string"
    },
    "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"
    }
  },
  "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 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"
  ],
  "title": "CommandExecutionRequestApprovalParams",
  "type": "object"
}