From e8bff79370fbad37954761083f8e6b4803be7c73 Mon Sep 17 00:00:00 2001 From: Mark Paronyan Date: Mon, 28 Sep 2026 05:26:26 +0000 Subject: [PATCH 1/3] fix(typing): resolve mypy errors in agent.gns3_copilot.tools_v2.config_tools_nornir --- gns3server/agent/gns3_copilot/tools_v2/config_tools_nornir.py | 4 ++-- pyproject.toml | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/gns3server/agent/gns3_copilot/tools_v2/config_tools_nornir.py b/gns3server/agent/gns3_copilot/tools_v2/config_tools_nornir.py index db215c6bf..ed15f0589 100644 --- a/gns3server/agent/gns3_copilot/tools_v2/config_tools_nornir.py +++ b/gns3server/agent/gns3_copilot/tools_v2/config_tools_nornir.py @@ -78,7 +78,7 @@ try: # so we use importlib to get the actual module import importlib - sd = importlib.import_module("netmiko.ssh_dispatcher") + sd: Any = importlib.import_module("netmiko.ssh_dispatcher") # Recalculate platforms lists to include custom device types sd.platforms = list(sd.CLASS_MAPPER.keys()) @@ -196,7 +196,7 @@ class ExecuteMultipleDeviceConfigCommands(BaseTool): # Validate input device_configs_list, project_id = self._validate_tool_input(tool_input) - if isinstance(device_configs_list, list) and len(device_configs_list) > 0 and "error" in device_configs_list[0]: + if len(device_configs_list) > 0 and "error" in device_configs_list[0]: return device_configs_list # Filter forbidden commands and store blocked commands info diff --git a/pyproject.toml b/pyproject.toml index 5f0789a77..21a5c54ac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -304,7 +304,6 @@ module = [ "gns3server.agent.gns3_copilot.gns3_client.project_inventory", # 2 "gns3server.agent.gns3_copilot.skills.loader", # 1 "gns3server.agent.gns3_copilot.skills.manager", # 4 - "gns3server.agent.gns3_copilot.tools_v2.config_tools_nornir", # 6 "gns3server.agent.gns3_copilot.tools_v2.display_tools_nornir", # 6 "gns3server.agent.gns3_copilot.tools_v2.gns3_packet_filter", # 1 "gns3server.agent.gns3_copilot.tools_v2.gns3_start_node", # 3 From 35b360ca752dbf6bd53090b892e450926603ccfd Mon Sep 17 00:00:00 2001 From: Mark Paronyan Date: Mon, 28 Sep 2026 05:26:36 +0000 Subject: [PATCH 2/3] fix(typing): resolve mypy errors in agent.gns3_copilot.tools_v2.display_tools_nornir --- .../agent/gns3_copilot/tools_v2/display_tools_nornir.py | 4 ++-- pyproject.toml | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/gns3server/agent/gns3_copilot/tools_v2/display_tools_nornir.py b/gns3server/agent/gns3_copilot/tools_v2/display_tools_nornir.py index 8c4a5281d..a8eb41bc4 100644 --- a/gns3server/agent/gns3_copilot/tools_v2/display_tools_nornir.py +++ b/gns3server/agent/gns3_copilot/tools_v2/display_tools_nornir.py @@ -78,7 +78,7 @@ try: # so we use importlib to get the actual module import importlib - sd = importlib.import_module("netmiko.ssh_dispatcher") + sd: Any = importlib.import_module("netmiko.ssh_dispatcher") # Recalculate platforms lists to include custom device types sd.platforms = list(sd.CLASS_MAPPER.keys()) @@ -199,7 +199,7 @@ class ExecuteMultipleDeviceCommands(BaseTool): # Validate input device_configs_list, project_id = self._validate_tool_input(tool_input) - if isinstance(device_configs_list, list) and len(device_configs_list) > 0 and "error" in device_configs_list[0]: + if len(device_configs_list) > 0 and "error" in device_configs_list[0]: return device_configs_list # Filter forbidden commands and store blocked commands info diff --git a/pyproject.toml b/pyproject.toml index 21a5c54ac..49c8063be 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -304,7 +304,6 @@ module = [ "gns3server.agent.gns3_copilot.gns3_client.project_inventory", # 2 "gns3server.agent.gns3_copilot.skills.loader", # 1 "gns3server.agent.gns3_copilot.skills.manager", # 4 - "gns3server.agent.gns3_copilot.tools_v2.display_tools_nornir", # 6 "gns3server.agent.gns3_copilot.tools_v2.gns3_packet_filter", # 1 "gns3server.agent.gns3_copilot.tools_v2.gns3_start_node", # 3 "gns3server.agent.gns3_copilot.tools_v2.gns3_stop_node", # 3 From d2fd2383836e51e55f825f86e4e845de1b8c3b39 Mon Sep 17 00:00:00 2001 From: Mark Paronyan Date: Mon, 28 Sep 2026 05:00:42 +0000 Subject: [PATCH 3/3] fix(typing): resolve mypy errors in agent.gns3_copilot.tools_v2.gns3_packet_filter --- gns3server/agent/gns3_copilot/tools_v2/gns3_packet_filter.py | 2 +- pyproject.toml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/gns3server/agent/gns3_copilot/tools_v2/gns3_packet_filter.py b/gns3server/agent/gns3_copilot/tools_v2/gns3_packet_filter.py index d94a0fc1d..be7af824f 100644 --- a/gns3server/agent/gns3_copilot/tools_v2/gns3_packet_filter.py +++ b/gns3server/agent/gns3_copilot/tools_v2/gns3_packet_filter.py @@ -286,7 +286,7 @@ class GNS3PacketFilterTool(BaseTool): # Check if output contains "Invalid" indicating syntax error if "Invalid" in result.stdout or "Invalid" in result.stderr: - error_lines = [] + error_lines: list[str] = [] if "Invalid" in result.stderr: error_lines.extend(line for line in result.stderr.split("\n") if "Invalid" in line) if "Invalid" in result.stdout: diff --git a/pyproject.toml b/pyproject.toml index 49c8063be..785afbae0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -304,7 +304,6 @@ module = [ "gns3server.agent.gns3_copilot.gns3_client.project_inventory", # 2 "gns3server.agent.gns3_copilot.skills.loader", # 1 "gns3server.agent.gns3_copilot.skills.manager", # 4 - "gns3server.agent.gns3_copilot.tools_v2.gns3_packet_filter", # 1 "gns3server.agent.gns3_copilot.tools_v2.gns3_start_node", # 3 "gns3server.agent.gns3_copilot.tools_v2.gns3_stop_node", # 3 "gns3server.agent.gns3_copilot.tools_v2.gns3_suspend_node", # 3