Merge pull request #2895 from markparonyan/mypy-agent-agent-service

fix(typing): resolve mypy errors in agent.gns3_copilot.agent_service
This commit is contained in:
Jeremy Grossmann 2026-09-28 20:56:12 +02:00 committed by GitHub
commit 35e1abcaf2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 16 additions and 22 deletions

View File

@ -256,17 +256,16 @@ class AgentService:
)
# Ensure checkpointer is initialized
if not self._checkpointer_conn:
await self._get_checkpointer()
checkpointer = await self._get_checkpointer()
# Get or create chat session
repo = ChatSessionsRepository(self._checkpointer_conn)
repo = ChatSessionsRepository(checkpointer.conn)
session = await repo.get_session_by_thread(session_id)
is_new_session = session is None
if is_new_session:
# Create new session
copilot_mode = llm_config.get("copilot_mode", "teaching_assistant").lower()
copilot_mode = (llm_config or {}).get("copilot_mode", "teaching_assistant").lower()
session = await repo.create_session(
thread_id=session_id,
user_id=user_id or "",
@ -290,7 +289,7 @@ class AgentService:
# Build config - only thread-safe identifiers
# Determine recursion_limit based on copilot_mode
copilot_mode = llm_config.get("copilot_mode", "teaching_assistant").lower()
copilot_mode = (llm_config or {}).get("copilot_mode", "teaching_assistant").lower()
if copilot_mode == "troubleshooting_injection":
recursion_limit = 100 # Need more recursion depth for fault injection workflow
log.debug("Using extended recursion_limit for troubleshooting_injection mode: 100")
@ -453,10 +452,10 @@ class AgentService:
yield chunk
else:
# Use stateless converter for other events
chunk = self._convert_event_to_chunk(event, session_id)
if chunk:
log.debug("Yielding chunk: type=%s", chunk.get("type"))
yield chunk
converted = self._convert_event_to_chunk(event, session_id)
if converted:
log.debug("Yielding chunk: type=%s", converted.get("type"))
yield converted
# Check if stream was aborted and yield tool_end events for aborted tools
from gns3server.agent.gns3_copilot.agent.gns3_copilot import (
@ -624,10 +623,9 @@ class AgentService:
Returns:
List of session dictionaries
"""
if not self._checkpointer_conn:
await self._get_checkpointer()
checkpointer = await self._get_checkpointer()
repo = ChatSessionsRepository(self._checkpointer_conn)
repo = ChatSessionsRepository(checkpointer.conn)
sessions = await repo.list_sessions(user_id=user_id, copilot_mode=copilot_mode, limit=limit)
return [s.to_dict() for s in sessions]
@ -641,10 +639,9 @@ class AgentService:
Returns:
True if deleted, False if not found
"""
if not self._checkpointer_conn:
await self._get_checkpointer()
checkpointer = await self._get_checkpointer()
repo = ChatSessionsRepository(self._checkpointer_conn)
repo = ChatSessionsRepository(checkpointer.conn)
return await repo.delete_session(session_id)
async def rename_session(self, session_id: str, new_title: str) -> Optional[Dict[str, Any]]:
@ -658,10 +655,9 @@ class AgentService:
Returns:
Updated session dictionary or None
"""
if not self._checkpointer_conn:
await self._get_checkpointer()
checkpointer = await self._get_checkpointer()
repo = ChatSessionsRepository(self._checkpointer_conn)
repo = ChatSessionsRepository(checkpointer.conn)
session = await repo.update_session(thread_id=session_id, title=new_title)
return session.to_dict() if session else None
@ -676,10 +672,9 @@ class AgentService:
Returns:
Updated session dictionary or None
"""
if not self._checkpointer_conn:
await self._get_checkpointer()
checkpointer = await self._get_checkpointer()
repo = ChatSessionsRepository(self._checkpointer_conn)
repo = ChatSessionsRepository(checkpointer.conn)
session = await repo.pin_session(thread_id=session_id, pinned=pinned)
return session.to_dict() if session else None

View File

@ -297,7 +297,6 @@ module = [
"gns3server.agent", # 2
"gns3server.agent.gns3_copilot.agent.context_manager", # 5
"gns3server.agent.gns3_copilot.agent.model_factory", # 4
"gns3server.agent.gns3_copilot.agent_service", # 8
"gns3server.agent.gns3_copilot.chat_sessions_repository", # 8
"gns3server.agent.gns3_copilot.gns3_client.api_handlers", # 10
"gns3server.agent.gns3_copilot.gns3_client.connector_factory", # 1