claude-proxy / src /free_claude_code /messaging /managed_protocols.py
dheraingoud's picture
feat: synchronize proxy with upstream commits up to 5305bd7 and integrate NIM key rotator
0a54372
Raw
History Blame Contribute Delete
1.03 kB
"""Protocols for messaging-owned managed Claude sessions."""
from collections.abc import AsyncGenerator
from typing import Any, Protocol, runtime_checkable
@runtime_checkable
class ManagedClaudeSessionProtocol(Protocol):
"""Protocol for managed Claude sessions used by messaging."""
def start_task(
self, prompt: str, session_id: str | None = None, fork_session: bool = False
) -> AsyncGenerator[dict, Any]: ...
@property
def is_busy(self) -> bool: ...
@runtime_checkable
class ManagedClaudeSessionManagerProtocol(Protocol):
"""Protocol for the managed Claude session pool used by messaging."""
async def get_or_create_session(
self, session_id: str | None = None
) -> tuple[ManagedClaudeSessionProtocol, str, bool]: ...
async def register_real_session_id(
self, temp_id: str, real_session_id: str
) -> bool: ...
async def stop_all(self) -> None: ...
async def remove_session(self, session_id: str) -> bool: ...
def get_stats(self) -> dict: ...