instabox 0.8.19 → 0.8.20

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/cli/SHA256SUMS CHANGED
@@ -1,6 +1,6 @@
1
- 83bd3679f85c885779d2d98c3e0f19ee8b8e4f056b9ebde88a6bda7a8004c094 instabox-darwin-amd64
2
- 98d5afc07aec20b840241cf6d3914d297e650059d3332f9c1d374cf312dc1e06 instabox-darwin-arm64
3
- fbecd1e3acf2bdf7267609235cd18f5098b0682046ebbbd21694b84b5aca8b2b instabox-linux-amd64
4
- 09eaec858a7337f661c382b3c09cb159700501d62af5a9f39a9f99cbdc490b2a instabox-linux-arm64
5
- 292591e3952d550271c7e140bd886250ae8d54730baf05689574aefe74aef21a instabox-windows-amd64.exe
6
- 3b26cac78d0ea41ddd748558e8dc31b8a4de7ab57d8d58ba53d8831d19d0ddc7 instabox-windows-arm64.exe
1
+ ef760afdf6748c2a3a5300d2de212bb93eb560d5ce63650154febb873c125273 instabox-darwin-amd64
2
+ 547817b73623b5511171c88d480fe17aed35700f963417a4643c0e78d5a4bfb1 instabox-darwin-arm64
3
+ 89d53037cfb6ab72a895e2c0e0b853d1e819bceb2ae9e7f62db472c917fb45d1 instabox-linux-amd64
4
+ 76c6cca15702c5b535c668aadda07f65ad08be27c581320ccf2bbc50d2a2748b instabox-linux-arm64
5
+ 29d0dbdd29989067b6e0de40a407b26b9f175bbf64af5eadeb88594d39ef6ccc instabox-windows-amd64.exe
6
+ 9ae10b3b1b23f669de39bf0fbf5c906f6ee02d013fb0f0d89fe63204dfee7eeb instabox-windows-arm64.exe
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instabox",
3
- "version": "0.8.19",
3
+ "version": "0.8.20",
4
4
  "description": "A cloud box for your coding agent, the instabox CLI and its agent skills in one command: npx instabox@latest",
5
5
  "type": "module",
6
6
  "bin": {
@@ -53,6 +53,7 @@ A box is 4 vCPU / 8 GB of memory unless `create` names another size of the accou
53
53
  instabox templates # base systems to start from
54
54
  instabox create --name work # new box; waits until it is running
55
55
  instabox create --name work --setup-file ./setup.sh # then runs the script in it
56
+ instabox create --devcontainer # from ./.devcontainer/devcontainer.json (no Dev Containers CLI needed)
56
57
  instabox ls # your boxes and their states
57
58
  instabox ssh work # interactive shell (leave with: exit)
58
59
  instabox exec work -- uname -a # one command, no SSH client needed
@@ -79,6 +80,7 @@ instabox rm --yes work # delete the box (without --yes
79
80
  - For large uploads use `instabox push` or `instabox cp` (the HTTP API, parallel-friendly), not scp or rsync over `ssh.instabox.sh`, which keeps about 2 MiB in flight per connection and so slows with distance. Measured: at a 5 ms round trip both paths do ~104 MB/s; at 305 ms the API does 11-13 MB/s per stream and SSH 3-6 MB/s; 4 parallel API PUTs did 39 MB/s total.
80
81
  - `create` options: `--template T` or `--snapshot S`, `--vcpus N --mem-mib M` (a size of the plan, see Sizes), `--auto-suspend D|0`, `--max-run-minutes N`, `--delete-after D` (delete it D after creation, 1m-24h, whatever its state), `--meta K=V`, `--org O`, `--secrets all|NAME,NAME|none`, `--no-wait`, `--setup-file PATH|-` (`--wait-setup`), `--fail-fast` (when no host has room, fail at once and create nothing instead of failing the create after; with `--snapshot`, instead of creating it stopped).
81
82
  - `create --setup-file PATH` (`-`: stdin; at most 64 KB) runs that script in the new box once it is running, in HOME as the box's user (by its `#!` line, else with bash; CRLF line endings become LF), and prints its output; it replaces create + push + exec for provisioning. A failing script makes `create` exit with the script's code and keeps the box: debug it with `instabox exec work -- /tmp/instabox-setup.sh`. With `--json` the sandbox object gets a `setup` object (`exitCode`, `stdout`, `stderr`, `signal`, `timedOut`, `truncated`, `durationMs`). `create` always waits for the script (`--wait-setup` names that; `=false` is refused) and keeps its state in the box's metadata, so `instabox get work --json` shows it later: `metadata.setupStatus` (`pending`, `running`, `succeeded`, `failed`), `setupExitCode` (`124`: timed out) and `setupLog` (the last 512 characters of its stdout then stderr). The script is killed after `--setup-timeout` (default and at most 10m); for longer installs, use `ssh`. A missing, empty or over-64 KB file is refused before any box is created. `run --setup-file` does the same before its command, with its `-e` variables; when the script fails, run's `--json` `exitCode` is the script's. The script stays at `/tmp/instabox-setup.sh` (and in snapshots), so keep credentials out of it.
83
+ - `create --devcontainer [PATH|DIR]` (also `run --devcontainer`) builds a box from a repo's devcontainer.json (default `.devcontainer/devcontainer.json` or `.devcontainer.json` here; JSONC): it pushes the repo into `workspaceFolder` (default `/workspaces/<dir>`), writes `containerEnv`/`remoteEnv` to `/etc/profile.d/instabox-devcontainer.sh`, installs `features` via their install.sh (ones the template already has, such as node/python/go/docker-in-docker/github-cli at the default version, are skipped), and runs `onCreateCommand`/`updateContentCommand`/`postCreateCommand`/`postStartCommand` in the workspace. Do not install the Dev Containers CLI in a box for this. `image`/`build`/compose are not booted (boxes are VM templates); the summary (stderr, or `--json`'s `devcontainer`: `applied`, `skipped`, `ports`, `steps`, `status`, `failedStep`) says what was skipped, and `forwardPorts` come with `instabox port-forward`/`port publish` commands. A failed step exits with its code and keeps the box (`metadata.setupStep` names it); `--name` defaults to the config's name. `${devcontainerId}` is the box's name; the summary shows commands as written (a `${localEnv:TOKEN}` is not printed), but the profile file keeps env values (readable by root and the box user's group, and in snapshots). In `run`, write `--devcontainer=PATH` when a command follows without `--`.
82
84
  - Idle auto-pause defaults to 30 minutes. Paid boxes allow 5, 10, 15, 20, 25 or 30 minutes (a time between rounds up; below 5m or above 30m is refused, nothing created), or `0` to turn it off. Free boxes keep 30 minutes unless an admin grants an idle override; asking another value on a free box fails (`permission_denied`, nothing created), so leave `--auto-suspend` out there. Idle means no agent working, no terminal use and little CPU.
83
85
  - Max run minutes is independent of idle activity: `-1` is unlimited, `0` pauses immediately, and a positive integer forces a pause after that many running minutes. Free boxes have a fixed 480-minute cap that only an admin session can change; paid boxes default to `-1` and can change it. An idle override does not permit changes to a free box's runtime cap. The first limit reached pauses the box; both timers restart after sleep and wake.
84
86
  - A runtime pause blocks every wake path during a server-configured cooldown, 10 minutes by default. Wait until the `cooldownUntil` deadline shown by `instabox get`; edits cannot clear it. Afterward, an automatically paused box wakes on `exec`, `ssh`, `files`, a public port request or `instabox wake <box>`. A zero runtime cap must be changed before waking. A normal pause preserves memory and processes.