Skip to content

ccproxy.plugins.claude_sdk.config

ccproxy.plugins.claude_sdk.config

Configuration for Claude SDK plugin.

SDKMessageMode

Bases: str, Enum

Modes for handling SDK messages from Claude SDK.

  • forward: Forward SDK content blocks directly with original types and metadata
  • ignore: Skip SDK messages and blocks completely
  • formatted: Format as XML tags with JSON data in text deltas

SystemPromptInjectionMode

Bases: str, Enum

Modes for system prompt injection.

  • minimal: Only inject Claude Code identification prompt
  • full: Inject all detected system messages from Claude CLI

SessionPoolSettings

Bases: BaseModel

Session pool configuration settings.

validate_timeout_hierarchy

validate_timeout_hierarchy()

Ensure stream timeouts are less than session TTL.

Source code in ccproxy/plugins/claude_sdk/config.py
@model_validator(mode="after")
def validate_timeout_hierarchy(self) -> "SessionPoolSettings":
    """Ensure stream timeouts are less than session TTL."""
    if self.stream_ongoing_timeout >= self.session_ttl:
        raise ValueError(
            f"stream_ongoing_timeout ({self.stream_ongoing_timeout}s) must be less than session_ttl ({self.session_ttl}s)"
        )

    if self.stream_first_chunk_timeout >= self.stream_ongoing_timeout:
        raise ValueError(
            f"stream_first_chunk_timeout ({self.stream_first_chunk_timeout}s) must be less than stream_ongoing_timeout ({self.stream_ongoing_timeout}s)"
        )

    return self

ClaudeSDKSettings

Bases: ProviderConfig

Claude SDK specific configuration.

ensure_session_pool_settings

ensure_session_pool_settings()

Ensure sdk_session_pool is initialized.

Source code in ccproxy/plugins/claude_sdk/config.py
@model_validator(mode="after")
def ensure_session_pool_settings(self) -> "ClaudeSDKSettings":
    """Ensure sdk_session_pool is initialized."""
    if self.sdk_session_pool is None:
        self.sdk_session_pool = SessionPoolSettings()
    return self