@zivis/mcp 0.1.0-alpha.18 → 0.1.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/dist/api-client.d.ts +0 -8
  2. package/dist/api-client.js +3 -35
  3. package/dist/api-client.js.map +1 -1
  4. package/dist/auth/index.d.ts +5 -8
  5. package/dist/auth/index.js +17 -32
  6. package/dist/auth/index.js.map +1 -1
  7. package/dist/auth/keychain.d.ts +5 -6
  8. package/dist/auth/keychain.js +45 -50
  9. package/dist/auth/keychain.js.map +1 -1
  10. package/dist/auth/oauth.d.ts +0 -18
  11. package/dist/auth/oauth.js +6 -55
  12. package/dist/auth/oauth.js.map +1 -1
  13. package/dist/auth/sessions.d.ts +4 -5
  14. package/dist/auth/sessions.js +14 -20
  15. package/dist/auth/sessions.js.map +1 -1
  16. package/dist/auth/token-refresh.d.ts +2 -2
  17. package/dist/auth/token-refresh.js +9 -42
  18. package/dist/auth/token-refresh.js.map +1 -1
  19. package/dist/cli.js +20 -32
  20. package/dist/cli.js.map +1 -1
  21. package/dist/project-binding.d.ts +0 -6
  22. package/dist/project-binding.js +0 -21
  23. package/dist/project-binding.js.map +1 -1
  24. package/dist/server.js +6 -62
  25. package/dist/server.js.map +1 -1
  26. package/dist/tools/check-project.d.ts +4 -4
  27. package/dist/tools/check-project.js +63 -109
  28. package/dist/tools/check-project.js.map +1 -1
  29. package/dist/tools/check-repo-trust.d.ts +10 -4
  30. package/dist/tools/check-repo-trust.js +27 -56
  31. package/dist/tools/check-repo-trust.js.map +1 -1
  32. package/dist/tools/enterprise/list-agents.d.ts +1 -1
  33. package/dist/tools/enterprise/manage-finding.d.ts +1 -1
  34. package/dist/tools/get-finding-details.d.ts +10 -4
  35. package/dist/tools/get-finding-details.js +10 -28
  36. package/dist/tools/get-finding-details.js.map +1 -1
  37. package/dist/tools/get-findings.d.ts +10 -4
  38. package/dist/tools/get-findings.js +23 -44
  39. package/dist/tools/get-findings.js.map +1 -1
  40. package/dist/tools/list-applications.d.ts +1 -1
  41. package/dist/tools/list-scans.d.ts +10 -4
  42. package/dist/tools/list-scans.js +21 -55
  43. package/dist/tools/list-scans.js.map +1 -1
  44. package/dist/tools/list-test-scenarios.d.ts +10 -4
  45. package/dist/tools/list-test-scenarios.js +13 -41
  46. package/dist/tools/list-test-scenarios.js.map +1 -1
  47. package/dist/tools/local-scan.d.ts +1 -1
  48. package/dist/tools/open-in-ide.d.ts +1 -1
  49. package/dist/tools/setup-red-team-target.d.ts +12 -6
  50. package/dist/tools/setup-red-team-target.js +20 -51
  51. package/dist/tools/setup-red-team-target.js.map +1 -1
  52. package/dist/tools/triage-finding.d.ts +10 -4
  53. package/dist/tools/triage-finding.js +21 -30
  54. package/dist/tools/triage-finding.js.map +1 -1
  55. package/dist/types.d.ts +2 -42
  56. package/dist/types.js +23 -29
  57. package/dist/types.js.map +1 -1
  58. package/package.json +1 -1
  59. package/dist/lib/next-steps.d.ts +0 -57
  60. package/dist/lib/next-steps.js +0 -45
  61. package/dist/lib/next-steps.js.map +0 -1
  62. package/dist/prompts/audit-dependencies.d.ts +0 -10
  63. package/dist/prompts/audit-dependencies.js +0 -56
  64. package/dist/prompts/audit-dependencies.js.map +0 -1
  65. package/dist/prompts/getting-started.d.ts +0 -12
  66. package/dist/prompts/getting-started.js +0 -48
  67. package/dist/prompts/getting-started.js.map +0 -1
  68. package/dist/prompts/index.d.ts +0 -14
  69. package/dist/prompts/index.js +0 -25
  70. package/dist/prompts/index.js.map +0 -1
  71. package/dist/prompts/prep-for-launch.d.ts +0 -9
  72. package/dist/prompts/prep-for-launch.js +0 -62
  73. package/dist/prompts/prep-for-launch.js.map +0 -1
  74. package/dist/prompts/secure-my-app.d.ts +0 -9
  75. package/dist/prompts/secure-my-app.js +0 -70
  76. package/dist/prompts/secure-my-app.js.map +0 -1
  77. package/dist/prompts/weekly-check.d.ts +0 -9
  78. package/dist/prompts/weekly-check.js +0 -48
  79. package/dist/prompts/weekly-check.js.map +0 -1
  80. package/dist/tools/enterprise/get-campaign.d.ts +0 -27
  81. package/dist/tools/enterprise/get-campaign.js +0 -31
  82. package/dist/tools/enterprise/get-campaign.js.map +0 -1
  83. package/dist/tools/enterprise/list-attack-scenarios.d.ts +0 -29
  84. package/dist/tools/enterprise/list-attack-scenarios.js +0 -69
  85. package/dist/tools/enterprise/list-attack-scenarios.js.map +0 -1
  86. package/dist/tools/enterprise/list-attack-step-library-tests.d.ts +0 -29
  87. package/dist/tools/enterprise/list-attack-step-library-tests.js +0 -61
  88. package/dist/tools/enterprise/list-attack-step-library-tests.js.map +0 -1
  89. package/dist/tools/enterprise/list-campaigns.d.ts +0 -37
  90. package/dist/tools/enterprise/list-campaigns.js +0 -60
  91. package/dist/tools/enterprise/list-campaigns.js.map +0 -1
  92. package/dist/tools/enterprise/list-threat-model-review-items.d.ts +0 -35
  93. package/dist/tools/enterprise/list-threat-model-review-items.js +0 -60
  94. package/dist/tools/enterprise/list-threat-model-review-items.js.map +0 -1
  95. package/dist/tools/enterprise/list-threat-model-versions.d.ts +0 -29
  96. package/dist/tools/enterprise/list-threat-model-versions.js +0 -60
  97. package/dist/tools/enterprise/list-threat-model-versions.js.map +0 -1
  98. package/dist/tools/enterprise/manage-campaign-agent-instance.d.ts +0 -42
  99. package/dist/tools/enterprise/manage-campaign-agent-instance.js +0 -68
  100. package/dist/tools/enterprise/manage-campaign-agent-instance.js.map +0 -1
  101. package/dist/tools/enterprise/manage-campaign-target.d.ts +0 -44
  102. package/dist/tools/enterprise/manage-campaign-target.js +0 -70
  103. package/dist/tools/enterprise/manage-campaign-target.js.map +0 -1
  104. package/dist/tools/enterprise/manage-campaign.d.ts +0 -62
  105. package/dist/tools/enterprise/manage-campaign.js +0 -114
  106. package/dist/tools/enterprise/manage-campaign.js.map +0 -1
  107. package/dist/tools/enterprise/manage-threat-model-analysis.d.ts +0 -52
  108. package/dist/tools/enterprise/manage-threat-model-analysis.js +0 -92
  109. package/dist/tools/enterprise/manage-threat-model-analysis.js.map +0 -1
  110. package/dist/tools/enterprise/manage-threat-model-review.d.ts +0 -47
  111. package/dist/tools/enterprise/manage-threat-model-review.js +0 -82
  112. package/dist/tools/enterprise/manage-threat-model-review.js.map +0 -1
  113. package/dist/tools/get-application-auth-config.d.ts +0 -27
  114. package/dist/tools/get-application-auth-config.js +0 -44
  115. package/dist/tools/get-application-auth-config.js.map +0 -1
  116. package/dist/tools/get-started.d.ts +0 -28
  117. package/dist/tools/get-started.js +0 -364
  118. package/dist/tools/get-started.js.map +0 -1
  119. package/dist/tools/manage-application.d.ts +0 -72
  120. package/dist/tools/manage-application.js +0 -138
  121. package/dist/tools/manage-application.js.map +0 -1
  122. package/dist/tools/manage-endpoint-lifecycle.d.ts +0 -90
  123. package/dist/tools/manage-endpoint-lifecycle.js +0 -191
  124. package/dist/tools/manage-endpoint-lifecycle.js.map +0 -1
@@ -13,14 +13,6 @@ import type { ZivisConfig } from "./types.js";
13
13
  export declare class ApiClient {
14
14
  private config;
15
15
  constructor(config?: ZivisConfig);
16
- /**
17
- * Return a config with the session resolved from the project binding when
18
- * no explicit session was set at server startup. Called on every request so
19
- * that a globally-installed MCP server automatically uses the right session
20
- * for whichever workspace it's called from, without needing a per-project
21
- * `zivis mcp install`.
22
- */
23
- resolveEffectiveConfig(cwd?: string): ZivisConfig;
24
16
  /**
25
17
  * Build auth headers from current credentials
26
18
  */
@@ -10,42 +10,12 @@
10
10
  * before returning an auth error.
11
11
  */
12
12
  import { resolveAuth } from "./auth/index.js";
13
- import { detectProjectBinding } from "./project-binding.js";
14
13
  import { DEFAULT_CONFIG } from "./types.js";
15
14
  export class ApiClient {
16
15
  config;
17
16
  constructor(config = DEFAULT_CONFIG) {
18
17
  this.config = config;
19
18
  }
20
- /**
21
- * Return a config with the session resolved from the project binding when
22
- * no explicit session was set at server startup. Called on every request so
23
- * that a globally-installed MCP server automatically uses the right session
24
- * for whichever workspace it's called from, without needing a per-project
25
- * `zivis mcp install`.
26
- */
27
- resolveEffectiveConfig(cwd) {
28
- // If the server was explicitly configured with a session (via ZIVIS_SESSION env var
29
- // or constructor), trust that config entirely — the MCP server is already pointed
30
- // at the right environment via its env block in the IDE's MCP config.
31
- if (this.config.session) {
32
- return this.config;
33
- }
34
- // No explicit session — try the project binding to auto-discover the environment.
35
- // This is the CLI-without-env-vars case where the binding carries staging/prod config.
36
- const detected = detectProjectBinding(cwd ?? process.cwd());
37
- if (detected) {
38
- const { binding } = detected;
39
- return {
40
- ...this.config,
41
- session: binding.session,
42
- ...(binding.apiBaseUrl ? { apiBaseUrl: binding.apiBaseUrl } : {}),
43
- ...(binding.oauthApiUrl ? { oauthApiUrl: binding.oauthApiUrl } : {}),
44
- ...(binding.oauthClientId ? { oauthClientId: binding.oauthClientId } : {}),
45
- };
46
- }
47
- return this.config;
48
- }
49
19
  /**
50
20
  * Build auth headers from current credentials
51
21
  */
@@ -66,15 +36,14 @@ export class ApiClient {
66
36
  * On 401 with OAuth, attempts one token refresh and retries.
67
37
  */
68
38
  async request(method, path, body) {
69
- const effectiveConfig = this.resolveEffectiveConfig();
70
- const creds = await resolveAuth(effectiveConfig);
39
+ const creds = await resolveAuth(this.config);
71
40
  if (creds.method === "none") {
72
41
  throw new ApiError("Not authenticated. Run: zivis auth login", 401, "AUTH_REQUIRED");
73
42
  }
74
43
  const result = await this.doRequest(method, path, body, creds);
75
44
  // If 401 and using OAuth, try refreshing
76
45
  if (result.status === 401 && creds.method === "oauth") {
77
- const freshCreds = await resolveAuth(effectiveConfig);
46
+ const freshCreds = await resolveAuth(this.config);
78
47
  if (freshCreds.method === "oauth" &&
79
48
  freshCreds.accessToken !== creds.accessToken) {
80
49
  // Token was refreshed, retry
@@ -135,8 +104,7 @@ export class ApiClient {
135
104
  * Used for artifact content streaming where the response is not JSON.
136
105
  */
137
106
  async getText(path) {
138
- const effectiveConfig = this.resolveEffectiveConfig();
139
- const creds = await resolveAuth(effectiveConfig);
107
+ const creds = await resolveAuth(this.config);
140
108
  if (creds.method === "none") {
141
109
  throw new ApiError("Not authenticated. Run: zivis auth login", 401, "AUTH_REQUIRED");
142
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -2,18 +2,15 @@
2
2
  * Auth Orchestrator
3
3
  *
4
4
  * Resolves credentials using the defined precedence:
5
- * 1. OS Keychain — Local Project Binding Token / API key (apikey.<session>)
6
- * Minted by `zivis auth bind` org-scoped, never expires, no refresh drift.
7
- * This is the preferred credential for MCP servers and CLI agent work.
8
- * 2. ZIVIS_API_KEY env var (CI environments)
9
- * 3. OS Keychain — OAuth tokens (fallback for `zivis auth login` users)
10
- * 4. OS Keychain — default API key (no named session)
11
- * 5. Not authenticated
5
+ * 1. OS Keychain — OAuth tokens (preferred, user-scoped, auto-refresh)
6
+ * 2. OS KeychainAPI key (fallback, org-scoped)
7
+ * 3. ZIVIS_API_KEY env var (CI environments)
8
+ * 4. Not authenticated (tools return auth error with setup instructions)
12
9
  */
13
10
  import type { AuthCredentials, AuthMethod, ZivisConfig } from "../types.js";
14
11
  export { login } from "./oauth.js";
15
12
  export { keychainClearAll, keychainClearSession, getStorageName, getSessionAccount } from "./keychain.js";
16
- export { keychainStore, keychainRead, keychainDelete } from "./keychain.js";
13
+ export { keychainStore, keychainRead } from "./keychain.js";
17
14
  export { loadTokens } from "./token-refresh.js";
18
15
  export { loadSessionIndex, saveSessionEntry, removeSessionEntry, listSessions } from "./sessions.js";
19
16
  /**
@@ -2,20 +2,17 @@
2
2
  * Auth Orchestrator
3
3
  *
4
4
  * Resolves credentials using the defined precedence:
5
- * 1. OS Keychain — Local Project Binding Token / API key (apikey.<session>)
6
- * Minted by `zivis auth bind` org-scoped, never expires, no refresh drift.
7
- * This is the preferred credential for MCP servers and CLI agent work.
8
- * 2. ZIVIS_API_KEY env var (CI environments)
9
- * 3. OS Keychain — OAuth tokens (fallback for `zivis auth login` users)
10
- * 4. OS Keychain — default API key (no named session)
11
- * 5. Not authenticated
5
+ * 1. OS Keychain — OAuth tokens (preferred, user-scoped, auto-refresh)
6
+ * 2. OS KeychainAPI key (fallback, org-scoped)
7
+ * 3. ZIVIS_API_KEY env var (CI environments)
8
+ * 4. Not authenticated (tools return auth error with setup instructions)
12
9
  */
13
10
  import { keychainRead } from "./keychain.js";
14
11
  import { getValidAccessToken } from "./token-refresh.js";
15
- import { DEFAULT_CONFIG, credentialStorageFromConfig } from "../types.js";
12
+ import { DEFAULT_CONFIG } from "../types.js";
16
13
  export { login } from "./oauth.js";
17
14
  export { keychainClearAll, keychainClearSession, getStorageName, getSessionAccount } from "./keychain.js";
18
- export { keychainStore, keychainRead, keychainDelete } from "./keychain.js";
15
+ export { keychainStore, keychainRead } from "./keychain.js";
19
16
  export { loadTokens } from "./token-refresh.js";
20
17
  export { loadSessionIndex, saveSessionEntry, removeSessionEntry, listSessions } from "./sessions.js";
21
18
  /**
@@ -29,46 +26,34 @@ export { loadSessionIndex, saveSessionEntry, removeSessionEntry, listSessions }
29
26
  */
30
27
  export async function resolveAuth(config = DEFAULT_CONFIG, forceMethod) {
31
28
  const session = config.session;
32
- const st = credentialStorageFromConfig(config);
33
- // 1. Per-session keychain API key — Local Project Binding Token (preferred).
34
- // Minted by `zivis auth bind` and stored under `apikey.<session>`.
35
- // Org-scoped at the WorkOS level, never refreshes, no drift risk.
36
- // Also covers `zivis auth token sk_xxx --session <name>` for CI injection.
37
- if (forceMethod !== "oauth") {
38
- const apiKeyAccount = session ? `apikey.${session}` : null;
39
- if (apiKeyAccount) {
40
- const sessionApiKey = await keychainRead(apiKeyAccount, st);
41
- if (sessionApiKey) {
42
- return { method: "apikey", apiKey: sessionApiKey };
43
- }
44
- }
45
- }
46
- // 2. ZIVIS_API_KEY env var (CI environments — explicit, no session ambiguity).
47
- const envKey = process.env.ZIVIS_API_KEY;
48
- if (envKey) {
49
- return { method: "apikey", apiKey: envKey };
50
- }
51
- // 3. OAuth tokens (fallback for `zivis auth login` users who haven't run bind).
29
+ // 1. OAuth tokens (unless forced to apikey)
52
30
  if (forceMethod !== "apikey") {
53
31
  const accessToken = await getValidAccessToken(config);
54
32
  if (accessToken) {
55
33
  return { method: "oauth", accessToken };
56
34
  }
57
35
  }
36
+ // 2. ZIVIS_API_KEY env var — always checked, even for named sessions.
37
+ // This is an explicit user action (they set the env var in their MCP config),
38
+ // so it's safe to use regardless of session scope.
39
+ const envKey = process.env.ZIVIS_API_KEY;
40
+ if (envKey) {
41
+ return { method: "apikey", apiKey: envKey };
42
+ }
58
43
  // CROSS-TENANT SAFETY: If a named session is active, do NOT fall through
59
44
  // to default keychain credentials. This prevents accidentally using admin tokens
60
45
  // when working in a customer's project.
61
46
  if (session) {
62
47
  return { method: "none" };
63
48
  }
64
- // 4. Default API key from keychain (no named session).
49
+ // 3. API key from keychain (only for default/no-session)
65
50
  if (forceMethod !== "oauth") {
66
- const apiKey = await keychainRead("apikey", st);
51
+ const apiKey = await keychainRead("apikey");
67
52
  if (apiKey) {
68
53
  return { method: "apikey", apiKey };
69
54
  }
70
55
  }
71
- // 5. Not authenticated
56
+ // 4. Not authenticated
72
57
  return { method: "none" };
73
58
  }
74
59
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC1G,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAErG;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAAsB,cAAc,EACpC,WAAwB;IAExB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE/B,4CAA4C;IAC5C,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,8EAA8E;IAC9E,mDAAmD;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC9C,CAAC;IAED,yEAAyE;IACzE,iFAAiF;IACjF,wCAAwC;IACxC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,yDAAyD;IACzD,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAsB,cAAc;IAEpC,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,OAAO;YACV,OAAO,sBAAsB,CAAC;QAChC,KAAK,QAAQ;YACX,OAAO,YAAY,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;QACpG,KAAK,MAAM;YACT,OAAO,mBAAmB,CAAC;IAC/B,CAAC;AACH,CAAC"}
@@ -10,25 +10,24 @@
10
10
  *
11
11
  * Falls back to encrypted file if keychain CLI is unavailable.
12
12
  */
13
- import { type CredentialStorage } from "../types.js";
14
13
  /**
15
14
  * Returns the keychain account key for a given session.
16
15
  * - No session or undefined → "oauth" (backward compatible)
17
16
  * - Named session → "oauth.{session}"
18
17
  */
19
18
  export declare function getSessionAccount(session?: string): string;
20
- export declare function keychainStore(account: string, value: string, storage?: CredentialStorage): Promise<void>;
21
- export declare function keychainRead(account: string, storage?: CredentialStorage): Promise<string | null>;
22
- export declare function keychainDelete(account: string, storage?: CredentialStorage): Promise<void>;
19
+ export declare function keychainStore(account: string, value: string): Promise<void>;
20
+ export declare function keychainRead(account: string): Promise<string | null>;
21
+ export declare function keychainDelete(account: string): Promise<void>;
23
22
  /**
24
23
  * Delete credentials for a specific session
25
24
  */
26
- export declare function keychainClearSession(session?: string, storage?: CredentialStorage): Promise<void>;
25
+ export declare function keychainClearSession(session?: string): Promise<void>;
27
26
  /**
28
27
  * Delete all stored credentials (default OAuth + API key).
29
28
  * Does NOT clear named sessions — use keychainClearSession() for those.
30
29
  */
31
- export declare function keychainClearAll(storage?: CredentialStorage): Promise<void>;
30
+ export declare function keychainClearAll(): Promise<void>;
32
31
  /**
33
32
  * Returns the storage mechanism name for display purposes
34
33
  */
@@ -18,12 +18,8 @@ import * as os from "node:os";
18
18
  import * as crypto from "node:crypto";
19
19
  import { ENV_CONFIG } from "../types.js";
20
20
  const execFileAsync = promisify(execFile);
21
- function resolvedStorage(storage) {
22
- return (storage ?? {
23
- keychainPrefix: ENV_CONFIG.keychainPrefix,
24
- configDir: ENV_CONFIG.configDir,
25
- });
26
- }
21
+ // Use environment-aware prefix so staging and production credentials are isolated
22
+ const SERVICE_PREFIX = ENV_CONFIG.keychainPrefix;
27
23
  /**
28
24
  * Returns the keychain account key for a given session.
29
25
  * - No session or undefined → "oauth" (backward compatible)
@@ -32,21 +28,23 @@ function resolvedStorage(storage) {
32
28
  export function getSessionAccount(session) {
33
29
  return session ? `oauth.${session}` : "oauth";
34
30
  }
35
- function getServiceName(account, keychainPrefix) {
36
- return `${keychainPrefix}.${account}`;
31
+ function getServiceName(account) {
32
+ return `${SERVICE_PREFIX}.${account}`;
37
33
  }
38
- function getFallbackDir(configDir) {
34
+ function getFallbackDir() {
35
+ // Use environment-aware config dir so staging and production are isolated
36
+ const configDir = ENV_CONFIG.configDir;
39
37
  if (process.platform === "win32") {
40
38
  return path.join(process.env.APPDATA || os.homedir(), configDir);
41
39
  }
42
40
  return path.join(os.homedir(), ".config", configDir);
43
41
  }
44
- function getFallbackPath(account, storage) {
45
- return path.join(getFallbackDir(storage.configDir), `${account}.enc`);
42
+ function getFallbackPath(account) {
43
+ return path.join(getFallbackDir(), `${account}.enc`);
46
44
  }
47
45
  // ── macOS Keychain ──
48
- async function macosStore(account, value, keychainPrefix) {
49
- const service = getServiceName(account, keychainPrefix);
46
+ async function macosStore(account, value) {
47
+ const service = getServiceName(account);
50
48
  // Delete existing entry first (ignore errors if not found)
51
49
  try {
52
50
  await execFileAsync("security", [
@@ -70,8 +68,8 @@ async function macosStore(account, value, keychainPrefix) {
70
68
  value,
71
69
  ]);
72
70
  }
73
- async function macosRead(account, keychainPrefix) {
74
- const service = getServiceName(account, keychainPrefix);
71
+ async function macosRead(account) {
72
+ const service = getServiceName(account);
75
73
  try {
76
74
  const { stdout } = await execFileAsync("security", [
77
75
  "find-generic-password",
@@ -87,8 +85,8 @@ async function macosRead(account, keychainPrefix) {
87
85
  return null;
88
86
  }
89
87
  }
90
- async function macosDelete(account, keychainPrefix) {
91
- const service = getServiceName(account, keychainPrefix);
88
+ async function macosDelete(account) {
89
+ const service = getServiceName(account);
92
90
  try {
93
91
  await execFileAsync("security", [
94
92
  "delete-generic-password",
@@ -103,13 +101,13 @@ async function macosDelete(account, keychainPrefix) {
103
101
  }
104
102
  }
105
103
  // ── Linux Secret Service ──
106
- async function linuxStore(account, value, keychainPrefix) {
104
+ async function linuxStore(account, value) {
107
105
  const child = execFileAsync("secret-tool", [
108
106
  "store",
109
107
  "--label",
110
108
  `ZIVIS MCP ${account}`,
111
109
  "service",
112
- keychainPrefix,
110
+ SERVICE_PREFIX,
113
111
  "account",
114
112
  account,
115
113
  ]);
@@ -118,12 +116,12 @@ async function linuxStore(account, value, keychainPrefix) {
118
116
  child.child.stdin?.end();
119
117
  await child;
120
118
  }
121
- async function linuxRead(account, keychainPrefix) {
119
+ async function linuxRead(account) {
122
120
  try {
123
121
  const { stdout } = await execFileAsync("secret-tool", [
124
122
  "lookup",
125
123
  "service",
126
- keychainPrefix,
124
+ SERVICE_PREFIX,
127
125
  "account",
128
126
  account,
129
127
  ]);
@@ -133,12 +131,12 @@ async function linuxRead(account, keychainPrefix) {
133
131
  return null;
134
132
  }
135
133
  }
136
- async function linuxDelete(account, keychainPrefix) {
134
+ async function linuxDelete(account) {
137
135
  try {
138
136
  await execFileAsync("secret-tool", [
139
137
  "clear",
140
138
  "service",
141
- keychainPrefix,
139
+ SERVICE_PREFIX,
142
140
  "account",
143
141
  account,
144
142
  ]);
@@ -153,7 +151,7 @@ function deriveKey() {
153
151
  const seed = `zivis-mcp:${os.hostname()}:${os.userInfo().username}`;
154
152
  return crypto.createHash("sha256").update(seed).digest();
155
153
  }
156
- async function fileStore(account, value, storage) {
154
+ async function fileStore(account, value) {
157
155
  const key = deriveKey();
158
156
  const iv = crypto.randomBytes(16);
159
157
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -161,13 +159,13 @@ async function fileStore(account, value, storage) {
161
159
  let encrypted = cipher.update(value, "utf8", "hex");
162
160
  encrypted += cipher.final("hex");
163
161
  const data = JSON.stringify({ iv: iv.toString("hex"), data: encrypted });
164
- const dir = getFallbackDir(storage.configDir);
162
+ const dir = getFallbackDir();
165
163
  await fs.mkdir(dir, { recursive: true });
166
- await fs.writeFile(getFallbackPath(account, storage), data, { mode: 0o600 });
164
+ await fs.writeFile(getFallbackPath(account), data, { mode: 0o600 });
167
165
  }
168
- async function fileRead(account, storage) {
166
+ async function fileRead(account) {
169
167
  try {
170
- const raw = await fs.readFile(getFallbackPath(account, storage), "utf8");
168
+ const raw = await fs.readFile(getFallbackPath(account), "utf8");
171
169
  const { iv, data } = JSON.parse(raw);
172
170
  const key = deriveKey();
173
171
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -180,9 +178,9 @@ async function fileRead(account, storage) {
180
178
  return null;
181
179
  }
182
180
  }
183
- async function fileDelete(account, storage) {
181
+ async function fileDelete(account) {
184
182
  try {
185
- await fs.unlink(getFallbackPath(account, storage));
183
+ await fs.unlink(getFallbackPath(account));
186
184
  }
187
185
  catch {
188
186
  // File didn't exist
@@ -213,54 +211,51 @@ async function useKeychain() {
213
211
  return keychainAvailable;
214
212
  }
215
213
  // ── Public API ──
216
- export async function keychainStore(account, value, storage) {
217
- const st = resolvedStorage(storage);
214
+ export async function keychainStore(account, value) {
218
215
  // Always store to encrypted file as fallback (for environments where keychain CLI
219
216
  // may not be available, e.g., MCP servers spawned by IDEs with different $PATH)
220
- await fileStore(account, value, st);
217
+ await fileStore(account, value);
221
218
  // Also store to native keychain if available
222
219
  if (await useKeychain()) {
223
220
  if (process.platform === "darwin") {
224
- await macosStore(account, value, st.keychainPrefix);
221
+ await macosStore(account, value);
225
222
  }
226
223
  else if (process.platform === "linux") {
227
- await linuxStore(account, value, st.keychainPrefix);
224
+ await linuxStore(account, value);
228
225
  }
229
226
  }
230
227
  }
231
- export async function keychainRead(account, storage) {
232
- const st = resolvedStorage(storage);
228
+ export async function keychainRead(account) {
233
229
  if (await useKeychain()) {
234
230
  if (process.platform === "darwin")
235
- return macosRead(account, st.keychainPrefix);
231
+ return macosRead(account);
236
232
  if (process.platform === "linux")
237
- return linuxRead(account, st.keychainPrefix);
233
+ return linuxRead(account);
238
234
  }
239
- return fileRead(account, st);
235
+ return fileRead(account);
240
236
  }
241
- export async function keychainDelete(account, storage) {
242
- const st = resolvedStorage(storage);
237
+ export async function keychainDelete(account) {
243
238
  if (await useKeychain()) {
244
239
  if (process.platform === "darwin")
245
- return macosDelete(account, st.keychainPrefix);
240
+ return macosDelete(account);
246
241
  if (process.platform === "linux")
247
- return linuxDelete(account, st.keychainPrefix);
242
+ return linuxDelete(account);
248
243
  }
249
- return fileDelete(account, st);
244
+ return fileDelete(account);
250
245
  }
251
246
  /**
252
247
  * Delete credentials for a specific session
253
248
  */
254
- export async function keychainClearSession(session, storage) {
255
- await keychainDelete(getSessionAccount(session), storage);
249
+ export async function keychainClearSession(session) {
250
+ await keychainDelete(getSessionAccount(session));
256
251
  }
257
252
  /**
258
253
  * Delete all stored credentials (default OAuth + API key).
259
254
  * Does NOT clear named sessions — use keychainClearSession() for those.
260
255
  */
261
- export async function keychainClearAll(storage) {
262
- await keychainDelete("oauth", storage);
263
- await keychainDelete("apikey", storage);
256
+ export async function keychainClearAll() {
257
+ await keychainDelete("oauth");
258
+ await keychainDelete("apikey");
264
259
  }
265
260
  /**
266
261
  * Returns the storage mechanism name for display purposes
@@ -1 +1 @@
1
- {"version":3,"file":"keychain.js","sourceRoot":"","sources":["../../src/auth/keychain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keychain.js","sourceRoot":"","sources":["../../src/auth/keychain.ts"],"names":[],"mappings":"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"}
@@ -32,25 +32,7 @@ import type { OAuthTokens, ZivisConfig } from "../types.js";
32
32
  export interface LoginOptions {
33
33
  /** Human-readable org name, shown in the pre-browser confirmation prompt. */
34
34
  orgName?: string;
35
- /**
36
- * Optional human-readable session label for prompts.
37
- * Useful when callers use an internal storage session name (e.g. temporary bind sessions)
38
- * but want to display a cleaner label to users.
39
- */
40
- sessionLabel?: string;
41
35
  /** Skip the pre-browser confirmation prompt (for scripted/interactive-wizard callers). */
42
36
  skipConfirm?: boolean;
43
- /**
44
- * Instead of auto-opening the browser, print the auth URL and wait for the user
45
- * to paste it into a private/incognito window manually. Useful when the browser
46
- * already has a session for a different org that would override the requested org.
47
- */
48
- printUrlOnly?: boolean;
49
- /**
50
- * Try to open the auth URL in a private/incognito browser window.
51
- * Attempts Chrome (--incognito) then Firefox (-private-window) then falls back
52
- * to printing the URL for manual paste.
53
- */
54
- incognito?: boolean;
55
37
  }
56
38
  export declare function login(config?: ZivisConfig, session?: string, organizationId?: string, opts?: LoginOptions): Promise<OAuthTokens>;