From aa05dae80cee4cd0292ab26bca749b95d6c07df7 Mon Sep 17 00:00:00 2001 From: Raja Sekhar Rao Dheekonda Date: Tue, 15 Sep 2026 10:34:25 -0700 Subject: [PATCH] fix(ai-red-teaming): rename errors.py helper to _errors.py to clear degraded-component warning tools/errors.py is a shared helper (safe_tool, fmt_asr) that defines no tools, so the capability loader's tool discovery flagged it as "imported but defined no tools" and surfaced it as a degraded component in the UI. Per the loader's own convention (_is_support_module / leading-underscore), rename it to _errors.py so it is treated as a support module and skipped by tool discovery. Update the nine tool modules and the test that load it by path. No functional change. --- capabilities/ai-red-teaming/capability.yaml | 2 +- capabilities/ai-red-teaming/tests/test_errors_safe_tool.py | 4 ++-- capabilities/ai-red-teaming/tools/{errors.py => _errors.py} | 0 capabilities/ai-red-teaming/tools/assessment.py | 2 +- capabilities/ai-red-teaming/tools/attacks.py | 2 +- capabilities/ai-red-teaming/tools/environments.py | 2 +- capabilities/ai-red-teaming/tools/goals.py | 2 +- capabilities/ai-red-teaming/tools/honeytoken.py | 2 +- capabilities/ai-red-teaming/tools/results.py | 2 +- capabilities/ai-red-teaming/tools/session.py | 2 +- capabilities/ai-red-teaming/tools/skills_manager.py | 2 +- capabilities/ai-red-teaming/tools/workflows.py | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) rename capabilities/ai-red-teaming/tools/{errors.py => _errors.py} (100%) diff --git a/capabilities/ai-red-teaming/capability.yaml b/capabilities/ai-red-teaming/capability.yaml index b123bc15..23ba01cb 100644 --- a/capabilities/ai-red-teaming/capability.yaml +++ b/capabilities/ai-red-teaming/capability.yaml @@ -1,6 +1,6 @@ schema: 1 name: ai-red-teaming -version: "1.16.0" +version: "1.16.1" description: > Probe the security and safety of AI applications, agents, and foundation models. Orchestrates adversarial attack workflows to discover vulnerabilities in LLMs, diff --git a/capabilities/ai-red-teaming/tests/test_errors_safe_tool.py b/capabilities/ai-red-teaming/tests/test_errors_safe_tool.py index 730888d0..e74e28cf 100644 --- a/capabilities/ai-red-teaming/tests/test_errors_safe_tool.py +++ b/capabilities/ai-red-teaming/tests/test_errors_safe_tool.py @@ -1,4 +1,4 @@ -"""Tests for tools/errors.py - safe_tool retry/classification + fmt_asr. +"""Tests for tools/_errors.py - safe_tool retry/classification + fmt_asr. Regression for ENG-8427: transient network faults (TLS handshake timeout, etc.) should be retried and surfaced as an explicitly non-fatal Note, and ASR should @@ -15,7 +15,7 @@ pytest.importorskip("dreadnode.agents.tools") -ERRORS_PATH = Path(__file__).resolve().parents[1] / "tools" / "errors.py" +ERRORS_PATH = Path(__file__).resolve().parents[1] / "tools" / "_errors.py" def _load(): diff --git a/capabilities/ai-red-teaming/tools/errors.py b/capabilities/ai-red-teaming/tools/_errors.py similarity index 100% rename from capabilities/ai-red-teaming/tools/errors.py rename to capabilities/ai-red-teaming/tools/_errors.py diff --git a/capabilities/ai-red-teaming/tools/assessment.py b/capabilities/ai-red-teaming/tools/assessment.py index 58ce567f..c2476553 100644 --- a/capabilities/ai-red-teaming/tools/assessment.py +++ b/capabilities/ai-red-teaming/tools/assessment.py @@ -16,7 +16,7 @@ # loaded as flat modules (no parent package), so relative imports do not work. import importlib.util as _ilu from pathlib import Path as _Path -_errors_path = _Path(__file__).resolve().parent / "errors.py" +_errors_path = _Path(__file__).resolve().parent / "_errors.py" _spec = _ilu.spec_from_file_location("airt_tools_errors", _errors_path) _errors_mod = _ilu.module_from_spec(_spec) _spec.loader.exec_module(_errors_mod) diff --git a/capabilities/ai-red-teaming/tools/attacks.py b/capabilities/ai-red-teaming/tools/attacks.py index fc9f4c5a..7dbf2c58 100644 --- a/capabilities/ai-red-teaming/tools/attacks.py +++ b/capabilities/ai-red-teaming/tools/attacks.py @@ -21,7 +21,7 @@ # loaded as flat modules (no parent package), so relative imports do not work. import importlib.util as _ilu from pathlib import Path as _Path -_errors_path = _Path(__file__).resolve().parent / "errors.py" +_errors_path = _Path(__file__).resolve().parent / "_errors.py" _spec = _ilu.spec_from_file_location("airt_tools_errors", _errors_path) _errors_mod = _ilu.module_from_spec(_spec) _spec.loader.exec_module(_errors_mod) diff --git a/capabilities/ai-red-teaming/tools/environments.py b/capabilities/ai-red-teaming/tools/environments.py index 8cb17332..0da3ca08 100644 --- a/capabilities/ai-red-teaming/tools/environments.py +++ b/capabilities/ai-red-teaming/tools/environments.py @@ -25,7 +25,7 @@ from pathlib import Path as _Path # Load the shared safe_tool wrapper by file path (flat-module loading). -_errors_path = _Path(__file__).resolve().parent / "errors.py" +_errors_path = _Path(__file__).resolve().parent / "_errors.py" _spec = _ilu.spec_from_file_location("airt_tools_errors", _errors_path) _errors_mod = _ilu.module_from_spec(_spec) _spec.loader.exec_module(_errors_mod) diff --git a/capabilities/ai-red-teaming/tools/goals.py b/capabilities/ai-red-teaming/tools/goals.py index 8b8d9ba4..b430ef90 100644 --- a/capabilities/ai-red-teaming/tools/goals.py +++ b/capabilities/ai-red-teaming/tools/goals.py @@ -16,7 +16,7 @@ # loaded as flat modules (no parent package), so relative imports do not work. import importlib.util as _ilu from pathlib import Path as _Path -_errors_path = _Path(__file__).resolve().parent / "errors.py" +_errors_path = _Path(__file__).resolve().parent / "_errors.py" _spec = _ilu.spec_from_file_location("airt_tools_errors", _errors_path) _errors_mod = _ilu.module_from_spec(_spec) _spec.loader.exec_module(_errors_mod) diff --git a/capabilities/ai-red-teaming/tools/honeytoken.py b/capabilities/ai-red-teaming/tools/honeytoken.py index 1a3977a0..4a5eab55 100644 --- a/capabilities/ai-red-teaming/tools/honeytoken.py +++ b/capabilities/ai-red-teaming/tools/honeytoken.py @@ -19,7 +19,7 @@ import typing as t from pathlib import Path as _Path -_errors_path = _Path(__file__).resolve().parent / "errors.py" +_errors_path = _Path(__file__).resolve().parent / "_errors.py" _spec = _ilu.spec_from_file_location("airt_tools_errors", _errors_path) _errors_mod = _ilu.module_from_spec(_spec) _spec.loader.exec_module(_errors_mod) diff --git a/capabilities/ai-red-teaming/tools/results.py b/capabilities/ai-red-teaming/tools/results.py index 26771f6b..4d9c6412 100644 --- a/capabilities/ai-red-teaming/tools/results.py +++ b/capabilities/ai-red-teaming/tools/results.py @@ -16,7 +16,7 @@ # loaded as flat modules (no parent package), so relative imports do not work. import importlib.util as _ilu from pathlib import Path as _Path -_errors_path = _Path(__file__).resolve().parent / "errors.py" +_errors_path = _Path(__file__).resolve().parent / "_errors.py" _spec = _ilu.spec_from_file_location("airt_tools_errors", _errors_path) _errors_mod = _ilu.module_from_spec(_spec) _spec.loader.exec_module(_errors_mod) diff --git a/capabilities/ai-red-teaming/tools/session.py b/capabilities/ai-red-teaming/tools/session.py index 9637a01a..8545d6aa 100644 --- a/capabilities/ai-red-teaming/tools/session.py +++ b/capabilities/ai-red-teaming/tools/session.py @@ -18,7 +18,7 @@ # loaded as flat modules (no parent package), so relative imports do not work. import importlib.util as _ilu from pathlib import Path as _Path -_errors_path = _Path(__file__).resolve().parent / "errors.py" +_errors_path = _Path(__file__).resolve().parent / "_errors.py" _spec = _ilu.spec_from_file_location("airt_tools_errors", _errors_path) _errors_mod = _ilu.module_from_spec(_spec) _spec.loader.exec_module(_errors_mod) diff --git a/capabilities/ai-red-teaming/tools/skills_manager.py b/capabilities/ai-red-teaming/tools/skills_manager.py index 25ff3491..2b246172 100644 --- a/capabilities/ai-red-teaming/tools/skills_manager.py +++ b/capabilities/ai-red-teaming/tools/skills_manager.py @@ -8,7 +8,7 @@ # loaded as flat modules (no parent package), so relative imports do not work. import importlib.util as _ilu from pathlib import Path as _Path -_errors_path = _Path(__file__).resolve().parent / "errors.py" +_errors_path = _Path(__file__).resolve().parent / "_errors.py" _spec = _ilu.spec_from_file_location("airt_tools_errors", _errors_path) _errors_mod = _ilu.module_from_spec(_spec) _spec.loader.exec_module(_errors_mod) diff --git a/capabilities/ai-red-teaming/tools/workflows.py b/capabilities/ai-red-teaming/tools/workflows.py index af547479..a12e8e56 100644 --- a/capabilities/ai-red-teaming/tools/workflows.py +++ b/capabilities/ai-red-teaming/tools/workflows.py @@ -18,7 +18,7 @@ # loaded as flat modules (no parent package), so relative imports do not work. import importlib.util as _ilu from pathlib import Path as _Path -_errors_path = _Path(__file__).resolve().parent / "errors.py" +_errors_path = _Path(__file__).resolve().parent / "_errors.py" _spec = _ilu.spec_from_file_location("airt_tools_errors", _errors_path) _errors_mod = _ilu.module_from_spec(_spec) _spec.loader.exec_module(_errors_mod)