From 867a0c81fc92163b90b8cfa09c4194f01241dc54 Mon Sep 17 00:00:00 2001 From: 0xallam Date: Mon, 25 May 2026 22:23:14 -0700 Subject: [PATCH] Document the SDK-provided tools as stub dirs under strix/tools/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every agent-facing tool now has a corresponding directory: the strix-implemented ones already do, and the SDK-provided ones (exec_command/write_stdin shell, apply_patch, view_image) plus the sandbox-CLI agent-browser get README-only stubs. Each README names the implementation source, where the tool is wired up, the strix-specific config it inherits, and the skill that teaches its usage. Listing strix/tools/ now gives a new reader the full agent toolset at a glance. The stub dirs intentionally have no __init__.py — they are not Python packages, just documentation. Nothing in the codebase auto-discovers strix.tools.* as packages (all imports are explicit), so the stubs cannot accidentally affect runtime behavior. --- strix/tools/agent_browser/README.md | 12 ++++++++++++ strix/tools/apply_patch/README.md | 10 ++++++++++ strix/tools/shell/README.md | 15 +++++++++++++++ strix/tools/view_image/README.md | 17 +++++++++++++++++ 4 files changed, 54 insertions(+) create mode 100644 strix/tools/agent_browser/README.md create mode 100644 strix/tools/apply_patch/README.md create mode 100644 strix/tools/shell/README.md create mode 100644 strix/tools/view_image/README.md diff --git a/strix/tools/agent_browser/README.md b/strix/tools/agent_browser/README.md new file mode 100644 index 0000000..ebdfb3a --- /dev/null +++ b/strix/tools/agent_browser/README.md @@ -0,0 +1,12 @@ +# agent-browser + +Browser automation CLI installed in the sandbox image. Driven by the agent +through `exec_command` (not a function tool). + +- **Implementation:** sandbox CLI at + `/home/pentester/.npm-global/bin/agent-browser` — npm package + `agent-browser@0.26.0` (Vercel), driving Chromium directly. +- **Strix config:** `containers/Dockerfile` sets `AGENT_BROWSER_*` env + (executable path, UA, launch args, screenshot dir). +- **Skill:** `strix/skills/tooling/agent_browser.md` — **always-loaded** + into every agent prompt by `strix/agents/prompt.py:_resolve_skills`. diff --git a/strix/tools/apply_patch/README.md b/strix/tools/apply_patch/README.md new file mode 100644 index 0000000..6598b83 --- /dev/null +++ b/strix/tools/apply_patch/README.md @@ -0,0 +1,10 @@ +# apply_patch + +SDK-provided file patching tool — the agent's only first-class way to edit +files in the sandbox. Surfaced to the model as `patch` (renamed via +`_TOOL_NAME_OVERRIDES` in `strix/agents/factory.py`). + +- **Implementation:** `agents.sandbox.capabilities.tools.apply_patch_tool.ApplyPatchTool` + (upstream `agents` SDK) +- **Wired in:** `strix/agents/factory.py` — added per-run via the SDK + `Filesystem` capability. diff --git a/strix/tools/shell/README.md b/strix/tools/shell/README.md new file mode 100644 index 0000000..204c925 --- /dev/null +++ b/strix/tools/shell/README.md @@ -0,0 +1,15 @@ +# shell — `exec_command` + `write_stdin` + +SDK-provided shell tools wired per-run from the sandbox session. Every CLI +invocation the agent makes (nmap, ffuf, agent-browser, python3, …) goes +through `exec_command`. `write_stdin` streams input to a still-running +process started by an earlier `exec_command` (for interactive prompts). + +- **Implementation:** `agents.sandbox.capabilities.tools.shell_tool.ShellTool` + (in the upstream `agents` SDK) +- **Wired in:** `strix/agents/factory.py` — added per-run via the SDK + `Shell` capability; `write_stdin` is wrapped to drop the SDK's `pid` + arg from the function schema. +- **Sandbox env:** `http_proxy` / `https_proxy` route every shell child + through Caido; `AGENT_BROWSER_*`, `REQUESTS_CA_BUNDLE` etc. come from + `containers/Dockerfile`. diff --git a/strix/tools/view_image/README.md b/strix/tools/view_image/README.md new file mode 100644 index 0000000..3827206 --- /dev/null +++ b/strix/tools/view_image/README.md @@ -0,0 +1,17 @@ +# view_image + +SDK-provided tool that loads an image from the sandbox workspace and +returns it as an image content block for vision-capable models. + +- **Implementation:** `agents.sandbox.capabilities.tools.view_image.ViewImageTool` + (upstream `agents` SDK) +- **Wired in:** `strix/agents/factory.py` — added per-run via the SDK + `Filesystem` capability. +- **Strix defaults:** screenshots default to + `/workspace/.agent-browser-screenshots/` via `AGENT_BROWSER_SCREENSHOT_DIR` + (set in `containers/Dockerfile`; dir is created at container start in + `containers/docker-entrypoint.sh`). +- **Skill:** screenshot workflow lives in `strix/skills/tooling/agent_browser.md`. +- **Recovery:** vision-not-supported model rejections are auto-recovered + via `strix.core.sessions.strip_latest_image_from_session`, invoked from + `strix/core/execution.py`.