@positronic/cli 0.0.15 → 0.0.16
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.
- package/dist/src/cli.js +40 -40
- package/dist/src/commands/brain.js +18 -18
- package/dist/src/commands/schedule.js +2 -2
- package/dist/src/components/brain-list.js +7 -7
- package/dist/src/components/brain-rerun.js +5 -5
- package/dist/src/components/schedule-create.js +3 -3
- package/dist/src/components/schedule-list.js +5 -5
- package/dist/types/commands/brain.d.ts +10 -10
- package/dist/types/commands/brain.d.ts.map +1 -1
- package/dist/types/commands/schedule.d.ts +2 -2
- package/dist/types/commands/schedule.d.ts.map +1 -1
- package/dist/types/components/brain-rerun.d.ts +2 -2
- package/dist/types/components/brain-rerun.d.ts.map +1 -1
- package/dist/types/components/brain-show.d.ts.map +1 -1
- package/dist/types/components/schedule-create.d.ts +2 -2
- package/dist/types/components/schedule-create.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/src/cli.js
CHANGED
|
@@ -361,9 +361,9 @@ export function buildCli(options) {
|
|
|
361
361
|
render(element);
|
|
362
362
|
});
|
|
363
363
|
// --- Brain History Command ---
|
|
364
|
-
cli = cli.command('history <
|
|
365
|
-
return yargsHistory.positional('
|
|
366
|
-
describe: '
|
|
364
|
+
cli = cli.command('history <filename>', 'List recent runs of a specific brain\n', function(yargsHistory) {
|
|
365
|
+
return yargsHistory.positional('filename', {
|
|
366
|
+
describe: 'Filename of the brain',
|
|
367
367
|
type: 'string',
|
|
368
368
|
demandOption: true
|
|
369
369
|
}).option('limit', {
|
|
@@ -376,9 +376,9 @@ export function buildCli(options) {
|
|
|
376
376
|
render(element);
|
|
377
377
|
});
|
|
378
378
|
// --- Show Brain Command ---
|
|
379
|
-
cli = cli.command('show <
|
|
380
|
-
return yargsShow.positional('
|
|
381
|
-
describe: '
|
|
379
|
+
cli = cli.command('show <filename>', 'List all steps and other details for the brain\n', function(yargsShow) {
|
|
380
|
+
return yargsShow.positional('filename', {
|
|
381
|
+
describe: 'Filename of the brain',
|
|
382
382
|
type: 'string',
|
|
383
383
|
demandOption: true
|
|
384
384
|
});
|
|
@@ -387,9 +387,9 @@ export function buildCli(options) {
|
|
|
387
387
|
render(element);
|
|
388
388
|
});
|
|
389
389
|
// --- Rerun Brain Command ---
|
|
390
|
-
cli = cli.command('rerun <
|
|
391
|
-
return yargsRerun.positional('
|
|
392
|
-
describe: '
|
|
390
|
+
cli = cli.command('rerun <filename> [run-id]', 'Rerun an existing brain run\n', function(yargsRerun) {
|
|
391
|
+
return yargsRerun.positional('filename', {
|
|
392
|
+
describe: 'Filename of the brain',
|
|
393
393
|
type: 'string',
|
|
394
394
|
demandOption: true
|
|
395
395
|
}).positional('run-id', {
|
|
@@ -407,9 +407,9 @@ export function buildCli(options) {
|
|
|
407
407
|
render(element);
|
|
408
408
|
});
|
|
409
409
|
// --- Run Brain Command ---
|
|
410
|
-
cli = cli.command('run <
|
|
411
|
-
return yargsRun.positional('
|
|
412
|
-
describe: '
|
|
410
|
+
cli = cli.command('run <filename>', 'Run a brain and optionally watch its execution\n', function(yargsRun) {
|
|
411
|
+
return yargsRun.positional('filename', {
|
|
412
|
+
describe: 'Filename of the brain',
|
|
413
413
|
type: 'string',
|
|
414
414
|
demandOption: true
|
|
415
415
|
}).option('watch', {
|
|
@@ -447,17 +447,17 @@ export function buildCli(options) {
|
|
|
447
447
|
})();
|
|
448
448
|
});
|
|
449
449
|
// --- Watch Brain Run Command ---
|
|
450
|
-
cli = cli.command('watch [
|
|
451
|
-
return yargsWatch.positional('
|
|
452
|
-
describe: '
|
|
450
|
+
cli = cli.command('watch [filename]', 'Watch a brain run: latest by filename (default) or specific by ID\n', function(yargsWatch) {
|
|
451
|
+
return yargsWatch.positional('filename', {
|
|
452
|
+
describe: 'Filename of the brain to watch (watches the most recent run)',
|
|
453
453
|
type: 'string'
|
|
454
454
|
}).option('run-id', {
|
|
455
455
|
describe: 'ID of the specific brain run to watch',
|
|
456
456
|
type: 'string',
|
|
457
457
|
alias: 'id'
|
|
458
|
-
}).conflicts('
|
|
459
|
-
if (!argv.
|
|
460
|
-
throw new Error('You must provide either a brain
|
|
458
|
+
}).conflicts('filename', 'run-id').check(function(argv) {
|
|
459
|
+
if (!argv.filename && !argv.runId) {
|
|
460
|
+
throw new Error('You must provide either a brain filename or a --run-id.');
|
|
461
461
|
}
|
|
462
462
|
return true;
|
|
463
463
|
}).example('$0 watch my-brain', "Watch the latest run of the brain named 'my-brain'").example('$0 watch --run-id abc123def', 'Watch a specific brain run by its ID');
|
|
@@ -488,9 +488,9 @@ export function buildCli(options) {
|
|
|
488
488
|
yargsBrain.command('list', 'List all brains in the active project\n', function() {}, function(argv) {
|
|
489
489
|
var element = brainCommand.list(argv);
|
|
490
490
|
render(element);
|
|
491
|
-
}).command('history <
|
|
492
|
-
return yargsHistory.positional('
|
|
493
|
-
describe: '
|
|
491
|
+
}).command('history <filename>', 'List recent runs of a specific brain\n', function(yargsHistory) {
|
|
492
|
+
return yargsHistory.positional('filename', {
|
|
493
|
+
describe: 'Filename of the brain',
|
|
494
494
|
type: 'string',
|
|
495
495
|
demandOption: true
|
|
496
496
|
}).option('limit', {
|
|
@@ -501,18 +501,18 @@ export function buildCli(options) {
|
|
|
501
501
|
}, function(argv) {
|
|
502
502
|
var element = brainCommand.history(argv);
|
|
503
503
|
render(element);
|
|
504
|
-
}).command('show <
|
|
505
|
-
return yargsShow.positional('
|
|
506
|
-
describe: '
|
|
504
|
+
}).command('show <filename>', 'List all steps and other details for the brain\n', function(yargsShow) {
|
|
505
|
+
return yargsShow.positional('filename', {
|
|
506
|
+
describe: 'Filename of the brain',
|
|
507
507
|
type: 'string',
|
|
508
508
|
demandOption: true
|
|
509
509
|
});
|
|
510
510
|
}, function(argv) {
|
|
511
511
|
var element = brainCommand.show(argv);
|
|
512
512
|
render(element);
|
|
513
|
-
}).command('rerun <
|
|
514
|
-
return yargsRerun.positional('
|
|
515
|
-
describe: '
|
|
513
|
+
}).command('rerun <filename> [run-id]', 'Rerun an existing brain run\n', function(yargsRerun) {
|
|
514
|
+
return yargsRerun.positional('filename', {
|
|
515
|
+
describe: 'Filename of the brain',
|
|
516
516
|
type: 'string',
|
|
517
517
|
demandOption: true
|
|
518
518
|
}).positional('run-id', {
|
|
@@ -528,9 +528,9 @@ export function buildCli(options) {
|
|
|
528
528
|
}, function(argv) {
|
|
529
529
|
var element = brainCommand.rerun(argv);
|
|
530
530
|
render(element);
|
|
531
|
-
}).command('run <
|
|
532
|
-
return yargsRun.positional('
|
|
533
|
-
describe: '
|
|
531
|
+
}).command('run <filename>', 'Run a brain and optionally watch its execution\n', function(yargsRun) {
|
|
532
|
+
return yargsRun.positional('filename', {
|
|
533
|
+
describe: 'Filename of the brain',
|
|
534
534
|
type: 'string',
|
|
535
535
|
demandOption: true
|
|
536
536
|
}).option('watch', {
|
|
@@ -566,17 +566,17 @@ export function buildCli(options) {
|
|
|
566
566
|
}
|
|
567
567
|
});
|
|
568
568
|
})();
|
|
569
|
-
}).command('watch [
|
|
570
|
-
return yargsWatch.positional('
|
|
571
|
-
describe: '
|
|
569
|
+
}).command('watch [filename]', 'Watch a brain run: latest by filename (default) or specific by ID\n', function(yargsWatch) {
|
|
570
|
+
return yargsWatch.positional('filename', {
|
|
571
|
+
describe: 'Filename of the brain to watch (watches the most recent run)',
|
|
572
572
|
type: 'string'
|
|
573
573
|
}).option('run-id', {
|
|
574
574
|
describe: 'ID of the specific brain run to watch',
|
|
575
575
|
type: 'string',
|
|
576
576
|
alias: 'id'
|
|
577
|
-
}).conflicts('
|
|
578
|
-
if (!argv.
|
|
579
|
-
throw new Error('You must provide either a brain
|
|
577
|
+
}).conflicts('filename', 'run-id').check(function(argv) {
|
|
578
|
+
if (!argv.filename && !argv.runId) {
|
|
579
|
+
throw new Error('You must provide either a brain filename or a --run-id.');
|
|
580
580
|
}
|
|
581
581
|
return true;
|
|
582
582
|
}).example('$0 brain watch my-brain', "Watch the latest run of the brain named 'my-brain'").example('$0 brain watch --run-id abc123def', 'Watch a specific brain run by its ID');
|
|
@@ -741,11 +741,11 @@ export function buildCli(options) {
|
|
|
741
741
|
}
|
|
742
742
|
}, true);
|
|
743
743
|
yargsSchedule.command([
|
|
744
|
-
'create <brain-
|
|
745
|
-
'c <brain-
|
|
744
|
+
'create <brain-filename> <cron-expression>',
|
|
745
|
+
'c <brain-filename> <cron-expression>'
|
|
746
746
|
], 'Create a new schedule for a brain\n', function(yargsCreate) {
|
|
747
|
-
return yargsCreate.positional('brain-
|
|
748
|
-
describe: '
|
|
747
|
+
return yargsCreate.positional('brain-filename', {
|
|
748
|
+
describe: 'Filename of the brain to schedule',
|
|
749
749
|
type: 'string',
|
|
750
750
|
demandOption: true
|
|
751
751
|
}).positional('cron-expression', {
|
|
@@ -161,9 +161,9 @@ export var BrainCommand = /*#__PURE__*/ function() {
|
|
|
161
161
|
{
|
|
162
162
|
key: "history",
|
|
163
163
|
value: function history(param) {
|
|
164
|
-
var
|
|
164
|
+
var filename = param.filename, limit = param.limit;
|
|
165
165
|
return React.createElement(BrainHistory, {
|
|
166
|
-
brainName:
|
|
166
|
+
brainName: filename,
|
|
167
167
|
limit: limit
|
|
168
168
|
});
|
|
169
169
|
}
|
|
@@ -171,18 +171,18 @@ export var BrainCommand = /*#__PURE__*/ function() {
|
|
|
171
171
|
{
|
|
172
172
|
key: "show",
|
|
173
173
|
value: function show(param) {
|
|
174
|
-
var
|
|
174
|
+
var filename = param.filename;
|
|
175
175
|
return React.createElement(BrainShow, {
|
|
176
|
-
brainName:
|
|
176
|
+
brainName: filename
|
|
177
177
|
});
|
|
178
178
|
}
|
|
179
179
|
},
|
|
180
180
|
{
|
|
181
181
|
key: "rerun",
|
|
182
182
|
value: function rerun(param) {
|
|
183
|
-
var
|
|
183
|
+
var filename = param.filename, runId = param.runId, startsAt = param.startsAt, stopsAfter = param.stopsAfter;
|
|
184
184
|
return React.createElement(BrainRerun, {
|
|
185
|
-
|
|
185
|
+
identifier: filename,
|
|
186
186
|
runId: runId,
|
|
187
187
|
startsAt: startsAt,
|
|
188
188
|
stopsAfter: stopsAfter
|
|
@@ -193,11 +193,11 @@ export var BrainCommand = /*#__PURE__*/ function() {
|
|
|
193
193
|
key: "run",
|
|
194
194
|
value: function run(_0) {
|
|
195
195
|
return _async_to_generator(function(param) {
|
|
196
|
-
var
|
|
196
|
+
var filename, watch, options, apiPath, response, result, errorText, error;
|
|
197
197
|
return _ts_generator(this, function(_state) {
|
|
198
198
|
switch(_state.label){
|
|
199
199
|
case 0:
|
|
200
|
-
|
|
200
|
+
filename = param.filename, watch = param.watch, options = param.options;
|
|
201
201
|
apiPath = '/brains/runs';
|
|
202
202
|
_state.label = 1;
|
|
203
203
|
case 1:
|
|
@@ -215,7 +215,7 @@ export var BrainCommand = /*#__PURE__*/ function() {
|
|
|
215
215
|
'Content-Type': 'application/json'
|
|
216
216
|
},
|
|
217
217
|
body: JSON.stringify({
|
|
218
|
-
|
|
218
|
+
identifier: filename,
|
|
219
219
|
options: options
|
|
220
220
|
})
|
|
221
221
|
})
|
|
@@ -264,7 +264,7 @@ export var BrainCommand = /*#__PURE__*/ function() {
|
|
|
264
264
|
React.createElement(ErrorComponent, {
|
|
265
265
|
error: {
|
|
266
266
|
title: 'Brain Not Found',
|
|
267
|
-
message: "Brain '".concat(
|
|
267
|
+
message: "Brain '".concat(filename, "' not found."),
|
|
268
268
|
details: 'Please check that:\n 1. The brain name is spelled correctly\n 2. The brain exists in your project\n 3. The brain has been properly defined and exported\n\nYou can list available brains with: positronic list'
|
|
269
269
|
}
|
|
270
270
|
})
|
|
@@ -312,11 +312,11 @@ export var BrainCommand = /*#__PURE__*/ function() {
|
|
|
312
312
|
key: "watch",
|
|
313
313
|
value: function watch(_0) {
|
|
314
314
|
return _async_to_generator(function(param) {
|
|
315
|
-
var runId,
|
|
315
|
+
var runId, filename, port, apiPath, response, result, activeRun, port1, errorText, error;
|
|
316
316
|
return _ts_generator(this, function(_state) {
|
|
317
317
|
switch(_state.label){
|
|
318
318
|
case 0:
|
|
319
|
-
runId = param.runId,
|
|
319
|
+
runId = param.runId, filename = param.filename;
|
|
320
320
|
// If a specific run ID is provided, return the Watch component
|
|
321
321
|
if (runId) {
|
|
322
322
|
port = process.env.POSITRONIC_PORT || '8787';
|
|
@@ -328,7 +328,7 @@ export var BrainCommand = /*#__PURE__*/ function() {
|
|
|
328
328
|
})
|
|
329
329
|
];
|
|
330
330
|
}
|
|
331
|
-
if (!
|
|
331
|
+
if (!filename) return [
|
|
332
332
|
3,
|
|
333
333
|
8
|
|
334
334
|
];
|
|
@@ -340,7 +340,7 @@ export var BrainCommand = /*#__PURE__*/ function() {
|
|
|
340
340
|
,
|
|
341
341
|
8
|
|
342
342
|
]);
|
|
343
|
-
apiPath = "/brains/".concat(encodeURIComponent(
|
|
343
|
+
apiPath = "/brains/".concat(encodeURIComponent(filename), "/active-runs");
|
|
344
344
|
return [
|
|
345
345
|
4,
|
|
346
346
|
apiClient.fetch(apiPath, {
|
|
@@ -365,8 +365,8 @@ export var BrainCommand = /*#__PURE__*/ function() {
|
|
|
365
365
|
React.createElement(ErrorComponent, {
|
|
366
366
|
error: {
|
|
367
367
|
title: 'No Active Runs',
|
|
368
|
-
message: 'No currently running brain runs found for brain "'.concat(
|
|
369
|
-
details: "To start a new run, use: positronic run ".concat(
|
|
368
|
+
message: 'No currently running brain runs found for brain "'.concat(filename, '".'),
|
|
369
|
+
details: "To start a new run, use: positronic run ".concat(filename)
|
|
370
370
|
}
|
|
371
371
|
})
|
|
372
372
|
];
|
|
@@ -377,7 +377,7 @@ export var BrainCommand = /*#__PURE__*/ function() {
|
|
|
377
377
|
React.createElement(ErrorComponent, {
|
|
378
378
|
error: {
|
|
379
379
|
title: 'Multiple Active Runs',
|
|
380
|
-
message: "Found ".concat(result.runs.length, ' active runs for brain "').concat(
|
|
380
|
+
message: "Found ".concat(result.runs.length, ' active runs for brain "').concat(filename, '".'),
|
|
381
381
|
details: "Please specify a specific run ID with --run-id:\n".concat(result.runs.map(function(run) {
|
|
382
382
|
return " positronic watch --run-id ".concat(run.brainRunId);
|
|
383
383
|
}).join('\n'))
|
|
@@ -407,7 +407,7 @@ export var BrainCommand = /*#__PURE__*/ function() {
|
|
|
407
407
|
React.createElement(ErrorComponent, {
|
|
408
408
|
error: {
|
|
409
409
|
title: 'API Error',
|
|
410
|
-
message: 'Failed to get active runs for brain "'.concat(
|
|
410
|
+
message: 'Failed to get active runs for brain "'.concat(filename, '".'),
|
|
411
411
|
details: "Server returned ".concat(response.status, ": ").concat(errorText)
|
|
412
412
|
}
|
|
413
413
|
})
|
|
@@ -31,9 +31,9 @@ export var ScheduleCommand = /*#__PURE__*/ function() {
|
|
|
31
31
|
{
|
|
32
32
|
key: "create",
|
|
33
33
|
value: function create(param) {
|
|
34
|
-
var
|
|
34
|
+
var brainFilename = param.brainFilename, cronExpression = param.cronExpression;
|
|
35
35
|
return React.createElement(ScheduleCreate, {
|
|
36
|
-
|
|
36
|
+
identifier: brainFilename,
|
|
37
37
|
cronExpression: cronExpression
|
|
38
38
|
});
|
|
39
39
|
}
|
|
@@ -55,14 +55,14 @@ export var BrainList = function() {
|
|
|
55
55
|
dimColor: true
|
|
56
56
|
}, 'Tip: Create a brain with "px brain new <name>" or add .ts files to the brains/ directory')));
|
|
57
57
|
}
|
|
58
|
-
// Sort brains alphabetically by
|
|
58
|
+
// Sort brains alphabetically by filename
|
|
59
59
|
var sortedBrains = _to_consumable_array(data.brains).sort(function(a, b) {
|
|
60
|
-
return a.
|
|
60
|
+
return a.filename.localeCompare(b.filename);
|
|
61
61
|
});
|
|
62
62
|
// Define column widths
|
|
63
63
|
var columns = {
|
|
64
|
-
|
|
65
|
-
header: '
|
|
64
|
+
filename: {
|
|
65
|
+
header: 'Filename',
|
|
66
66
|
width: 25
|
|
67
67
|
},
|
|
68
68
|
title: {
|
|
@@ -90,7 +90,7 @@ export var BrainList = function() {
|
|
|
90
90
|
}, /*#__PURE__*/ React.createElement(Box, null, /*#__PURE__*/ React.createElement(Text, {
|
|
91
91
|
bold: true,
|
|
92
92
|
color: "cyan"
|
|
93
|
-
}, padRight(columns.
|
|
93
|
+
}, padRight(columns.filename.header, columns.filename.width)), /*#__PURE__*/ React.createElement(Text, null, " "), /*#__PURE__*/ React.createElement(Text, {
|
|
94
94
|
bold: true,
|
|
95
95
|
color: "cyan"
|
|
96
96
|
}, padRight(columns.title.header, columns.title.width)), /*#__PURE__*/ React.createElement(Text, null, " "), /*#__PURE__*/ React.createElement(Text, {
|
|
@@ -100,8 +100,8 @@ export var BrainList = function() {
|
|
|
100
100
|
dimColor: true
|
|
101
101
|
}, '─'.repeat(totalWidth))), sortedBrains.map(function(brain) {
|
|
102
102
|
return /*#__PURE__*/ React.createElement(Box, {
|
|
103
|
-
key: brain.
|
|
104
|
-
}, /*#__PURE__*/ React.createElement(Text, null, padRight(truncate(brain.
|
|
103
|
+
key: brain.filename
|
|
104
|
+
}, /*#__PURE__*/ React.createElement(Text, null, padRight(truncate(brain.filename, columns.filename.width), columns.filename.width)), /*#__PURE__*/ React.createElement(Text, null, " "), /*#__PURE__*/ React.createElement(Text, null, padRight(truncate(brain.title, columns.title.width), columns.title.width)), /*#__PURE__*/ React.createElement(Text, null, " "), /*#__PURE__*/ React.createElement(Text, {
|
|
105
105
|
dimColor: true
|
|
106
106
|
}, padRight(truncate(brain.description, columns.description.width), columns.description.width)));
|
|
107
107
|
})));
|
|
@@ -169,7 +169,7 @@ import { Text, Box } from 'ink';
|
|
|
169
169
|
import { apiClient } from '../commands/helpers.js';
|
|
170
170
|
import { ErrorComponent } from './error.js';
|
|
171
171
|
export var BrainRerun = function(param) {
|
|
172
|
-
var
|
|
172
|
+
var identifier = param.identifier, runId = param.runId, startsAt = param.startsAt, stopsAfter = param.stopsAfter;
|
|
173
173
|
var _useState = _sliced_to_array(useState(true), 2), isLoading = _useState[0], setIsLoading = _useState[1];
|
|
174
174
|
var _useState1 = _sliced_to_array(useState(null), 2), error = _useState1[0], setError = _useState1[1];
|
|
175
175
|
var _useState2 = _sliced_to_array(useState(null), 2), newRunId = _useState2[0], setNewRunId = _useState2[1];
|
|
@@ -187,7 +187,7 @@ export var BrainRerun = function(param) {
|
|
|
187
187
|
10
|
|
188
188
|
]);
|
|
189
189
|
body = {
|
|
190
|
-
|
|
190
|
+
identifier: identifier
|
|
191
191
|
};
|
|
192
192
|
if (runId) body.runId = runId;
|
|
193
193
|
if (startsAt !== undefined) body.startsAt = startsAt;
|
|
@@ -271,7 +271,7 @@ export var BrainRerun = function(param) {
|
|
|
271
271
|
};
|
|
272
272
|
rerunBrain();
|
|
273
273
|
}, [
|
|
274
|
-
|
|
274
|
+
identifier,
|
|
275
275
|
runId,
|
|
276
276
|
startsAt,
|
|
277
277
|
stopsAfter
|
|
@@ -280,7 +280,7 @@ export var BrainRerun = function(param) {
|
|
|
280
280
|
return /*#__PURE__*/ React.createElement(Box, null, /*#__PURE__*/ React.createElement(Text, null, "\uD83D\uDD04 Starting brain rerun..."));
|
|
281
281
|
}
|
|
282
282
|
if (error) {
|
|
283
|
-
var errorDetails = runId ? 'Make sure the brain "'.concat(
|
|
283
|
+
var errorDetails = runId ? 'Make sure the brain "'.concat(identifier, '" and run ID "').concat(runId, '" exist.\nYou can list brain history with: positronic brain history ').concat(identifier) : 'Make sure the brain "'.concat(identifier, '" exists.\nYou can list available brains with: positronic brain list');
|
|
284
284
|
return /*#__PURE__*/ React.createElement(ErrorComponent, {
|
|
285
285
|
error: {
|
|
286
286
|
title: 'Brain Rerun Failed',
|
|
@@ -301,7 +301,7 @@ export var BrainRerun = function(param) {
|
|
|
301
301
|
bold: true
|
|
302
302
|
}, newRunId)), /*#__PURE__*/ React.createElement(Text, {
|
|
303
303
|
dimColor: true
|
|
304
|
-
}, 'Rerunning brain "',
|
|
304
|
+
}, 'Rerunning brain "', identifier, '"', runDetails, rangeDetails), /*#__PURE__*/ React.createElement(Box, {
|
|
305
305
|
marginTop: 1
|
|
306
306
|
}, /*#__PURE__*/ React.createElement(Text, {
|
|
307
307
|
dimColor: true
|
|
@@ -169,7 +169,7 @@ import { Box, Text } from 'ink';
|
|
|
169
169
|
import { ErrorComponent } from './error.js';
|
|
170
170
|
import { useApiPost } from '../hooks/useApi.js';
|
|
171
171
|
export var ScheduleCreate = function(param) {
|
|
172
|
-
var
|
|
172
|
+
var identifier = param.identifier, cronExpression = param.cronExpression;
|
|
173
173
|
var _useState = _sliced_to_array(useState(false), 2), created = _useState[0], setCreated = _useState[1];
|
|
174
174
|
var _useState1 = _sliced_to_array(useState(null), 2), schedule = _useState1[0], setSchedule = _useState1[1];
|
|
175
175
|
var _useApiPost = useApiPost('/brains/schedules', {
|
|
@@ -191,7 +191,7 @@ export var ScheduleCreate = function(param) {
|
|
|
191
191
|
3
|
|
192
192
|
]);
|
|
193
193
|
body = JSON.stringify({
|
|
194
|
-
|
|
194
|
+
identifier: identifier,
|
|
195
195
|
cronExpression: cronExpression
|
|
196
196
|
});
|
|
197
197
|
return [
|
|
@@ -243,7 +243,7 @@ export var ScheduleCreate = function(param) {
|
|
|
243
243
|
bold: true
|
|
244
244
|
}, "Schedule ID:"), " ", schedule.id), /*#__PURE__*/ React.createElement(Text, null, /*#__PURE__*/ React.createElement(Text, {
|
|
245
245
|
bold: true
|
|
246
|
-
}, "Brain:"), " ", schedule.
|
|
246
|
+
}, "Brain:"), " ", schedule.brainTitle), /*#__PURE__*/ React.createElement(Text, null, /*#__PURE__*/ React.createElement(Text, {
|
|
247
247
|
bold: true
|
|
248
248
|
}, "Cron Expression:"), " ", schedule.cronExpression), /*#__PURE__*/ React.createElement(Text, null, /*#__PURE__*/ React.createElement(Text, {
|
|
249
249
|
bold: true
|
|
@@ -82,7 +82,7 @@ export var ScheduleList = function(param) {
|
|
|
82
82
|
}
|
|
83
83
|
// Filter schedules if brain filter is provided
|
|
84
84
|
var filteredSchedules = brainFilter ? data.schedules.filter(function(s) {
|
|
85
|
-
return s.
|
|
85
|
+
return s.brainTitle === brainFilter;
|
|
86
86
|
}) : data.schedules;
|
|
87
87
|
if (brainFilter && filteredSchedules.length === 0) {
|
|
88
88
|
return /*#__PURE__*/ React.createElement(Box, {
|
|
@@ -99,8 +99,8 @@ export var ScheduleList = function(param) {
|
|
|
99
99
|
});
|
|
100
100
|
// Define column widths
|
|
101
101
|
var columns = {
|
|
102
|
-
|
|
103
|
-
header: 'Brain
|
|
102
|
+
brainTitle: {
|
|
103
|
+
header: 'Brain Title',
|
|
104
104
|
width: 20
|
|
105
105
|
},
|
|
106
106
|
schedule: {
|
|
@@ -140,7 +140,7 @@ export var ScheduleList = function(param) {
|
|
|
140
140
|
}, /*#__PURE__*/ React.createElement(Box, null, /*#__PURE__*/ React.createElement(Text, {
|
|
141
141
|
bold: true,
|
|
142
142
|
color: "cyan"
|
|
143
|
-
}, padRight(columns.
|
|
143
|
+
}, padRight(columns.brainTitle.header, columns.brainTitle.width)), /*#__PURE__*/ React.createElement(Text, null, " "), /*#__PURE__*/ React.createElement(Text, {
|
|
144
144
|
bold: true,
|
|
145
145
|
color: "cyan"
|
|
146
146
|
}, padRight(columns.schedule.header, columns.schedule.width)), /*#__PURE__*/ React.createElement(Text, null, " "), /*#__PURE__*/ React.createElement(Text, {
|
|
@@ -163,7 +163,7 @@ export var ScheduleList = function(param) {
|
|
|
163
163
|
var isOverdue = nextRunDate && nextRunDate.getTime() < Date.now();
|
|
164
164
|
return /*#__PURE__*/ React.createElement(Box, {
|
|
165
165
|
key: schedule.id
|
|
166
|
-
}, /*#__PURE__*/ React.createElement(Text, null, padRight(truncate(schedule.
|
|
166
|
+
}, /*#__PURE__*/ React.createElement(Text, null, padRight(truncate(schedule.brainTitle, columns.brainTitle.width), columns.brainTitle.width)), /*#__PURE__*/ React.createElement(Text, null, " "), /*#__PURE__*/ React.createElement(Text, null, padRight(truncate(schedule.cronExpression, columns.schedule.width), columns.schedule.width)), /*#__PURE__*/ React.createElement(Text, null, " "), /*#__PURE__*/ React.createElement(Text, {
|
|
167
167
|
color: schedule.enabled ? 'green' : 'red'
|
|
168
168
|
}, padRight(schedule.enabled ? 'Enabled' : 'Disabled', columns.status.width)), /*#__PURE__*/ React.createElement(Text, null, " "), /*#__PURE__*/ React.createElement(Text, {
|
|
169
169
|
color: isOverdue ? 'red' : undefined
|
|
@@ -3,34 +3,34 @@ import React from 'react';
|
|
|
3
3
|
interface BrainListArgs {
|
|
4
4
|
}
|
|
5
5
|
interface BrainHistoryArgs {
|
|
6
|
-
|
|
6
|
+
filename: string;
|
|
7
7
|
limit: number;
|
|
8
8
|
}
|
|
9
9
|
interface BrainShowArgs {
|
|
10
|
-
|
|
10
|
+
filename: string;
|
|
11
11
|
}
|
|
12
12
|
interface BrainRerunArgs {
|
|
13
|
-
|
|
13
|
+
filename: string;
|
|
14
14
|
runId?: string;
|
|
15
15
|
startsAt?: number;
|
|
16
16
|
stopsAfter?: number;
|
|
17
17
|
}
|
|
18
18
|
interface BrainRunArgs {
|
|
19
|
-
|
|
19
|
+
filename: string;
|
|
20
20
|
watch?: boolean;
|
|
21
21
|
options?: Record<string, string>;
|
|
22
22
|
}
|
|
23
23
|
interface BrainWatchArgs {
|
|
24
24
|
runId?: string;
|
|
25
|
-
|
|
25
|
+
filename?: string;
|
|
26
26
|
}
|
|
27
27
|
export declare class BrainCommand {
|
|
28
28
|
list(argv: ArgumentsCamelCase<BrainListArgs>): React.ReactElement;
|
|
29
|
-
history({
|
|
30
|
-
show({
|
|
31
|
-
rerun({
|
|
32
|
-
run({
|
|
33
|
-
watch({ runId,
|
|
29
|
+
history({ filename, limit, }: ArgumentsCamelCase<BrainHistoryArgs>): React.ReactElement;
|
|
30
|
+
show({ filename, }: ArgumentsCamelCase<BrainShowArgs>): React.ReactElement;
|
|
31
|
+
rerun({ filename, runId, startsAt, stopsAfter, }: ArgumentsCamelCase<BrainRerunArgs>): React.ReactElement;
|
|
32
|
+
run({ filename, watch, options }: ArgumentsCamelCase<BrainRunArgs>): Promise<React.ReactElement>;
|
|
33
|
+
watch({ runId, filename, }: ArgumentsCamelCase<BrainWatchArgs>): Promise<React.ReactElement>;
|
|
34
34
|
}
|
|
35
35
|
export {};
|
|
36
36
|
//# sourceMappingURL=brain.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brain.d.ts","sourceRoot":"","sources":["../../../src/commands/brain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,UAAU,aAAa;CAAG;AAC1B,UAAU,gBAAgB;IACxB,
|
|
1
|
+
{"version":3,"file":"brain.d.ts","sourceRoot":"","sources":["../../../src/commands/brain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,UAAU,aAAa;CAAG;AAC1B,UAAU,gBAAgB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AACD,UAAU,aAAa;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AACD,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AACD,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,YAAY;IACvB,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,YAAY;IAIjE,OAAO,CAAC,EACN,QAAQ,EACR,KAAK,GACN,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,YAAY;IAI5D,IAAI,CAAC,EACH,QAAQ,GACT,EAAE,kBAAkB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,YAAY;IAIzD,KAAK,CAAC,EACJ,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,UAAU,GACX,EAAE,kBAAkB,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,YAAY;IASpD,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;IAkEhG,KAAK,CAAC,EACV,KAAK,EACL,QAAQ,GACT,EAAE,kBAAkB,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;CAmFpE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ArgumentsCamelCase } from 'yargs';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
interface ScheduleCreateArgs {
|
|
4
|
-
|
|
4
|
+
brainFilename: string;
|
|
5
5
|
cronExpression: string;
|
|
6
6
|
}
|
|
7
7
|
interface ScheduleListArgs {
|
|
@@ -18,7 +18,7 @@ interface ScheduleRunsArgs {
|
|
|
18
18
|
}
|
|
19
19
|
export declare class ScheduleCommand {
|
|
20
20
|
constructor();
|
|
21
|
-
create({
|
|
21
|
+
create({ brainFilename, cronExpression, }: ArgumentsCamelCase<ScheduleCreateArgs>): React.ReactElement;
|
|
22
22
|
list({ brain }: ArgumentsCamelCase<ScheduleListArgs>): React.ReactElement;
|
|
23
23
|
delete({ scheduleId, force }: ArgumentsCamelCase<ScheduleDeleteArgs>): React.ReactElement;
|
|
24
24
|
runs({ scheduleId, limit, status, }: ArgumentsCamelCase<ScheduleRunsArgs>): React.ReactElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../../src/commands/schedule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,UAAU,kBAAkB;IAC1B,
|
|
1
|
+
{"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../../src/commands/schedule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,UAAU,kBAAkB;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,kBAAkB;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,gBAAgB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;CAC9C;AAED,qBAAa,eAAe;;IAG1B,MAAM,CAAC,EACL,aAAa,EACb,cAAc,GACf,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,YAAY;IAO9D,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,YAAY;IAMzE,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,YAAY;IAOzF,IAAI,CAAC,EACH,UAAU,EACV,KAAK,EACL,MAAM,GACP,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,YAAY;CAO7D"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
interface BrainRerunProps {
|
|
2
|
-
|
|
2
|
+
identifier: string;
|
|
3
3
|
runId?: string;
|
|
4
4
|
startsAt?: number;
|
|
5
5
|
stopsAfter?: number;
|
|
6
6
|
}
|
|
7
|
-
export declare const BrainRerun: ({
|
|
7
|
+
export declare const BrainRerun: ({ identifier, runId, startsAt, stopsAfter }: BrainRerunProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
8
|
export {};
|
|
9
9
|
//# sourceMappingURL=brain-rerun.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brain-rerun.d.ts","sourceRoot":"","sources":["../../../src/components/brain-rerun.tsx"],"names":[],"mappings":"AAKA,UAAU,eAAe;IACvB,
|
|
1
|
+
{"version":3,"file":"brain-rerun.d.ts","sourceRoot":"","sources":["../../../src/components/brain-rerun.tsx"],"names":[],"mappings":"AAKA,UAAU,eAAe;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,eAAO,MAAM,UAAU,GAAI,6CAA6C,eAAe,4CA8FtF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brain-show.d.ts","sourceRoot":"","sources":["../../../src/components/brain-show.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"brain-show.d.ts","sourceRoot":"","sources":["../../../src/components/brain-show.tsx"],"names":[],"mappings":"AAqBA,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AA0BD,eAAO,MAAM,SAAS,GAAI,eAAe,cAAc,4CAyCtD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
interface ScheduleCreateProps {
|
|
2
|
-
|
|
2
|
+
identifier: string;
|
|
3
3
|
cronExpression: string;
|
|
4
4
|
}
|
|
5
|
-
export declare const ScheduleCreate: ({
|
|
5
|
+
export declare const ScheduleCreate: ({ identifier, cronExpression }: ScheduleCreateProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
6
6
|
export {};
|
|
7
7
|
//# sourceMappingURL=schedule-create.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule-create.d.ts","sourceRoot":"","sources":["../../../src/components/schedule-create.tsx"],"names":[],"mappings":"AAKA,UAAU,mBAAmB;IAC3B,
|
|
1
|
+
{"version":3,"file":"schedule-create.d.ts","sourceRoot":"","sources":["../../../src/components/schedule-create.tsx"],"names":[],"mappings":"AAKA,UAAU,mBAAmB;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAWD,eAAO,MAAM,cAAc,GAAI,gCAAgC,mBAAmB,mDAsEjF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@positronic/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.16",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
"clean": "rm -rf tsconfig.tsbuildinfo dist node_modules"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@positronic/core": "^0.0.
|
|
27
|
-
"@positronic/spec": "^0.0.
|
|
28
|
-
"@positronic/template-new-project": "^0.0.
|
|
26
|
+
"@positronic/core": "^0.0.16",
|
|
27
|
+
"@positronic/spec": "^0.0.16",
|
|
28
|
+
"@positronic/template-new-project": "^0.0.16",
|
|
29
29
|
"caz": "^2.0.0",
|
|
30
30
|
"chokidar": "^3.6.0",
|
|
31
31
|
"eventsource": "^3.0.6",
|