@oml/cli 0.14.1 → 0.14.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
@@ -4,6 +4,7 @@ import chalk from 'chalk';
4
4
  import * as fs from 'node:fs/promises';
5
5
  import * as os from 'node:os';
6
6
  import * as path from 'node:path';
7
+ import keytar from 'keytar';
7
8
  import { DEFAULT_API_BASE_URL, DEFAULT_SUPABASE_ANON_KEY, DEFAULT_SUPABASE_URL } from './constants.js';
8
9
  const GITHUB_DEVICE_CODE_URL = 'https://github.com/login/device/code';
9
10
  const GITHUB_TOKEN_URL = 'https://github.com/login/oauth/access_token';
@@ -12,119 +13,209 @@ const DEFAULT_GITHUB_CLIENT_ID = 'Ov23liQkHYczdOAvHp5P';
12
13
  const API_BASE_URL_ENV = 'OML_PLATFORM_API_URL';
13
14
  const SUPABASE_URL_ENV = 'OML_SUPABASE_URL';
14
15
  const SUPABASE_ANON_KEY_ENV = 'OML_SUPABASE_ANON_KEY';
16
+ const API_KEY_ENV = 'OML_PLATFORM_API_KEY';
17
+ const KEYCHAIN_SERVICE = 'oml-code';
18
+ const ACCESS_TOKEN_KEY = 'oml.cli.access_token';
19
+ const REFRESH_TOKEN_KEY = 'oml.cli.refresh_token';
20
+ const EXPIRES_AT_KEY = 'oml.cli.expires_at';
21
+ const PROFILE_PATH = path.join(os.homedir(), '.oml', 'cli-profile.json');
22
+ const LOCK_PATH = path.join(os.homedir(), '.oml', 'credentials.lock');
23
+ const SESSION_EXPIRATION_LEEWAY_MS = 20000;
24
+ const LOCK_TIMEOUT_MS = 5000;
25
+ const LOCK_POLL_INTERVAL_MS = 200;
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;
145
+ }
146
+ }
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();
99
185
  }
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
186
  }
110
- async authenticate() {
111
- return authenticateWithGitHub();
187
+ }
188
+ async function readCredential() {
189
+ const [accessToken, refreshToken, expiresAtRaw] = await Promise.all([
190
+ keytar.getPassword(KEYCHAIN_SERVICE, ACCESS_TOKEN_KEY),
191
+ keytar.getPassword(KEYCHAIN_SERVICE, REFRESH_TOKEN_KEY),
192
+ keytar.getPassword(KEYCHAIN_SERVICE, EXPIRES_AT_KEY),
193
+ ]);
194
+ const expiresAtMs = Number(expiresAtRaw ?? NaN);
195
+ if (!accessToken || !refreshToken || !Number.isFinite(expiresAtMs)) {
196
+ return undefined;
112
197
  }
198
+ return { accessToken, refreshToken, expiresAtMs };
113
199
  }
114
- async function readSession() {
200
+ async function writeCredential(credential) {
201
+ await Promise.all([
202
+ keytar.setPassword(KEYCHAIN_SERVICE, ACCESS_TOKEN_KEY, credential.accessToken),
203
+ keytar.setPassword(KEYCHAIN_SERVICE, REFRESH_TOKEN_KEY, credential.refreshToken),
204
+ keytar.setPassword(KEYCHAIN_SERVICE, EXPIRES_AT_KEY, String(credential.expiresAtMs)),
205
+ ]);
206
+ }
207
+ async function deleteCredential() {
208
+ await Promise.all([
209
+ keytar.deletePassword(KEYCHAIN_SERVICE, ACCESS_TOKEN_KEY),
210
+ keytar.deletePassword(KEYCHAIN_SERVICE, REFRESH_TOKEN_KEY),
211
+ keytar.deletePassword(KEYCHAIN_SERVICE, EXPIRES_AT_KEY),
212
+ ]);
213
+ }
214
+ async function readProfile() {
115
215
  try {
116
- const content = await fs.readFile(getSessionPath(), 'utf-8');
216
+ const content = await fs.readFile(PROFILE_PATH, 'utf-8');
117
217
  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') {
218
+ if (!data.provider || !data.userId || !data.signedInAt) {
128
219
  return undefined;
129
220
  }
130
221
  return {
@@ -133,29 +224,20 @@ async function readSession() {
133
224
  userLabel: data.userLabel,
134
225
  email: data.email ?? null,
135
226
  tier: data.tier,
136
- accessToken: data.accessToken,
137
- refreshToken: data.refreshToken,
138
- tokenType: data.tokenType,
139
- expiresIn: data.expiresIn,
140
- signedInAt: data.signedInAt
227
+ signedInAt: data.signedInAt,
141
228
  };
142
229
  }
143
230
  catch {
144
231
  return undefined;
145
232
  }
146
233
  }
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
- }
234
+ async function writeProfile(profile) {
235
+ await fs.mkdir(path.dirname(PROFILE_PATH), { recursive: true });
236
+ await fs.writeFile(PROFILE_PATH, `${JSON.stringify(profile, null, 2)}\n`, 'utf-8');
155
237
  }
156
- async function deleteSession() {
238
+ async function deleteProfile() {
157
239
  try {
158
- await fs.unlink(getSessionPath());
240
+ await fs.unlink(PROFILE_PATH);
159
241
  }
160
242
  catch (error) {
161
243
  if (error.code !== 'ENOENT') {
@@ -163,9 +245,6 @@ async function deleteSession() {
163
245
  }
164
246
  }
165
247
  }
166
- function getSessionPath() {
167
- return path.join(os.homedir(), '.oml', 'auth.json');
168
- }
169
248
  async function authenticateWithGitHub() {
170
249
  const clientId = resolveClientId();
171
250
  const params = new URLSearchParams({
@@ -211,9 +290,7 @@ async function authenticateWithGitHub() {
211
290
  tier: platformSession.tier,
212
291
  accessToken: platformSession.access_token,
213
292
  refreshToken: platformSession.refresh_token,
214
- tokenType: platformSession.token_type,
215
- expiresIn: platformSession.expires_in,
216
- signedInAt: new Date().toISOString()
293
+ expiresAtMs: Date.now() + platformSession.expires_in * 1000,
217
294
  };
218
295
  }
219
296
  function printDeviceFlowInstructions(providerName, verificationUri, userCode) {
@@ -265,6 +342,60 @@ async function pollForGitHubAccessToken(clientId, device) {
265
342
  throw new Error(token.error_description ?? token.error ?? 'GitHub sign-in failed.');
266
343
  }
267
344
  }
345
+ async function acquireCredentialLock() {
346
+ await fs.mkdir(path.dirname(LOCK_PATH), { recursive: true });
347
+ const startedAt = Date.now();
348
+ while (Date.now() - startedAt < LOCK_TIMEOUT_MS) {
349
+ try {
350
+ const handle = await fs.open(LOCK_PATH, 'wx');
351
+ return {
352
+ release: async () => {
353
+ await handle.close();
354
+ await fs.rm(LOCK_PATH, { force: true });
355
+ },
356
+ };
357
+ }
358
+ catch (error) {
359
+ if (error.code !== 'EEXIST') {
360
+ throw error;
361
+ }
362
+ await delay(LOCK_POLL_INTERVAL_MS);
363
+ }
364
+ }
365
+ throw new Error('Timed out waiting for the CLI credential lock.');
366
+ }
367
+ async function listActiveServers() {
368
+ const baseDir = path.join(os.homedir(), '.oml', 'workspaces');
369
+ try {
370
+ const workspaceDirs = await fs.readdir(baseDir);
371
+ const active = [];
372
+ for (const workspaceDir of workspaceDirs) {
373
+ const lockFile = path.join(baseDir, workspaceDir, 'server.lock');
374
+ try {
375
+ const raw = await fs.readFile(lockFile, 'utf-8');
376
+ const parsed = JSON.parse(raw);
377
+ const pid = Number(parsed.pid);
378
+ const port = Number(parsed.port);
379
+ if (!Number.isFinite(pid) || !Number.isFinite(port)) {
380
+ continue;
381
+ }
382
+ process.kill(Math.trunc(pid), 0);
383
+ active.push({
384
+ pid: Math.trunc(pid),
385
+ port: Math.trunc(port),
386
+ workspaceRoot: typeof parsed.workspaceRoot === 'string' ? parsed.workspaceRoot : undefined,
387
+ });
388
+ }
389
+ catch {
390
+ // ignore malformed or stale lock entries
391
+ }
392
+ }
393
+ return active;
394
+ }
395
+ catch {
396
+ return [];
397
+ }
398
+ }
268
399
  function resolveClientId() {
269
400
  const configured = process.env.OML_AUTH_GITHUB_CLIENT_ID?.trim() || DEFAULT_GITHUB_CLIENT_ID;
270
401
  if (configured) {
@@ -284,4 +415,8 @@ function resolveSupabaseAnonKey() {
284
415
  function delay(ms) {
285
416
  return new Promise((resolve) => setTimeout(resolve, ms));
286
417
  }
418
+ function isUnauthorizedError(error) {
419
+ const message = error instanceof Error ? error.message : String(error);
420
+ return /\b401\b/.test(message);
421
+ }
287
422
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth/auth.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EACH,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,EACvB,MAAM,gBAAgB,CAAC;AACxB,MAAM,sBAAsB,GAAG,sCAAsC,CAAC;AACtE,MAAM,gBAAgB,GAAG,6CAA6C,CAAC;AACvE,MAAM,eAAe,GAAG,6BAA6B,CAAC;AACtD,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AACxD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAChD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAC5C,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AA0BtD,MAAM,OAAO,iBAAiB;IAE1B,KAAK,CAAC,KAAK,CAAC,OAAqB;QAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1C,MAAM,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK,IAAI,gBAAgB,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,OAAO,QAAQ,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,aAAa,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC9C,OAAO;QACX,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,aAAa,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,SAAS,IAAI,WAAW,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,CAAC,KAAK,IAAI,WAAW,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,CAAC,SAAS,OAAO,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,iBAAiB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,aAAqB;QAC3C,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,GAAG,aAAa,kDAAkD,CAAC,CAAC;QACxF,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc;QAChB,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,OAAO,CAAC,WAAW,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,kBAAkB;QACpB,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,SAAS,CAAC;QACd,IAAI,CAAC;YACD,SAAS,GAAG,MAAM,0BAA0B,CACxC,kBAAkB,EAAE,EACpB,sBAAsB,EAAE,EACxB,OAAO,CAAC,YAAY,CACvB,CAAC;QACN,CAAC;QAAC,MAAM,CAAC;YACL,MAAM,IAAI,KAAK,CAAC,mGAAmG,CAAC,CAAC;QACzH,CAAC;QAED,MAAM,cAAc,GAAkB;YAClC,GAAG,OAAO;YACV,WAAW,EAAE,SAAS,CAAC,YAAY;YACnC,YAAY,EAAE,SAAS,CAAC,aAAa;YACrC,SAAS,EAAE,SAAS,CAAC,UAAU;YAC/B,SAAS,EAAE,SAAS,CAAC,UAAU;YAC/B,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK;YACvC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC;QAEF,MAAM,YAAY,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO,cAAc,CAAC,WAAW,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,qBAAqB;QACvB,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC7C,CAAC,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;YAC3C,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAM,IAAI,WAAW,EAAE,CAAC;YAClE,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChC,OAAO,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC9C,CAAC;QACD,OAAO;YACH,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,WAAW;SACd,CAAC;IACN,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,WAAmB,EAAE,YAAoB,EAAE,WAAmB;QACrF,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO;QACX,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC7E,MAAM,cAAc,GAAkB;YAClC,GAAG,OAAO;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC;QACF,MAAM,YAAY,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,YAAY;QACtB,OAAO,sBAAsB,EAAE,CAAC;IACpC,CAAC;CACJ;AAED,KAAK,UAAU,WAAW;IACtB,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA2B,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC9E,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO;YACH,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,OAAsB,EAAE,kBAAkB,GAAG,KAAK;IAC1E,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClF,IAAI,kBAAkB,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAChB,KAAK,CAAC,MAAM,CACR,qDAAqD,WAAW,IAAI;YACpE,2DAA2D,CAC9D,CACJ,CAAC;IACN,CAAC;AACL,CAAC;AAED,KAAK,UAAU,aAAa;IACxB,IAAI,CAAC;QACD,MAAM,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAS,cAAc;IACnB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,sBAAsB;IACjC,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QAC/B,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,sBAAsB;KAChC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,sBAAsB,EAAE;QACjD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACL,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,mCAAmC;SACtD;QACD,IAAI,EAAE,MAAM;KACf,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,4CAA4C,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA8B,CAAC;IACjE,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC5E,CAAC;IAED,2BAA2B,CAAC,QAAQ,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,MAAM,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE;QAC9C,OAAO,EAAE;YACL,MAAM,EAAE,6BAA6B;YACrC,aAAa,EAAE,UAAU,KAAK,EAAE;SACnC;KACJ,CAAC,CAAC;IACH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,mCAAmC,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;IACzG,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,EAAwB,CAAC;IAC7D,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,iBAAiB,EAAE,EAAE,KAAK,CAAC,CAAC;IAE9E,OAAO;QACH,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,eAAe,CAAC,OAAO;QAC/B,SAAS,EAAE,IAAI,CAAC,KAAK;QACrB,KAAK,EAAE,eAAe,CAAC,KAAK;QAC5B,IAAI,EAAE,eAAe,CAAC,IAAI;QAC1B,WAAW,EAAE,eAAe,CAAC,YAAY;QACzC,YAAY,EAAE,eAAe,CAAC,aAAa;QAC3C,SAAS,EAAE,eAAe,CAAC,UAAU;QACrC,SAAS,EAAE,eAAe,CAAC,UAAU;QACrC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACvC,CAAC;AACN,CAAC;AAED,SAAS,2BAA2B,CAAC,YAAoB,EAAE,eAAuB,EAAE,QAAgB;IAChG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,oBAAoB,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,KAAK,CAAC,SAAS,eAAe,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,KAAK,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,QAAgB,EAAE,MAAgC;IACtF,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;IACtC,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IACxD,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,CAAC,eAAe,GAAG,IAAK,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YAC/B,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,UAAU;YACvB,UAAU,EAAE,8CAA8C;SAC7D,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE;YAC3C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,mCAAmC;aACtD;YACD,IAAI,EAAE,MAAM;SACf,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACpG,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAyB,CAAC;QAC3D,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,YAAY,CAAC;QAC9B,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,uBAAuB,EAAE,CAAC;YAC1C,SAAS;QACb,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC9B,eAAe,IAAI,CAAC,CAAC;YACrB,SAAS;QACb,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,KAAK,IAAI,wBAAwB,CAAC,CAAC;IACxF,CAAC;AACL,CAAC;AAED,SAAS,eAAe;IACpB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,EAAE,IAAI,wBAAwB,CAAC;IAC7F,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,UAAU,CAAC;IACtB,CAAC;IACD,MAAM,IAAI,KAAK,CACX,8HAA8H,CACjI,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB;IACtB,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,oBAAoB,CAAC;AACzE,CAAC;AAED,SAAS,kBAAkB;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,oBAAoB,CAAC;AACzE,CAAC;AAED,SAAS,sBAAsB;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,IAAI,yBAAyB,CAAC;AACnF,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACrB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC"}
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
  /**
@@ -10,6 +10,7 @@ import { OmlClient, FileStorageAdapter, installNodeShutdownHandlers } from '@oml
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
+ const API_KEY_ENV = 'OML_PLATFORM_API_KEY';
13
14
  let client = null;
14
15
  let shutdownHandle = null;
15
16
  /**
@@ -20,20 +21,22 @@ let shutdownHandle = null;
20
21
  export async function initializePlatform(authService, apiBaseUrl = DEFAULT_API_BASE_URL) {
21
22
  await disposePlatform();
22
23
  const resolvedApiBaseUrl = process.env[API_BASE_URL_ENV]?.trim() || apiBaseUrl;
24
+ const apiKey = process.env[API_KEY_ENV]?.trim();
23
25
  const config = {
24
26
  apiBaseUrl: resolvedApiBaseUrl,
25
27
  tool: 'oml-cli',
26
28
  storage: new FileStorageAdapter(),
27
- auth: {
28
- method: 'oauth',
29
- getToken: () => authService.getAccessToken(),
30
- refreshToken: () => authService.refreshAccessToken(),
31
- },
32
- onConcurrencyLimit: (info) => {
33
- console.error(chalk.yellow(`OML Platform: concurrent session limit reached `
34
- + `(${info.active_sessions}/${info.max_sessions}). `
35
- + `Close another instance or upgrade your plan.`));
36
- },
29
+ auth: apiKey
30
+ ? {
31
+ method: 'oauth',
32
+ getToken: async () => apiKey,
33
+ refreshToken: async () => apiKey,
34
+ }
35
+ : {
36
+ method: 'oauth',
37
+ getToken: () => authService.getAccessToken(),
38
+ refreshToken: () => authService.refreshAccessToken(),
39
+ },
37
40
  onAuthError: (error) => {
38
41
  console.error(chalk.red(`OML Platform: authentication error — ${toGenericPlatformErrorMessage(error)}`));
39
42
  },
@@ -51,7 +54,7 @@ export async function initializePlatform(authService, apiBaseUrl = DEFAULT_API_B
51
54
  }
52
55
  /**
53
56
  * Dispose the platform client. Flushes any buffered telemetry
54
- * and ends the session. Call at the end of CLI execution.
57
+ * and flushes buffered telemetry. Call at the end of CLI execution.
55
58
  */
56
59
  export async function disposePlatform() {
57
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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"}