@oml/cli 0.14.2 → 0.14.4

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.
@@ -5,14 +5,14 @@ export type OmlCliServerAuthSnapshot = {
5
5
  expiresAtMs?: number;
6
6
  };
7
7
  export declare class OmlCliAuthService {
8
- login(options: LoginOptions): Promise<void>;
8
+ login(_options: LoginOptions): Promise<void>;
9
9
  logout(): Promise<void>;
10
10
  whoami(): Promise<void>;
11
11
  ensureAuthenticated(operationName: string): Promise<void>;
12
12
  getAccessToken(): Promise<string>;
13
13
  refreshAccessToken(): Promise<string>;
14
14
  getServerAuthSnapshot(): Promise<OmlCliServerAuthSnapshot>;
15
- storeRefreshedTokens(accessToken: string, refreshToken: string, expiresAtMs: number): Promise<void>;
16
- private authenticate;
15
+ private tryGetValidSnapshot;
16
+ private refreshCredential;
17
17
  }
18
18
  export {};
package/out/auth/auth.js CHANGED
@@ -12,119 +12,213 @@ const DEFAULT_GITHUB_CLIENT_ID = 'Ov23liQkHYczdOAvHp5P';
12
12
  const API_BASE_URL_ENV = 'OML_PLATFORM_API_URL';
13
13
  const SUPABASE_URL_ENV = 'OML_SUPABASE_URL';
14
14
  const SUPABASE_ANON_KEY_ENV = 'OML_SUPABASE_ANON_KEY';
15
+ const API_KEY_ENV = 'OML_PLATFORM_API_KEY';
16
+ const KEYCHAIN_SERVICE = 'oml-code';
17
+ const ACCESS_TOKEN_KEY = 'oml.cli.access_token';
18
+ const REFRESH_TOKEN_KEY = 'oml.cli.refresh_token';
19
+ const EXPIRES_AT_KEY = 'oml.cli.expires_at';
20
+ const PROFILE_PATH = path.join(os.homedir(), '.oml', 'cli-profile.json');
21
+ const LOCK_PATH = path.join(os.homedir(), '.oml', 'credentials.lock');
22
+ const SESSION_EXPIRATION_LEEWAY_MS = 20000;
23
+ const LOCK_TIMEOUT_MS = 5000;
24
+ const LOCK_POLL_INTERVAL_MS = 200;
25
+ let keytarModulePromise;
15
26
  export class OmlCliAuthService {
16
- async login(options) {
17
- const session = await this.authenticate();
18
- await writeSession(session, true);
27
+ async login(_options) {
28
+ const apiKey = process.env[API_KEY_ENV]?.trim();
29
+ if (apiKey) {
30
+ console.error(chalk.yellow('OML_PLATFORM_API_KEY is set and will take precedence over stored OAuth credentials. ' +
31
+ 'Unset it to use interactive CLI login.'));
32
+ console.error('Run `oml whoami` to inspect the currently effective authentication mode.');
33
+ return;
34
+ }
35
+ const existing = await this.tryGetValidSnapshot();
36
+ if (existing) {
37
+ const profile = await readProfile();
38
+ console.error(chalk.green(`Already signed in as ${profile?.userLabel ?? profile?.email ?? profile?.userId ?? 'current user'}.`));
39
+ return;
40
+ }
41
+ const session = await authenticateWithGitHub();
42
+ await writeCredential({
43
+ accessToken: session.accessToken,
44
+ refreshToken: session.refreshToken,
45
+ expiresAtMs: session.expiresAtMs,
46
+ });
47
+ await writeProfile({
48
+ provider: session.provider,
49
+ userId: session.userId,
50
+ userLabel: session.userLabel,
51
+ email: session.email,
52
+ tier: session.tier,
53
+ signedInAt: new Date().toISOString(),
54
+ });
19
55
  const summary = session.userLabel ?? session.email ?? 'signed-in user';
20
56
  console.error(chalk.green(`Signed in as ${summary} via ${session.provider}.`));
21
57
  }
22
58
  async logout() {
23
- await deleteSession();
24
- console.error(chalk.green('Signed out.'));
59
+ const activeServers = await listActiveServers();
60
+ await deleteCredential();
61
+ await deleteProfile();
62
+ if (activeServers.length > 0) {
63
+ console.error(chalk.yellow('Stored OAuth credentials were cleared. Running servers were not stopped:'));
64
+ for (const server of activeServers) {
65
+ console.error(`- ${server.workspaceRoot ?? '(unknown workspace)'} on port ${server.port} (pid ${server.pid})`);
66
+ }
67
+ if (process.env[API_KEY_ENV]?.trim()) {
68
+ console.error(chalk.yellow('OML_PLATFORM_API_KEY is still set, so future starts may use API-key auth.'));
69
+ }
70
+ return;
71
+ }
72
+ console.error(chalk.green('Stored OAuth credentials were cleared.'));
73
+ if (process.env[API_KEY_ENV]?.trim()) {
74
+ console.error(chalk.yellow('OML_PLATFORM_API_KEY is still set, so future starts may use API-key auth.'));
75
+ }
25
76
  }
26
77
  async whoami() {
27
- const session = await readSession();
28
- if (!session) {
78
+ const apiKey = process.env[API_KEY_ENV]?.trim();
79
+ if (apiKey) {
80
+ console.error('Auth mode: api_key');
81
+ console.error('Account: resolved by OML Platform from OML_PLATFORM_API_KEY');
82
+ const profile = await readProfile();
83
+ if (profile) {
84
+ console.error(`Stored OAuth user: ${profile.userLabel ?? profile.email ?? profile.userId}`);
85
+ }
86
+ return;
87
+ }
88
+ const credential = await readCredential();
89
+ const profile = await readProfile();
90
+ if (!credential || !profile) {
29
91
  console.error(chalk.yellow('Not signed in.'));
30
92
  return;
31
93
  }
32
- console.error(`Provider: ${session.provider}`);
33
- console.error(`User ID: ${session.userId}`);
34
- console.error(`User label: ${session.userLabel ?? '(not set)'}`);
35
- console.error(`Email: ${session.email ?? '(not set)'}`);
36
- console.error(`Tier: ${session.tier ?? '(not set)'}`);
37
- console.error(`Signed in at: ${session.signedInAt}`);
94
+ console.error('Auth mode: oauth');
95
+ console.error(`Provider: ${profile.provider}`);
96
+ console.error(`User ID: ${profile.userId}`);
97
+ console.error(`User label: ${profile.userLabel ?? '(not set)'}`);
98
+ console.error(`Email: ${profile.email ?? '(not set)'}`);
99
+ console.error(`Tier: ${profile.tier ?? '(not set)'}`);
100
+ console.error(`Signed in at: ${profile.signedInAt}`);
101
+ console.error(`Access token expires at: ${new Date(credential.expiresAtMs).toISOString()}`);
38
102
  }
39
103
  async ensureAuthenticated(operationName) {
40
- const session = await readSession();
104
+ if (process.env[API_KEY_ENV]?.trim()) {
105
+ return;
106
+ }
107
+ const session = await readCredential();
41
108
  if (!session) {
42
109
  throw new Error(`${operationName} requires authentication. Run 'oml login' first.`);
43
110
  }
44
111
  }
45
112
  async getAccessToken() {
46
- const session = await readSession();
47
- if (!session?.accessToken) {
48
- throw new Error('OML CLI authentication is required. Run \'oml login\' first.');
49
- }
113
+ const session = await this.getServerAuthSnapshot();
50
114
  return session.accessToken;
51
115
  }
52
116
  async refreshAccessToken() {
53
- const session = await readSession();
54
- if (!session?.refreshToken) {
55
- throw new Error('OML CLI authentication is required. Run \'oml login\' first.');
56
- }
57
- let refreshed;
58
- try {
59
- refreshed = await refreshSupabaseAccessToken(resolveSupabaseUrl(), resolveSupabaseAnonKey(), session.refreshToken);
60
- }
61
- catch {
62
- throw new Error('Authentication refresh failed. Check your network connection or sign in again with \'oml login\'.');
63
- }
64
- const updatedSession = {
65
- ...session,
66
- accessToken: refreshed.access_token,
67
- refreshToken: refreshed.refresh_token,
68
- tokenType: refreshed.token_type,
69
- expiresIn: refreshed.expires_in,
70
- email: refreshed.email ?? session.email,
71
- signedInAt: new Date().toISOString(),
72
- };
73
- await writeSession(updatedSession);
74
- return updatedSession.accessToken;
117
+ const refreshed = await this.refreshCredential();
118
+ return refreshed.accessToken;
75
119
  }
76
120
  async getServerAuthSnapshot() {
77
- const session = await readSession();
121
+ const session = await readCredential();
78
122
  if (!session?.accessToken) {
79
123
  throw new Error('OML CLI authentication is required. Run \'oml login\' first.');
80
124
  }
81
- const signedInAtMs = Date.parse(session.signedInAt);
82
- const expiresAtMs = Number.isFinite(signedInAtMs)
83
- ? signedInAtMs + (session.expiresIn * 1000)
84
- : undefined;
85
- if (expiresAtMs !== undefined && Date.now() + 20000 >= expiresAtMs) {
86
- await this.refreshAccessToken();
87
- return await this.getServerAuthSnapshot();
125
+ if (Date.now() + SESSION_EXPIRATION_LEEWAY_MS >= session.expiresAtMs) {
126
+ const refreshed = await this.refreshCredential();
127
+ return {
128
+ accessToken: refreshed.accessToken,
129
+ refreshToken: refreshed.refreshToken,
130
+ expiresAtMs: refreshed.expiresAtMs,
131
+ };
88
132
  }
89
133
  return {
90
134
  accessToken: session.accessToken,
91
135
  refreshToken: session.refreshToken,
92
- expiresAtMs,
136
+ expiresAtMs: session.expiresAtMs,
93
137
  };
94
138
  }
95
- async storeRefreshedTokens(accessToken, refreshToken, expiresAtMs) {
96
- const session = await readSession();
97
- if (!session) {
98
- return;
139
+ async tryGetValidSnapshot() {
140
+ try {
141
+ return await this.getServerAuthSnapshot();
142
+ }
143
+ catch {
144
+ return null;
99
145
  }
100
- const expiresIn = Math.max(0, Math.round((expiresAtMs - Date.now()) / 1000));
101
- const updatedSession = {
102
- ...session,
103
- accessToken,
104
- refreshToken,
105
- expiresIn,
106
- signedInAt: new Date().toISOString(),
107
- };
108
- await writeSession(updatedSession);
109
146
  }
110
- async authenticate() {
111
- return authenticateWithGitHub();
147
+ async refreshCredential() {
148
+ const session = await readCredential();
149
+ if (!session?.refreshToken) {
150
+ throw new Error('OML CLI authentication is required. Run \'oml login\' first.');
151
+ }
152
+ const lock = await acquireCredentialLock();
153
+ try {
154
+ const latest = await readCredential();
155
+ if (latest && Date.now() + SESSION_EXPIRATION_LEEWAY_MS < latest.expiresAtMs) {
156
+ return latest;
157
+ }
158
+ const source = latest ?? session;
159
+ const refreshed = await refreshSupabaseAccessToken(resolveSupabaseUrl(), resolveSupabaseAnonKey(), source.refreshToken);
160
+ const updatedSession = {
161
+ accessToken: refreshed.access_token,
162
+ refreshToken: refreshed.refresh_token,
163
+ expiresAtMs: Date.now() + (refreshed.expires_in * 1000),
164
+ };
165
+ await writeCredential(updatedSession);
166
+ const profile = await readProfile();
167
+ if (profile) {
168
+ await writeProfile({
169
+ ...profile,
170
+ email: refreshed.email ?? profile.email,
171
+ });
172
+ }
173
+ return updatedSession;
174
+ }
175
+ catch (error) {
176
+ if (isUnauthorizedError(error)) {
177
+ await deleteCredential();
178
+ await deleteProfile();
179
+ throw new Error('Authentication refresh failed because the stored credential was revoked. Run \'oml login\' again.');
180
+ }
181
+ throw new Error('Authentication refresh failed. Check your network connection or sign in again with \'oml login\'.');
182
+ }
183
+ finally {
184
+ await lock.release();
185
+ }
112
186
  }
113
187
  }
114
- async function readSession() {
188
+ async function readCredential() {
189
+ const keytar = await getKeytarModule();
190
+ const [accessToken, refreshToken, expiresAtRaw] = await Promise.all([
191
+ keytar.getPassword(KEYCHAIN_SERVICE, ACCESS_TOKEN_KEY),
192
+ keytar.getPassword(KEYCHAIN_SERVICE, REFRESH_TOKEN_KEY),
193
+ keytar.getPassword(KEYCHAIN_SERVICE, EXPIRES_AT_KEY),
194
+ ]);
195
+ const expiresAtMs = Number(expiresAtRaw ?? NaN);
196
+ if (!accessToken || !refreshToken || !Number.isFinite(expiresAtMs)) {
197
+ return undefined;
198
+ }
199
+ return { accessToken, refreshToken, expiresAtMs };
200
+ }
201
+ async function writeCredential(credential) {
202
+ const keytar = await getKeytarModule();
203
+ await Promise.all([
204
+ keytar.setPassword(KEYCHAIN_SERVICE, ACCESS_TOKEN_KEY, credential.accessToken),
205
+ keytar.setPassword(KEYCHAIN_SERVICE, REFRESH_TOKEN_KEY, credential.refreshToken),
206
+ keytar.setPassword(KEYCHAIN_SERVICE, EXPIRES_AT_KEY, String(credential.expiresAtMs)),
207
+ ]);
208
+ }
209
+ async function deleteCredential() {
210
+ const keytar = await getKeytarModule();
211
+ await Promise.all([
212
+ keytar.deletePassword(KEYCHAIN_SERVICE, ACCESS_TOKEN_KEY),
213
+ keytar.deletePassword(KEYCHAIN_SERVICE, REFRESH_TOKEN_KEY),
214
+ keytar.deletePassword(KEYCHAIN_SERVICE, EXPIRES_AT_KEY),
215
+ ]);
216
+ }
217
+ async function readProfile() {
115
218
  try {
116
- const content = await fs.readFile(getSessionPath(), 'utf-8');
219
+ const content = await fs.readFile(PROFILE_PATH, 'utf-8');
117
220
  const data = JSON.parse(content);
118
- if (!data.userId || !data.provider || !data.signedInAt) {
119
- return undefined;
120
- }
121
- if (!data.accessToken) {
122
- return undefined;
123
- }
124
- if (!data.refreshToken || !data.tokenType || typeof data.expiresIn !== 'number') {
125
- return undefined;
126
- }
127
- if (data.provider !== 'github') {
221
+ if (!data.provider || !data.userId || !data.signedInAt) {
128
222
  return undefined;
129
223
  }
130
224
  return {
@@ -133,29 +227,20 @@ async function readSession() {
133
227
  userLabel: data.userLabel,
134
228
  email: data.email ?? null,
135
229
  tier: data.tier,
136
- accessToken: data.accessToken,
137
- refreshToken: data.refreshToken,
138
- tokenType: data.tokenType,
139
- expiresIn: data.expiresIn,
140
- signedInAt: data.signedInAt
230
+ signedInAt: data.signedInAt,
141
231
  };
142
232
  }
143
233
  catch {
144
234
  return undefined;
145
235
  }
146
236
  }
147
- async function writeSession(session, warnAboutPlaintext = false) {
148
- const sessionPath = getSessionPath();
149
- await fs.mkdir(path.dirname(sessionPath), { recursive: true });
150
- await fs.writeFile(sessionPath, `${JSON.stringify(session, null, 2)}\n`, 'utf-8');
151
- if (warnAboutPlaintext) {
152
- process.stderr.write(chalk.yellow(`[oml] Warning: credentials stored in plaintext at ${sessionPath}. ` +
153
- `A system keychain is not available in this environment.\n`));
154
- }
237
+ async function writeProfile(profile) {
238
+ await fs.mkdir(path.dirname(PROFILE_PATH), { recursive: true });
239
+ await fs.writeFile(PROFILE_PATH, `${JSON.stringify(profile, null, 2)}\n`, 'utf-8');
155
240
  }
156
- async function deleteSession() {
241
+ async function deleteProfile() {
157
242
  try {
158
- await fs.unlink(getSessionPath());
243
+ await fs.unlink(PROFILE_PATH);
159
244
  }
160
245
  catch (error) {
161
246
  if (error.code !== 'ENOENT') {
@@ -163,9 +248,6 @@ async function deleteSession() {
163
248
  }
164
249
  }
165
250
  }
166
- function getSessionPath() {
167
- return path.join(os.homedir(), '.oml', 'auth.json');
168
- }
169
251
  async function authenticateWithGitHub() {
170
252
  const clientId = resolveClientId();
171
253
  const params = new URLSearchParams({
@@ -211,9 +293,7 @@ async function authenticateWithGitHub() {
211
293
  tier: platformSession.tier,
212
294
  accessToken: platformSession.access_token,
213
295
  refreshToken: platformSession.refresh_token,
214
- tokenType: platformSession.token_type,
215
- expiresIn: platformSession.expires_in,
216
- signedInAt: new Date().toISOString()
296
+ expiresAtMs: Date.now() + platformSession.expires_in * 1000,
217
297
  };
218
298
  }
219
299
  function printDeviceFlowInstructions(providerName, verificationUri, userCode) {
@@ -265,6 +345,60 @@ async function pollForGitHubAccessToken(clientId, device) {
265
345
  throw new Error(token.error_description ?? token.error ?? 'GitHub sign-in failed.');
266
346
  }
267
347
  }
348
+ async function acquireCredentialLock() {
349
+ await fs.mkdir(path.dirname(LOCK_PATH), { recursive: true });
350
+ const startedAt = Date.now();
351
+ while (Date.now() - startedAt < LOCK_TIMEOUT_MS) {
352
+ try {
353
+ const handle = await fs.open(LOCK_PATH, 'wx');
354
+ return {
355
+ release: async () => {
356
+ await handle.close();
357
+ await fs.rm(LOCK_PATH, { force: true });
358
+ },
359
+ };
360
+ }
361
+ catch (error) {
362
+ if (error.code !== 'EEXIST') {
363
+ throw error;
364
+ }
365
+ await delay(LOCK_POLL_INTERVAL_MS);
366
+ }
367
+ }
368
+ throw new Error('Timed out waiting for the CLI credential lock.');
369
+ }
370
+ async function listActiveServers() {
371
+ const baseDir = path.join(os.homedir(), '.oml', 'workspaces');
372
+ try {
373
+ const workspaceDirs = await fs.readdir(baseDir);
374
+ const active = [];
375
+ for (const workspaceDir of workspaceDirs) {
376
+ const lockFile = path.join(baseDir, workspaceDir, 'server.lock');
377
+ try {
378
+ const raw = await fs.readFile(lockFile, 'utf-8');
379
+ const parsed = JSON.parse(raw);
380
+ const pid = Number(parsed.pid);
381
+ const port = Number(parsed.port);
382
+ if (!Number.isFinite(pid) || !Number.isFinite(port)) {
383
+ continue;
384
+ }
385
+ process.kill(Math.trunc(pid), 0);
386
+ active.push({
387
+ pid: Math.trunc(pid),
388
+ port: Math.trunc(port),
389
+ workspaceRoot: typeof parsed.workspaceRoot === 'string' ? parsed.workspaceRoot : undefined,
390
+ });
391
+ }
392
+ catch {
393
+ // ignore malformed or stale lock entries
394
+ }
395
+ }
396
+ return active;
397
+ }
398
+ catch {
399
+ return [];
400
+ }
401
+ }
268
402
  function resolveClientId() {
269
403
  const configured = process.env.OML_AUTH_GITHUB_CLIENT_ID?.trim() || DEFAULT_GITHUB_CLIENT_ID;
270
404
  if (configured) {
@@ -284,4 +418,27 @@ function resolveSupabaseAnonKey() {
284
418
  function delay(ms) {
285
419
  return new Promise((resolve) => setTimeout(resolve, ms));
286
420
  }
421
+ function isUnauthorizedError(error) {
422
+ const message = error instanceof Error ? error.message : String(error);
423
+ return /\b401\b/.test(message);
424
+ }
425
+ async function getKeytarModule() {
426
+ if (!keytarModulePromise) {
427
+ keytarModulePromise = import('keytar')
428
+ .then((loaded) => loaded.default)
429
+ .catch((error) => {
430
+ keytarModulePromise = undefined;
431
+ throw new Error(formatKeytarLoadError(error));
432
+ });
433
+ }
434
+ return keytarModulePromise;
435
+ }
436
+ function formatKeytarLoadError(error) {
437
+ const message = error instanceof Error ? error.message : String(error);
438
+ if (/libsecret|dlopen|ERR_DLOPEN_FAILED/i.test(message)) {
439
+ return 'Secure credential storage is unavailable (missing system keychain runtime, e.g. libsecret on Linux). ' +
440
+ 'Install the OS keychain runtime or set OML_PLATFORM_API_KEY for non-interactive mode.';
441
+ }
442
+ return `Secure credential storage is unavailable: ${message}`;
443
+ }
287
444
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth/auth.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export type CommandInvocationTracker = ReturnType<OmlClient['trackInvocation']>;
16
16
  export declare function initializePlatform(authService: OmlCliAuthService, apiBaseUrl?: string): Promise<void>;
17
17
  /**
18
18
  * Dispose the platform client. Flushes any buffered telemetry
19
- * and ends the session. Call at the end of CLI execution.
19
+ * and flushes buffered telemetry. Call at the end of CLI execution.
20
20
  */
21
21
  export declare function disposePlatform(): Promise<void>;
22
22
  /**
@@ -6,12 +6,11 @@
6
6
  * authenticated via oml login and the platform must be reachable for
7
7
  * commands to execute.
8
8
  */
9
- import { OmlClient, FileStorageAdapter, installNodeShutdownHandlers, exchangeApiToken } from '@oml/platform';
9
+ import { OmlClient, FileStorageAdapter, installNodeShutdownHandlers } from '@oml/platform';
10
10
  import chalk from 'chalk';
11
11
  import { DEFAULT_API_BASE_URL } from './constants.js';
12
12
  const API_BASE_URL_ENV = 'OML_PLATFORM_API_URL';
13
13
  const API_KEY_ENV = 'OML_PLATFORM_API_KEY';
14
- const OIDC_TOKEN_ENV = 'OML_CI_TOKEN';
15
14
  let client = null;
16
15
  let shutdownHandle = null;
17
16
  /**
@@ -23,22 +22,6 @@ export async function initializePlatform(authService, apiBaseUrl = DEFAULT_API_B
23
22
  await disposePlatform();
24
23
  const resolvedApiBaseUrl = process.env[API_BASE_URL_ENV]?.trim() || apiBaseUrl;
25
24
  const apiKey = process.env[API_KEY_ENV]?.trim();
26
- let apiKeyAccessToken;
27
- let apiKeyAccessTokenExpiresAtMs = 0;
28
- const getApiKeyAccessToken = async () => {
29
- const refreshLeewayMs = 20000;
30
- if (apiKeyAccessToken && Date.now() + refreshLeewayMs < apiKeyAccessTokenExpiresAtMs) {
31
- return apiKeyAccessToken;
32
- }
33
- if (!apiKey) {
34
- throw new Error('OML API key is missing.');
35
- }
36
- const oidcToken = process.env[OIDC_TOKEN_ENV]?.trim() || undefined;
37
- const exchanged = await exchangeApiToken(resolvedApiBaseUrl, apiKey, oidcToken);
38
- apiKeyAccessToken = exchanged.accessToken;
39
- apiKeyAccessTokenExpiresAtMs = Date.now() + (Math.max(1, exchanged.expiresIn) * 1000);
40
- return apiKeyAccessToken;
41
- };
42
25
  const config = {
43
26
  apiBaseUrl: resolvedApiBaseUrl,
44
27
  tool: 'oml-cli',
@@ -46,19 +29,14 @@ export async function initializePlatform(authService, apiBaseUrl = DEFAULT_API_B
46
29
  auth: apiKey
47
30
  ? {
48
31
  method: 'oauth',
49
- getToken: () => getApiKeyAccessToken(),
50
- refreshToken: () => getApiKeyAccessToken(),
32
+ getToken: async () => apiKey,
33
+ refreshToken: async () => apiKey,
51
34
  }
52
35
  : {
53
36
  method: 'oauth',
54
37
  getToken: () => authService.getAccessToken(),
55
38
  refreshToken: () => authService.refreshAccessToken(),
56
39
  },
57
- onConcurrencyLimit: (info) => {
58
- console.error(chalk.yellow(`OML Platform: concurrent session limit reached `
59
- + `(${info.active_sessions}/${info.max_sessions}). `
60
- + `Close another instance or upgrade your plan.`));
61
- },
62
40
  onAuthError: (error) => {
63
41
  console.error(chalk.red(`OML Platform: authentication error — ${toGenericPlatformErrorMessage(error)}`));
64
42
  },
@@ -76,7 +54,7 @@ export async function initializePlatform(authService, apiBaseUrl = DEFAULT_API_B
76
54
  }
77
55
  /**
78
56
  * Dispose the platform client. Flushes any buffered telemetry
79
- * and ends the session. Call at the end of CLI execution.
57
+ * and flushes buffered telemetry. Call at the end of CLI execution.
80
58
  */
81
59
  export async function disposePlatform() {
82
60
  if (shutdownHandle) {
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/auth/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/auth/platform.ts"],"names":[],"mappings":"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"}