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`.