{ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "definitions": { "HookEventNameWire": { "enum": [ "PreToolUse", "PermissionRequest", "PostToolUse", "SessionStart", "UserPromptSubmit", "Stop" ], "type": "string" }, "PermissionRequestBehaviorWire": { "enum": [ "allow", "deny" ], "type": "string" }, "PermissionRequestDecisionWire": { "additionalProperties": false, "properties": { "behavior": { "$ref": "#/definitions/PermissionRequestBehaviorWire" }, "interrupt": { "default": false, "description": "Reserved for future short-circuiting semantics.\n\nPermissionRequest hooks currently fail closed if this field is `true`.", "type": "boolean" }, "message": { "default": null, "type": "string" }, "updatedInput": { "default": null, "description": "Reserved for a future input-rewrite capability.\n\nPermissionRequest hooks currently fail closed if this field is present." }, "updatedPermissions": { "default": null, "items": { "$ref": "#/definitions/PermissionUpdate" }, "type": "array" } }, "required": [ "behavior" ], "type": "object" }, "PermissionRequestHookSpecificOutputWire": { "additionalProperties": false, "properties": { "decision": { "allOf": [ { "$ref": "#/definitions/PermissionRequestDecisionWire" } ], "default": null }, "hookEventName": { "$ref": "#/definitions/HookEventNameWire" } }, "required": [ "hookEventName" ], "type": "object" }, "PermissionUpdate": { "oneOf": [ { "properties": { "behavior": { "$ref": "#/definitions/PermissionUpdateBehavior" }, "destination": { "$ref": "#/definitions/PermissionUpdateDestination" }, "rules": { "items": { "$ref": "#/definitions/PermissionUpdateRule" }, "type": "array" }, "type": { "enum": [ "addRules" ], "type": "string" } }, "required": [ "behavior", "destination", "rules", "type" ], "type": "object" }, { "properties": { "destination": { "$ref": "#/definitions/PermissionUpdateDestination" }, "directories": { "items": { "type": "string" }, "type": "array" }, "type": { "enum": [ "addDirectories" ], "type": "string" } }, "required": [ "destination", "directories", "type" ], "type": "object" } ] }, "PermissionUpdateBehavior": { "enum": [ "allow", "deny", "ask" ], "type": "string" }, "PermissionUpdateDestination": { "enum": [ "session", "projectSettings", "userSettings" ], "type": "string" }, "PermissionUpdateRule": { "oneOf": [ { "properties": { "command": { "items": { "type": "string" }, "type": "array" }, "type": { "enum": [ "prefixRule" ], "type": "string" } }, "required": [ "command", "type" ], "type": "object" } ] } }, "properties": { "continue": { "default": true, "type": "boolean" }, "hookSpecificOutput": { "allOf": [ { "$ref": "#/definitions/PermissionRequestHookSpecificOutputWire" } ], "default": null }, "stopReason": { "default": null, "type": "string" }, "suppressOutput": { "default": false, "type": "boolean" }, "systemMessage": { "default": null, "type": "string" } }, "title": "permission-request.command.output", "type": "object" }