@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@madarco/agentbox",
3
- "version": "0.11.2",
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/core": "0.0.0",
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 Daytona cloud sandbox (`--provider daytona`), or a Hetzner VPS (`--provider hetzner`). 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.
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
- Caveats: `-i` is currently **docker-only** (cloud sessions only start on attach, so background-mode has no place to seed the prompt). The host must have valid Claude Code credentials.
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 daytona` is the managed cloud option.
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