mirror of
https://github.com/usestrix/strix.git
synced 2026-08-19 01:55:46 +02:00
The split between ``strix/sandbox/`` and ``strix/runtime/`` was artificial — both were managing the same backend. ``strix/sandbox/`` also collided uncomfortably with the SDK's ``agents.sandbox.*`` namespace. ``runtime/`` (which matches ``STRIX_RUNTIME_BACKEND``) is the canonical home for everything Docker / Daytona / K8s lifecycle. While merging, also rip out two pieces of Docker-specific coupling: - ``caido_bootstrap`` was POSTing ``loginAsGuest`` from the host via ``aiohttp`` to ``http://127.0.0.1:{forwarded_port}``. That assumed Docker port forwarding; Daytona / K8s expose ports differently. Now we ``session.exec`` curl from *inside* the container — the SDK's runtime-agnostic exec primitive — so any backend works as long as it implements ``exec``. The host-side Caido ``Client`` still uses the runtime's exposed-port URL for post-bootstrap calls, but that goes through the SDK's own ``resolve_exposed_port`` abstraction (also runtime-agnostic). - The bootstrap retry loop now doubles as the readiness probe, so ``healthcheck.wait_for_tcp_ready`` (and the entire ``healthcheck.py`` module) goes away. Drive-by simplification: drop ``caido_host_port`` plumbing entirely. It was only piped through ``make_agent_context`` → child contexts without ever being read; only ``caido_client`` is consumed. Drops ``aiohttp`` runtime dep (it stays only as a transitive of the Caido SDK).
11 lines
514 B
Python
11 lines
514 B
Python
"""Strix runtime — Docker-backed sandbox lifecycle on top of the Agents SDK.
|
|
|
|
- :class:`strix.runtime.strix_docker_client.StrixDockerSandboxClient` —
|
|
``DockerSandboxClient`` subclass that injects ``NET_ADMIN`` /
|
|
``NET_RAW`` capabilities and ``host.docker.internal`` extra-hosts.
|
|
- :mod:`.session_manager` — ``create_or_reuse`` / ``cleanup`` keyed
|
|
by scan id; bundles the SDK session with a ready Caido client.
|
|
- :mod:`.caido_bootstrap` — runtime-agnostic Caido auth dance via
|
|
``session.exec``.
|
|
"""
|