@vibecodr/cli 1.0.8 → 1.0.10
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 +18 -0
- package/dist/app/command-registry.js +2 -2
- package/dist/app/command-registry.js.map +1 -1
- package/dist/app/help.js +4 -4
- package/dist/app/help.js.map +1 -1
- package/dist/commands/doctor.js +1 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +15 -1
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/login.js +2 -2
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/status.js +4 -4
- package/dist/commands/status.js.map +1 -1
- package/dist/dryrun/README.md +1 -0
- package/dist/dryrun/worker.js +39892 -0
- package/dist/dryrun/worker.js.map +8 -0
- package/dist/legacy/cli/run.js +36 -1
- package/dist/legacy/cli/run.js.map +1 -1
- package/dist/legacy/core/version.d.ts +2 -2
- package/dist/legacy/core/version.d.ts.map +1 -1
- package/dist/legacy/core/version.js +1 -1
- package/dist/legacy/core/version.js.map +1 -1
- package/docs/API-CONTRACT.md +18 -1
- package/docs/RELEASE-CHECKLIST.md +6 -4
- package/docs/VALIDATION-MATRIX.md +3 -3
- package/docs/auth.md +9 -2
- package/docs/commands.md +6 -5
- package/package.json +1 -1
package/docs/API-CONTRACT.md
CHANGED
|
@@ -267,6 +267,21 @@ Each descriptor also includes the canonical hosted capability it maps to.
|
|
|
267
267
|
names for advanced callers, and returns a quota/audit-shaped contract response
|
|
268
268
|
unless the hosted provider mode is later set to `live`.
|
|
269
269
|
|
|
270
|
+
The endpoint is an OAuth protected resource, not an authorization server. The
|
|
271
|
+
hosted Worker publishes protected-resource metadata at:
|
|
272
|
+
|
|
273
|
+
- `GET /.well-known/oauth-protected-resource`
|
|
274
|
+
- `GET /.well-known/oauth-protected-resource/mcp`
|
|
275
|
+
- `GET /.well-known/oauth-protected-resource/v1/mcp`
|
|
276
|
+
|
|
277
|
+
Unauthenticated MCP `POST /mcp` responses include a Bearer
|
|
278
|
+
`WWW-Authenticate` challenge with `resource_metadata` pointing at the MCP
|
|
279
|
+
protected-resource metadata and `scope="vc-tools:use vc-tools:*"`. Discovery
|
|
280
|
+
probes for OAuth authorization-server metadata on `tools.vibecodr.space` return
|
|
281
|
+
an unauthenticated 404 because `tools` only verifies API-issued `vc_tools`
|
|
282
|
+
grants; clients should not treat `openai.vibecodr.space` gateway sessions as
|
|
283
|
+
valid `tools` grants.
|
|
284
|
+
|
|
270
285
|
Primary agent tool names:
|
|
271
286
|
|
|
272
287
|
- `browser.render` -> `browser.render_url`
|
|
@@ -426,7 +441,9 @@ The local launch package includes:
|
|
|
426
441
|
HTTP status, and sanitized error message, never query strings, bearer tokens,
|
|
427
442
|
request bodies, or actor identifiers.
|
|
428
443
|
Hosted API/MCP auth failures write anonymous `auth.failed` audit metrics with
|
|
429
|
-
the semantic auth error code and sanitized path.
|
|
444
|
+
the semantic auth error code and sanitized path. OAuth protected-resource and
|
|
445
|
+
authorization-server discovery probes are served before the auth gate and are
|
|
446
|
+
not counted as auth failures. The scheduled Worker pass
|
|
430
447
|
aggregates those rows over `VC_TOOLS_AUTH_FAILURE_WINDOW_MINUTES` and emits
|
|
431
448
|
`E-VIBECODR-VC-TOOLS-AUTH-FAILURE-ANOMALY` / `auth.failure_anomaly` only when
|
|
432
449
|
`VC_TOOLS_AUTH_FAILURE_ALERT_THRESHOLD` is crossed. This is an account-level
|
|
@@ -76,8 +76,9 @@ Expected results:
|
|
|
76
76
|
- `inspect` reports one hosted-required check for CLI-contract releases and zero
|
|
77
77
|
hosted-required checks after live production smoke.
|
|
78
78
|
- Unsafe browser URL smoke exits non-zero before any hosted request.
|
|
79
|
-
- The Worker returns health, MCP metadata,
|
|
80
|
-
|
|
79
|
+
- The Worker returns health, MCP metadata, protected-resource discovery, Bearer
|
|
80
|
+
auth challenges, and fail-closed auth responses; tests keep contract-mode
|
|
81
|
+
coverage for no-cost route validation.
|
|
81
82
|
- The contract-mode Worker supports MCP `initialize`, `tools/list`, and
|
|
82
83
|
`tools/call` JSON-RPC requests.
|
|
83
84
|
- Hosted dashboard sections render overview, usage, activity, artifacts, grants,
|
|
@@ -208,8 +209,9 @@ Expected hosted guarantees:
|
|
|
208
209
|
`hosted.worker_5xx` operator alert through the same fanout path. Keep this
|
|
209
210
|
code in parent internal-api `ALERT_CODES`; payloads must stay sanitized to
|
|
210
211
|
method, path pattern, status, and redacted error text only.
|
|
211
|
-
- Hosted API/MCP auth failures write anonymous `auth.failed` audit rows.
|
|
212
|
-
|
|
212
|
+
- Hosted API/MCP auth failures write anonymous `auth.failed` audit rows. OAuth
|
|
213
|
+
discovery probes are served before auth and must not enter this metric. The
|
|
214
|
+
scheduled Worker aggregates auth failures and emits the account-scoped
|
|
213
215
|
`E-VIBECODR-VC-TOOLS-AUTH-FAILURE-ANOMALY` /
|
|
214
216
|
`auth.failure_anomaly` operator alert when
|
|
215
217
|
`VC_TOOLS_AUTH_FAILURE_ALERT_THRESHOLD` is crossed inside
|
|
@@ -9,8 +9,8 @@ artifacts and tests.
|
|
|
9
9
|
| CLI Guidelines compliance | `src/cli/parser.ts`, `src/cli/run.ts`, `src/cli/output.ts`, `docs/CLI-GUIDELINES-AUDIT.md` | tests verify command-specific help, docs/support links, typo suggestions, stable JSON, product-safe default output, quiet mode, agent-computer primary nouns, and secure credential file/stdin sources |
|
|
10
10
|
| Agent Computer first-use path | `vibecodr start`, `vibecodr setup`, `vibecodr try`, `vibecodr agent connect/status`, `vibecodr computer status` | tests verify `start` checks account identity, hosted health, MCP connection metadata, usage state, safe readiness output, and agent-native connection details without exposing tokens; `try` proves auth, hosted API, browser, computer, proof saving, and usage readback |
|
|
11
11
|
| CLI login and auth diagnostics | `vibecodr login`, `vibecodr auth status`, `vibecodr auth diagnose`, `vibecodr auth export-agent-env`, safe generic credential file/stdin forms | tests verify browser/device auth starts when no credential is provided, `start` recovers from unreadable stored approval state by opening the normal browser login path, cost-bearing browser commands treat unreadable stored approval as missing auth instead of failing on credential storage shape, the private device code is never printed or stored, approval metadata points to `/settings/vc-tools/approve`, `--no-input` refuses interactive login without network calls, direct token grant caching, generic credential classification for Clerk OAuth/API-key exchange through Vibecodr Auth, durable API-key/OAuth local storage, expired grant refresh from stored API keys, file/stdin credential paths, one-off env credential auth without persistence, status reporting for active credential sources without exposing internal profiles, ambiguous credential denial, redaction, optional API verification, explicit file-store test mode, friendly expired-login errors, isolated config warnings, strict-permission agent credential-file export without printing the secret, and no stored-token forwarding to insecure local API URLs unless explicitly allowed |
|
|
12
|
-
| Remote agent connection setup | `vibecodr agent connect`, advanced `vibecodr connect` | tests verify Streamable HTTP metadata, agent-native tool names,
|
|
13
|
-
| Remote MCP tool server | `/mcp` in `src/hosted/worker.ts` | tests verify MCP `initialize`, `tools/list`, and `tools/call` JSON-RPC contract flow with agent-native `browser.*`, `computer.*`, `work.*`, `proof.*`, and `usage.status` tool names mapped to hosted canonical capabilities |
|
|
12
|
+
| Remote agent connection setup | `vibecodr agent connect`, advanced `vibecodr connect` | tests verify Streamable HTTP metadata, agent-native tool names, no token leakage, and refusal to write bare named-client configs for `tools.vibecodr.space/mcp` until a supported `vc_tools` client auth flow is proven |
|
|
13
|
+
| Remote MCP tool server | `/mcp` in `src/hosted/worker.ts` | tests verify protected-resource discovery, Bearer `WWW-Authenticate` challenge metadata, MCP `initialize`, `tools/list`, and `tools/call` JSON-RPC contract flow with agent-native `browser.*`, `computer.*`, `work.*`, `proof.*`, and `usage.status` tool names mapped to hosted canonical capabilities |
|
|
14
14
|
| Browser render/screenshot/markdown/PDF tests, crawl, snapshot, and paid agent tasks | `vibecodr browser *`, advanced `vibecodr tools test browser.*` | tests verify capability aliases including `browser.snapshot`, canonical browser and crawl payloads, default submit/wait behavior, `--out` proof saving without exposed IDs, Creator `browser.agent_task` acceptance up to 20 minutes, Pro acceptance up to 1 hour, Free denial, Quick Actions staying short, HTTPS-only validation, localhost/private/internal denial with safe-next-action messaging, URL credential denial, direct cookie/header/storage-state auth material denial, IPv4/IPv6 private, link-local, mapped, NAT64, and 6to4 denial, hosted unsafe redirect-chain denial before cost-bearing dispatch, and Workflow dispatch for paid browser agent tasks |
|
|
15
15
|
| Agent Computer run/tests | `vibecodr computer run/test`, advanced `vibecodr tools test sandbox.*`, hosted Sandbox SDK queue execution | tests verify no local shell execution, bounded command payload, default submit/wait behavior, `--out` proof saving without exposed IDs, public HTTP(S) package/docs egress by default for paid Agent Computer jobs, explicit `--network public`/`--network off` payloads, no private-network opt-in flag, no per-command host allowlist requirement, Cloudflare host policy plus hosted outbound handler denial for private/local/internal destinations and private-resolving DNS, per-command Sandbox SDK timeout forwarding, timeout/fork-storm failure cleanup through sandbox teardown, minimal sandbox env injection, stdout/stderr truncation, sandbox-returned files/output-file paths ignored in favor of one fixed transcript artifact, artifact storage accounting, and sandbox-minute metering |
|
|
16
16
|
| Proof store/read/save/delete | `vibecodr proof list/show/save/delete`, advanced `vibecodr artifacts list/get/pull/create/delete` | tests verify metadata shape, bounded list limits, safe filenames, overwrite guard, explicit in-workspace pull file targets, automatic proof saving from browser/computer aliases and `work follow --out`, explicit confirmation before delete, actor-scoped hosted deletion of D1 shelf rows plus R2 bytes, hosted plan-owned upload caps, hard total artifact storage caps, R2 cleanup after D1 reservation races, workspace-bounded upload/download paths, and symlink/junction escape denial |
|
|
@@ -33,7 +33,7 @@ artifacts and tests.
|
|
|
33
33
|
| Browser Run crawl provider path | `browser.crawl_site`, hosted `/crawl` Quick Action integration | CLI tests verify `browser.crawl` payloads; hosted tests verify crawl start, result fetch, artifact storage, browser-minute usage, and crawl-page usage |
|
|
34
34
|
| Browser Run provider retry/defer | `src/hosted/worker.ts` queue failure handling | hosted tests verify provider 429 responses return jobs to queued/retryable state and do not mark them failed on first rate-limit pressure |
|
|
35
35
|
| Human-use security hardening | CLI and hosted Worker trust-boundary controls | tests verify insecure local API opt-in, workspace-bounded artifacts including symlink/junction denial, scoped Vibecodr CLI grants with per-tool capability scopes, actor-scoped live job/artifact/usage/audit SQL, DNS address-record and redirect-chain enforcement with denial metrics, authenticated-browser material denial, Browser Run Quick Action routing and metered time, crawl metering, paid sandbox public HTTP(S) egress with private/local/internal denial, quota denial metrics, pre-execution and during-execution cancellation guards, hard artifact storage caps, D1/R2 artifact write cleanup, explicit artifact deletion cleanup, and retention-backed artifact expiry |
|
|
36
|
-
| Hosted API/MCP scaffold | `src/hosted/worker.ts`, `wrangler.jsonc`, `migrations/0001_live_schema.sql`, `migrations/0002_actor_scope.sql`, `migrations/0003_quota_reservations.sql`, `migrations/0004_sandbox_quota_reservations.sql`, `migrations/0005_operator_alert_dedupe.sql`, `migrations/0006_scheduled_qa.sql`, `migrations/0007_job_queue_metadata.sql` | `npm run check:worker` and `test/hosted-worker.test.ts` verify health, auth fail-closed behavior, auth-failure audit metrics, user-safe public readiness, protected inspection/dashboard routes, scoped CLI grants, capability-scope denial, MCP metadata, MCP tool flow, dashboard contract, actor-scoped live acceptance, atomic quota reservation including sandbox seconds and parallel race conflict handling, queued-ahead metadata without interactive fairness delay, Workflow-owned paid agent browser dispatch without a Queue binding, Queue rejection for Browser Agent execution, Browser Run Quick Action hard-cap deferral, Browser Session hard-cap deferral, Sandbox hard-cap deferral, provider retry/defer handling, Browser Run large-page timeout bounds, failed-job DLQ retry-boundary behavior without provider re-execution, exhausted failed-job loop prevention, scheduled Queue/DLQ/artifact-storage/retention-cleanup/execution-health/auth-failure/Cloudflare-spend alerting, unexpected hosted 500 alerting, crawl artifacts, scheduled QA config/create/list/run-now enqueue/cron enqueue, sandbox execution timeout/env/output/teardown behavior, sandbox timeout/fork-storm failure cleanup, sandbox-returned file/path suppression, sandbox reservation reconciliation, unsafe redirect rejection before cost-bearing dispatch, D1-backed operator alert dedupe, and contract-mode tool acceptance |
|
|
36
|
+
| Hosted API/MCP scaffold | `src/hosted/worker.ts`, `wrangler.jsonc`, `migrations/0001_live_schema.sql`, `migrations/0002_actor_scope.sql`, `migrations/0003_quota_reservations.sql`, `migrations/0004_sandbox_quota_reservations.sql`, `migrations/0005_operator_alert_dedupe.sql`, `migrations/0006_scheduled_qa.sql`, `migrations/0007_job_queue_metadata.sql` | `npm run check:worker` and `test/hosted-worker.test.ts` verify health, auth fail-closed behavior, OAuth discovery routes that do not emit `auth.failed`, auth-failure audit metrics, user-safe public readiness, protected inspection/dashboard routes, scoped CLI grants, capability-scope denial, MCP protected-resource metadata, MCP auth challenge headers, MCP metadata, MCP tool flow, dashboard contract, actor-scoped live acceptance, atomic quota reservation including sandbox seconds and parallel race conflict handling, queued-ahead metadata without interactive fairness delay, Workflow-owned paid agent browser dispatch without a Queue binding, Queue rejection for Browser Agent execution, Browser Run Quick Action hard-cap deferral, Browser Session hard-cap deferral, Sandbox hard-cap deferral, provider retry/defer handling, Browser Run large-page timeout bounds, failed-job DLQ retry-boundary behavior without provider re-execution, exhausted failed-job loop prevention, scheduled Queue/DLQ/artifact-storage/retention-cleanup/execution-health/auth-failure/Cloudflare-spend alerting, unexpected hosted 500 alerting, crawl artifacts, scheduled QA config/create/list/run-now enqueue/cron enqueue, sandbox execution timeout/env/output/teardown behavior, sandbox timeout/fork-storm failure cleanup, sandbox-returned file/path suppression, sandbox reservation reconciliation, unsafe redirect rejection before cost-bearing dispatch, D1-backed operator alert dedupe, and contract-mode tool acceptance |
|
|
37
37
|
| Live Cloudflare provider | `src/hosted/worker.ts`, `wrangler.jsonc`, `Dockerfile`, `migrations/0001_live_schema.sql`, `migrations/0002_actor_scope.sql`, `migrations/0003_quota_reservations.sql`, `migrations/0004_sandbox_quota_reservations.sql`, `migrations/0005_operator_alert_dedupe.sql`, `migrations/0006_scheduled_qa.sql`, `migrations/0007_job_queue_metadata.sql` | hosted-required for live releases: apply all migrations, set Browser Run Quick Actions secrets and `BROWSER_AGENT_WORKFLOW`, deploy, then smoke health, authenticated login, real Quick Action browser job, real scheduled QA create/list/run-now enqueue/job-readback/monthly-cap denial plus natural cron-tick readback at a real trigger time, real Creator browser agent-task job through `BROWSER_AGENT_WORKFLOW`/`BROWSER`, real Pro browser agent-task job through `BROWSER_AGENT_WORKFLOW`/`BROWSER`, real crawl job, real Creator `standard-1` sandbox job capped at 10 minutes, real Pro `standard-2` sandbox job capped at 30 minutes, R2 artifact download, actor-scoped user-safe usage, crawl-page usage, sandbox-second quota denial, operator-alert dedupe/readback on operator surfaces, COGS dashboard readback, and audit rows against `https://tools.vibecodr.space` |
|
|
38
38
|
| Cloudflare dynamic primitive fit | `docs/CLOUDFLARE-PRIMITIVE-FIT.md`, `docs/API-CONTRACT.md`, `wrangler.jsonc` | docs verify Cloudflare Workflows are the v1 durable `browser.agent_task` lane; Dynamic Workers/Facets/Dynamic Workflows remain future supervised dynamic-code capabilities, not replacements for v1 Browser Run Quick Actions, Sandbox SDK, D1, R2, Queue/DLQ, or platform-owned quota/audit/billing authority |
|
|
39
39
|
| Production-grade packaging | build, typecheck, test, explicit npm exports, CLI-only runtime dependencies, pack verifier, CI | `npm run verify`; pack verifier rejects `docs/`, hosted Worker source, migrations, deployment config, tests, scripts, and Cloudflare primitive runtime dependencies from the public npm artifact |
|
package/docs/auth.md
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
# Auth
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The normal public setup path is `vibecodr start`. It opens the browser approval
|
|
4
|
+
flow shown on the Vibecodr CLI pages, stores the hosted Agent Computer
|
|
5
|
+
credential for this machine, and returns the connection details an agent needs.
|
|
6
|
+
|
|
7
|
+
`vibecodr login` is still the explicit MCP Gateway login for publishing,
|
|
8
|
+
uploads, Pulses, and direct MCP Gateway tools. It does not log Codex, Cursor, VS
|
|
9
|
+
Code, Windsurf, ChatGPT, or any other MCP client into MCP.
|
|
4
10
|
|
|
5
11
|
Vibecodr now has two CLI credential lanes:
|
|
6
12
|
|
|
7
13
|
- MCP Gateway: `vibecodr login` or `vibecodr login mcp`, stored under the historical `@vibecodr/mcp` service.
|
|
8
14
|
- Hosted Agent Computer: `vibecodr login agent` or the automatic `vibecodr start` approval flow, stored under the historical `@vibecodr/vc-tools` service.
|
|
9
15
|
|
|
10
|
-
The token types are intentionally separate. Status and doctor can read both lanes,
|
|
16
|
+
The token types are intentionally separate. Status and doctor can read both lanes,
|
|
17
|
+
but the CLI does not merge or copy credentials between them.
|
|
11
18
|
|
|
12
19
|
Compatibility alias:
|
|
13
20
|
|
package/docs/commands.md
CHANGED
|
@@ -10,9 +10,10 @@ The Vibecodr CLI talks to two hosted endpoints. Every command targets exactly on
|
|
|
10
10
|
|
|
11
11
|
The three bin entries — `vibecodr`, `vibecodr-mcp`, `vc-tools` — all resolve to the same dispatcher. The `vc-tools` bin remains for back-compat and routes every command through the legacy code path so output is byte-equivalent to `@vibecodr/vc-tools@0.1.4`. The `vibecodr` bin runs the MCP-gateway commands inline and cross-routes the hosted Agent Computer commands into the legacy code path. The `vibecodr-mcp` bin is the alias preserved from `@vibecodr/cli@0.2.x`.
|
|
12
12
|
|
|
13
|
-
The human-facing command experience is deliberately guided: `vibecodr
|
|
14
|
-
|
|
15
|
-
they teach service names.
|
|
13
|
+
The human-facing command experience is deliberately guided: `vibecodr start` is
|
|
14
|
+
the normal public setup path, and `vibecodr`, `vibecodr status`, and
|
|
15
|
+
`vibecodr doctor` should answer what to do next before they teach service names.
|
|
16
|
+
The architecture underneath remains explicit:
|
|
16
17
|
commands still route to one hosted endpoint, JSON stays stable for scripts, and
|
|
17
18
|
diagnostics preserve the real credential/service boundary.
|
|
18
19
|
|
|
@@ -96,13 +97,13 @@ Sends product feedback to the MCP Gateway `submit_feedback` tool. The platform s
|
|
|
96
97
|
|
|
97
98
|
`vibecodr install <codex|cursor|vscode|windsurf|claude-desktop|claude-code> [--scope user|project] [--path <dir>] [--name <server-name>] [--open-client] [--overwrite] [--dry-run]`
|
|
98
99
|
|
|
99
|
-
Adds (or removes) the
|
|
100
|
+
Adds (or removes) the OAuth-backed Vibecodr MCP Gateway server to an app such as Codex, Cursor, VS Code, Windsurf, Claude Desktop, or Claude Code. In command syntax we call that app a `client`. `codex`, `vscode`, and `claude-code` prefer their own CLI shim (`codex mcp add`, `code --add-mcp`, `claude mcp add`) and fall back to writing the app config file. `cursor`, `windsurf`, and `claude-desktop` always write the app config file directly. Records the install in `installs.json` so `uninstall` can find it. Profiles pointed at `tools.vibecodr.space/mcp` are refused here because that hosted Agent Computer endpoint uses `vc_tools` grants, not editor-owned MCP Gateway OAuth sessions.
|
|
100
101
|
|
|
101
102
|
### `vibecodr connect` / `vibecodr agent connect` (H)
|
|
102
103
|
|
|
103
104
|
`vibecodr connect --client <codex|cursor|vscode|windsurf|claude-desktop|claude-code> [--print] [--name <server-name>] [--install] [--overwrite]`
|
|
104
105
|
|
|
105
|
-
Prints (`--print`)
|
|
106
|
+
Prints (`--print`) the MCP connection details for the hosted Agent Computer. The `vibecodr agent connect` form is the agent-shaped alias; both reach the same code path. Named editor/client installs are skipped for `tools.vibecodr.space/mcp` until that client has a proven `vc_tools` grant flow; use `vibecodr install <client>` for the OAuth-backed MCP Gateway and `vibecodr start`/`vibecodr try` for CLI-owned Agent Computer credentials.
|
|
106
107
|
|
|
107
108
|
## Hosted browser (H)
|
|
108
109
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibecodr/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"description": "The official Vibecodr CLI: hosted browser, hosted computer, capsule uploads, Pulse operations, and agent-client MCP setup under one command.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|