diff --git a/.github/workflows/create-release-tag.yml b/.github/workflows/create-release-tag.yml index d30668d..8d6b8e1 100644 --- a/.github/workflows/create-release-tag.yml +++ b/.github/workflows/create-release-tag.yml @@ -51,9 +51,9 @@ jobs: --title "Release v${{ steps.extract_version.outputs.version }}" \ --generate-notes \ --notes-start-tag "${{ steps.previous_tag.outputs.previous_tag }}" \ - --notes "Published to PyPI: https://pypi.org/project/claude-code-sdk/${{ steps.extract_version.outputs.version }}/ + --notes "Published to PyPI: https://pypi.org/project/claude-agent-sdk/${{ steps.extract_version.outputs.version }}/ ### Installation \`\`\`bash - pip install claude-code-sdk==${{ steps.extract_version.outputs.version }} + pip install claude-agent-sdk==${{ steps.extract_version.outputs.version }} \`\`\`" diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c2bf604..36ecc8b 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -102,7 +102,7 @@ jobs: run: | twine upload dist/* echo "Package published to PyPI" - echo "Install with: pip install claude-code-sdk==${{ env.VERSION }}" + echo "Install with: pip install claude-agent-sdk==${{ env.VERSION }}" - name: Create version update PR env: @@ -124,7 +124,7 @@ jobs: echo "Getting SHA for pyproject.toml" PYPROJECT_SHA=$(gh api /repos/$GITHUB_REPOSITORY/contents/pyproject.toml --jq '.sha') echo "Getting SHA for _version.py" - VERSION_SHA=$(gh api /repos/$GITHUB_REPOSITORY/contents/src/claude_code_sdk/_version.py --jq '.sha') + VERSION_SHA=$(gh api /repos/$GITHUB_REPOSITORY/contents/src/claude_agent_sdk/_version.py --jq '.sha') # Commit pyproject.toml via GitHub API (this creates signed commits) message="chore: bump version to ${{ env.VERSION }}" @@ -138,10 +138,10 @@ jobs: -f branch="$BRANCH_NAME" # Commit _version.py via GitHub API - base64 -i src/claude_code_sdk/_version.py > version.py.b64 + base64 -i src/claude_agent_sdk/_version.py > version.py.b64 gh api \ --method PUT \ - /repos/$GITHUB_REPOSITORY/contents/src/claude_code_sdk/_version.py \ + /repos/$GITHUB_REPOSITORY/contents/src/claude_agent_sdk/_version.py \ -f message="$message" \ -F content=@version.py.b64 \ -f sha="$VERSION_SHA" \ @@ -152,11 +152,11 @@ jobs: ## Changes - Updated version in \`pyproject.toml\` - - Updated version in \`src/claude_code_sdk/_version.py\` + - Updated version in \`src/claude_agent_sdk/_version.py\` ## Release Information - - Published to PyPI: https://pypi.org/project/claude-code-sdk/${{ env.VERSION }}/ - - Install with: \`pip install claude-code-sdk==${{ env.VERSION }}\` + - Published to PyPI: https://pypi.org/project/claude-agent-sdk/${{ env.VERSION }}/ + - Install with: \`pip install claude-agent-sdk==${{ env.VERSION }}\` 🤖 Generated by GitHub Actions" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9a3e24a..7ccffcb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -28,7 +28,7 @@ jobs: - name: Run tests run: | - python -m pytest tests/ -v --cov=claude_code_sdk --cov-report=xml + python -m pytest tests/ -v --cov=claude_agent_sdk --cov-report=xml - name: Upload coverage to Codecov uses: codecov/codecov-action@v4 diff --git a/CLAUDE.md b/CLAUDE.md index fb9ed47..189cdef 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -18,7 +18,7 @@ python -m pytest tests/test_client.py # Codebase Structure -- `src/claude_code_sdk/` - Main package +- `src/claude_agent_sdk/` - Main package - `client.py` - ClaudeSDKClient for interactive sessions - `query.py` - One-shot query function - `types.py` - Type definitions diff --git a/README.md b/README.md index 366cf7e..ed18254 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -# Claude Code SDK for Python +# Claude Agent SDK for Python -Python SDK for Claude Code. See the [Claude Code SDK documentation](https://docs.anthropic.com/en/docs/claude-code/sdk/sdk-python) for more information. +Python SDK for Claude Agent. See the [Claude Agent SDK documentation](https://docs.anthropic.com/en/docs/claude-code/sdk/sdk-python) for more information. ## Installation ```bash -pip install claude-code-sdk +pip install claude-agent-sdk ``` **Prerequisites:** @@ -17,7 +17,7 @@ pip install claude-code-sdk ```python import anyio -from claude_code_sdk import query +from claude_agent_sdk import query async def main(): async for message in query(prompt="What is 2 + 2?"): @@ -28,10 +28,10 @@ anyio.run(main) ## Basic Usage: query() -`query()` is an async function for querying Claude Code. It returns an `AsyncIterator` of response messages. See [src/claude_code_sdk/query.py](src/claude_code_sdk/query.py). +`query()` is an async function for querying Claude Code. It returns an `AsyncIterator` of response messages. See [src/claude_agent_sdk/query.py](src/claude_agent_sdk/query.py). ```python -from claude_code_sdk import query, ClaudeAgentOptions, AssistantMessage, TextBlock +from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, TextBlock # Simple query async for message in query(prompt="Hello Claude"): @@ -79,7 +79,7 @@ options = ClaudeAgentOptions( ## ClaudeSDKClient `ClaudeSDKClient` supports bidirectional, interactive conversations with Claude -Code. See [src/claude_code_sdk/client.py](src/claude_code_sdk/client.py). +Code. See [src/claude_agent_sdk/client.py](src/claude_agent_sdk/client.py). Unlike `query()`, `ClaudeSDKClient` additionally enables **custom tools** and **hooks**, both of which can be defined as Python functions. @@ -94,7 +94,7 @@ For an end-to-end example, see [MCP Calculator](examples/mcp_calculator.py). #### Creating a Simple Tool ```python -from claude_code_sdk import tool, create_sdk_mcp_server, ClaudeAgentOptions, ClaudeSDKClient +from claude_agent_sdk import tool, create_sdk_mcp_server, ClaudeAgentOptions, ClaudeSDKClient # Define a tool using the @tool decorator @tool("greet", "Greet a user", {"name": str}) @@ -186,7 +186,7 @@ For more examples, see examples/hooks.py. #### Example ```python -from claude_code_sdk import ClaudeAgentOptions, ClaudeSDKClient, HookMatcher +from claude_agent_sdk import ClaudeAgentOptions, ClaudeSDKClient, HookMatcher async def check_bash_command(input_data, tool_use_id, context): tool_name = input_data["tool_name"] @@ -232,7 +232,7 @@ async with ClaudeSDKClient(options=options) as client: ## Types -See [src/claude_code_sdk/types.py](src/claude_code_sdk/types.py) for complete type definitions: +See [src/claude_agent_sdk/types.py](src/claude_agent_sdk/types.py) for complete type definitions: - `ClaudeAgentOptions` - Configuration options - `AssistantMessage`, `UserMessage`, `SystemMessage`, `ResultMessage` - Message types - `TextBlock`, `ToolUseBlock`, `ToolResultBlock` - Content blocks @@ -240,7 +240,7 @@ See [src/claude_code_sdk/types.py](src/claude_code_sdk/types.py) for complete ty ## Error Handling ```python -from claude_code_sdk import ( +from claude_agent_sdk import ( ClaudeSDKError, # Base error CLINotFoundError, # Claude Code not installed CLIConnectionError, # Connection issues @@ -259,7 +259,7 @@ except CLIJSONDecodeError as e: print(f"Failed to parse response: {e}") ``` -See [src/claude_code_sdk/_errors.py](src/claude_code_sdk/_errors.py) for all error types. +See [src/claude_agent_sdk/_errors.py](src/claude_agent_sdk/_errors.py) for all error types. ## Available Tools diff --git a/e2e-tests/test_agents_and_settings.py b/e2e-tests/test_agents_and_settings.py index 3ed7cbd..678ea81 100644 --- a/e2e-tests/test_agents_and_settings.py +++ b/e2e-tests/test_agents_and_settings.py @@ -5,7 +5,7 @@ from pathlib import Path import pytest -from claude_code_sdk import ( +from claude_agent_sdk import ( AgentDefinition, ClaudeAgentOptions, ClaudeSDKClient, diff --git a/e2e-tests/test_dynamic_control.py b/e2e-tests/test_dynamic_control.py index 779ebea..f12ffb6 100644 --- a/e2e-tests/test_dynamic_control.py +++ b/e2e-tests/test_dynamic_control.py @@ -2,7 +2,7 @@ import pytest -from claude_code_sdk import ( +from claude_agent_sdk import ( ClaudeAgentOptions, ClaudeSDKClient, ) diff --git a/e2e-tests/test_include_partial_messages.py b/e2e-tests/test_include_partial_messages.py index 70c0b1e..3dffe47 100644 --- a/e2e-tests/test_include_partial_messages.py +++ b/e2e-tests/test_include_partial_messages.py @@ -9,8 +9,8 @@ from typing import List, Any import pytest -from claude_code_sdk import ClaudeSDKClient -from claude_code_sdk.types import ( +from claude_agent_sdk import ClaudeSDKClient +from claude_agent_sdk.types import ( ClaudeAgentOptions, StreamEvent, AssistantMessage, diff --git a/e2e-tests/test_sdk_mcp_tools.py b/e2e-tests/test_sdk_mcp_tools.py index 27ce9ea..402465c 100644 --- a/e2e-tests/test_sdk_mcp_tools.py +++ b/e2e-tests/test_sdk_mcp_tools.py @@ -8,7 +8,7 @@ from typing import Any import pytest -from claude_code_sdk import ( +from claude_agent_sdk import ( ClaudeAgentOptions, ClaudeSDKClient, create_sdk_mcp_server, diff --git a/e2e-tests/test_stderr_callback.py b/e2e-tests/test_stderr_callback.py index 93aa8d5..e6982ac 100644 --- a/e2e-tests/test_stderr_callback.py +++ b/e2e-tests/test_stderr_callback.py @@ -2,7 +2,7 @@ import pytest -from claude_code_sdk import ClaudeCodeOptions, query +from claude_agent_sdk import ClaudeAgentOptions, query @pytest.mark.e2e @@ -15,7 +15,7 @@ async def test_stderr_callback_captures_debug_output(): stderr_lines.append(line) # Enable debug mode to generate stderr output - options = ClaudeCodeOptions( + options = ClaudeAgentOptions( stderr=capture_stderr, extra_args={"debug-to-stderr": None} ) @@ -39,7 +39,7 @@ async def test_stderr_callback_without_debug(): stderr_lines.append(line) # No debug mode enabled - options = ClaudeCodeOptions(stderr=capture_stderr) + options = ClaudeAgentOptions(stderr=capture_stderr) # Run a simple query async for _ in query(prompt="What is 1+1?", options=options): diff --git a/e2e-tests/test_tool_permissions.py b/e2e-tests/test_tool_permissions.py index 329abbd..21ed672 100644 --- a/e2e-tests/test_tool_permissions.py +++ b/e2e-tests/test_tool_permissions.py @@ -2,7 +2,7 @@ import pytest -from claude_code_sdk import ( +from claude_agent_sdk import ( ClaudeAgentOptions, ClaudeSDKClient, PermissionResultAllow, diff --git a/examples/agents.py b/examples/agents.py index 75c187b..9e7439e 100644 --- a/examples/agents.py +++ b/examples/agents.py @@ -10,7 +10,7 @@ Usage: import anyio -from claude_code_sdk import ( +from claude_agent_sdk import ( AgentDefinition, AssistantMessage, ClaudeAgentOptions, @@ -38,7 +38,7 @@ async def code_reviewer_example(): ) async for message in query( - prompt="Use the code-reviewer agent to review the code in src/claude_code_sdk/types.py", + prompt="Use the code-reviewer agent to review the code in src/claude_agent_sdk/types.py", options=options, ): if isinstance(message, AssistantMessage): diff --git a/examples/hooks.py b/examples/hooks.py index 5a8a0b2..18bd881 100644 --- a/examples/hooks.py +++ b/examples/hooks.py @@ -15,8 +15,8 @@ import logging import sys from typing import Any -from claude_code_sdk import ClaudeAgentOptions, ClaudeSDKClient -from claude_code_sdk.types import ( +from claude_agent_sdk import ClaudeAgentOptions, ClaudeSDKClient +from claude_agent_sdk.types import ( AssistantMessage, HookContext, HookJSONOutput, diff --git a/examples/include_partial_messages.py b/examples/include_partial_messages.py index 503efbb..61a4c67 100644 --- a/examples/include_partial_messages.py +++ b/examples/include_partial_messages.py @@ -14,8 +14,8 @@ messages will include StreamEvent messages interspersed with regular messages. """ import asyncio -from claude_code_sdk import ClaudeSDKClient -from claude_code_sdk.types import ( +from claude_agent_sdk import ClaudeSDKClient +from claude_agent_sdk.types import ( ClaudeAgentOptions, StreamEvent, AssistantMessage, diff --git a/examples/mcp_calculator.py b/examples/mcp_calculator.py index 7b8e928..18503dd 100644 --- a/examples/mcp_calculator.py +++ b/examples/mcp_calculator.py @@ -12,7 +12,7 @@ and simpler deployment. import asyncio from typing import Any -from claude_code_sdk import ( +from claude_agent_sdk import ( ClaudeAgentOptions, create_sdk_mcp_server, tool, @@ -99,7 +99,7 @@ async def power(args: dict[str, Any]) -> dict[str, Any]: def display_message(msg): """Display message content in a clean format.""" - from claude_code_sdk import ( + from claude_agent_sdk import ( AssistantMessage, ResultMessage, SystemMessage, @@ -137,7 +137,7 @@ def display_message(msg): async def main(): """Run example calculations using the SDK MCP server with streaming client.""" - from claude_code_sdk import ClaudeSDKClient + from claude_agent_sdk import ClaudeSDKClient # Create the calculator server with all tools calculator = create_sdk_mcp_server( diff --git a/examples/quick_start.py b/examples/quick_start.py index e612075..3f12855 100644 --- a/examples/quick_start.py +++ b/examples/quick_start.py @@ -3,7 +3,7 @@ import anyio -from claude_code_sdk import ( +from claude_agent_sdk import ( AssistantMessage, ClaudeAgentOptions, ResultMessage, diff --git a/examples/setting_sources.py b/examples/setting_sources.py index 2678765..a0b37d6 100644 --- a/examples/setting_sources.py +++ b/examples/setting_sources.py @@ -29,7 +29,7 @@ import asyncio import sys from pathlib import Path -from claude_code_sdk import ( +from claude_agent_sdk import ( ClaudeAgentOptions, ClaudeSDKClient, SystemMessage, diff --git a/examples/stderr_callback_example.py b/examples/stderr_callback_example.py index f1a1240..8b9c4c2 100644 --- a/examples/stderr_callback_example.py +++ b/examples/stderr_callback_example.py @@ -2,7 +2,7 @@ import asyncio -from claude_code_sdk import ClaudeCodeOptions, query +from claude_agent_sdk import ClaudeAgentOptions, query async def main(): @@ -19,7 +19,7 @@ async def main(): print(f"Error detected: {message}") # Create options with stderr callback and enable debug mode - options = ClaudeCodeOptions( + options = ClaudeAgentOptions( stderr=stderr_callback, extra_args={"debug-to-stderr": None} # Enable debug output ) diff --git a/examples/streaming_mode.py b/examples/streaming_mode.py index ffab622..277e62f 100755 --- a/examples/streaming_mode.py +++ b/examples/streaming_mode.py @@ -19,7 +19,7 @@ import asyncio import contextlib import sys -from claude_code_sdk import ( +from claude_agent_sdk import ( AssistantMessage, ClaudeAgentOptions, ClaudeSDKClient, diff --git a/examples/streaming_mode_ipython.py b/examples/streaming_mode_ipython.py index 27b9031..aa63994 100644 --- a/examples/streaming_mode_ipython.py +++ b/examples/streaming_mode_ipython.py @@ -14,7 +14,7 @@ bash commands, edit files, search the web, fetch web content) to accomplish. # BASIC STREAMING # ============================================================================ -from claude_code_sdk import AssistantMessage, ClaudeSDKClient, ResultMessage, TextBlock +from claude_agent_sdk import AssistantMessage, ClaudeSDKClient, ResultMessage, TextBlock async with ClaudeSDKClient() as client: print("User: What is 2+2?") @@ -33,7 +33,7 @@ async with ClaudeSDKClient() as client: import asyncio -from claude_code_sdk import AssistantMessage, ClaudeSDKClient, TextBlock +from claude_agent_sdk import AssistantMessage, ClaudeSDKClient, TextBlock async with ClaudeSDKClient() as client: async def send_and_receive(prompt): @@ -54,7 +54,7 @@ async with ClaudeSDKClient() as client: # PERSISTENT CLIENT FOR MULTIPLE QUESTIONS # ============================================================================ -from claude_code_sdk import AssistantMessage, ClaudeSDKClient, TextBlock +from claude_agent_sdk import AssistantMessage, ClaudeSDKClient, TextBlock # Create client client = ClaudeSDKClient() @@ -89,7 +89,7 @@ await client.disconnect() # IMPORTANT: Interrupts require active message consumption. You must be # consuming messages from the client for the interrupt to be processed. -from claude_code_sdk import AssistantMessage, ClaudeSDKClient, TextBlock +from claude_agent_sdk import AssistantMessage, ClaudeSDKClient, TextBlock async with ClaudeSDKClient() as client: print("\n--- Sending initial message ---\n") @@ -141,7 +141,7 @@ async with ClaudeSDKClient() as client: # ERROR HANDLING PATTERN # ============================================================================ -from claude_code_sdk import AssistantMessage, ClaudeSDKClient, TextBlock +from claude_agent_sdk import AssistantMessage, ClaudeSDKClient, TextBlock try: async with ClaudeSDKClient() as client: @@ -168,7 +168,7 @@ except Exception as e: # SENDING ASYNC ITERABLE OF MESSAGES # ============================================================================ -from claude_code_sdk import AssistantMessage, ClaudeSDKClient, TextBlock +from claude_agent_sdk import AssistantMessage, ClaudeSDKClient, TextBlock async def message_generator(): @@ -210,7 +210,7 @@ async with ClaudeSDKClient() as client: # COLLECTING ALL MESSAGES INTO A LIST # ============================================================================ -from claude_code_sdk import AssistantMessage, ClaudeSDKClient, TextBlock +from claude_agent_sdk import AssistantMessage, ClaudeSDKClient, TextBlock async with ClaudeSDKClient() as client: print("User: What are the primary colors?") diff --git a/examples/streaming_mode_trio.py b/examples/streaming_mode_trio.py index b63b77b..364c72a 100644 --- a/examples/streaming_mode_trio.py +++ b/examples/streaming_mode_trio.py @@ -9,7 +9,7 @@ Claude's responses. import trio -from claude_code_sdk import ( +from claude_agent_sdk import ( AssistantMessage, ClaudeAgentOptions, ClaudeSDKClient, diff --git a/examples/system_prompt.py b/examples/system_prompt.py index 7a2bf95..3747692 100644 --- a/examples/system_prompt.py +++ b/examples/system_prompt.py @@ -3,7 +3,7 @@ import anyio -from claude_code_sdk import ( +from claude_agent_sdk import ( AssistantMessage, ClaudeAgentOptions, TextBlock, diff --git a/examples/tool_permission_callback.py b/examples/tool_permission_callback.py index 6c86c46..82c324b 100644 --- a/examples/tool_permission_callback.py +++ b/examples/tool_permission_callback.py @@ -8,7 +8,7 @@ which tools Claude can use and modify their inputs. import asyncio import json -from claude_code_sdk import ( +from claude_agent_sdk import ( AssistantMessage, ClaudeAgentOptions, ClaudeSDKClient, diff --git a/pyproject.toml b/pyproject.toml index 65fe9c6..8eb7048 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ requires = ["hatchling"] build-backend = "hatchling.build" [project] -name = "claude-code-sdk" +name = "claude-agent-sdk" version = "0.0.23" description = "Python SDK for Claude Code" readme = "README.md" @@ -41,12 +41,12 @@ dev = [ ] [project.urls] -Homepage = "https://github.com/anthropics/claude-code-sdk-python" +Homepage = "https://github.com/anthropics/claude-agent-sdk-python" Documentation = "https://docs.anthropic.com/en/docs/claude-code/sdk" -Issues = "https://github.com/anthropics/claude-code-sdk-python/issues" +Issues = "https://github.com/anthropics/claude-agent-sdk-python/issues" [tool.hatch.build.targets.wheel] -packages = ["src/claude_code_sdk"] +packages = ["src/claude_agent_sdk"] [tool.hatch.build.targets.sdist] include = [ @@ -105,4 +105,4 @@ ignore = [ ] [tool.ruff.lint.isort] -known-first-party = ["claude_code_sdk"] \ No newline at end of file +known-first-party = ["claude_agent_sdk"] \ No newline at end of file diff --git a/scripts/update_version.py b/scripts/update_version.py index 18a22a6..743b40f 100755 --- a/scripts/update_version.py +++ b/scripts/update_version.py @@ -25,7 +25,7 @@ def update_version(new_version: str) -> None: print(f"Updated pyproject.toml to version {new_version}") # Update _version.py - version_path = Path("src/claude_code_sdk/_version.py") + version_path = Path("src/claude_agent_sdk/_version.py") content = version_path.read_text() # Only update __version__ assignment diff --git a/src/claude_code_sdk/__init__.py b/src/claude_agent_sdk/__init__.py similarity index 100% rename from src/claude_code_sdk/__init__.py rename to src/claude_agent_sdk/__init__.py diff --git a/src/claude_code_sdk/_errors.py b/src/claude_agent_sdk/_errors.py similarity index 100% rename from src/claude_code_sdk/_errors.py rename to src/claude_agent_sdk/_errors.py diff --git a/src/claude_code_sdk/_internal/__init__.py b/src/claude_agent_sdk/_internal/__init__.py similarity index 100% rename from src/claude_code_sdk/_internal/__init__.py rename to src/claude_agent_sdk/_internal/__init__.py diff --git a/src/claude_code_sdk/_internal/client.py b/src/claude_agent_sdk/_internal/client.py similarity index 100% rename from src/claude_code_sdk/_internal/client.py rename to src/claude_agent_sdk/_internal/client.py diff --git a/src/claude_code_sdk/_internal/message_parser.py b/src/claude_agent_sdk/_internal/message_parser.py similarity index 100% rename from src/claude_code_sdk/_internal/message_parser.py rename to src/claude_agent_sdk/_internal/message_parser.py diff --git a/src/claude_code_sdk/_internal/query.py b/src/claude_agent_sdk/_internal/query.py similarity index 100% rename from src/claude_code_sdk/_internal/query.py rename to src/claude_agent_sdk/_internal/query.py diff --git a/src/claude_code_sdk/_internal/transport/__init__.py b/src/claude_agent_sdk/_internal/transport/__init__.py similarity index 100% rename from src/claude_code_sdk/_internal/transport/__init__.py rename to src/claude_agent_sdk/_internal/transport/__init__.py diff --git a/src/claude_code_sdk/_internal/transport/subprocess_cli.py b/src/claude_agent_sdk/_internal/transport/subprocess_cli.py similarity index 100% rename from src/claude_code_sdk/_internal/transport/subprocess_cli.py rename to src/claude_agent_sdk/_internal/transport/subprocess_cli.py diff --git a/src/claude_agent_sdk/_version.py b/src/claude_agent_sdk/_version.py new file mode 100644 index 0000000..20a0ec7 --- /dev/null +++ b/src/claude_agent_sdk/_version.py @@ -0,0 +1,3 @@ +"""Version information for claude-agent-sdk.""" + +__version__ = "0.0.23" diff --git a/src/claude_code_sdk/client.py b/src/claude_agent_sdk/client.py similarity index 100% rename from src/claude_code_sdk/client.py rename to src/claude_agent_sdk/client.py diff --git a/src/claude_code_sdk/py.typed b/src/claude_agent_sdk/py.typed similarity index 100% rename from src/claude_code_sdk/py.typed rename to src/claude_agent_sdk/py.typed diff --git a/src/claude_code_sdk/query.py b/src/claude_agent_sdk/query.py similarity index 98% rename from src/claude_code_sdk/query.py rename to src/claude_agent_sdk/query.py index 9c01d30..98ed0c1 100644 --- a/src/claude_code_sdk/query.py +++ b/src/claude_agent_sdk/query.py @@ -98,7 +98,7 @@ async def query( Example - With custom transport: ```python - from claude_code_sdk import query, Transport + from claude_agent_sdk import query, Transport class MyCustomTransport(Transport): # Implement custom transport logic diff --git a/src/claude_code_sdk/types.py b/src/claude_agent_sdk/types.py similarity index 100% rename from src/claude_code_sdk/types.py rename to src/claude_agent_sdk/types.py diff --git a/src/claude_code_sdk/_version.py b/src/claude_code_sdk/_version.py deleted file mode 100644 index 0ff4530..0000000 --- a/src/claude_code_sdk/_version.py +++ /dev/null @@ -1,3 +0,0 @@ -"""Version information for claude-code-sdk.""" - -__version__ = "0.0.23" diff --git a/tests/test_client.py b/tests/test_client.py index fc1b083..39c3289 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -4,8 +4,8 @@ from unittest.mock import AsyncMock, Mock, patch import anyio -from claude_code_sdk import AssistantMessage, ClaudeAgentOptions, query -from claude_code_sdk.types import TextBlock +from claude_agent_sdk import AssistantMessage, ClaudeAgentOptions, query +from claude_agent_sdk.types import TextBlock class TestQueryFunction: @@ -16,7 +16,7 @@ class TestQueryFunction: async def _test(): with patch( - "claude_code_sdk._internal.client.InternalClient.process_query" + "claude_agent_sdk._internal.client.InternalClient.process_query" ) as mock_process: # Mock the async generator async def mock_generator(): @@ -41,7 +41,7 @@ class TestQueryFunction: async def _test(): with patch( - "claude_code_sdk._internal.client.InternalClient.process_query" + "claude_agent_sdk._internal.client.InternalClient.process_query" ) as mock_process: async def mock_generator(): @@ -76,7 +76,7 @@ class TestQueryFunction: async def _test(): with patch( - "claude_code_sdk._internal.client.SubprocessCLITransport" + "claude_agent_sdk._internal.client.SubprocessCLITransport" ) as mock_transport_class: mock_transport = AsyncMock() mock_transport_class.return_value = mock_transport diff --git a/tests/test_errors.py b/tests/test_errors.py index 1eee01d..9490d07 100644 --- a/tests/test_errors.py +++ b/tests/test_errors.py @@ -1,6 +1,6 @@ """Tests for Claude SDK error handling.""" -from claude_code_sdk import ( +from claude_agent_sdk import ( ClaudeSDKError, CLIConnectionError, CLIJSONDecodeError, diff --git a/tests/test_integration.py b/tests/test_integration.py index f2ab018..1afae61 100644 --- a/tests/test_integration.py +++ b/tests/test_integration.py @@ -8,14 +8,14 @@ from unittest.mock import AsyncMock, Mock, patch import anyio import pytest -from claude_code_sdk import ( +from claude_agent_sdk import ( AssistantMessage, ClaudeAgentOptions, CLINotFoundError, ResultMessage, query, ) -from claude_code_sdk.types import ToolUseBlock +from claude_agent_sdk.types import ToolUseBlock class TestIntegration: @@ -26,7 +26,7 @@ class TestIntegration: async def _test(): with patch( - "claude_code_sdk._internal.client.SubprocessCLITransport" + "claude_agent_sdk._internal.client.SubprocessCLITransport" ) as mock_transport_class: mock_transport = AsyncMock() mock_transport_class.return_value = mock_transport @@ -84,7 +84,7 @@ class TestIntegration: async def _test(): with patch( - "claude_code_sdk._internal.client.SubprocessCLITransport" + "claude_agent_sdk._internal.client.SubprocessCLITransport" ) as mock_transport_class: mock_transport = AsyncMock() mock_transport_class.return_value = mock_transport @@ -170,7 +170,7 @@ class TestIntegration: async def _test(): with patch( - "claude_code_sdk._internal.client.SubprocessCLITransport" + "claude_agent_sdk._internal.client.SubprocessCLITransport" ) as mock_transport_class: mock_transport = AsyncMock() mock_transport_class.return_value = mock_transport diff --git a/tests/test_message_parser.py b/tests/test_message_parser.py index 58e5851..60bcc53 100644 --- a/tests/test_message_parser.py +++ b/tests/test_message_parser.py @@ -2,9 +2,9 @@ import pytest -from claude_code_sdk._errors import MessageParseError -from claude_code_sdk._internal.message_parser import parse_message -from claude_code_sdk.types import ( +from claude_agent_sdk._errors import MessageParseError +from claude_agent_sdk._internal.message_parser import parse_message +from claude_agent_sdk.types import ( AssistantMessage, ResultMessage, SystemMessage, diff --git a/tests/test_sdk_mcp_integration.py b/tests/test_sdk_mcp_integration.py index 07b0e61..b76c8e1 100644 --- a/tests/test_sdk_mcp_integration.py +++ b/tests/test_sdk_mcp_integration.py @@ -8,7 +8,7 @@ from typing import Any import pytest -from claude_code_sdk import ( +from claude_agent_sdk import ( ClaudeAgentOptions, create_sdk_mcp_server, tool, diff --git a/tests/test_streaming_client.py b/tests/test_streaming_client.py index 2b8d4a7..9f636d9 100644 --- a/tests/test_streaming_client.py +++ b/tests/test_streaming_client.py @@ -10,7 +10,7 @@ from unittest.mock import AsyncMock, Mock, patch import anyio import pytest -from claude_code_sdk import ( +from claude_agent_sdk import ( AssistantMessage, ClaudeAgentOptions, ClaudeSDKClient, @@ -20,7 +20,7 @@ from claude_code_sdk import ( UserMessage, query, ) -from claude_code_sdk._internal.transport.subprocess_cli import SubprocessCLITransport +from claude_agent_sdk._internal.transport.subprocess_cli import SubprocessCLITransport def create_mock_transport(with_init_response=True): @@ -115,7 +115,7 @@ class TestClaudeSDKClientStreaming: async def _test(): with patch( - "claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" + "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" ) as mock_transport_class: mock_transport = create_mock_transport() mock_transport_class.return_value = mock_transport @@ -135,7 +135,7 @@ class TestClaudeSDKClientStreaming: async def _test(): with patch( - "claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" + "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" ) as mock_transport_class: mock_transport = create_mock_transport() mock_transport_class.return_value = mock_transport @@ -159,7 +159,7 @@ class TestClaudeSDKClientStreaming: async def _test(): with patch( - "claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" + "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" ) as mock_transport_class: mock_transport = create_mock_transport() mock_transport_class.return_value = mock_transport @@ -178,7 +178,7 @@ class TestClaudeSDKClientStreaming: async def _test(): with patch( - "claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" + "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" ) as mock_transport_class: mock_transport = create_mock_transport() mock_transport_class.return_value = mock_transport @@ -206,7 +206,7 @@ class TestClaudeSDKClientStreaming: async def _test(): with patch( - "claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" + "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" ) as mock_transport_class: mock_transport = create_mock_transport() mock_transport_class.return_value = mock_transport @@ -240,7 +240,7 @@ class TestClaudeSDKClientStreaming: async def _test(): with patch( - "claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" + "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" ) as mock_transport_class: mock_transport = create_mock_transport() mock_transport_class.return_value = mock_transport @@ -279,7 +279,7 @@ class TestClaudeSDKClientStreaming: async def _test(): with patch( - "claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" + "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" ) as mock_transport_class: mock_transport = create_mock_transport() mock_transport_class.return_value = mock_transport @@ -348,7 +348,7 @@ class TestClaudeSDKClientStreaming: async def _test(): with patch( - "claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" + "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" ) as mock_transport_class: mock_transport = create_mock_transport() mock_transport_class.return_value = mock_transport @@ -430,7 +430,7 @@ class TestClaudeSDKClientStreaming: async def _test(): with patch( - "claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" + "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" ) as mock_transport_class: mock_transport = create_mock_transport() mock_transport_class.return_value = mock_transport @@ -478,7 +478,7 @@ class TestClaudeSDKClientStreaming: ) with patch( - "claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" + "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" ) as mock_transport_class: mock_transport = create_mock_transport() mock_transport_class.return_value = mock_transport @@ -497,7 +497,7 @@ class TestClaudeSDKClientStreaming: async def _test(): with patch( - "claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" + "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" ) as mock_transport_class: mock_transport = create_mock_transport() mock_transport_class.return_value = mock_transport @@ -699,7 +699,7 @@ class TestClaudeSDKClientEdgeCases: async def _test(): with patch( - "claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" + "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" ) as mock_transport_class: # Create a new mock transport for each call mock_transport_class.side_effect = [ @@ -732,7 +732,7 @@ class TestClaudeSDKClientEdgeCases: async def _test(): with patch( - "claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" + "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" ) as mock_transport_class: mock_transport = create_mock_transport() mock_transport_class.return_value = mock_transport @@ -751,7 +751,7 @@ class TestClaudeSDKClientEdgeCases: async def _test(): with patch( - "claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" + "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" ) as mock_transport_class: mock_transport = create_mock_transport() mock_transport_class.return_value = mock_transport diff --git a/tests/test_subprocess_buffering.py b/tests/test_subprocess_buffering.py index 755efcd..9c62557 100644 --- a/tests/test_subprocess_buffering.py +++ b/tests/test_subprocess_buffering.py @@ -8,12 +8,12 @@ from unittest.mock import AsyncMock, MagicMock import anyio import pytest -from claude_code_sdk._errors import CLIJSONDecodeError -from claude_code_sdk._internal.transport.subprocess_cli import ( +from claude_agent_sdk._errors import CLIJSONDecodeError +from claude_agent_sdk._internal.transport.subprocess_cli import ( _MAX_BUFFER_SIZE, SubprocessCLITransport, ) -from claude_code_sdk.types import ClaudeAgentOptions +from claude_agent_sdk.types import ClaudeAgentOptions class MockTextReceiveStream: diff --git a/tests/test_tool_callbacks.py b/tests/test_tool_callbacks.py index 6097ba8..27634c9 100644 --- a/tests/test_tool_callbacks.py +++ b/tests/test_tool_callbacks.py @@ -2,7 +2,7 @@ import pytest -from claude_code_sdk import ( +from claude_agent_sdk import ( ClaudeAgentOptions, HookContext, HookMatcher, @@ -10,8 +10,8 @@ from claude_code_sdk import ( PermissionResultDeny, ToolPermissionContext, ) -from claude_code_sdk._internal.query import Query -from claude_code_sdk._internal.transport import Transport +from claude_agent_sdk._internal.query import Query +from claude_agent_sdk._internal.transport import Transport class MockTransport(Transport): diff --git a/tests/test_transport.py b/tests/test_transport.py index 86ad97a..5a68c80 100644 --- a/tests/test_transport.py +++ b/tests/test_transport.py @@ -7,8 +7,8 @@ from unittest.mock import AsyncMock, MagicMock, patch import anyio import pytest -from claude_code_sdk._internal.transport.subprocess_cli import SubprocessCLITransport -from claude_code_sdk.types import ClaudeAgentOptions +from claude_agent_sdk._internal.transport.subprocess_cli import SubprocessCLITransport +from claude_agent_sdk.types import ClaudeAgentOptions class TestSubprocessCLITransport: @@ -16,7 +16,7 @@ class TestSubprocessCLITransport: def test_find_cli_not_found(self): """Test CLI not found error.""" - from claude_code_sdk._errors import CLINotFoundError + from claude_agent_sdk._errors import CLINotFoundError with ( patch("shutil.which", return_value=None), @@ -207,7 +207,7 @@ class TestSubprocessCLITransport: def test_connect_with_nonexistent_cwd(self): """Test that connect raises CLIConnectionError when cwd doesn't exist.""" - from claude_code_sdk._errors import CLIConnectionError + from claude_agent_sdk._errors import CLIConnectionError async def _test(): transport = SubprocessCLITransport( diff --git a/tests/test_types.py b/tests/test_types.py index cc11492..2142b5a 100644 --- a/tests/test_types.py +++ b/tests/test_types.py @@ -1,11 +1,11 @@ """Tests for Claude SDK type definitions.""" -from claude_code_sdk import ( +from claude_agent_sdk import ( AssistantMessage, ClaudeAgentOptions, ResultMessage, ) -from claude_code_sdk.types import ( +from claude_agent_sdk.types import ( TextBlock, ThinkingBlock, ToolResultBlock,