@konstantdotcloud/boombox 0.2.0 → 0.3.0
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/README.md +89 -74
- package/dist/boombox.js +1095 -146
- package/dist/index.js +153 -58
- package/package.json +1 -1
- package/ui/README.md +10 -8
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
CLI and MCP bridge for a tenant's Boombox VM.
|
|
4
4
|
|
|
5
|
-
Boombox Cloud lives at <https://boombox.konstant.cloud>. Each tenant VM is served at `https://boombox-<tenant>.exe.xyz`. The CLI stores your tenant identity, talks to the VM, and exposes the Gary cassette runtime to Claude Desktop, Claude Code, Cursor,
|
|
5
|
+
Boombox Cloud lives at <https://boombox.konstant.cloud>. Each tenant VM is served at `https://boombox-<tenant>.exe.xyz`. The CLI stores your tenant identity, talks to the VM, asks Gary questions, ingests files into HomeBase, runs and shares cassettes, and exposes the Gary cassette runtime to Claude Desktop, Claude Code, Cursor, or any MCP client.
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
@@ -10,45 +10,100 @@ Boombox Cloud lives at <https://boombox.konstant.cloud>. Each tenant VM is serve
|
|
|
10
10
|
curl -fsSL https://boombox.konstant.cloud/install/boombox.sh | sh
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
The installer installs `@konstantdotcloud/boombox` and then tells you to run `boombox login`.
|
|
13
|
+
The installer installs `@konstantdotcloud/boombox` and then tells you to run `boombox login`. (Or run it ad hoc with `npx @konstantdotcloud/boombox <command>`.)
|
|
14
14
|
|
|
15
15
|
## Quickstart
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
boombox login
|
|
19
|
-
boombox whoami
|
|
20
|
-
boombox
|
|
21
|
-
boombox
|
|
18
|
+
boombox login # browser sign-in via boombox.konstant.cloud; writes ~/.boombox/config.toml
|
|
19
|
+
boombox whoami # verifies tenant, user, VM URL, and key expiry
|
|
20
|
+
boombox ask "what's at risk on the BNY deal this week?" # one-shot Gary answer over your org
|
|
21
|
+
boombox ingest ./transcripts # upload local files into HomeBase so Gary can answer
|
|
22
|
+
boombox run weekly_recap # trigger a cassette and tail it to a terminal state
|
|
23
|
+
boombox share <run_id> # mint a no-login link to the run's surface
|
|
24
|
+
boombox admin ui # open the VM admin UI through a short-lived cloud grant
|
|
22
25
|
```
|
|
23
26
|
|
|
24
|
-
For MCP clients,
|
|
27
|
+
For MCP clients, run `boombox serve --mcp` after `boombox login` succeeds (see [MCP client setup](#mcp-client-setup)).
|
|
25
28
|
|
|
26
29
|
## Commands
|
|
27
30
|
|
|
31
|
+
### Identity & setup
|
|
28
32
|
| Command | What it does |
|
|
29
33
|
|-|-|
|
|
30
34
|
| `boombox login [--tenant <tenant_id>]` | Browser sign-in through `boombox.konstant.cloud`; writes tenant id, VM URL, API key, and expiry to `~/.boombox/config.toml`. |
|
|
31
|
-
| `boombox whoami` | Calls the VM identity endpoint
|
|
32
|
-
| `boombox
|
|
33
|
-
| `boombox
|
|
34
|
-
| `boombox
|
|
35
|
+
| `boombox whoami` | Calls the VM identity endpoint; prints tenant id, user id, VM URL, key expiry, days remaining. |
|
|
36
|
+
| `boombox enroll` | Browser enrollment flow that signs in via WorkOS, provisions an inbox + key, and writes config. |
|
|
37
|
+
| `boombox init` | Manual config fallback for raw provisioned credentials. Prefer `boombox login`. |
|
|
38
|
+
| `boombox doctor` | Connectivity + auth check (config, VM reachability, key validity, MCP boot). |
|
|
39
|
+
|
|
40
|
+
### Ask, run, share, ingest
|
|
41
|
+
| Command | What it does |
|
|
42
|
+
|-|-|
|
|
43
|
+
| `boombox ask <question> [--model <tier>] [--thinking <level>] [--thread <id>] [--fresh] [--json]` | One-shot question to Gary (HomeBase synthesis + artifacts). `--model`: auto\|fast\|reason\|explore\|premium\|opus. `--thinking`: off\|minimal\|low\|medium\|high\|xhigh. |
|
|
44
|
+
| `boombox run <cassette_name> [--input key=value ...] [--no-tail] [--json]` | Triggers a cassette, prompts for required missing inputs, then polls to a terminal state unless `--no-tail`. |
|
|
45
|
+
| `boombox share <run_id> [--ttl <days>] [--email <addr>] [--json]` | Mints a no-login, signed, expiring run-room link for a run and prints the shareable URL (default TTL 14 days). |
|
|
46
|
+
| `boombox ingest <path...> [--recursive] [--json]` | Uploads local files (transcripts, docs) into HomeBase via presigned upload so Gary can answer over them. |
|
|
47
|
+
|
|
48
|
+
### Cassettes
|
|
49
|
+
| Command | What it does |
|
|
50
|
+
|-|-|
|
|
51
|
+
| `boombox cassettes list [--status published\|draft\|all]` | Lists cassettes available to the tenant. |
|
|
35
52
|
| `boombox cassettes show <id> [--draft]` | Prints a cassette YAML projection. |
|
|
36
|
-
| `boombox cassettes
|
|
37
|
-
| `boombox
|
|
38
|
-
| `boombox
|
|
39
|
-
|
|
40
|
-
|
|
53
|
+
| `boombox cassettes validate <id> [--draft] [--json]` | Runs cassette oracle readiness checks. |
|
|
54
|
+
| `boombox cassettes dry-run <id> [--draft] [--json]` | Dry-runs a draft and prints verdict + blockers. No durable writes. |
|
|
55
|
+
| `boombox cassettes publish <draft_id> --name <name> [--version <n>] [--json]` | Publishes a dry-run-approved draft to the tenant tier; renders gate rejections (e.g. `dry-run-not-green`) with fix guidance. |
|
|
56
|
+
|
|
57
|
+
### Runs, logs, artifacts
|
|
58
|
+
| Command | What it does |
|
|
59
|
+
|-|-|
|
|
60
|
+
| `boombox runs list [--cassette <id>] [--since 24h] [--actor <id>] [--status <s>] [--limit 20]` | Lists recent runs (run id, cassette, actor, status, duration, start). |
|
|
61
|
+
| `boombox runs show <run_id>` | One run: spec hash, inputs, step trace, delivery receipts, error summary, replay ref. |
|
|
62
|
+
| `boombox logs tail [--cassette <id>]` | Tails run/step events from the VM SSE stream. Ctrl+C exits cleanly. |
|
|
63
|
+
| `boombox artifacts open <artifact_id>` | Opens the artifact URL in the system browser. |
|
|
64
|
+
|
|
65
|
+
### Tenant MCP servers, capabilities, keys
|
|
66
|
+
| Command | What it does |
|
|
67
|
+
|-|-|
|
|
68
|
+
| `boombox mcp add --id <server_id> --name <display> --url <url> [--transport streamable_http\|sse] [--auth-header <h>] [--secret-ref <ENV_KEY>] [--tools t1,t2]` | Registers a tenant-owned MCP server on this VM for cassettes to reference. |
|
|
69
|
+
| `boombox mcp list` | Lists tenant MCP servers registered on this VM. |
|
|
70
|
+
| `boombox mcp rm <server_id>` | Removes a tenant MCP server registration. |
|
|
71
|
+
| `boombox mcp status <server_id> [--enable\|--disable]` | Enables or disables a tenant MCP server registration. |
|
|
72
|
+
| `boombox capabilities list [--kind <k>] [--status available\|missing]` | Lists registered recipes, tools, artifact templates, prompt templates. |
|
|
41
73
|
| `boombox keys list` | Lists tenant API keys visible to the current API key authority. |
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
|
45
|
-
|
|
46
|
-
| `boombox
|
|
47
|
-
| `boombox
|
|
48
|
-
| `boombox reload` |
|
|
49
|
-
| `boombox restart` | Stops and respawns
|
|
50
|
-
| `boombox stop` | Stops a running
|
|
51
|
-
| `boombox upgrade` | Self-update through npm. |
|
|
74
|
+
|
|
75
|
+
### Serve (MCP / HTTP) & process control
|
|
76
|
+
| Command | What it does |
|
|
77
|
+
|-|-|
|
|
78
|
+
| `boombox serve [--mcp] [--http] [--port <port>] [--profile default\|advanced\|operator]` | Boots the stdio MCP server (`--mcp`) and/or the local HTTP proxy (`--http`). |
|
|
79
|
+
| `boombox status` | Checks VM health, `/v2/api/info`, and run-event stream reachability. |
|
|
80
|
+
| `boombox reload` | SIGHUP a running `boombox serve` to re-read config. |
|
|
81
|
+
| `boombox restart [--no-detach] [--timeout <ms>]` | Stops and respawns `boombox serve` (detached by default). |
|
|
82
|
+
| `boombox stop [--timeout <ms>]` | Stops a running `boombox serve`. |
|
|
83
|
+
| `boombox upgrade [--check] [--force]` | Self-update through the npm registry. |
|
|
84
|
+
|
|
85
|
+
### Admin (super-admin)
|
|
86
|
+
| Command | What it does |
|
|
87
|
+
|-|-|
|
|
88
|
+
| `boombox admin ui [--cloud-url <url>]` | Requests a short-lived admin grant and opens the tenant VM admin UI. |
|
|
89
|
+
| `boombox admin provision <tenant> [--name <n>] [--company <c>] [--ceo <c>] [--control-plane <url>] [--admin-key <key>] [--json]` | Super-admin: provision a tenant (doc + keypair + VM) via the control plane. Needs `ADMIN_API_KEY` (flag or `BOOMBOX_ADMIN_API_KEY`). |
|
|
90
|
+
|
|
91
|
+
## MCP client setup
|
|
92
|
+
|
|
93
|
+
### Claude Desktop / Claude Code / Cursor
|
|
94
|
+
|
|
95
|
+
```json
|
|
96
|
+
{
|
|
97
|
+
"mcpServers": {
|
|
98
|
+
"boombox": {
|
|
99
|
+
"command": "boombox",
|
|
100
|
+
"args": ["serve", "--mcp"]
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
After saving, restart your client. The MCP profile is selected with `--profile` (or `GARY_MCP_PROFILE`): `default` exposes the chat-parity tools (`ask_gary`, `list_threads`, `clear_thread`, `artifact_fetch`, `gary_status`); `advanced` adds cassette authoring + rack verbs; `operator` adds admin verbs.
|
|
52
107
|
|
|
53
108
|
## Config file
|
|
54
109
|
|
|
@@ -71,63 +126,27 @@ mcp_enabled = true
|
|
|
71
126
|
[admin]
|
|
72
127
|
```
|
|
73
128
|
|
|
74
|
-
`runtime.vm_url` is the preferred target. If
|
|
129
|
+
`runtime.vm_url` is the preferred target. If present, CLI commands talk to the tenant VM; `gateway_url` remains the shared cloud fallback and login/onboarding origin.
|
|
75
130
|
|
|
76
131
|
The file is created with mode `600`. Override the location with `BOOMBOX_HOME=/some/dir` (config lives at `$BOOMBOX_HOME/config.toml`).
|
|
77
132
|
|
|
78
|
-
## MCP client setup
|
|
79
|
-
|
|
80
|
-
### Claude Desktop / Claude Code / Cursor / OpenClaw
|
|
81
|
-
|
|
82
|
-
```json
|
|
83
|
-
{
|
|
84
|
-
"mcpServers": {
|
|
85
|
-
"boombox": {
|
|
86
|
-
"command": "boombox",
|
|
87
|
-
"args": ["serve", "--mcp"]
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
After saving, restart your client. The default MCP profile exposes the chat-parity tools: `ask_gary`, `list_threads`, `clear_thread`, `artifact_fetch`, and `gary_status`. Advanced/operator profiles can expose rack, prompt, cassette, and admin verbs when explicitly enabled.
|
|
94
|
-
|
|
95
|
-
## Ops route contracts
|
|
96
|
-
|
|
97
|
-
The ops CLI uses direct HTTP service routes with `Authorization: Bearer <tenant_api_key>`; it does not speak MCP wire format.
|
|
98
|
-
|
|
99
|
-
| CLI command | Primary route contract |
|
|
100
|
-
|-|-|
|
|
101
|
-
| `whoami` | `GET /v2/api/me`. |
|
|
102
|
-
| `status` | `GET /health`, `GET /v2/api/info`, `GET /admin/runs/stream` (fallback: `/api/admin/runs/stream`). |
|
|
103
|
-
| `runs list` | `GET /api/admin/runs` with `cassette`, `since`, `actor`, `status`, `limit`; fallback: `GET /api/admin/cassettes/runs`. |
|
|
104
|
-
| `runs show` | `GET /api/admin/runs/:run_id`; fallback: `GET /api/admin/cassettes/runs/:run_id/replay`. |
|
|
105
|
-
| `logs tail` | `GET /admin/runs/stream` SSE; fallback: `GET /api/admin/runs/stream`. |
|
|
106
|
-
| `run` | `GET /api/admin/cassettes/:id` for required input metadata, `POST /gateway/rack/run` to trigger, then `GET /api/admin/runs/:run_id` or replay fallback to poll. |
|
|
107
|
-
| `cassettes list` | `GET /api/admin/cassettes`; the VM route currently defaults unknown status filters to `active`. |
|
|
108
|
-
| `cassettes show` | `GET /api/admin/cassettes/:id/yaml?draft=true`; falls back to `GET /api/admin/cassettes/:id` if YAML is not wired. |
|
|
109
|
-
| `keys list` | `GET /api/admin/keys`. |
|
|
110
|
-
| `capabilities list` | `GET /api/admin/capabilities`. |
|
|
111
|
-
|
|
112
133
|
## Local HTTP server
|
|
113
134
|
|
|
114
135
|
When `boombox serve --http` is running, your browser hits Hono on `localhost:8787`:
|
|
115
136
|
|
|
116
|
-
- `GET
|
|
117
|
-
- `GET
|
|
118
|
-
- `GET
|
|
119
|
-
- `GET
|
|
137
|
+
- `GET /` → the bundled Boombox UI when `ui/dist` exists.
|
|
138
|
+
- `GET /api/...` → proxied to the configured VM/cloud gateway with `Authorization: Bearer <api_key>` injected. The browser never sees your API key.
|
|
139
|
+
- `GET /gateway/...` → rewritten to `/api/gateway/...` upstream.
|
|
140
|
+
- `GET /healthz` → 200 if config loaded.
|
|
120
141
|
|
|
121
|
-
If `ui/dist/` is missing, `/` and SPA routes return `503 ui_not_built`; `/healthz` and `/api/*` still work.
|
|
122
|
-
|
|
123
|
-
CORS is locked to `localhost`/`127.0.0.1` origins.
|
|
142
|
+
If `ui/dist/` is missing, `/` and SPA routes return `503 ui_not_built`; `/healthz` and `/api/*` still work. CORS is locked to `localhost`/`127.0.0.1` origins.
|
|
124
143
|
|
|
125
144
|
## Troubleshooting
|
|
126
145
|
|
|
127
146
|
- **`boombox doctor` says "config not found"** — run `boombox login`; use `boombox init` only when Konstant gave you raw VM credentials.
|
|
128
|
-
- **`whoami` returns 401/403** — the API key is invalid, expired, or lacks authority. Run `boombox login` to refresh
|
|
147
|
+
- **`whoami` returns 401/403** — the API key is invalid, expired, or lacks authority. Run `boombox login` to refresh.
|
|
129
148
|
- **`gateway: unreachable`** — verify `runtime.vm_url` in `~/.boombox/config.toml`; the expected VM domain is `https://boombox-<tenant>.exe.xyz`.
|
|
130
|
-
- **Run stays queued** —
|
|
149
|
+
- **Run stays queued** — check `boombox runs show <run_id>` and the VM admin run trace.
|
|
131
150
|
- **Port 8787 already in use** — pass `--port 9000` to `boombox serve --http`, or set `http_port` in config.
|
|
132
151
|
- **MCP boot test fails** — make sure your Node version is `>= 20`.
|
|
133
152
|
|
|
@@ -135,10 +154,6 @@ CORS is locked to `localhost`/`127.0.0.1` origins.
|
|
|
135
154
|
|
|
136
155
|
The CLI stores config and API keys locally; it does not store run output, telemetry, or tenant data on disk. Runtime data, replay packets, artifacts, and events live in the tenant VM/Mongo path configured for that tenant. LLM calls route through the tenant's configured provider path.
|
|
137
156
|
|
|
138
|
-
## Versioning
|
|
139
|
-
|
|
140
|
-
`0.1.0` — V1 ships with the default MCP tools plus CLI commands for login, VM status, cassette runs, run inspection, artifacts, keys, capabilities, admin, and lifecycle control. Run `boombox upgrade` to pull updates.
|
|
141
|
-
|
|
142
157
|
## License
|
|
143
158
|
|
|
144
159
|
UNLICENSED — internal Konstant package.
|