@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
@@ -19,7 +19,7 @@ import { URL } from "node:url";
19
19
  import open from "open";
20
20
  import { keychainStore, getSessionAccount } from "./keychain.js";
21
21
  import { decodeJwtPayload } from "./jwt.js";
22
- import { DEFAULT_CONFIG, credentialStorageFromConfig } from "../types.js";
22
+ import { DEFAULT_CONFIG } from "../types.js";
23
23
  const LOGIN_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
24
24
  function generatePKCE() {
25
25
  const verifier = crypto.randomBytes(32).toString("base64url");
@@ -169,18 +169,6 @@ async function exchangeCodeForTokens(config, code, codeVerifier) {
169
169
  throw new Error(errorMsg);
170
170
  }
171
171
  const data = (await response.json());
172
- if (!data.refresh_token) {
173
- // This means WorkOS isn't issuing refresh tokens for this client.
174
- // Most likely cause: the OAuth client in the WorkOS dashboard doesn't have
175
- // "Refresh Tokens" enabled, or offline_access scope was rejected.
176
- // Without a refresh token the user will be logged out after every access token expiry.
177
- console.error("[zivis] WARNING: WorkOS did not return a refresh_token. " +
178
- "Verify the OAuth client has Refresh Tokens / offline_access enabled in the WorkOS dashboard. " +
179
- "Without this, sessions will expire and require manual re-login.");
180
- }
181
- else {
182
- console.error("[zivis] Token exchange complete — refresh_token received, session will auto-renew.");
183
- }
184
172
  return {
185
173
  access_token: data.access_token,
186
174
  refresh_token: data.refresh_token,
@@ -201,8 +189,7 @@ export async function login(config = DEFAULT_CONFIG, session, organizationId, op
201
189
  const orgLabel = opts.orgName
202
190
  ? `${opts.orgName} (${organizationId})`
203
191
  : organizationId;
204
- const displaySession = opts.sessionLabel ?? session;
205
- const sessionLabel = displaySession ? ` as session "${displaySession}"` : "";
192
+ const sessionLabel = session ? ` as session "${session}"` : "";
206
193
  console.error("");
207
194
  console.error(`[zivis] About to authenticate to org: ${orgLabel}${sessionLabel}`);
208
195
  const rl = readline.createInterface({
@@ -224,45 +211,9 @@ export async function login(config = DEFAULT_CONFIG, session, organizationId, op
224
211
  }
225
212
  // Start callback server before opening browser
226
213
  const codePromise = startCallbackServer(config.callbackPort, state);
227
- if (opts.printUrlOnly) {
228
- console.error("[zivis] Open this URL in a private/incognito browser window:");
229
- console.error("");
230
- console.error(` ${authUrl}`);
231
- console.error("");
232
- console.error("[zivis] Waiting for login...");
233
- }
234
- else if (opts.incognito) {
235
- let opened = false;
236
- // Try Chrome incognito, then Firefox private, then fall back to printing URL
237
- for (const app of [
238
- { name: "google chrome", args: ["--incognito"] },
239
- { name: "chromium", args: ["--incognito"] },
240
- { name: "firefox", args: ["-private-window"] },
241
- ]) {
242
- try {
243
- await open(authUrl, { app: { name: app.name, arguments: [authUrl, ...app.args] } });
244
- console.error(`[zivis] Opened private window in ${app.name} — waiting for login...`);
245
- opened = true;
246
- break;
247
- }
248
- catch {
249
- // browser not found, try next
250
- }
251
- }
252
- if (!opened) {
253
- console.error("[zivis] Could not open an incognito window automatically.");
254
- console.error("[zivis] Paste this URL into a private/incognito browser window:");
255
- console.error("");
256
- console.error(` ${authUrl}`);
257
- console.error("");
258
- console.error("[zivis] Waiting for login...");
259
- }
260
- }
261
- else {
262
- console.error("[zivis] Opening browser for authentication...");
263
- await open(authUrl);
264
- console.error("[zivis] Waiting for login...");
265
- }
214
+ console.error("[zivis] Opening browser for authentication...");
215
+ await open(authUrl);
216
+ console.error("[zivis] Waiting for login...");
266
217
  // Wait for the authorization code
267
218
  const code = await codePromise;
268
219
  // Exchange code for tokens
@@ -284,7 +235,7 @@ export async function login(config = DEFAULT_CONFIG, session, organizationId, op
284
235
  console.error(`[zivis] \u2713 JWT org_id verified: ${jwtOrgId}`);
285
236
  }
286
237
  // Store in keychain (session-qualified key for multi-tenant isolation)
287
- await keychainStore(getSessionAccount(session), JSON.stringify(tokens), credentialStorageFromConfig(config));
238
+ await keychainStore(getSessionAccount(session), JSON.stringify(tokens));
288
239
  return tokens;
289
240
  }
290
241
  //# sourceMappingURL=oauth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE1E,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;AAOpD,SAAS,YAAY;IACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,MAAM;SACrB,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC,QAAQ,CAAC;SAChB,MAAM,CAAC,WAAW,CAAC,CAAC;IACvB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,YAAY,CACnB,MAAmB,EACnB,aAAqB,EACrB,KAAa,EACb,cAAuB;IAEvB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,aAAa,EAAE,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,aAAa;QAC/B,YAAY,EAAE,oBAAoB,MAAM,CAAC,YAAY,WAAW;QAChE,cAAc,EAAE,aAAa;QAC7B,qBAAqB,EAAE,MAAM;QAC7B,KAAK;QACL,KAAK,EAAE,qCAAqC;KAC7C,CAAC,CAAC;IAEH,8EAA8E;IAC9E,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;IAChD,CAAC;IAED,oEAAoE;IACpE,uFAAuF;IACvF,0EAA0E;IAC1E,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE9B,2GAA2G;IAC3G,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,YAAY,CAAC;IAChE,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,WAAW,GAAG,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;IAExE,yEAAyE;IACzE,0EAA0E;IAC1E,4EAA4E;IAC5E,gEAAgE;IAChE,gDAAgD;IAChD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAC1B,IAAY,EACZ,aAAqB;IAErB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAC;YAEtE,IAAI,SAAS,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAChD,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClD,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClD,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBAElE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;gBAEpD,IAAI,KAAK,EAAE,CAAC;oBACV,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC;oBACjD,MAAM,CAAC,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC;oBACtC,OAAO;gBACT,CAAC;gBAED,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;oBAC5B,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,uCAAuC,CAAC,CAAC,CAAC;oBACtE,MAAM,CAAC,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,gCAAgC,CAAC,CAAC,CAAC;oBAC/D,MAAM,CAAC,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;oBAC3C,OAAO;gBACT,CAAC;gBAED,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,yBAAyB;gBACzB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;gBACpD,GAAG,CAAC,GAAG,CAAC;;;;;2CAK2B,SAAS,CAAC,QAAQ;;QAErD,CAAC,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,MAAM,CACJ,IAAI,KAAK,CAAC,2CAA2C,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAC7E,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEjC,UAAU;QACV,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;QAChE,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,OAAgB,EAAE,YAAqB;IAC3D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO;;;;;;;;QAQH,CAAC;IACP,CAAC;IACD,OAAO;;;;;OAKF,YAAY,IAAI,eAAe;;;QAG9B,CAAC;AACT,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,qBAAqB,CAClC,MAAmB,EACnB,IAAY,EACZ,YAAoB;IAEpB,yGAAyG;IACzG,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;IAChG,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,WAAW,GAAG,SAAS,EAAE,CAAC;IAErD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACrC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,UAAU,EAAE,oBAAoB;YAChC,SAAS,EAAE,MAAM,CAAC,aAAa;YAC/B,IAAI;YACJ,aAAa,EAAE,YAAY;YAC3B,YAAY,EAAE,oBAAoB,MAAM,CAAC,YAAY,WAAW;SACjE,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAGrD,CAAC;QACF,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,KAAK,IAAI,uBAAuB,CAAC;QACnF,OAAO,CAAC,KAAK,CAAC,iCAAiC,QAAQ,CAAC,MAAM,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9E,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAKlC,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACxB,kEAAkE;QAClE,2EAA2E;QAC3E,kEAAkE;QAClE,uFAAuF;QACvF,OAAO,CAAC,KAAK,CACX,0DAA0D;YAC1D,+FAA+F;YAC/F,iEAAiE,CAClE,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;IACtG,CAAC;IAED,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI;QAC/C,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;AACJ,CAAC;AA2CD,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,SAAsB,cAAc,EACpC,OAAgB,EAChB,cAAuB,EACvB,OAAqB,EAAE;IAEvB,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAE9B,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IAEvE,wFAAwF;IACxF,wFAAwF;IACxF,IAAI,cAAc,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACvF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO;YAC3B,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,KAAK,cAAc,GAAG;YACvC,CAAC,CAAC,cAAc,CAAC;QACnB,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC;QACpD,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,gBAAgB,cAAc,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,yCAAyC,QAAQ,GAAG,YAAY,EAAE,CAAC,CAAC;QAClF,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACpF,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;SAAM,IAAI,cAAc,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,yCAAyC,cAAc,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,+CAA+C;IAC/C,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAEpE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAC9E,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1B,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,6EAA6E;QAC7E,KAAK,MAAM,GAAG,IAAI;YAChB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE;YAChD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE;YAC3C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,iBAAiB,CAAC,EAAE;SAC/C,EAAE,CAAC;YACF,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpF,OAAO,CAAC,KAAK,CAAC,oCAAoC,GAAG,CAAC,IAAI,yBAAyB,CAAC,CAAC;gBACrF,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM;YACR,CAAC;YAAC,MAAM,CAAC;gBACP,8BAA8B;YAChC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC3E,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACjF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/D,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAChD,CAAC;IAED,kCAAkC;IAClC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;IAE/B,2BAA2B;IAC3B,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEnE,sEAAsE;IACtE,0EAA0E;IAC1E,kEAAkE;IAClE,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,EAAE,MAAM,CAAC;QAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,2DAA2D;gBAC3D,iDAAiD,CAClD,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,+BAA+B,cAAc,cAAc,QAAQ,IAAI;gBACvE,gCAAgC,CACjC,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,uEAAuE;IACvE,MAAM,aAAa,CACjB,iBAAiB,CAAC,OAAO,CAAC,EAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EACtB,2BAA2B,CAAC,MAAM,CAAC,CACpC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"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"}
@@ -7,23 +7,22 @@
7
7
  * Session index file: ~/.config/{configDir}/sessions.json
8
8
  */
9
9
  import type { SessionIndex, SessionInfo } from "../types.js";
10
- import { type CredentialStorage } from "../types.js";
11
10
  /**
12
11
  * Load the session index from disk.
13
12
  * Returns an empty object if the file doesn't exist.
14
13
  */
15
- export declare function loadSessionIndex(storage?: CredentialStorage): Promise<SessionIndex>;
14
+ export declare function loadSessionIndex(): Promise<SessionIndex>;
16
15
  /**
17
16
  * Add or update a session entry in the index.
18
17
  */
19
- export declare function saveSessionEntry(name: string, email: string, storage?: CredentialStorage): Promise<void>;
18
+ export declare function saveSessionEntry(name: string, email: string): Promise<void>;
20
19
  /**
21
20
  * Remove a session entry from the index.
22
21
  */
23
- export declare function removeSessionEntry(name: string, storage?: CredentialStorage): Promise<void>;
22
+ export declare function removeSessionEntry(name: string): Promise<void>;
24
23
  /**
25
24
  * List all sessions with their metadata.
26
25
  */
27
- export declare function listSessions(storage?: CredentialStorage): Promise<Array<{
26
+ export declare function listSessions(): Promise<Array<{
28
27
  name: string;
29
28
  } & SessionInfo>>;
@@ -10,14 +10,8 @@ import * as fs from "node:fs/promises";
10
10
  import * as path from "node:path";
11
11
  import * as os from "node:os";
12
12
  import { ENV_CONFIG } from "../types.js";
13
- function resolveSessionStorage(storage) {
14
- return (storage ?? {
15
- keychainPrefix: ENV_CONFIG.keychainPrefix,
16
- configDir: ENV_CONFIG.configDir,
17
- });
18
- }
19
- function getSessionIndexPath(storage) {
20
- const { configDir } = resolveSessionStorage(storage);
13
+ function getSessionIndexPath() {
14
+ const configDir = ENV_CONFIG.configDir;
21
15
  const base = process.platform === "win32"
22
16
  ? process.env.APPDATA || os.homedir()
23
17
  : path.join(os.homedir(), ".config");
@@ -27,9 +21,9 @@ function getSessionIndexPath(storage) {
27
21
  * Load the session index from disk.
28
22
  * Returns an empty object if the file doesn't exist.
29
23
  */
30
- export async function loadSessionIndex(storage) {
24
+ export async function loadSessionIndex() {
31
25
  try {
32
- const raw = await fs.readFile(getSessionIndexPath(storage), "utf8");
26
+ const raw = await fs.readFile(getSessionIndexPath(), "utf8");
33
27
  return JSON.parse(raw);
34
28
  }
35
29
  catch {
@@ -39,8 +33,8 @@ export async function loadSessionIndex(storage) {
39
33
  /**
40
34
  * Save the full session index to disk.
41
35
  */
42
- async function saveSessionIndex(index, storage) {
43
- const filePath = getSessionIndexPath(storage);
36
+ async function saveSessionIndex(index) {
37
+ const filePath = getSessionIndexPath();
44
38
  await fs.mkdir(path.dirname(filePath), { recursive: true });
45
39
  await fs.writeFile(filePath, JSON.stringify(index, null, 2) + "\n", {
46
40
  mode: 0o600,
@@ -49,27 +43,27 @@ async function saveSessionIndex(index, storage) {
49
43
  /**
50
44
  * Add or update a session entry in the index.
51
45
  */
52
- export async function saveSessionEntry(name, email, storage) {
53
- const index = await loadSessionIndex(storage);
46
+ export async function saveSessionEntry(name, email) {
47
+ const index = await loadSessionIndex();
54
48
  index[name] = {
55
49
  email,
56
50
  createdAt: index[name]?.createdAt || new Date().toISOString(),
57
51
  };
58
- await saveSessionIndex(index, storage);
52
+ await saveSessionIndex(index);
59
53
  }
60
54
  /**
61
55
  * Remove a session entry from the index.
62
56
  */
63
- export async function removeSessionEntry(name, storage) {
64
- const index = await loadSessionIndex(storage);
57
+ export async function removeSessionEntry(name) {
58
+ const index = await loadSessionIndex();
65
59
  delete index[name];
66
- await saveSessionIndex(index, storage);
60
+ await saveSessionIndex(index);
67
61
  }
68
62
  /**
69
63
  * List all sessions with their metadata.
70
64
  */
71
- export async function listSessions(storage) {
72
- const index = await loadSessionIndex(storage);
65
+ export async function listSessions() {
66
+ const index = await loadSessionIndex();
73
67
  return Object.entries(index).map(([name, info]) => ({ name, ...info }));
74
68
  }
75
69
  //# sourceMappingURL=sessions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/auth/sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/auth/sessions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,SAAS,mBAAmB;IAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACvC,MAAM,IAAI,GACR,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC1B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE;QACrC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,EAAE,EAAE,MAAM,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAAC,KAAmB;IACjD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;QAClE,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAY,EACZ,KAAa;IAEb,MAAM,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,GAAG;QACZ,KAAK;QACL,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAC9D,CAAC;IACF,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACnD,MAAM,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACvC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAGhC,MAAM,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACvC,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC"}
@@ -5,12 +5,12 @@
5
5
  * refresh token. Checks expiry with a 5-minute buffer to avoid
6
6
  * mid-request expirations.
7
7
  */
8
- import type { OAuthTokens, ZivisConfig, CredentialStorage } from "../types.js";
8
+ import type { OAuthTokens, ZivisConfig } from "../types.js";
9
9
  /**
10
10
  * Load OAuth tokens from keychain
11
11
  * @param session - Optional named session for multi-tenant isolation
12
12
  */
13
- export declare function loadTokens(session?: string, storage?: CredentialStorage): Promise<OAuthTokens | null>;
13
+ export declare function loadTokens(session?: string): Promise<OAuthTokens | null>;
14
14
  /**
15
15
  * Check if the access token is still valid (with 5-min buffer)
16
16
  */
@@ -6,14 +6,14 @@
6
6
  * mid-request expirations.
7
7
  */
8
8
  import { keychainRead, keychainStore, keychainDelete, getSessionAccount } from "./keychain.js";
9
- import { DEFAULT_CONFIG, credentialStorageFromConfig } from "../types.js";
10
- const EXPIRY_BUFFER_MS = 30 * 1000; // 30 seconds
9
+ import { DEFAULT_CONFIG } from "../types.js";
10
+ const EXPIRY_BUFFER_MS = 5 * 60 * 1000; // 5 minutes
11
11
  /**
12
12
  * Load OAuth tokens from keychain
13
13
  * @param session - Optional named session for multi-tenant isolation
14
14
  */
15
- export async function loadTokens(session, storage) {
16
- const raw = await keychainRead(getSessionAccount(session), storage);
15
+ export async function loadTokens(session) {
16
+ const raw = await keychainRead(getSessionAccount(session));
17
17
  if (!raw)
18
18
  return null;
19
19
  try {
@@ -29,16 +29,6 @@ export async function loadTokens(session, storage) {
29
29
  export function isTokenValid(tokens) {
30
30
  return tokens.expires_at > Date.now() + EXPIRY_BUFFER_MS;
31
31
  }
32
- /**
33
- * Errors that indicate the refresh token itself is permanently invalid.
34
- * On these we should clear stored credentials and force re-login.
35
- * Anything else (network error, server error) is transient — keep credentials.
36
- */
37
- const FATAL_REFRESH_ERRORS = new Set([
38
- "invalid_grant", // refresh token expired or revoked
39
- "invalid_client", // client ID mismatch
40
- "unauthorized_client", // client not allowed to use refresh tokens
41
- ]);
42
32
  /**
43
33
  * Refresh the access token using the refresh token
44
34
  */
@@ -57,12 +47,7 @@ async function refreshAccessToken(refreshToken, config) {
57
47
  });
58
48
  if (!response.ok) {
59
49
  const error = (await response.json().catch(() => ({})));
60
- const errorCode = error.error || "";
61
- const errorMsg = error.error_description || errorCode || "Token refresh failed";
62
- // Attach the OAuth error code so the caller can decide whether to clear credentials
63
- const err = new Error(errorMsg);
64
- err.oauthErrorCode = errorCode;
65
- throw err;
50
+ throw new Error(error.error_description || error.error || "Token refresh failed");
66
51
  }
67
52
  const data = (await response.json());
68
53
  return {
@@ -82,43 +67,25 @@ async function refreshAccessToken(refreshToken, config) {
82
67
  export async function getValidAccessToken(config = DEFAULT_CONFIG) {
83
68
  const session = config.session;
84
69
  const account = getSessionAccount(session);
85
- const st = credentialStorageFromConfig(config);
86
- const tokens = await loadTokens(session, st);
70
+ const tokens = await loadTokens(session);
87
71
  if (!tokens) {
88
72
  return null;
89
73
  }
90
74
  if (isTokenValid(tokens)) {
91
75
  return tokens.access_token;
92
76
  }
93
- const expiresInSec = Math.round((tokens.expires_at - Date.now()) / 1000);
94
77
  if (tokens.refresh_token) {
95
- console.error(`[zivis] Access token expiring in ${expiresInSec}s — refreshing silently...`);
96
78
  try {
97
79
  const newTokens = await refreshAccessToken(tokens.refresh_token, config);
98
- await keychainStore(account, JSON.stringify(newTokens), st);
99
- const newExpiresInMin = Math.round((newTokens.expires_at - Date.now()) / 1000 / 60);
100
- console.error(`[zivis] Token refreshed successfully — new token valid for ~${newExpiresInMin}m`);
80
+ await keychainStore(account, JSON.stringify(newTokens));
101
81
  return newTokens.access_token;
102
82
  }
103
83
  catch (err) {
104
- const oauthCode = err.oauthErrorCode;
105
- const isFatal = oauthCode && FATAL_REFRESH_ERRORS.has(oauthCode);
106
- console.error(`[zivis] Token refresh failed (${oauthCode ?? "network/server error"}):`, err instanceof Error ? err.message : err);
107
- if (isFatal) {
108
- // Refresh token is permanently invalid — clear credentials so the user
109
- // gets a clear "please re-login" message rather than silent failures.
110
- console.error("[zivis] Refresh token revoked or expired — clearing stored credentials. Run: zivis auth login");
111
- await keychainDelete(account, st);
112
- }
113
- else {
114
- // Transient failure (network, 5xx, timeout) — keep credentials so the
115
- // next request can retry. Don't log the user out over a bad network.
116
- console.error("[zivis] Transient refresh error — keeping stored credentials, will retry on next request.");
117
- }
84
+ console.error("[zivis] Token refresh failed:", err instanceof Error ? err.message : err);
85
+ await keychainDelete(account);
118
86
  return null;
119
87
  }
120
88
  }
121
- console.error(`[zivis] Access token expired ${Math.abs(expiresInSec)}s ago and no refresh token stored — re-login required`);
122
89
  return null;
123
90
  }
124
91
  //# sourceMappingURL=token-refresh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-refresh.js","sourceRoot":"","sources":["../../src/auth/token-refresh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-refresh.js","sourceRoot":"","sources":["../../src/auth/token-refresh.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -13,9 +13,9 @@ import { login, keychainClearAll, keychainClearSession, getStorageName, keychain
13
13
  import { resolveAuth } from "./auth/index.js";
14
14
  import { decodeJwtPayload } from "./auth/jwt.js";
15
15
  import { getValidAccessToken } from "./auth/token-refresh.js";
16
- import { detectProjectBinding, resolveConfigFromBinding } from "./project-binding.js";
16
+ import { detectProjectBinding } from "./project-binding.js";
17
17
  import { startServer } from "./server.js";
18
- import { DEFAULT_CONFIG, credentialStorageFromConfig } from "./types.js";
18
+ import { DEFAULT_CONFIG } from "./types.js";
19
19
  import * as readline from "node:readline/promises";
20
20
  import * as fs from "node:fs";
21
21
  import * as path from "node:path";
@@ -62,29 +62,23 @@ export function parseArgs(argv) {
62
62
  * Run the appropriate CLI command
63
63
  */
64
64
  export async function runCli(command, options, config = DEFAULT_CONFIG) {
65
- const cwdResolved = resolveConfigFromBinding(process.cwd());
66
- const merged = {
67
- ...DEFAULT_CONFIG,
68
- ...cwdResolved,
69
- ...config,
70
- };
71
65
  switch (command) {
72
66
  case "login":
73
- return handleLogin(options, merged);
67
+ return handleLogin(options, config);
74
68
  case "configure":
75
- return handleConfigure(options, merged);
69
+ return handleConfigure(options, config);
76
70
  case "status":
77
- return handleStatus(options, merged);
71
+ return handleStatus(options, config);
78
72
  case "logout":
79
73
  return handleLogout(options);
80
74
  case "sessions":
81
75
  return handleSessions(options);
82
76
  case "init":
83
- return handleInit(options, merged);
77
+ return handleInit(options, config);
84
78
  case "setup-ide":
85
79
  return handleSetupIde(options);
86
80
  case "serve":
87
- return handleServe(merged);
81
+ return handleServe(config);
88
82
  case "help":
89
83
  case "--help":
90
84
  case "-h":
@@ -140,7 +134,7 @@ async function handleLogin(options, config) {
140
134
  const email = extractEmail(tokens.id_token);
141
135
  // Update session index
142
136
  const sessionName = session || "default";
143
- await saveSessionEntry(sessionName, email, credentialStorageFromConfig(config));
137
+ await saveSessionEntry(sessionName, email);
144
138
  const sessionLabel = session ? ` (session: ${session})` : "";
145
139
  console.log(`\u2713 Logged in as ${email}${sessionLabel}`);
146
140
  console.log(`\u2713 Credentials stored in ${storageName}`);
@@ -180,7 +174,7 @@ async function handleLogin(options, config) {
180
174
  process.exit(1);
181
175
  }
182
176
  }
183
- async function handleConfigure(options, config) {
177
+ async function handleConfigure(options, _config) {
184
178
  let apiKey = options["api-key"];
185
179
  if (!apiKey) {
186
180
  // Interactive mode — read from stdin
@@ -197,7 +191,7 @@ async function handleConfigure(options, config) {
197
191
  apiKey = apiKey.trim();
198
192
  }
199
193
  try {
200
- await keychainStore("apikey", apiKey, credentialStorageFromConfig(config));
194
+ await keychainStore("apikey", apiKey);
201
195
  const storageName = getStorageName();
202
196
  const masked = apiKey.startsWith("sk_")
203
197
  ? `sk_...${apiKey.slice(-4)}`
@@ -262,32 +256,28 @@ async function handleStatus(options, config) {
262
256
  console.log(`API: ${resolveConfig.apiBaseUrl}`);
263
257
  }
264
258
  async function handleLogout(options) {
265
- const config = resolveConfigFromBinding(process.cwd());
266
- const st = credentialStorageFromConfig(config);
267
259
  const session = options["session"];
268
260
  if (session) {
269
- await keychainClearSession(session, st);
270
- await removeSessionEntry(session, st);
261
+ await keychainClearSession(session);
262
+ await removeSessionEntry(session);
271
263
  console.log(`\u2713 Session "${session}" credentials cleared`);
272
264
  }
273
265
  else {
274
- await keychainClearAll(st);
266
+ await keychainClearAll();
275
267
  console.log("\u2713 Default credentials cleared");
276
268
  console.log(" Note: Named sessions are not affected. Use 'zivis auth sessions' to list them.");
277
269
  }
278
270
  }
279
271
  async function handleSessions(options) {
280
- const config = resolveConfigFromBinding(process.cwd());
281
- const st = credentialStorageFromConfig(config);
282
272
  // Sub-command: zivis auth sessions remove <name>
283
273
  const subCommand = options["remove"] || options["delete"];
284
274
  if (subCommand) {
285
- await keychainClearSession(subCommand, st);
286
- await removeSessionEntry(subCommand, st);
275
+ await keychainClearSession(subCommand);
276
+ await removeSessionEntry(subCommand);
287
277
  console.log(`\u2713 Session "${subCommand}" removed`);
288
278
  return;
289
279
  }
290
- const sessions = await listSessions(st);
280
+ const sessions = await listSessions();
291
281
  const activeSession = process.env.ZIVIS_SESSION;
292
282
  if (sessions.length === 0) {
293
283
  console.log("No sessions stored.");
@@ -501,7 +491,7 @@ async function handleInit(options, config) {
501
491
  const tokens = await login(config);
502
492
  accessToken = tokens.access_token;
503
493
  const email = extractEmail(tokens.id_token);
504
- await saveSessionEntry("default", email, credentialStorageFromConfig(config));
494
+ await saveSessionEntry("default", email);
505
495
  console.log(` \u2713 Logged in as ${email}`);
506
496
  console.log("");
507
497
  }
@@ -562,7 +552,7 @@ async function handleInit(options, config) {
562
552
  });
563
553
  tokenForApi = tokens.access_token;
564
554
  const email = extractEmail(tokens.id_token);
565
- await saveSessionEntry(session, email, credentialStorageFromConfig(config));
555
+ await saveSessionEntry(session, email);
566
556
  console.log(` \u2713 Logged in as ${email} (org: ${selectedOrg.name})`);
567
557
  console.log(` \u2713 JWT scoped to organization: ${selectedOrg.workosOrgId}`);
568
558
  console.log("");
@@ -961,11 +951,9 @@ SETUP IDE OPTIONS
961
951
  ENVIRONMENT VARIABLES
962
952
  ZIVIS_SESSION Named session for multi-tenant isolation
963
953
  ZIVIS_API_KEY API key (fallback when keychain is unavailable)
964
- ZIVIS_API_URL API base URL (default: https://app.zivis.ai)
954
+ ZIVIS_API_URL API base URL (default: https://api.zivis.ai)
965
955
  ZIVIS_OAUTH_CLIENT_ID OAuth client ID (optional, overrides default)
966
- ZIVIS_OAUTH_API_URL OAuth API URL (default: https://api.workos.com)
967
- ZIVIS_KEYCHAIN_PREFIX Keychain namespace override (optional)
968
- ZIVIS_CONFIG_DIR Local config dir override under ~/.config (optional)
956
+ ZIVIS_OAUTH_API_URL OAuth API URL (default: https://auth.workos.com)
969
957
  `);
970
958
  }
971
959
  function handleVersion() {