@agentworkforce/cli 3.0.3 → 3.0.5
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/CHANGELOG.md +16 -0
- package/README.md +6 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +56 -9
- package/dist/cli.js.map +1 -1
- package/dist/deploy-command.d.ts +15 -1
- package/dist/deploy-command.d.ts.map +1 -1
- package/dist/deploy-command.js +217 -20
- package/dist/deploy-command.js.map +1 -1
- package/dist/deploy-command.test.js +136 -3
- package/dist/deploy-command.test.js.map +1 -1
- package/dist/destroy-command.d.ts +19 -0
- package/dist/destroy-command.d.ts.map +1 -0
- package/dist/destroy-command.js +288 -0
- package/dist/destroy-command.js.map +1 -0
- package/dist/destroy-command.test.d.ts +2 -0
- package/dist/destroy-command.test.d.ts.map +1 -0
- package/dist/destroy-command.test.js +312 -0
- package/dist/destroy-command.test.js.map +1 -0
- package/dist/list-command.d.ts +23 -0
- package/dist/list-command.d.ts.map +1 -0
- package/dist/list-command.js +228 -0
- package/dist/list-command.js.map +1 -0
- package/dist/list-command.test.d.ts +2 -0
- package/dist/list-command.test.d.ts.map +1 -0
- package/dist/list-command.test.js +42 -0
- package/dist/list-command.test.js.map +1 -0
- package/dist/runtime-picker.d.ts +8 -0
- package/dist/runtime-picker.d.ts.map +1 -0
- package/dist/runtime-picker.js +35 -0
- package/dist/runtime-picker.js.map +1 -0
- package/dist/runtime-picker.test.d.ts +2 -0
- package/dist/runtime-picker.test.d.ts.map +1 -0
- package/dist/runtime-picker.test.js +27 -0
- package/dist/runtime-picker.test.js.map +1 -0
- package/package.json +5 -4
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [3.0.5] - 2026-05-13
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Preserve relay cloud login on workforce logout (#111)
|
|
15
|
+
|
|
16
|
+
## [3.0.4] - 2026-05-13
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- **Add destroy command for tearing down deployed agents** (#107)
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- Deploy v1 CLI runtime credentials and customer example (#109)
|
|
25
|
+
|
|
10
26
|
## [3.0.3] - 2026-05-13
|
|
11
27
|
|
|
12
28
|
### Added
|
package/README.md
CHANGED
|
@@ -13,6 +13,7 @@ agentworkforce show <persona>[@<tier>]
|
|
|
13
13
|
agentworkforce install [flags] <pkg|path>
|
|
14
14
|
agentworkforce sources <list|add|remove>
|
|
15
15
|
agentworkforce harness check
|
|
16
|
+
agentworkforce destroy <persona-or-agent-id> [--workspace <id>] [--cloud-url <url>] [--no-prompt]
|
|
16
17
|
agentworkforce --version
|
|
17
18
|
```
|
|
18
19
|
|
|
@@ -29,6 +30,11 @@ agentworkforce --version
|
|
|
29
30
|
- `sources` — list, add, or remove persona source directories.
|
|
30
31
|
- `harness check` — probe which harnesses (`claude`, `codex`, `opencode`)
|
|
31
32
|
are installed. See [`## Harness check`](#harness-check) below.
|
|
33
|
+
- `destroy` — tear down a deployed cloud agent: cancels all relaycron
|
|
34
|
+
schedules and marks the agent as destroyed. Accepts either a persona
|
|
35
|
+
JSON path (slug resolved via the workspace's agents index) or a literal
|
|
36
|
+
agent UUID. Exits `0` on success, `2` when the agent is unknown or
|
|
37
|
+
already destroyed, `1` for any other failure.
|
|
32
38
|
- `--version` — print the installed package version.
|
|
33
39
|
|
|
34
40
|
## Install
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAsBA,OAAO,EAgBL,KAAK,OAAO,EAIZ,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAGrB,KAAK,aAAa,EAEnB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -9,7 +9,9 @@ import { buildCleanupArtifacts, buildInstallArtifacts, buildInteractiveSpec, bui
|
|
|
9
9
|
import { listBuiltInPersonas, personaCatalog, routingProfiles } from '@agentworkforce/workload-router';
|
|
10
10
|
import { createMount, readAgentDotfiles } from '@relayfile/local-mount';
|
|
11
11
|
import ora from 'ora';
|
|
12
|
-
import { runDeploy, runLogin } from './deploy-command.js';
|
|
12
|
+
import { runDeploy, runLogin, runLogout } from './deploy-command.js';
|
|
13
|
+
import { runDestroy } from './destroy-command.js';
|
|
14
|
+
import { runDeploymentList } from './list-command.js';
|
|
13
15
|
import { startLaunchMetadataRecording } from './launch-metadata.js';
|
|
14
16
|
import { buildPersonaSourceDirectories, defaultCwdPersonaDir, formatPersonaSourceLabel, loadLocalPersonas, loadPersonaSourceConfig, normalizePersonaDir, savePersonaSourceConfig } from './local-personas.js';
|
|
15
17
|
import { installPersonas } from './persona-install.js';
|
|
@@ -85,6 +87,7 @@ Commands:
|
|
|
85
87
|
inspection.
|
|
86
88
|
list [flags] List available personas from the cascade (cwd →
|
|
87
89
|
configured persona dirs → library). Flags:
|
|
90
|
+
--deployments list deployed cloud agents
|
|
88
91
|
--json emit JSON instead of a table
|
|
89
92
|
--filter-harness <harness> only show this harness
|
|
90
93
|
(${HARNESS_VALUES.join(' | ')})
|
|
@@ -140,10 +143,23 @@ Commands:
|
|
|
140
143
|
--cloud-url <url> override the workforce cloud URL
|
|
141
144
|
--input KEY=value override a declared persona input
|
|
142
145
|
(repeat for multiple)
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
146
|
+
deployments list List deployed cloud agents in the active workspace.
|
|
147
|
+
destroy <persona-or-agent-id> [flags]
|
|
148
|
+
Tear down a deployed agent: cancel all schedules and
|
|
149
|
+
mark the agent as destroyed in the workspace. Accepts
|
|
150
|
+
either a persona JSON path (resolved to an agent id
|
|
151
|
+
via the workspace's agents index) or a literal agent
|
|
152
|
+
UUID.
|
|
153
|
+
Flags:
|
|
154
|
+
--workspace <id> pick a non-default workspace
|
|
155
|
+
--cloud-url <url> override the workforce cloud URL
|
|
156
|
+
--no-prompt fail instead of opening the
|
|
157
|
+
browser login flow
|
|
158
|
+
Exit codes: 0 destroyed, 2 not found / already
|
|
159
|
+
destroyed, 1 any other error.
|
|
160
|
+
login Connect this machine to a workforce workspace using
|
|
161
|
+
browser OAuth and store a workspace token.
|
|
162
|
+
logout Clear browser OAuth auth and the stored workspace token.
|
|
147
163
|
|
|
148
164
|
Options:
|
|
149
165
|
-h, --help Show this help text.
|
|
@@ -172,6 +188,8 @@ Examples:
|
|
|
172
188
|
agentworkforce agent "$(agentworkforce pick "fix the flaky test in foo.test.ts")"
|
|
173
189
|
agentworkforce deploy ./personas/weekly-digest.json --mode cloud
|
|
174
190
|
agentworkforce deploy ./personas/weekly-digest.json --mode sandbox --input TOPIC="Deploy v1"
|
|
191
|
+
agentworkforce destroy ./personas/weekly-digest.json
|
|
192
|
+
agentworkforce destroy 11111111-2222-4333-8444-555555555555
|
|
175
193
|
agentworkforce login
|
|
176
194
|
`;
|
|
177
195
|
function die(msg, withUsage = true) {
|
|
@@ -1760,6 +1778,7 @@ function parseListArgs(args) {
|
|
|
1760
1778
|
let filterHarness;
|
|
1761
1779
|
let filterTag;
|
|
1762
1780
|
const display = { description: true };
|
|
1781
|
+
let deployments = false;
|
|
1763
1782
|
const valueOf = (i, flag) => {
|
|
1764
1783
|
const v = args[i + 1];
|
|
1765
1784
|
if (v === undefined || v.startsWith('--')) {
|
|
@@ -1772,8 +1791,11 @@ function parseListArgs(args) {
|
|
|
1772
1791
|
if (arg === '--json') {
|
|
1773
1792
|
json = true;
|
|
1774
1793
|
}
|
|
1794
|
+
else if (arg === '--deployments') {
|
|
1795
|
+
deployments = true;
|
|
1796
|
+
}
|
|
1775
1797
|
else if (arg === '-h' || arg === '--help') {
|
|
1776
|
-
process.stdout.write('Usage: agentworkforce list [--json] [--filter-harness <harness>] [--filter-tag <tag>] [--no-display-description]\n');
|
|
1798
|
+
process.stdout.write('Usage: agentworkforce list [--deployments] [--status <status>] [--persona <slug>] [--json] [--filter-harness <harness>] [--filter-tag <tag>] [--no-display-description]\n');
|
|
1777
1799
|
process.exit(0);
|
|
1778
1800
|
}
|
|
1779
1801
|
else if (arg === '--filter-harness') {
|
|
@@ -1800,9 +1822,13 @@ function parseListArgs(args) {
|
|
|
1800
1822
|
die(`list: unexpected argument "${arg}".`);
|
|
1801
1823
|
}
|
|
1802
1824
|
}
|
|
1803
|
-
return { json, filterHarness, filterTag, display };
|
|
1825
|
+
return { json, filterHarness, filterTag, display, deployments };
|
|
1804
1826
|
}
|
|
1805
|
-
function runList(args) {
|
|
1827
|
+
async function runList(args) {
|
|
1828
|
+
if (args.includes('--deployments')) {
|
|
1829
|
+
await runDeploymentList(args.filter((arg) => arg !== '--deployments'));
|
|
1830
|
+
process.exit(0);
|
|
1831
|
+
}
|
|
1806
1832
|
const { json, filterHarness, filterTag, display } = parseListArgs(args);
|
|
1807
1833
|
const rows = collectPersonaRows().filter((r) => {
|
|
1808
1834
|
if (filterHarness && r.harness !== filterHarness)
|
|
@@ -3249,7 +3275,8 @@ export async function main() {
|
|
|
3249
3275
|
process.exit(0);
|
|
3250
3276
|
}
|
|
3251
3277
|
if (subcommand === 'list') {
|
|
3252
|
-
runList(rest);
|
|
3278
|
+
await runList(rest);
|
|
3279
|
+
return;
|
|
3253
3280
|
}
|
|
3254
3281
|
if (subcommand === 'show') {
|
|
3255
3282
|
runShow(rest);
|
|
@@ -3284,10 +3311,30 @@ export async function main() {
|
|
|
3284
3311
|
await runDeploy(rest);
|
|
3285
3312
|
return;
|
|
3286
3313
|
}
|
|
3314
|
+
if (subcommand === 'deployments') {
|
|
3315
|
+
const [action, ...extra] = rest;
|
|
3316
|
+
if (!action || action === '-h' || action === '--help') {
|
|
3317
|
+
process.stdout.write('Usage: agentworkforce deployments list [flags]\n');
|
|
3318
|
+
process.exit(action ? 0 : 1);
|
|
3319
|
+
}
|
|
3320
|
+
if (action !== 'list') {
|
|
3321
|
+
die(`deployments: unknown action "${action}". Expected: list`);
|
|
3322
|
+
}
|
|
3323
|
+
await runDeploymentList(extra);
|
|
3324
|
+
return;
|
|
3325
|
+
}
|
|
3326
|
+
if (subcommand === 'destroy') {
|
|
3327
|
+
await runDestroy(rest);
|
|
3328
|
+
return;
|
|
3329
|
+
}
|
|
3287
3330
|
if (subcommand === 'login') {
|
|
3288
3331
|
await runLogin(rest);
|
|
3289
3332
|
return;
|
|
3290
3333
|
}
|
|
3334
|
+
if (subcommand === 'logout') {
|
|
3335
|
+
await runLogout(rest);
|
|
3336
|
+
return;
|
|
3337
|
+
}
|
|
3291
3338
|
if (subcommand !== 'agent') {
|
|
3292
3339
|
die(`Unknown subcommand "${subcommand}".`);
|
|
3293
3340
|
}
|