Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/claude_agent_sdk/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
from .types import (
AgentDefinition,
AssistantMessage,
AssistantMessageError,
BaseHookInput,
CanUseTool,
ClaudeAgentOptions,
Expand Down Expand Up @@ -85,13 +86,15 @@
MirrorErrorMessage,
NotificationHookInput,
NotificationHookSpecificOutput,
PermissionBehavior,
PermissionMode,
PermissionRequestHookInput,
PermissionRequestHookSpecificOutput,
PermissionResult,
PermissionResultAllow,
PermissionResultDeny,
PermissionUpdate,
PermissionUpdateDestination,
PostToolUseFailureHookInput,
PostToolUseFailureHookSpecificOutput,
PostToolUseHookInput,
Expand Down Expand Up @@ -138,6 +141,7 @@
ThinkingConfigAdaptive,
ThinkingConfigDisabled,
ThinkingConfigEnabled,
ThinkingDisplay,
ToolPermissionContext,
ToolResultBlock,
ToolUseBlock,
Expand Down Expand Up @@ -541,6 +545,7 @@ async def call_tool(name: str, arguments: dict[str, Any]) -> Any:
"McpToolInfo",
"UserMessage",
"AssistantMessage",
"AssistantMessageError",
"SystemMessage",
"TaskStartedMessage",
"TaskProgressMessage",
Expand All @@ -563,6 +568,7 @@ async def call_tool(name: str, arguments: dict[str, Any]) -> Any:
"ThinkingConfigAdaptive",
"ThinkingConfigEnabled",
"ThinkingConfigDisabled",
"ThinkingDisplay",
"ToolUseBlock",
"ToolResultBlock",
"ServerToolName",
Expand All @@ -578,6 +584,8 @@ async def call_tool(name: str, arguments: dict[str, Any]) -> Any:
"PermissionResultAllow",
"PermissionResultDeny",
"PermissionUpdate",
"PermissionBehavior",
"PermissionUpdateDestination",
# Hook support
"HookCallback",
"HookContext",
Expand Down
36 changes: 36 additions & 0 deletions tests/test_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,19 @@

from claude_agent_sdk import (
AssistantMessage,
AssistantMessageError,
ClaudeAgentOptions,
EffortLevel,
NotificationHookInput,
NotificationHookSpecificOutput,
PermissionBehavior,
PermissionRequestHookInput,
PermissionRequestHookSpecificOutput,
PermissionUpdateDestination,
ResultMessage,
SubagentStartHookInput,
SubagentStartHookSpecificOutput,
ThinkingDisplay,
)
from claude_agent_sdk.types import (
PermissionRuleValue,
Expand All @@ -32,6 +36,38 @@ def test_effort_level_is_exported():
assert set(get_args(EffortLevel)) == {"low", "medium", "high", "xhigh", "max"}


def test_assistant_message_error_is_exported():
"""AssistantMessageError is part of the public package API for downstream wrappers."""
assert set(get_args(AssistantMessageError)) == {
"authentication_failed",
"billing_error",
"rate_limit",
"invalid_request",
"server_error",
"unknown",
}


def test_permission_behavior_is_exported():
"""PermissionBehavior is part of the public package API for downstream wrappers."""
assert set(get_args(PermissionBehavior)) == {"allow", "deny", "ask"}


def test_permission_update_destination_is_exported():
"""PermissionUpdateDestination is part of the public package API for downstream wrappers."""
assert set(get_args(PermissionUpdateDestination)) == {
"userSettings",
"projectSettings",
"localSettings",
"session",
}


def test_thinking_display_is_exported():
"""ThinkingDisplay is part of the public package API for downstream wrappers."""
assert set(get_args(ThinkingDisplay)) == {"summarized", "omitted"}


class TestPermissionUpdate:
"""Test PermissionUpdate wire-format conversion."""

Expand Down