@vibecodr/cli 1.0.0 → 1.0.2
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 +75 -115
- package/MIGRATION.md +31 -2
- package/dist/auth/credential-broker.d.ts +28 -0
- package/dist/auth/credential-broker.d.ts.map +1 -0
- package/dist/auth/credential-broker.js +80 -0
- package/dist/auth/credential-broker.js.map +1 -0
- package/dist/bin/vc-tools.js +4 -0
- package/dist/bin/vc-tools.js.map +1 -1
- package/dist/bin/vibecodr-mcp.js +4 -0
- package/dist/bin/vibecodr-mcp.js.map +1 -1
- package/dist/clients/claude-code.d.ts.map +1 -1
- package/dist/clients/claude-code.js +5 -1
- package/dist/clients/claude-code.js.map +1 -1
- package/dist/core/env.d.ts +13 -0
- package/dist/core/env.d.ts.map +1 -0
- package/dist/core/env.js +62 -0
- package/dist/core/env.js.map +1 -0
- package/dist/legacy/config/store.d.ts.map +1 -1
- package/dist/legacy/config/store.js +19 -5
- package/dist/legacy/config/store.js.map +1 -1
- package/dist/legacy/core/version.d.ts +2 -2
- package/dist/legacy/core/version.js +1 -1
- package/dist/platform/paths.d.ts.map +1 -1
- package/dist/platform/paths.js +11 -1
- package/dist/platform/paths.js.map +1 -1
- package/dist/storage/config-store.d.ts.map +1 -1
- package/dist/storage/config-store.js +15 -3
- package/dist/storage/config-store.js.map +1 -1
- package/dist/storage/install-manifest.d.ts.map +1 -1
- package/dist/storage/install-manifest.js +14 -3
- package/dist/storage/install-manifest.js.map +1 -1
- package/dist/storage/migrate.d.ts +15 -0
- package/dist/storage/migrate.d.ts.map +1 -0
- package/dist/storage/migrate.js +93 -0
- package/dist/storage/migrate.js.map +1 -0
- package/dist/types/install.d.ts +4 -0
- package/dist/types/install.d.ts.map +1 -1
- package/docs/commands.md +171 -119
- package/docs/legacy/CHANGELOG-mcp-cli.md +85 -0
- package/package.json +74 -69
- package/preinstall-check.mjs +243 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,115 +1,75 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
## 0.1.7
|
|
77
|
-
|
|
78
|
-
- add the `pulse-setup` command for live Pulse setup guidance
|
|
79
|
-
- align CLI Pulse setup docs with the gateway runtime contract for policy-bound secrets, Stripe-first webhook helper guidance, generic HMAC presets, and provider-scoped connections
|
|
80
|
-
- refresh release-lock coverage for current in-range MCP SDK, keyring, and Node type packages before publishing
|
|
81
|
-
|
|
82
|
-
## 0.1.6
|
|
83
|
-
|
|
84
|
-
- make printed OAuth authorization URLs the default login behavior
|
|
85
|
-
- keep automatic browser launch available behind `--browser open`
|
|
86
|
-
- keep secret-store delete best-effort when keyring entry loading fails during cleanup
|
|
87
|
-
|
|
88
|
-
## 0.1.5
|
|
89
|
-
|
|
90
|
-
- replace the Windows browser launcher with `rundll32 url.dll,FileProtocolHandler` so OAuth URLs open in the default browser instead of File Explorer
|
|
91
|
-
- make `doctor` use the same browser-launcher availability check as runtime auth
|
|
92
|
-
|
|
93
|
-
## 0.1.4
|
|
94
|
-
|
|
95
|
-
- replace the Windows browser launcher with `explorer.exe` so OAuth URLs are passed through intact
|
|
96
|
-
|
|
97
|
-
## 0.1.3
|
|
98
|
-
|
|
99
|
-
- fix Windows command detection by resolving `where.exe` from the real system path
|
|
100
|
-
- make `status --show-installs` verify file-backed installs instead of blindly trusting the manifest
|
|
101
|
-
|
|
102
|
-
## 0.1.2
|
|
103
|
-
|
|
104
|
-
- fix Windows browser auto-open by launching the actual command shell instead of assuming `cmd` is on PATH
|
|
105
|
-
- make `doctor` validate the real browser launcher path instead of hardcoding Windows success
|
|
106
|
-
|
|
107
|
-
## 0.1.1
|
|
108
|
-
|
|
109
|
-
- add `vibecodr` as a first-class executable alias
|
|
110
|
-
- fix Windows login persistence by storing encrypted session blobs on disk with a small OS-keyring-backed encryption key
|
|
111
|
-
- keep `vibecodr-mcp` as a compatibility alias
|
|
112
|
-
|
|
113
|
-
## 0.1.0
|
|
114
|
-
|
|
115
|
-
- Initial Phase 0 scaffold for the direct Vibecodr MCP CLI.
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Pre-1.0.0 history for the `@vibecodr/cli@0.2.x` and `0.1.x` lines lives at [`docs/legacy/CHANGELOG-mcp-cli.md`](docs/legacy/CHANGELOG-mcp-cli.md). The `@vibecodr/vc-tools@0.1.x` line was the other half of the May 2026 merge; its source history is preserved in the archived [`BradenHartsell/vc-tools`](https://github.com/BradenHartsell/vc-tools) repository.
|
|
4
|
+
|
|
5
|
+
## 1.0.2
|
|
6
|
+
|
|
7
|
+
Hardens `preinstall-check.mjs` to also catch the **orphan-bin-shim** case that the 1.0.1 check missed.
|
|
8
|
+
|
|
9
|
+
When an earlier `npm install -g @vibecodr/cli` (or `@vibecodr/vc-tools`) was aborted mid-flight on Windows — typically because antivirus or an IDE held a file handle on the just-extracted tree during npm's cleanup — npm leaves the bin shim files (`vc-tools`, `vc-tools.cmd`, `vc-tools.ps1`, the `vibecodr` and `vibecodr-mcp` triples) at the global bin dir but the package itself isn't fully registered. The retry trips the same EEXIST because npm refuses to overwrite shim files it didn't write in the current install run.
|
|
10
|
+
|
|
11
|
+
The preinstall now:
|
|
12
|
+
|
|
13
|
+
- Inspects the global bin dir (`%APPDATA%\npm\` on Windows, `<prefix>/bin/` on POSIX) for any of the nine Windows shim names or three POSIX shim names.
|
|
14
|
+
- Cross-references against the global node_modules tree: if `<global-root>/@vibecodr/cli/package.json` doesn't exist or doesn't name `@vibecodr/cli`, the shim files are orphans.
|
|
15
|
+
- Prints an actionable cleanup recipe (`Remove-Item ... -Force` on Windows, `rm -f ...` on POSIX) listing the exact files to delete plus the half-installed package directory if present, then `npm install -g @vibecodr/cli`.
|
|
16
|
+
|
|
17
|
+
The check still bails for non-global installs, local dev installs from the source repo, and `VIBECDR_SKIP_PREINSTALL_CHECK=1` opt-outs, and false-positive-proofs itself: a clean re-install / upgrade of `@vibecodr/cli` (shims present + valid `@vibecodr/cli/package.json` present) passes through silently.
|
|
18
|
+
|
|
19
|
+
- `preinstall-check.mjs`: orphan-shim detection on top of the existing legacy-package check.
|
|
20
|
+
- `test/preinstall-check.test.ts`: 2 new cases (orphan-blocks, upgrade-passes-through) on top of the original 4.
|
|
21
|
+
|
|
22
|
+
## 1.0.1
|
|
23
|
+
|
|
24
|
+
Fixes the global-install collision for users who already had `@vibecodr/vc-tools@0.1.x` installed globally. Both packages register a `vc-tools` bin under the same path; npm refuses to overwrite a bin owned by a different package, so the install fails with `EEXIST: file already exists`.
|
|
25
|
+
|
|
26
|
+
- Adds a `preinstall` lifecycle script (`preinstall-check.mjs`) that runs `npm ls -g --depth 0 --json @vibecodr/vc-tools` before file copy. When a legacy `0.1.x` is detected, the install aborts with a clear actionable message listing the two-command fix (`npm uninstall -g @vibecodr/vc-tools` followed by `npm install -g @vibecodr/cli`). The check is purely read-only, opts itself out during local dev installs from the source repo, and honors `VIBECDR_SKIP_PREINSTALL_CHECK=1` for operators who want to bypass.
|
|
27
|
+
- Documents the collision and the unblock recipe in MIGRATION.md under the "If you used `vc-tools`" section.
|
|
28
|
+
|
|
29
|
+
No source or behavior changes to the dispatcher, the worker, or the published bins. The only delta in the tarball is the new `preinstall-check.mjs` at the package root.
|
|
30
|
+
|
|
31
|
+
## 1.0.0
|
|
32
|
+
|
|
33
|
+
Same source as 1.0.0-rc.0. Promoted to `latest` after the rc.0 release cleared smoke against the production endpoints (tools.vibecodr.space + openai.vibecodr.space/mcp) and the §14 output-baseline fixtures matched byte-for-byte.
|
|
34
|
+
|
|
35
|
+
## 1.0.0-rc.0
|
|
36
|
+
|
|
37
|
+
First release candidate of the unified Vibecodr CLI. Merges @vibecodr/vc-tools@0.1.4 and @vibecodr/cli@0.2.11 into a single coordinated release.
|
|
38
|
+
|
|
39
|
+
### Added
|
|
40
|
+
|
|
41
|
+
- Single package `@vibecodr/cli` with three bin entries that all resolve to the same install tree:
|
|
42
|
+
- `vibecodr` — canonical (MCP gateway commands + hosted Agent Computer cross-routed)
|
|
43
|
+
- `vibecodr-mcp` — compatibility alias preserved from 0.2.x
|
|
44
|
+
- `vc-tools` — compatibility alias for the legacy vc-tools surface, byte-equivalent output to vc-tools@0.1.4
|
|
45
|
+
- Hosted Agent Computer commands (start, browser, computer, work, proof, usage, plans, dashboard, jobs, artifacts, agent, connect, try, etc.) now reachable from the `vibecodr` bin via legacy-dispatcher cross-routing.
|
|
46
|
+
- New MCP install adapter `claude-code` (alongside codex, cursor, vscode, windsurf, claude-desktop).
|
|
47
|
+
- Cloudflare worker source, wrangler config, D1 migrations, and Dockerfile vendored from vc-tools so a single repo owns the CLI and its hosted worker.
|
|
48
|
+
- New canonical `VIBECDR_*` env var prefix (e.g. `VIBECDR_CONFIG_DIR`) backed by `src/core/env.ts`. Legacy `VC_TOOLS_*` and `VIBECDR_MCP_*` env vars stay readable as fallbacks; the CLI emits a one-time stderr deprecation note when a legacy var is hit. Set `VIBECDR_NO_DEPRECATION_NOTICE=1` to silence.
|
|
49
|
+
|
|
50
|
+
### Behavior change on first 1.0.x run
|
|
51
|
+
|
|
52
|
+
The first invocation of any v1.0.0+ bin entry runs a one-shot migration: the
|
|
53
|
+
legacy `%APPDATA%\vc-tools\` and `%APPDATA%\Vibecodr\MCP\` (or platform
|
|
54
|
+
equivalents) are **copied** into a unified `~/.vibecodr/{tools,mcp}/` tree,
|
|
55
|
+
and the legacy roots are **renamed to `<root>.bak`**. The migration is
|
|
56
|
+
idempotent (subsequent runs are no-ops) and preserves OS keychain entries
|
|
57
|
+
(service IDs `@vibecodr/vc-tools` and `@vibecodr/mcp` are not touched). See
|
|
58
|
+
[MIGRATION.md](MIGRATION.md#what-happens-on-first-10x-run) for the full
|
|
59
|
+
breakdown and how to override the destination via `VIBECDR_CONFIG_DIR`.
|
|
60
|
+
|
|
61
|
+
### Preserved (frozen)
|
|
62
|
+
|
|
63
|
+
- `vc-tools` binary, `vibecodr-mcp` binary, all existing env vars (`VC_TOOLS_*`, `VIBECDR_MCP_*`), keyring service IDs (`@vibecodr/vc-tools` and `@vibecodr/mcp`), config dirs, install-manifest schema, and hosted worker contracts (D1 binding, JWT claims, route paths, page slugs).
|
|
64
|
+
- Output JSON shape for every command captured in test/fixtures/output-baseline/ as the §14 regression contract.
|
|
65
|
+
|
|
66
|
+
### Migrated
|
|
67
|
+
|
|
68
|
+
- From @vibecodr/cli@0.2.x (no behavior change): login, logout, status, whoami, tools, call, upload, doctor, install, uninstall, config, pulse-setup, pulse-publish, pulse.
|
|
69
|
+
- From @vibecodr/vc-tools@0.1.x (no behavior change for vc-tools bin; new cross-routing from vibecodr bin): start, setup, try, agent, connect, computer, browser, work, proof, usage, limits, dashboard, jobs, artifacts, grants, retention, scheduled-qa, plans, inspect, auth.
|
|
70
|
+
|
|
71
|
+
### Deprecated
|
|
72
|
+
|
|
73
|
+
- `@vibecodr/vc-tools` npm package becomes a thin forwarder at 0.2.0. Plan: `npm deprecate` 90 days after this release.
|
|
74
|
+
|
|
75
|
+
See MIGRATION.md for upgrade guidance.
|
package/MIGRATION.md
CHANGED
|
@@ -4,6 +4,24 @@
|
|
|
4
4
|
|
|
5
5
|
You should not need to change anything to keep working. This page documents the back-compat guarantees and the small set of *additions* you can opt into.
|
|
6
6
|
|
|
7
|
+
## What happens on first 1.0.x run
|
|
8
|
+
|
|
9
|
+
The first time you invoke any of `vibecodr`, `vibecodr-mcp`, or `vc-tools` from v1.0.0+, the CLI does a one-shot migration of your legacy config dirs into a unified `~/.vibecodr/` tree:
|
|
10
|
+
|
|
11
|
+
- `%APPDATA%\vc-tools\` (Windows) / `$XDG_CONFIG_HOME/vc-tools/` (macOS/Linux) -> `~/.vibecodr/tools/`
|
|
12
|
+
- `%APPDATA%\Vibecodr\MCP\` (Windows) / `~/Library/Application Support/Vibecodr MCP/` (macOS) / `$XDG_CONFIG_HOME/vibecodr-mcp/` (Linux) -> `~/.vibecodr/mcp/`
|
|
13
|
+
|
|
14
|
+
The legacy roots are **renamed to `<root>.bak`** so the old code paths can't accidentally re-read stale state. The migration is idempotent — running the CLI again is a no-op once `~/.vibecodr/` exists.
|
|
15
|
+
|
|
16
|
+
**What this means for you:**
|
|
17
|
+
|
|
18
|
+
- All your existing credentials, profiles, and install manifests come along; no re-login is required. The OS keychain entries are not touched (service IDs `@vibecodr/vc-tools` and `@vibecodr/mcp` stay where they are).
|
|
19
|
+
- Set `VIBECDR_CONFIG_DIR` to a custom path to override the new canonical location. Legacy `VC_TOOLS_CONFIG_DIR` and `VIBECDR_MCP_CONFIG_PATH` env vars still work too — they read as fallbacks and write to the canonical location going forward.
|
|
20
|
+
- Any external script that reads the legacy paths directly (instead of going through the CLI) will stop seeing fresh data after the migration. Update those scripts to read `~/.vibecodr/{tools,mcp}/` or rely on the `<root>.bak` snapshots which preserve the pre-migration state.
|
|
21
|
+
- If you absolutely don't want the migration to run, set `VIBECDR_CONFIG_DIR=<your-explicit-path>` before the first invocation; the CLI prefers explicit overrides over the auto-migration trigger.
|
|
22
|
+
|
|
23
|
+
The migration is one-shot per machine. If you need to redo it (for example after rolling back to a 0.2.x line and back to 1.x), delete `~/.vibecodr/tools/` or `~/.vibecodr/mcp/` and the next 1.x invocation re-copies from the legacy roots (which now live at `<root>.bak`).
|
|
24
|
+
|
|
7
25
|
## If you used `vc-tools`
|
|
8
26
|
|
|
9
27
|
You installed `npm install -g @vibecodr/vc-tools` and your scripts run `vc-tools start`, `vc-tools browser screenshot ...`, `vc-tools computer run ...`, etc.
|
|
@@ -12,7 +30,7 @@ You installed `npm install -g @vibecodr/vc-tools` and your scripts run `vc-tools
|
|
|
12
30
|
|
|
13
31
|
- Every `vc-tools <command> [...]` invocation continues to work, byte-equivalent JSON output, byte-equivalent exit codes. The §14 output-baseline regression contract checks this on every release.
|
|
14
32
|
- Your durable API key in the OS keychain remains under the service ID `@vibecodr/vc-tools` (username `agent-computer`). No re-login is required after upgrade.
|
|
15
|
-
- Your config dir
|
|
33
|
+
- Your config dir moves from `%APPDATA%\vc-tools\` (Windows) / `$XDG_CONFIG_HOME/vc-tools/` (macOS/Linux) to `~/.vibecodr/tools/` on first 1.0.x invocation. The legacy root is renamed to `<root>.bak` and preserved. `VC_TOOLS_CONFIG_DIR` and `VC_TOOLS_CREDENTIAL_STORE` env vars still work; the canonical name is `VIBECDR_CONFIG_DIR` and either set wins. See "What happens on first 1.0.x run" above.
|
|
16
34
|
- The hosted worker endpoint `tools.vibecodr.space` is unchanged. All HTTP routes (`/auth/vc-tools/device/*`, `/me/api-keys/vc-tools/*`) are frozen. JWT claims (`grant_profile="vc_tools"`, `aud="vibecodr:vc-tools"`) are frozen. The Clerk-managed API key is still labeled `"vc-tools Agent Computer"`.
|
|
17
35
|
|
|
18
36
|
**What's new (opt-in):**
|
|
@@ -20,6 +38,17 @@ You installed `npm install -g @vibecodr/vc-tools` and your scripts run `vc-tools
|
|
|
20
38
|
- You can install the same package as `npm install -g @vibecodr/cli` instead of `@vibecodr/vc-tools`. The bin name `vc-tools` still resolves; the help banner adds a one-line "this is now part of @vibecodr/cli" footnote.
|
|
21
39
|
- `@vibecodr/vc-tools` itself becomes a thin forwarder at version 0.2.0 that depends on `@vibecodr/cli`. Existing pinned installs (`@vibecodr/vc-tools@0.1.4`) continue to work; the 0.2.0 forwarder lets `npm i @vibecodr/vc-tools` (no version) drag in the merged CLI for users who type the legacy package name from memory.
|
|
22
40
|
|
|
41
|
+
**If `npm install -g @vibecodr/cli` fails with `EEXIST: file already exists` pointing at `<npm-bin>/vc-tools`:**
|
|
42
|
+
|
|
43
|
+
That's the global-bin collision: both `@vibecodr/cli` and the legacy `@vibecodr/vc-tools` register a `vc-tools` bin under the same path, and npm refuses to overwrite a bin owned by a different package. The fix is one command:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm uninstall -g @vibecodr/vc-tools
|
|
47
|
+
npm install -g @vibecodr/cli
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
This is safe: the uninstall removes only the npm package and its bin shim. Your OS keychain entry (service `@vibecodr/vc-tools`, the durable Clerk API key) and your config dir are untouched; the merged CLI reads both on first run. From `@vibecodr/cli@1.0.1` onwards, the package ships a `preinstall` script that detects this collision and prints the same instructions instead of letting npm surface a bare `EEXIST`.
|
|
51
|
+
|
|
23
52
|
**What you can update in CI (no rush):**
|
|
24
53
|
|
|
25
54
|
- Switch your install command to `npm install -g @vibecodr/cli`. The bin entry `vc-tools` is still mapped, so no script changes are required.
|
|
@@ -32,7 +61,7 @@ You installed `npm install -g @vibecodr/cli` and your scripts run `vibecodr-mcp
|
|
|
32
61
|
**What stays the same:**
|
|
33
62
|
|
|
34
63
|
- Every `vibecodr-mcp <command>` invocation continues to work unchanged.
|
|
35
|
-
- Your encrypted OAuth session
|
|
64
|
+
- Your encrypted OAuth session moves with the rest of the MCP-CLI config dir on first 1.0.x invocation: from `%APPDATA%\Vibecodr\MCP\secrets\` (Windows) / `~/Library/Application Support/Vibecodr MCP/secrets/` (macOS) / `$XDG_CONFIG_HOME/vibecodr-mcp/secrets/` (Linux) to `~/.vibecodr/mcp/secrets/`. Keyring service ID stays `@vibecodr/mcp` (untouched). No re-login is required. See "What happens on first 1.0.x run" above.
|
|
36
65
|
- The hosted MCP gateway endpoint `openai.vibecodr.space/mcp` is unchanged.
|
|
37
66
|
- `VIBECDR_MCP_*` env vars (`VIBECDR_MCP_CONFIG_PATH`, `VIBECDR_MCP_CIMD_CLIENT_ID`, `VIBECDR_MCP_MANUAL_CLIENT_ID`, `VIBECDR_MCP_INSTALL_MANIFEST_PATH`, etc.) work unchanged.
|
|
38
67
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ConfigStore as McpConfigStore } from "../storage/config-store.js";
|
|
2
|
+
import { SecretStore } from "../storage/secret-store.js";
|
|
3
|
+
import { ConfigStore as VcToolsConfigStore } from "../legacy/config/store.js";
|
|
4
|
+
export type CredentialEndpoint = "tools.vibecodr.space" | "openai.vibecodr.space/mcp";
|
|
5
|
+
export type CredentialKind = "api_key" | "oauth" | "token";
|
|
6
|
+
export interface BrokeredCredential {
|
|
7
|
+
endpoint: CredentialEndpoint;
|
|
8
|
+
kind: CredentialKind;
|
|
9
|
+
value: string;
|
|
10
|
+
serviceId: "@vibecodr/vc-tools" | "@vibecodr/mcp";
|
|
11
|
+
expiresAt?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface CredentialBroker {
|
|
14
|
+
getCredentialForEndpoint(endpoint: CredentialEndpoint): Promise<BrokeredCredential | undefined>;
|
|
15
|
+
}
|
|
16
|
+
export interface BrokerConstruction {
|
|
17
|
+
vcToolsStore: VcToolsConfigStore;
|
|
18
|
+
mcpSecretStore: SecretStore;
|
|
19
|
+
mcpConfigStore: McpConfigStore;
|
|
20
|
+
}
|
|
21
|
+
export declare class DefaultCredentialBroker implements CredentialBroker {
|
|
22
|
+
private readonly stores;
|
|
23
|
+
constructor(stores: BrokerConstruction);
|
|
24
|
+
getCredentialForEndpoint(endpoint: CredentialEndpoint): Promise<BrokeredCredential | undefined>;
|
|
25
|
+
private readVcToolsCredential;
|
|
26
|
+
private readMcpCredential;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=credential-broker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-broker.d.ts","sourceRoot":"","sources":["../../src/auth/credential-broker.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE9E,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG,2BAA2B,CAAC;AAEtF,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IAId,SAAS,EAAE,oBAAoB,GAAG,eAAe,CAAC;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,wBAAwB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;CACjG;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,kBAAkB,CAAC;IACjC,cAAc,EAAE,WAAW,CAAC;IAC5B,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,qBAAa,uBAAwB,YAAW,gBAAgB;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,kBAAkB;IAEjD,wBAAwB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;YAOvF,qBAAqB;YA4BrB,iBAAiB;CAgBhC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// Unified credential broker. Routes "give me a credential for endpoint X"
|
|
2
|
+
// requests to the correct underlying store and surface, without callers
|
|
3
|
+
// having to know whether the credential is a durable Clerk API key (the
|
|
4
|
+
// vc-tools hosted Agent Computer surface) or an OAuth access token cached
|
|
5
|
+
// inside an encrypted session blob (the MCP gateway surface).
|
|
6
|
+
//
|
|
7
|
+
// Two underlying slots:
|
|
8
|
+
// - "device-grant": durable API key stored by the legacy vc-tools
|
|
9
|
+
// ConfigStore (src/legacy/config/store.ts), backed by @napi-rs/keyring
|
|
10
|
+
// under service "@vibecodr/vc-tools". Used by the tools.vibecodr.space
|
|
11
|
+
// endpoint family.
|
|
12
|
+
// - "oauth": refreshable OAuth session stored by SecretStore
|
|
13
|
+
// (src/storage/secret-store.ts), backed by @napi-rs/keyring under
|
|
14
|
+
// service "@vibecodr/mcp" plus an AES-256-GCM encrypted file. Used by
|
|
15
|
+
// the openai.vibecodr.space/mcp endpoint.
|
|
16
|
+
//
|
|
17
|
+
// The two service IDs are intentionally kept verbatim across the v1
|
|
18
|
+
// merger so existing keychain entries written by @vibecodr/vc-tools@0.1.x
|
|
19
|
+
// and @vibecodr/cli@0.2.x stay readable.
|
|
20
|
+
export class DefaultCredentialBroker {
|
|
21
|
+
stores;
|
|
22
|
+
constructor(stores) {
|
|
23
|
+
this.stores = stores;
|
|
24
|
+
}
|
|
25
|
+
async getCredentialForEndpoint(endpoint) {
|
|
26
|
+
if (endpoint === "tools.vibecodr.space") {
|
|
27
|
+
return await this.readVcToolsCredential();
|
|
28
|
+
}
|
|
29
|
+
return await this.readMcpCredential();
|
|
30
|
+
}
|
|
31
|
+
async readVcToolsCredential() {
|
|
32
|
+
const state = await this.stores.vcToolsStore.readAuthState();
|
|
33
|
+
const credential = state.credential;
|
|
34
|
+
if (credential) {
|
|
35
|
+
const result = {
|
|
36
|
+
endpoint: "tools.vibecodr.space",
|
|
37
|
+
kind: credential.mode,
|
|
38
|
+
value: credential.value,
|
|
39
|
+
serviceId: "@vibecodr/vc-tools"
|
|
40
|
+
};
|
|
41
|
+
if (credential.expiresAt !== undefined)
|
|
42
|
+
result.expiresAt = credential.expiresAt;
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
// Fall back to the short-lived exchange grant if a durable credential isn't
|
|
46
|
+
// present yet (the vc-tools start flow can leave only a grant after the
|
|
47
|
+
// device approval step before the durable Clerk API key is minted).
|
|
48
|
+
const grant = state.grant;
|
|
49
|
+
if (!grant)
|
|
50
|
+
return undefined;
|
|
51
|
+
const result = {
|
|
52
|
+
endpoint: "tools.vibecodr.space",
|
|
53
|
+
kind: "token",
|
|
54
|
+
value: grant.token,
|
|
55
|
+
serviceId: "@vibecodr/vc-tools"
|
|
56
|
+
};
|
|
57
|
+
if (grant.expiresAt !== undefined)
|
|
58
|
+
result.expiresAt = grant.expiresAt;
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
async readMcpCredential() {
|
|
62
|
+
const { name } = await this.stores.mcpConfigStore.getProfile();
|
|
63
|
+
const session = await this.stores.mcpSecretStore.get(name);
|
|
64
|
+
if (!session)
|
|
65
|
+
return undefined;
|
|
66
|
+
const result = {
|
|
67
|
+
endpoint: "openai.vibecodr.space/mcp",
|
|
68
|
+
kind: "oauth",
|
|
69
|
+
value: session.accessToken,
|
|
70
|
+
serviceId: "@vibecodr/mcp"
|
|
71
|
+
};
|
|
72
|
+
if (session.expiresAt) {
|
|
73
|
+
const ts = Date.parse(session.expiresAt);
|
|
74
|
+
if (!Number.isNaN(ts))
|
|
75
|
+
result.expiresAt = ts;
|
|
76
|
+
}
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=credential-broker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-broker.js","sourceRoot":"","sources":["../../src/auth/credential-broker.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,wEAAwE;AACxE,wEAAwE;AACxE,0EAA0E;AAC1E,8DAA8D;AAC9D,EAAE;AACF,wBAAwB;AACxB,oEAAoE;AACpE,2EAA2E;AAC3E,2EAA2E;AAC3E,uBAAuB;AACvB,+DAA+D;AAC/D,sEAAsE;AACtE,0EAA0E;AAC1E,8CAA8C;AAC9C,EAAE;AACF,oEAAoE;AACpE,0EAA0E;AAC1E,yCAAyC;AA+BzC,MAAM,OAAO,uBAAuB;IACL;IAA7B,YAA6B,MAA0B;QAA1B,WAAM,GAAN,MAAM,CAAoB;IAAG,CAAC;IAE3D,KAAK,CAAC,wBAAwB,CAAC,QAA4B;QACzD,IAAI,QAAQ,KAAK,sBAAsB,EAAE,CAAC;YACxC,OAAO,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC5C,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;QAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,MAAM,GAAuB;gBACjC,QAAQ,EAAE,sBAAsB;gBAChC,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,SAAS,EAAE,oBAAoB;aAChC,CAAC;YACF,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS;gBAAE,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;YAChF,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,4EAA4E;QAC5E,wEAAwE;QACxE,oEAAoE;QACpE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,MAAM,MAAM,GAAuB;YACjC,QAAQ,EAAE,sBAAsB;YAChC,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,oBAAoB;SAChC,CAAC;QACF,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACtE,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;QAC/D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,MAAM,MAAM,GAAuB;YACjC,QAAQ,EAAE,2BAA2B;YACrC,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,OAAO,CAAC,WAAW;YAC1B,SAAS,EAAE,eAAe;SAC3B,CAAC;QACF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAAE,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
package/dist/bin/vc-tools.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
process.env["__VCR_INVOKED_AS"] = "vc-tools";
|
|
3
|
+
const { reconcileEnv } = await import("../core/env.js");
|
|
4
|
+
reconcileEnv();
|
|
5
|
+
const { migrateLegacyDirsOnce } = await import("../storage/migrate.js");
|
|
6
|
+
await migrateLegacyDirsOnce();
|
|
3
7
|
const { runCli } = await import("../legacy/cli/run.js");
|
|
4
8
|
const code = await runCli(process.argv.slice(2));
|
|
5
9
|
process.exitCode = code;
|
package/dist/bin/vc-tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vc-tools.js","sourceRoot":"","sources":["../../src/bin/vc-tools.ts"],"names":[],"mappings":";AACA,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,UAAU,CAAC;AAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;AACxD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"vc-tools.js","sourceRoot":"","sources":["../../src/bin/vc-tools.ts"],"names":[],"mappings":";AACA,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,UAAU,CAAC;AAC7C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACxD,YAAY,EAAE,CAAC;AACf,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;AACxE,MAAM,qBAAqB,EAAE,CAAC;AAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;AACxD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC"}
|
package/dist/bin/vibecodr-mcp.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { reconcileEnv } from "../core/env.js";
|
|
3
|
+
import { migrateLegacyDirsOnce } from "../storage/migrate.js";
|
|
2
4
|
import { ConfigStore } from "../storage/config-store.js";
|
|
3
5
|
import { SecretStore } from "../storage/secret-store.js";
|
|
4
6
|
import { TokenManager } from "../auth/token-manager.js";
|
|
@@ -20,6 +22,8 @@ import { runPulseSetupCommand } from "../commands/pulse-setup.js";
|
|
|
20
22
|
import { runPulsePublishCommand } from "../commands/pulse-publish.js";
|
|
21
23
|
import { runPulseCommand } from "../commands/pulse.js";
|
|
22
24
|
import { runUploadCommand } from "../commands/upload.js";
|
|
25
|
+
reconcileEnv();
|
|
26
|
+
await migrateLegacyDirsOnce();
|
|
23
27
|
function helpText() {
|
|
24
28
|
return [
|
|
25
29
|
"vibecodr <command> [options]",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vibecodr-mcp.js","sourceRoot":"","sources":["../../src/bin/vibecodr-mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vibecodr-mcp.js","sourceRoot":"","sources":["../../src/bin/vibecodr-mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/clients/claude-code.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAazD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/clients/claude-code.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAazD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAkDvF;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA8CtH"}
|
|
@@ -20,7 +20,11 @@ export async function installClaudeCode(request) {
|
|
|
20
20
|
changed: false,
|
|
21
21
|
location: spawnLocation(),
|
|
22
22
|
managed: true,
|
|
23
|
-
nextStep: "Dry run: would call `claude mcp add --transport http <name> <serverUrl>` to register the Agent Computer."
|
|
23
|
+
nextStep: "Dry run: would call `claude mcp add --transport http <name> <serverUrl>` to register the Agent Computer.",
|
|
24
|
+
spawn: {
|
|
25
|
+
command: CLAUDE_BINARY,
|
|
26
|
+
args: ["mcp", "add", "--transport", "http", request.name, request.serverUrl]
|
|
27
|
+
}
|
|
24
28
|
};
|
|
25
29
|
}
|
|
26
30
|
if (!commandExists(CLAUDE_BINARY)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/clients/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,YAAY,EAA8C,MAAM,WAAW,CAAC;AAGrF,0FAA0F;AAC1F,wFAAwF;AACxF,sFAAsF;AACtF,4DAA4D;AAE5D,MAAM,aAAa,GAAG,QAAQ,CAAC;AAE/B,SAAS,aAAa;IACpB,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAuB;IAC7D,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,aAAa,EAAE;YACzB,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,0GAA0G;
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/clients/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,YAAY,EAA8C,MAAM,WAAW,CAAC;AAGrF,0FAA0F;AAC1F,wFAAwF;AACxF,sFAAsF;AACtF,4DAA4D;AAE5D,MAAM,aAAa,GAAG,QAAQ,CAAC;AAE/B,SAAS,aAAa;IACpB,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAuB;IAC7D,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,aAAa,EAAE;YACzB,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,0GAA0G;YACpH,KAAK,EAAE;gBACL,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC;aAC7E;SACF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,QAAQ,CAChB,iCAAiC,EACjC,qIAAqI,EACrI,UAAU,CAAC,eAAe,EAC1B;YACE,QAAQ,EAAE,oFAAoF;SAC/F,CACF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1G,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAChB,gCAAgC,EAChC,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EACnF,UAAU,CAAC,eAAe,EAC1B;YACE,QAAQ,EAAE,uEAAuE;SAClF,CACF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,MAAM,EAAE,aAAa;QACrB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,aAAa,EAAE;QACzB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,sFAAsF;KACjG,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAyB,EAAE,gBAAyB;IAC5F,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,aAAa,EAAE;YACzB,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,kFAAkF;SAC7F,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,QAAQ,CAChB,iCAAiC,EACjC,+DAA+D,EAC/D,UAAU,CAAC,eAAe,EAC1B;YACE,QAAQ,EAAE,sCAAsC;SACjD,CACF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAChB,gCAAgC,EAChC,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EACtF,UAAU,CAAC,eAAe,EAC1B;YACE,QAAQ,EAAE,0CAA0C;SACrD,CACF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,MAAM,EAAE,aAAa;QACrB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,mBAAmB;QAC7B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,2CAA2C;KACtD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const ENV_ALIAS_MAP: Readonly<Record<string, readonly string[]>>;
|
|
2
|
+
export declare const DEPRECATION_OPT_OUT_ENV = "VIBECDR_NO_DEPRECATION_NOTICE";
|
|
3
|
+
interface ReconcileOptions {
|
|
4
|
+
env?: NodeJS.ProcessEnv;
|
|
5
|
+
stream?: {
|
|
6
|
+
write(chunk: string): unknown;
|
|
7
|
+
};
|
|
8
|
+
warned?: Set<string>;
|
|
9
|
+
}
|
|
10
|
+
export declare function reconcileEnv(options?: ReconcileOptions): void;
|
|
11
|
+
export declare function __resetDeprecationStateForTests(): void;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/core/env.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CASrE,CAAC;AAEF,eAAO,MAAM,uBAAuB,kCAAkC,CAAC;AAEvE,UAAU,gBAAgB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAG3C,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACtB;AAID,wBAAgB,YAAY,CAAC,OAAO,GAAE,gBAAqB,GAAG,IAAI,CA+BjE;AAID,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD"}
|
package/dist/core/env.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// VIBECDR_* canonical names with back-compat aliases for VC_TOOLS_* (formerly the
|
|
2
|
+
// @vibecodr/vc-tools surface) and VIBECDR_MCP_* (formerly the @vibecodr/cli@0.2.x
|
|
3
|
+
// surface). reconcileEnv() runs once per bin invocation and synchronizes the
|
|
4
|
+
// canonical and legacy names so both old and new code paths see the same value,
|
|
5
|
+
// then emits a one-time stderr deprecation notice for each legacy name that was
|
|
6
|
+
// actually used. Set VIBECDR_NO_DEPRECATION_NOTICE=1 to suppress the notice
|
|
7
|
+
// (useful in scripts / CI logs that already understand the migration).
|
|
8
|
+
//
|
|
9
|
+
// The legacy code paths under src/legacy/ continue to read VC_TOOLS_* directly,
|
|
10
|
+
// and the MCP-CLI code paths continue to read VIBECDR_MCP_* directly. reconcileEnv
|
|
11
|
+
// does not change which env names the consumers read; it only makes both names
|
|
12
|
+
// addressable so users can migrate their scripts to VIBECDR_* without breaking
|
|
13
|
+
// existing setups.
|
|
14
|
+
export const ENV_ALIAS_MAP = {
|
|
15
|
+
VIBECDR_CONFIG_DIR: ["VC_TOOLS_CONFIG_DIR", "VIBECDR_MCP_CONFIG_PATH"],
|
|
16
|
+
VIBECDR_CREDENTIAL_STORE: ["VC_TOOLS_CREDENTIAL_STORE"],
|
|
17
|
+
VIBECDR_CIMD_CLIENT_ID: ["VIBECDR_MCP_CIMD_CLIENT_ID"],
|
|
18
|
+
VIBECDR_MANUAL_CLIENT_ID: ["VIBECDR_MCP_MANUAL_CLIENT_ID"],
|
|
19
|
+
VIBECDR_INSTALL_MANIFEST_PATH: ["VIBECDR_MCP_INSTALL_MANIFEST_PATH"],
|
|
20
|
+
VIBECDR_INSECURE_SECRET_STORE_PATH: ["VIBECDR_MCP_INSECURE_SECRET_STORE_PATH"],
|
|
21
|
+
VIBECDR_ENABLE_INSECURE_SECRET_STORE: ["VIBECDR_MCP_ENABLE_INSECURE_SECRET_STORE"],
|
|
22
|
+
VIBECDR_TEST_AUTH_URL_FILE: ["VIBECDR_MCP_TEST_AUTH_URL_FILE"]
|
|
23
|
+
};
|
|
24
|
+
export const DEPRECATION_OPT_OUT_ENV = "VIBECDR_NO_DEPRECATION_NOTICE";
|
|
25
|
+
const moduleWarned = new Set();
|
|
26
|
+
export function reconcileEnv(options = {}) {
|
|
27
|
+
const env = options.env ?? process.env;
|
|
28
|
+
const stream = options.stream ?? process.stderr;
|
|
29
|
+
const warned = options.warned ?? moduleWarned;
|
|
30
|
+
const suppressNotice = env[DEPRECATION_OPT_OUT_ENV] === "1";
|
|
31
|
+
for (const [canonical, legacyNames] of Object.entries(ENV_ALIAS_MAP)) {
|
|
32
|
+
const canonicalValue = env[canonical];
|
|
33
|
+
if (canonicalValue !== undefined && canonicalValue !== "") {
|
|
34
|
+
// Canonical set; propagate to any legacy name that isn't set so legacy
|
|
35
|
+
// code paths see the canonical value.
|
|
36
|
+
for (const legacy of legacyNames) {
|
|
37
|
+
if (env[legacy] === undefined) {
|
|
38
|
+
env[legacy] = canonicalValue;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
// Canonical not set; find the first legacy name present.
|
|
44
|
+
for (const legacy of legacyNames) {
|
|
45
|
+
const legacyValue = env[legacy];
|
|
46
|
+
if (legacyValue !== undefined && legacyValue !== "") {
|
|
47
|
+
env[canonical] = legacyValue;
|
|
48
|
+
if (!warned.has(legacy) && !suppressNotice) {
|
|
49
|
+
warned.add(legacy);
|
|
50
|
+
stream.write(`Notice: ${legacy} is accepted for back-compat; future releases will prefer ${canonical}. Set ${DEPRECATION_OPT_OUT_ENV}=1 to silence.\n`);
|
|
51
|
+
}
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Test-only helper. Production code never needs to reset the warned set; bin
|
|
58
|
+
// entries call reconcileEnv exactly once.
|
|
59
|
+
export function __resetDeprecationStateForTests() {
|
|
60
|
+
moduleWarned.clear();
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/core/env.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,kFAAkF;AAClF,6EAA6E;AAC7E,gFAAgF;AAChF,gFAAgF;AAChF,4EAA4E;AAC5E,uEAAuE;AACvE,EAAE;AACF,gFAAgF;AAChF,mFAAmF;AACnF,+EAA+E;AAC/E,+EAA+E;AAC/E,mBAAmB;AAEnB,MAAM,CAAC,MAAM,aAAa,GAAgD;IACxE,kBAAkB,EAAE,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;IACtE,wBAAwB,EAAE,CAAC,2BAA2B,CAAC;IACvD,sBAAsB,EAAE,CAAC,4BAA4B,CAAC;IACtD,wBAAwB,EAAE,CAAC,8BAA8B,CAAC;IAC1D,6BAA6B,EAAE,CAAC,mCAAmC,CAAC;IACpE,kCAAkC,EAAE,CAAC,wCAAwC,CAAC;IAC9E,oCAAoC,EAAE,CAAC,0CAA0C,CAAC;IAClF,0BAA0B,EAAE,CAAC,gCAAgC,CAAC;CAC/D,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,+BAA+B,CAAC;AAUvE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;AAEvC,MAAM,UAAU,YAAY,CAAC,UAA4B,EAAE;IACzD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAChD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC;IAC9C,MAAM,cAAc,GAAG,GAAG,CAAC,uBAAuB,CAAC,KAAK,GAAG,CAAC;IAE5D,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACrE,MAAM,cAAc,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;YAC1D,uEAAuE;YACvE,sCAAsC;YACtC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;gBACjC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC;gBAC/B,CAAC;YACH,CAAC;YACD,SAAS;QACX,CAAC;QACD,yDAAyD;QACzD,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;gBACpD,GAAG,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC3C,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACnB,MAAM,CAAC,KAAK,CAAC,WAAW,MAAM,6DAA6D,SAAS,SAAS,uBAAuB,kBAAkB,CAAC,CAAC;gBAC1J,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,0CAA0C;AAC1C,MAAM,UAAU,+BAA+B;IAC7C,YAAY,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/legacy/config/store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/legacy/config/store.ts"],"names":[],"mappings":"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"}
|