Users can now access the Caido web UI from their browser to inspect traffic, replay requests, and perform manual testing alongside the automated scan. - Map Caido port (48080) to a random host port in DockerRuntime - Add caido_port to SandboxInfo and track across container lifecycle - Display Caido URL in TUI sidebar stats panel with selectable text - Bind Caido to 0.0.0.0 in entrypoint (requires image rebuild) - Bump sandbox image to 0.1.12 - Restore discord link in exit screen
34 lines
816 B
Python
34 lines
816 B
Python
from abc import ABC, abstractmethod
|
|
from typing import TypedDict
|
|
|
|
|
|
class SandboxInfo(TypedDict):
|
|
workspace_id: str
|
|
api_url: str
|
|
auth_token: str | None
|
|
tool_server_port: int
|
|
caido_port: int
|
|
agent_id: str
|
|
|
|
|
|
class AbstractRuntime(ABC):
|
|
@abstractmethod
|
|
async def create_sandbox(
|
|
self,
|
|
agent_id: str,
|
|
existing_token: str | None = None,
|
|
local_sources: list[dict[str, str]] | None = None,
|
|
) -> SandboxInfo:
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
async def get_sandbox_url(self, container_id: str, port: int) -> str:
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
async def destroy_sandbox(self, container_id: str) -> None:
|
|
raise NotImplementedError
|
|
|
|
def cleanup(self) -> None:
|
|
raise NotImplementedError
|