@oml/cli 0.14.16 → 0.15.0

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.
@@ -1,3 +1,4 @@
1
+ import type { JsonWebKey } from 'node:crypto';
1
2
  type LoginOptions = {};
2
3
  export type OmlCliServerAuthSnapshot = {
3
4
  accessToken: string;
@@ -8,11 +9,20 @@ export declare class OmlCliAuthService {
8
9
  login(_options: LoginOptions): Promise<void>;
9
10
  logout(): Promise<void>;
10
11
  whoami(): Promise<void>;
12
+ getDeviceId(): Promise<string>;
13
+ getEntitlementCache(): Promise<{
14
+ expiry: number;
15
+ featureIds: string[];
16
+ token?: string;
17
+ } | null>;
18
+ saveEntitlementCache(expiry: number, featureIds: string[], token?: string): Promise<void>;
19
+ saveEntitlementsPubkey(pubkeyJwk: JsonWebKey): Promise<void>;
11
20
  ensureAuthenticated(operationName: string): Promise<void>;
12
21
  getAccessToken(): Promise<string>;
13
22
  refreshAccessToken(): Promise<string>;
14
23
  getServerAuthSnapshot(): Promise<OmlCliServerAuthSnapshot>;
15
24
  private tryGetValidSnapshot;
25
+ hasStoredCredential(): Promise<boolean>;
16
26
  private refreshCredential;
17
27
  }
18
28
  export {};
package/out/auth/auth.js CHANGED
@@ -1,6 +1,7 @@
1
1
  // Copyright (c) 2026 Modelware. All rights reserved.
2
- import { exchangeGitHubToken, refreshSupabaseAccessToken } from '@oml/platform';
2
+ import { exchangeGitHubToken, refreshSupabaseAccessToken, verifyEntitlementsToken } from '@oml/platform';
3
3
  import chalk from 'chalk';
4
+ import * as crypto from 'node:crypto';
4
5
  import * as fs from 'node:fs/promises';
5
6
  import * as os from 'node:os';
6
7
  import * as path from 'node:path';
@@ -17,7 +18,10 @@ const KEYCHAIN_SERVICE = 'oml-code';
17
18
  const ACCESS_TOKEN_KEY = 'oml.cli.access_token';
18
19
  const REFRESH_TOKEN_KEY = 'oml.cli.refresh_token';
19
20
  const EXPIRES_AT_KEY = 'oml.cli.expires_at';
20
- const PROFILE_PATH = path.join(os.homedir(), '.oml', 'cli-profile.json');
21
+ const ENTITLEMENT_EXPIRY_KEY = 'oml.cli.entitlement_expiry';
22
+ const ENTITLEMENT_FEATURES_KEY = 'oml.cli.entitlement_features';
23
+ const ENTITLEMENT_TOKEN_KEY = 'oml.cli.entitlement_token';
24
+ const ENTITLEMENT_PUBKEY_KEY = 'oml.cli.entitlement_pubkey';
21
25
  const LOCK_PATH = path.join(os.homedir(), '.oml', 'credentials.lock');
22
26
  const SESSION_EXPIRATION_LEEWAY_MS = 20000;
23
27
  const LOCK_TIMEOUT_MS = 5000;
@@ -34,8 +38,9 @@ export class OmlCliAuthService {
34
38
  }
35
39
  const existing = await this.tryGetValidSnapshot();
36
40
  if (existing) {
37
- const profile = await readProfile();
38
- console.error(chalk.green(`Already signed in as ${profile?.userLabel ?? profile?.email ?? profile?.userId ?? 'current user'}.`));
41
+ const claims = decodeJwtClaims(existing.accessToken);
42
+ const label = claims.userLabel ?? claims.email ?? 'current user';
43
+ console.error(chalk.green(`Already signed in as ${label}.`));
39
44
  return;
40
45
  }
41
46
  const session = await authenticateWithGitHub();
@@ -44,21 +49,13 @@ export class OmlCliAuthService {
44
49
  refreshToken: session.refreshToken,
45
50
  expiresAtMs: session.expiresAtMs,
46
51
  });
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
- });
52
+ void fetchAndSaveEntitlementsPubkey(resolveApiBaseUrl(), this).catch(() => undefined);
55
53
  const summary = session.userLabel ?? session.email ?? 'signed-in user';
56
- console.error(chalk.green(`Signed in as ${summary} via ${session.provider}.`));
54
+ console.error(chalk.green(`Signed in as ${summary} via GitHub.`));
57
55
  }
58
56
  async logout() {
59
57
  const activeServers = await listActiveServers();
60
58
  await deleteCredential();
61
- await deleteProfile();
62
59
  if (activeServers.length > 0) {
63
60
  console.error(chalk.yellow('Stored OAuth credentials were cleared. Running servers were not stopped:'));
64
61
  for (const server of activeServers) {
@@ -79,26 +76,84 @@ export class OmlCliAuthService {
79
76
  if (apiKey) {
80
77
  console.error('Auth mode: api_key');
81
78
  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
79
  return;
87
80
  }
88
81
  const credential = await readCredential();
89
- const profile = await readProfile();
90
- if (!credential || !profile) {
82
+ if (!credential) {
91
83
  console.error(chalk.yellow('Not signed in.'));
92
84
  return;
93
85
  }
86
+ const claims = decodeJwtClaims(credential.accessToken);
94
87
  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()}`);
88
+ console.error(`User ID: ${claims.userId ?? '(unknown)'}`);
89
+ console.error(`User label: ${claims.userLabel ?? '(not set)'}`);
90
+ console.error(`Email: ${claims.email ?? '(not set)'}`);
91
+ console.error(`Tier: ${claims.tier ?? '(not set)'}`);
92
+ console.error(`Token expires at: ${new Date(credential.expiresAtMs).toISOString()}`);
93
+ }
94
+ async getDeviceId() {
95
+ return getOrCreateDeviceId();
96
+ }
97
+ async getEntitlementCache() {
98
+ try {
99
+ const keytar = await getKeytarModule();
100
+ const [expiryRaw, featuresRaw, tokenRaw, pubkeyRaw] = await Promise.all([
101
+ keytar.getPassword(KEYCHAIN_SERVICE, ENTITLEMENT_EXPIRY_KEY),
102
+ keytar.getPassword(KEYCHAIN_SERVICE, ENTITLEMENT_FEATURES_KEY),
103
+ keytar.getPassword(KEYCHAIN_SERVICE, ENTITLEMENT_TOKEN_KEY),
104
+ keytar.getPassword(KEYCHAIN_SERVICE, ENTITLEMENT_PUBKEY_KEY),
105
+ ]);
106
+ const expiry = Number(expiryRaw ?? NaN);
107
+ if (!Number.isFinite(expiry) || expiry <= Date.now() || !featuresRaw) {
108
+ return null;
109
+ }
110
+ const featureIds = JSON.parse(featuresRaw);
111
+ if (!Array.isArray(featureIds) || !featureIds.every((x) => typeof x === 'string')) {
112
+ return null;
113
+ }
114
+ let token;
115
+ if (tokenRaw && pubkeyRaw) {
116
+ try {
117
+ const deviceId = await getOrCreateDeviceId();
118
+ const valid = await verifyEntitlementsToken(tokenRaw, deviceId, JSON.parse(pubkeyRaw));
119
+ if (valid) {
120
+ token = tokenRaw;
121
+ }
122
+ }
123
+ catch {
124
+ // Verification failed — proceed without token; gate will re-fetch.
125
+ }
126
+ }
127
+ return { expiry, featureIds: featureIds, token };
128
+ }
129
+ catch {
130
+ return null;
131
+ }
132
+ }
133
+ async saveEntitlementCache(expiry, featureIds, token) {
134
+ try {
135
+ const keytar = await getKeytarModule();
136
+ const writes = [
137
+ keytar.setPassword(KEYCHAIN_SERVICE, ENTITLEMENT_EXPIRY_KEY, String(expiry)),
138
+ keytar.setPassword(KEYCHAIN_SERVICE, ENTITLEMENT_FEATURES_KEY, JSON.stringify(featureIds)),
139
+ ];
140
+ if (token) {
141
+ writes.push(keytar.setPassword(KEYCHAIN_SERVICE, ENTITLEMENT_TOKEN_KEY, token));
142
+ }
143
+ await Promise.all(writes);
144
+ }
145
+ catch {
146
+ // Credential store unavailable — skip silently.
147
+ }
148
+ }
149
+ async saveEntitlementsPubkey(pubkeyJwk) {
150
+ try {
151
+ const keytar = await getKeytarModule();
152
+ await keytar.setPassword(KEYCHAIN_SERVICE, ENTITLEMENT_PUBKEY_KEY, JSON.stringify(pubkeyJwk));
153
+ }
154
+ catch {
155
+ // Credential store unavailable — skip silently.
156
+ }
102
157
  }
103
158
  async ensureAuthenticated(operationName) {
104
159
  if (process.env[API_KEY_ENV]?.trim()) {
@@ -144,6 +199,9 @@ export class OmlCliAuthService {
144
199
  return null;
145
200
  }
146
201
  }
202
+ async hasStoredCredential() {
203
+ return (await readCredential()) !== undefined;
204
+ }
147
205
  async refreshCredential() {
148
206
  const session = await readCredential();
149
207
  if (!session?.refreshToken) {
@@ -163,19 +221,11 @@ export class OmlCliAuthService {
163
221
  expiresAtMs: Date.now() + (refreshed.expires_in * 1000),
164
222
  };
165
223
  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
224
  return updatedSession;
174
225
  }
175
226
  catch (error) {
176
227
  if (isUnauthorizedError(error)) {
177
228
  await deleteCredential();
178
- await deleteProfile();
179
229
  throw new Error('Authentication refresh failed because the stored credential was revoked. Run \'oml login\' again.');
180
230
  }
181
231
  throw new Error('Authentication refresh failed. Check your network connection or sign in again with \'oml login\'.');
@@ -212,41 +262,35 @@ async function deleteCredential() {
212
262
  keytar.deletePassword(KEYCHAIN_SERVICE, ACCESS_TOKEN_KEY),
213
263
  keytar.deletePassword(KEYCHAIN_SERVICE, REFRESH_TOKEN_KEY),
214
264
  keytar.deletePassword(KEYCHAIN_SERVICE, EXPIRES_AT_KEY),
265
+ keytar.deletePassword(KEYCHAIN_SERVICE, ENTITLEMENT_EXPIRY_KEY),
266
+ keytar.deletePassword(KEYCHAIN_SERVICE, ENTITLEMENT_FEATURES_KEY),
267
+ keytar.deletePassword(KEYCHAIN_SERVICE, ENTITLEMENT_TOKEN_KEY),
268
+ keytar.deletePassword(KEYCHAIN_SERVICE, ENTITLEMENT_PUBKEY_KEY),
215
269
  ]);
216
270
  }
217
- async function readProfile() {
271
+ async function getOrCreateDeviceId() {
218
272
  try {
219
- const content = await fs.readFile(PROFILE_PATH, 'utf-8');
220
- const data = JSON.parse(content);
221
- if (!data.provider || !data.userId || !data.signedInAt) {
222
- return undefined;
223
- }
224
- return {
225
- provider: data.provider,
226
- userId: data.userId,
227
- userLabel: data.userLabel,
228
- email: data.email ?? null,
229
- tier: data.tier,
230
- signedInAt: data.signedInAt,
231
- };
273
+ return (await fs.readFile('/etc/machine-id', 'utf-8')).trim();
232
274
  }
233
275
  catch {
234
- return undefined;
276
+ try {
277
+ return (await fs.readFile(LOCAL_MACHINE_ID_PATH, 'utf-8')).trim();
278
+ }
279
+ catch {
280
+ const id = crypto.randomUUID();
281
+ await fs.mkdir(path.dirname(LOCAL_MACHINE_ID_PATH), { recursive: true });
282
+ await fs.writeFile(LOCAL_MACHINE_ID_PATH, id, { encoding: 'utf-8', mode: 0o600 });
283
+ return id;
284
+ }
235
285
  }
236
286
  }
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');
240
- }
241
- async function deleteProfile() {
242
- try {
243
- await fs.unlink(PROFILE_PATH);
244
- }
245
- catch (error) {
246
- if (error.code !== 'ENOENT') {
247
- throw error;
248
- }
287
+ async function fetchAndSaveEntitlementsPubkey(apiBaseUrl, authService) {
288
+ const response = await fetch(`${apiBaseUrl}/entitlements/pubkey`);
289
+ if (!response.ok) {
290
+ return;
249
291
  }
292
+ const jwk = await response.json();
293
+ await authService.saveEntitlementsPubkey(jwk);
250
294
  }
251
295
  async function authenticateWithGitHub() {
252
296
  const clientId = resolveClientId();
@@ -286,11 +330,8 @@ async function authenticateWithGitHub() {
286
330
  }
287
331
  const platformSession = await exchangeGitHubToken(resolveApiBaseUrl(), token);
288
332
  return {
289
- provider: 'github',
290
- userId: platformSession.user_id,
291
333
  userLabel: user.login,
292
334
  email: platformSession.email,
293
- tier: platformSession.tier,
294
335
  accessToken: platformSession.access_token,
295
336
  refreshToken: platformSession.refresh_token,
296
337
  expiresAtMs: Date.now() + platformSession.expires_in * 1000,
@@ -422,23 +463,135 @@ function isUnauthorizedError(error) {
422
463
  const message = error instanceof Error ? error.message : String(error);
423
464
  return /\b401\b/.test(message);
424
465
  }
466
+ const CREDENTIALS_FILE_PATH = path.join(os.homedir(), '.oml', 'credentials.json');
467
+ const LOCAL_MACHINE_ID_PATH = path.join(os.homedir(), '.oml', 'machine-id');
468
+ // Derive a 256-bit encryption key bound to this machine and user.
469
+ // Uses /etc/machine-id (Linux) or a locally generated UUID as the key material,
470
+ // combined with the user's home directory so the key is user-specific too.
471
+ async function deriveMachineKey() {
472
+ const machineId = await getOrCreateDeviceId();
473
+ const ikm = Buffer.from(`${machineId}:${os.homedir()}`, 'utf-8');
474
+ return new Promise((resolve, reject) => {
475
+ crypto.hkdf('sha256', ikm, Buffer.alloc(0), 'oml-cli-credentials-v1', 32, (err, key) => {
476
+ if (err) {
477
+ reject(err);
478
+ }
479
+ else {
480
+ resolve(Buffer.from(key));
481
+ }
482
+ });
483
+ });
484
+ }
485
+ function encryptValue(value, key) {
486
+ const iv = crypto.randomBytes(12);
487
+ const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);
488
+ const encrypted = Buffer.concat([cipher.update(value, 'utf-8'), cipher.final()]);
489
+ const tag = cipher.getAuthTag();
490
+ return JSON.stringify({
491
+ v: 1,
492
+ iv: iv.toString('base64'),
493
+ tag: tag.toString('base64'),
494
+ data: encrypted.toString('base64'),
495
+ });
496
+ }
497
+ function decryptValue(stored, key) {
498
+ const parsed = JSON.parse(stored);
499
+ const decipher = crypto.createDecipheriv('aes-256-gcm', key, Buffer.from(parsed.iv, 'base64'));
500
+ decipher.setAuthTag(Buffer.from(parsed.tag, 'base64'));
501
+ return decipher.update(Buffer.from(parsed.data, 'base64'), undefined, 'utf-8') + decipher.final('utf-8');
502
+ }
503
+ class FileKeytar {
504
+ getKey() {
505
+ if (!this.keyPromise) {
506
+ this.keyPromise = deriveMachineKey();
507
+ }
508
+ return this.keyPromise;
509
+ }
510
+ async read() {
511
+ try {
512
+ const content = await fs.readFile(CREDENTIALS_FILE_PATH, 'utf-8');
513
+ return JSON.parse(content);
514
+ }
515
+ catch {
516
+ return {};
517
+ }
518
+ }
519
+ async write(store) {
520
+ await fs.mkdir(path.dirname(CREDENTIALS_FILE_PATH), { recursive: true });
521
+ await fs.writeFile(CREDENTIALS_FILE_PATH, `${JSON.stringify(store, null, 2)}\n`, { encoding: 'utf-8', mode: 0o600 });
522
+ }
523
+ storeKey(service, account) {
524
+ return `${service}:${account}`;
525
+ }
526
+ async getPassword(service, account) {
527
+ const store = await this.read();
528
+ const raw = store[this.storeKey(service, account)];
529
+ if (raw === undefined || raw === null) {
530
+ return null;
531
+ }
532
+ try {
533
+ const key = await this.getKey();
534
+ return decryptValue(raw, key);
535
+ }
536
+ catch {
537
+ // Unreadable entry (wrong machine, corrupt, or legacy plaintext) — treat as missing.
538
+ return null;
539
+ }
540
+ }
541
+ async setPassword(service, account, password) {
542
+ const [store, key] = await Promise.all([this.read(), this.getKey()]);
543
+ store[this.storeKey(service, account)] = encryptValue(password, key);
544
+ await this.write(store);
545
+ }
546
+ async deletePassword(service, account) {
547
+ const store = await this.read();
548
+ const k = this.storeKey(service, account);
549
+ if (!(k in store)) {
550
+ return false;
551
+ }
552
+ delete store[k];
553
+ await this.write(store);
554
+ return true;
555
+ }
556
+ }
425
557
  async function getKeytarModule() {
426
558
  if (!keytarModulePromise) {
427
559
  keytarModulePromise = import('keytar')
428
560
  .then((loaded) => loaded.default)
429
561
  .catch((error) => {
562
+ const message = error instanceof Error ? error.message : String(error);
563
+ if (/libsecret|dlopen|ERR_DLOPEN_FAILED/i.test(message)) {
564
+ console.error(chalk.yellow('System keychain unavailable; credentials will be stored encrypted at ' +
565
+ CREDENTIALS_FILE_PATH + ' using a machine-bound key. ' +
566
+ 'Set OML_PLATFORM_API_KEY for non-interactive environments.'));
567
+ return new FileKeytar();
568
+ }
430
569
  keytarModulePromise = undefined;
431
- throw new Error(formatKeytarLoadError(error));
570
+ throw new Error(`Secure credential storage is unavailable: ${message}`);
432
571
  });
433
572
  }
434
573
  return keytarModulePromise;
435
574
  }
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.';
575
+ function decodeJwtClaims(token) {
576
+ try {
577
+ const payload = token.split('.')[1];
578
+ if (!payload) {
579
+ return {};
580
+ }
581
+ const json = JSON.parse(Buffer.from(payload.replace(/-/g, '+').replace(/_/g, '/'), 'base64').toString('utf-8'));
582
+ const userMeta = json['user_metadata'];
583
+ const appMeta = json['app_metadata'];
584
+ return {
585
+ userId: typeof json['sub'] === 'string' ? json['sub'] : undefined,
586
+ email: typeof json['email'] === 'string' ? json['email'] : undefined,
587
+ userLabel: userMeta && typeof userMeta['user_name'] === 'string'
588
+ ? userMeta['user_name'] : undefined,
589
+ tier: appMeta && typeof appMeta['tier'] === 'string'
590
+ ? appMeta['tier'] : undefined,
591
+ };
592
+ }
593
+ catch {
594
+ return {};
441
595
  }
442
- return `Secure credential storage is unavailable: ${message}`;
443
596
  }
444
597
  //# 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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"}
package/out/cli.js CHANGED
@@ -22,17 +22,17 @@ export function getWorkspaceCommands() {
22
22
  {
23
23
  name: 'render [options]',
24
24
  description: 'lint the workspace, then render markdown files to static html',
25
- usage: 'render -m <input-folder> -b <output-folder> [--clean] [-c <ontology-iri>]'
25
+ usage: 'render -m <input-folder> -b <output-folder> [-c <ontology-iri>]'
26
26
  },
27
27
  {
28
28
  name: 'export [options]',
29
29
  description: 'export asserted OWL files (no reasoning)',
30
- usage: 'export [-o <dir>] [-f <ext>] [--clean] [--pretty]'
30
+ usage: 'export [-o <dir>] [-f <ext>] [--pretty]'
31
31
  },
32
32
  {
33
33
  name: 'reason [options]',
34
34
  description: 'run workspace consistency checks (or persist assertions/entailments with --owl)',
35
- usage: 'reason [-o <dir>] [-f <ext>] [--clean] [--pretty] [-e <true|false>]'
35
+ usage: 'reason [-o <dir>] [-f <ext>] [--pretty] [-e <true|false>]'
36
36
  },
37
37
  {
38
38
  name: 'validate [options]',
@@ -79,14 +79,20 @@ export async function runCli(argv = process.argv) {
79
79
  .option('-w, --workspace <workspace>', 'workspace root used by REST facade initialize (default: cwd)')
80
80
  .description('start an OML server')
81
81
  .action(async (port, options) => {
82
+ const [entitlementCache, deviceId] = await Promise.all([
83
+ authService.getEntitlementCache().then((c) => c ?? undefined),
84
+ authService.getDeviceId().catch(() => undefined),
85
+ ]);
82
86
  if (process.env.OML_PLATFORM_API_KEY?.trim()) {
83
- await serverStartAction(port, { ...options, auth: await resolveServerStartAuth() });
87
+ await serverStartAction(port, { ...options, auth: await resolveServerStartAuth(), entitlementCache });
84
88
  return;
85
89
  }
86
90
  await serverRunAction(port, {
87
91
  ...options,
88
92
  authService,
89
93
  auth: await resolveServerRunAuth(authService),
94
+ entitlementCache,
95
+ deviceId,
90
96
  });
91
97
  });
92
98
  program
@@ -129,7 +135,6 @@ export async function runCli(argv = process.argv) {
129
135
  .command('render')
130
136
  .requiredOption('-m, --md <input-folder>', 'folder containing markdown files to render')
131
137
  .requiredOption('-b, --web <output-folder>', 'folder where rendered static site files are written')
132
- .option('--clean', 'remove output folder before render')
133
138
  .option('-c, --context <model-path>', 'workspace-relative .oml model path used as default navigation context for wikilinks')
134
139
  .description('lint the workspace, then render markdown files to static html')
135
140
  .action(async (...args) => {
@@ -151,7 +156,6 @@ export async function runCli(argv = process.argv) {
151
156
  .command('export')
152
157
  .option('-o, --owl <dir>', 'folder where RDF output files are written')
153
158
  .option('-f, --format <ext>', 'RDF format extension: ttl, trig, nt, nq, or n3', 'ttl')
154
- .option('--clean', 'remove output folder before export')
155
159
  .option('--pretty', 'pretty-print Turtle/TriG output with blank lines between top-level blocks')
156
160
  .description('export asserted OWL files (no reasoning)')
157
161
  .action(async (...args) => {
@@ -173,7 +177,6 @@ export async function runCli(argv = process.argv) {
173
177
  .command('reason')
174
178
  .option('-o, --owl <dir>', 'persist assertions/entailments to folder (default: check-only with no persistence)')
175
179
  .option('-f, --format <ext>', 'RDF format extension: ttl, trig, nt, nq, or n3', 'ttl')
176
- .option('--clean', 'remove output folder before reason (only when --owl is provided)')
177
180
  .option('--pretty', 'pretty-print Turtle/TriG output with blank lines between top-level blocks (only when --owl is provided)')
178
181
  .option('-u, --unique-names-assumption [value]', 'enable or disable the unique names assumption', parseBooleanOption, true)
179
182
  .option('-e, --explanation [value]', 'enable or disable inconsistency explanations', parseBooleanOption, false)
@@ -286,23 +289,17 @@ function resolveServerRequestToken() {
286
289
  async function resolveServerStartAuth() {
287
290
  const apiKey = process.env.OML_PLATFORM_API_KEY?.trim();
288
291
  if (!apiKey) {
289
- throw new CliExitError('OML_PLATFORM_API_KEY is not set. For interactive use, run \'oml start\'. ' +
290
- 'For non-interactive use, set OML_PLATFORM_API_KEY and retry.');
292
+ throw new CliExitError('OML_PLATFORM_API_KEY is required for non-interactive server start. ' +
293
+ 'Unset it and run \'oml start\' again to use interactive OAuth login instead.');
291
294
  }
292
295
  return { accessToken: apiKey };
293
296
  }
294
297
  async function resolveServerRunAuth(authService) {
295
- let snapshot;
296
- try {
297
- snapshot = await authService.getServerAuthSnapshot();
298
- }
299
- catch {
298
+ if (!(await authService.hasStoredCredential())) {
299
+ console.error(chalk.cyan('Authentication required to start the server. Signing in...'));
300
300
  await authService.login({});
301
- snapshot = await authService.getServerAuthSnapshot();
302
301
  }
303
- return {
304
- accessToken: snapshot.accessToken,
305
- };
302
+ return { accessToken: (await authService.getServerAuthSnapshot()).accessToken };
306
303
  }
307
304
  function formatDetailedError(error) {
308
305
  if (!(error instanceof Error)) {