@oml/cli 0.12.0 → 0.14.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.
Files changed (77) hide show
  1. package/README.md +29 -21
  2. package/out/{auth.d.ts → auth/auth.d.ts} +7 -0
  3. package/out/{auth.js → auth/auth.js} +42 -3
  4. package/out/auth/auth.js.map +1 -0
  5. package/out/{platform-constants.js → auth/constants.js} +1 -1
  6. package/out/auth/constants.js.map +1 -0
  7. package/out/{platform.d.ts → auth/platform.d.ts} +5 -7
  8. package/out/{platform.js → auth/platform.js} +39 -17
  9. package/out/auth/platform.js.map +1 -0
  10. package/out/cli.d.ts +6 -0
  11. package/out/cli.js +214 -59
  12. package/out/cli.js.map +1 -1
  13. package/out/commands/export.d.ts +8 -0
  14. package/out/commands/export.js +27 -0
  15. package/out/commands/export.js.map +1 -0
  16. package/out/commands/lint.d.ts +22 -2
  17. package/out/commands/lint.js +64 -18
  18. package/out/commands/lint.js.map +1 -1
  19. package/out/commands/reason.d.ts +2 -9
  20. package/out/commands/reason.js +52 -48
  21. package/out/commands/reason.js.map +1 -1
  22. package/out/commands/render.d.ts +1 -9
  23. package/out/commands/render.js +15 -726
  24. package/out/commands/render.js.map +1 -1
  25. package/out/commands/server/actions.d.ts +22 -0
  26. package/out/commands/server/actions.js +394 -0
  27. package/out/commands/server/actions.js.map +1 -0
  28. package/out/commands/server/require.d.ts +1 -0
  29. package/out/commands/server/require.js +89 -0
  30. package/out/commands/server/require.js.map +1 -0
  31. package/out/commands/server/rest.d.ts +2 -0
  32. package/out/commands/server/rest.js +117 -0
  33. package/out/commands/server/rest.js.map +1 -0
  34. package/out/commands/validate.d.ts +3 -3
  35. package/out/commands/validate.js +35 -171
  36. package/out/commands/validate.js.map +1 -1
  37. package/package.json +5 -7
  38. package/src/{auth.ts → auth/auth.ts} +54 -3
  39. package/src/{platform.ts → auth/platform.ts} +41 -17
  40. package/src/cli.ts +249 -59
  41. package/src/commands/export.ts +54 -0
  42. package/src/commands/lint.ts +88 -18
  43. package/src/commands/reason.ts +69 -56
  44. package/src/commands/render.ts +23 -995
  45. package/src/commands/server/actions.ts +480 -0
  46. package/src/commands/server/require.ts +99 -0
  47. package/src/commands/server/rest.ts +135 -0
  48. package/src/commands/validate.ts +46 -207
  49. package/out/auth.js.map +0 -1
  50. package/out/backend/backend-types.d.ts +0 -21
  51. package/out/backend/backend-types.js +0 -3
  52. package/out/backend/backend-types.js.map +0 -1
  53. package/out/backend/create-backend.d.ts +0 -2
  54. package/out/backend/create-backend.js +0 -6
  55. package/out/backend/create-backend.js.map +0 -1
  56. package/out/backend/direct-backend.d.ts +0 -20
  57. package/out/backend/direct-backend.js +0 -150
  58. package/out/backend/direct-backend.js.map +0 -1
  59. package/out/backend/reasoned-output.d.ts +0 -38
  60. package/out/backend/reasoned-output.js +0 -568
  61. package/out/backend/reasoned-output.js.map +0 -1
  62. package/out/commands/closure.d.ts +0 -33
  63. package/out/commands/closure.js +0 -537
  64. package/out/commands/closure.js.map +0 -1
  65. package/out/commands/compile.d.ts +0 -11
  66. package/out/commands/compile.js +0 -63
  67. package/out/commands/compile.js.map +0 -1
  68. package/out/platform-constants.js.map +0 -1
  69. package/out/platform.js.map +0 -1
  70. package/src/backend/backend-types.ts +0 -27
  71. package/src/backend/create-backend.ts +0 -8
  72. package/src/backend/direct-backend.ts +0 -169
  73. package/src/backend/reasoned-output.ts +0 -697
  74. package/src/commands/closure.ts +0 -624
  75. package/src/commands/compile.ts +0 -88
  76. /package/out/{platform-constants.d.ts → auth/constants.d.ts} +0 -0
  77. /package/src/{platform-constants.ts → auth/constants.ts} +0 -0
package/out/cli.js CHANGED
@@ -4,22 +4,58 @@ import { Command } from 'commander';
4
4
  import * as fs from 'node:fs/promises';
5
5
  import * as path from 'node:path';
6
6
  import * as url from 'node:url';
7
- import { OmlCliAuthService } from './auth.js';
8
- import { compileAction } from './commands/compile.js';
7
+ import { OmlCliAuthService } from './auth/auth.js';
8
+ import { exchangeApiToken } from '@oml/platform';
9
+ import { DEFAULT_API_BASE_URL } from './auth/constants.js';
10
+ import { exportAction } from './commands/export.js';
9
11
  import { lintAction } from './commands/lint.js';
10
12
  import { renderAction } from './commands/render.js';
13
+ import { serverStartAction, serverRunAction, serverStatusAction, serverStopAction } from './commands/server/actions.js';
14
+ import { assertServerRunning } from './commands/server/require.js';
11
15
  import { notifyIfCliUpdateAvailable } from './update.js';
12
16
  import { validateAction } from './commands/validate.js';
13
17
  import { CliExitError } from './cli-error.js';
14
- import { initializePlatform, disposePlatform, trackCommand } from './platform.js';
18
+ import { initializePlatform, disposePlatform, trackCommand } from './auth/platform.js';
15
19
  const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
20
+ let debugEnabled = false;
21
+ export function getWorkspaceCommands() {
22
+ return [
23
+ { name: 'lint', description: 'lints OML files and prints any syntax or validation errors' },
24
+ {
25
+ name: 'render [options]',
26
+ description: 'lint the workspace, then render markdown files to static html',
27
+ usage: 'render -m <input-folder> -b <output-folder> [-c <ontology-iri>] [--only]'
28
+ },
29
+ {
30
+ name: 'export [options]',
31
+ description: 'export OWL files including reasoned entailments',
32
+ usage: 'export [-o <dir>] [-f <ext>] [--clean] [--pretty] [--only]'
33
+ },
34
+ {
35
+ name: 'reason [options]',
36
+ description: 'run workspace consistency checks via /v0/reason (check-only)',
37
+ usage: 'reason [-e <true|false>] [--only]'
38
+ },
39
+ {
40
+ name: 'validate [options]',
41
+ description: 'validate table-editor SHACL blocks in workspace markdown files',
42
+ usage: 'validate [--only]'
43
+ },
44
+ ];
45
+ }
16
46
  export async function runCli(argv = process.argv) {
47
+ assertNoMalformedShortFlags(argv);
48
+ debugEnabled = hasDebugFlag(argv);
49
+ if (debugEnabled) {
50
+ process.env.OML_PLATFORM_DEBUG = '1';
51
+ }
17
52
  const packagePath = path.resolve(__dirname, '..', 'package.json');
18
53
  const packageContent = await fs.readFile(packagePath, 'utf-8');
19
54
  const packageJson = JSON.parse(packageContent);
20
55
  const updateCheck = notifyIfCliUpdateAvailable(packageJson.version);
21
56
  const program = new Command();
22
- program.version(packageJson.version);
57
+ program.version(packageJson.version, '-v, --version', 'output the version number');
58
+ program.option('-d, --debug', 'print detailed error diagnostics (stack traces and nested causes)');
23
59
  const authService = new OmlCliAuthService();
24
60
  program
25
61
  .command('login')
@@ -41,12 +77,15 @@ export async function runCli(argv = process.argv) {
41
77
  });
42
78
  program
43
79
  .command('lint')
44
- .option('-w, --workspace <dir>', 'workspace root used to resolve cross-file references', '.')
45
80
  .description('lints OML files and prints any syntax or validation errors')
46
81
  .action(async (...args) => {
47
82
  const done = trackCommand('oml-lint');
48
83
  try {
49
- await lintAction(...args);
84
+ const authToken = await resolveServerRequestToken(authService);
85
+ await lintAction({
86
+ ...(args[0] ?? {}),
87
+ authToken,
88
+ });
50
89
  done();
51
90
  }
52
91
  catch (err) {
@@ -56,23 +95,18 @@ export async function runCli(argv = process.argv) {
56
95
  });
57
96
  program
58
97
  .command('render')
59
- .option('-w, --workspace <workspace-folder>', 'workspace root used to resolve workspace:/ links (default: current directory)')
60
- .requiredOption('-md, --md <input-folder>', 'folder containing markdown files to render')
61
- .requiredOption('-web, --web <output-folder>', 'folder where rendered static site files are written')
62
- .option('-owl, --owl <dir>', 'folder where compiled RDF and entailment files are written')
63
- .option('-f, --format <ext>', 'RDF format extension for compile/reason output: ttl, trig, nt, nq, or n3', 'ttl')
64
- .option('-c, --context <model-uri>', 'default model URI/path used for markdown files without contextUri; also enables wikilink template page generation')
65
- .option('--clean', 'remove output folders before rebuilding')
66
- .option('--only', 'skip reason/compile/lint and render from the existing owl output folder')
67
- .option('--pretty', 'pretty-print Turtle/TriG output with blank lines between top-level blocks')
68
- .option('-u, --unique-names-assumption [value]', 'enable or disable the unique names assumption', parseBooleanOption, true)
69
- .option('-e, --explanations [value]', 'enable or disable inconsistency explanations', parseBooleanOption, true)
70
- .option('-p, --profile [value]', 'include phase timings in the reasoner result', parseBooleanOption, false)
71
- .description('reason the workspace, then render markdown files under the selected markdown folder to static html and copy referenced non-markdown assets')
98
+ .requiredOption('-m, --md <input-folder>', 'folder containing markdown files to render')
99
+ .requiredOption('-b, --web <output-folder>', 'folder where rendered static site files are written')
100
+ .option('-c, --context <ontology-iri>', 'ontology IRI used as default navigation context for wikilinks')
101
+ .description('lint the workspace, then render markdown files to static html')
72
102
  .action(async (...args) => {
73
103
  const done = trackCommand('oml-render');
74
104
  try {
75
- await renderAction(...args);
105
+ const authToken = await resolveServerRequestToken(authService);
106
+ await renderAction({
107
+ ...(args[0] ?? {}),
108
+ authToken,
109
+ });
76
110
  done();
77
111
  }
78
112
  catch (err) {
@@ -81,18 +115,20 @@ export async function runCli(argv = process.argv) {
81
115
  }
82
116
  });
83
117
  program
84
- .command('compile')
85
- .option('-w, --workspace <dir>', 'workspace root used to resolve and compile OML files', '.')
86
- .option('-owl, --owl <dir>', 'folder where compiled RDF files are written')
118
+ .command('export')
119
+ .option('-o, --owl <dir>', 'folder where RDF output files are written')
87
120
  .option('-f, --format <ext>', 'RDF format extension: ttl, trig, nt, nq, or n3', 'ttl')
88
- .option('--clean', 'remove output folder before compiling')
89
- .option('--only', 'skip lint and compile from the current workspace state')
121
+ .option('--clean', 'remove output folder before export')
90
122
  .option('--pretty', 'pretty-print Turtle/TriG output with blank lines between top-level blocks')
91
- .description('compile OML files to RDF and write them to an output folder')
123
+ .description('export OWL files including reasoned entailments')
92
124
  .action(async (...args) => {
93
- const done = trackCommand('oml-compile');
125
+ const done = trackCommand('oml-export');
94
126
  try {
95
- await compileAction(...args);
127
+ const authToken = await resolveServerRequestToken(authService);
128
+ await exportAction({
129
+ ...(args[0] ?? {}),
130
+ authToken,
131
+ });
96
132
  done();
97
133
  }
98
134
  catch (err) {
@@ -102,22 +138,15 @@ export async function runCli(argv = process.argv) {
102
138
  });
103
139
  program
104
140
  .command('reason')
105
- .option('-w, --workspace <dir>', 'workspace root used to resolve and compile OML files', '.')
106
- .option('-owl, --owl <dir>', 'folder where compiled RDF and entailment files are written')
107
- .option('-f, --format <ext>', 'RDF format extension for compile output: ttl, trig, nt, nq, or n3', 'ttl')
108
- .option('--clean', 'remove output folder before compiling')
109
- .option('--only', 'skip compile/lint and reason from the existing owl output folder')
110
- .option('--pretty', 'pretty-print Turtle/TriG output with blank lines between top-level blocks')
111
- .option('-c, --check-only', 'only check consistency; skip entailment materialization and file output')
112
- .option('-u, --unique-names-assumption [value]', 'enable or disable the unique names assumption', parseBooleanOption, true)
113
- .option('-e, --explanations [value]', 'enable or disable inconsistency explanations', parseBooleanOption, true)
114
- .option('-p, --profile [value]', 'include phase timings in the reasoner result', parseBooleanOption, false)
115
- .description('compile OML files, then run consistency checking for every ontology in dependency order')
141
+ .option('-e, --explanation [value]', 'enable or disable inconsistency explanations', parseBooleanOption, true)
142
+ .option('--only', 'skip lint and reason from the current server workspace state')
143
+ .description('run workspace consistency checks via /v0/reason (check-only)')
116
144
  .action(async (opts) => {
117
145
  const done = trackCommand('oml-reason');
118
146
  try {
119
147
  const { reasonAction } = await import('./commands/reason.js');
120
- await reasonAction(opts);
148
+ const authToken = await resolveServerRequestToken(authService);
149
+ await reasonAction({ ...opts, authToken });
121
150
  done();
122
151
  }
123
152
  catch (err) {
@@ -127,21 +156,16 @@ export async function runCli(argv = process.argv) {
127
156
  });
128
157
  program
129
158
  .command('validate')
130
- .requiredOption('-md, --md <input-folder>', 'folder containing markdown files to validate recursively')
131
- .option('-w, --workspace <dir>', 'workspace root used to resolve and compile OML files', '.')
132
- .option('-owl, --owl <dir>', 'folder where compiled RDF and entailment files are written')
133
- .option('-f, --format <ext>', 'RDF format extension for compile output: ttl, trig, nt, nq, or n3', 'ttl')
134
- .option('--clean', 'remove output folder before compiling')
135
- .option('--only', 'skip compile/lint and reason from the existing owl output folder')
136
- .option('--pretty', 'pretty-print Turtle/TriG output with blank lines between top-level blocks')
137
- .option('-u, --unique-names-assumption [value]', 'enable or disable the unique names assumption', parseBooleanOption, true)
138
- .option('-e, --explanations [value]', 'enable or disable inconsistency explanations', parseBooleanOption, true)
139
- .option('-p, --profile [value]', 'include phase timings in the reasoner result', parseBooleanOption, false)
140
- .description('compile and reason the workspace, then validate nested markdown table-editor SHACL blocks against their context models')
159
+ .option('--only', 'skip lint and validate markdown blocks only')
160
+ .description('validate table-editor SHACL blocks in workspace markdown files')
141
161
  .action(async (...args) => {
142
162
  const done = trackCommand('oml-validate');
143
163
  try {
144
- await validateAction(...args);
164
+ const authToken = await resolveServerRequestToken(authService);
165
+ await validateAction({
166
+ ...(args[0] ?? {}),
167
+ authToken,
168
+ });
145
169
  done();
146
170
  }
147
171
  catch (err) {
@@ -149,10 +173,48 @@ export async function runCli(argv = process.argv) {
149
173
  throw err;
150
174
  }
151
175
  });
176
+ const server = program
177
+ .command('server')
178
+ .description('manage the standalone OML language server daemon');
179
+ server
180
+ .command('start [port]')
181
+ .option('-p, --port <port>', 'bind port (default: auto-select free port)')
182
+ .option('--workspace <workspace>', 'workspace root used by REST facade initialize (default: cwd)')
183
+ .description('start the OML server as a background daemon (CI/CD, requires OML_PLATFORM_API_KEY)')
184
+ .action(async (port, options) => {
185
+ await serverStartAction(port, { ...options, auth: await resolveServerStartAuth() });
186
+ });
187
+ server
188
+ .command('run [port]')
189
+ .option('-p, --port <port>', 'bind port (default: auto-select free port)')
190
+ .option('--workspace <workspace>', 'workspace root (default: cwd)')
191
+ .description('run the OML server in the foreground with interactive authentication (Ctrl-C to stop)')
192
+ .action(async (port, options) => {
193
+ await serverRunAction(port, { ...options, auth: await resolveServerRunAuth(authService) });
194
+ });
195
+ server
196
+ .command('stop')
197
+ .description('stop the OML language server daemon')
198
+ .action(async () => {
199
+ await serverStopAction();
200
+ });
201
+ server
202
+ .command('status')
203
+ .description('print server daemon status')
204
+ .action(async () => {
205
+ await serverStatusAction();
206
+ });
152
207
  program.hook('preAction', async (_thisCommand, actionCommand) => {
153
- if (actionCommand.name() === 'login' || actionCommand.name() === 'logout' || actionCommand.name() === 'whoami') {
208
+ if (actionCommand.name() === 'login'
209
+ || actionCommand.name() === 'logout'
210
+ || actionCommand.name() === 'whoami'
211
+ || actionCommand.name() === 'start'
212
+ || actionCommand.name() === 'run'
213
+ || actionCommand.name() === 'stop'
214
+ || actionCommand.name() === 'status') {
154
215
  return;
155
216
  }
217
+ await assertServerRunning();
156
218
  // Require either GitHub auth or API key, then connect to platform
157
219
  if (!process.env.OML_PLATFORM_API_KEY) {
158
220
  await authService.ensureAuthenticated('OML CLI');
@@ -167,14 +229,46 @@ export async function runCli(argv = process.argv) {
167
229
  }
168
230
  await updateCheck;
169
231
  }
232
+ function assertNoMalformedShortFlags(argv) {
233
+ // Enforce explicit short-flag syntax (`-m value`) and long flags (`--md`).
234
+ // This prevents accidental typos like `-md`, which Commander interprets as `-m d`.
235
+ let stopOptionParsing = false;
236
+ for (const token of argv.slice(2)) {
237
+ if (stopOptionParsing) {
238
+ continue;
239
+ }
240
+ if (token === '--') {
241
+ stopOptionParsing = true;
242
+ continue;
243
+ }
244
+ if (token.startsWith('---')) {
245
+ throw new Error(`Malformed flag '${token}'. Use long flags as '--name <value>' or '--name=<value>'.`);
246
+ }
247
+ if (token === '--=' || token.startsWith('--=')) {
248
+ throw new Error(`Malformed flag '${token}'. Use long flags as '--name <value>' or '--name=<value>'.`);
249
+ }
250
+ if (/^-[^-].+/.test(token) && token.length > 2) {
251
+ throw new Error(`Malformed flag '${token}'. Use short flags as '-x <value>' or long flags as '--name <value>'.`);
252
+ }
253
+ }
254
+ }
170
255
  export function reportCliError(error) {
171
256
  const exitCode = error instanceof CliExitError ? error.exitCode : 1;
172
- const message = error instanceof Error ? error.message : String(error);
257
+ const message = debugEnabled
258
+ ? formatDetailedError(error)
259
+ : (error instanceof Error ? error.message : String(error));
173
260
  if (message) {
174
261
  console.error(message);
175
262
  }
176
263
  return exitCode;
177
264
  }
265
+ process.on('unhandledRejection', (error) => {
266
+ const message = debugEnabled
267
+ ? formatDetailedError(error)
268
+ : (error instanceof Error ? error.message : String(error));
269
+ console.error(chalk.red(message));
270
+ process.exitCode = 1;
271
+ });
178
272
  function parseBooleanOption(value) {
179
273
  if (typeof value === 'boolean') {
180
274
  return value;
@@ -188,9 +282,70 @@ function parseBooleanOption(value) {
188
282
  }
189
283
  throw new Error(`Expected a boolean value, received '${value}'.`);
190
284
  }
191
- process.on('unhandledRejection', (error) => {
192
- const message = error instanceof Error ? error.message : String(error);
193
- console.error(chalk.red(message));
194
- process.exitCode = 1;
195
- });
285
+ function hasDebugFlag(argv) {
286
+ return argv.includes('--debug') || argv.includes('-d');
287
+ }
288
+ async function resolveServerRequestToken(authService) {
289
+ const apiKey = process.env.OML_PLATFORM_API_KEY?.trim();
290
+ if (apiKey && apiKey.length > 0) {
291
+ return apiKey;
292
+ }
293
+ const snapshot = await authService.getServerAuthSnapshot();
294
+ return snapshot.accessToken;
295
+ }
296
+ async function resolveServerStartAuth() {
297
+ const apiKey = process.env.OML_PLATFORM_API_KEY?.trim();
298
+ if (!apiKey) {
299
+ throw new CliExitError('OML_PLATFORM_API_KEY is not set. oml server start requires an API key for non-interactive use. ' +
300
+ 'For interactive use, run \'oml server run\' instead.');
301
+ }
302
+ const oidcToken = process.env.OML_CI_TOKEN?.trim();
303
+ const apiBaseUrl = process.env.OML_PLATFORM_API_URL?.trim() ?? DEFAULT_API_BASE_URL;
304
+ const result = await exchangeApiToken(apiBaseUrl, apiKey, oidcToken || undefined);
305
+ return { accessToken: result.accessToken };
306
+ }
307
+ async function resolveServerRunAuth(authService) {
308
+ await authService.ensureAuthenticated('oml server run');
309
+ const snapshot = await authService.getServerAuthSnapshot();
310
+ if (!snapshot.refreshToken || snapshot.expiresAtMs === undefined) {
311
+ throw new CliExitError('Authentication session is incomplete. Run oml login again.');
312
+ }
313
+ return {
314
+ accessToken: snapshot.accessToken,
315
+ refreshToken: snapshot.refreshToken,
316
+ expiresAtMs: snapshot.expiresAtMs,
317
+ onRefresh: async (newAccessToken, newRefreshToken, newExpiresAtMs) => {
318
+ await authService.storeRefreshedTokens(newAccessToken, newRefreshToken, newExpiresAtMs);
319
+ },
320
+ };
321
+ }
322
+ function formatDetailedError(error) {
323
+ if (!(error instanceof Error)) {
324
+ return String(error);
325
+ }
326
+ const lines = [];
327
+ let current = error;
328
+ let depth = 0;
329
+ while (current instanceof Error && depth < 8) {
330
+ const prefix = depth === 0 ? 'Error' : `Caused by (${depth})`;
331
+ const code = getErrorCode(current);
332
+ lines.push(`${prefix}: ${code ? `[${code}] ` : ''}${current.name}: ${current.message}`);
333
+ if (current.stack) {
334
+ lines.push(current.stack);
335
+ }
336
+ current = getErrorCause(current);
337
+ depth += 1;
338
+ }
339
+ if (current !== undefined && current !== null) {
340
+ lines.push(`Caused by (${depth}): ${String(current)}`);
341
+ }
342
+ return lines.join('\n');
343
+ }
344
+ function getErrorCode(error) {
345
+ const code = error.code;
346
+ return typeof code === 'string' ? code : undefined;
347
+ }
348
+ function getErrorCause(error) {
349
+ return error.cause;
350
+ }
196
351
  //# sourceMappingURL=cli.js.map
package/out/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export type ExportOptions = {
2
+ owl?: string;
3
+ format?: string;
4
+ clean?: boolean;
5
+ pretty?: boolean;
6
+ authToken?: string;
7
+ };
8
+ export declare const exportAction: (opts: ExportOptions) => Promise<void>;
@@ -0,0 +1,27 @@
1
+ // Copyright (c) 2026 Modelware. All rights reserved.
2
+ import chalk from 'chalk';
3
+ import * as path from 'node:path';
4
+ import { failCli } from '../cli-error.js';
5
+ import { formatDuration } from '../util.js';
6
+ import { restPost } from './server/rest.js';
7
+ import { lintAction } from './lint.js';
8
+ export const exportAction = async (opts) => {
9
+ await lintAction({ authToken: opts.authToken });
10
+ const startedAt = Date.now();
11
+ const result = await restPost('/v0/export', {
12
+ ...opts,
13
+ only: true,
14
+ }, opts.authToken);
15
+ if (!result.success) {
16
+ failCli(chalk.red(result.error?.trim() || result.assertedExport?.error?.trim() || 'export failed.'));
17
+ }
18
+ const written = Number(result.assertedExport?.filesWritten ?? 0);
19
+ if (written === 0) {
20
+ console.log(chalk.yellow('No .oml files found in server workspace.'));
21
+ return;
22
+ }
23
+ const outputDir = result.assertedExport?.outputDir ?? opts.owl ?? path.join(process.cwd(), 'build', 'owl');
24
+ const reasoned = Number(result.reason?.ontologiesReasoned ?? written);
25
+ console.log(chalk.green(`export: ${written} OML file(s) exported with entailments (${reasoned} ontology checks) in ${path.relative(process.cwd(), outputDir) || outputDir} [${formatDuration(Date.now() - startedAt)}]`));
26
+ };
27
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAUvC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,IAAmB,EAAiB,EAAE;IACrE,MAAM,UAAU,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAgB1B,YAAY,EAAE;QACb,GAAG,IAAI;QACP,IAAI,EAAE,IAAI;KACyB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAEzD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,gBAAgB,CAAC,CAAC,CAAC;IACzG,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;IACjE,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACtE,OAAO;IACX,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,EAAE,SAAS,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3G,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,IAAI,OAAO,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,OAAO,2CAA2C,QAAQ,wBAAwB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,IAAI,SAAS,KAAK,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9N,CAAC,CAAC"}
@@ -1,5 +1,25 @@
1
+ export type LintProblem = {
2
+ uri: string;
3
+ line: number;
4
+ column: number;
5
+ kind: 'error' | 'warning' | 'information' | 'hint' | 'unknown';
6
+ message: string;
7
+ };
8
+ export type LintPayload = {
9
+ success: boolean;
10
+ filesChecked: number;
11
+ errors: number;
12
+ warnings: number;
13
+ elapsedMs?: number;
14
+ returnedProblems?: number;
15
+ totalProblems?: number;
16
+ truncated?: boolean;
17
+ problems?: LintProblem[];
18
+ error?: string;
19
+ };
1
20
  export type LintOptions = {
2
- workspace?: string;
3
- workspaceRoot?: string;
21
+ authToken?: string;
4
22
  };
23
+ export declare function printLintDiagnostics(result: LintPayload): void;
24
+ export declare function formatLintSummary(result: LintPayload, elapsedMs: number): string;
5
25
  export declare const lintAction: (opts: LintOptions) => Promise<void>;
@@ -1,27 +1,73 @@
1
1
  // Copyright (c) 2026 Modelware. All rights reserved.
2
2
  import chalk from 'chalk';
3
- import { createBackend } from '../backend/create-backend.js';
3
+ import * as path from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
4
5
  import { failCli } from '../cli-error.js';
5
6
  import { formatDuration } from '../util.js';
7
+ import { restPost } from './server/rest.js';
8
+ export function printLintDiagnostics(result) {
9
+ const problems = Array.isArray(result.problems) ? result.problems : [];
10
+ if (problems.length === 0) {
11
+ return;
12
+ }
13
+ for (const problem of problems) {
14
+ const location = `${formatProblemUri(problem.uri)}:${Math.max(1, Number(problem.line ?? 1))}:${Math.max(1, Number(problem.column ?? 1))}`;
15
+ const kind = String(problem.kind ?? 'unknown').toLowerCase();
16
+ const kindLabel = kind === 'error'
17
+ ? chalk.red(kind)
18
+ : (kind === 'warning'
19
+ ? chalk.yellow(kind)
20
+ : chalk.cyan(kind));
21
+ console.log(`${location} ${kindLabel} ${String(problem.message ?? '').trim()}`);
22
+ }
23
+ if (result.truncated) {
24
+ const returned = Number(result.returnedProblems ?? problems.length);
25
+ const total = Number(result.totalProblems ?? returned);
26
+ console.log(chalk.yellow(`lint: showing ${returned} of ${total} problem(s); increase lint limit to see all.`));
27
+ }
28
+ }
29
+ export function formatLintSummary(result, elapsedMs) {
30
+ if (result.errors > 0 || result.warnings > 0) {
31
+ return `lint: ${result.filesChecked} OML file(s) checked with ${result.errors} error(s) and ${result.warnings} warning(s). [${formatDuration(elapsedMs)}]`;
32
+ }
33
+ return `lint: ${result.filesChecked} OML file(s) checked. [${formatDuration(elapsedMs)}]`;
34
+ }
6
35
  export const lintAction = async (opts) => {
7
36
  const startedAt = Date.now();
8
- const workspaceRoot = opts.workspace ?? opts.workspaceRoot ?? '.';
9
- const backend = createBackend();
10
- try {
11
- const result = await backend.validate(undefined, workspaceRoot);
12
- if (result.filesChecked === 0) {
13
- console.log(chalk.yellow(`No .oml files found under ${workspaceRoot}.`));
14
- return;
15
- }
16
- if (result.warnings > 0) {
17
- failCli(chalk.yellow(`lint: ${result.filesChecked} OML file(s) checked with ${result.warnings} warning(s). [${formatDuration(Date.now() - startedAt)}]`));
18
- }
19
- else {
20
- console.log(chalk.green(`lint: ${result.filesChecked} OML file(s) checked. [${formatDuration(Date.now() - startedAt)}]`));
21
- }
22
- }
23
- finally {
24
- await backend.dispose();
37
+ const result = await restPost('/v0/lint', {}, opts.authToken);
38
+ if (result.error && result.error.trim().length > 0) {
39
+ failCli(chalk.red(result.error.trim()));
40
+ }
41
+ if (result.filesChecked === 0) {
42
+ console.log(chalk.yellow('No .oml files found in server workspace.'));
43
+ return;
44
+ }
45
+ printLintDiagnostics(result);
46
+ const elapsedMs = typeof result.elapsedMs === 'number' && Number.isFinite(result.elapsedMs) && result.elapsedMs >= 0
47
+ ? result.elapsedMs
48
+ : Date.now() - startedAt;
49
+ if (result.errors > 0) {
50
+ failCli(chalk.red(formatLintSummary(result, elapsedMs)));
25
51
  }
52
+ if (result.warnings > 0) {
53
+ failCli(chalk.yellow(formatLintSummary(result, elapsedMs)));
54
+ }
55
+ console.log(chalk.green(formatLintSummary(result, elapsedMs)));
26
56
  };
57
+ function formatProblemUri(uri) {
58
+ const text = String(uri ?? '').trim();
59
+ if (!text) {
60
+ return '<unknown>';
61
+ }
62
+ if (!text.startsWith('file://')) {
63
+ return text;
64
+ }
65
+ try {
66
+ const filePath = fileURLToPath(text);
67
+ return path.relative(process.cwd(), filePath) || '.';
68
+ }
69
+ catch {
70
+ return text;
71
+ }
72
+ }
27
73
  //# sourceMappingURL=lint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAO5C,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,IAAiB,EAAiB,EAAE;IACjE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC;IAClE,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAChE,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6BAA6B,aAAa,GAAG,CAAC,CAAC,CAAC;YACzE,OAAO;QACX,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,YAAY,6BAA6B,MAAM,CAAC,QAAQ,iBAAiB,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9J,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,MAAM,CAAC,YAAY,0BAA0B,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9H,CAAC;IACL,CAAC;YAAS,CAAC;QACP,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,6 @@
1
1
  export type ReasonOptions = {
2
- workspace?: string;
3
- owl?: string;
4
- format?: string;
5
- clean?: boolean;
6
- pretty?: boolean;
7
2
  only?: boolean;
8
- checkOnly?: boolean;
9
- uniqueNamesAssumption?: boolean;
10
- explanations?: boolean;
11
- profile?: boolean;
3
+ explanation?: boolean;
4
+ authToken?: string;
12
5
  };
13
6
  export declare const reasonAction: (opts: ReasonOptions) => Promise<void>;