Rename claude_code to claude_agent (#188)

This commit is contained in:
Dickson Tsai
2025-09-28 14:52:53 -07:00
committed by GitHub
parent 180d64887a
commit b3656b1765
49 changed files with 109 additions and 109 deletions

View File

@@ -51,9 +51,9 @@ jobs:
--title "Release v${{ steps.extract_version.outputs.version }}" \ --title "Release v${{ steps.extract_version.outputs.version }}" \
--generate-notes \ --generate-notes \
--notes-start-tag "${{ steps.previous_tag.outputs.previous_tag }}" \ --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 ### Installation
\`\`\`bash \`\`\`bash
pip install claude-code-sdk==${{ steps.extract_version.outputs.version }} pip install claude-agent-sdk==${{ steps.extract_version.outputs.version }}
\`\`\`" \`\`\`"

View File

@@ -102,7 +102,7 @@ jobs:
run: | run: |
twine upload dist/* twine upload dist/*
echo "Package published to PyPI" 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 - name: Create version update PR
env: env:
@@ -124,7 +124,7 @@ jobs:
echo "Getting SHA for pyproject.toml" echo "Getting SHA for pyproject.toml"
PYPROJECT_SHA=$(gh api /repos/$GITHUB_REPOSITORY/contents/pyproject.toml --jq '.sha') PYPROJECT_SHA=$(gh api /repos/$GITHUB_REPOSITORY/contents/pyproject.toml --jq '.sha')
echo "Getting SHA for _version.py" 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) # Commit pyproject.toml via GitHub API (this creates signed commits)
message="chore: bump version to ${{ env.VERSION }}" message="chore: bump version to ${{ env.VERSION }}"
@@ -138,10 +138,10 @@ jobs:
-f branch="$BRANCH_NAME" -f branch="$BRANCH_NAME"
# Commit _version.py via GitHub API # 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 \ gh api \
--method PUT \ --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 message="$message" \
-F content=@version.py.b64 \ -F content=@version.py.b64 \
-f sha="$VERSION_SHA" \ -f sha="$VERSION_SHA" \
@@ -152,11 +152,11 @@ jobs:
## Changes ## Changes
- Updated version in \`pyproject.toml\` - 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 ## Release Information
- Published to PyPI: https://pypi.org/project/claude-code-sdk/${{ env.VERSION }}/ - Published to PyPI: https://pypi.org/project/claude-agent-sdk/${{ env.VERSION }}/
- Install with: \`pip install claude-code-sdk==${{ env.VERSION }}\` - Install with: \`pip install claude-agent-sdk==${{ env.VERSION }}\`
🤖 Generated by GitHub Actions" 🤖 Generated by GitHub Actions"

View File

@@ -28,7 +28,7 @@ jobs:
- name: Run tests - name: Run tests
run: | 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 - name: Upload coverage to Codecov
uses: codecov/codecov-action@v4 uses: codecov/codecov-action@v4

View File

@@ -18,7 +18,7 @@ python -m pytest tests/test_client.py
# Codebase Structure # Codebase Structure
- `src/claude_code_sdk/` - Main package - `src/claude_agent_sdk/` - Main package
- `client.py` - ClaudeSDKClient for interactive sessions - `client.py` - ClaudeSDKClient for interactive sessions
- `query.py` - One-shot query function - `query.py` - One-shot query function
- `types.py` - Type definitions - `types.py` - Type definitions

View File

@@ -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 ## Installation
```bash ```bash
pip install claude-code-sdk pip install claude-agent-sdk
``` ```
**Prerequisites:** **Prerequisites:**
@@ -17,7 +17,7 @@ pip install claude-code-sdk
```python ```python
import anyio import anyio
from claude_code_sdk import query from claude_agent_sdk import query
async def main(): async def main():
async for message in query(prompt="What is 2 + 2?"): async for message in query(prompt="What is 2 + 2?"):
@@ -28,10 +28,10 @@ anyio.run(main)
## Basic Usage: query() ## 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 ```python
from claude_code_sdk import query, ClaudeAgentOptions, AssistantMessage, TextBlock from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, TextBlock
# Simple query # Simple query
async for message in query(prompt="Hello Claude"): async for message in query(prompt="Hello Claude"):
@@ -79,7 +79,7 @@ options = ClaudeAgentOptions(
## ClaudeSDKClient ## ClaudeSDKClient
`ClaudeSDKClient` supports bidirectional, interactive conversations with Claude `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. 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 #### Creating a Simple Tool
```python ```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 # Define a tool using the @tool decorator
@tool("greet", "Greet a user", {"name": str}) @tool("greet", "Greet a user", {"name": str})
@@ -186,7 +186,7 @@ For more examples, see examples/hooks.py.
#### Example #### Example
```python ```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): async def check_bash_command(input_data, tool_use_id, context):
tool_name = input_data["tool_name"] tool_name = input_data["tool_name"]
@@ -232,7 +232,7 @@ async with ClaudeSDKClient(options=options) as client:
## Types ## 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 - `ClaudeAgentOptions` - Configuration options
- `AssistantMessage`, `UserMessage`, `SystemMessage`, `ResultMessage` - Message types - `AssistantMessage`, `UserMessage`, `SystemMessage`, `ResultMessage` - Message types
- `TextBlock`, `ToolUseBlock`, `ToolResultBlock` - Content blocks - `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 ## Error Handling
```python ```python
from claude_code_sdk import ( from claude_agent_sdk import (
ClaudeSDKError, # Base error ClaudeSDKError, # Base error
CLINotFoundError, # Claude Code not installed CLINotFoundError, # Claude Code not installed
CLIConnectionError, # Connection issues CLIConnectionError, # Connection issues
@@ -259,7 +259,7 @@ except CLIJSONDecodeError as e:
print(f"Failed to parse response: {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 ## Available Tools

View File

@@ -5,7 +5,7 @@ from pathlib import Path
import pytest import pytest
from claude_code_sdk import ( from claude_agent_sdk import (
AgentDefinition, AgentDefinition,
ClaudeAgentOptions, ClaudeAgentOptions,
ClaudeSDKClient, ClaudeSDKClient,

View File

@@ -2,7 +2,7 @@
import pytest import pytest
from claude_code_sdk import ( from claude_agent_sdk import (
ClaudeAgentOptions, ClaudeAgentOptions,
ClaudeSDKClient, ClaudeSDKClient,
) )

View File

@@ -9,8 +9,8 @@ from typing import List, Any
import pytest import pytest
from claude_code_sdk import ClaudeSDKClient from claude_agent_sdk import ClaudeSDKClient
from claude_code_sdk.types import ( from claude_agent_sdk.types import (
ClaudeAgentOptions, ClaudeAgentOptions,
StreamEvent, StreamEvent,
AssistantMessage, AssistantMessage,

View File

@@ -8,7 +8,7 @@ from typing import Any
import pytest import pytest
from claude_code_sdk import ( from claude_agent_sdk import (
ClaudeAgentOptions, ClaudeAgentOptions,
ClaudeSDKClient, ClaudeSDKClient,
create_sdk_mcp_server, create_sdk_mcp_server,

View File

@@ -2,7 +2,7 @@
import pytest import pytest
from claude_code_sdk import ClaudeCodeOptions, query from claude_agent_sdk import ClaudeAgentOptions, query
@pytest.mark.e2e @pytest.mark.e2e
@@ -15,7 +15,7 @@ async def test_stderr_callback_captures_debug_output():
stderr_lines.append(line) stderr_lines.append(line)
# Enable debug mode to generate stderr output # Enable debug mode to generate stderr output
options = ClaudeCodeOptions( options = ClaudeAgentOptions(
stderr=capture_stderr, stderr=capture_stderr,
extra_args={"debug-to-stderr": None} extra_args={"debug-to-stderr": None}
) )
@@ -39,7 +39,7 @@ async def test_stderr_callback_without_debug():
stderr_lines.append(line) stderr_lines.append(line)
# No debug mode enabled # No debug mode enabled
options = ClaudeCodeOptions(stderr=capture_stderr) options = ClaudeAgentOptions(stderr=capture_stderr)
# Run a simple query # Run a simple query
async for _ in query(prompt="What is 1+1?", options=options): async for _ in query(prompt="What is 1+1?", options=options):

View File

@@ -2,7 +2,7 @@
import pytest import pytest
from claude_code_sdk import ( from claude_agent_sdk import (
ClaudeAgentOptions, ClaudeAgentOptions,
ClaudeSDKClient, ClaudeSDKClient,
PermissionResultAllow, PermissionResultAllow,

View File

@@ -10,7 +10,7 @@ Usage:
import anyio import anyio
from claude_code_sdk import ( from claude_agent_sdk import (
AgentDefinition, AgentDefinition,
AssistantMessage, AssistantMessage,
ClaudeAgentOptions, ClaudeAgentOptions,
@@ -38,7 +38,7 @@ async def code_reviewer_example():
) )
async for message in query( 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, options=options,
): ):
if isinstance(message, AssistantMessage): if isinstance(message, AssistantMessage):

View File

@@ -15,8 +15,8 @@ import logging
import sys import sys
from typing import Any from typing import Any
from claude_code_sdk import ClaudeAgentOptions, ClaudeSDKClient from claude_agent_sdk import ClaudeAgentOptions, ClaudeSDKClient
from claude_code_sdk.types import ( from claude_agent_sdk.types import (
AssistantMessage, AssistantMessage,
HookContext, HookContext,
HookJSONOutput, HookJSONOutput,

View File

@@ -14,8 +14,8 @@ messages will include StreamEvent messages interspersed with regular messages.
""" """
import asyncio import asyncio
from claude_code_sdk import ClaudeSDKClient from claude_agent_sdk import ClaudeSDKClient
from claude_code_sdk.types import ( from claude_agent_sdk.types import (
ClaudeAgentOptions, ClaudeAgentOptions,
StreamEvent, StreamEvent,
AssistantMessage, AssistantMessage,

View File

@@ -12,7 +12,7 @@ and simpler deployment.
import asyncio import asyncio
from typing import Any from typing import Any
from claude_code_sdk import ( from claude_agent_sdk import (
ClaudeAgentOptions, ClaudeAgentOptions,
create_sdk_mcp_server, create_sdk_mcp_server,
tool, tool,
@@ -99,7 +99,7 @@ async def power(args: dict[str, Any]) -> dict[str, Any]:
def display_message(msg): def display_message(msg):
"""Display message content in a clean format.""" """Display message content in a clean format."""
from claude_code_sdk import ( from claude_agent_sdk import (
AssistantMessage, AssistantMessage,
ResultMessage, ResultMessage,
SystemMessage, SystemMessage,
@@ -137,7 +137,7 @@ def display_message(msg):
async def main(): async def main():
"""Run example calculations using the SDK MCP server with streaming client.""" """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 # Create the calculator server with all tools
calculator = create_sdk_mcp_server( calculator = create_sdk_mcp_server(

View File

@@ -3,7 +3,7 @@
import anyio import anyio
from claude_code_sdk import ( from claude_agent_sdk import (
AssistantMessage, AssistantMessage,
ClaudeAgentOptions, ClaudeAgentOptions,
ResultMessage, ResultMessage,

View File

@@ -29,7 +29,7 @@ import asyncio
import sys import sys
from pathlib import Path from pathlib import Path
from claude_code_sdk import ( from claude_agent_sdk import (
ClaudeAgentOptions, ClaudeAgentOptions,
ClaudeSDKClient, ClaudeSDKClient,
SystemMessage, SystemMessage,

View File

@@ -2,7 +2,7 @@
import asyncio import asyncio
from claude_code_sdk import ClaudeCodeOptions, query from claude_agent_sdk import ClaudeAgentOptions, query
async def main(): async def main():
@@ -19,7 +19,7 @@ async def main():
print(f"Error detected: {message}") print(f"Error detected: {message}")
# Create options with stderr callback and enable debug mode # Create options with stderr callback and enable debug mode
options = ClaudeCodeOptions( options = ClaudeAgentOptions(
stderr=stderr_callback, stderr=stderr_callback,
extra_args={"debug-to-stderr": None} # Enable debug output extra_args={"debug-to-stderr": None} # Enable debug output
) )

View File

@@ -19,7 +19,7 @@ import asyncio
import contextlib import contextlib
import sys import sys
from claude_code_sdk import ( from claude_agent_sdk import (
AssistantMessage, AssistantMessage,
ClaudeAgentOptions, ClaudeAgentOptions,
ClaudeSDKClient, ClaudeSDKClient,

View File

@@ -14,7 +14,7 @@ bash commands, edit files, search the web, fetch web content) to accomplish.
# BASIC STREAMING # 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: async with ClaudeSDKClient() as client:
print("User: What is 2+2?") print("User: What is 2+2?")
@@ -33,7 +33,7 @@ async with ClaudeSDKClient() as client:
import asyncio import asyncio
from claude_code_sdk import AssistantMessage, ClaudeSDKClient, TextBlock from claude_agent_sdk import AssistantMessage, ClaudeSDKClient, TextBlock
async with ClaudeSDKClient() as client: async with ClaudeSDKClient() as client:
async def send_and_receive(prompt): async def send_and_receive(prompt):
@@ -54,7 +54,7 @@ async with ClaudeSDKClient() as client:
# PERSISTENT CLIENT FOR MULTIPLE QUESTIONS # PERSISTENT CLIENT FOR MULTIPLE QUESTIONS
# ============================================================================ # ============================================================================
from claude_code_sdk import AssistantMessage, ClaudeSDKClient, TextBlock from claude_agent_sdk import AssistantMessage, ClaudeSDKClient, TextBlock
# Create client # Create client
client = ClaudeSDKClient() client = ClaudeSDKClient()
@@ -89,7 +89,7 @@ await client.disconnect()
# IMPORTANT: Interrupts require active message consumption. You must be # IMPORTANT: Interrupts require active message consumption. You must be
# consuming messages from the client for the interrupt to be processed. # 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: async with ClaudeSDKClient() as client:
print("\n--- Sending initial message ---\n") print("\n--- Sending initial message ---\n")
@@ -141,7 +141,7 @@ async with ClaudeSDKClient() as client:
# ERROR HANDLING PATTERN # ERROR HANDLING PATTERN
# ============================================================================ # ============================================================================
from claude_code_sdk import AssistantMessage, ClaudeSDKClient, TextBlock from claude_agent_sdk import AssistantMessage, ClaudeSDKClient, TextBlock
try: try:
async with ClaudeSDKClient() as client: async with ClaudeSDKClient() as client:
@@ -168,7 +168,7 @@ except Exception as e:
# SENDING ASYNC ITERABLE OF MESSAGES # 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(): async def message_generator():
@@ -210,7 +210,7 @@ async with ClaudeSDKClient() as client:
# COLLECTING ALL MESSAGES INTO A LIST # 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: async with ClaudeSDKClient() as client:
print("User: What are the primary colors?") print("User: What are the primary colors?")

View File

@@ -9,7 +9,7 @@ Claude's responses.
import trio import trio
from claude_code_sdk import ( from claude_agent_sdk import (
AssistantMessage, AssistantMessage,
ClaudeAgentOptions, ClaudeAgentOptions,
ClaudeSDKClient, ClaudeSDKClient,

View File

@@ -3,7 +3,7 @@
import anyio import anyio
from claude_code_sdk import ( from claude_agent_sdk import (
AssistantMessage, AssistantMessage,
ClaudeAgentOptions, ClaudeAgentOptions,
TextBlock, TextBlock,

View File

@@ -8,7 +8,7 @@ which tools Claude can use and modify their inputs.
import asyncio import asyncio
import json import json
from claude_code_sdk import ( from claude_agent_sdk import (
AssistantMessage, AssistantMessage,
ClaudeAgentOptions, ClaudeAgentOptions,
ClaudeSDKClient, ClaudeSDKClient,

View File

@@ -3,7 +3,7 @@ requires = ["hatchling"]
build-backend = "hatchling.build" build-backend = "hatchling.build"
[project] [project]
name = "claude-code-sdk" name = "claude-agent-sdk"
version = "0.0.23" version = "0.0.23"
description = "Python SDK for Claude Code" description = "Python SDK for Claude Code"
readme = "README.md" readme = "README.md"
@@ -41,12 +41,12 @@ dev = [
] ]
[project.urls] [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" 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] [tool.hatch.build.targets.wheel]
packages = ["src/claude_code_sdk"] packages = ["src/claude_agent_sdk"]
[tool.hatch.build.targets.sdist] [tool.hatch.build.targets.sdist]
include = [ include = [
@@ -105,4 +105,4 @@ ignore = [
] ]
[tool.ruff.lint.isort] [tool.ruff.lint.isort]
known-first-party = ["claude_code_sdk"] known-first-party = ["claude_agent_sdk"]

View File

@@ -25,7 +25,7 @@ def update_version(new_version: str) -> None:
print(f"Updated pyproject.toml to version {new_version}") print(f"Updated pyproject.toml to version {new_version}")
# Update _version.py # 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() content = version_path.read_text()
# Only update __version__ assignment # Only update __version__ assignment

View File

@@ -0,0 +1,3 @@
"""Version information for claude-agent-sdk."""
__version__ = "0.0.23"

View File

@@ -98,7 +98,7 @@ async def query(
Example - With custom transport: Example - With custom transport:
```python ```python
from claude_code_sdk import query, Transport from claude_agent_sdk import query, Transport
class MyCustomTransport(Transport): class MyCustomTransport(Transport):
# Implement custom transport logic # Implement custom transport logic

View File

@@ -1,3 +0,0 @@
"""Version information for claude-code-sdk."""
__version__ = "0.0.23"

View File

@@ -4,8 +4,8 @@ from unittest.mock import AsyncMock, Mock, patch
import anyio import anyio
from claude_code_sdk import AssistantMessage, ClaudeAgentOptions, query from claude_agent_sdk import AssistantMessage, ClaudeAgentOptions, query
from claude_code_sdk.types import TextBlock from claude_agent_sdk.types import TextBlock
class TestQueryFunction: class TestQueryFunction:
@@ -16,7 +16,7 @@ class TestQueryFunction:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.client.InternalClient.process_query" "claude_agent_sdk._internal.client.InternalClient.process_query"
) as mock_process: ) as mock_process:
# Mock the async generator # Mock the async generator
async def mock_generator(): async def mock_generator():
@@ -41,7 +41,7 @@ class TestQueryFunction:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.client.InternalClient.process_query" "claude_agent_sdk._internal.client.InternalClient.process_query"
) as mock_process: ) as mock_process:
async def mock_generator(): async def mock_generator():
@@ -76,7 +76,7 @@ class TestQueryFunction:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.client.SubprocessCLITransport" "claude_agent_sdk._internal.client.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
mock_transport = AsyncMock() mock_transport = AsyncMock()
mock_transport_class.return_value = mock_transport mock_transport_class.return_value = mock_transport

View File

@@ -1,6 +1,6 @@
"""Tests for Claude SDK error handling.""" """Tests for Claude SDK error handling."""
from claude_code_sdk import ( from claude_agent_sdk import (
ClaudeSDKError, ClaudeSDKError,
CLIConnectionError, CLIConnectionError,
CLIJSONDecodeError, CLIJSONDecodeError,

View File

@@ -8,14 +8,14 @@ from unittest.mock import AsyncMock, Mock, patch
import anyio import anyio
import pytest import pytest
from claude_code_sdk import ( from claude_agent_sdk import (
AssistantMessage, AssistantMessage,
ClaudeAgentOptions, ClaudeAgentOptions,
CLINotFoundError, CLINotFoundError,
ResultMessage, ResultMessage,
query, query,
) )
from claude_code_sdk.types import ToolUseBlock from claude_agent_sdk.types import ToolUseBlock
class TestIntegration: class TestIntegration:
@@ -26,7 +26,7 @@ class TestIntegration:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.client.SubprocessCLITransport" "claude_agent_sdk._internal.client.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
mock_transport = AsyncMock() mock_transport = AsyncMock()
mock_transport_class.return_value = mock_transport mock_transport_class.return_value = mock_transport
@@ -84,7 +84,7 @@ class TestIntegration:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.client.SubprocessCLITransport" "claude_agent_sdk._internal.client.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
mock_transport = AsyncMock() mock_transport = AsyncMock()
mock_transport_class.return_value = mock_transport mock_transport_class.return_value = mock_transport
@@ -170,7 +170,7 @@ class TestIntegration:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.client.SubprocessCLITransport" "claude_agent_sdk._internal.client.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
mock_transport = AsyncMock() mock_transport = AsyncMock()
mock_transport_class.return_value = mock_transport mock_transport_class.return_value = mock_transport

View File

@@ -2,9 +2,9 @@
import pytest import pytest
from claude_code_sdk._errors import MessageParseError from claude_agent_sdk._errors import MessageParseError
from claude_code_sdk._internal.message_parser import parse_message from claude_agent_sdk._internal.message_parser import parse_message
from claude_code_sdk.types import ( from claude_agent_sdk.types import (
AssistantMessage, AssistantMessage,
ResultMessage, ResultMessage,
SystemMessage, SystemMessage,

View File

@@ -8,7 +8,7 @@ from typing import Any
import pytest import pytest
from claude_code_sdk import ( from claude_agent_sdk import (
ClaudeAgentOptions, ClaudeAgentOptions,
create_sdk_mcp_server, create_sdk_mcp_server,
tool, tool,

View File

@@ -10,7 +10,7 @@ from unittest.mock import AsyncMock, Mock, patch
import anyio import anyio
import pytest import pytest
from claude_code_sdk import ( from claude_agent_sdk import (
AssistantMessage, AssistantMessage,
ClaudeAgentOptions, ClaudeAgentOptions,
ClaudeSDKClient, ClaudeSDKClient,
@@ -20,7 +20,7 @@ from claude_code_sdk import (
UserMessage, UserMessage,
query, 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): def create_mock_transport(with_init_response=True):
@@ -115,7 +115,7 @@ class TestClaudeSDKClientStreaming:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
mock_transport = create_mock_transport() mock_transport = create_mock_transport()
mock_transport_class.return_value = mock_transport mock_transport_class.return_value = mock_transport
@@ -135,7 +135,7 @@ class TestClaudeSDKClientStreaming:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
mock_transport = create_mock_transport() mock_transport = create_mock_transport()
mock_transport_class.return_value = mock_transport mock_transport_class.return_value = mock_transport
@@ -159,7 +159,7 @@ class TestClaudeSDKClientStreaming:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
mock_transport = create_mock_transport() mock_transport = create_mock_transport()
mock_transport_class.return_value = mock_transport mock_transport_class.return_value = mock_transport
@@ -178,7 +178,7 @@ class TestClaudeSDKClientStreaming:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
mock_transport = create_mock_transport() mock_transport = create_mock_transport()
mock_transport_class.return_value = mock_transport mock_transport_class.return_value = mock_transport
@@ -206,7 +206,7 @@ class TestClaudeSDKClientStreaming:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
mock_transport = create_mock_transport() mock_transport = create_mock_transport()
mock_transport_class.return_value = mock_transport mock_transport_class.return_value = mock_transport
@@ -240,7 +240,7 @@ class TestClaudeSDKClientStreaming:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
mock_transport = create_mock_transport() mock_transport = create_mock_transport()
mock_transport_class.return_value = mock_transport mock_transport_class.return_value = mock_transport
@@ -279,7 +279,7 @@ class TestClaudeSDKClientStreaming:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
mock_transport = create_mock_transport() mock_transport = create_mock_transport()
mock_transport_class.return_value = mock_transport mock_transport_class.return_value = mock_transport
@@ -348,7 +348,7 @@ class TestClaudeSDKClientStreaming:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
mock_transport = create_mock_transport() mock_transport = create_mock_transport()
mock_transport_class.return_value = mock_transport mock_transport_class.return_value = mock_transport
@@ -430,7 +430,7 @@ class TestClaudeSDKClientStreaming:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
mock_transport = create_mock_transport() mock_transport = create_mock_transport()
mock_transport_class.return_value = mock_transport mock_transport_class.return_value = mock_transport
@@ -478,7 +478,7 @@ class TestClaudeSDKClientStreaming:
) )
with patch( with patch(
"claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
mock_transport = create_mock_transport() mock_transport = create_mock_transport()
mock_transport_class.return_value = mock_transport mock_transport_class.return_value = mock_transport
@@ -497,7 +497,7 @@ class TestClaudeSDKClientStreaming:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
mock_transport = create_mock_transport() mock_transport = create_mock_transport()
mock_transport_class.return_value = mock_transport mock_transport_class.return_value = mock_transport
@@ -699,7 +699,7 @@ class TestClaudeSDKClientEdgeCases:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
# Create a new mock transport for each call # Create a new mock transport for each call
mock_transport_class.side_effect = [ mock_transport_class.side_effect = [
@@ -732,7 +732,7 @@ class TestClaudeSDKClientEdgeCases:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
mock_transport = create_mock_transport() mock_transport = create_mock_transport()
mock_transport_class.return_value = mock_transport mock_transport_class.return_value = mock_transport
@@ -751,7 +751,7 @@ class TestClaudeSDKClientEdgeCases:
async def _test(): async def _test():
with patch( with patch(
"claude_code_sdk._internal.transport.subprocess_cli.SubprocessCLITransport" "claude_agent_sdk._internal.transport.subprocess_cli.SubprocessCLITransport"
) as mock_transport_class: ) as mock_transport_class:
mock_transport = create_mock_transport() mock_transport = create_mock_transport()
mock_transport_class.return_value = mock_transport mock_transport_class.return_value = mock_transport

View File

@@ -8,12 +8,12 @@ from unittest.mock import AsyncMock, MagicMock
import anyio import anyio
import pytest import pytest
from claude_code_sdk._errors import CLIJSONDecodeError from claude_agent_sdk._errors import CLIJSONDecodeError
from claude_code_sdk._internal.transport.subprocess_cli import ( from claude_agent_sdk._internal.transport.subprocess_cli import (
_MAX_BUFFER_SIZE, _MAX_BUFFER_SIZE,
SubprocessCLITransport, SubprocessCLITransport,
) )
from claude_code_sdk.types import ClaudeAgentOptions from claude_agent_sdk.types import ClaudeAgentOptions
class MockTextReceiveStream: class MockTextReceiveStream:

View File

@@ -2,7 +2,7 @@
import pytest import pytest
from claude_code_sdk import ( from claude_agent_sdk import (
ClaudeAgentOptions, ClaudeAgentOptions,
HookContext, HookContext,
HookMatcher, HookMatcher,
@@ -10,8 +10,8 @@ from claude_code_sdk import (
PermissionResultDeny, PermissionResultDeny,
ToolPermissionContext, ToolPermissionContext,
) )
from claude_code_sdk._internal.query import Query from claude_agent_sdk._internal.query import Query
from claude_code_sdk._internal.transport import Transport from claude_agent_sdk._internal.transport import Transport
class MockTransport(Transport): class MockTransport(Transport):

View File

@@ -7,8 +7,8 @@ from unittest.mock import AsyncMock, MagicMock, patch
import anyio import anyio
import pytest import pytest
from claude_code_sdk._internal.transport.subprocess_cli import SubprocessCLITransport from claude_agent_sdk._internal.transport.subprocess_cli import SubprocessCLITransport
from claude_code_sdk.types import ClaudeAgentOptions from claude_agent_sdk.types import ClaudeAgentOptions
class TestSubprocessCLITransport: class TestSubprocessCLITransport:
@@ -16,7 +16,7 @@ class TestSubprocessCLITransport:
def test_find_cli_not_found(self): def test_find_cli_not_found(self):
"""Test CLI not found error.""" """Test CLI not found error."""
from claude_code_sdk._errors import CLINotFoundError from claude_agent_sdk._errors import CLINotFoundError
with ( with (
patch("shutil.which", return_value=None), patch("shutil.which", return_value=None),
@@ -207,7 +207,7 @@ class TestSubprocessCLITransport:
def test_connect_with_nonexistent_cwd(self): def test_connect_with_nonexistent_cwd(self):
"""Test that connect raises CLIConnectionError when cwd doesn't exist.""" """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(): async def _test():
transport = SubprocessCLITransport( transport = SubprocessCLITransport(

View File

@@ -1,11 +1,11 @@
"""Tests for Claude SDK type definitions.""" """Tests for Claude SDK type definitions."""
from claude_code_sdk import ( from claude_agent_sdk import (
AssistantMessage, AssistantMessage,
ClaudeAgentOptions, ClaudeAgentOptions,
ResultMessage, ResultMessage,
) )
from claude_code_sdk.types import ( from claude_agent_sdk.types import (
TextBlock, TextBlock,
ThinkingBlock, ThinkingBlock,
ToolResultBlock, ToolResultBlock,