@newpeak/barista-cli 0.2.309 ā 0.2.311
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/commands/liberica/runner/index.d.ts.map +1 -1
- package/dist/commands/liberica/runner/index.js +2 -0
- package/dist/commands/liberica/runner/index.js.map +1 -1
- package/dist/commands/liberica/runner/runner-list.d.ts.map +1 -1
- package/dist/commands/liberica/runner/runner-list.js +5 -2
- package/dist/commands/liberica/runner/runner-list.js.map +1 -1
- package/dist/commands/liberica/runner/slots/clear.d.ts +3 -0
- package/dist/commands/liberica/runner/slots/clear.d.ts.map +1 -0
- package/dist/commands/liberica/runner/slots/clear.js +54 -0
- package/dist/commands/liberica/runner/slots/clear.js.map +1 -0
- package/dist/commands/liberica/runner/slots/get.d.ts +3 -0
- package/dist/commands/liberica/runner/slots/get.d.ts.map +1 -0
- package/dist/commands/liberica/runner/slots/get.js +38 -0
- package/dist/commands/liberica/runner/slots/get.js.map +1 -0
- package/dist/commands/liberica/runner/slots/helpers.d.ts +13 -0
- package/dist/commands/liberica/runner/slots/helpers.d.ts.map +1 -0
- package/dist/commands/liberica/runner/slots/helpers.js +53 -0
- package/dist/commands/liberica/runner/slots/helpers.js.map +1 -0
- package/dist/commands/liberica/runner/slots/index.d.ts +3 -0
- package/dist/commands/liberica/runner/slots/index.d.ts.map +1 -0
- package/dist/commands/liberica/runner/slots/index.js +13 -0
- package/dist/commands/liberica/runner/slots/index.js.map +1 -0
- package/dist/commands/liberica/runner/slots/set.d.ts +3 -0
- package/dist/commands/liberica/runner/slots/set.d.ts.map +1 -0
- package/dist/commands/liberica/runner/slots/set.js +69 -0
- package/dist/commands/liberica/runner/slots/set.js.map +1 -0
- package/dist/core/api/client.d.ts +1 -0
- package/dist/core/api/client.d.ts.map +1 -1
- package/dist/core/api/client.js +16 -0
- package/dist/core/api/client.js.map +1 -1
- package/dist/types/runner.d.ts +13 -0
- package/dist/types/runner.d.ts.map +1 -1
- package/package.json +1 -1
- package/skills/barista-cli/data/commands.json +22 -1
- package/skills/barista-cli/data/commands.yaml +15 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/runner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/runner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,mBAAmB,IAAI,OAAO,CAgB7C"}
|
|
@@ -4,6 +4,7 @@ import { createRunnerTypesCommand } from './runner-types.js';
|
|
|
4
4
|
import { createRunnerDrainCommand } from './drain.js';
|
|
5
5
|
import { createRunnerResumeCommand } from './resume.js';
|
|
6
6
|
import { createRunnerDeleteCommand } from './delete.js';
|
|
7
|
+
import { createRunnerSlotsCommand } from './slots/index.js';
|
|
7
8
|
import { createRunnerJobsCommand } from './jobs/index.js';
|
|
8
9
|
import { createRunnerParametersCommand } from './parameters/index.js';
|
|
9
10
|
import { createRunnerImagesCommand } from './images/index.js';
|
|
@@ -16,6 +17,7 @@ export function createRunnerCommand() {
|
|
|
16
17
|
runnerCommand.addCommand(createRunnerDrainCommand());
|
|
17
18
|
runnerCommand.addCommand(createRunnerResumeCommand());
|
|
18
19
|
runnerCommand.addCommand(createRunnerDeleteCommand());
|
|
20
|
+
runnerCommand.addCommand(createRunnerSlotsCommand());
|
|
19
21
|
runnerCommand.addCommand(createRunnerJobsCommand());
|
|
20
22
|
runnerCommand.addCommand(createRunnerParametersCommand());
|
|
21
23
|
runnerCommand.addCommand(createRunnerImagesCommand());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/liberica/runner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAEpE,MAAM,UAAU,mBAAmB;IACjC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,aAAa,CAAC,WAAW,CAAC,8EAA8E,CAAC,CAAC;IAE1G,aAAa,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACpD,aAAa,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACrD,aAAa,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACrD,aAAa,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACtD,aAAa,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACtD,aAAa,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACpD,aAAa,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAC;IAC1D,aAAa,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACtD,aAAa,CAAC,UAAU,CAAC,4BAA4B,EAAE,CAAC,CAAC;IAEzD,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/liberica/runner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAEpE,MAAM,UAAU,mBAAmB;IACjC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,aAAa,CAAC,WAAW,CAAC,8EAA8E,CAAC,CAAC;IAE1G,aAAa,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACpD,aAAa,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACrD,aAAa,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACrD,aAAa,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACtD,aAAa,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACtD,aAAa,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACrD,aAAa,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACpD,aAAa,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAC;IAC1D,aAAa,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACtD,aAAa,CAAC,UAAU,CAAC,4BAA4B,EAAE,CAAC,CAAC;IAEzD,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-list.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/runner/runner-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"runner-list.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/runner/runner-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,uBAAuB,IAAI,OAAO,CAiIjD"}
|
|
@@ -3,6 +3,7 @@ import chalk from 'chalk';
|
|
|
3
3
|
import Table from 'cli-table3';
|
|
4
4
|
import { configManager } from '../../../core/config/manager.js';
|
|
5
5
|
import { apiClient } from '../../../core/api/client.js';
|
|
6
|
+
import { formatReservedSlots } from './slots/helpers.js';
|
|
6
7
|
export function createRunnerListCommand() {
|
|
7
8
|
const listCommand = new Command('list');
|
|
8
9
|
listCommand.description('List runners with pagination');
|
|
@@ -89,8 +90,8 @@ export function createRunnerListCommand() {
|
|
|
89
90
|
}
|
|
90
91
|
console.log(chalk.bold('\nš Runner List\n'));
|
|
91
92
|
const table = new Table({
|
|
92
|
-
head: [chalk.bold('ID'), chalk.bold('Name'), chalk.bold('Type'), chalk.bold('Status'), chalk.bold('Paused'), chalk.bold('Concurrent'), chalk.bold('Running'), chalk.bold('Last Heartbeat')],
|
|
93
|
-
colWidths: [14, 18, 14, 10, 8, 12, 10, 20],
|
|
93
|
+
head: [chalk.bold('ID'), chalk.bold('Name'), chalk.bold('Type'), chalk.bold('Status'), chalk.bold('Paused'), chalk.bold('Concurrent'), chalk.bold('Version'), chalk.bold('Reserved'), chalk.bold('Running'), chalk.bold('Last Heartbeat')],
|
|
94
|
+
colWidths: [14, 18, 14, 10, 8, 12, 12, 14, 10, 20],
|
|
94
95
|
style: { head: [], border: [] },
|
|
95
96
|
});
|
|
96
97
|
for (const runner of records) {
|
|
@@ -102,6 +103,8 @@ export function createRunnerListCommand() {
|
|
|
102
103
|
statusColor(runner.status || '-'),
|
|
103
104
|
runner.paused === true ? chalk.yellow('YES') : runner.paused === false ? chalk.gray('NO') : '-',
|
|
104
105
|
runner.concurrentLimit !== undefined ? String(runner.concurrentLimit) : '-',
|
|
106
|
+
runner.runnerVersion || '-',
|
|
107
|
+
formatReservedSlots(runner.reservedSlots),
|
|
105
108
|
runner.runningJobCount !== undefined ? String(runner.runningJobCount) : '-',
|
|
106
109
|
runner.lastHeartbeatAt || '-',
|
|
107
110
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-list.js","sourceRoot":"","sources":["../../../../src/commands/liberica/runner/runner-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"runner-list.js","sourceRoot":"","sources":["../../../../src/commands/liberica/runner/runner-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/slots/clear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,6BAA6B,IAAI,OAAO,CAuEvD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { configManager } from '../../../../core/config/manager.js';
|
|
4
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
5
|
+
import { fail, formatReservedSlots } from './helpers.js';
|
|
6
|
+
export function createRunnerSlotsClearCommand() {
|
|
7
|
+
const command = new Command('clear');
|
|
8
|
+
command.description('Clear all reserved slots for a runner');
|
|
9
|
+
command
|
|
10
|
+
.argument('<id>', 'Runner ID')
|
|
11
|
+
.option('--dry-run', 'Preview without making API call')
|
|
12
|
+
.option('--json', 'Output as JSON')
|
|
13
|
+
.action(async (id, options) => {
|
|
14
|
+
const context = configManager.getCurrentContext();
|
|
15
|
+
const environment = options.env || context.environment;
|
|
16
|
+
const tenant = options.tenant || context.tenant;
|
|
17
|
+
const dryRun = options.dryRun === true;
|
|
18
|
+
const jsonOutput = options.json === true;
|
|
19
|
+
if (!id || !id.trim()) {
|
|
20
|
+
fail(jsonOutput, 'MISSING_ID', 'Runner ID is required');
|
|
21
|
+
}
|
|
22
|
+
const reservedSlots = {};
|
|
23
|
+
if (dryRun) {
|
|
24
|
+
if (jsonOutput) {
|
|
25
|
+
console.log(JSON.stringify({ success: true, dryRun: true, data: { runnerId: id, reservedSlots } }, null, 2));
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
console.log(chalk.bold('\nš Dry-Run Mode: No changes will be made\n'));
|
|
29
|
+
console.log(` Runner to have reserved slots cleared: ${id}`);
|
|
30
|
+
console.log();
|
|
31
|
+
}
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const response = await apiClient.setRunnerReservedSlots(environment, tenant, id, reservedSlots);
|
|
35
|
+
if (!response.success) {
|
|
36
|
+
fail(jsonOutput, response.error?.code || 'CLEAR_RUNNER_SLOTS_ERROR', response.error?.message || 'Failed to clear reserved slots');
|
|
37
|
+
}
|
|
38
|
+
const data = response.data;
|
|
39
|
+
const result = {
|
|
40
|
+
runnerId: data?.runnerId ?? id,
|
|
41
|
+
reservedSlots: data?.reservedSlots ?? {},
|
|
42
|
+
};
|
|
43
|
+
if (jsonOutput) {
|
|
44
|
+
console.log(JSON.stringify({ success: true, data: result }, null, 2));
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
console.log(chalk.green('ā å·²ęø
空é¢ēę§½ä½ (reserved slots cleared)\n'));
|
|
48
|
+
console.log(` ${chalk.gray('Runner ID:')} ${result.runnerId}`);
|
|
49
|
+
console.log(` ${chalk.gray('Reserved:')} ${formatReservedSlots(result.reservedSlots)}`);
|
|
50
|
+
console.log();
|
|
51
|
+
});
|
|
52
|
+
return command;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=clear.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/slots/clear.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/slots/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,2BAA2B,IAAI,OAAO,CA2CrD"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { configManager } from '../../../../core/config/manager.js';
|
|
4
|
+
import { fail, findRunner, formatReservedSlots } from './helpers.js';
|
|
5
|
+
export function createRunnerSlotsGetCommand() {
|
|
6
|
+
const command = new Command('get');
|
|
7
|
+
command.description('Show reserved slots for a runner');
|
|
8
|
+
command
|
|
9
|
+
.argument('<id>', 'Runner ID')
|
|
10
|
+
.option('--json', 'Output as JSON')
|
|
11
|
+
.action(async (id, options) => {
|
|
12
|
+
const context = configManager.getCurrentContext();
|
|
13
|
+
const environment = options.env || context.environment;
|
|
14
|
+
const tenant = options.tenant || context.tenant;
|
|
15
|
+
const jsonOutput = options.json === true;
|
|
16
|
+
if (!id || !id.trim()) {
|
|
17
|
+
fail(jsonOutput, 'MISSING_ID', 'Runner ID is required');
|
|
18
|
+
}
|
|
19
|
+
const lookup = await findRunner(environment, tenant, id);
|
|
20
|
+
if (lookup.error) {
|
|
21
|
+
fail(jsonOutput, lookup.error.code, lookup.error.message);
|
|
22
|
+
}
|
|
23
|
+
if (!lookup.runner) {
|
|
24
|
+
fail(jsonOutput, 'RUNNER_NOT_FOUND', `Runner ${id} not found`);
|
|
25
|
+
}
|
|
26
|
+
const reservedSlots = lookup.runner.reservedSlots ?? null;
|
|
27
|
+
if (jsonOutput) {
|
|
28
|
+
console.log(JSON.stringify({ success: true, data: { runnerId: id, reservedSlots } }, null, 2));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
console.log(chalk.bold('\nš Runner Reserved Slots\n'));
|
|
32
|
+
console.log(` ${chalk.gray('Runner ID:')} ${id}`);
|
|
33
|
+
console.log(` ${chalk.gray('Reserved:')} ${formatReservedSlots(reservedSlots)}`);
|
|
34
|
+
console.log();
|
|
35
|
+
});
|
|
36
|
+
return command;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/slots/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,UAAU,2BAA2B;IACzC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC;IAExD,OAAO;SACJ,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;SAC7B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,OAAO,EAAE,EAAE;QACpC,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,WAAW,GAAI,OAAO,CAAC,GAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;QACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;QAChD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;QAEzC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAEzD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC;QAE1D,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAClF,CAAC;YACF,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,mBAAmB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Environment } from '../../../../types/index.js';
|
|
2
|
+
import { Runner } from '../../../../types/runner.js';
|
|
3
|
+
export declare function formatReservedSlots(slots?: Record<string, number> | null): string;
|
|
4
|
+
export declare function fail(jsonOutput: boolean, code: string, message: string): never;
|
|
5
|
+
export interface RunnerLookupResult {
|
|
6
|
+
runner?: Runner;
|
|
7
|
+
error?: {
|
|
8
|
+
code: string;
|
|
9
|
+
message: string;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export declare function findRunner(environment: Environment, tenant: string, runnerId: string): Promise<RunnerLookupResult>;
|
|
13
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/slots/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAY,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAI/D,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,MAAM,CAQjF;AAED,wBAAgB,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAS9E;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,wBAAsB,UAAU,CAC9B,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,CA8B7B"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
3
|
+
const LOOKUP_PAGE_SIZE = 100;
|
|
4
|
+
export function formatReservedSlots(slots) {
|
|
5
|
+
if (!slots)
|
|
6
|
+
return '-';
|
|
7
|
+
const entries = Object.entries(slots);
|
|
8
|
+
if (entries.length === 0)
|
|
9
|
+
return '-';
|
|
10
|
+
return entries
|
|
11
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
12
|
+
.map(([type, count]) => `${type}:${count}`)
|
|
13
|
+
.join(', ');
|
|
14
|
+
}
|
|
15
|
+
export function fail(jsonOutput, code, message) {
|
|
16
|
+
if (jsonOutput) {
|
|
17
|
+
console.log(JSON.stringify({ success: false, error: { code, message } }));
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
console.error(chalk.red(`\nā ${message}`));
|
|
21
|
+
console.error(chalk.gray(` Error code: ${code}`));
|
|
22
|
+
console.error();
|
|
23
|
+
}
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
export async function findRunner(environment, tenant, runnerId) {
|
|
27
|
+
let pageNo = 1;
|
|
28
|
+
for (;;) {
|
|
29
|
+
const response = await apiClient.listRunners(environment, tenant, {
|
|
30
|
+
pageNo,
|
|
31
|
+
pageSize: LOOKUP_PAGE_SIZE,
|
|
32
|
+
});
|
|
33
|
+
if (!response.success) {
|
|
34
|
+
return {
|
|
35
|
+
error: {
|
|
36
|
+
code: response.error?.code || 'LIST_RUNNERS_ERROR',
|
|
37
|
+
message: response.error?.message || 'Unknown error',
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const data = response.data;
|
|
42
|
+
const rows = data?.rows || [];
|
|
43
|
+
const found = rows.find((runner) => String(runner.runnerId) === String(runnerId));
|
|
44
|
+
if (found)
|
|
45
|
+
return { runner: found };
|
|
46
|
+
const totalRows = data?.totalRows ?? rows.length;
|
|
47
|
+
if (rows.length === 0 || pageNo * LOOKUP_PAGE_SIZE >= totalRows) {
|
|
48
|
+
return {};
|
|
49
|
+
}
|
|
50
|
+
pageNo += 1;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/slots/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAI3D,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,MAAM,UAAU,mBAAmB,CAAC,KAAqC;IACvE,IAAI,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC;IACvB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACrC,OAAO,OAAO;SACX,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC;SAC1C,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,UAAmB,EAAE,IAAY,EAAE,OAAe;IACrE,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,WAAwB,EACxB,MAAc,EACd,QAAgB;IAEhB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,SAAS,CAAC;QACR,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE;YAChE,MAAM;YACN,QAAQ,EAAE,gBAAgB;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO;gBACL,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,IAAI,oBAAoB;oBAClD,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe;iBACpD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAA+B,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClF,IAAI,KAAK;YAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAEpC,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC;QACjD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,GAAG,gBAAgB,IAAI,SAAS,EAAE,CAAC;YAChE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,IAAI,CAAC,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/slots/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,wBAAwB,IAAI,OAAO,CASlD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { createRunnerSlotsGetCommand } from './get.js';
|
|
3
|
+
import { createRunnerSlotsSetCommand } from './set.js';
|
|
4
|
+
import { createRunnerSlotsClearCommand } from './clear.js';
|
|
5
|
+
export function createRunnerSlotsCommand() {
|
|
6
|
+
const slotsCommand = new Command('slots');
|
|
7
|
+
slotsCommand.description('View, set or clear reserved slots for a runner');
|
|
8
|
+
slotsCommand.addCommand(createRunnerSlotsGetCommand());
|
|
9
|
+
slotsCommand.addCommand(createRunnerSlotsSetCommand());
|
|
10
|
+
slotsCommand.addCommand(createRunnerSlotsClearCommand());
|
|
11
|
+
return slotsCommand;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/slots/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAE3D,MAAM,UAAU,wBAAwB;IACtC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,YAAY,CAAC,WAAW,CAAC,gDAAgD,CAAC,CAAC;IAE3E,YAAY,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACvD,YAAY,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACvD,YAAY,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAC;IAEzD,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/slots/set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,wBAAgB,2BAA2B,IAAI,OAAO,CAyFrD"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { configManager } from '../../../../core/config/manager.js';
|
|
4
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
5
|
+
import { fail, formatReservedSlots } from './helpers.js';
|
|
6
|
+
export function createRunnerSlotsSetCommand() {
|
|
7
|
+
const command = new Command('set');
|
|
8
|
+
command.description('Set reserved slots for a runner agent type (replaces the reservation map)');
|
|
9
|
+
command
|
|
10
|
+
.argument('<id>', 'Runner ID')
|
|
11
|
+
.option('--type <string>', 'Agent / runner type to reserve slots for')
|
|
12
|
+
.option('--slots <number>', 'Number of slots to reserve (integer >= 0)')
|
|
13
|
+
.option('--dry-run', 'Preview without making API call')
|
|
14
|
+
.option('--json', 'Output as JSON')
|
|
15
|
+
.action(async (id, options) => {
|
|
16
|
+
const context = configManager.getCurrentContext();
|
|
17
|
+
const environment = options.env || context.environment;
|
|
18
|
+
const tenant = options.tenant || context.tenant;
|
|
19
|
+
const dryRun = options.dryRun === true;
|
|
20
|
+
const jsonOutput = options.json === true;
|
|
21
|
+
if (!id || !id.trim()) {
|
|
22
|
+
fail(jsonOutput, 'MISSING_ID', 'Runner ID is required');
|
|
23
|
+
}
|
|
24
|
+
const type = (options.type || '').trim();
|
|
25
|
+
if (!type) {
|
|
26
|
+
fail(jsonOutput, 'MISSING_TYPE', '--type is required');
|
|
27
|
+
}
|
|
28
|
+
const rawSlots = options.slots;
|
|
29
|
+
if (rawSlots === undefined || rawSlots === null || String(rawSlots).trim() === '') {
|
|
30
|
+
fail(jsonOutput, 'MISSING_SLOTS', '--slots is required');
|
|
31
|
+
}
|
|
32
|
+
const slots = Number(rawSlots);
|
|
33
|
+
if (!Number.isInteger(slots) || slots < 0) {
|
|
34
|
+
fail(jsonOutput, 'INVALID_SLOTS', '--slots must be an integer >= 0');
|
|
35
|
+
}
|
|
36
|
+
const reservedSlots = { [type]: slots };
|
|
37
|
+
if (dryRun) {
|
|
38
|
+
if (jsonOutput) {
|
|
39
|
+
console.log(JSON.stringify({ success: true, dryRun: true, data: { runnerId: id, reservedSlots } }, null, 2));
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
console.log(chalk.bold('\nš Dry-Run Mode: No changes will be made\n'));
|
|
43
|
+
console.log(` Runner: ${id}`);
|
|
44
|
+
console.log(` Reserved: ${formatReservedSlots(reservedSlots)}`);
|
|
45
|
+
console.log();
|
|
46
|
+
}
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const response = await apiClient.setRunnerReservedSlots(environment, tenant, id, reservedSlots);
|
|
50
|
+
if (!response.success) {
|
|
51
|
+
fail(jsonOutput, response.error?.code || 'SET_RUNNER_SLOTS_ERROR', response.error?.message || 'Failed to set reserved slots');
|
|
52
|
+
}
|
|
53
|
+
const data = response.data;
|
|
54
|
+
const result = {
|
|
55
|
+
runnerId: data?.runnerId ?? id,
|
|
56
|
+
reservedSlots: data?.reservedSlots ?? null,
|
|
57
|
+
};
|
|
58
|
+
if (jsonOutput) {
|
|
59
|
+
console.log(JSON.stringify({ success: true, data: result }, null, 2));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
console.log(chalk.green('ā 已设置é¢ēę§½ä½ (reserved slots updated)\n'));
|
|
63
|
+
console.log(` ${chalk.gray('Runner ID:')} ${result.runnerId}`);
|
|
64
|
+
console.log(` ${chalk.gray('Reserved:')} ${formatReservedSlots(result.reservedSlots)}`);
|
|
65
|
+
console.log();
|
|
66
|
+
});
|
|
67
|
+
return command;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=set.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/slots/set.ts"],"names":[],"mappings":"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"}
|
|
@@ -1219,6 +1219,7 @@ export declare const apiClient: {
|
|
|
1219
1219
|
drainRunner(environment: Environment, tenant: string, runnerId: string): Promise<RunnerApiResponse>;
|
|
1220
1220
|
resumeRunner(environment: Environment, tenant: string, runnerId: string): Promise<RunnerApiResponse>;
|
|
1221
1221
|
deleteRunner(environment: Environment, tenant: string, runnerId: string): Promise<RunnerApiResponse>;
|
|
1222
|
+
setRunnerReservedSlots(environment: Environment, tenant: string, runnerId: string, reservedSlots: Record<string, number>): Promise<RunnerApiResponse>;
|
|
1222
1223
|
listRunnerJobs(environment: Environment, tenant: string, params: RunnerJobPageQueryParams): Promise<RunnerApiResponse>;
|
|
1223
1224
|
getRunnerJob(environment: Environment, tenant: string, runnerJobId: string): Promise<RunnerApiResponse>;
|
|
1224
1225
|
addRunnerJob(environment: Environment, tenant: string, request: AddRunnerJobRequest, idempotencyKey: string): Promise<RunnerApiResponse>;
|