diff --git a/src/claude_agent_sdk/_internal/query.py b/src/claude_agent_sdk/_internal/query.py index c30fc159..e6a1cb5f 100644 --- a/src/claude_agent_sdk/_internal/query.py +++ b/src/claude_agent_sdk/_internal/query.py @@ -15,6 +15,7 @@ ) from ..types import ( + PermissionMode, PermissionResultAllow, PermissionResultDeny, SDKControlPermissionRequest, @@ -521,7 +522,7 @@ async def interrupt(self) -> None: """Send interrupt control request.""" await self._send_control_request({"subtype": "interrupt"}) - async def set_permission_mode(self, mode: str) -> None: + async def set_permission_mode(self, mode: PermissionMode) -> None: """Change permission mode.""" await self._send_control_request( { diff --git a/src/claude_agent_sdk/client.py b/src/claude_agent_sdk/client.py index 18ab818d..ed4574ed 100644 --- a/src/claude_agent_sdk/client.py +++ b/src/claude_agent_sdk/client.py @@ -8,7 +8,14 @@ from . import Transport from ._errors import CLIConnectionError -from .types import ClaudeAgentOptions, HookEvent, HookMatcher, Message, ResultMessage +from .types import ( + ClaudeAgentOptions, + HookEvent, + HookMatcher, + Message, + PermissionMode, + ResultMessage, +) class ClaudeSDKClient: @@ -213,13 +220,14 @@ async def interrupt(self) -> None: raise CLIConnectionError("Not connected. Call connect() first.") await self._query.interrupt() - async def set_permission_mode(self, mode: str) -> None: + async def set_permission_mode(self, mode: PermissionMode) -> None: """Change permission mode during conversation (only works with streaming mode). Args: mode: The permission mode to set. Valid options: - 'default': CLI prompts for dangerous tools - 'acceptEdits': Auto-accept file edits + - 'plan': Plan mode for planning tasks - 'bypassPermissions': Allow all tools (use with caution) Example: diff --git a/src/claude_agent_sdk/types.py b/src/claude_agent_sdk/types.py index 9c09345f..57f35fea 100644 --- a/src/claude_agent_sdk/types.py +++ b/src/claude_agent_sdk/types.py @@ -701,8 +701,7 @@ class SDKControlInitializeRequest(TypedDict): class SDKControlSetPermissionModeRequest(TypedDict): subtype: Literal["set_permission_mode"] - # TODO: Add PermissionMode - mode: str + mode: PermissionMode class SDKHookCallbackRequest(TypedDict):