fix: Convert dictionary views to lists for stable iteration over agents and tool executions.
This commit is contained in:
committed by
Ahmed Allam
parent
62cca3f149
commit
6fc592b4e8
@@ -472,7 +472,7 @@ class StrixTUIApp(App): # type: ignore[misc]
|
|||||||
return
|
return
|
||||||
|
|
||||||
agent_updates = False
|
agent_updates = False
|
||||||
for agent_id, agent_data in self.tracer.agents.items():
|
for agent_id, agent_data in list(self.tracer.agents.items()):
|
||||||
if agent_id not in self._displayed_agents:
|
if agent_id not in self._displayed_agents:
|
||||||
self._add_agent_node(agent_data)
|
self._add_agent_node(agent_data)
|
||||||
self._displayed_agents.add(agent_id)
|
self._displayed_agents.add(agent_id)
|
||||||
@@ -750,7 +750,7 @@ class StrixTUIApp(App): # type: ignore[misc]
|
|||||||
def _animate_dots(self) -> None:
|
def _animate_dots(self) -> None:
|
||||||
has_active_agents = False
|
has_active_agents = False
|
||||||
|
|
||||||
for agent_id, agent_data in self.tracer.agents.items():
|
for agent_id, agent_data in list(self.tracer.agents.items()):
|
||||||
status = agent_data.get("status", "running")
|
status = agent_data.get("status", "running")
|
||||||
if status in ["running", "waiting"]:
|
if status in ["running", "waiting"]:
|
||||||
has_active_agents = True
|
has_active_agents = True
|
||||||
@@ -959,7 +959,7 @@ class StrixTUIApp(App): # type: ignore[misc]
|
|||||||
def _reorganize_orphaned_agents(self, new_parent_id: str) -> None:
|
def _reorganize_orphaned_agents(self, new_parent_id: str) -> None:
|
||||||
agents_to_move = []
|
agents_to_move = []
|
||||||
|
|
||||||
for agent_id, agent_data in self.tracer.agents.items():
|
for agent_id, agent_data in list(self.tracer.agents.items()):
|
||||||
if (
|
if (
|
||||||
agent_data.get("parent_id") == new_parent_id
|
agent_data.get("parent_id") == new_parent_id
|
||||||
and agent_id in self.agent_nodes
|
and agent_id in self.agent_nodes
|
||||||
|
|||||||
@@ -291,14 +291,14 @@ class Tracer:
|
|||||||
def get_agent_tools(self, agent_id: str) -> list[dict[str, Any]]:
|
def get_agent_tools(self, agent_id: str) -> list[dict[str, Any]]:
|
||||||
return [
|
return [
|
||||||
exec_data
|
exec_data
|
||||||
for exec_data in self.tool_executions.values()
|
for exec_data in list(self.tool_executions.values())
|
||||||
if exec_data.get("agent_id") == agent_id
|
if exec_data.get("agent_id") == agent_id
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_real_tool_count(self) -> int:
|
def get_real_tool_count(self) -> int:
|
||||||
return sum(
|
return sum(
|
||||||
1
|
1
|
||||||
for exec_data in self.tool_executions.values()
|
for exec_data in list(self.tool_executions.values())
|
||||||
if exec_data.get("tool_name") not in ["scan_start_info", "subagent_start_info"]
|
if exec_data.get("tool_name") not in ["scan_start_info", "subagent_start_info"]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user