ccproxy.models.claude_sdk¶
ccproxy.models.claude_sdk
¶
Strongly-typed Pydantic models for Claude SDK types.
This module provides Pydantic models that mirror the Claude SDK types from the official claude-code-sdk-python repository. These models enable strong typing throughout the proxy system and provide runtime validation.
Based on: https://github.com/anthropics/claude-code-sdk-python/blob/main/src/claude_code_sdk/types.py
ToolUseBlock
¶
ToolResultBlock
¶
ThinkingBlock
¶
Bases: BaseModel
Thinking content block from Claude SDK.
Note: Thinking blocks are not normally sent by Claude Code SDK, but this model is included for defensive programming to handle any future SDK changes or edge cases where thinking content might be included in SDK responses.
UserMessage
¶
Bases: BaseModel
User message from Claude SDK.
convert_content_blocks
classmethod
¶
Convert Claude SDK dataclass blocks to Pydantic models.
Source code in ccproxy/models/claude_sdk.py
AssistantMessage
¶
Bases: BaseModel
Assistant message from Claude SDK.
convert_content_blocks
classmethod
¶
Convert Claude SDK dataclass blocks to Pydantic models.
Source code in ccproxy/models/claude_sdk.py
ResultMessage
¶
SDKMessageMode
¶
ResultMessageBlock
¶
SDKMessage
¶
Bases: BaseModel
Message format used to send queries over the Claude SDK.
This represents the internal message structure expected by the Claude Code SDK client for query operations.
to_sdk_variant
¶
Convert a base model to its SDK variant using model_validate().
Parameters:
Name | Type | Description | Default |
---|---|---|---|
base_model
|
BaseModel
|
The base model instance to convert |
required |
sdk_class
|
type[T]
|
The target SDK class to convert to |
required |
Returns:
Type | Description |
---|---|
T
|
Instance of the SDK class with data from the base model |
Example
text_block = TextBlock(text="message") text_block_sdk = to_sdk_variant(text_block, TextBlockSDK)
Source code in ccproxy/models/claude_sdk.py
create_sdk_message
¶
Create an SDKMessage instance for sending queries to Claude SDK.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
content
|
str
|
The text content to send to Claude |
required |
session_id
|
str | None
|
Optional session ID for conversation continuity |
None
|
parent_tool_use_id
|
str | None
|
Optional parent tool use ID |
None
|
Returns:
Type | Description |
---|---|
SDKMessage
|
SDKMessage instance ready to send to Claude SDK |
Source code in ccproxy/models/claude_sdk.py
convert_sdk_text_block
¶
convert_sdk_tool_use_block
¶
Convert raw tool use data to ToolUseBlock model.
convert_sdk_tool_result_block
¶
Convert raw tool result data to ToolResultBlock model.
Source code in ccproxy/models/claude_sdk.py
convert_sdk_system_message
¶
Convert raw system message data to SystemMessage model.
convert_sdk_result_message
¶
convert_sdk_result_message(
session_id,
subtype="",
duration_ms=0,
duration_api_ms=0,
is_error=False,
num_turns=0,
usage=None,
total_cost_usd=None,
result=None,
)
Convert raw result message data to ResultMessage model.