@vibecodr/cli 1.0.7 → 1.0.9
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 +9 -0
- package/README.md +31 -11
- package/dist/app/command-registry.d.ts +13 -0
- package/dist/app/command-registry.d.ts.map +1 -0
- package/dist/app/command-registry.js +54 -0
- package/dist/app/command-registry.js.map +1 -0
- package/dist/app/help.d.ts +5 -0
- package/dist/app/help.d.ts.map +1 -0
- package/dist/app/help.js +158 -0
- package/dist/app/help.js.map +1 -0
- package/dist/bin/vibecodr-mcp.js +82 -89
- package/dist/bin/vibecodr-mcp.js.map +1 -1
- package/dist/commands/context.d.ts +2 -0
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +81 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/feedback.d.ts +3 -0
- package/dist/commands/feedback.d.ts.map +1 -0
- package/dist/commands/feedback.js +92 -0
- package/dist/commands/feedback.js.map +1 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +14 -0
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +29 -4
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +25 -3
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/mcp.d.ts +3 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +26 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +78 -6
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/tools.js +2 -2
- package/dist/commands/tools.js.map +1 -1
- 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.js +1 -1
- package/docs/API-CONTRACT.md +18 -1
- package/docs/RELEASE-CHECKLIST.md +11 -7
- package/docs/SECURITY.md +10 -6
- package/docs/VALIDATION-MATRIX.md +5 -5
- package/docs/architecture.md +9 -6
- package/docs/auth.md +15 -7
- package/docs/commands.md +44 -18
- package/docs/install.md +5 -5
- package/package.json +4 -3
|
@@ -4,7 +4,7 @@ Use this checklist before publishing `@vibecodr/cli`.
|
|
|
4
4
|
|
|
5
5
|
## Repository Boundary
|
|
6
6
|
|
|
7
|
-
- `git rev-parse --show-toplevel` prints the `tools/
|
|
7
|
+
- `git rev-parse --show-toplevel` prints the `tools/mcp/Vibecodr-CLI` repository root.
|
|
8
8
|
- No files are staged or committed from the parent Vibecodr repository.
|
|
9
9
|
- The package name is `@vibecodr/cli`.
|
|
10
10
|
- The canonical bin name is `vibecodr`; `vibecodr-mcp` and `vc-tools` are
|
|
@@ -22,10 +22,13 @@ npm run check:worker
|
|
|
22
22
|
npm test
|
|
23
23
|
npm run build
|
|
24
24
|
npm run verify:artifact
|
|
25
|
-
npm run verify:goal
|
|
26
25
|
npm run verify:release
|
|
27
26
|
npm run verify
|
|
28
27
|
node dist/bin/vibecodr-mcp.js --help
|
|
28
|
+
node dist/bin/vibecodr-mcp.js help mcp
|
|
29
|
+
node dist/bin/vibecodr-mcp.js login mcp --help
|
|
30
|
+
node dist/bin/vibecodr-mcp.js login agent --help
|
|
31
|
+
node dist/bin/vibecodr-mcp.js logout agent --help
|
|
29
32
|
node dist/bin/vibecodr-mcp.js help agent
|
|
30
33
|
node dist/bin/vibecodr-mcp.js help computer
|
|
31
34
|
node dist/bin/vibecodr-mcp.js help browser
|
|
@@ -48,7 +51,6 @@ Expected results:
|
|
|
48
51
|
- Tests exit `0`.
|
|
49
52
|
- Build exits `0`.
|
|
50
53
|
- Package artifact verifier exits `0`.
|
|
51
|
-
- Goal coverage verifier exits `0`.
|
|
52
54
|
- Release readiness verifier exits `0` for `VC_TOOLS_RELEASE_CHANNEL=cli-contract`.
|
|
53
55
|
- `VC_TOOLS_RELEASE_CHANNEL=live npm run verify:release` exits `0` only after
|
|
54
56
|
`live-hosted-production` is marked locally verified by fresh production smoke
|
|
@@ -74,8 +76,9 @@ Expected results:
|
|
|
74
76
|
- `inspect` reports one hosted-required check for CLI-contract releases and zero
|
|
75
77
|
hosted-required checks after live production smoke.
|
|
76
78
|
- Unsafe browser URL smoke exits non-zero before any hosted request.
|
|
77
|
-
- The Worker returns health, MCP metadata,
|
|
78
|
-
|
|
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.
|
|
79
82
|
- The contract-mode Worker supports MCP `initialize`, `tools/list`, and
|
|
80
83
|
`tools/call` JSON-RPC requests.
|
|
81
84
|
- Hosted dashboard sections render overview, usage, activity, artifacts, grants,
|
|
@@ -206,8 +209,9 @@ Expected hosted guarantees:
|
|
|
206
209
|
`hosted.worker_5xx` operator alert through the same fanout path. Keep this
|
|
207
210
|
code in parent internal-api `ALERT_CODES`; payloads must stay sanitized to
|
|
208
211
|
method, path pattern, status, and redacted error text only.
|
|
209
|
-
- Hosted API/MCP auth failures write anonymous `auth.failed` audit rows.
|
|
210
|
-
|
|
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
|
|
211
215
|
`E-VIBECODR-VC-TOOLS-AUTH-FAILURE-ANOMALY` /
|
|
212
216
|
`auth.failure_anomaly` operator alert when
|
|
213
217
|
`VC_TOOLS_AUTH_FAILURE_ALERT_THRESHOLD` is crossed inside
|
package/docs/SECURITY.md
CHANGED
|
@@ -7,12 +7,16 @@ Cloudflare credential custody.
|
|
|
7
7
|
|
|
8
8
|
## Local Rules
|
|
9
9
|
|
|
10
|
-
- Plain `vibecodr login` is the default
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
device
|
|
10
|
+
- Plain `vibecodr login` is the default MCP Gateway OAuth path. It stores only
|
|
11
|
+
the CLI profile's MCP OAuth session under the historical `@vibecodr/mcp`
|
|
12
|
+
service; it does not log editor clients into MCP and does not create an Agent
|
|
13
|
+
Computer credential.
|
|
14
|
+
- `vibecodr login agent` and `vibecodr start` are the hosted Agent Computer
|
|
15
|
+
human paths. They start a browser/device approval session, print a
|
|
16
|
+
user-checkable code, optionally open the Vibecodr approval page, and store the
|
|
17
|
+
durable credential returned to the polling CLI when the parent API issues one.
|
|
18
|
+
The browser approval response must never include the signed grant, API key,
|
|
19
|
+
OAuth token, refresh token, or private device code.
|
|
16
20
|
- Non-interactive credentials are preferably accepted through
|
|
17
21
|
`--credential-file`, `--credential-stdin`, `VC_TOOLS_CREDENTIAL_FILE`, or
|
|
18
22
|
local credentials. The input may be an existing Vibecodr grant, a Clerk OAuth
|
|
@@ -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,11 +33,11 @@ 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 |
|
|
40
|
-
| Inspectable goal coverage | `vibecodr inspect`, `src/core/goal-coverage.ts
|
|
40
|
+
| Inspectable goal coverage | `vibecodr inspect`, `src/legacy/core/goal-coverage.ts` | `npm run verify:release` and `test/legacy/cli.behavior.test.ts` verify coverage output |
|
|
41
41
|
|
|
42
42
|
## Completion Gate
|
|
43
43
|
|
|
@@ -48,7 +48,7 @@ Before shipping:
|
|
|
48
48
|
3. `npm test`
|
|
49
49
|
4. `npm run build`
|
|
50
50
|
5. `npm run verify:artifact`
|
|
51
|
-
6. `npm run verify:
|
|
51
|
+
6. `npm run verify:release`
|
|
52
52
|
7. Manual CLI smoke against a mock or real API
|
|
53
53
|
8. Hosted service smoke against `https://tools.vibecodr.space`
|
|
54
54
|
|
package/docs/architecture.md
CHANGED
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
# Architecture
|
|
2
2
|
|
|
3
|
-
The Vibecodr CLI is
|
|
3
|
+
The Vibecodr CLI is the unified user-facing command surface for the hosted MCP Gateway and the hosted Agent Computer.
|
|
4
4
|
|
|
5
5
|
## Boundary
|
|
6
6
|
|
|
7
7
|
- hosted MCP gateway/server repo: `Vibecodr-MCP`
|
|
8
|
-
- CLI
|
|
8
|
+
- CLI and hosted Agent Computer worker repo: `Vibecodr-CLI`
|
|
9
9
|
- CLI package: `@vibecodr/cli`
|
|
10
10
|
- primary executable: `vibecodr`
|
|
11
|
-
- compatibility
|
|
11
|
+
- compatibility executables: `vibecodr-mcp`, `vc-tools`
|
|
12
12
|
- legacy package compatibility: `@vibecodr/mcp`
|
|
13
13
|
- default MCP URL: `https://openai.vibecodr.space/mcp`
|
|
14
|
+
- Agent Computer API URL: `https://tools.vibecodr.space`
|
|
14
15
|
|
|
15
|
-
This repo does not run the hosted
|
|
16
|
+
This repo does not run the hosted MCP gateway. It does own the distributable CLI and the hosted Agent Computer worker source. The CLI installs client config, performs CLI-owned OAuth for the MCP Gateway, discovers the live gateway tool catalog, calls tools over Streamable HTTP MCP, and routes Agent Computer commands to `tools.vibecodr.space`.
|
|
16
17
|
|
|
17
18
|
## Auth Ownership
|
|
18
19
|
|
|
19
|
-
`vibecodr login`
|
|
20
|
+
`vibecodr login` and `vibecodr login mcp` store OAuth tokens for the CLI profile only.
|
|
21
|
+
|
|
22
|
+
`vibecodr login agent` and `vibecodr start` store the hosted Agent Computer credential only.
|
|
20
23
|
|
|
21
24
|
Codex, Cursor, VS Code, Windsurf, ChatGPT, and other MCP clients own separate OAuth sessions. Installing MCP config into those clients points them at the same server, but it does not copy CLI tokens into them.
|
|
22
25
|
|
|
@@ -26,7 +29,7 @@ The CLI is permissively licensed and safe to distribute as a public client packa
|
|
|
26
29
|
|
|
27
30
|
The package name is `@vibecodr/cli` because this repo distributes the user-facing command-line client. The older `@vibecodr/mcp` package name is kept only as a compatibility/deprecation surface; the bare `vibecodr` executable remains the canonical user command.
|
|
28
31
|
|
|
29
|
-
Local config directories and secure-token service names intentionally keep their historical `vibecodr-mcp` / `@vibecodr/
|
|
32
|
+
Local config directories and secure-token service names intentionally keep their historical `vibecodr-mcp`, `vc-tools`, `@vibecodr/mcp`, and `@vibecodr/vc-tools` identifiers during this migration. Those names are storage compatibility keys, not the public npm package identity.
|
|
30
33
|
|
|
31
34
|
Keeping the repos separate makes the contract clear:
|
|
32
35
|
|
package/docs/auth.md
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
# Auth
|
|
2
2
|
|
|
3
|
-
`vibecodr login`
|
|
3
|
+
`vibecodr login` defaults to authenticating the CLI itself to the hosted Vibecodr MCP server. It does not log Codex, Cursor, VS Code, Windsurf, ChatGPT, or any other MCP client into MCP.
|
|
4
4
|
|
|
5
|
-
Vibecodr has
|
|
5
|
+
Vibecodr now has two CLI credential lanes:
|
|
6
|
+
|
|
7
|
+
- MCP Gateway: `vibecodr login` or `vibecodr login mcp`, stored under the historical `@vibecodr/mcp` service.
|
|
8
|
+
- Hosted Agent Computer: `vibecodr login agent` or the automatic `vibecodr start` approval flow, stored under the historical `@vibecodr/vc-tools` service.
|
|
9
|
+
|
|
10
|
+
The token types are intentionally separate. Status and doctor can read both lanes, but the CLI does not merge or copy credentials between them.
|
|
6
11
|
|
|
7
12
|
Compatibility alias:
|
|
8
13
|
|
|
9
14
|
- `vibecodr-mcp login`
|
|
15
|
+
- `vc-tools login` for the Agent Computer compatibility path
|
|
10
16
|
|
|
11
17
|
## Implemented now
|
|
12
18
|
|
|
@@ -15,7 +21,8 @@ Compatibility alias:
|
|
|
15
21
|
- loopback callback on `127.0.0.1`
|
|
16
22
|
- secure token storage in the OS credential store via `@napi-rs/keyring`
|
|
17
23
|
- proactive refresh before protected runtime commands when a refresh token is available
|
|
18
|
-
- `logout` local token deletion plus best-effort revocation
|
|
24
|
+
- `logout` local token deletion plus best-effort revocation for MCP Gateway sessions
|
|
25
|
+
- `logout agent --yes` local Agent Computer credential deletion through the compatibility lane
|
|
19
26
|
|
|
20
27
|
The plaintext file secret store is for local automated tests only. It is ignored unless both `VIBECDR_MCP_INSECURE_SECRET_STORE_PATH` and `VIBECDR_MCP_ENABLE_INSECURE_SECRET_STORE=true` are set.
|
|
21
28
|
|
|
@@ -48,10 +55,11 @@ Current repo reality:
|
|
|
48
55
|
|
|
49
56
|
## Runtime behavior
|
|
50
57
|
|
|
51
|
-
- `login`
|
|
52
|
-
- `login --browser open` opts into automatic browser launch
|
|
53
|
-
- `
|
|
54
|
-
- `
|
|
58
|
+
- `login` and `login mcp` print the authorization URL by default so the browser step is explicit and reliable across shells
|
|
59
|
+
- `login mcp --browser open` opts into automatic browser launch
|
|
60
|
+
- `login agent` starts the hosted Agent Computer approval flow; `start` also opens this flow when no Agent Computer credential is stored
|
|
61
|
+
- `status` reads local MCP Gateway and Agent Computer credential state without requiring the network unless `--probe` is used
|
|
62
|
+
- `mcp tools`, `tools`, `mcp call`, and `call` will attempt to reuse the stored MCP Gateway session
|
|
55
63
|
- if the access token is close to expiry and a refresh token is present, the CLI refreshes before making the MCP request
|
|
56
64
|
|
|
57
65
|
## Verified now
|
package/docs/commands.md
CHANGED
|
@@ -10,6 +10,12 @@ 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
|
+
`vibecodr status`, and `vibecodr doctor` should answer what to do next before
|
|
15
|
+
they teach service names. The architecture underneath remains explicit:
|
|
16
|
+
commands still route to one hosted endpoint, JSON stays stable for scripts, and
|
|
17
|
+
diagnostics preserve the real credential/service boundary.
|
|
18
|
+
|
|
13
19
|
## Global flags
|
|
14
20
|
|
|
15
21
|
All commands accept:
|
|
@@ -36,23 +42,31 @@ Alternate MCP servers are profile-scoped, not runtime overrides. Use `vibecodr c
|
|
|
36
42
|
|
|
37
43
|
## Authentication
|
|
38
44
|
|
|
39
|
-
### `vibecodr login` (
|
|
45
|
+
### `vibecodr login [mcp|agent]` (*)
|
|
46
|
+
|
|
47
|
+
`vibecodr login [mcp] [--scope <oauth-scope>] [--registration auto|preregistered|cimd|dcr|manual] [--browser open|print] [--timeout-sec <n>]`
|
|
48
|
+
|
|
49
|
+
Authenticates this CLI against the MCP gateway via CIMD/PKCE. Prints the authorization URL by default; `--browser open` launches the browser automatically. Stores the encrypted session under the `@vibecodr/mcp` keyring service. The explicit `mcp` scope is accepted for clarity and is equivalent to the default.
|
|
40
50
|
|
|
41
|
-
`vibecodr login [--
|
|
51
|
+
`vibecodr login agent [--no-browser] [--credential-file <path> | --credential-stdin]`
|
|
42
52
|
|
|
43
|
-
Authenticates this
|
|
53
|
+
Authenticates this machine for the hosted Agent Computer. This is the explicit spelling for the device-code/API-key lane that `vibecodr start` also opens when no Agent Computer credential is available. It stores the durable credential under the historical `@vibecodr/vc-tools` keyring service.
|
|
44
54
|
|
|
45
|
-
### `vibecodr logout` (
|
|
55
|
+
### `vibecodr logout [mcp|agent]` (*)
|
|
46
56
|
|
|
47
|
-
`vibecodr logout [--all] [--no-revoke]`
|
|
57
|
+
`vibecodr logout [mcp] [--all] [--no-revoke]`
|
|
48
58
|
|
|
49
59
|
Clears the MCP gateway session. Does not touch editor-owned auth or the hosted Agent Computer credential.
|
|
50
60
|
|
|
51
|
-
|
|
61
|
+
`vibecodr logout agent --yes`
|
|
62
|
+
|
|
63
|
+
Clears the hosted Agent Computer credential lane. This preserves the historical confirmation requirement from the `vc-tools` compatibility surface.
|
|
64
|
+
|
|
65
|
+
### `vibecodr status` (*)
|
|
52
66
|
|
|
53
67
|
`vibecodr status [--probe] [--show-installs]`
|
|
54
68
|
|
|
55
|
-
Without `--probe`, reads only local state. `--show-installs` distinguishes configured, missing, and external managed installs.
|
|
69
|
+
Without `--probe`, reads only local state, including both the MCP Gateway and hosted Agent Computer credential lanes. `--show-installs` distinguishes configured, missing, and external managed installs.
|
|
56
70
|
|
|
57
71
|
### `vibecodr whoami` (M)
|
|
58
72
|
|
|
@@ -60,6 +74,12 @@ Without `--probe`, reads only local state. `--show-installs` distinguishes confi
|
|
|
60
74
|
|
|
61
75
|
Calls the protected `get_account_capabilities` MCP tool. Prints account identity, plan, CLI profile, server URL, and session state. Same refresh + interactive login retry path as `call`.
|
|
62
76
|
|
|
77
|
+
### `vibecodr feedback` (M)
|
|
78
|
+
|
|
79
|
+
`vibecodr feedback [message] [--message <text>] [--subject <text>] [--category feedback|idea|bug|question|praise|other] [--page-url <url>] [--no-login]`
|
|
80
|
+
|
|
81
|
+
Sends product feedback to the MCP Gateway `submit_feedback` tool. The platform stores the note for review and queues founder notification. This is for product feedback, ideas, questions, praise, or rough edges; do not use it for secrets or vulnerability details.
|
|
82
|
+
|
|
63
83
|
### `vibecodr start` / `vibecodr setup` (H)
|
|
64
84
|
|
|
65
85
|
`vibecodr start [--api-url <url>] [--browser open|print] [--credential ...] [--token ...] [--no-input]`
|
|
@@ -70,19 +90,19 @@ Calls the protected `get_account_capabilities` MCP tool. Prints account identity
|
|
|
70
90
|
|
|
71
91
|
`auth diagnose` reports local credential health and which surface owns the active session. `auth export-agent-env` emits `VC_TOOLS_*` environment variables so an isolated agent shell can pick up the cached credential.
|
|
72
92
|
|
|
73
|
-
##
|
|
93
|
+
## Add Vibecodr To An App (*)
|
|
74
94
|
|
|
75
95
|
### `vibecodr install <client>` / `vibecodr uninstall <client>`
|
|
76
96
|
|
|
77
97
|
`vibecodr install <codex|cursor|vscode|windsurf|claude-desktop|claude-code> [--scope user|project] [--path <dir>] [--name <server-name>] [--open-client] [--overwrite] [--dry-run]`
|
|
78
98
|
|
|
79
|
-
Adds (or removes) the
|
|
99
|
+
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.
|
|
80
100
|
|
|
81
101
|
### `vibecodr connect` / `vibecodr agent connect` (H)
|
|
82
102
|
|
|
83
103
|
`vibecodr connect --client <codex|cursor|vscode|windsurf|claude-desktop|claude-code> [--print] [--name <server-name>] [--install] [--overwrite]`
|
|
84
104
|
|
|
85
|
-
Prints (`--print`)
|
|
105
|
+
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.
|
|
86
106
|
|
|
87
107
|
## Hosted browser (H)
|
|
88
108
|
|
|
@@ -159,17 +179,23 @@ Prints the URL of the hosted supervision dashboard. Does not open a browser; tha
|
|
|
159
179
|
|
|
160
180
|
## MCP gateway tooling (M)
|
|
161
181
|
|
|
162
|
-
### `vibecodr
|
|
182
|
+
### `vibecodr mcp tools`
|
|
183
|
+
|
|
184
|
+
`vibecodr mcp tools [<tool-name>] [--search <text>] [--schema] [--no-login]`
|
|
185
|
+
|
|
186
|
+
Lists the live MCP tool catalog from `openai.vibecodr.space/mcp`. With `<tool-name>`, prints the schema for that tool. `--schema` includes the full JSON schema. `vibecodr tools` remains a compatibility alias for this MCP gateway catalog.
|
|
187
|
+
|
|
188
|
+
### `vibecodr mcp call <tool-name>`
|
|
163
189
|
|
|
164
|
-
`vibecodr
|
|
190
|
+
`vibecodr mcp call <tool-name> [--input-json <json>] [--input-file <path>] [--stdin] [--interactive] [--timeout-sec <n>] [--no-login] [--confirm]`
|
|
165
191
|
|
|
166
|
-
|
|
192
|
+
Invokes the named MCP tool. `vibecodr call` remains a compatibility alias for this gateway command. `--interactive` supports top-level scalar object fields; richer schemas should use `--input-json` or `--input-file`. `--confirm` is required for known mutating tools. The CLI redacts source, descriptor, token, secret, and inline file-content fields from displayed arguments and results while preserving safe operator handles (`artifactId`, `jobId`, `requestId`, `traceId`, `errorCode`, `credentialType`, `tokenCount`, `tokenKind`). The gateway remains the authority boundary for OAuth, owner scoping, confirmation policy, and output shaping. `--timeout-sec <n>` changes only the local MCP transport timeout and is not forwarded as a server tool argument.
|
|
167
193
|
|
|
168
|
-
### `vibecodr
|
|
194
|
+
### `vibecodr tools test`
|
|
169
195
|
|
|
170
|
-
`vibecodr
|
|
196
|
+
`vibecodr tools test <capability> [target] [--command <cmd>] [--timeout-ms <ms>] [--max-pages n] [--max-depth n] [--no-render]`
|
|
171
197
|
|
|
172
|
-
|
|
198
|
+
Compatibility route for hosted Agent Computer capability checks. New docs should prefer the explicit Agent Computer commands (`vibecodr browser ...`, `vibecodr computer ...`, `vibecodr work ...`, `vibecodr proof ...`) and the explicit MCP namespace (`vibecodr mcp tools`, `vibecodr mcp call ...`).
|
|
173
199
|
|
|
174
200
|
For `quick_publish_creation` with `payload.importMode: "direct_files"`, pass file paths as normal slash-separated project paths (`src/main.tsx`, `src/server/binding-proof.js`). Do not pre-encode slashes as `%2F`; the hosted gateway encodes each URL segment when it writes files to Vibecodr.
|
|
175
201
|
|
|
@@ -185,7 +211,7 @@ Direct-to-R2 staged uploads (no base64 payloads). Hosted gateway returns a presi
|
|
|
185
211
|
|
|
186
212
|
`vibecodr pulse-setup [--descriptor-setup-json <json> | --descriptor-setup-file <path>]`
|
|
187
213
|
|
|
188
|
-
|
|
214
|
+
Calls the MCP gateway tool `get_pulse_setup_guidance` and relays descriptor-derived setup guidance. When `--descriptor-setup-json` or `--descriptor-setup-file` is provided, the input must be a `PulseDescriptorSetupProjection` derived from the platform `PulseDescriptor` source of truth, not handwritten setup copy. Without args, the command asks the gateway for general setup guidance.
|
|
189
215
|
|
|
190
216
|
### `vibecodr pulse-publish`
|
|
191
217
|
|
|
@@ -216,7 +242,7 @@ Runs a small browser + computer + proof + usage check end-to-end to verify the a
|
|
|
216
242
|
|
|
217
243
|
### `vibecodr doctor` (*)
|
|
218
244
|
|
|
219
|
-
`vibecodr doctor [--json]` walks local health: secret store availability, browser launcher,
|
|
245
|
+
`vibecodr doctor [--json]` walks local health: secret store availability, browser launcher, MCP gateway reachability, PKCE support, refresh-token state, and both local credential lanes. It does not print token values.
|
|
220
246
|
|
|
221
247
|
### `vibecodr config` (*)
|
|
222
248
|
|
package/docs/install.md
CHANGED
|
@@ -18,12 +18,12 @@ After the package is published:
|
|
|
18
18
|
npx -y -p @vibecodr/cli vibecodr install codex
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
Direct CLI-only usage:
|
|
22
|
-
|
|
23
|
-
```bash
|
|
21
|
+
Direct CLI-only usage:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
24
|
npx -y -p @vibecodr/cli vibecodr login
|
|
25
|
-
npx -y -p @vibecodr/cli vibecodr tools --json
|
|
26
|
-
```
|
|
25
|
+
npx -y -p @vibecodr/cli vibecodr mcp tools --json
|
|
26
|
+
```
|
|
27
27
|
|
|
28
28
|
## Client commands
|
|
29
29
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibecodr/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.9",
|
|
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",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
],
|
|
34
34
|
"repository": {
|
|
35
35
|
"type": "git",
|
|
36
|
-
"url": "https://github.com/BradenHartsell/Vibecodr-CLI.git"
|
|
36
|
+
"url": "git+https://github.com/BradenHartsell/Vibecodr-CLI.git"
|
|
37
37
|
},
|
|
38
38
|
"bugs": {
|
|
39
39
|
"url": "https://github.com/BradenHartsell/Vibecodr-CLI/issues"
|
|
@@ -55,7 +55,8 @@
|
|
|
55
55
|
"test:integration:worker": "node --import tsx --test test/worker-gateway.integration.test.ts",
|
|
56
56
|
"verify:artifact": "node scripts/check-pack-artifact.mjs",
|
|
57
57
|
"verify:release": "node scripts/check-release-readiness.mjs",
|
|
58
|
-
"verify": "npm run check && npm run build && npm test && npm run verify:artifact && npm run verify:release"
|
|
58
|
+
"verify": "npm run check && npm run build && npm test && npm run verify:artifact && npm run verify:release",
|
|
59
|
+
"publish:release": "node scripts/publish-release.mjs"
|
|
59
60
|
},
|
|
60
61
|
"dependencies": {
|
|
61
62
|
"@iarna/toml": "^2.2.5",
|