@zivis/cli 0.1.0-alpha.29 → 0.1.0-alpha.30
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/dist/commands/auth/bind.d.ts +5 -21
- package/dist/commands/auth/bind.js +21 -89
- package/dist/commands/auth/bind.js.map +1 -1
- package/dist/commands/auth/index.js +4 -2
- package/dist/commands/auth/index.js.map +1 -1
- package/dist/commands/auth/init.d.ts +1 -0
- package/dist/commands/auth/init.js +30 -2
- package/dist/commands/auth/init.js.map +1 -1
- package/dist/commands/auth/login.d.ts +2 -0
- package/dist/commands/auth/login.js +16 -2
- package/dist/commands/auth/login.js.map +1 -1
- package/dist/internal/binding-token-mint.d.ts +60 -0
- package/dist/internal/binding-token-mint.js +185 -0
- package/dist/internal/binding-token-mint.js.map +1 -0
- package/package.json +2 -2
|
@@ -1,28 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* zivis auth bind
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* **Explicit** mint-only command: OAuth once, POST /api/auth/bind, persist apikey.<session>.
|
|
5
|
+
* After `zivis auth login`, the same mint usually runs automatically when the repo is bound.
|
|
6
|
+
* Use `bind` to repair a missing MCP key without re-running full login prompts, or force a
|
|
7
|
+
* mint when auto-mint failed.
|
|
6
8
|
*
|
|
7
|
-
*
|
|
8
|
-
* 1. Opens a browser → WorkOS login scoped to the project's org
|
|
9
|
-
* 2. ZIVIS backend verifies org membership and mints a Local Project
|
|
10
|
-
* Binding Token (a WorkOS API key scoped to this user + org)
|
|
11
|
-
* 3. The token is stored in the OS keychain under `apikey.<session>`
|
|
12
|
-
* 4. IDE configs (.cursor/mcp.json, .vscode/mcp.json) are written with
|
|
13
|
-
* --workspace pointing to this repo
|
|
14
|
-
* 5. OAuth tokens from the login ceremony are discarded — the API key
|
|
15
|
-
* is the only long-lived credential
|
|
16
|
-
*
|
|
17
|
-
* The result: the MCP server uses a stable, org-scoped token that never
|
|
18
|
-
* refreshes and never drifts to a different org.
|
|
19
|
-
*
|
|
20
|
-
* Security model:
|
|
21
|
-
* - WorkOS login = identity + membership proof (ephemeral)
|
|
22
|
-
* - Local Project Binding Token = execution credential (permanent until revoked)
|
|
23
|
-
* - Keys are visible in `zivis auth status` and Settings → API Tokens for audit
|
|
24
|
-
* - `zivis auth logout` clears the key locally; revoke in the UI to invalidate
|
|
25
|
-
* it server-side
|
|
9
|
+
* OAuth from this command is discarded after minting — MCP uses the minted WorkOS API key.
|
|
26
10
|
*/
|
|
27
11
|
export interface BindCmdOpts {
|
|
28
12
|
yes?: boolean;
|
|
@@ -1,78 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* zivis auth bind
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* **Explicit** mint-only command: OAuth once, POST /api/auth/bind, persist apikey.<session>.
|
|
5
|
+
* After `zivis auth login`, the same mint usually runs automatically when the repo is bound.
|
|
6
|
+
* Use `bind` to repair a missing MCP key without re-running full login prompts, or force a
|
|
7
|
+
* mint when auto-mint failed.
|
|
6
8
|
*
|
|
7
|
-
*
|
|
8
|
-
* 1. Opens a browser → WorkOS login scoped to the project's org
|
|
9
|
-
* 2. ZIVIS backend verifies org membership and mints a Local Project
|
|
10
|
-
* Binding Token (a WorkOS API key scoped to this user + org)
|
|
11
|
-
* 3. The token is stored in the OS keychain under `apikey.<session>`
|
|
12
|
-
* 4. IDE configs (.cursor/mcp.json, .vscode/mcp.json) are written with
|
|
13
|
-
* --workspace pointing to this repo
|
|
14
|
-
* 5. OAuth tokens from the login ceremony are discarded — the API key
|
|
15
|
-
* is the only long-lived credential
|
|
16
|
-
*
|
|
17
|
-
* The result: the MCP server uses a stable, org-scoped token that never
|
|
18
|
-
* refreshes and never drifts to a different org.
|
|
19
|
-
*
|
|
20
|
-
* Security model:
|
|
21
|
-
* - WorkOS login = identity + membership proof (ephemeral)
|
|
22
|
-
* - Local Project Binding Token = execution credential (permanent until revoked)
|
|
23
|
-
* - Keys are visible in `zivis auth status` and Settings → API Tokens for audit
|
|
24
|
-
* - `zivis auth logout` clears the key locally; revoke in the UI to invalidate
|
|
25
|
-
* it server-side
|
|
9
|
+
* OAuth from this command is discarded after minting — MCP uses the minted WorkOS API key.
|
|
26
10
|
*/
|
|
27
|
-
import * as os from "node:os";
|
|
28
|
-
import * as crypto from "node:crypto";
|
|
29
|
-
import * as child_process from "node:child_process";
|
|
30
11
|
import { login } from "@zivis/mcp/auth";
|
|
31
|
-
import {
|
|
12
|
+
import { keychainClearSession } from "@zivis/mcp/auth";
|
|
32
13
|
import { detectProjectBinding, resolveConfigFromBinding } from "@zivis/mcp/project-binding";
|
|
33
14
|
import { DEFAULT_CONFIG, credentialStorageFromConfig } from "@zivis/mcp/types";
|
|
34
15
|
import { extractEmail } from "../../internal/orgs.js";
|
|
35
16
|
import { ensureProjectBinding } from "../../internal/project-binding.js";
|
|
17
|
+
import { mintLocalProjectBindingToken } from "../../internal/binding-token-mint.js";
|
|
36
18
|
import { setupCursorWorkspace, setupVsCodeClaude, setupVsCodeCopilot, setupClaudeCodeCli, } from "../../internal/ide-setup.js";
|
|
37
|
-
/** Get the git remote URL of the current repo for the key name, or fallback. */
|
|
38
|
-
function getRepoFingerprint() {
|
|
39
|
-
try {
|
|
40
|
-
const remote = child_process
|
|
41
|
-
.execSync("git remote get-url origin 2>/dev/null", { encoding: "utf8" })
|
|
42
|
-
.trim();
|
|
43
|
-
if (remote) {
|
|
44
|
-
return crypto.createHash("sha256").update(remote).digest("hex").slice(0, 12);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
catch {
|
|
48
|
-
// no git or no remote
|
|
49
|
-
}
|
|
50
|
-
return crypto.createHash("sha256").update(process.cwd()).digest("hex").slice(0, 12);
|
|
51
|
-
}
|
|
52
19
|
export async function bindCommand(opts) {
|
|
53
20
|
const cwd = process.cwd();
|
|
54
21
|
const config = { ...DEFAULT_CONFIG, ...resolveConfigFromBinding(cwd) };
|
|
55
22
|
const detected = detectProjectBinding(cwd);
|
|
56
|
-
// We need a project binding to know which org to bind to.
|
|
57
|
-
// The binding provides workosOrgId + session name.
|
|
58
23
|
if (!detected?.binding.workosOrgId) {
|
|
59
24
|
console.error("");
|
|
60
25
|
console.error("[zivis] ERROR: No project binding found.");
|
|
61
|
-
console.error("[zivis] Run zivis auth login
|
|
62
|
-
console.error("[zivis]
|
|
26
|
+
console.error("[zivis] Run zivis auth login (or auth init) in this repo first,");
|
|
27
|
+
console.error("[zivis] then run zivis auth bind if MCP still needs an API key.");
|
|
63
28
|
console.error("");
|
|
64
|
-
console.error(" To create a binding:");
|
|
65
|
-
console.error(" zivis auth login");
|
|
66
29
|
process.exit(1);
|
|
67
30
|
}
|
|
68
31
|
const { workosOrgId, session: bindingSession, orgName } = detected.binding;
|
|
69
32
|
const session = bindingSession;
|
|
70
33
|
console.log("");
|
|
71
|
-
console.log(`
|
|
72
|
-
console.log("This will mint a Local Project Binding Token for MCP and IDE use.");
|
|
34
|
+
console.log(`Minting MCP API key for ${orgName ?? workosOrgId} (session: "${session}")`);
|
|
73
35
|
console.log("");
|
|
74
|
-
// Step 1: OAuth PKCE login — identity ceremony only.
|
|
75
|
-
// We scope it to the org from the project binding so there's no ambiguity.
|
|
76
36
|
let tokens;
|
|
77
37
|
try {
|
|
78
38
|
tokens = await login(config, `__bind_temp_${session}`, workosOrgId, {
|
|
@@ -88,53 +48,26 @@ export async function bindCommand(opts) {
|
|
|
88
48
|
const email = extractEmail(tokens.id_token);
|
|
89
49
|
console.log(`✓ Authenticated as ${email}`);
|
|
90
50
|
const credentialStorage = credentialStorageFromConfig(config);
|
|
91
|
-
|
|
92
|
-
// The backend verifies membership and mints the WorkOS API key.
|
|
93
|
-
const repoFingerprint = getRepoFingerprint();
|
|
94
|
-
const hostname = os.hostname();
|
|
95
|
-
let bindResult;
|
|
51
|
+
let mint;
|
|
96
52
|
try {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
"User-Agent": "@zivis/cli",
|
|
103
|
-
},
|
|
104
|
-
body: JSON.stringify({ repoFingerprint, hostname }),
|
|
53
|
+
mint = await mintLocalProjectBindingToken({
|
|
54
|
+
config,
|
|
55
|
+
session,
|
|
56
|
+
accessToken: tokens.access_token,
|
|
57
|
+
cwd,
|
|
105
58
|
});
|
|
106
|
-
if (!response.ok) {
|
|
107
|
-
const body = (await response.json().catch(() => ({})));
|
|
108
|
-
console.error(`[zivis] Backend bind failed (HTTP ${response.status}): ${body.message ?? body.error ?? "unknown error"}`);
|
|
109
|
-
process.exit(1);
|
|
110
|
-
}
|
|
111
|
-
bindResult = (await response.json());
|
|
112
|
-
}
|
|
113
|
-
catch (err) {
|
|
114
|
-
console.error("[zivis] Network error calling /api/auth/bind:", err instanceof Error ? err.message : err);
|
|
115
|
-
process.exit(1);
|
|
116
59
|
}
|
|
117
60
|
finally {
|
|
118
|
-
// Step 3: Discard the OAuth tokens — they were only needed for the bind ceremony.
|
|
119
|
-
// The Local Project Binding Token is the only credential we keep.
|
|
120
61
|
await keychainClearSession(`__bind_temp_${session}`, credentialStorage).catch(() => { });
|
|
121
62
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
// preferred credential slot (ahead of OAuth tokens in the precedence chain).
|
|
125
|
-
const apiKeyAccount = `apikey.${session}`;
|
|
126
|
-
try {
|
|
127
|
-
await keychainStore(apiKeyAccount, bindResult.key, credentialStorage);
|
|
128
|
-
}
|
|
129
|
-
catch (err) {
|
|
130
|
-
console.error("[zivis] Failed to store token in OS keychain:", err instanceof Error ? err.message : err);
|
|
63
|
+
if (!mint.ok) {
|
|
64
|
+
console.error(`[zivis] Bind failed: ${mint.error}`);
|
|
131
65
|
process.exit(1);
|
|
132
66
|
}
|
|
133
|
-
const maskedKey = `${
|
|
67
|
+
const maskedKey = `${mint.key.slice(0, 10)}...${mint.key.slice(-4)}`;
|
|
134
68
|
console.log(`✓ Local Project Binding Token stored (${maskedKey})`);
|
|
135
|
-
console.log(` Org: ${
|
|
136
|
-
console.log(` Key name: ${
|
|
137
|
-
// Step 5: Write IDE configs with --workspace so the MCP process is isolated.
|
|
69
|
+
console.log(` Org: ${mint.orgName} (${mint.workosOrgId})`);
|
|
70
|
+
console.log(` Key name: ${mint.keyName}`);
|
|
138
71
|
try {
|
|
139
72
|
await setupCursorWorkspace();
|
|
140
73
|
}
|
|
@@ -154,7 +87,6 @@ export async function bindCommand(opts) {
|
|
|
154
87
|
catch (err) {
|
|
155
88
|
console.log(` WARNING: Failed to update Claude Code CLI config: ${err instanceof Error ? err.message : err}`);
|
|
156
89
|
}
|
|
157
|
-
// Step 6: Ensure the project binding file is up to date.
|
|
158
90
|
await ensureProjectBinding({
|
|
159
91
|
config,
|
|
160
92
|
session,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bind.js","sourceRoot":"","sources":["../../../src/commands/auth/bind.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"bind.js","sourceRoot":"","sources":["../../../src/commands/auth/bind.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ export function registerAuthCommands(program) {
|
|
|
9
9
|
const auth = program.command("auth").description("authentication");
|
|
10
10
|
auth
|
|
11
11
|
.command("bind")
|
|
12
|
-
.description("
|
|
12
|
+
.description("mint MCP API key for this repo (OAuth once + stored key). Normally automatic after login — use bind to repair.")
|
|
13
13
|
.option("-y, --yes", "skip confirmation prompt")
|
|
14
14
|
.action(async (opts) => {
|
|
15
15
|
await bindCommand(opts);
|
|
@@ -18,17 +18,19 @@ export function registerAuthCommands(program) {
|
|
|
18
18
|
.command("init")
|
|
19
19
|
.description("interactive setup: authenticate, pick org, and bind this repo")
|
|
20
20
|
.option("-s, --session <name>", "named session for multi-tenant")
|
|
21
|
+
.option("--skip-mint-key", "skip MCP API key mint after successful OAuth")
|
|
21
22
|
.action(async (opts) => {
|
|
22
23
|
await initCommand(opts);
|
|
23
24
|
});
|
|
24
25
|
auth
|
|
25
26
|
.command("login")
|
|
26
|
-
.description("OAuth PKCE login
|
|
27
|
+
.description("OAuth PKCE login; when this repo has a binding, mints MCP API key automatically")
|
|
27
28
|
.option("-s, --session <name>", "named session for multi-tenant")
|
|
28
29
|
.option("-o, --org <workosOrgId>", "scope JWT to a specific WorkOS org")
|
|
29
30
|
.option("-y, --yes", "skip interactive confirmation")
|
|
30
31
|
.option("--bind", "auto-write .zivis/project.json binding")
|
|
31
32
|
.option("--no-bind", "skip project binding")
|
|
33
|
+
.option("--skip-mint-key", "skip MCP API key mint after successful OAuth")
|
|
32
34
|
.action(async (opts) => {
|
|
33
35
|
await loginCommand(opts);
|
|
34
36
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/auth/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAEnE,IAAI;SACD,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/auth/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as readline from "node:readline/promises";
|
|
2
2
|
import { login, getStorageName, saveSessionEntry } from "@zivis/mcp/auth";
|
|
3
|
-
import { credentialStorageFromConfig } from "@zivis/mcp/types";
|
|
3
|
+
import { credentialStorageFromConfig, DEFAULT_CONFIG } from "@zivis/mcp/types";
|
|
4
4
|
import { resolveConfigFromBinding } from "@zivis/mcp/project-binding";
|
|
5
5
|
import { fetchUserOrgs, extractEmail } from "../../internal/orgs.js";
|
|
6
6
|
import { ensureProjectBinding } from "../../internal/project-binding.js";
|
|
7
|
+
import { discardOauthAfterLogin, tryAutoMintBindingTokenAfterLogin, } from "../../internal/binding-token-mint.js";
|
|
7
8
|
import { decodeJwtPayload } from "@zivis/mcp/auth/jwt";
|
|
8
9
|
import { detectIdesInRepo, writeGuidance } from "../../internal/ide-setup.js";
|
|
9
10
|
async function prompt(question) {
|
|
@@ -58,7 +59,10 @@ async function offerGuidanceInstall(cwd) {
|
|
|
58
59
|
export async function initCommand(opts) {
|
|
59
60
|
// Prefer URL config from the existing project binding (if any) so that
|
|
60
61
|
// re-running `zivis auth init` in a staging repo hits staging automatically.
|
|
61
|
-
const config =
|
|
62
|
+
const config = {
|
|
63
|
+
...DEFAULT_CONFIG,
|
|
64
|
+
...resolveConfigFromBinding(process.cwd()),
|
|
65
|
+
};
|
|
62
66
|
const session = opts.session || "default";
|
|
63
67
|
const envLabel = config.apiBaseUrl.includes("staging") ? "staging" : "production";
|
|
64
68
|
console.log(`Environment: ${envLabel} (${config.apiBaseUrl})`);
|
|
@@ -144,6 +148,14 @@ export async function initCommand(opts) {
|
|
|
144
148
|
config, session, accessToken: retryTokens.access_token,
|
|
145
149
|
organizationId: retryOrgId, cwd: process.cwd(), autoBind: true, skipBind: false, force: true,
|
|
146
150
|
});
|
|
151
|
+
await tryAutoMintBindingTokenAfterLogin({
|
|
152
|
+
cwd: process.cwd(),
|
|
153
|
+
sessionName: session,
|
|
154
|
+
accessToken: retryTokens.access_token,
|
|
155
|
+
skip: opts.skipMintKey === true,
|
|
156
|
+
warnOnFailure: true,
|
|
157
|
+
});
|
|
158
|
+
await discardOauthAfterLogin({ session, config });
|
|
147
159
|
await offerGuidanceInstall(process.cwd());
|
|
148
160
|
process.exit(0);
|
|
149
161
|
}
|
|
@@ -164,6 +176,14 @@ export async function initCommand(opts) {
|
|
|
164
176
|
skipBind: false,
|
|
165
177
|
force: true,
|
|
166
178
|
});
|
|
179
|
+
await tryAutoMintBindingTokenAfterLogin({
|
|
180
|
+
cwd: process.cwd(),
|
|
181
|
+
sessionName: session,
|
|
182
|
+
accessToken: tokens.access_token,
|
|
183
|
+
skip: opts.skipMintKey === true,
|
|
184
|
+
warnOnFailure: true,
|
|
185
|
+
});
|
|
186
|
+
await discardOauthAfterLogin({ session, config });
|
|
167
187
|
await offerGuidanceInstall(process.cwd());
|
|
168
188
|
}
|
|
169
189
|
else {
|
|
@@ -221,6 +241,14 @@ export async function initCommand(opts) {
|
|
|
221
241
|
skipBind: false,
|
|
222
242
|
force: true,
|
|
223
243
|
});
|
|
244
|
+
await tryAutoMintBindingTokenAfterLogin({
|
|
245
|
+
cwd: process.cwd(),
|
|
246
|
+
sessionName: session,
|
|
247
|
+
accessToken: scopedTokens.access_token,
|
|
248
|
+
skip: opts.skipMintKey === true,
|
|
249
|
+
warnOnFailure: true,
|
|
250
|
+
});
|
|
251
|
+
await discardOauthAfterLogin({ session, config });
|
|
224
252
|
await offerGuidanceInstall(process.cwd());
|
|
225
253
|
}
|
|
226
254
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/auth/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/auth/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EACL,sBAAsB,EACtB,iCAAiC,GAClC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAuB,MAAM,6BAA6B,CAAC;AAOnG,KAAK,UAAU,MAAM,CAAC,QAAgB;IACpC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtF,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,oBAAoB,CAAC,GAAW;IAC7C,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEtC,MAAM,SAAS,GAAmC;QAChD,MAAM,EAAE,QAAQ;QAChB,iBAAiB,EAAE,yBAAyB;QAC5C,gBAAgB,EAAE,mBAAmB;QACrC,eAAe,EAAE,kBAAkB;QACnC,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,UAAU;KACrB,CAAC;IACF,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7E,OAAO,CAAC,GAAG,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,MAAM,MAAM,CACtB,0FAA0F;QAC1F,2EAA2E,CAC5E,CAAC;IAEF,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC;QACvG,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,2CAA2C,GAAG,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9G,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAiB;IACjD,uEAAuE;IACvE,6EAA6E;IAC7E,MAAM,MAAM,GAAG;QACb,GAAG,cAAc;QACjB,GAAG,wBAAwB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;KAC3C,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC;IAE1C,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,KAAK,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,oFAAoF;IACpF,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IAEpE,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE5C,mDAAmD;IACnD,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,EAAE,MAA4B,CAAC;IAEtD,IAAI,QAAQ,EAAE,CAAC;QACb,qCAAqC;QACrC,IAAI,OAA2B,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YAC9D,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,EAAE,IAAI,CAAC;YAC7D,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,8BAA8B,CAAC,CAAC;gBACzE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnG,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,UAAU,6CAA6C,CAAC,CAAC;YACvG,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5F,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,IAAI,gBAAgB,QAAQ,GAAG,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,KAAK,MAAM,CAAC,UAAU,KAAK,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,yBAAyB,QAAQ,WAAW,CAAC,CAAC;QAC3E,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,mDAAmD,CAAC,CAAC;YAChF,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;gBACpF,IAAI,WAAW,CAAC;gBAChB,IAAI,CAAC;oBACH,WAAW,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChG,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,mEAAmE;gBACnE,MAAM,GAAG,WAAW,CAAC;gBACrB,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC/D,MAAM,UAAU,GAAG,WAAW,EAAE,MAA4B,CAAC;gBAC7D,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;oBAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,IAAI,YAAgC,CAAC;gBACrC,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;oBACxE,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,EAAE,IAAI,CAAC;gBAC3E,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC5F,CAAC;gBACD,MAAM,UAAU,GAAG,YAAY,IAAI,UAAU,CAAC;gBAC9C,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,qBAAqB,UAAU,IAAI,CAAC,CAAC;gBACjD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,yBAAyB,UAAU,WAAW,CAAC,CAAC;gBAClF,IAAI,YAAY,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;oBAC9E,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,MAAM,YAAY,GAAG,cAAc,EAAE,CAAC;gBACtC,MAAM,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC;gBACjF,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,MAAM,UAAU,EAAE,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC;gBACvD,MAAM,oBAAoB,CAAC;oBACzB,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,YAAY;oBACtD,cAAc,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI;iBAC7F,CAAC,CAAC;gBACH,MAAM,iCAAiC,CAAC;oBACtC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;oBAClB,WAAW,EAAE,OAAO;oBACpB,WAAW,EAAE,WAAW,CAAC,YAAY;oBACrC,IAAI,EAAE,IAAI,CAAC,WAAW,KAAK,IAAI;oBAC/B,aAAa,EAAE,IAAI;iBACpB,CAAC,CAAC;gBACH,MAAM,sBAAsB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBAClD,MAAM,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC;YACvG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;QACrC,MAAM,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,MAAM,QAAQ,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,2BAA2B,WAAW,EAAE,CAAC,CAAC;QAEtD,MAAM,oBAAoB,CAAC;YACzB,MAAM;YACN,OAAO;YACP,WAAW,EAAE,MAAM,CAAC,YAAY;YAChC,cAAc,EAAE,QAAQ;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,MAAM,iCAAiC,CAAC;YACtC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,MAAM,CAAC,YAAY;YAChC,IAAI,EAAE,IAAI,CAAC,WAAW,KAAK,IAAI;YAC/B,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,MAAM,sBAAsB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,MAAM,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,sEAAsE;QACtE,wDAAwD;QACxD,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAEhD,IAAI,IAA+C,CAAC;QACpD,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,2CAA2C,CAAC,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAEjE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,2CAA2C,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;YACzF,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChD,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAE3B,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,QAAQ,QAAQ,CAAC,IAAI,yBAAyB,CAAC,CAAC;gBAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,kCAAkC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,4GAA4G,CAAC,CAAC;YAE1H,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE;oBACtE,OAAO,EAAE,QAAQ,CAAC,IAAI;oBACtB,WAAW,EAAE,IAAI;iBAClB,CAAC,CAAC;gBACH,MAAM,YAAY,GAAG,cAAc,EAAE,CAAC;gBACtC,MAAM,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5E,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC;gBAEnD,MAAM,oBAAoB,CAAC;oBAC7B,MAAM;oBACN,OAAO;oBACP,WAAW,EAAE,YAAY,CAAC,YAAY;oBACtC,cAAc,EAAE,QAAQ,CAAC,WAAW;oBACpC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;oBAClB,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;gBACH,MAAM,iCAAiC,CAAC;oBACtC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;oBAClB,WAAW,EAAE,OAAO;oBACpB,WAAW,EAAE,YAAY,CAAC,YAAY;oBACtC,IAAI,EAAE,IAAI,CAAC,WAAW,KAAK,IAAI;oBAC/B,aAAa,EAAE,IAAI;iBACpB,CAAC,CAAC;gBACH,MAAM,sBAAsB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBAClD,MAAM,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBAC1C,IAAI,CAAC,EAAE,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;oBAC9E,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;oBAC9E,OAAO,CAAC,KAAK,CAAC,6FAA6F,CAAC,CAAC;gBAC/G,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;gBACtC,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -2,12 +2,16 @@ import { login } from "@zivis/mcp/auth";
|
|
|
2
2
|
import { getStorageName } from "@zivis/mcp/auth";
|
|
3
3
|
import { saveSessionEntry } from "@zivis/mcp/auth";
|
|
4
4
|
import { detectProjectBinding, resolveConfigFromBinding } from "@zivis/mcp/project-binding";
|
|
5
|
-
import { credentialStorageFromConfig } from "@zivis/mcp/types";
|
|
5
|
+
import { credentialStorageFromConfig, DEFAULT_CONFIG } from "@zivis/mcp/types";
|
|
6
6
|
import { extractEmail } from "../../internal/orgs.js";
|
|
7
7
|
import { ensureProjectBinding } from "../../internal/project-binding.js";
|
|
8
|
+
import { discardOauthAfterLogin, tryAutoMintBindingTokenAfterLogin, } from "../../internal/binding-token-mint.js";
|
|
8
9
|
import { setupCursorWorkspace, setupVsCodeClaude, setupVsCodeCopilot, setupClaudeCodeCli, } from "../../internal/ide-setup.js";
|
|
9
10
|
export async function loginCommand(opts) {
|
|
10
|
-
const config =
|
|
11
|
+
const config = {
|
|
12
|
+
...DEFAULT_CONFIG,
|
|
13
|
+
...resolveConfigFromBinding(process.cwd()),
|
|
14
|
+
};
|
|
11
15
|
const detected = detectProjectBinding(process.cwd());
|
|
12
16
|
const session = opts.session || detected?.binding.session || config.session;
|
|
13
17
|
let organizationId = opts.org;
|
|
@@ -61,6 +65,16 @@ export async function loginCommand(opts) {
|
|
|
61
65
|
autoBind: opts.bind === true,
|
|
62
66
|
skipBind: opts.noBind === true,
|
|
63
67
|
});
|
|
68
|
+
await tryAutoMintBindingTokenAfterLogin({
|
|
69
|
+
cwd: process.cwd(),
|
|
70
|
+
sessionName,
|
|
71
|
+
accessToken: tokens.access_token,
|
|
72
|
+
skip: opts.skipMintKey === true,
|
|
73
|
+
warnOnFailure: true,
|
|
74
|
+
});
|
|
75
|
+
// OAuth has done its job (mint, org verify). MCP only reads apikey.<session>,
|
|
76
|
+
// so any OAuth tokens left in the keychain are dead weight + drift risk.
|
|
77
|
+
await discardOauthAfterLogin({ session, config });
|
|
64
78
|
process.exit(0);
|
|
65
79
|
}
|
|
66
80
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mint a Local Project Binding Token via POST /api/auth/bind and store it as
|
|
3
|
+
* apikey.<session>. Shared by `zivis auth bind` and post-login auto-mint.
|
|
4
|
+
*/
|
|
5
|
+
import { type ZivisConfig } from "@zivis/mcp/types";
|
|
6
|
+
export type MintBindingTokenResult = {
|
|
7
|
+
ok: true;
|
|
8
|
+
keyName: string;
|
|
9
|
+
key: string;
|
|
10
|
+
orgName: string;
|
|
11
|
+
workosOrgId: string;
|
|
12
|
+
} | {
|
|
13
|
+
ok: false;
|
|
14
|
+
error: string;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Calls the bind API with a fresh access JWT and persists the minted WorkOS API key.
|
|
18
|
+
* Does not start OAuth nor update IDE configs.
|
|
19
|
+
*/
|
|
20
|
+
export declare function mintLocalProjectBindingToken(params: {
|
|
21
|
+
config: ZivisConfig;
|
|
22
|
+
session: string;
|
|
23
|
+
accessToken: string;
|
|
24
|
+
cwd: string;
|
|
25
|
+
}): Promise<MintBindingTokenResult>;
|
|
26
|
+
export interface TryAutoMintOptions {
|
|
27
|
+
cwd: string;
|
|
28
|
+
sessionName: string;
|
|
29
|
+
accessToken: string;
|
|
30
|
+
/** Caller flag (e.g. `zivis auth login --no-mint-key`). */
|
|
31
|
+
skip?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* When false (login after ensureProjectBinding): mint failures log a warning and return.
|
|
34
|
+
* When true (`zivis auth bind`): caller should exit 1 if result not ok — not handled here.
|
|
35
|
+
*/
|
|
36
|
+
warnOnFailure: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* After OAuth login finishes, mint an MCP-friendly API key if the repo is bound
|
|
40
|
+
* and JWT org matches `.zivis/project.json`.
|
|
41
|
+
* Skips if `apikey.<session>` already exists (avoid spawning keys on every login).
|
|
42
|
+
*/
|
|
43
|
+
export declare function tryAutoMintBindingTokenAfterLogin(opts: TryAutoMintOptions): Promise<{
|
|
44
|
+
ran: boolean;
|
|
45
|
+
ok: boolean;
|
|
46
|
+
message?: string;
|
|
47
|
+
}>;
|
|
48
|
+
/**
|
|
49
|
+
* Drop the OAuth tokens stored under `oauth.<session>` (or `oauth` when no
|
|
50
|
+
* session). OAuth exists only to mint the MCP API key — once login finishes,
|
|
51
|
+
* MCP and tenant API calls go through `apikey.<session>`. Keeping the OAuth
|
|
52
|
+
* tokens around adds attack surface and risks org-drift if the refresh token
|
|
53
|
+
* outlives the binding.
|
|
54
|
+
*
|
|
55
|
+
* Best-effort: failures are swallowed so they cannot mask a successful mint.
|
|
56
|
+
*/
|
|
57
|
+
export declare function discardOauthAfterLogin(params: {
|
|
58
|
+
session: string | undefined;
|
|
59
|
+
config: ZivisConfig;
|
|
60
|
+
}): Promise<void>;
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mint a Local Project Binding Token via POST /api/auth/bind and store it as
|
|
3
|
+
* apikey.<session>. Shared by `zivis auth bind` and post-login auto-mint.
|
|
4
|
+
*/
|
|
5
|
+
import * as os from "node:os";
|
|
6
|
+
import * as crypto from "node:crypto";
|
|
7
|
+
import * as child_process from "node:child_process";
|
|
8
|
+
import { keychainClearSession, keychainRead, keychainStore } from "@zivis/mcp/auth";
|
|
9
|
+
import { decodeJwtPayload } from "@zivis/mcp/auth/jwt";
|
|
10
|
+
import { DEFAULT_CONFIG, credentialStorageFromConfig } from "@zivis/mcp/types";
|
|
11
|
+
import { detectProjectBinding, resolveConfigFromBinding } from "@zivis/mcp/project-binding";
|
|
12
|
+
/** Same fingerprint strategy as bind command — stable-ish per-repo key name suffix. */
|
|
13
|
+
function getRepoFingerprint(cwd) {
|
|
14
|
+
try {
|
|
15
|
+
const remote = child_process
|
|
16
|
+
.execSync("git remote get-url origin 2>/dev/null", { cwd, encoding: "utf8" })
|
|
17
|
+
.trim();
|
|
18
|
+
if (remote) {
|
|
19
|
+
return crypto.createHash("sha256").update(remote).digest("hex").slice(0, 12);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
/* no git or no remote */
|
|
24
|
+
}
|
|
25
|
+
return crypto.createHash("sha256").update(cwd).digest("hex").slice(0, 12);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Calls the bind API with a fresh access JWT and persists the minted WorkOS API key.
|
|
29
|
+
* Does not start OAuth nor update IDE configs.
|
|
30
|
+
*/
|
|
31
|
+
export async function mintLocalProjectBindingToken(params) {
|
|
32
|
+
const { config, session, accessToken, cwd } = params;
|
|
33
|
+
const credentialStorage = credentialStorageFromConfig(config);
|
|
34
|
+
const repoFingerprint = getRepoFingerprint(cwd);
|
|
35
|
+
const hostname = os.hostname();
|
|
36
|
+
let bindResult;
|
|
37
|
+
try {
|
|
38
|
+
const response = await fetch(`${config.apiBaseUrl}/api/auth/bind`, {
|
|
39
|
+
method: "POST",
|
|
40
|
+
headers: {
|
|
41
|
+
Authorization: `Bearer ${accessToken}`,
|
|
42
|
+
"Content-Type": "application/json",
|
|
43
|
+
"User-Agent": "@zivis/cli",
|
|
44
|
+
},
|
|
45
|
+
body: JSON.stringify({ repoFingerprint, hostname }),
|
|
46
|
+
});
|
|
47
|
+
if (!response.ok) {
|
|
48
|
+
const body = (await response.json().catch(() => ({})));
|
|
49
|
+
return {
|
|
50
|
+
ok: false,
|
|
51
|
+
error: body.message ?? body.error ?? `HTTP ${response.status}`,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
bindResult = (await response.json());
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
return {
|
|
58
|
+
ok: false,
|
|
59
|
+
error: err instanceof Error ? err.message : String(err),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
const apiKeyAccount = `apikey.${session}`;
|
|
63
|
+
try {
|
|
64
|
+
await keychainStore(apiKeyAccount, bindResult.key, credentialStorage);
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
return {
|
|
68
|
+
ok: false,
|
|
69
|
+
error: err instanceof Error ? err.message : "Failed to store key in OS keychain",
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
ok: true,
|
|
74
|
+
keyName: bindResult.keyName,
|
|
75
|
+
key: bindResult.key,
|
|
76
|
+
orgName: bindResult.orgName,
|
|
77
|
+
workosOrgId: bindResult.workosOrgId,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* After OAuth login finishes, mint an MCP-friendly API key if the repo is bound
|
|
82
|
+
* and JWT org matches `.zivis/project.json`.
|
|
83
|
+
* Skips if `apikey.<session>` already exists (avoid spawning keys on every login).
|
|
84
|
+
*/
|
|
85
|
+
export async function tryAutoMintBindingTokenAfterLogin(opts) {
|
|
86
|
+
if (opts.skip) {
|
|
87
|
+
return { ran: false, ok: true };
|
|
88
|
+
}
|
|
89
|
+
const fullConfig = { ...DEFAULT_CONFIG, ...resolveConfigFromBinding(opts.cwd) };
|
|
90
|
+
const claims = decodeJwtPayload(opts.accessToken);
|
|
91
|
+
const jwtOrgId = claims?.org_id;
|
|
92
|
+
if (!jwtOrgId) {
|
|
93
|
+
return {
|
|
94
|
+
ran: false,
|
|
95
|
+
ok: true,
|
|
96
|
+
message: "JWT has no org_id — skipped MCP binding-key mint.",
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
const detected = detectProjectBinding(opts.cwd);
|
|
100
|
+
const bindingOrg = detected?.binding.workosOrgId;
|
|
101
|
+
const bindingSession = detected?.binding.session;
|
|
102
|
+
if (!bindingOrg || !bindingSession) {
|
|
103
|
+
return {
|
|
104
|
+
ran: false,
|
|
105
|
+
ok: true,
|
|
106
|
+
message: "No project binding with workosOrgId — skipped MCP binding-key mint.",
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
if (bindingOrg !== jwtOrgId) {
|
|
110
|
+
const msg = `JWT org does not match project binding — skipped MCP binding-key mint.`;
|
|
111
|
+
if (opts.warnOnFailure) {
|
|
112
|
+
console.log("");
|
|
113
|
+
console.log(` WARNING: ${msg}`);
|
|
114
|
+
}
|
|
115
|
+
return { ran: false, ok: false, message: msg };
|
|
116
|
+
}
|
|
117
|
+
if (bindingSession !== opts.sessionName) {
|
|
118
|
+
const msg = `Session "${opts.sessionName}" does not match binding session "${bindingSession}" — skipped MCP binding-key mint.`;
|
|
119
|
+
if (opts.warnOnFailure) {
|
|
120
|
+
console.log("");
|
|
121
|
+
console.log(` WARNING: ${msg}`);
|
|
122
|
+
}
|
|
123
|
+
return { ran: false, ok: false, message: msg };
|
|
124
|
+
}
|
|
125
|
+
const st = credentialStorageFromConfig(fullConfig);
|
|
126
|
+
const existing = await keychainRead(`apikey.${bindingSession}`, st).catch(() => null);
|
|
127
|
+
if (existing) {
|
|
128
|
+
console.log("");
|
|
129
|
+
console.log(`✓ MCP API key already present for session "${bindingSession}" — skipped mint.`);
|
|
130
|
+
return { ran: false, ok: true };
|
|
131
|
+
}
|
|
132
|
+
console.log("");
|
|
133
|
+
console.log("Minting Local Project Binding Token for MCP (one-time per machine/session)…");
|
|
134
|
+
const result = await mintLocalProjectBindingToken({
|
|
135
|
+
config: fullConfig,
|
|
136
|
+
session: bindingSession,
|
|
137
|
+
accessToken: opts.accessToken,
|
|
138
|
+
cwd: opts.cwd,
|
|
139
|
+
});
|
|
140
|
+
if (!result.ok) {
|
|
141
|
+
const msg = result.error;
|
|
142
|
+
if (opts.warnOnFailure) {
|
|
143
|
+
printMintFailureBanner(msg);
|
|
144
|
+
}
|
|
145
|
+
return { ran: true, ok: false, message: msg };
|
|
146
|
+
}
|
|
147
|
+
console.log(`✓ MCP API key stored (${result.keyName}; org: ${result.orgName})`);
|
|
148
|
+
return { ran: true, ok: true };
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Drop the OAuth tokens stored under `oauth.<session>` (or `oauth` when no
|
|
152
|
+
* session). OAuth exists only to mint the MCP API key — once login finishes,
|
|
153
|
+
* MCP and tenant API calls go through `apikey.<session>`. Keeping the OAuth
|
|
154
|
+
* tokens around adds attack surface and risks org-drift if the refresh token
|
|
155
|
+
* outlives the binding.
|
|
156
|
+
*
|
|
157
|
+
* Best-effort: failures are swallowed so they cannot mask a successful mint.
|
|
158
|
+
*/
|
|
159
|
+
export async function discardOauthAfterLogin(params) {
|
|
160
|
+
const storage = credentialStorageFromConfig(params.config);
|
|
161
|
+
await keychainClearSession(params.session, storage).catch(() => {
|
|
162
|
+
/* OAuth was never written, nothing to clean up. */
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
function printMintFailureBanner(message) {
|
|
166
|
+
const bar = "═".repeat(70);
|
|
167
|
+
console.error("");
|
|
168
|
+
console.error(bar);
|
|
169
|
+
console.error(" ACTION REQUIRED — MCP API KEY WAS NOT MINTED");
|
|
170
|
+
console.error(bar);
|
|
171
|
+
console.error("");
|
|
172
|
+
console.error(` Reason: ${message}`);
|
|
173
|
+
console.error("");
|
|
174
|
+
console.error(" Why this matters:");
|
|
175
|
+
console.error(" The MCP server in your IDE authenticates with an org-scoped");
|
|
176
|
+
console.error(" API key. Without it, every zivis_* tool call will fail with");
|
|
177
|
+
console.error(" \"Not authenticated\" until you mint one.");
|
|
178
|
+
console.error("");
|
|
179
|
+
console.error(" To fix, run from this repo:");
|
|
180
|
+
console.error(" zivis auth bind");
|
|
181
|
+
console.error("");
|
|
182
|
+
console.error(bar);
|
|
183
|
+
console.error("");
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=binding-token-mint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding-token-mint.js","sourceRoot":"","sources":["../../src/internal/binding-token-mint.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zivis/cli",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.30",
|
|
4
4
|
"description": "ZIVIS CLI — threat modeling, scans, and MCP server for IDE integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"ignore": "^7.0.5",
|
|
24
24
|
"open": "^10.1.0",
|
|
25
25
|
"web-tree-sitter": "^0.26.8",
|
|
26
|
-
"@zivis/mcp": "0.1.0-alpha.
|
|
26
|
+
"@zivis/mcp": "0.1.0-alpha.19"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/node": "^22.0.0",
|