Public declaration syntax from forge-py/src/forge/collab/session.py Original source SHA-256: a078e69a8acb49b7b729f5bccca63916aa8f34875804672616d21736b226d1d9 Function bodies and constant values are omitted. This is not the complete implementation. Source line 34 class SessionContract(Protocol) Source line 43 async def on_session_join(self, session: CollaborationSession, role: CollaborationRole) -> None Source line 59 async def on_session_transition(self, session_id: str, from_state: SessionState, to_state: SessionState) -> None Source line 77 async def on_session_leave(self, session_id: str, reason: str) -> None Source line 94 class SessionManager() Source line 115 def __init__(self) -> None Source line 120 def state(self) -> SessionState Source line 125 def transition(self, target: SessionState) -> SessionTransition Source line 172 def can_transition_to(self, target: SessionState) -> bool Source line 190 def valid_transitions(self) -> list[SessionState] Source line 199 def history(self) -> list[SessionTransition]