@uluops/cli 0.2.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 (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +825 -0
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +93 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/commands/analytics.d.ts +6 -0
  8. package/dist/commands/analytics.d.ts.map +1 -0
  9. package/dist/commands/analytics.js +445 -0
  10. package/dist/commands/analytics.js.map +1 -0
  11. package/dist/commands/auth.d.ts +6 -0
  12. package/dist/commands/auth.d.ts.map +1 -0
  13. package/dist/commands/auth.js +496 -0
  14. package/dist/commands/auth.js.map +1 -0
  15. package/dist/commands/completion.d.ts +7 -0
  16. package/dist/commands/completion.d.ts.map +1 -0
  17. package/dist/commands/completion.js +188 -0
  18. package/dist/commands/completion.js.map +1 -0
  19. package/dist/commands/config.d.ts +6 -0
  20. package/dist/commands/config.d.ts.map +1 -0
  21. package/dist/commands/config.js +279 -0
  22. package/dist/commands/config.js.map +1 -0
  23. package/dist/commands/definitions.d.ts +6 -0
  24. package/dist/commands/definitions.d.ts.map +1 -0
  25. package/dist/commands/definitions.js +229 -0
  26. package/dist/commands/definitions.js.map +1 -0
  27. package/dist/commands/deps.d.ts +6 -0
  28. package/dist/commands/deps.d.ts.map +1 -0
  29. package/dist/commands/deps.js +87 -0
  30. package/dist/commands/deps.js.map +1 -0
  31. package/dist/commands/exec.d.ts +6 -0
  32. package/dist/commands/exec.d.ts.map +1 -0
  33. package/dist/commands/exec.js +334 -0
  34. package/dist/commands/exec.js.map +1 -0
  35. package/dist/commands/executions.d.ts +6 -0
  36. package/dist/commands/executions.d.ts.map +1 -0
  37. package/dist/commands/executions.js +63 -0
  38. package/dist/commands/executions.js.map +1 -0
  39. package/dist/commands/forks.d.ts +6 -0
  40. package/dist/commands/forks.d.ts.map +1 -0
  41. package/dist/commands/forks.js +145 -0
  42. package/dist/commands/forks.js.map +1 -0
  43. package/dist/commands/issues.d.ts +6 -0
  44. package/dist/commands/issues.d.ts.map +1 -0
  45. package/dist/commands/issues.js +458 -0
  46. package/dist/commands/issues.js.map +1 -0
  47. package/dist/commands/models.d.ts +6 -0
  48. package/dist/commands/models.d.ts.map +1 -0
  49. package/dist/commands/models.js +156 -0
  50. package/dist/commands/models.js.map +1 -0
  51. package/dist/commands/projects.d.ts +6 -0
  52. package/dist/commands/projects.d.ts.map +1 -0
  53. package/dist/commands/projects.js +262 -0
  54. package/dist/commands/projects.js.map +1 -0
  55. package/dist/commands/render.d.ts +6 -0
  56. package/dist/commands/render.d.ts.map +1 -0
  57. package/dist/commands/render.js +59 -0
  58. package/dist/commands/render.js.map +1 -0
  59. package/dist/commands/runs.d.ts +6 -0
  60. package/dist/commands/runs.d.ts.map +1 -0
  61. package/dist/commands/runs.js +442 -0
  62. package/dist/commands/runs.js.map +1 -0
  63. package/dist/commands/taxonomy.d.ts +6 -0
  64. package/dist/commands/taxonomy.d.ts.map +1 -0
  65. package/dist/commands/taxonomy.js +45 -0
  66. package/dist/commands/taxonomy.js.map +1 -0
  67. package/dist/commands/translation.d.ts +6 -0
  68. package/dist/commands/translation.d.ts.map +1 -0
  69. package/dist/commands/translation.js +85 -0
  70. package/dist/commands/translation.js.map +1 -0
  71. package/dist/commands/versions.d.ts +6 -0
  72. package/dist/commands/versions.d.ts.map +1 -0
  73. package/dist/commands/versions.js +61 -0
  74. package/dist/commands/versions.js.map +1 -0
  75. package/dist/context.d.ts +85 -0
  76. package/dist/context.d.ts.map +1 -0
  77. package/dist/context.js +386 -0
  78. package/dist/context.js.map +1 -0
  79. package/dist/formatters/core.d.ts +31 -0
  80. package/dist/formatters/core.d.ts.map +1 -0
  81. package/dist/formatters/core.js +176 -0
  82. package/dist/formatters/core.js.map +1 -0
  83. package/dist/formatters/ops.d.ts +43 -0
  84. package/dist/formatters/ops.d.ts.map +1 -0
  85. package/dist/formatters/ops.js +112 -0
  86. package/dist/formatters/ops.js.map +1 -0
  87. package/dist/formatters/registry.d.ts +41 -0
  88. package/dist/formatters/registry.d.ts.map +1 -0
  89. package/dist/formatters/registry.js +167 -0
  90. package/dist/formatters/registry.js.map +1 -0
  91. package/dist/formatters/table.d.ts +18 -0
  92. package/dist/formatters/table.d.ts.map +1 -0
  93. package/dist/formatters/table.js +76 -0
  94. package/dist/formatters/table.js.map +1 -0
  95. package/dist/utils.d.ts +99 -0
  96. package/dist/utils.d.ts.map +1 -0
  97. package/dist/utils.js +201 -0
  98. package/dist/utils.js.map +1 -0
  99. package/package.json +57 -0
@@ -0,0 +1,442 @@
1
+ import { readFileSync, existsSync } from 'node:fs';
2
+ import { createOpsContext, handleOpsError } from '../context.js';
3
+ import { withSpinner, exitWithError, getFlexibleProperty, normalizeKeys, parseIntOption, parseFloatOption } from '../utils.js';
4
+ import { formatRuns, formatRun } from '../formatters/ops.js';
5
+ /**
6
+ * Read JSON input from file or stdin
7
+ */
8
+ /** Timeout for reading from stdin (30 seconds) */
9
+ const STDIN_TIMEOUT_MS = 30_000;
10
+ /** Strip UTF-8 BOM (byte order mark) that some editors prepend */
11
+ function stripBom(content) {
12
+ return content.charCodeAt(0) === 0xFEFF ? content.slice(1) : content;
13
+ }
14
+ async function readJsonInput(options) {
15
+ if (options.stdin) {
16
+ // Read from stdin with timeout to prevent indefinite hangs
17
+ const chunks = [];
18
+ let timerId;
19
+ const timeout = new Promise((_, reject) => {
20
+ timerId = setTimeout(() => reject(new Error('stdin timeout')), STDIN_TIMEOUT_MS);
21
+ });
22
+ const read = async () => {
23
+ for await (const chunk of process.stdin) {
24
+ chunks.push(chunk);
25
+ }
26
+ };
27
+ try {
28
+ await Promise.race([read(), timeout]);
29
+ }
30
+ catch (error) {
31
+ if (error instanceof Error && error.message === 'stdin timeout') {
32
+ exitWithError(`No input received on stdin after ${STDIN_TIMEOUT_MS / 1000}s. Pipe data or use --file instead.`);
33
+ }
34
+ throw error;
35
+ }
36
+ finally {
37
+ if (timerId)
38
+ clearTimeout(timerId);
39
+ }
40
+ const content = stripBom(Buffer.concat(chunks).toString('utf-8'));
41
+ try {
42
+ return JSON.parse(content);
43
+ }
44
+ catch {
45
+ exitWithError('Invalid JSON input from stdin');
46
+ }
47
+ }
48
+ if (options.file) {
49
+ if (!existsSync(options.file)) {
50
+ exitWithError(`File not found: ${options.file}`);
51
+ }
52
+ let content;
53
+ try {
54
+ content = readFileSync(options.file, 'utf-8');
55
+ }
56
+ catch (error) {
57
+ const code = error.code;
58
+ if (code === 'EISDIR') {
59
+ exitWithError(`${options.file} is a directory, not a file`);
60
+ }
61
+ exitWithError(`Cannot read file: ${options.file}`);
62
+ }
63
+ try {
64
+ return JSON.parse(stripBom(content));
65
+ }
66
+ catch {
67
+ exitWithError(`Invalid JSON in file: ${options.file}`);
68
+ }
69
+ }
70
+ exitWithError('Either --file or --stdin is required');
71
+ }
72
+ /**
73
+ * Register run commands
74
+ */
75
+ export function registerRunCommands(program) {
76
+ const runs = program
77
+ .command('runs')
78
+ .description('Manage validation runs');
79
+ // ulu runs list <project>
80
+ runs
81
+ .command('list <project>')
82
+ .description('List runs for a project')
83
+ .option('-w, --workflow <type>', 'Filter by workflow type')
84
+ .option('-l, --limit <number>', 'Maximum number of runs to return', '20')
85
+ .action(async (project, options, cmd) => {
86
+ const globalOpts = cmd.optsWithGlobals();
87
+ const ctx = createOpsContext(globalOpts);
88
+ try {
89
+ const data = await withSpinner(ctx, { start: 'Fetching runs...', failure: 'Failed to fetch runs' }, () => ctx.client.runs.listByProject(project, {
90
+ workflowType: options.workflow,
91
+ limit: parseIntOption(options.limit, '--limit'),
92
+ }));
93
+ if (ctx.json) {
94
+ console.log(JSON.stringify(data, null, 2));
95
+ }
96
+ else if (data.length === 0) {
97
+ console.log('No runs found');
98
+ }
99
+ else {
100
+ console.log(formatRuns(data));
101
+ }
102
+ }
103
+ catch (error) {
104
+ handleOpsError(error, ctx);
105
+ }
106
+ });
107
+ // ulu runs get <runId>
108
+ runs
109
+ .command('get <runId>')
110
+ .description('Get run by ID')
111
+ .action(async (runId, _, cmd) => {
112
+ const globalOpts = cmd.optsWithGlobals();
113
+ const ctx = createOpsContext(globalOpts);
114
+ try {
115
+ const run = await withSpinner(ctx, { start: 'Fetching run...', failure: 'Failed to fetch run' }, () => ctx.client.runs.get(runId));
116
+ if (ctx.json) {
117
+ console.log(JSON.stringify(run, null, 2));
118
+ }
119
+ else {
120
+ console.log(formatRun(run));
121
+ }
122
+ }
123
+ catch (error) {
124
+ handleOpsError(error, ctx);
125
+ }
126
+ });
127
+ // ulu runs latest <project>
128
+ runs
129
+ .command('latest <project>')
130
+ .description('Get the latest run for a project')
131
+ .option('-w, --workflow <type>', 'Filter by workflow type')
132
+ .action(async (project, options, cmd) => {
133
+ const globalOpts = cmd.optsWithGlobals();
134
+ const ctx = createOpsContext(globalOpts);
135
+ try {
136
+ const run = await withSpinner(ctx, { start: 'Fetching latest run...', failure: 'Failed to fetch latest run' }, () => ctx.client.runs.getLatest(project, options.workflow));
137
+ if (ctx.json) {
138
+ console.log(JSON.stringify(run, null, 2));
139
+ }
140
+ else {
141
+ console.log(formatRun(run));
142
+ }
143
+ }
144
+ catch (error) {
145
+ handleOpsError(error, ctx);
146
+ }
147
+ });
148
+ // ulu runs details <project>
149
+ runs
150
+ .command('details <project>')
151
+ .description('Get detailed run information including agents and recommendations')
152
+ .option('-n, --number <number>', 'Run number (defaults to latest)')
153
+ .action(async (project, options, cmd) => {
154
+ const globalOpts = cmd.optsWithGlobals();
155
+ const ctx = createOpsContext(globalOpts);
156
+ try {
157
+ const runNumber = options.number ? parseIntOption(options.number, '--number') : undefined;
158
+ const details = await withSpinner(ctx, { start: 'Fetching run details...', failure: 'Failed to fetch run details' }, () => ctx.client.runs.getDetails(project, runNumber));
159
+ if (ctx.json) {
160
+ console.log(JSON.stringify(details, null, 2));
161
+ }
162
+ else {
163
+ console.log(`Run #${details.run.runNumber} - ${details.run.workflowType}`);
164
+ console.log(`Score: ${details.run.averageScore?.toFixed(1) ?? '-'}`);
165
+ console.log(`Passed: ${details.run.allGatesPassed ? 'Yes' : 'No'}`);
166
+ console.log('');
167
+ if (details.agents.length > 0) {
168
+ console.log('Agents:');
169
+ for (const v of details.agents) {
170
+ const marker = v.decision === 'PASS' ? '\u2713' : '\u2717';
171
+ console.log(` ${marker} ${v.name}: ${v.score}/${v.maxScore ?? 100} (${v.decision})`);
172
+ }
173
+ }
174
+ if (details.recommendations.length > 0) {
175
+ console.log('\nRecommendations:');
176
+ for (const r of details.recommendations.slice(0, 10)) {
177
+ console.log(` - ${r.title}`);
178
+ console.log(` ${r.priority} from ${r.agent}`);
179
+ }
180
+ if (details.recommendations.length > 10) {
181
+ console.log(`\n ... and ${details.recommendations.length - 10} more`);
182
+ }
183
+ }
184
+ }
185
+ }
186
+ catch (error) {
187
+ handleOpsError(error, ctx);
188
+ }
189
+ });
190
+ // ulu runs save
191
+ runs
192
+ .command('save')
193
+ .description('Save a validation run')
194
+ .option('-f, --file <path>', 'JSON file containing run data')
195
+ .option('--stdin', 'Read JSON from stdin')
196
+ .option('-p, --project <name>', 'Override project name in input')
197
+ .option('-w, --workflow <type>', 'Override workflow type in input')
198
+ .action(async (options, cmd) => {
199
+ const globalOpts = cmd.optsWithGlobals();
200
+ const ctx = createOpsContext(globalOpts);
201
+ if (!options.file && !options.stdin) {
202
+ exitWithError('Either --file or --stdin is required');
203
+ }
204
+ try {
205
+ // Read, normalize (snake_case → camelCase), and parse input
206
+ const input = normalizeKeys(await readJsonInput(options));
207
+ // Apply overrides
208
+ if (options.project)
209
+ input.project = options.project;
210
+ if (options.workflow)
211
+ input.workflowType = options.workflow;
212
+ // Validate required fields
213
+ if (!input.project) {
214
+ exitWithError('Missing required field: project (or snake_case: project)');
215
+ }
216
+ if (!input.workflowType) {
217
+ exitWithError('Missing required field: workflowType (or snake_case: workflow_type)');
218
+ }
219
+ if (!Array.isArray(input.agents)) {
220
+ exitWithError('Missing required field: agents (must be an array)');
221
+ }
222
+ const result = await withSpinner(ctx, { start: 'Saving run...', success: 'Run saved', failure: 'Failed to save run' }, () => ctx.client.runs.save(input));
223
+ if (ctx.json) {
224
+ console.log(JSON.stringify(result, null, 2));
225
+ }
226
+ else {
227
+ console.log(`Run #${result.run.runNumber} saved successfully`);
228
+ console.log('');
229
+ console.log('Correlation:');
230
+ console.log(` New issues: ${getFlexibleProperty(result.correlation, 'newIssues', 0)}`);
231
+ console.log(` Recurring: ${getFlexibleProperty(result.correlation, 'recurringIssues', 0)}`);
232
+ console.log(` Regressions: ${getFlexibleProperty(result.correlation, 'regressions', 0)}`);
233
+ if (result.deduplicated) {
234
+ console.log('\n(Deduplicated: run with same idempotency key already existed)');
235
+ }
236
+ }
237
+ }
238
+ catch (error) {
239
+ handleOpsError(error, ctx);
240
+ }
241
+ });
242
+ // ulu runs validate
243
+ runs
244
+ .command('validate')
245
+ .description('Validate run input without saving (dry run)')
246
+ .option('-f, --file <path>', 'JSON file containing run data')
247
+ .option('--stdin', 'Read JSON from stdin')
248
+ .option('-p, --project <name>', 'Override project name in input')
249
+ .option('-w, --workflow <type>', 'Override workflow type in input')
250
+ .action(async (options, cmd) => {
251
+ const globalOpts = cmd.optsWithGlobals();
252
+ const ctx = createOpsContext(globalOpts);
253
+ if (!options.file && !options.stdin) {
254
+ exitWithError('Either --file or --stdin is required');
255
+ }
256
+ try {
257
+ // Read, normalize (snake_case → camelCase), and parse input
258
+ const input = normalizeKeys(await readJsonInput(options));
259
+ // Apply overrides
260
+ if (options.project)
261
+ input.project = options.project;
262
+ if (options.workflow)
263
+ input.workflowType = options.workflow;
264
+ const result = await withSpinner(ctx, { start: 'Validating...', success: 'Validation complete', failure: 'Validation failed' }, () => ctx.client.runs.validate(input));
265
+ if (ctx.json) {
266
+ console.log(JSON.stringify(result, null, 2));
267
+ }
268
+ else {
269
+ const wouldCreate = getFlexibleProperty(result, 'wouldCreate', false);
270
+ const wouldUpdate = getFlexibleProperty(result, 'wouldUpdate', false);
271
+ const wouldRegress = getFlexibleProperty(result, 'wouldRegress', false);
272
+ const validationErrors = getFlexibleProperty(result, 'validationErrors', []);
273
+ const preview = getFlexibleProperty(result, 'preview', undefined);
274
+ console.log('Validation Preview:');
275
+ console.log(` Would create: ${wouldCreate ? 'Yes' : 'No'}`);
276
+ console.log(` Would update: ${wouldUpdate ? 'Yes' : 'No'}`);
277
+ console.log(` Would regress: ${wouldRegress ? 'Yes' : 'No'}`);
278
+ if (validationErrors.length > 0) {
279
+ console.log('\nValidation Errors:');
280
+ for (const err of validationErrors) {
281
+ console.log(` - ${err}`);
282
+ }
283
+ }
284
+ if (preview) {
285
+ const newIssues = getFlexibleProperty(preview, 'newIssues', []);
286
+ const recurringIssues = getFlexibleProperty(preview, 'recurringIssues', []);
287
+ const regressions = getFlexibleProperty(preview, 'regressions', []);
288
+ console.log('\nCorrelation Preview:');
289
+ console.log(` New issues: ${newIssues.length}`);
290
+ console.log(` Recurring: ${recurringIssues.length}`);
291
+ console.log(` Regressions: ${regressions.length}`);
292
+ }
293
+ }
294
+ }
295
+ catch (error) {
296
+ handleOpsError(error, ctx);
297
+ }
298
+ });
299
+ // ulu runs diff <project>
300
+ runs
301
+ .command('diff <project>')
302
+ .description('Compare two runs')
303
+ .requiredOption('-b, --base <number>', 'Base run number')
304
+ .requiredOption('-c, --compare <number>', 'Compare run number')
305
+ .action(async (project, options, cmd) => {
306
+ const globalOpts = cmd.optsWithGlobals();
307
+ const ctx = createOpsContext(globalOpts);
308
+ try {
309
+ const result = await withSpinner(ctx, { start: 'Comparing runs...', failure: 'Failed to compare runs' }, () => ctx.client.runs.diff({
310
+ project,
311
+ baseRun: parseIntOption(options.base, '--base'),
312
+ compareRun: parseIntOption(options.compare, '--compare'),
313
+ }));
314
+ if (ctx.json) {
315
+ console.log(JSON.stringify(result, null, 2));
316
+ }
317
+ else {
318
+ console.log(`Comparing run #${options.base} → #${options.compare}\n`);
319
+ if (result.fixed.length > 0) {
320
+ console.log(`Fixed (${result.fixed.length}):`);
321
+ for (const issue of result.fixed.slice(0, 5)) {
322
+ console.log(` \u2713 ${issue.title}`);
323
+ }
324
+ if (result.fixed.length > 5) {
325
+ console.log(` ... and ${result.fixed.length - 5} more`);
326
+ }
327
+ }
328
+ if (result.new.length > 0) {
329
+ console.log(`\nNew (${result.new.length}):`);
330
+ for (const issue of result.new.slice(0, 5)) {
331
+ console.log(` + ${issue.title}`);
332
+ }
333
+ if (result.new.length > 5) {
334
+ console.log(` ... and ${result.new.length - 5} more`);
335
+ }
336
+ }
337
+ if (result.unchanged.length > 0) {
338
+ console.log(`\nUnchanged: ${result.unchanged.length} issues`);
339
+ }
340
+ }
341
+ }
342
+ catch (error) {
343
+ handleOpsError(error, ctx);
344
+ }
345
+ });
346
+ // ulu runs archive <project>
347
+ runs
348
+ .command('archive <project>')
349
+ .description('Archive old runs')
350
+ .option('--before-run <number>', 'Archive runs before this run number')
351
+ .option('--before-date <date>', 'Archive runs before this date (ISO format)')
352
+ .option('--keep-last <number>', 'Keep the last N runs')
353
+ .option('--reason <text>', 'Reason for archiving')
354
+ .action(async (project, options, cmd) => {
355
+ const globalOpts = cmd.optsWithGlobals();
356
+ const ctx = createOpsContext(globalOpts);
357
+ if (!options.beforeRun && !options.beforeDate && !options.keepLast) {
358
+ exitWithError('One of --before-run, --before-date, or --keep-last is required');
359
+ }
360
+ try {
361
+ const result = await withSpinner(ctx, { start: 'Archiving runs...', success: 'Runs archived', failure: 'Failed to archive runs' }, () => ctx.client.runs.archive({
362
+ project,
363
+ beforeRunNumber: options.beforeRun ? parseIntOption(options.beforeRun, '--before-run') : undefined,
364
+ beforeDate: options.beforeDate,
365
+ keepLast: options.keepLast ? parseIntOption(options.keepLast, '--keep-last') : undefined,
366
+ reason: options.reason,
367
+ }));
368
+ if (ctx.json) {
369
+ console.log(JSON.stringify(result, null, 2));
370
+ }
371
+ else {
372
+ console.log(`Archived ${result.archived} runs`);
373
+ }
374
+ }
375
+ catch (error) {
376
+ handleOpsError(error, ctx);
377
+ }
378
+ });
379
+ // ulu runs update <project>
380
+ runs
381
+ .command('update <project>')
382
+ .description('Update run metadata (scores, tokens) by project and run number')
383
+ .requiredOption('-n, --number <number>', 'Run number')
384
+ .option('--score <number>', 'New average score')
385
+ .option('--passed <boolean>', 'All gates passed (true/false)')
386
+ .option('-f, --file <path>', 'JSON file with agent updates')
387
+ .option('--stdin', 'Read agent updates from stdin')
388
+ .action(async (project, options, cmd) => {
389
+ const globalOpts = cmd.optsWithGlobals();
390
+ const ctx = createOpsContext(globalOpts);
391
+ try {
392
+ const input = {
393
+ project,
394
+ runNumber: parseIntOption(options.number, '--number'),
395
+ };
396
+ if (options.score !== undefined)
397
+ input.averageScore = parseFloatOption(options.score, '--score');
398
+ if (options.passed !== undefined)
399
+ input.allGatesPassed = options.passed === 'true';
400
+ // Read agent updates from file/stdin if provided
401
+ if (options.file || options.stdin) {
402
+ const data = await readJsonInput(options);
403
+ if (data.agents)
404
+ input.agents = data.agents;
405
+ }
406
+ const run = await withSpinner(ctx, { start: 'Updating run...', success: 'Run updated', failure: 'Failed to update run' }, () => ctx.client.runs.update(input));
407
+ if (ctx.json) {
408
+ console.log(JSON.stringify(run, null, 2));
409
+ }
410
+ else {
411
+ console.log(formatRun(run));
412
+ }
413
+ }
414
+ catch (error) {
415
+ handleOpsError(error, ctx);
416
+ }
417
+ });
418
+ // ulu runs delete <runId>
419
+ runs
420
+ .command('delete <runId>')
421
+ .description('Delete a run')
422
+ .option('-y, --yes', 'Skip confirmation')
423
+ .action(async (runId, options, cmd) => {
424
+ const globalOpts = cmd.optsWithGlobals();
425
+ const ctx = createOpsContext(globalOpts);
426
+ if (!options.yes) {
427
+ console.log(`\nThis will permanently delete run: ${runId}`);
428
+ console.log('To confirm, run again with --yes flag');
429
+ process.exit(0);
430
+ }
431
+ try {
432
+ await withSpinner(ctx, { start: 'Deleting run...', success: 'Run deleted', failure: 'Failed to delete run' }, () => ctx.client.runs.delete(runId));
433
+ if (ctx.json) {
434
+ console.log(JSON.stringify({ success: true, runId }, null, 2));
435
+ }
436
+ }
437
+ catch (error) {
438
+ handleOpsError(error, ctx);
439
+ }
440
+ });
441
+ }
442
+ //# sourceMappingURL=runs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/commands/runs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAsB,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/H,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAG7D;;GAEG;AACH,kDAAkD;AAClD,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,kEAAkE;AAClE,SAAS,QAAQ,CAAC,OAAe;IAC/B,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACvE,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,OAA2C;IACtE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,2DAA2D;QAC3D,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,OAAkD,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAC/C,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC;QACF,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,eAAe,EAAE,CAAC;gBAChE,aAAa,CAAC,oCAAoC,gBAAgB,GAAG,IAAI,qCAAqC,CAAC,CAAC;YAClH,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,OAAO;gBAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,aAAa,CAAC,+BAA+B,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,aAAa,CAAC,mBAAmB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;YACnD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,6BAA6B,CAAC,CAAC;YAC9D,CAAC;YACD,aAAa,CAAC,qBAAqB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,aAAa,CAAC,yBAAyB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,aAAa,CAAC,sCAAsC,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAEzC,0BAA0B;IAC1B,IAAI;SACD,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,yBAAyB,CAAC;SACtC,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;SAC1D,MAAM,CAAC,sBAAsB,EAAE,kCAAkC,EAAE,IAAI,CAAC;SACxE,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAmB,CAAC;QAC1D,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,GAAG,EACH,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAC9D,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;gBAC3C,YAAY,EAAE,OAAO,CAAC,QAAQ;gBAC9B,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC;aAChD,CAAC,CACH,CAAC;YAEF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,uBAAuB;IACvB,IAAI;SACD,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,eAAe,CAAC;SAC5B,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;QACtC,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAmB,CAAC;QAC1D,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,WAAW,CAC3B,GAAG,EACH,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAC5D,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CACjC,CAAC;YAEF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,4BAA4B;IAC5B,IAAI;SACD,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;SAC1D,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAmB,CAAC;QAC1D,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,WAAW,CAC3B,GAAG,EACH,EAAE,KAAK,EAAE,wBAAwB,EAAE,OAAO,EAAE,4BAA4B,EAAE,EAC1E,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAC3D,CAAC;YAEF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,6BAA6B;IAC7B,IAAI;SACD,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,mEAAmE,CAAC;SAChF,MAAM,CAAC,uBAAuB,EAAE,iCAAiC,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAmB,CAAC;QAC1D,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1F,MAAM,OAAO,GAAG,MAAM,WAAW,CAC/B,GAAG,EACH,EAAE,KAAK,EAAE,yBAAyB,EAAE,OAAO,EAAE,6BAA6B,EAAE,EAC5E,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CACrD,CAAC;YAEF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,QAAQ,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC3E,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAEhB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACvB,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;wBAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,IAAI,GAAG,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;oBACxF,CAAC;gBACH,CAAC;gBAED,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;oBAClC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;wBACrD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;wBAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;oBACnD,CAAC;oBACD,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;wBACxC,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC;oBACzE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,gBAAgB;IAChB,IAAI;SACD,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,mBAAmB,EAAE,+BAA+B,CAAC;SAC5D,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC;SACzC,MAAM,CAAC,sBAAsB,EAAE,gCAAgC,CAAC;SAChE,MAAM,CAAC,uBAAuB,EAAE,iCAAiC,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAmB,CAAC;QAC1D,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACpC,aAAa,CAAC,sCAAsC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,CAAC;YACH,4DAA4D;YAC5D,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,CAAiB,CAAC;YAE1E,kBAAkB;YAClB,IAAI,OAAO,CAAC,OAAO;gBAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YACrD,IAAI,OAAO,CAAC,QAAQ;gBAAE,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;YAE5D,2BAA2B;YAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnB,aAAa,CAAC,0DAA0D,CAAC,CAAC;YAC5E,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;gBACxB,aAAa,CAAC,qEAAqE,CAAC,CAAC;YACvF,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,aAAa,CAAC,mDAAmD,CAAC,CAAC;YACrE,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,EACH,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,EAAE,EAC/E,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAClC,CAAC;YAEF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,GAAG,CAAC,SAAS,qBAAqB,CAAC,CAAC;gBAC/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,iBAAiB,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxF,OAAO,CAAC,GAAG,CAAC,gBAAgB,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC7F,OAAO,CAAC,GAAG,CAAC,kBAAkB,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC3F,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,oBAAoB;IACpB,IAAI;SACD,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,6CAA6C,CAAC;SAC1D,MAAM,CAAC,mBAAmB,EAAE,+BAA+B,CAAC;SAC5D,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC;SACzC,MAAM,CAAC,sBAAsB,EAAE,gCAAgC,CAAC;SAChE,MAAM,CAAC,uBAAuB,EAAE,iCAAiC,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAmB,CAAC;QAC1D,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACpC,aAAa,CAAC,sCAAsC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,CAAC;YACH,4DAA4D;YAC5D,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,CAAiB,CAAC;YAE1E,kBAAkB;YAClB,IAAI,OAAO,CAAC,OAAO;gBAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YACrD,IAAI,OAAO,CAAC,QAAQ;gBAAE,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;YAE5D,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,EACH,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,mBAAmB,EAAE,EACxF,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CACtC,CAAC;YAEF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;gBACtE,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;gBACtE,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;gBACxE,MAAM,gBAAgB,GAAG,mBAAmB,CAAW,MAAM,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;gBACvF,MAAM,OAAO,GAAG,mBAAmB,CAAsC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBAEvG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,mBAAmB,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7D,OAAO,CAAC,GAAG,CAAC,mBAAmB,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7D,OAAO,CAAC,GAAG,CAAC,oBAAoB,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAE/D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;oBACpC,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;wBACnC,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;gBAED,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,SAAS,GAAG,mBAAmB,CAAY,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;oBAC3E,MAAM,eAAe,GAAG,mBAAmB,CAAY,OAAO,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;oBACvF,MAAM,WAAW,GAAG,mBAAmB,CAAY,OAAO,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;oBAC/E,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;oBACtC,OAAO,CAAC,GAAG,CAAC,iBAAiB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;oBACjD,OAAO,CAAC,GAAG,CAAC,gBAAgB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;oBACtD,OAAO,CAAC,GAAG,CAAC,kBAAkB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,0BAA0B;IAC1B,IAAI;SACD,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,kBAAkB,CAAC;SAC/B,cAAc,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;SACxD,cAAc,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAmB,CAAC;QAC1D,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,EACH,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,wBAAwB,EAAE,EACjE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;gBACzB,OAAO;gBACP,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;gBAC/C,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC;aACzD,CAAC,CACH,CAAC;YAEF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;gBAEtE,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;oBAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;wBAC7C,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;oBACzC,CAAC;oBACD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC5B,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC;gBAED,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;oBAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;wBAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;oBACpC,CAAC;oBACD,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1B,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;oBACzD,CAAC;gBACH,CAAC;gBAED,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,SAAS,CAAC,MAAM,SAAS,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,6BAA6B;IAC7B,IAAI;SACD,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,kBAAkB,CAAC;SAC/B,MAAM,CAAC,uBAAuB,EAAE,qCAAqC,CAAC;SACtE,MAAM,CAAC,sBAAsB,EAAE,4CAA4C,CAAC;SAC5E,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;SACtD,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;SACjD,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAmB,CAAC;QAC1D,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnE,aAAa,CAAC,gEAAgE,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,EACH,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,wBAAwB,EAAE,EAC3F,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC5B,OAAO;gBACP,eAAe,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;gBAClG,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;gBACxF,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CACH,CAAC;YAEF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,QAAQ,OAAO,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,4BAA4B;IAC5B,IAAI;SACD,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,gEAAgE,CAAC;SAC7E,cAAc,CAAC,uBAAuB,EAAE,YAAY,CAAC;SACrD,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;SAC/C,MAAM,CAAC,oBAAoB,EAAE,+BAA+B,CAAC;SAC7D,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;SAC3D,MAAM,CAAC,SAAS,EAAE,+BAA+B,CAAC;SAClD,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAmB,CAAC;QAC1D,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,CAAC;YACH,MAAM,KAAK,GAA2B;gBACpC,OAAO;gBACP,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC;aACtD,CAAC;YAEF,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;gBAAE,KAAK,CAAC,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACjG,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;gBAAE,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC;YAEnF,iDAAiD;YACjD,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,OAAO,CAA2B,CAAC;gBACpE,IAAI,IAAI,CAAC,MAAM;oBAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAA0C,CAAC;YAClF,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,WAAW,CAC3B,GAAG,EACH,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,sBAAsB,EAAE,EACrF,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CACpC,CAAC;YAEF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,0BAA0B;IAC1B,IAAI;SACD,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,cAAc,CAAC;SAC3B,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC;SACxC,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QAC5C,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAmB,CAAC;QAC1D,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,uCAAuC,KAAK,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,WAAW,CACf,GAAG,EACH,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,sBAAsB,EAAE,EACrF,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CACpC,CAAC;YAEF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Register taxonomy commands
4
+ */
5
+ export declare function registerTaxonomyCommands(program: Command): void;
6
+ //# sourceMappingURL=taxonomy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taxonomy.d.ts","sourceRoot":"","sources":["../../src/commands/taxonomy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6C/D"}
@@ -0,0 +1,45 @@
1
+ import { createOpsContext, handleOpsError } from '../context.js';
2
+ import { withSpinner } from '../utils.js';
3
+ /**
4
+ * Register taxonomy commands
5
+ */
6
+ export function registerTaxonomyCommands(program) {
7
+ const taxonomy = program
8
+ .command('taxonomy')
9
+ .description('Inspect the failure taxonomy schema');
10
+ // ulu taxonomy get
11
+ taxonomy
12
+ .command('get')
13
+ .description('Display the failure taxonomy schema (domains, severity codes, statuses)')
14
+ .action(async (_, cmd) => {
15
+ const globalOpts = cmd.optsWithGlobals();
16
+ const ctx = createOpsContext(globalOpts);
17
+ try {
18
+ const schema = await withSpinner(ctx, { start: 'Fetching taxonomy...', failure: 'Failed to fetch taxonomy' }, () => ctx.client.taxonomy.get());
19
+ if (ctx.json) {
20
+ console.log(JSON.stringify(schema, null, 2));
21
+ }
22
+ else {
23
+ console.log('Failure Domains:');
24
+ for (const domain of schema.domains) {
25
+ console.log(` ${domain.code} - ${domain.name}`);
26
+ console.log(` ${domain.description}`);
27
+ for (const mode of domain.modes) {
28
+ console.log(` ${mode.code} - ${mode.name}`);
29
+ }
30
+ }
31
+ console.log('\nSeverities:');
32
+ for (const sev of schema.severities) {
33
+ console.log(` ${sev.code} - ${sev.name} (weight: ${sev.weight})`);
34
+ }
35
+ console.log(`\nFailure Code Pattern: ${schema.failureCodePattern.pattern}`);
36
+ console.log(`Priorities: ${schema.priorities.join(', ')}`);
37
+ console.log(`Statuses: ${schema.statuses.join(', ')}`);
38
+ }
39
+ }
40
+ catch (error) {
41
+ handleOpsError(error, ctx);
42
+ }
43
+ });
44
+ }
45
+ //# sourceMappingURL=taxonomy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taxonomy.js","sourceRoot":"","sources":["../../src/commands/taxonomy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAsB,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,qCAAqC,CAAC,CAAC;IAEtD,mBAAmB;IACnB,QAAQ;SACL,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,yEAAyE,CAAC;SACtF,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;QACvB,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAmB,CAAC;QAC1D,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,EACH,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,0BAA0B,EAAE,EACtE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAChC,CAAC;YAEF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAChC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;oBACjD,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;oBACzC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;wBAChC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBACnD,CAAC;gBACH,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACpC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;gBACrE,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5E,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Register translation commands
4
+ */
5
+ export declare function registerTranslationCommands(program: Command): void;
6
+ //# sourceMappingURL=translation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translation.d.ts","sourceRoot":"","sources":["../../src/commands/translation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0FlE"}
@@ -0,0 +1,85 @@
1
+ import { createRegistryContext, handleRegistryError } from '../context.js';
2
+ import { withSpinner, readFileOption } from '../utils.js';
3
+ /**
4
+ * Register translation commands
5
+ */
6
+ export function registerTranslationCommands(program) {
7
+ const translation = program
8
+ .command('translation')
9
+ .description('Definition translation and upgrade tools');
10
+ // ulu translation version
11
+ translation
12
+ .command('version')
13
+ .description('Get translator version info')
14
+ .action(async (_, cmd) => {
15
+ const globalOpts = cmd.optsWithGlobals();
16
+ const ctx = createRegistryContext(globalOpts);
17
+ try {
18
+ const info = await withSpinner(ctx, { start: 'Fetching translator version...', failure: 'Failed to fetch translator version' }, () => ctx.client.translation.getVersion());
19
+ if (ctx.json) {
20
+ console.log(JSON.stringify(info, null, 2));
21
+ }
22
+ else {
23
+ console.log(`Translator version: ${info.translatorVersion}`);
24
+ if (info.releaseDate)
25
+ console.log(`Released: ${info.releaseDate}`);
26
+ if (info.schema)
27
+ console.log(`Schema: ${info.schema}`);
28
+ }
29
+ }
30
+ catch (error) {
31
+ handleRegistryError(error, ctx);
32
+ }
33
+ });
34
+ // ulu translation retranslate <type> <name> <version>
35
+ translation
36
+ .command('retranslate <type> <name> <version>')
37
+ .description('Re-translate a definition with latest translator')
38
+ .option('--new-version', 'Create a new patch version instead of updating in-place')
39
+ .action(async (type, name, version, options, cmd) => {
40
+ const globalOpts = cmd.optsWithGlobals();
41
+ const ctx = createRegistryContext(globalOpts);
42
+ try {
43
+ const result = await withSpinner(ctx, { start: 'Re-translating...', success: 'Re-translation complete', failure: 'Failed to re-translate' }, () => ctx.client.translation.retranslate(type, name, version, {
44
+ createNewVersion: options.newVersion ?? false,
45
+ }));
46
+ if (ctx.json) {
47
+ console.log(JSON.stringify(result, null, 2));
48
+ }
49
+ else {
50
+ console.log(`Re-translated: ${result.type}/${result.name}@${result.version}`);
51
+ if (result.translatorVersion)
52
+ console.log(`Translator: ${result.translatorVersion}`);
53
+ }
54
+ }
55
+ catch (error) {
56
+ handleRegistryError(error, ctx);
57
+ }
58
+ });
59
+ // ulu translation upgrade <type> <name>
60
+ translation
61
+ .command('upgrade <type> <name>')
62
+ .description('Upgrade a legacy YAML definition')
63
+ .requiredOption('-f, --file <path>', 'Path to YAML file')
64
+ .action(async (type, name, options, cmd) => {
65
+ const globalOpts = cmd.optsWithGlobals();
66
+ const ctx = createRegistryContext(globalOpts);
67
+ try {
68
+ const yaml = readFileOption(options.file);
69
+ const result = await withSpinner(ctx, { start: 'Upgrading definition...', success: 'Upgrade complete', failure: 'Failed to upgrade' }, () => ctx.client.translation.upgradeDefinition(type, name, { yaml }));
70
+ if (ctx.json) {
71
+ console.log(JSON.stringify(result, null, 2));
72
+ }
73
+ else {
74
+ console.log(`Upgraded: ${type}/${name}@${result.version}`);
75
+ if (result.changes && Object.keys(result.changes).length > 0) {
76
+ console.log(`Changes: ${JSON.stringify(result.changes)}`);
77
+ }
78
+ }
79
+ }
80
+ catch (error) {
81
+ handleRegistryError(error, ctx);
82
+ }
83
+ });
84
+ }
85
+ //# sourceMappingURL=translation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translation.js","sourceRoot":"","sources":["../../src/commands/translation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAsB,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE1D;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,OAAgB;IAC1D,MAAM,WAAW,GAAG,OAAO;SACxB,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,0CAA0C,CAAC,CAAC;IAE3D,0BAA0B;IAC1B,WAAW;SACR,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;QACvB,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAmB,CAAC;QAC1D,MAAM,GAAG,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAE9C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,GAAG,EACH,EAAE,KAAK,EAAE,gCAAgC,EAAE,OAAO,EAAE,oCAAoC,EAAE,EAC1F,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,CAC1C,CAAC;YAEF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBAC7D,IAAI,IAAI,CAAC,WAAW;oBAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBACnE,IAAI,IAAI,CAAC,MAAM;oBAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,sDAAsD;IACtD,WAAW;SACR,OAAO,CAAC,qCAAqC,CAAC;SAC9C,WAAW,CAAC,kDAAkD,CAAC;SAC/D,MAAM,CAAC,eAAe,EAAE,yDAAyD,CAAC;SAClF,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAY,EAAE,OAAe,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QAC1E,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAmB,CAAC;QAC1D,MAAM,GAAG,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAE9C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,EACH,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,wBAAwB,EAAE,EACrG,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,IAAsB,EAAE,IAAI,EAAE,OAAO,EAAE;gBAC9E,gBAAgB,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK;aAC9C,CAAC,CACH,CAAC;YAEF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9E,IAAI,MAAM,CAAC,iBAAiB;oBAAE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,wCAAwC;IACxC,WAAW;SACR,OAAO,CAAC,uBAAuB,CAAC;SAChC,WAAW,CAAC,kCAAkC,CAAC;SAC/C,cAAc,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAY,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAmB,CAAC;QAC1D,MAAM,GAAG,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAE9C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,EACH,EAAE,KAAK,EAAE,yBAAyB,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAC/F,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAsB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CACvF,CAAC;YAEF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3D,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7D,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Register version commands
4
+ */
5
+ export declare function registerVersionCommands(program: Command): void;
6
+ //# sourceMappingURL=versions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../src/commands/versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6D9D"}