@zivis/cli 0.1.0-alpha.3 → 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.
Files changed (40) hide show
  1. package/dist/commands/app/index.js +2 -2
  2. package/dist/commands/app/index.js.map +1 -1
  3. package/dist/commands/auth/bind.d.ts +14 -0
  4. package/dist/commands/auth/bind.js +108 -0
  5. package/dist/commands/auth/bind.js.map +1 -0
  6. package/dist/commands/auth/index.js +27 -1
  7. package/dist/commands/auth/index.js.map +1 -1
  8. package/dist/commands/auth/init.d.ts +5 -0
  9. package/dist/commands/auth/init.js +271 -0
  10. package/dist/commands/auth/init.js.map +1 -0
  11. package/dist/commands/auth/login.d.ts +2 -0
  12. package/dist/commands/auth/login.js +28 -8
  13. package/dist/commands/auth/login.js.map +1 -1
  14. package/dist/commands/auth/logout.js +21 -6
  15. package/dist/commands/auth/logout.js.map +1 -1
  16. package/dist/commands/auth/sessions.js +7 -3
  17. package/dist/commands/auth/sessions.js.map +1 -1
  18. package/dist/commands/auth/status.js +34 -11
  19. package/dist/commands/auth/status.js.map +1 -1
  20. package/dist/commands/auth/token.d.ts +17 -0
  21. package/dist/commands/auth/token.js +91 -0
  22. package/dist/commands/auth/token.js.map +1 -0
  23. package/dist/commands/credits/index.js +2 -2
  24. package/dist/commands/credits/index.js.map +1 -1
  25. package/dist/commands/mcp/index.js +79 -13
  26. package/dist/commands/mcp/index.js.map +1 -1
  27. package/dist/commands/scan/index.js +2 -2
  28. package/dist/commands/scan/index.js.map +1 -1
  29. package/dist/commands/tm/index.js +3 -3
  30. package/dist/commands/tm/index.js.map +1 -1
  31. package/dist/internal/binding-token-mint.d.ts +60 -0
  32. package/dist/internal/binding-token-mint.js +185 -0
  33. package/dist/internal/binding-token-mint.js.map +1 -0
  34. package/dist/internal/ide-setup.d.ts +38 -7
  35. package/dist/internal/ide-setup.js +359 -41
  36. package/dist/internal/ide-setup.js.map +1 -1
  37. package/dist/internal/project-binding.d.ts +2 -0
  38. package/dist/internal/project-binding.js +18 -8
  39. package/dist/internal/project-binding.js.map +1 -1
  40. package/package.json +2 -2
@@ -1,16 +1,322 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
3
  const SERVER_NAME = "zivis";
4
- function buildServerConfig(session, extra) {
5
- const config = {
4
+ // ── Idempotent block append ──
5
+ /**
6
+ * Append (or replace) a ZIVIS-managed block inside a text file.
7
+ * The block is wrapped in <!-- BEGIN ZIVIS:key --> / <!-- END ZIVIS:key -->
8
+ * markers so future calls replace only this section without touching user content.
9
+ */
10
+ function appendBlock(filePath, blockKey, content) {
11
+ const begin = `<!-- BEGIN ZIVIS:${blockKey} -->`;
12
+ const end = `<!-- END ZIVIS:${blockKey} -->`;
13
+ let existing = fs.existsSync(filePath)
14
+ ? fs.readFileSync(filePath, "utf-8")
15
+ : "";
16
+ const blockRegex = new RegExp(`${escapeRegex(begin)}[\\s\\S]*?${escapeRegex(end)}`, "g");
17
+ const newBlock = `${begin}\n${content}\n${end}`;
18
+ if (blockRegex.test(existing)) {
19
+ existing = existing.replace(blockRegex, newBlock);
20
+ }
21
+ else {
22
+ if (existing && !existing.endsWith("\n"))
23
+ existing += "\n";
24
+ existing += `\n${newBlock}\n`;
25
+ }
26
+ const dir = path.dirname(filePath);
27
+ if (!fs.existsSync(dir))
28
+ fs.mkdirSync(dir, { recursive: true });
29
+ fs.writeFileSync(filePath, existing);
30
+ }
31
+ function escapeRegex(s) {
32
+ return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
33
+ }
34
+ // ── Content templates ──
35
+ /** Full Cursor .mdc rule — uses globs so it only attaches when relevant files are open */
36
+ function cursorRuleContent() {
37
+ return `---
38
+ description: ZIVIS security guidance — quietly suggest security checks at the right moments
39
+ globs:
40
+ - "**/*.{ts,tsx,js,jsx,py,go,rb,java}"
41
+ - "**/package.json"
42
+ - "**/requirements.txt"
43
+ - "**/pyproject.toml"
44
+ - "**/go.mod"
45
+ - "**/Dockerfile"
46
+ alwaysApply: false
47
+ ---
48
+
49
+ <!-- BEGIN ZIVIS:guidance -->
50
+
51
+ # ZIVIS Security Guidance
52
+
53
+ ZIVIS is a security platform connected to this project as an MCP server.
54
+ Use it sparingly and only when relevant — never nag.
55
+
56
+ ## When to suggest ZIVIS
57
+
58
+ **On first security question in this project (per session):**
59
+ If the user asks anything about security, safety, vulnerabilities, or "is this
60
+ secure", call \`zivis_get_started\` first (no arguments). Present the
61
+ \`recommended_next_steps\` as a numbered list. Do NOT invent your own security
62
+ checklist — let ZIVIS produce one based on actual project state.
63
+
64
+ **When dependencies change** (\`package.json\`, \`requirements.txt\`, \`go.mod\`,
65
+ \`pyproject.toml\` is being edited and a new package is added):
66
+ Mention once per session: "Want me to check this dependency with ZIVIS?
67
+ It scans for prompt-injection risks and known vulnerabilities."
68
+ If yes, call \`zivis_check_repo_trust\` with the package's source repo.
69
+ This tool requires NO auth — works for any public GitHub repo.
70
+
71
+ **When AI/LLM SDKs are imported** (\`openai\`, \`anthropic\`, \`langchain\`,
72
+ \`@anthropic-ai/sdk\`, \`llamaindex\`, \`cohere\`, \`together\`, etc.):
73
+ Mention once per session: "You're integrating an AI SDK. Want to set up a
74
+ red-team target with ZIVIS? It tests for prompt injection, jailbreaks, and
75
+ PII leakage." If yes, call \`zivis_setup_red_team_target\` with
76
+ target_type=ai_chat.
77
+
78
+ **When user mentions:** "audit", "compliance", "SOC 2", "pen test",
79
+ "customer security questionnaire", "going to production", "launch":
80
+ Call \`zivis_get_started\` with their phrase as the \`concern\` parameter.
81
+
82
+ **When user has unread findings:**
83
+ At the start of a session you may call \`zivis_get_findings\` (status=open) once.
84
+ If any critical findings exist, surface them before the user starts new work.
85
+
86
+ ## When NOT to suggest ZIVIS
87
+
88
+ - Never for non-security questions (refactors, performance, styling, tests, business logic).
89
+ - Never call \`zivis_get_started\` more than once per session unless re-asked.
90
+ - Never run scans that cost credits without explicit user confirmation.
91
+ - Do not lecture about security best practices — let ZIVIS findings speak.
92
+
93
+ ## Vocabulary
94
+
95
+ The user is a developer, not a security engineer. Avoid these words unless
96
+ the user uses them first: "actor", "attack vector", "threat model", "STRIDE",
97
+ "kill chain", "TTPs". Prefer plain alternatives: "tester", "how an attacker
98
+ might break in", "security plan", "categories of attacks".
99
+
100
+ ## Available slash commands
101
+
102
+ - \`/zivis-getting-started\` — entry-point tour for new users
103
+ - \`/zivis-secure-my-app\` — register and test an app
104
+ - \`/zivis-audit-dependencies\` — check open source libraries (no auth needed)
105
+ - \`/zivis-prep-for-launch\` — pre-launch security checklist
106
+ - \`/zivis-weekly-check\` — weekly security status update
107
+
108
+ ## Top tools (for quick reference)
109
+
110
+ - \`zivis_get_started\` — entry point when user is unsure
111
+ - \`zivis_check_repo_trust\` — scan a GitHub repo for risks (no auth needed)
112
+ - \`zivis_setup_red_team_target\` — register an app for testing
113
+ - \`zivis_run_test_scenario\` — run a security test against a target
114
+ - \`zivis_get_findings\` — list current security issues
115
+ - \`zivis_triage_finding\` — resolve / dismiss / accept-risk a finding
116
+ - \`zivis_security_review\` — pre-PR composite security intelligence
117
+
118
+ <!-- END ZIVIS:guidance -->`;
119
+ }
120
+ /** Short block for CLAUDE.md / AGENTS.md — must be concise (read every turn) */
121
+ function claudeBlockContent() {
122
+ return `## ZIVIS Security (MCP)
123
+
124
+ ZIVIS is connected to this project. Use its tools sparingly — only for security-related topics.
125
+
126
+ **When to use ZIVIS:**
127
+ - User asks "is this secure" / "check for vulnerabilities" / "audit my deps" → call \`zivis_get_started\` first
128
+ - User adds a new npm/pip/go package → offer to call \`zivis_check_repo_trust\` (no auth needed)
129
+ - User adds openai/anthropic/langchain import → offer to call \`zivis_setup_red_team_target\` (target_type=ai_chat)
130
+ - User mentions "launch", "audit", "compliance", "pen test" → call \`zivis_get_started\` with concern=<their phrase>
131
+
132
+ **When NOT to use:** refactors, performance, styling, tests, business logic, anything non-security.
133
+
134
+ **Vocabulary:** Don't use "threat model", "STRIDE", "attack vector", "kill chain" unless user does.
135
+
136
+ **Slash commands:** /zivis-getting-started /zivis-secure-my-app /zivis-audit-dependencies /zivis-prep-for-launch`;
137
+ }
138
+ /** .clinerules / .windsurfrules content */
139
+ function ruleFileContent() {
140
+ return `# ZIVIS Security Guidance
141
+
142
+ ZIVIS is connected to this project via MCP. Use it only for security-related requests.
143
+
144
+ ## When to suggest ZIVIS
145
+
146
+ - User asks about security, vulnerabilities, or safety → call zivis_get_started (no args)
147
+ - New dependency added → offer zivis_check_repo_trust (no auth, works for any public repo)
148
+ - AI SDK import added (openai, anthropic, langchain, etc.) → offer zivis_setup_red_team_target with target_type=ai_chat
149
+ - User mentions "audit", "launch", "pen test", "SOC 2" → call zivis_get_started with concern=<their phrase>
150
+
151
+ ## When NOT to use
152
+
153
+ Non-security work: refactors, performance, styling, tests, business logic.
154
+ Never run paid scans without user confirmation.
155
+ Never call zivis_get_started more than once per session unless re-asked.
156
+
157
+ ## Vocabulary rule
158
+
159
+ Avoid security jargon unless the user uses it first.
160
+ Say "how someone might break in" not "attack vector".
161
+ Say "security plan" not "threat model".
162
+
163
+ ## Slash commands
164
+
165
+ /zivis-getting-started — start here if user is new
166
+ /zivis-secure-my-app — set up an app for testing
167
+ /zivis-audit-dependencies — check libraries (free, no login)
168
+ /zivis-prep-for-launch — pre-launch checklist
169
+ /zivis-weekly-check — weekly status update`;
170
+ }
171
+ /** GitHub Copilot instructions block */
172
+ function copilotBlockContent() {
173
+ return `## ZIVIS Security Integration
174
+
175
+ This project has ZIVIS security tools available via MCP.
176
+
177
+ Use ZIVIS only for security-related user requests. Never proactively run scans or access security data for non-security work.
178
+
179
+ **Trigger conditions:**
180
+ 1. User asks about security/vulnerabilities/safety → call zivis_get_started
181
+ 2. New external dependency added → offer zivis_check_repo_trust (no auth required)
182
+ 3. AI SDK import added (openai, anthropic, langchain) → offer zivis_setup_red_team_target with target_type=ai_chat
183
+ 4. User mentions audit/launch/pen test/compliance → call zivis_get_started with concern parameter
184
+
185
+ **Key tools:** zivis_get_started, zivis_check_repo_trust, zivis_setup_red_team_target, zivis_get_findings, zivis_triage_finding
186
+
187
+ **Language:** Avoid security jargon (threat model, STRIDE, attack vector) unless user uses it first.`;
188
+ }
189
+ // ── Per-IDE writers ──
190
+ function writeCursorGuidance(cwd) {
191
+ const rulesDir = path.join(cwd, ".cursor", "rules");
192
+ if (!fs.existsSync(rulesDir))
193
+ fs.mkdirSync(rulesDir, { recursive: true });
194
+ const rulesPath = path.join(rulesDir, "zivis.mdc");
195
+ fs.writeFileSync(rulesPath, cursorRuleContent());
196
+ return rulesPath;
197
+ }
198
+ function writeClaudeBlockGuidance(cwd) {
199
+ const written = [];
200
+ const claudePath = path.join(cwd, "CLAUDE.md");
201
+ appendBlock(claudePath, "zivis-security", claudeBlockContent());
202
+ written.push(claudePath);
203
+ const agentsPath = path.join(cwd, "AGENTS.md");
204
+ if (fs.existsSync(agentsPath)) {
205
+ appendBlock(agentsPath, "zivis-security", claudeBlockContent());
206
+ written.push(agentsPath);
207
+ }
208
+ return written;
209
+ }
210
+ function writeCopilotGuidance(cwd) {
211
+ const ghDir = path.join(cwd, ".github");
212
+ if (!fs.existsSync(ghDir))
213
+ fs.mkdirSync(ghDir, { recursive: true });
214
+ const instructionsPath = path.join(ghDir, "copilot-instructions.md");
215
+ appendBlock(instructionsPath, "zivis-security", copilotBlockContent());
216
+ return instructionsPath;
217
+ }
218
+ function writeClineGuidance(cwd) {
219
+ const rulesPath = path.join(cwd, ".clinerules");
220
+ fs.writeFileSync(rulesPath, ruleFileContent());
221
+ return rulesPath;
222
+ }
223
+ function writeWindsurfGuidance(cwd) {
224
+ const rulesPath = path.join(cwd, ".windsurfrules");
225
+ fs.writeFileSync(rulesPath, ruleFileContent());
226
+ return rulesPath;
227
+ }
228
+ /**
229
+ * Write IDE guidance files for the given client.
230
+ *
231
+ * The guidance files teach the host AI (Cursor, Claude Code, etc.)
232
+ * when to suggest ZIVIS tools — no security knowledge required from the user.
233
+ *
234
+ * All writes are idempotent: re-running replaces only the ZIVIS-managed
235
+ * block, never user content.
236
+ *
237
+ * Returns the list of file paths written.
238
+ */
239
+ export function writeGuidance(opts) {
240
+ const { cwd, client } = opts;
241
+ const written = [];
242
+ switch (client) {
243
+ case "cursor": {
244
+ written.push(writeCursorGuidance(cwd));
245
+ // Also write CLAUDE.md/AGENTS.md block if those files exist
246
+ const extraPaths = writeClaudeBlockGuidance(cwd).filter((p) => fs.existsSync(p));
247
+ written.push(...extraPaths);
248
+ break;
249
+ }
250
+ case "claude-code-cli":
251
+ case "vscode-claude": {
252
+ written.push(...writeClaudeBlockGuidance(cwd));
253
+ break;
254
+ }
255
+ case "vscode-copilot": {
256
+ written.push(writeCopilotGuidance(cwd));
257
+ break;
258
+ }
259
+ case "cline": {
260
+ written.push(writeClineGuidance(cwd));
261
+ break;
262
+ }
263
+ case "windsurf": {
264
+ written.push(writeWindsurfGuidance(cwd));
265
+ break;
266
+ }
267
+ }
268
+ return written.filter(Boolean);
269
+ }
270
+ /**
271
+ * Detect which IDE configs are present in the given workspace.
272
+ * Returns client identifiers whose config files/dirs were found.
273
+ */
274
+ export function detectIdesInRepo(cwd) {
275
+ const found = [];
276
+ // Cursor
277
+ if (fs.existsSync(path.join(cwd, ".cursor"))) {
278
+ found.push("cursor");
279
+ }
280
+ // Claude Code (CLAUDE.md)
281
+ if (fs.existsSync(path.join(cwd, "CLAUDE.md"))) {
282
+ found.push("claude-code-cli");
283
+ }
284
+ // VS Code (check for .vscode directory)
285
+ if (fs.existsSync(path.join(cwd, ".vscode"))) {
286
+ // Assume Copilot by default for VS Code
287
+ found.push("vscode-copilot");
288
+ }
289
+ // Cline (.clinerules)
290
+ if (fs.existsSync(path.join(cwd, ".clinerules"))) {
291
+ found.push("cline");
292
+ }
293
+ // Windsurf (.windsurfrules)
294
+ if (fs.existsSync(path.join(cwd, ".windsurfrules"))) {
295
+ found.push("windsurf");
296
+ }
297
+ return found;
298
+ }
299
+ /**
300
+ * Build the MCP server config for an IDE config file.
301
+ *
302
+ * When workspacePath is provided, we pass it as `--workspace <path>` so the
303
+ * MCP server process resolves its session from `.zivis/project.json` at that
304
+ * path — not from an env var that can drift or be accidentally reused across
305
+ * tenants. This gives us one-process-per-org isolation at the IDE level.
306
+ *
307
+ * ZIVIS_SESSION is intentionally NOT used here. The workspace path is the
308
+ * canonical, immutable tenant binding for an MCP process.
309
+ */
310
+ function buildServerConfig(workspacePath, extra) {
311
+ const args = ["mcp", "serve"];
312
+ if (workspacePath) {
313
+ args.push("--workspace", workspacePath);
314
+ }
315
+ return {
6
316
  ...extra,
7
317
  command: "zivis",
8
- args: ["mcp", "serve"],
318
+ args,
9
319
  };
10
- if (session) {
11
- config.env = { ZIVIS_SESSION: session };
12
- }
13
- return config;
14
320
  }
15
321
  async function updateMcpConfig(configPath, serverName, serverConfig, rootKey) {
16
322
  const configDir = path.dirname(configPath);
@@ -33,41 +339,54 @@ async function updateMcpConfig(configPath, serverName, serverConfig, rootKey) {
33
339
  servers[serverName] = serverConfig;
34
340
  fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n");
35
341
  }
36
- export async function setupCursor(session) {
342
+ export async function setupCursor() {
37
343
  const homeDir = process.env.HOME || "";
38
344
  const configPath = path.join(homeDir, ".cursor", "mcp.json");
39
- await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(session), "mcpServers");
40
- console.log(`✓ Cursor MCP config updated: ${configPath}`);
41
- if (session)
42
- console.log(` Session: ${session}`);
345
+ // Global config has no workspace path — serves repos without .zivis/project.json
346
+ await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(), "mcpServers");
347
+ console.log(`✓ Cursor global MCP config updated: ${configPath}`);
43
348
  console.log(" Restart Cursor for changes to take effect");
44
349
  }
45
- export async function setupVsCodeCopilot(session) {
46
- const localConfigPath = path.join(process.cwd(), ".vscode", "mcp.json");
350
+ /**
351
+ * Write a workspace-level .cursor/mcp.json with `--workspace <cwd>` so Cursor
352
+ * starts an isolated MCP process bound to this specific repo.
353
+ * One process = one org = zero cross-tenant risk, regardless of what other
354
+ * repos are open in Cursor.
355
+ */
356
+ export async function setupCursorWorkspace() {
357
+ const workspacePath = process.cwd();
358
+ const configPath = path.join(workspacePath, ".cursor", "mcp.json");
359
+ await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(workspacePath), "mcpServers");
360
+ console.log(`✓ Cursor workspace MCP config updated: ${configPath}`);
361
+ console.log(` Workspace: ${workspacePath}`);
362
+ console.log(" Reload Cursor for changes to take effect");
363
+ }
364
+ export async function setupVsCodeCopilot() {
365
+ const workspacePath = process.cwd();
366
+ const localConfigPath = path.join(workspacePath, ".vscode", "mcp.json");
47
367
  const globalConfigPath = path.join(process.env.HOME || "", ".vscode", "mcp.json");
48
368
  let configPath = localConfigPath;
49
369
  const exists = fs.existsSync(localConfigPath);
50
370
  if (!exists && fs.existsSync(globalConfigPath)) {
51
371
  configPath = globalConfigPath;
52
372
  }
53
- await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(session, { type: "stdio" }), "servers");
373
+ await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(workspacePath, { type: "stdio" }), "servers");
54
374
  console.log(`✓ VS Code (GitHub Copilot) MCP config updated: ${configPath}`);
55
- if (session)
56
- console.log(` Session: ${session}`);
375
+ console.log(` Workspace: ${workspacePath}`);
57
376
  console.log(" Restart VS Code for changes to take effect");
58
377
  }
59
- export async function setupVsCodeClaude(session) {
60
- const configPath = path.join(process.cwd(), ".vscode", "mcp.json");
61
- await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(session), "mcpServers");
378
+ export async function setupVsCodeClaude() {
379
+ const workspacePath = process.cwd();
380
+ const configPath = path.join(workspacePath, ".vscode", "mcp.json");
381
+ await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(workspacePath), "mcpServers");
62
382
  console.log(`✓ VS Code (Claude Code) MCP config updated: ${configPath}`);
63
- if (session)
64
- console.log(` Session: ${session}`);
383
+ console.log(` Workspace: ${workspacePath}`);
65
384
  console.log(" Restart VS Code for changes to take effect");
66
385
  }
67
- export async function setupClaudeCodeCli(session) {
386
+ export async function setupClaudeCodeCli() {
68
387
  const homeDir = process.env.HOME || "";
69
388
  const configPath = path.join(homeDir, ".claude.json");
70
- const projectPath = process.cwd();
389
+ const workspacePath = process.cwd();
71
390
  if (!fs.existsSync(configPath)) {
72
391
  console.log(" Skipping Claude Code CLI (no ~/.claude.json found)");
73
392
  return;
@@ -75,48 +394,47 @@ export async function setupClaudeCodeCli(session) {
75
394
  try {
76
395
  const config = JSON.parse(fs.readFileSync(configPath, "utf-8"));
77
396
  config.projects ??= {};
78
- config.projects[projectPath] ??= {};
79
- config.projects[projectPath].mcpServers ??= {};
80
- config.projects[projectPath].mcpServers[SERVER_NAME] = {
397
+ config.projects[workspacePath] ??= {};
398
+ config.projects[workspacePath].mcpServers ??= {};
399
+ config.projects[workspacePath].mcpServers[SERVER_NAME] = {
81
400
  type: "stdio",
82
401
  command: "zivis",
83
- args: ["mcp", "serve"],
84
- env: session ? { ZIVIS_SESSION: session } : {},
402
+ args: ["mcp", "serve", "--workspace", workspacePath],
85
403
  };
86
404
  fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n");
87
405
  console.log("✓ Claude Code CLI MCP config updated: ~/.claude.json");
88
- if (session)
89
- console.log(` Session: ${session}`);
406
+ console.log(` Workspace: ${workspacePath}`);
90
407
  console.log(" Restart Claude Code for changes to take effect");
91
408
  }
92
409
  catch (err) {
93
410
  console.log(` WARNING: Failed to update ~/.claude.json: ${err instanceof Error ? err.message : err}`);
94
411
  }
95
412
  }
96
- export async function setupCline(session) {
413
+ export async function setupCline() {
414
+ const workspacePath = process.cwd();
97
415
  const homeDir = process.env.HOME || "";
98
416
  const configPath = process.platform === "darwin"
99
417
  ? path.join(homeDir, "Library", "Application Support", "Code", "User", "globalStorage", "saoudrizwan.claude-dev", "settings", "cline_mcp_settings.json")
100
418
  : path.join(homeDir, ".config", "Code", "User", "globalStorage", "saoudrizwan.claude-dev", "settings", "cline_mcp_settings.json");
101
- await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(session), "mcpServers");
419
+ await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(workspacePath), "mcpServers");
102
420
  console.log(`✓ Cline MCP config updated: ${configPath}`);
103
- if (session)
104
- console.log(` Session: ${session}`);
421
+ console.log(` Workspace: ${workspacePath}`);
105
422
  console.log(" Restart VS Code for changes to take effect");
106
423
  }
107
- export async function setupWindsurf(session) {
424
+ export async function setupWindsurf() {
425
+ const workspacePath = process.cwd();
108
426
  const homeDir = process.env.HOME || "";
109
427
  const configPath = path.join(homeDir, ".codeium", "windsurf", "mcp_config.json");
110
- await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(session), "mcpServers");
428
+ await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(workspacePath), "mcpServers");
111
429
  console.log(`✓ Windsurf MCP config updated: ${configPath}`);
112
- if (session)
113
- console.log(` Session: ${session}`);
430
+ console.log(` Workspace: ${workspacePath}`);
114
431
  console.log(" Restart Windsurf for changes to take effect");
115
432
  }
116
- export function printClaudeCodeManual(session) {
433
+ export function printClaudeCodeManual() {
434
+ const workspacePath = process.cwd();
117
435
  const serverConfig = {
118
436
  mcpServers: {
119
- [SERVER_NAME]: buildServerConfig(session),
437
+ [SERVER_NAME]: buildServerConfig(workspacePath),
120
438
  },
121
439
  };
122
440
  console.log("");
@@ -1 +1 @@
1
- {"version":3,"file":"ide-setup.js","sourceRoot":"","sources":["../../src/internal/ide-setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,WAAW,GAAG,OAAO,CAAC;AAE5B,SAAS,iBAAiB,CACxB,OAAgB,EAChB,KAA+B;IAE/B,MAAM,MAAM,GAA4B;QACtC,GAAG,KAAK;QACR,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;KACvB,CAAC;IACF,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,GAAG,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,UAAkB,EAClB,UAAkB,EAClB,YAAqC,EACrC,OAAe;IAEf,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,MAAM,GAA4B,EAAE,CAAC;IACzC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,qCAAqC,UAAU,kBAAkB,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAA4B,CAAC;IAC3D,OAAO,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;IAEnC,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAgB;IAChD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC7D,MAAM,eAAe,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,gCAAgC,UAAU,EAAE,CAAC,CAAC;IAC1D,IAAI,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAgB;IACvD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACxE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAElF,IAAI,UAAU,GAAG,eAAe,CAAC;IACjC,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/C,UAAU,GAAG,gBAAgB,CAAC;IAChC,CAAC;IAED,MAAM,eAAe,CACnB,UAAU,EACV,WAAW,EACX,iBAAiB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAC7C,SAAS,CACV,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,kDAAkD,UAAU,EAAE,CAAC,CAAC;IAC5E,IAAI,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAgB;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACnE,MAAM,eAAe,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,+CAA+C,UAAU,EAAE,CAAC,CAAC;IACzE,IAAI,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAgB;IACvD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAElC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,QAAQ,KAAK,EAAE,CAAC;QACvB,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACpC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC;QAC/C,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG;YACrD,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;YACtB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;SAC/C,CAAC;QACF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACpE,IAAI,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CACT,+CAA+C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAC1F,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAgB;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,MAAM,UAAU,GACd,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC3B,CAAC,CAAC,IAAI,CAAC,IAAI,CACP,OAAO,EACP,SAAS,EACT,qBAAqB,EACrB,MAAM,EACN,MAAM,EACN,eAAe,EACf,wBAAwB,EACxB,UAAU,EACV,yBAAyB,CAC1B;QACH,CAAC,CAAC,IAAI,CAAC,IAAI,CACP,OAAO,EACP,SAAS,EACT,MAAM,EACN,MAAM,EACN,eAAe,EACf,wBAAwB,EACxB,UAAU,EACV,yBAAyB,CAC1B,CAAC;IACR,MAAM,eAAe,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;IACzD,IAAI,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAgB;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACjF,MAAM,eAAe,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;IAC5D,IAAI,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,YAAY,GAAG;QACnB,UAAU,EAAE;YACV,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC;SAC1C;KACF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"ide-setup.js","sourceRoot":"","sources":["../../src/internal/ide-setup.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,7 @@ export interface EnsureBindingOpts {
7
7
  cwd: string;
8
8
  autoBind: boolean;
9
9
  skipBind: boolean;
10
+ /** Overwrite an existing conflicting binding without erroring (used by `zivis auth init`). */
11
+ force?: boolean;
10
12
  }
11
13
  export declare function ensureProjectBinding(opts: EnsureBindingOpts): Promise<void>;
@@ -13,19 +13,27 @@ export async function ensureProjectBinding(opts) {
13
13
  console.log(" Note: JWT has no org_id — skipping project binding.");
14
14
  return;
15
15
  }
16
- const detected = detectProjectBinding(cwd);
16
+ let detected = detectProjectBinding(cwd);
17
17
  if (detected?.binding.workosOrgId === jwtOrgId) {
18
18
  console.log(`✓ Project binding verified: ${detected.filePath}`);
19
19
  return;
20
20
  }
21
21
  if (detected?.binding.workosOrgId && detected.binding.workosOrgId !== jwtOrgId) {
22
- console.error("");
23
- console.error("[zivis] ERROR: Project binding org mismatches JWT org.");
24
- console.error(`[zivis] Binding file: ${detected.filePath}`);
25
- console.error(`[zivis] Binding org: ${detected.binding.workosOrgId}${detected.binding.orgName ? ` (${detected.binding.orgName})` : ""}`);
26
- console.error(`[zivis] JWT org: ${jwtOrgId}`);
27
- console.error("[zivis] This should not happen — investigate before proceeding.");
28
- process.exit(1);
22
+ if (!opts.force) {
23
+ console.error("");
24
+ console.error("[zivis] ERROR: Project binding org mismatches JWT org.");
25
+ console.error(`[zivis] Binding file: ${detected.filePath}`);
26
+ console.error(`[zivis] Binding org: ${detected.binding.workosOrgId}${detected.binding.orgName ? ` (${detected.binding.orgName})` : ""}`);
27
+ console.error(`[zivis] JWT org: ${jwtOrgId}`);
28
+ console.error("[zivis] This should not happen — investigate before proceeding.");
29
+ process.exit(1);
30
+ }
31
+ // force=true: init is intentionally replacing the binding.
32
+ // Clear detected so we don't accidentally inherit the OLD binding's name/id.
33
+ const oldLabel = detected.binding.orgName ?? detected.binding.workosOrgId;
34
+ console.log(` Replacing existing binding (was: ${oldLabel})`);
35
+ fs.unlinkSync(detected.filePath);
36
+ detected = null;
29
37
  }
30
38
  let orgInfo;
31
39
  try {
@@ -35,6 +43,8 @@ export async function ensureProjectBinding(opts) {
35
43
  catch (err) {
36
44
  console.log(` WARNING: Could not fetch org info: ${err instanceof Error ? err.message : err}`);
37
45
  }
46
+ // Only fall back to detected?.binding.orgName when we are UPGRADING the same org
47
+ // (detected still set), not when force-replacing a different org (detected=null).
38
48
  const orgName = orgInfo?.name || detected?.binding.orgName;
39
49
  const zivisOrgId = orgInfo?.id || detected?.binding.orgId;
40
50
  const orgLabel = orgName ? `${orgName} (${jwtOrgId})` : jwtOrgId;
@@ -1 +1 @@
1
- {"version":3,"file":"project-binding.js","sourceRoot":"","sources":["../../src/internal/project-binding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-binding.js","sourceRoot":"","sources":["../../src/internal/project-binding.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",
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.2"
26
+ "@zivis/mcp": "0.1.0-alpha.19"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/node": "^22.0.0",