@zivis/cli 0.1.0-alpha.28 → 0.1.0-alpha.3
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/app/index.js +2 -2
- package/dist/commands/app/index.js.map +1 -1
- package/dist/commands/auth/index.js +0 -24
- package/dist/commands/auth/index.js.map +1 -1
- package/dist/commands/auth/login.js +7 -12
- package/dist/commands/auth/login.js.map +1 -1
- package/dist/commands/auth/logout.js +5 -17
- package/dist/commands/auth/logout.js.map +1 -1
- package/dist/commands/auth/status.js +10 -31
- package/dist/commands/auth/status.js.map +1 -1
- package/dist/commands/credits/index.js +2 -2
- package/dist/commands/credits/index.js.map +1 -1
- package/dist/commands/mcp/index.js +13 -79
- package/dist/commands/mcp/index.js.map +1 -1
- package/dist/commands/scan/index.js +2 -2
- package/dist/commands/scan/index.js.map +1 -1
- package/dist/commands/tm/index.js +3 -3
- package/dist/commands/tm/index.js.map +1 -1
- package/dist/internal/ide-setup.d.ts +7 -38
- package/dist/internal/ide-setup.js +41 -359
- package/dist/internal/ide-setup.js.map +1 -1
- package/dist/internal/project-binding.d.ts +0 -2
- package/dist/internal/project-binding.js +8 -18
- package/dist/internal/project-binding.js.map +1 -1
- package/package.json +2 -2
- package/dist/commands/auth/bind.d.ts +0 -30
- package/dist/commands/auth/bind.js +0 -174
- package/dist/commands/auth/bind.js.map +0 -1
- package/dist/commands/auth/init.d.ts +0 -4
- package/dist/commands/auth/init.js +0 -242
- package/dist/commands/auth/init.js.map +0 -1
- package/dist/commands/auth/token.d.ts +0 -17
- package/dist/commands/auth/token.js +0 -90
- package/dist/commands/auth/token.js.map +0 -1
|
@@ -1,38 +1,7 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Write IDE guidance files for the given client.
|
|
10
|
-
*
|
|
11
|
-
* The guidance files teach the host AI (Cursor, Claude Code, etc.)
|
|
12
|
-
* when to suggest ZIVIS tools — no security knowledge required from the user.
|
|
13
|
-
*
|
|
14
|
-
* All writes are idempotent: re-running replaces only the ZIVIS-managed
|
|
15
|
-
* block, never user content.
|
|
16
|
-
*
|
|
17
|
-
* Returns the list of file paths written.
|
|
18
|
-
*/
|
|
19
|
-
export declare function writeGuidance(opts: GuidanceOptions): string[];
|
|
20
|
-
/**
|
|
21
|
-
* Detect which IDE configs are present in the given workspace.
|
|
22
|
-
* Returns client identifiers whose config files/dirs were found.
|
|
23
|
-
*/
|
|
24
|
-
export declare function detectIdesInRepo(cwd: string): GuidanceClient[];
|
|
25
|
-
export declare function setupCursor(): Promise<void>;
|
|
26
|
-
/**
|
|
27
|
-
* Write a workspace-level .cursor/mcp.json with `--workspace <cwd>` so Cursor
|
|
28
|
-
* starts an isolated MCP process bound to this specific repo.
|
|
29
|
-
* One process = one org = zero cross-tenant risk, regardless of what other
|
|
30
|
-
* repos are open in Cursor.
|
|
31
|
-
*/
|
|
32
|
-
export declare function setupCursorWorkspace(): Promise<void>;
|
|
33
|
-
export declare function setupVsCodeCopilot(): Promise<void>;
|
|
34
|
-
export declare function setupVsCodeClaude(): Promise<void>;
|
|
35
|
-
export declare function setupClaudeCodeCli(): Promise<void>;
|
|
36
|
-
export declare function setupCline(): Promise<void>;
|
|
37
|
-
export declare function setupWindsurf(): Promise<void>;
|
|
38
|
-
export declare function printClaudeCodeManual(): void;
|
|
1
|
+
export declare function setupCursor(session?: string): Promise<void>;
|
|
2
|
+
export declare function setupVsCodeCopilot(session?: string): Promise<void>;
|
|
3
|
+
export declare function setupVsCodeClaude(session?: string): Promise<void>;
|
|
4
|
+
export declare function setupClaudeCodeCli(session?: string): Promise<void>;
|
|
5
|
+
export declare function setupCline(session?: string): Promise<void>;
|
|
6
|
+
export declare function setupWindsurf(session?: string): Promise<void>;
|
|
7
|
+
export declare function printClaudeCodeManual(session?: string): void;
|
|
@@ -1,322 +1,16 @@
|
|
|
1
1
|
import * as fs from "node:fs";
|
|
2
2
|
import * as path from "node:path";
|
|
3
3
|
const SERVER_NAME = "zivis";
|
|
4
|
-
|
|
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 {
|
|
4
|
+
function buildServerConfig(session, extra) {
|
|
5
|
+
const config = {
|
|
316
6
|
...extra,
|
|
317
7
|
command: "zivis",
|
|
318
|
-
args,
|
|
8
|
+
args: ["mcp", "serve"],
|
|
319
9
|
};
|
|
10
|
+
if (session) {
|
|
11
|
+
config.env = { ZIVIS_SESSION: session };
|
|
12
|
+
}
|
|
13
|
+
return config;
|
|
320
14
|
}
|
|
321
15
|
async function updateMcpConfig(configPath, serverName, serverConfig, rootKey) {
|
|
322
16
|
const configDir = path.dirname(configPath);
|
|
@@ -339,54 +33,41 @@ async function updateMcpConfig(configPath, serverName, serverConfig, rootKey) {
|
|
|
339
33
|
servers[serverName] = serverConfig;
|
|
340
34
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n");
|
|
341
35
|
}
|
|
342
|
-
export async function setupCursor() {
|
|
36
|
+
export async function setupCursor(session) {
|
|
343
37
|
const homeDir = process.env.HOME || "";
|
|
344
38
|
const configPath = path.join(homeDir, ".cursor", "mcp.json");
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
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}`);
|
|
348
43
|
console.log(" Restart Cursor for changes to take effect");
|
|
349
44
|
}
|
|
350
|
-
|
|
351
|
-
|
|
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");
|
|
45
|
+
export async function setupVsCodeCopilot(session) {
|
|
46
|
+
const localConfigPath = path.join(process.cwd(), ".vscode", "mcp.json");
|
|
367
47
|
const globalConfigPath = path.join(process.env.HOME || "", ".vscode", "mcp.json");
|
|
368
48
|
let configPath = localConfigPath;
|
|
369
49
|
const exists = fs.existsSync(localConfigPath);
|
|
370
50
|
if (!exists && fs.existsSync(globalConfigPath)) {
|
|
371
51
|
configPath = globalConfigPath;
|
|
372
52
|
}
|
|
373
|
-
await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(
|
|
53
|
+
await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(session, { type: "stdio" }), "servers");
|
|
374
54
|
console.log(`✓ VS Code (GitHub Copilot) MCP config updated: ${configPath}`);
|
|
375
|
-
|
|
55
|
+
if (session)
|
|
56
|
+
console.log(` Session: ${session}`);
|
|
376
57
|
console.log(" Restart VS Code for changes to take effect");
|
|
377
58
|
}
|
|
378
|
-
export async function setupVsCodeClaude() {
|
|
379
|
-
const
|
|
380
|
-
|
|
381
|
-
await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(workspacePath), "mcpServers");
|
|
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");
|
|
382
62
|
console.log(`✓ VS Code (Claude Code) MCP config updated: ${configPath}`);
|
|
383
|
-
|
|
63
|
+
if (session)
|
|
64
|
+
console.log(` Session: ${session}`);
|
|
384
65
|
console.log(" Restart VS Code for changes to take effect");
|
|
385
66
|
}
|
|
386
|
-
export async function setupClaudeCodeCli() {
|
|
67
|
+
export async function setupClaudeCodeCli(session) {
|
|
387
68
|
const homeDir = process.env.HOME || "";
|
|
388
69
|
const configPath = path.join(homeDir, ".claude.json");
|
|
389
|
-
const
|
|
70
|
+
const projectPath = process.cwd();
|
|
390
71
|
if (!fs.existsSync(configPath)) {
|
|
391
72
|
console.log(" Skipping Claude Code CLI (no ~/.claude.json found)");
|
|
392
73
|
return;
|
|
@@ -394,47 +75,48 @@ export async function setupClaudeCodeCli() {
|
|
|
394
75
|
try {
|
|
395
76
|
const config = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
396
77
|
config.projects ??= {};
|
|
397
|
-
config.projects[
|
|
398
|
-
config.projects[
|
|
399
|
-
config.projects[
|
|
78
|
+
config.projects[projectPath] ??= {};
|
|
79
|
+
config.projects[projectPath].mcpServers ??= {};
|
|
80
|
+
config.projects[projectPath].mcpServers[SERVER_NAME] = {
|
|
400
81
|
type: "stdio",
|
|
401
82
|
command: "zivis",
|
|
402
|
-
args: ["mcp", "serve"
|
|
83
|
+
args: ["mcp", "serve"],
|
|
84
|
+
env: session ? { ZIVIS_SESSION: session } : {},
|
|
403
85
|
};
|
|
404
86
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n");
|
|
405
87
|
console.log("✓ Claude Code CLI MCP config updated: ~/.claude.json");
|
|
406
|
-
|
|
88
|
+
if (session)
|
|
89
|
+
console.log(` Session: ${session}`);
|
|
407
90
|
console.log(" Restart Claude Code for changes to take effect");
|
|
408
91
|
}
|
|
409
92
|
catch (err) {
|
|
410
93
|
console.log(` WARNING: Failed to update ~/.claude.json: ${err instanceof Error ? err.message : err}`);
|
|
411
94
|
}
|
|
412
95
|
}
|
|
413
|
-
export async function setupCline() {
|
|
414
|
-
const workspacePath = process.cwd();
|
|
96
|
+
export async function setupCline(session) {
|
|
415
97
|
const homeDir = process.env.HOME || "";
|
|
416
98
|
const configPath = process.platform === "darwin"
|
|
417
99
|
? path.join(homeDir, "Library", "Application Support", "Code", "User", "globalStorage", "saoudrizwan.claude-dev", "settings", "cline_mcp_settings.json")
|
|
418
100
|
: path.join(homeDir, ".config", "Code", "User", "globalStorage", "saoudrizwan.claude-dev", "settings", "cline_mcp_settings.json");
|
|
419
|
-
await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(
|
|
101
|
+
await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(session), "mcpServers");
|
|
420
102
|
console.log(`✓ Cline MCP config updated: ${configPath}`);
|
|
421
|
-
|
|
103
|
+
if (session)
|
|
104
|
+
console.log(` Session: ${session}`);
|
|
422
105
|
console.log(" Restart VS Code for changes to take effect");
|
|
423
106
|
}
|
|
424
|
-
export async function setupWindsurf() {
|
|
425
|
-
const workspacePath = process.cwd();
|
|
107
|
+
export async function setupWindsurf(session) {
|
|
426
108
|
const homeDir = process.env.HOME || "";
|
|
427
109
|
const configPath = path.join(homeDir, ".codeium", "windsurf", "mcp_config.json");
|
|
428
|
-
await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(
|
|
110
|
+
await updateMcpConfig(configPath, SERVER_NAME, buildServerConfig(session), "mcpServers");
|
|
429
111
|
console.log(`✓ Windsurf MCP config updated: ${configPath}`);
|
|
430
|
-
|
|
112
|
+
if (session)
|
|
113
|
+
console.log(` Session: ${session}`);
|
|
431
114
|
console.log(" Restart Windsurf for changes to take effect");
|
|
432
115
|
}
|
|
433
|
-
export function printClaudeCodeManual() {
|
|
434
|
-
const workspacePath = process.cwd();
|
|
116
|
+
export function printClaudeCodeManual(session) {
|
|
435
117
|
const serverConfig = {
|
|
436
118
|
mcpServers: {
|
|
437
|
-
[SERVER_NAME]: buildServerConfig(
|
|
119
|
+
[SERVER_NAME]: buildServerConfig(session),
|
|
438
120
|
},
|
|
439
121
|
};
|
|
440
122
|
console.log("");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ide-setup.js","sourceRoot":"","sources":["../../src/internal/ide-setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ide-setup.js","sourceRoot":"","sources":["../../src/internal/ide-setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,5 @@ 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;
|
|
12
10
|
}
|
|
13
11
|
export declare function ensureProjectBinding(opts: EnsureBindingOpts): Promise<void>;
|
|
@@ -13,27 +13,19 @@ export async function ensureProjectBinding(opts) {
|
|
|
13
13
|
console.log(" Note: JWT has no org_id — skipping project binding.");
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
16
|
-
|
|
16
|
+
const 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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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;
|
|
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);
|
|
37
29
|
}
|
|
38
30
|
let orgInfo;
|
|
39
31
|
try {
|
|
@@ -43,8 +35,6 @@ export async function ensureProjectBinding(opts) {
|
|
|
43
35
|
catch (err) {
|
|
44
36
|
console.log(` WARNING: Could not fetch org info: ${err instanceof Error ? err.message : err}`);
|
|
45
37
|
}
|
|
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).
|
|
48
38
|
const orgName = orgInfo?.name || detected?.binding.orgName;
|
|
49
39
|
const zivisOrgId = orgInfo?.id || detected?.binding.orgId;
|
|
50
40
|
const orgLabel = orgName ? `${orgName} (${jwtOrgId})` : jwtOrgId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-binding.js","sourceRoot":"","sources":["../../src/internal/project-binding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
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
|
+
"version": "0.1.0-alpha.3",
|
|
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.2"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/node": "^22.0.0",
|