| """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: ... |
|
|