From 13e804b7e32e3415f6fc5ee518bb43c6e59a66f4 Mon Sep 17 00:00:00 2001 From: 0xallam Date: Fri, 9 Jan 2026 21:42:44 -0800 Subject: [PATCH] refactor: remove STRIX_IMAGE constant, use Config.get() instead Co-Authored-By: Claude Opus 4.5 --- strix/interface/main.py | 10 +++---- strix/runtime/docker_runtime.py | 48 +++++++++++++++++---------------- 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/strix/interface/main.py b/strix/interface/main.py index 1effeae..33f91a8 100644 --- a/strix/interface/main.py +++ b/strix/interface/main.py @@ -34,7 +34,7 @@ from strix.interface.utils import ( rewrite_localhost_targets, validate_llm_response, ) -from strix.runtime.docker_runtime import HOST_GATEWAY_HOSTNAME, STRIX_IMAGE +from strix.runtime.docker_runtime import HOST_GATEWAY_HOSTNAME from strix.telemetry import posthog from strix.telemetry.tracer import get_global_tracer @@ -467,11 +467,11 @@ def pull_docker_image() -> None: console = Console() client = check_docker_connection() - if image_exists(client, STRIX_IMAGE): + if image_exists(client, Config.get("strix_image")): # type: ignore[arg-type] return console.print() - console.print(f"[bold cyan]🐳 Pulling Docker image:[/] {STRIX_IMAGE}") + console.print(f"[bold cyan]🐳 Pulling Docker image:[/] {Config.get('strix_image')}") console.print("[dim yellow]This only happens on first run and may take a few minutes...[/]") console.print() @@ -480,7 +480,7 @@ def pull_docker_image() -> None: layers_info: dict[str, str] = {} last_update = "" - for line in client.api.pull(STRIX_IMAGE, stream=True, decode=True): + for line in client.api.pull(Config.get("strix_image"), stream=True, decode=True): last_update = process_pull_line(line, layers_info, status, last_update) except DockerException as e: @@ -489,7 +489,7 @@ def pull_docker_image() -> None: error_text.append("❌ ", style="bold red") error_text.append("FAILED TO PULL IMAGE", style="bold red") error_text.append("\n\n", style="white") - error_text.append(f"Could not download: {STRIX_IMAGE}\n", style="white") + error_text.append(f"Could not download: {Config.get('strix_image')}\n", style="white") error_text.append(str(e), style="dim red") panel = Panel( diff --git a/strix/runtime/docker_runtime.py b/strix/runtime/docker_runtime.py index d912158..4719833 100644 --- a/strix/runtime/docker_runtime.py +++ b/strix/runtime/docker_runtime.py @@ -21,7 +21,6 @@ from . import SandboxInitializationError from .runtime import AbstractRuntime, SandboxInfo -STRIX_IMAGE: str = Config.get("strix_image") # type: ignore[assignment] HOST_GATEWAY_HOSTNAME = "host.docker.internal" DOCKER_TIMEOUT = 60 # seconds TOOL_SERVER_HEALTH_REQUEST_TIMEOUT = 5 # seconds per health check request @@ -123,7 +122,7 @@ class DockerRuntime(AbstractRuntime): for attempt in range(max_retries): try: - self._verify_image_available(STRIX_IMAGE) + self._verify_image_available(Config.get("strix_image")) # type: ignore[arg-type] try: existing_container = self.client.containers.get(container_name) @@ -144,27 +143,30 @@ class DockerRuntime(AbstractRuntime): self._tool_server_port = tool_server_port self._tool_server_token = tool_server_token - container = self.client.containers.run( - STRIX_IMAGE, - command="sleep infinity", - detach=True, - name=container_name, - hostname=f"strix-scan-{scan_id}", - ports={ - f"{caido_port}/tcp": caido_port, - f"{tool_server_port}/tcp": tool_server_port, - }, - cap_add=["NET_ADMIN", "NET_RAW"], - labels={"strix-scan-id": scan_id}, - environment={ - "PYTHONUNBUFFERED": "1", - "CAIDO_PORT": str(caido_port), - "TOOL_SERVER_PORT": str(tool_server_port), - "TOOL_SERVER_TOKEN": tool_server_token, - "HOST_GATEWAY": HOST_GATEWAY_HOSTNAME, - }, - extra_hosts=self._get_extra_hosts(), - tty=True, + container = cast( + "Container", + self.client.containers.run( # type: ignore[call-overload] + Config.get("strix_image"), + command="sleep infinity", + detach=True, + name=container_name, + hostname=f"strix-scan-{scan_id}", + ports={ + f"{caido_port}/tcp": caido_port, + f"{tool_server_port}/tcp": tool_server_port, + }, + cap_add=["NET_ADMIN", "NET_RAW"], + labels={"strix-scan-id": scan_id}, + environment={ + "PYTHONUNBUFFERED": "1", + "CAIDO_PORT": str(caido_port), + "TOOL_SERVER_PORT": str(tool_server_port), + "TOOL_SERVER_TOKEN": tool_server_token, + "HOST_GATEWAY": HOST_GATEWAY_HOSTNAME, + }, + extra_hosts=self._get_extra_hosts(), + tty=True, + ), ) self._scan_container = container