| 42 | """Manage OpenCode session ids and concurrency guards.""" |
| 43 | |
| 44 | def __init__(self, settings_manager, agent_name: str): |
| 45 | self._settings_manager = settings_manager |
| 46 | self._agent_name = agent_name |
| 47 | |
| 48 | self._request_sessions: Dict[str, RequestSessionTuple] = {} |
| 49 | self._session_locks: Dict[str, asyncio.Lock] = {} |
| 50 | self._initialized_sessions: set[str] = set() |
| 51 | |
| 52 | def get_request_session(self, base_session_id: str) -> Optional[RequestSessionTuple]: |
| 53 | return self._request_sessions.get(base_session_id) |