@madarco/agentbox 0.11.2 → 0.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/index.js +36 -4
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
- package/share/host-skills/agentbox-info/SKILL.md +26 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@madarco/agentbox",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.3",
|
|
4
4
|
"description": "Launch Claude Code, Codex, and other coding agents in isolated sandboxes",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Marco D'Alia",
|
|
@@ -59,15 +59,15 @@
|
|
|
59
59
|
"typescript": "^5.7.2",
|
|
60
60
|
"vitest": "^2.1.8",
|
|
61
61
|
"@agentbox/config": "0.0.0",
|
|
62
|
+
"@agentbox/core": "0.0.0",
|
|
62
63
|
"@agentbox/ctl": "0.0.0",
|
|
63
|
-
"@agentbox/relay": "0.0.0",
|
|
64
64
|
"@agentbox/sandbox-cloud": "0.0.0",
|
|
65
|
-
"@agentbox/
|
|
65
|
+
"@agentbox/relay": "0.0.0",
|
|
66
66
|
"@agentbox/sandbox-core": "0.0.0",
|
|
67
|
+
"@agentbox/sandbox-daytona": "0.0.0",
|
|
67
68
|
"@agentbox/sandbox-docker": "0.0.0",
|
|
68
69
|
"@agentbox/sandbox-hetzner": "0.0.0",
|
|
69
|
-
"@agentbox/sandbox-vercel": "0.0.0"
|
|
70
|
-
"@agentbox/sandbox-daytona": "0.0.0"
|
|
70
|
+
"@agentbox/sandbox-vercel": "0.0.0"
|
|
71
71
|
},
|
|
72
72
|
"scripts": {
|
|
73
73
|
"build": "tsup",
|
|
@@ -13,7 +13,7 @@ If you find yourself *inside* a box (`/workspace` exists and `AGENTBOX_RELAY_URL
|
|
|
13
13
|
|
|
14
14
|
## What AgentBox is, in one paragraph
|
|
15
15
|
|
|
16
|
-
AgentBox spins up one isolated sandbox per agent run — a local Docker container (default), a
|
|
16
|
+
AgentBox spins up one isolated sandbox per agent run — a local Docker container (default), a Hetzner VPS (`--provider hetzner`), a Vercel Sandbox (`--provider vercel`), or a Daytona cloud sandbox (`--provider daytona`, partial support). Each box has its own `/workspace`, but the host's `.git/` is shared, so commits made inside the box land on the host immediately. The agent inside the box has **no host credentials** — `git push`, opening URLs in the host browser, capturing checkpoints, and all other host-side operations flow through a small host process called the **relay** that runs alongside the CLI.
|
|
17
17
|
|
|
18
18
|
## The two starting commands
|
|
19
19
|
|
|
@@ -28,7 +28,7 @@ agentbox create --provider hetzner # cloud VPS (requires `agentbox prepare --
|
|
|
28
28
|
agentbox create --attach # drop into a shell inside the box after create
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
Useful flags: `-n <name>` (friendly box name), `--provider docker|daytona|hetzner`, `--attach`, `-w <path>` (workspace to mount; defaults to `cwd`), `--snapshot <ref>` (start from a checkpoint).
|
|
31
|
+
Useful flags: `-n <name>` (friendly box name), `--provider docker|daytona|hetzner|vercel`, `--attach`, `-w <path>` (workspace to mount; defaults to `cwd`), `--snapshot <ref>` (start from a checkpoint).
|
|
32
32
|
|
|
33
33
|
Non-docker providers require a one-time `agentbox prepare --provider <name>` to bake the base image / snapshot.
|
|
34
34
|
|
|
@@ -66,7 +66,7 @@ agentbox dashboard # TUI with status + leader-key actions
|
|
|
66
66
|
agentbox claude attach <name|n> # reattach to a specific box
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
|
|
69
|
+
`-i` works on every provider — pass `--provider daytona|hetzner|vercel` (or set `box.provider`) and the queued job creates a cloud box and pre-starts the seeded agent session detached, same as docker. The host must have valid agent credentials. Extra args after `--` are forwarded to the in-box agent (e.g. `agentbox claude -i "<prompt>" --provider vercel -- --permission-mode=plan`).
|
|
70
70
|
|
|
71
71
|
## Forking the current session into a box
|
|
72
72
|
|
|
@@ -78,7 +78,7 @@ When *you* are the host-side agent and want to orchestrate other agents running
|
|
|
78
78
|
|
|
79
79
|
### `agentbox drive <box>` — terminal driving
|
|
80
80
|
|
|
81
|
-
Targets the running tmux session inside a box (auto-picks the agent session: `claude` → `codex` → `opencode` → the only running session; override with `--session <name>`). Provider-uniform — works the same on docker / daytona / hetzner.
|
|
81
|
+
Targets the running tmux session inside a box (auto-picks the agent session: `claude` → `codex` → `opencode` → the only running session; override with `--session <name>`). Provider-uniform — works the same on docker / daytona / hetzner / vercel.
|
|
82
82
|
|
|
83
83
|
```sh
|
|
84
84
|
agentbox drive snapshot 1 # print rendered TUI as plain text
|
|
@@ -182,6 +182,26 @@ Implications for you, the host-side agent:
|
|
|
182
182
|
- Inside the box you can `git commit … && git push` exactly as normal. No setup needed.
|
|
183
183
|
- Pushes are gated host-side: the relay can require a confirm prompt for destructive operations (the user sees it in the dashboard footer, ~25 s TTL). If a push appears to hang, tell the user to check the dashboard.
|
|
184
184
|
- The relay process is started lazily by the first `agentbox create` / `agentbox claude` and persists across runs (PID at `~/.agentbox/relay.pid`, log at `~/.agentbox/relay.log`). You normally don't need to manage it.
|
|
185
|
+
- For HTTPS origins (`https://github.com/...`), pushing usually needs a credential — recommend the user run `gh auth login` and `gh auth setup-git` once on the host. After that, host `git push` uses gh's OAuth token automatically. SSH origins (`git@github.com:...`) keep using the host's SSH agent as before.
|
|
186
|
+
|
|
187
|
+
## PRs through the host relay (`agentbox-ctl git pr …`)
|
|
188
|
+
|
|
189
|
+
In-box agents can drive GitHub PRs from inside a box via the host's `gh` CLI. Same model as `git push`: the box has no GitHub token; the relay shells out to `gh` on the host with the user's authenticated gh identity. Requires `gh` installed on the host and `gh auth login` run once.
|
|
190
|
+
|
|
191
|
+
The wrapper is `agentbox-ctl git pr <op> [args...]`. Available ops:
|
|
192
|
+
|
|
193
|
+
| Op | Prompt? | Notes |
|
|
194
|
+
| --- | --- | --- |
|
|
195
|
+
| `view <num>` | no | Read-only. |
|
|
196
|
+
| `list` | no | Read-only. |
|
|
197
|
+
| `create` | yes | Pass-through args (e.g. `--title T --body B --draft`). |
|
|
198
|
+
| `comment <num>` | yes | Visible to others. |
|
|
199
|
+
| `review <num>` | yes | Visible to others. |
|
|
200
|
+
| `close <num>`, `reopen <num>` | yes | |
|
|
201
|
+
| `merge <num>` | yes (+ bypass guard) | `AGENTBOX_PROMPT=off` auto-`y` is refused here unless `AGENTBOX_GH_FORCE=1` is also set. |
|
|
202
|
+
| `checkout <num>` | yes (+ opt-in) | Off by default — switches the host main repo's branch (visible to the box). Enable with `AGENTBOX_GH_PR_CHECKOUT=allow`; a dirty host tree is refused, and a host HEAD on a registered box branch is refused. |
|
|
203
|
+
|
|
204
|
+
If a PR op appears to hang, tell the user to check the dashboard footer for the host confirmation prompt. If `gh` is missing or unauthenticated, the in-box command exits 127 / 4 with a clear stderr.
|
|
185
205
|
|
|
186
206
|
## Other commands worth knowing
|
|
187
207
|
|
|
@@ -192,7 +212,7 @@ Implications for you, the host-side agent:
|
|
|
192
212
|
| `agentbox url [n\|name]` | Open the box's web app URL (`<box-name>.localhost` via Portless) in the host browser. |
|
|
193
213
|
| `agentbox screen [n\|name]` | Open the box's **own** Chromium via VNC — useful for OAuth flows the agent inside the box initiates. |
|
|
194
214
|
| `agentbox code [n\|name]` | Open VS Code / Cursor pointed at the box. |
|
|
195
|
-
| `agentbox prepare --provider <name>` | One-time base image / snapshot build for `daytona` or `hetzner`. With no `--provider`, prints status across all providers. |
|
|
215
|
+
| `agentbox prepare --provider <name>` | One-time base image / snapshot build for `daytona` or `hetzner` or `vercel`. With no `--provider`, prints status across all providers. |
|
|
196
216
|
| `agentbox prune --provider <name>` | Clean up orphan boxes / images / snapshots for a provider (docker + daytona supported; hetzner pending). |
|
|
197
217
|
|
|
198
218
|
Per-project numeric index (`1`, `2`, …) and friendly name (`review`, `smoke`) both work wherever `<box>` is accepted. Index `1` is the first box created in the current workspace.
|
|
@@ -201,7 +221,7 @@ Per-project numeric index (`1`, `2`, …) and friendly name (`review`, `smoke`)
|
|
|
201
221
|
|
|
202
222
|
1. **Never assume the host needs SSH keys forwarded into a box** — git is handled by the relay, by design.
|
|
203
223
|
2. **Use `-i` whenever the user asks for parallel agent work** rather than spawning multiple foreground sessions. Then point them at `agentbox dashboard` to watch progress.
|
|
204
|
-
3. **Pick the provider deliberately.** `docker` is the fast default. `--provider hetzner` gives a real VPS (heavier, isolated, requires `agentbox prepare --provider hetzner` once). `--provider
|
|
224
|
+
3. **Pick the provider deliberately.** `docker` is the fast default. `--provider hetzner` gives a real VPS (heavier, isolated, requires `agentbox prepare --provider hetzner` once). `--provider vercel` is the managed cloud option.
|
|
205
225
|
4. **Cross-check before recommending a command.** If a flag isn't listed here, run `agentbox <command> --help` (it's safe and read-only) before suggesting it to the user.
|
|
206
226
|
5. **`/agentbox-setup` is a different skill.** It runs *inside* a box to generate `/workspace/agentbox.yaml`. Don't conflate it with `/agentbox` (host-side fork) or this reference skill.
|
|
207
227
|
|