feat: add error handling for headless mode in agent execution and improve CLI on scan failures
This commit is contained in:
@@ -221,6 +221,22 @@ class BaseAgent(metaclass=AgentMeta):
|
|||||||
error_msg = str(e)
|
error_msg = str(e)
|
||||||
error_details = getattr(e, "details", None)
|
error_details = getattr(e, "details", None)
|
||||||
self.state.add_error(error_msg)
|
self.state.add_error(error_msg)
|
||||||
|
|
||||||
|
if self.non_interactive:
|
||||||
|
self.state.set_completed({"success": False, "error": error_msg})
|
||||||
|
if tracer:
|
||||||
|
tracer.update_agent_status(self.state.agent_id, "failed", error_msg)
|
||||||
|
if error_details:
|
||||||
|
tracer.log_tool_execution_start(
|
||||||
|
self.state.agent_id,
|
||||||
|
"llm_error_details",
|
||||||
|
{"error": error_msg, "details": error_details},
|
||||||
|
)
|
||||||
|
tracer.update_tool_execution(
|
||||||
|
tracer._next_execution_id - 1, "failed", error_details
|
||||||
|
)
|
||||||
|
return {"success": False, "error": error_msg}
|
||||||
|
|
||||||
self.state.enter_waiting_state(llm_failed=True)
|
self.state.enter_waiting_state(llm_failed=True)
|
||||||
if tracer:
|
if tracer:
|
||||||
tracer.update_agent_status(self.state.agent_id, "llm_failed", error_msg)
|
tracer.update_agent_status(self.state.agent_id, "llm_failed", error_msg)
|
||||||
|
|||||||
@@ -134,8 +134,16 @@ async def run_cli(args: Any) -> None: # noqa: PLR0915
|
|||||||
console.print()
|
console.print()
|
||||||
with console.status("[bold cyan]Running penetration test...", spinner="dots") as status:
|
with console.status("[bold cyan]Running penetration test...", spinner="dots") as status:
|
||||||
agent = StrixAgent(agent_config)
|
agent = StrixAgent(agent_config)
|
||||||
await agent.execute_scan(scan_config)
|
result = await agent.execute_scan(scan_config)
|
||||||
status.stop()
|
status.stop()
|
||||||
|
|
||||||
|
if isinstance(result, dict) and not result.get("success", True):
|
||||||
|
error_msg = result.get("error", "Unknown error")
|
||||||
|
console.print()
|
||||||
|
console.print(f"[bold red]❌ Penetration test failed:[/] {error_msg}")
|
||||||
|
console.print()
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
console.print(f"[bold red]Error during penetration test:[/] {e}")
|
console.print(f"[bold red]Error during penetration test:[/] {e}")
|
||||||
raise
|
raise
|
||||||
|
|||||||
Reference in New Issue
Block a user