@zivis/cli 0.1.0-alpha.33 → 0.1.0-alpha.34

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.
@@ -7,6 +7,22 @@ import { ensureProjectBinding } from "../../internal/project-binding.js";
7
7
  import { discardOauthAfterLogin, tryAutoMintBindingTokenAfterLogin, } from "../../internal/binding-token-mint.js";
8
8
  import { decodeJwtPayload } from "@zivis/mcp/auth/jwt";
9
9
  import { detectIdesInRepo, writeGuidance } from "../../internal/ide-setup.js";
10
+ import { buildLinkagePrompt } from "../../internal/github-linkage-prompt.js";
11
+ /**
12
+ * Print the GitHub App / repo linkage nudge if the user hasn't installed
13
+ * it yet. Best-effort; swallows errors. Shared between the two
14
+ * successful-init paths below.
15
+ */
16
+ async function maybePromptGitHubLinkage(config) {
17
+ try {
18
+ const msg = await buildLinkagePrompt({ config });
19
+ if (msg)
20
+ console.log(msg);
21
+ }
22
+ catch {
23
+ // Swallow — init has already succeeded.
24
+ }
25
+ }
10
26
  async function prompt(question) {
11
27
  const rl = readline.createInterface({ input: process.stdin, output: process.stderr });
12
28
  try {
@@ -157,6 +173,7 @@ export async function initCommand(opts) {
157
173
  });
158
174
  await discardOauthAfterLogin({ session, config });
159
175
  await offerGuidanceInstall(process.cwd());
176
+ await maybePromptGitHubLinkage(config);
160
177
  process.exit(0);
161
178
  }
162
179
  console.log("\nAborted. Switch orgs in your browser then run `zivis auth logout && zivis auth init`.");
@@ -185,6 +202,7 @@ export async function initCommand(opts) {
185
202
  });
186
203
  await discardOauthAfterLogin({ session, config });
187
204
  await offerGuidanceInstall(process.cwd());
205
+ await maybePromptGitHubLinkage(config);
188
206
  }
189
207
  else {
190
208
  // No org in JWT — user is authenticated but not scoped to an org yet.
@@ -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":"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"}
@@ -7,6 +7,7 @@ import { extractEmail } from "../../internal/orgs.js";
7
7
  import { ensureProjectBinding } from "../../internal/project-binding.js";
8
8
  import { discardOauthAfterLogin, tryAutoMintBindingTokenAfterLogin, } from "../../internal/binding-token-mint.js";
9
9
  import { setupCursorWorkspace, setupVsCodeClaude, setupVsCodeCopilot, setupClaudeCodeCli, } from "../../internal/ide-setup.js";
10
+ import { buildLinkagePrompt } from "../../internal/github-linkage-prompt.js";
10
11
  export async function loginCommand(opts) {
11
12
  const config = {
12
13
  ...DEFAULT_CONFIG,
@@ -75,6 +76,16 @@ export async function loginCommand(opts) {
75
76
  // OAuth has done its job (mint, org verify). MCP only reads apikey.<session>,
76
77
  // so any OAuth tokens left in the keychain are dead weight + drift risk.
77
78
  await discardOauthAfterLogin({ session, config });
79
+ // Nudge the user to install the GitHub App if they haven't yet.
80
+ // Best-effort — never fails the login.
81
+ try {
82
+ const linkagePrompt = await buildLinkagePrompt({ config });
83
+ if (linkagePrompt)
84
+ console.log(linkagePrompt);
85
+ }
86
+ catch {
87
+ // Swallow — login already succeeded.
88
+ }
78
89
  process.exit(0);
79
90
  }
80
91
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"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"}
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,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EACL,sBAAsB,EACtB,iCAAiC,GAClC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAY7E,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAkB;IACnD,MAAM,MAAM,GAAG;QACb,GAAG,cAAc;QACjB,GAAG,wBAAwB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;KAC3C,CAAC;IACF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;IAE5E,IAAI,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC;IAC9B,IAAI,CAAC,cAAc,IAAI,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QACrD,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;QAC9C,OAAO,CAAC,GAAG,CACT,mCAAmC,cAAc,GAC/C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAChE,EAAE,CACH,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,uCAAuC,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE;YAC1D,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO;YAClC,WAAW,EAAE,IAAI,CAAC,GAAG,KAAK,IAAI;SAC/B,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE5C,MAAM,WAAW,GAAG,OAAO,IAAI,SAAS,CAAC;QACzC,MAAM,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC;QAEhF,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,cAAc,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,GAAG,YAAY,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,2BAA2B,WAAW,EAAE,CAAC,CAAC;QACtD,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,iCAAiC,cAAc,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,oBAAoB,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CACT,iDAAiD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAC5F,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,iBAAiB,EAAE,CAAC;YAC1B,MAAM,kBAAkB,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CACT,iDAAiD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAC5F,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,kBAAkB,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CACT,uDAAuD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAClG,CAAC;QACJ,CAAC;QAED,MAAM,oBAAoB,CAAC;YACzB,MAAM;YACN,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,MAAM,CAAC,YAAY;YAChC,cAAc;YACd,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;YAC5B,QAAQ,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI;SAC/B,CAAC,CAAC;QAEH,MAAM,iCAAiC,CAAC;YACtC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,WAAW;YACX,WAAW,EAAE,MAAM,CAAC,YAAY;YAChC,IAAI,EAAE,IAAI,CAAC,WAAW,KAAK,IAAI;YAC/B,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QAEH,8EAA8E;QAC9E,yEAAyE;QACzE,MAAM,sBAAsB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAElD,gEAAgE;QAChE,uCAAuC;QACvC,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3D,IAAI,aAAa;gBAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;QACvC,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,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;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * `zivis check` — the user-facing front door.
3
+ *
4
+ * Flow:
5
+ * 1. Resolve auth (interactive sign-up/in menu in TTY; CI must have ZIVIS_API_KEY).
6
+ * 2. Build the local repo graph (same extractor as `zivis inspect`).
7
+ * 3. Persist the artifact to the user cache so the matcher (and any
8
+ * subsequent IDE-side `zivis_inspect`) can read it.
9
+ * 4. Run the local pattern matcher against the artifact + source files.
10
+ * 5. POST artifact + matches to `/api/cli/check`, which promotes them
11
+ * into the platform threat model (components, data flows, actors,
12
+ * findings, scenarios + kill-chain).
13
+ * 6. Render a summary that tells the user what landed in their threat
14
+ * model and where to view it.
15
+ *
16
+ * Spec: docs/plans/ZIVIS-CHECK-CLI-SPEC.md
17
+ * Bridge: zivis-api/services/cli-check-promotion.service.ts
18
+ */
19
+ import type { Command } from "commander";
20
+ export declare function registerCheckCommands(program: Command): void;
@@ -0,0 +1,499 @@
1
+ /**
2
+ * `zivis check` — the user-facing front door.
3
+ *
4
+ * Flow:
5
+ * 1. Resolve auth (interactive sign-up/in menu in TTY; CI must have ZIVIS_API_KEY).
6
+ * 2. Build the local repo graph (same extractor as `zivis inspect`).
7
+ * 3. Persist the artifact to the user cache so the matcher (and any
8
+ * subsequent IDE-side `zivis_inspect`) can read it.
9
+ * 4. Run the local pattern matcher against the artifact + source files.
10
+ * 5. POST artifact + matches to `/api/cli/check`, which promotes them
11
+ * into the platform threat model (components, data flows, actors,
12
+ * findings, scenarios + kill-chain).
13
+ * 6. Render a summary that tells the user what landed in their threat
14
+ * model and where to view it.
15
+ *
16
+ * Spec: docs/plans/ZIVIS-CHECK-CLI-SPEC.md
17
+ * Bridge: zivis-api/services/cli-check-promotion.service.ts
18
+ */
19
+ import * as crypto from "node:crypto";
20
+ import * as readline from "node:readline";
21
+ import * as fs from "node:fs/promises";
22
+ import * as path from "node:path";
23
+ import * as os from "node:os";
24
+ import { exec } from "node:child_process";
25
+ import { promisify } from "node:util";
26
+ import { resolveAuth } from "@zivis/mcp/auth";
27
+ import { detectProjectBinding, resolveConfigFromBinding } from "@zivis/mcp/project-binding";
28
+ import { DEFAULT_CONFIG } from "@zivis/mcp/types";
29
+ import { runMatcher } from "@zivis/mcp/matcher";
30
+ import { runExtractor } from "../../internal/extractor/index.js";
31
+ import { buildRepoGraphArtifact } from "../../internal/extractor/graph-builder.js";
32
+ import { loginCommand } from "../auth/login.js";
33
+ import { buildLinkagePrompt } from "../../internal/github-linkage-prompt.js";
34
+ const execAsync = promisify(exec);
35
+ // Packages whose presence indicates an LLM integration (for the local summary).
36
+ const LLM_PACKAGE_NAMES = new Set([
37
+ "openai",
38
+ "@anthropic-ai/sdk",
39
+ "anthropic",
40
+ "@anthropic-ai/bedrock-sdk",
41
+ "@anthropic-ai/vertex-sdk",
42
+ "@google/generative-ai",
43
+ "@google-cloud/aiplatform",
44
+ "@google-cloud/vertexai",
45
+ "@aws-sdk/client-bedrock-runtime",
46
+ "@azure/openai",
47
+ "langchain",
48
+ "@langchain/core",
49
+ "@langchain/openai",
50
+ "@langchain/anthropic",
51
+ "llamaindex",
52
+ "ai",
53
+ "ollama",
54
+ "cohere-ai",
55
+ "@cohere-ai/sdk",
56
+ "replicate",
57
+ "mistralai",
58
+ "@mistralai/mistralai",
59
+ "groq-sdk",
60
+ "@groq/groq-sdk",
61
+ ]);
62
+ export function registerCheckCommands(program) {
63
+ program
64
+ .command("check")
65
+ .description("inspect this repo's architecture and post findings to your ZIVIS threat model")
66
+ .option("--cwd <path>", "repo root to inspect (default: cwd)")
67
+ .option("--format <fmt>", "output format: human or json", "human")
68
+ .option("--no-network", "skip server-side promotion; build the graph + run matcher locally only")
69
+ .action(async (opts) => {
70
+ const result = await runCheck(opts);
71
+ process.exit(result.exitCode);
72
+ });
73
+ }
74
+ async function runCheck(opts) {
75
+ const rootDir = opts.cwd ?? process.cwd();
76
+ const format = opts.format === "json" ? "json" : "human";
77
+ const network = opts.network !== false; // --no-network sets to false
78
+ const config = { ...DEFAULT_CONFIG, ...resolveConfigFromBinding(rootDir) };
79
+ // 1. Auth gate.
80
+ const authStatus = await resolveAuth(config);
81
+ if (authStatus.method === "none") {
82
+ const handled = await handleUnauthenticated({ format, config });
83
+ if (handled !== "continue") {
84
+ return { exitCode: handled };
85
+ }
86
+ const recheck = await resolveAuth(config);
87
+ if (recheck.method === "none") {
88
+ printIfHuman(format, "\nAuth did not complete. Run `zivis auth login` and try again.");
89
+ return { exitCode: 1 };
90
+ }
91
+ }
92
+ const creds = await resolveAuth(config);
93
+ // 2. Build the graph.
94
+ const startedAt = Date.now();
95
+ const extractorOutput = await runExtractor({
96
+ rootDir,
97
+ extractorVersion: "check",
98
+ });
99
+ const gitMeta = await readGitMetadata(rootDir);
100
+ const binding = detectProjectBinding(rootDir);
101
+ const applicationId = binding?.binding.applicationId;
102
+ const repoId = deriveRepoId(gitMeta.remoteUrl, rootDir);
103
+ const artifact = buildRepoGraphArtifact(extractorOutput, {
104
+ applicationId,
105
+ repoId,
106
+ commitSha: gitMeta.commitSha,
107
+ branch: gitMeta.branch,
108
+ analysisMode: "local",
109
+ });
110
+ // 3. Persist artifact to user cache so the matcher can read it.
111
+ const artifactPath = await writeArtifactToCache(artifact);
112
+ // 4. Run the local matcher.
113
+ let matcherFindings = [];
114
+ try {
115
+ const matcherResult = await runMatcher({ artifactPath, cwd: rootDir });
116
+ matcherFindings = matcherResult.findings;
117
+ }
118
+ catch (err) {
119
+ // Matcher failure shouldn't abort — the graph + server promotion is
120
+ // still valuable. Surface in stderr, keep going.
121
+ const msg = err instanceof Error ? err.message : String(err);
122
+ process.stderr.write(`\n[zivis check] matcher failed (continuing without pattern matches): ${msg}\n`);
123
+ }
124
+ const durationMs = Date.now() - startedAt;
125
+ const summary = summarizeArtifact(artifact, matcherFindings);
126
+ // 5. POST to the server unless --no-network.
127
+ let promotion;
128
+ let promotionError;
129
+ if (network) {
130
+ try {
131
+ promotion = await postCheckArtifact({
132
+ config,
133
+ creds,
134
+ artifact,
135
+ findings: matcherFindings,
136
+ repoName: deriveRepoNameFromGit(gitMeta.remoteUrl, rootDir),
137
+ });
138
+ }
139
+ catch (err) {
140
+ promotionError = err instanceof Error ? err.message : String(err);
141
+ }
142
+ }
143
+ // 6. GitHub linkage nudge — non-blocking, network-gated. Surfaces:
144
+ // a) "install the GitHub App" if the org hasn't yet, OR
145
+ // b) "link a repo to this application" if the app is bound but
146
+ // has no repos linked yet.
147
+ // Prefer the just-promoted application id (may have been auto-created
148
+ // by the POST) over the project-binding id when both are available.
149
+ let linkagePrompt = null;
150
+ if (network) {
151
+ try {
152
+ linkagePrompt = await buildLinkagePrompt({
153
+ config,
154
+ applicationId: promotion?.applicationId ?? applicationId,
155
+ });
156
+ }
157
+ catch {
158
+ // Best-effort; never blocks the check output.
159
+ }
160
+ }
161
+ // 7. Render.
162
+ if (format === "json") {
163
+ process.stdout.write(JSON.stringify(buildJsonOutput(artifact, summary, durationMs, promotion, promotionError, network, linkagePrompt), null, 2) + "\n");
164
+ }
165
+ else {
166
+ renderHumanOutput(artifact, summary, durationMs, promotion, promotionError, network, linkagePrompt);
167
+ }
168
+ return { exitCode: 0 };
169
+ }
170
+ async function handleUnauthenticated(args) {
171
+ const isInteractive = process.stdout.isTTY && process.stdin.isTTY && process.env.CI !== "true";
172
+ if (!isInteractive) {
173
+ printNonTtyAuthInstructions(args.format);
174
+ return 1;
175
+ }
176
+ if (args.format === "json") {
177
+ process.stdout.write(JSON.stringify({
178
+ schema_version: "1",
179
+ error: "not_authenticated",
180
+ message: "zivis check requires authentication; run `zivis auth login` interactively.",
181
+ }, null, 2) + "\n");
182
+ return 1;
183
+ }
184
+ const choice = await promptAuthChoice();
185
+ if (choice === "quit") {
186
+ process.stdout.write("\nCancelled — run `zivis check` again when ready.\n");
187
+ return 1;
188
+ }
189
+ process.stdout.write(`\nOpening your browser to ${choice === "create" ? "sign up" : "sign in"}...\n`);
190
+ try {
191
+ await loginCommand({});
192
+ }
193
+ catch (err) {
194
+ process.stdout.write(`\nAuthentication failed: ${err instanceof Error ? err.message : String(err)}\n`);
195
+ return 1;
196
+ }
197
+ process.stdout.write("\nRunning zivis check ...\n\n");
198
+ return "continue";
199
+ }
200
+ function printNonTtyAuthInstructions(format) {
201
+ if (format === "json") {
202
+ process.stdout.write(JSON.stringify({
203
+ schema_version: "1",
204
+ error: "not_authenticated",
205
+ message: "zivis check requires authentication; set ZIVIS_API_KEY for CI or run interactively.",
206
+ help: {
207
+ sign_up: "https://app.zivis.ai/sign-up?source=cli",
208
+ sign_in: "https://app.zivis.ai/sign-in?source=cli",
209
+ api_keys: "https://app.zivis.ai/settings/api-keys",
210
+ },
211
+ }, null, 2) + "\n");
212
+ return;
213
+ }
214
+ process.stdout.write(`\nZIVIS requires an account to inspect repos.\n\n` +
215
+ ` → Sign up: https://app.zivis.ai/sign-up?source=cli\n` +
216
+ ` → Sign in: https://app.zivis.ai/sign-in?source=cli\n` +
217
+ ` → For CI / headless use: set ZIVIS_API_KEY (issue a service key from\n` +
218
+ ` https://app.zivis.ai/settings/api-keys)\n\n`);
219
+ }
220
+ async function promptAuthChoice() {
221
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
222
+ try {
223
+ process.stdout.write(`\nZIVIS requires an account to inspect repos.\n\n` +
224
+ ` 1) Create account (recommended — first time using ZIVIS)\n` +
225
+ ` 2) Sign in (already have an account)\n` +
226
+ ` q) Quit\n\n`);
227
+ for (;;) {
228
+ const raw = await new Promise((resolve) => rl.question("> ", resolve));
229
+ const choice = raw.trim().toLowerCase();
230
+ if (choice === "" || choice === "1")
231
+ return "create";
232
+ if (choice === "2")
233
+ return "signin";
234
+ if (choice === "q" || choice === "quit")
235
+ return "quit";
236
+ process.stdout.write("Please choose 1, 2, or q.\n");
237
+ }
238
+ }
239
+ finally {
240
+ rl.close();
241
+ }
242
+ }
243
+ async function postCheckArtifact(args) {
244
+ const { config, creds, artifact, findings, repoName } = args;
245
+ const url = `${config.apiBaseUrl}/api/cli/check`;
246
+ const headers = {
247
+ "Content-Type": "application/json",
248
+ "User-Agent": "@zivis/cli",
249
+ };
250
+ if (creds.method === "oauth" && creds.accessToken) {
251
+ headers.Authorization = `Bearer ${creds.accessToken}`;
252
+ }
253
+ else if (creds.method === "apikey" && creds.apiKey) {
254
+ headers["X-API-Key"] = creds.apiKey;
255
+ }
256
+ const body = {
257
+ artifact,
258
+ matches: findings.map((f) => ({
259
+ pattern_id: f.pattern_id,
260
+ lane: f.lane,
261
+ confidence: f.confidence,
262
+ evidence_spans: (f.evidence ?? []).map((e) => ({
263
+ file: e.file,
264
+ line_span: e.end_line ? [e.start_line, e.end_line] : undefined,
265
+ })),
266
+ capsule: {
267
+ safe_summary: f.safe_summary,
268
+ threats: Array.isArray(f.threats) ? f.threats : undefined,
269
+ },
270
+ })),
271
+ repoName,
272
+ };
273
+ const response = await fetch(url, {
274
+ method: "POST",
275
+ headers,
276
+ body: JSON.stringify(body),
277
+ });
278
+ if (!response.ok) {
279
+ const text = await response.text().catch(() => "");
280
+ throw new Error(`HTTP ${response.status} from /api/cli/check: ${text.slice(0, 400)}`);
281
+ }
282
+ return (await response.json());
283
+ }
284
+ function summarizeArtifact(artifact, findings) {
285
+ const services = artifact.nodes.filter((n) => n.type === "service").length;
286
+ const endpoints = artifact.nodes.filter((n) => n.type === "endpoint").length;
287
+ const deps = artifact.nodes.filter((n) => n.type === "external_dependency");
288
+ const llmIntegrations = new Set();
289
+ for (const dep of deps) {
290
+ if (dep.type !== "external_dependency")
291
+ continue;
292
+ const pkg = dep.attributes.package;
293
+ if (!pkg)
294
+ continue;
295
+ if (LLM_PACKAGE_NAMES.has(pkg)) {
296
+ llmIntegrations.add(friendlyLlmName(pkg));
297
+ }
298
+ }
299
+ const trustedMatches = findings.filter((f) => f.lane === "trusted").length;
300
+ const inferredMatches = findings.filter((f) => f.lane === "inferred").length;
301
+ const topPatterns = findings
302
+ .slice()
303
+ .sort((a, b) => b.confidence - a.confidence)
304
+ .slice(0, 3)
305
+ .map((f) => f.pattern_id);
306
+ return {
307
+ serviceCount: services,
308
+ endpointCount: endpoints,
309
+ externalDependencyCount: deps.length,
310
+ llmIntegrations: Array.from(llmIntegrations).sort(),
311
+ languages: artifact.scope.languages ?? [],
312
+ filesScanned: artifact.scope.files_scanned ?? 0,
313
+ trustedMatches,
314
+ inferredMatches,
315
+ topPatterns,
316
+ };
317
+ }
318
+ function friendlyLlmName(pkg) {
319
+ if (pkg === "openai" || pkg === "@azure/openai")
320
+ return "openai";
321
+ if (pkg.startsWith("@anthropic-ai") || pkg === "anthropic")
322
+ return "anthropic";
323
+ if (pkg.startsWith("@google") || pkg.includes("vertexai") || pkg.includes("generative-ai")) {
324
+ return "google";
325
+ }
326
+ if (pkg.includes("bedrock"))
327
+ return "aws-bedrock";
328
+ if (pkg.startsWith("@langchain") || pkg === "langchain")
329
+ return "langchain";
330
+ if (pkg === "llamaindex")
331
+ return "llamaindex";
332
+ if (pkg === "ollama")
333
+ return "ollama";
334
+ if (pkg.includes("cohere"))
335
+ return "cohere";
336
+ if (pkg.includes("mistral"))
337
+ return "mistral";
338
+ if (pkg.includes("groq"))
339
+ return "groq";
340
+ if (pkg === "ai")
341
+ return "vercel-ai";
342
+ return pkg;
343
+ }
344
+ // ── Rendering ──
345
+ function renderHumanOutput(_artifact, summary, durationMs, promotion, promotionError, network, linkagePrompt) {
346
+ const seconds = (durationMs / 1000).toFixed(1);
347
+ let out = `\nZIVIS read your repo (${seconds}s):\n\n`;
348
+ out += ` Architecture (current snapshot)\n`;
349
+ out += ` ${summary.serviceCount} service${plural(summary.serviceCount)} · ${summary.endpointCount} endpoint${plural(summary.endpointCount)}\n`;
350
+ if (summary.llmIntegrations.length > 0) {
351
+ out += ` ${summary.llmIntegrations.length} LLM integration${plural(summary.llmIntegrations.length)} (${summary.llmIntegrations.join(", ")})\n`;
352
+ }
353
+ if (summary.languages.length > 0) {
354
+ out += ` Languages: ${summary.languages.join(", ")}\n`;
355
+ }
356
+ const totalMatches = summary.trustedMatches + summary.inferredMatches;
357
+ if (totalMatches > 0) {
358
+ out += `\n Patterns matched\n`;
359
+ out += ` ${summary.trustedMatches} trusted · ${summary.inferredMatches} inferred (need IDE review)\n`;
360
+ for (const p of summary.topPatterns) {
361
+ out += ` • ${p}\n`;
362
+ }
363
+ }
364
+ if (promotion) {
365
+ out += `\n ${promotion.isNewApplication ? "Created" : "Updated"} threat model — "${promotion.applicationName}"\n`;
366
+ out += ` Components: +${promotion.componentsAdded}`;
367
+ if (promotion.componentsUnchanged > 0)
368
+ out += ` (${promotion.componentsUnchanged} already present)`;
369
+ out += `\n`;
370
+ out += ` Data flows: +${promotion.dataFlowsAdded}`;
371
+ if (promotion.dataFlowsUnchanged > 0)
372
+ out += ` (${promotion.dataFlowsUnchanged} already present)`;
373
+ out += `\n`;
374
+ out += ` Actors: +${promotion.actorsAttached}\n`;
375
+ out += ` Observations: +${promotion.findingsCreated}\n`;
376
+ out += ` Scenarios: +${promotion.scenariosGenerated}\n`;
377
+ out += `\n View it: ${promotion.webAppUrl}\n`;
378
+ }
379
+ else if (network && promotionError) {
380
+ out += `\n Could not post to your threat model: ${promotionError}\n`;
381
+ out += ` (graph + matches still produced locally; rerun once the API is reachable)\n`;
382
+ }
383
+ else if (!network) {
384
+ out += `\n (--no-network: nothing posted to your threat model)\n`;
385
+ }
386
+ out += `\nContinue:\n`;
387
+ out += ` → In your IDE: zivis mcp install --for claude-code\n`;
388
+ out += ` → Human-reviewed Mini-Threat-Model: zivis teardown ($500)\n`;
389
+ out += ` → Full Deal-Readiness Threat Model: zivis sales ($7.5K–$15K)\n`;
390
+ if (linkagePrompt) {
391
+ out += linkagePrompt + "\n";
392
+ }
393
+ out += "\n";
394
+ process.stdout.write(out);
395
+ }
396
+ function plural(n) {
397
+ return n === 1 ? "" : "s";
398
+ }
399
+ function buildJsonOutput(artifact, summary, durationMs, promotion, promotionError, network, linkagePrompt) {
400
+ let promotionField;
401
+ if (promotion)
402
+ promotionField = { status: "ok", ...promotion };
403
+ else if (!network)
404
+ promotionField = { status: "skipped", reason: "no-network" };
405
+ else if (promotionError)
406
+ promotionField = { status: "error", error: promotionError };
407
+ return {
408
+ schema_version: "1",
409
+ repo_id: artifact.provenance.repo_id ?? "unknown",
410
+ ran_at: artifact.extracted_at,
411
+ duration_ms: durationMs,
412
+ architecture: {
413
+ services: summary.serviceCount,
414
+ endpoints: summary.endpointCount,
415
+ external_dependencies: summary.externalDependencyCount,
416
+ llm_integrations: summary.llmIntegrations,
417
+ languages: summary.languages,
418
+ },
419
+ matches: {
420
+ trusted: summary.trustedMatches,
421
+ inferred: summary.inferredMatches,
422
+ top_patterns: summary.topPatterns,
423
+ },
424
+ promotion: promotionField,
425
+ conversion_links: {
426
+ mcp_install: "zivis mcp install --for <ide>",
427
+ teardown: "zivis teardown",
428
+ sales: "zivis sales",
429
+ },
430
+ linkage_prompt: linkagePrompt,
431
+ };
432
+ }
433
+ function printIfHuman(format, msg) {
434
+ if (format === "human")
435
+ process.stdout.write(msg + "\n");
436
+ }
437
+ async function readGitMetadata(rootDir) {
438
+ return {
439
+ remoteUrl: await tryGit(rootDir, "remote get-url origin"),
440
+ commitSha: await tryGit(rootDir, "rev-parse HEAD"),
441
+ branch: await tryGit(rootDir, "rev-parse --abbrev-ref HEAD"),
442
+ };
443
+ }
444
+ async function tryGit(cwd, args) {
445
+ try {
446
+ const { stdout } = await execAsync(`git ${args}`, { cwd });
447
+ const value = stdout.trim();
448
+ return value || undefined;
449
+ }
450
+ catch {
451
+ return undefined;
452
+ }
453
+ }
454
+ function deriveRepoId(remoteUrl, rootDir) {
455
+ if (remoteUrl) {
456
+ return "remote-" + sha256Short(remoteUrl);
457
+ }
458
+ return "path-" + sha256Short(rootDir);
459
+ }
460
+ function sha256Short(value) {
461
+ return crypto.createHash("sha256").update(value).digest("hex").slice(0, 16);
462
+ }
463
+ function deriveRepoNameFromGit(remoteUrl, rootDir) {
464
+ if (remoteUrl) {
465
+ const m = /[/:]([^/:]+?)\/([^/]+?)(?:\.git)?$/.exec(remoteUrl);
466
+ if (m)
467
+ return m[2];
468
+ }
469
+ const base = path.basename(rootDir);
470
+ return base && base !== "." ? base : undefined;
471
+ }
472
+ function userCacheRoot() {
473
+ const home = os.homedir();
474
+ if (process.platform === "darwin") {
475
+ return path.join(home, "Library", "Caches", "zivis");
476
+ }
477
+ if (process.platform === "win32") {
478
+ const localAppData = process.env.LOCALAPPDATA ?? path.join(home, "AppData", "Local");
479
+ return path.join(localAppData, "zivis", "Cache");
480
+ }
481
+ const xdg = process.env.XDG_CACHE_HOME;
482
+ return path.join(xdg ?? path.join(home, ".cache"), "zivis");
483
+ }
484
+ async function writeArtifactToCache(artifact) {
485
+ const repoId = artifact.provenance.repo_id ?? "unknown";
486
+ const commitSha = artifact.provenance.commit_sha;
487
+ const runId = formatRunId(commitSha, artifact.extracted_at);
488
+ const outPath = path.join(userCacheRoot(), "repos", repoId, "inspect", "runs", `${runId}.json`);
489
+ await fs.mkdir(path.dirname(outPath), { recursive: true });
490
+ await fs.writeFile(outPath, JSON.stringify(artifact, null, 2) + "\n");
491
+ return outPath;
492
+ }
493
+ function formatRunId(commitSha, extractedAt) {
494
+ const compactTs = extractedAt.replace(/[-:]/g, "").replace(/\.\d+Z$/, "Z");
495
+ if (!commitSha)
496
+ return `nogit-${compactTs}`;
497
+ return `${commitSha.slice(0, 7)}-${compactTs}`;
498
+ }
499
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/check/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ import { registerAppCommands } from "./commands/app/index.js";
8
8
  import { registerTargetCommands } from "./commands/target/index.js";
9
9
  import { registerTmCommands } from "./commands/tm/index.js";
10
10
  import { registerScanCommands } from "./commands/scan/index.js";
11
+ import { registerCheckCommands } from "./commands/check/index.js";
11
12
  import { registerInspectCommands } from "./commands/inspect/index.js";
12
13
  import { registerMcpCommands } from "./commands/mcp/index.js";
13
14
  import { registerCreditsCommands } from "./commands/credits/index.js";
@@ -28,6 +29,7 @@ program
28
29
  .description("ZIVIS CLI — threat modeling, scans, and MCP server")
29
30
  .version(getVersion(), "-v, --version", "show version");
30
31
  registerAuthCommands(program);
32
+ registerCheckCommands(program);
31
33
  registerAppCommands(program);
32
34
  registerTargetCommands(program);
33
35
  registerTmCommands(program);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAClE,CAAC;QACF,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,oDAAoD,CAAC;KACjE,OAAO,CAAC,UAAU,EAAE,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;AAE1D,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAE9B,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC7C,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAClE,CAAC;QACF,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,oDAAoD,CAAC;KACjE,OAAO,CAAC,UAAU,EAAE,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;AAE1D,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAE9B,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC7C,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Lane-2 conversion prompts — nudges the user to install the ZIVIS
3
+ * GitHub App and / or link a repo to a specific Application.
4
+ *
5
+ * Surfaced from `zivis auth login`, `zivis auth init`, and `zivis check`
6
+ * so the next step is obvious right after a developer signs in.
7
+ *
8
+ * Best-effort by design: any fetch failure returns `null` so we don't
9
+ * fail an otherwise-successful auth or check run on a transient API
10
+ * blip.
11
+ */
12
+ import type { ZivisConfig } from "@zivis/mcp/types";
13
+ export interface BuildLinkagePromptOpts {
14
+ config: ZivisConfig;
15
+ /** Optional. When provided we also check whether THIS app has linked repos. */
16
+ applicationId?: string;
17
+ /** Format hint: "short" omits the explanatory why-line. Default "full". */
18
+ style?: "short" | "full";
19
+ }
20
+ /**
21
+ * Fetch GitHub App status + (if applicationId given) per-app repo
22
+ * linkage status, then return a multi-line printable prompt suggesting
23
+ * the next step. Returns null when nothing actionable is missing
24
+ * (fully linked) or when we couldn't determine the state.
25
+ */
26
+ export declare function buildLinkagePrompt(opts: BuildLinkagePromptOpts): Promise<string | null>;
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Lane-2 conversion prompts — nudges the user to install the ZIVIS
3
+ * GitHub App and / or link a repo to a specific Application.
4
+ *
5
+ * Surfaced from `zivis auth login`, `zivis auth init`, and `zivis check`
6
+ * so the next step is obvious right after a developer signs in.
7
+ *
8
+ * Best-effort by design: any fetch failure returns `null` so we don't
9
+ * fail an otherwise-successful auth or check run on a transient API
10
+ * blip.
11
+ */
12
+ import { resolveAuth } from "@zivis/mcp/auth";
13
+ /**
14
+ * Fetch GitHub App status + (if applicationId given) per-app repo
15
+ * linkage status, then return a multi-line printable prompt suggesting
16
+ * the next step. Returns null when nothing actionable is missing
17
+ * (fully linked) or when we couldn't determine the state.
18
+ */
19
+ export async function buildLinkagePrompt(opts) {
20
+ const creds = await resolveAuth(opts.config);
21
+ if (creds.method === "none")
22
+ return null;
23
+ const appStatus = await fetchGitHubAppStatus(opts.config, creds);
24
+ if (!appStatus)
25
+ return null;
26
+ // Case 1: GitHub App not installed at all → install URL.
27
+ if (!appStatus.installed) {
28
+ if (!appStatus.installUrl)
29
+ return null; // env not configured; don't show a broken link
30
+ return formatInstallPrompt(appStatus.installUrl, opts.style ?? "full");
31
+ }
32
+ // Case 2: App installed but caller has a specific applicationId and
33
+ // that app has no linked repo → web link-repo prompt.
34
+ if (opts.applicationId) {
35
+ const repoStatus = await fetchAppRepoStatus(opts.config, creds, opts.applicationId);
36
+ if (repoStatus && !repoStatus.linked) {
37
+ return formatLinkRepoPrompt(opts.config, opts.applicationId, opts.style ?? "full");
38
+ }
39
+ }
40
+ // Case 3: All good (or no applicationId to check at app-level).
41
+ return null;
42
+ }
43
+ // ── HTTP helpers ──
44
+ async function fetchGitHubAppStatus(config, creds) {
45
+ try {
46
+ const res = await fetch(`${config.apiBaseUrl}/api/github-app/status`, {
47
+ headers: authHeaders(creds),
48
+ });
49
+ if (!res.ok)
50
+ return null;
51
+ return (await res.json());
52
+ }
53
+ catch {
54
+ return null;
55
+ }
56
+ }
57
+ async function fetchAppRepoStatus(config, creds, applicationId) {
58
+ try {
59
+ const res = await fetch(`${config.apiBaseUrl}/api/applications/${encodeURIComponent(applicationId)}/repos/status`, { headers: authHeaders(creds) });
60
+ if (!res.ok)
61
+ return null;
62
+ return (await res.json());
63
+ }
64
+ catch {
65
+ return null;
66
+ }
67
+ }
68
+ function authHeaders(creds) {
69
+ const base = {
70
+ "Content-Type": "application/json",
71
+ "User-Agent": "@zivis/cli",
72
+ };
73
+ if (creds.method === "oauth" && creds.accessToken) {
74
+ base.Authorization = `Bearer ${creds.accessToken}`;
75
+ }
76
+ else if (creds.method === "apikey" && creds.apiKey) {
77
+ base["X-API-Key"] = creds.apiKey;
78
+ }
79
+ return base;
80
+ }
81
+ // ── Formatters ──
82
+ function formatInstallPrompt(installUrl, style) {
83
+ if (style === "short") {
84
+ return `Next: install the ZIVIS GitHub App — ${installUrl}`;
85
+ }
86
+ return [
87
+ "",
88
+ "Next: install the ZIVIS GitHub App",
89
+ ` ${installUrl}`,
90
+ " Enables continuous monitoring + automatic threat-model updates on push.",
91
+ ].join("\n");
92
+ }
93
+ function formatLinkRepoPrompt(config, applicationId, style) {
94
+ const appBase = process.env.ZIVIS_APP_URL || guessAppUrlFromApi(config.apiBaseUrl);
95
+ const url = `${appBase}/applications/${applicationId}`;
96
+ if (style === "short") {
97
+ return `Next: link a GitHub repo to this application — ${url}`;
98
+ }
99
+ return [
100
+ "",
101
+ "Next: link a GitHub repo to this application",
102
+ ` ${url}`,
103
+ " The GitHub App is installed but this app has no linked repo yet.",
104
+ ].join("\n");
105
+ }
106
+ function guessAppUrlFromApi(apiBaseUrl) {
107
+ // Standard mapping: api.* ⇄ app.* on the same root domain.
108
+ try {
109
+ const u = new URL(apiBaseUrl);
110
+ if (u.host.startsWith("api.")) {
111
+ u.host = "app." + u.host.slice(4);
112
+ return `${u.protocol}//${u.host}`;
113
+ }
114
+ // localhost / non-standard hosts → fall back to the api URL itself.
115
+ return apiBaseUrl;
116
+ }
117
+ catch {
118
+ return "https://app.zivis.ai";
119
+ }
120
+ }
121
+ //# sourceMappingURL=github-linkage-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-linkage-prompt.js","sourceRoot":"","sources":["../../src/internal/github-linkage-prompt.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.33",
3
+ "version": "0.1.0-alpha.34",
4
4
  "description": "ZIVIS CLI — threat modeling, scans, and MCP server for IDE integration",
5
5
  "type": "module",
6
6
  "bin": {
@@ -13,17 +13,25 @@
13
13
  "publishConfig": {
14
14
  "access": "restricted"
15
15
  },
16
+ "scripts": {
17
+ "build:workspace-deps": "pnpm --filter @zivis/mcp run build",
18
+ "build": "pnpm run build:workspace-deps && tsc && node scripts/ensure-symlink.cjs",
19
+ "dev": "tsc --watch",
20
+ "start": "node dist/index.js",
21
+ "lint": "pnpm run build:workspace-deps && tsc --noEmit",
22
+ "test": "vitest run"
23
+ },
16
24
  "engines": {
17
25
  "node": ">=20.0.0"
18
26
  },
19
27
  "dependencies": {
20
28
  "@iarna/toml": "^2.2.5",
21
29
  "@vscode/tree-sitter-wasm": "^0.3.1",
30
+ "@zivis/mcp": "workspace:*",
22
31
  "commander": "^12.1.0",
23
32
  "ignore": "^7.0.5",
24
33
  "open": "^10.1.0",
25
- "web-tree-sitter": "^0.26.8",
26
- "@zivis/mcp": "0.1.0-alpha.23"
34
+ "web-tree-sitter": "^0.26.8"
27
35
  },
28
36
  "devDependencies": {
29
37
  "@types/js-yaml": "^4.0.9",
@@ -34,13 +42,5 @@
34
42
  "tsx": "^4.19.2",
35
43
  "typescript": "^5.7.0",
36
44
  "vitest": "^3.0.0"
37
- },
38
- "scripts": {
39
- "build:workspace-deps": "pnpm --filter @zivis/mcp run build",
40
- "build": "pnpm run build:workspace-deps && tsc && node scripts/ensure-symlink.cjs",
41
- "dev": "tsc --watch",
42
- "start": "node dist/index.js",
43
- "lint": "pnpm run build:workspace-deps && tsc --noEmit",
44
- "test": "vitest run"
45
45
  }
46
- }
46
+ }