@agentworkforce/cli 3.0.2 → 3.0.4

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.
@@ -1,7 +1,33 @@
1
1
  import path from 'node:path';
2
- import { deploy } from '@agentworkforce/deploy';
2
+ import { CloudApiClient, clearStoredAuth, defaultApiUrl, ensureAuthenticated, issueWorkspaceToken } from '@agent-relay/cloud';
3
+ import { clearStoredWorkspaceToken, createTerminalIO, deploy, writeStoredWorkspaceToken } from '@agentworkforce/deploy';
4
+ import { BUILD_YOUR_OWN_RUNTIME_DOCS_URL, pickRuntime } from './runtime-picker.js';
5
+ const defaultDeployCommandDeps = {
6
+ ensureAuthenticated,
7
+ issueWorkspaceToken,
8
+ clearStoredAuth,
9
+ clearStoredWorkspaceToken,
10
+ writeStoredWorkspaceToken,
11
+ createTerminalIO,
12
+ createCloudApiClient(auth, apiUrl) {
13
+ return new CloudApiClient({
14
+ apiUrl,
15
+ accessToken: auth.accessToken,
16
+ refreshToken: auth.refreshToken,
17
+ accessTokenExpiresAt: auth.accessTokenExpiresAt
18
+ });
19
+ }
20
+ };
21
+ let deployCommandDeps = defaultDeployCommandDeps;
22
+ export function configureDeployCommandForTest(overrides) {
23
+ const previous = deployCommandDeps;
24
+ deployCommandDeps = { ...deployCommandDeps, ...overrides };
25
+ return () => {
26
+ deployCommandDeps = previous;
27
+ };
28
+ }
3
29
  /**
4
- * Argv parser + dispatcher for `workforce deploy <persona-path> [flags]`.
30
+ * Argv parser + dispatcher for `agentworkforce deploy <persona-path> [flags]`.
5
31
  * Keeps cli.ts itself slim — the file is already a large dispatcher and
6
32
  * each command lands in its own module when it grows past trivial.
7
33
  */
@@ -10,7 +36,18 @@ export async function runDeploy(args) {
10
36
  process.stdout.write(DEPLOY_USAGE);
11
37
  process.exit(args.length === 0 ? 1 : 0);
12
38
  }
13
- const parsed = parseDeployArgs(args);
39
+ let parsed = parseDeployArgs(args);
40
+ if (!parsed.mode && (parsed.noPrompt || !process.stdin.isTTY || !process.stdout.isTTY)) {
41
+ die('deploy: --mode is required when prompts are disabled or stdio is non-interactive');
42
+ }
43
+ if (!parsed.mode) {
44
+ const picked = await pickRuntime();
45
+ if (picked === 'docs') {
46
+ process.stdout.write(`${BUILD_YOUR_OWN_RUNTIME_DOCS_URL}\n`);
47
+ process.exit(0);
48
+ }
49
+ parsed = { ...parsed, mode: picked };
50
+ }
14
51
  try {
15
52
  const result = await deploy(parsed);
16
53
  if (parsed.dryRun) {
@@ -32,7 +69,7 @@ export async function runDeploy(args) {
32
69
  process.exit(exit.code);
33
70
  }
34
71
  catch (err) {
35
- process.stderr.write(`\nworkforce deploy failed: ${err instanceof Error ? err.message : String(err)}\n`);
72
+ process.stderr.write(`\nagentworkforce deploy failed: ${err instanceof Error ? err.message : String(err)}\n`);
36
73
  process.exit(1);
37
74
  }
38
75
  }
@@ -48,17 +85,57 @@ export async function runLogin(args) {
48
85
  process.stdout.write(LOGIN_USAGE);
49
86
  process.exit(0);
50
87
  }
51
- process.stderr.write('The browser-based workforce login flow is rolling out in stages and is not on by default yet.\n' +
52
- 'For now, export your workspace credentials in the shell:\n\n' +
53
- ' export WORKFORCE_WORKSPACE_ID=<workspace-id>\n' +
54
- ' export WORKFORCE_WORKSPACE_TOKEN=<workspace-token>\n\n' +
55
- 'Then re-run `workforce deploy ./your-persona.json`.\n');
56
- process.exit(1);
88
+ const opts = parseLoginArgs(args);
89
+ const io = deployCommandDeps.createTerminalIO();
90
+ const cloudUrl = normalizeCloudUrl(opts.cloudUrl ?? process.env.WORKFORCE_DEPLOY_CLOUD_URL ?? process.env.WORKFORCE_CLOUD_URL ?? defaultApiUrl());
91
+ try {
92
+ const auth = await deployCommandDeps.ensureAuthenticated(cloudUrl);
93
+ const apiUrl = normalizeCloudUrl(auth.apiUrl || cloudUrl);
94
+ const workspaces = await listWorkspacesForLogin(auth, apiUrl);
95
+ const chosen = opts.workspace
96
+ ?? await pickWorkspaceInteractive(workspaces, io);
97
+ const tokenResp = await deployCommandDeps.issueWorkspaceToken(chosen, {
98
+ apiUrl,
99
+ name: 'agentworkforce-cli'
100
+ });
101
+ const token = readWorkspaceToken(tokenResp);
102
+ const workspaceId = readWorkspaceId(tokenResp) ?? findWorkspace(workspaces, chosen)?.id ?? chosen;
103
+ await deployCommandDeps.writeStoredWorkspaceToken({
104
+ workspace: chosen,
105
+ workspaceSlug: findWorkspace(workspaces, chosen)?.slug ?? chosen,
106
+ workspaceId,
107
+ token,
108
+ cloudUrl: apiUrl
109
+ });
110
+ process.stdout.write(`\nlogged in: ${chosen}\n`);
111
+ process.exit(0);
112
+ }
113
+ catch (err) {
114
+ process.stderr.write(`\nagentworkforce login failed: ${err instanceof Error ? err.message : String(err)}\n`);
115
+ process.exit(1);
116
+ }
57
117
  }
58
- const DEPLOY_USAGE = `usage: workforce deploy <persona-path> [flags]
118
+ export async function runLogout(args) {
119
+ if (args.length > 0 && (args[0] === '-h' || args[0] === '--help')) {
120
+ process.stdout.write(LOGOUT_USAGE);
121
+ process.exit(0);
122
+ }
123
+ const opts = parseLogoutArgs(args);
124
+ try {
125
+ await deployCommandDeps.clearStoredAuth();
126
+ await deployCommandDeps.clearStoredWorkspaceToken(opts.workspace);
127
+ process.stdout.write('logged out\n');
128
+ process.exit(0);
129
+ }
130
+ catch (err) {
131
+ process.stderr.write(`\nagentworkforce logout failed: ${err instanceof Error ? err.message : String(err)}\n`);
132
+ process.exit(1);
133
+ }
134
+ }
135
+ const DEPLOY_USAGE = `usage: agentworkforce deploy <persona-path> [flags]
59
136
 
60
137
  Flags:
61
- --mode dev|sandbox|cloud Pick a run mode (default: sandbox if Daytona/workspace creds resolve, else dev)
138
+ --mode dev|sandbox|cloud Pick a run mode (prompts in an interactive terminal)
62
139
  --workspace <name> Workforce workspace; defaults to the active workspace
63
140
  --no-connect Skip integration-connect prompts; fail if any are missing
64
141
  --byo-sandbox Force BYO Daytona auth even when logged in
@@ -66,17 +143,34 @@ Flags:
66
143
  --bundle-out <dir> Emit the bundle to <dir> and exit (no launch)
67
144
  --dry-run Validate the persona and exit before any side effects
68
145
  --cloud-url <url> Override the workforce cloud base URL
146
+ --no-prompt Fail instead of prompting for cloud setup
147
+ --harness-source <source> Cloud harness source: plan, byok, or oauth
148
+ --byok-key <key> API key for --harness-source byok
149
+ --on-exists <choice> Existing cloud persona behavior: cancel, update, or destroy
69
150
  --input <key>=<value> Override a declared persona input (repeatable)
70
151
  -h, --help Print this message
71
152
  `;
72
- const LOGIN_USAGE = `usage: workforce login
153
+ const LOGIN_USAGE = `usage: agentworkforce login [flags]
73
154
 
74
- Connect this machine to a workforce workspace. The full OAuth flow ships
75
- once the cloud login surface is live; until then, set:
155
+ Connect this machine to a workforce workspace using the browser OAuth flow.
156
+ The resulting workspace token is stored in the OS keychain when available,
157
+ falling back to ~/.agentworkforce/login.json.
76
158
 
77
- export WORKFORCE_WORKSPACE_ID=...
78
- export WORKFORCE_WORKSPACE_TOKEN=...
159
+ Flags:
160
+ --workspace <name> Workforce workspace; defaults to WORKFORCE_WORKSPACE_ID or prompt
161
+ --cloud-url <url> Override the workforce cloud base URL
162
+ -h, --help Print this message
79
163
  `;
164
+ const LOGOUT_USAGE = `usage: agentworkforce logout [flags]
165
+
166
+ Clear the browser OAuth login and the stored workspace token.
167
+
168
+ Flags:
169
+ --workspace <name> Optional workspace token entry to clear
170
+ -h, --help Print this message
171
+ `;
172
+ const HARNESS_SOURCES = ['plan', 'byok', 'oauth'];
173
+ const ON_EXISTS_CHOICES = ['update', 'destroy', 'cancel'];
80
174
  export function parseDeployArgs(args) {
81
175
  let personaPath;
82
176
  let mode;
@@ -87,6 +181,10 @@ export function parseDeployArgs(args) {
87
181
  let bundleOut;
88
182
  let dryRun = false;
89
183
  let cloudUrl;
184
+ let noPrompt = false;
185
+ let harnessSource;
186
+ let byokKey;
187
+ let onExists;
90
188
  const inputs = {};
91
189
  for (let i = 0; i < args.length; i += 1) {
92
190
  const a = args[i];
@@ -122,6 +220,31 @@ export function parseDeployArgs(args) {
122
220
  else if (a === '--cloud-url') {
123
221
  cloudUrl = expectValue('--cloud-url', args[++i]);
124
222
  }
223
+ else if (a.startsWith('--cloud-url=')) {
224
+ cloudUrl = expectInlineValue('--cloud-url', a.slice('--cloud-url='.length));
225
+ }
226
+ else if (a === '--no-prompt') {
227
+ noPrompt = true;
228
+ noConnect = true;
229
+ }
230
+ else if (a === '--harness-source') {
231
+ harnessSource = expectChoice('--harness-source', expectValue('--harness-source', args[++i]), HARNESS_SOURCES);
232
+ }
233
+ else if (a.startsWith('--harness-source=')) {
234
+ harnessSource = expectChoice('--harness-source', expectInlineValue('--harness-source', a.slice('--harness-source='.length)), HARNESS_SOURCES);
235
+ }
236
+ else if (a === '--byok-key') {
237
+ byokKey = expectValue('--byok-key', args[++i]);
238
+ }
239
+ else if (a.startsWith('--byok-key=')) {
240
+ byokKey = expectInlineValue('--byok-key', a.slice('--byok-key='.length));
241
+ }
242
+ else if (a === '--on-exists') {
243
+ onExists = expectChoice('--on-exists', expectValue('--on-exists', args[++i]), ON_EXISTS_CHOICES);
244
+ }
245
+ else if (a.startsWith('--on-exists=')) {
246
+ onExists = expectChoice('--on-exists', expectInlineValue('--on-exists', a.slice('--on-exists='.length)), ON_EXISTS_CHOICES);
247
+ }
125
248
  else if (a === '--input') {
126
249
  parseDeployInputValue(expectDeployInputValue(args[++i]), inputs);
127
250
  }
@@ -139,7 +262,7 @@ export function parseDeployArgs(args) {
139
262
  }
140
263
  }
141
264
  if (!personaPath) {
142
- die('deploy: missing persona path. Usage: workforce deploy <persona-path>');
265
+ die('deploy: missing persona path. Usage: agentworkforce deploy <persona-path>');
143
266
  }
144
267
  return {
145
268
  personaPath,
@@ -151,6 +274,10 @@ export function parseDeployArgs(args) {
151
274
  ...(bundleOut ? { bundleOut } : {}),
152
275
  ...(dryRun ? { dryRun: true } : {}),
153
276
  ...(cloudUrl ? { cloudUrl } : {}),
277
+ ...(noPrompt ? { noPrompt: true } : {}),
278
+ ...(harnessSource ? { harnessSource } : {}),
279
+ ...(byokKey ? { byokKey } : {}),
280
+ ...(onExists ? { onExists } : {}),
154
281
  ...(Object.keys(inputs).length > 0 ? { inputs } : {})
155
282
  };
156
283
  }
@@ -180,6 +307,170 @@ function expectValue(flag, value) {
180
307
  }
181
308
  return value;
182
309
  }
310
+ function expectInlineValue(flag, value) {
311
+ if (!value.trim()) {
312
+ die(`${flag}: missing value`);
313
+ }
314
+ return value;
315
+ }
316
+ function expectChoice(flag, value, allowed) {
317
+ if (!allowed.includes(value)) {
318
+ die(`${flag}: expected one of ${allowed.join('|')}; got "${value}"`);
319
+ }
320
+ return value;
321
+ }
322
+ function parseLoginArgs(args) {
323
+ let workspace;
324
+ let cloudUrl;
325
+ for (let i = 0; i < args.length; i += 1) {
326
+ const a = args[i];
327
+ if (a === '-h' || a === '--help') {
328
+ process.stdout.write(LOGIN_USAGE);
329
+ process.exit(0);
330
+ }
331
+ else if (a === '--workspace') {
332
+ workspace = expectValue('--workspace', args[++i]);
333
+ }
334
+ else if (a.startsWith('--workspace=')) {
335
+ workspace = expectInlineValue('--workspace', a.slice('--workspace='.length));
336
+ }
337
+ else if (a === '--cloud-url') {
338
+ cloudUrl = expectValue('--cloud-url', args[++i]);
339
+ }
340
+ else if (a.startsWith('--cloud-url=')) {
341
+ cloudUrl = expectInlineValue('--cloud-url', a.slice('--cloud-url='.length));
342
+ }
343
+ else {
344
+ die(`login: unknown argument "${a}"`);
345
+ }
346
+ }
347
+ return {
348
+ ...(workspace ? { workspace } : {}),
349
+ ...(cloudUrl ? { cloudUrl } : {})
350
+ };
351
+ }
352
+ function parseLogoutArgs(args) {
353
+ let workspace;
354
+ for (let i = 0; i < args.length; i += 1) {
355
+ const a = args[i];
356
+ if (a === '-h' || a === '--help') {
357
+ process.stdout.write(LOGOUT_USAGE);
358
+ process.exit(0);
359
+ }
360
+ else if (a === '--workspace') {
361
+ workspace = expectValue('--workspace', args[++i]);
362
+ }
363
+ else if (a.startsWith('--workspace=')) {
364
+ workspace = expectInlineValue('--workspace', a.slice('--workspace='.length));
365
+ }
366
+ else {
367
+ die(`logout: unknown argument "${a}"`);
368
+ }
369
+ }
370
+ return {
371
+ ...(workspace ? { workspace } : {})
372
+ };
373
+ }
374
+ async function listWorkspacesForLogin(auth, apiUrl) {
375
+ const client = deployCommandDeps.createCloudApiClient(auth, apiUrl);
376
+ const res = await client.fetch('/api/v1/workspaces');
377
+ if (res.ok) {
378
+ return parseWorkspaceList(await res.json().catch(() => null));
379
+ }
380
+ if (res.status !== 404 && res.status !== 405) {
381
+ throw new Error(`workspace list failed: ${res.status} ${await res.text().catch(() => '')}`.trim());
382
+ }
383
+ const who = await client.fetch('/api/v1/auth/whoami');
384
+ if (!who.ok)
385
+ return [];
386
+ return parseWorkspaceList(await who.json().catch(() => null));
387
+ }
388
+ async function pickWorkspaceInteractive(workspaces, io) {
389
+ if (workspaces.length === 1) {
390
+ return workspaceKey(workspaces[0]);
391
+ }
392
+ if (workspaces.length > 1) {
393
+ for (let i = 0; i < workspaces.length; i += 1) {
394
+ const ws = workspaces[i];
395
+ io.info(`[${i + 1}] ${workspaceKey(ws)}${ws.name ? ` (${ws.name})` : ''}`);
396
+ }
397
+ const answer = await io.prompt('Workspace', { defaultValue: '1' });
398
+ const index = Number(answer.trim());
399
+ if (Number.isInteger(index) && index >= 1 && index <= workspaces.length) {
400
+ return workspaceKey(workspaces[index - 1]);
401
+ }
402
+ const found = findWorkspace(workspaces, answer.trim());
403
+ if (found)
404
+ return workspaceKey(found);
405
+ throw new Error(`unknown workspace "${answer}"`);
406
+ }
407
+ const answer = await io.prompt('Workspace');
408
+ if (!answer.trim()) {
409
+ throw new Error('workspace is required');
410
+ }
411
+ return answer.trim();
412
+ }
413
+ function parseWorkspaceList(payload) {
414
+ const candidates = Array.isArray(payload)
415
+ ? payload
416
+ : payload && typeof payload === 'object' && Array.isArray(payload.workspaces)
417
+ ? payload.workspaces
418
+ : payload && typeof payload === 'object' && Array.isArray(payload.items)
419
+ ? payload.items
420
+ : payload && typeof payload === 'object' && payload.currentWorkspace
421
+ ? [payload.currentWorkspace]
422
+ : [];
423
+ return candidates.flatMap((candidate) => {
424
+ if (!candidate || typeof candidate !== 'object' || Array.isArray(candidate))
425
+ return [];
426
+ const record = candidate;
427
+ const id = readString(record, 'id') ?? readString(record, 'workspaceId');
428
+ if (!id)
429
+ return [];
430
+ return [{
431
+ id,
432
+ ...(readString(record, 'slug') ? { slug: readString(record, 'slug') } : {}),
433
+ ...(readString(record, 'name') ? { name: readString(record, 'name') } : {})
434
+ }];
435
+ });
436
+ }
437
+ function findWorkspace(workspaces, value) {
438
+ return workspaces.find((workspace) => [workspace.id, workspace.slug, workspace.name].includes(value));
439
+ }
440
+ function workspaceKey(workspace) {
441
+ return workspace.slug ?? workspace.id;
442
+ }
443
+ function readWorkspaceToken(value) {
444
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
445
+ throw new Error('workspace token response was not an object');
446
+ }
447
+ const record = value;
448
+ const token = readString(record, 'token') ?? readString(record, 'key');
449
+ if (!token) {
450
+ throw new Error('workspace token response did not include a token');
451
+ }
452
+ return token;
453
+ }
454
+ function readWorkspaceId(value) {
455
+ if (!value || typeof value !== 'object' || Array.isArray(value))
456
+ return undefined;
457
+ const record = value;
458
+ const direct = readString(record, 'workspaceId');
459
+ if (direct)
460
+ return direct;
461
+ const nested = record.workspaceToken;
462
+ if (!nested || typeof nested !== 'object' || Array.isArray(nested))
463
+ return undefined;
464
+ return readString(nested, 'workspaceId');
465
+ }
466
+ function readString(record, key) {
467
+ const value = record[key];
468
+ return typeof value === 'string' && value.trim() ? value.trim() : undefined;
469
+ }
470
+ function normalizeCloudUrl(url) {
471
+ const trimmed = url.trim();
472
+ return trimmed ? trimmed.replace(/\/+$/, '') : defaultApiUrl().replace(/\/+$/, '');
473
+ }
183
474
  function die(message) {
184
475
  process.stderr.write(`${message}\n`);
185
476
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-command.js","sourceRoot":"","sources":["../src/deploy-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy-command.js","sourceRoot":"","sources":["../src/deploy-command.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,121 @@
1
1
  import test from 'node:test';
2
2
  import assert from 'node:assert/strict';
3
3
  import path from 'node:path';
4
- import { parseDeployArgs } from './deploy-command.js';
5
- function trapExit() {
4
+ import { configureDeployCommandForTest, parseDeployArgs, runLogin, runLogout } from './deploy-command.js';
5
+ import { createBufferedIO } from '@agentworkforce/deploy';
6
+ function trapExit(throwOnExit = true) {
6
7
  const trap = {
7
8
  exits: [],
9
+ stdout: '',
8
10
  stderr: '',
9
11
  restore: () => {
10
12
  /* replaced below */
11
13
  }
12
14
  };
13
15
  const origExit = process.exit;
16
+ const origOut = process.stdout.write.bind(process.stdout);
14
17
  const origErr = process.stderr.write.bind(process.stderr);
15
18
  const fakeExit = ((code) => {
16
19
  trap.exits.push(code ?? 0);
17
- throw new Error(`__exit_trap__:${code ?? 0}`);
20
+ if (throwOnExit) {
21
+ throw new Error(`__exit_trap__:${code ?? 0}`);
22
+ }
23
+ return undefined;
18
24
  });
19
25
  process.exit = fakeExit;
26
+ process.stdout.write = ((chunk) => {
27
+ trap.stdout += typeof chunk === 'string' ? chunk : chunk.toString();
28
+ return true;
29
+ });
20
30
  process.stderr.write = ((chunk) => {
21
31
  trap.stderr += typeof chunk === 'string' ? chunk : chunk.toString();
22
32
  return true;
23
33
  });
24
34
  trap.restore = () => {
25
35
  process.exit = origExit;
36
+ process.stdout.write = origOut;
26
37
  process.stderr.write = origErr;
27
38
  };
28
39
  return trap;
29
40
  }
41
+ test('runLogin uses cloud SDK auth, mints a workspace token, and stores it', async () => {
42
+ const calls = [];
43
+ const writes = [];
44
+ const restoreDeps = configureDeployCommandForTest({
45
+ createTerminalIO: () => createBufferedIO(),
46
+ ensureAuthenticated: async (apiUrl) => {
47
+ calls.push(`ensure:${apiUrl}`);
48
+ return {
49
+ apiUrl,
50
+ accessToken: 'access',
51
+ refreshToken: 'refresh',
52
+ accessTokenExpiresAt: '2999-01-01T00:00:00.000Z'
53
+ };
54
+ },
55
+ createCloudApiClient() {
56
+ return {
57
+ async fetch(pathname) {
58
+ calls.push(`fetch:${pathname}`);
59
+ return new Response(JSON.stringify({ workspaces: [{ id: 'ws-1', slug: 'acme' }] }), {
60
+ status: 200,
61
+ headers: { 'content-type': 'application/json' }
62
+ });
63
+ }
64
+ };
65
+ },
66
+ issueWorkspaceToken: async (workspace, options = {}) => {
67
+ calls.push(`issue:${workspace}:${options.apiUrl}:${options.name}`);
68
+ return { key: 'tok-ws', workspaceToken: { workspaceId: 'ws-1', kind: 'workspace_token' } };
69
+ },
70
+ writeStoredWorkspaceToken: async (login) => {
71
+ writes.push(login);
72
+ }
73
+ });
74
+ const trap = trapExit(false);
75
+ try {
76
+ await runLogin(['--cloud-url', 'https://cloud.example.test/']);
77
+ assert.deepEqual(trap.exits, [0]);
78
+ assert.deepEqual(calls, [
79
+ 'ensure:https://cloud.example.test',
80
+ 'fetch:/api/v1/workspaces',
81
+ 'issue:acme:https://cloud.example.test:agentworkforce-cli'
82
+ ]);
83
+ assert.deepEqual(writes, [{
84
+ workspace: 'acme',
85
+ workspaceSlug: 'acme',
86
+ workspaceId: 'ws-1',
87
+ token: 'tok-ws',
88
+ cloudUrl: 'https://cloud.example.test'
89
+ }]);
90
+ assert.match(trap.stdout, /logged in: acme/);
91
+ }
92
+ finally {
93
+ trap.restore();
94
+ restoreDeps();
95
+ }
96
+ });
97
+ test('runLogout clears cloud auth and workspace token even when a workspace is passed', async () => {
98
+ const calls = [];
99
+ const restoreDeps = configureDeployCommandForTest({
100
+ clearStoredAuth: async () => {
101
+ calls.push('clear-auth');
102
+ },
103
+ clearStoredWorkspaceToken: async (workspace) => {
104
+ calls.push(`clear-workspace:${workspace ?? ''}`);
105
+ }
106
+ });
107
+ const trap = trapExit(false);
108
+ try {
109
+ await runLogout(['--workspace', 'acme']);
110
+ assert.deepEqual(trap.exits, [0]);
111
+ assert.deepEqual(calls, ['clear-auth', 'clear-workspace:acme']);
112
+ assert.match(trap.stdout, /logged out/);
113
+ }
114
+ finally {
115
+ trap.restore();
116
+ restoreDeps();
117
+ }
118
+ });
30
119
  test('parseDeployArgs: single --input parses and forwards', () => {
31
120
  const parsed = parseDeployArgs(['./persona.json', '--input', 'TOPIC=Deploy v1']);
32
121
  assert.equal(parsed.personaPath, path.resolve('./persona.json'));
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-command.test.js","sourceRoot":"","sources":["../src/deploy-command.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQtD,SAAS,QAAQ;IACf,MAAM,IAAI,GAAa;QACrB,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,GAAG,EAAE;YACZ,oBAAoB;QACtB,CAAC;KACF,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAa,EAAE,EAAE;QAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC,CAAwB,CAAC;IAE1B,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;IACxB,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAA0B,EAAE,EAAE;QACrD,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC,CAAgC,CAAC;IAElC,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE;QAClB,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;IACjC,CAAC,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,gBAAgB,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAEjF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;IAC9D,MAAM,MAAM,GAAG,eAAe,CAAC;QAC7B,gBAAgB;QAChB,SAAS;QACT,iBAAiB;QACjB,0BAA0B;KAC3B,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;QAC9B,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2DAA2D,EAAE,GAAG,EAAE;IACrE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,EAC3D,iBAAiB,CAClB,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAC;IAC1E,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"deploy-command.test.js","sourceRoot":"","sources":["../src/deploy-command.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,6BAA6B,EAC7B,eAAe,EACf,QAAQ,EACR,SAAS,EACV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,SAAS,QAAQ,CAAC,WAAW,GAAG,IAAI;IAClC,MAAM,IAAI,GAAa;QACrB,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,GAAG,EAAE;YACZ,oBAAoB;QACtB,CAAC;KACF,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAa,EAAE,EAAE;QAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QAC3B,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,SAAkB,CAAC;IAC5B,CAAC,CAAwB,CAAC;IAE1B,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;IACxB,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAA0B,EAAE,EAAE;QACrD,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC,CAAgC,CAAC;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAA0B,EAAE,EAAE;QACrD,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC,CAAgC,CAAC;IAElC,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE;QAClB,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;IACjC,CAAC,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,IAAI,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;IACtF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,6BAA6B,CAAC;QAChD,gBAAgB,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE;QAC1C,mBAAmB,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;YAC5C,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;YAC/B,OAAO;gBACL,MAAM;gBACN,WAAW,EAAE,QAAQ;gBACrB,YAAY,EAAE,SAAS;gBACvB,oBAAoB,EAAE,0BAA0B;aACjD,CAAC;QACJ,CAAC;QACD,oBAAoB;YAClB,OAAO;gBACL,KAAK,CAAC,KAAK,CAAC,QAAgB;oBAC1B,KAAK,CAAC,IAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;oBAChC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE;wBAClF,MAAM,EAAE,GAAG;wBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;qBAChD,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;QACJ,CAAC;QACD,mBAAmB,EAAE,KAAK,EAAE,SAAiB,EAAE,UAA8C,EAAE,EAAE,EAAE;YACjG,KAAK,CAAC,IAAI,CAAC,SAAS,SAAS,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACnE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,CAAC;QAC7F,CAAC;QACD,yBAAyB,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;YAClD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;KACF,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,CAAC,aAAa,EAAE,6BAA6B,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE;YACtB,mCAAmC;YACnC,0BAA0B;YAC1B,0DAA0D;SAC3D,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBACxB,SAAS,EAAE,MAAM;gBACjB,aAAa,EAAE,MAAM;gBACrB,WAAW,EAAE,MAAM;gBACnB,KAAK,EAAE,QAAQ;gBACf,QAAQ,EAAE,4BAA4B;aACvC,CAAC,CAAC,CAAC;QACJ,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC/C,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;IAChB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;IACjG,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,6BAA6B,CAAC;QAChD,eAAe,EAAE,KAAK,IAAI,EAAE;YAC1B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3B,CAAC;QACD,yBAAyB,EAAE,KAAK,EAAE,SAAkB,EAAE,EAAE;YACtD,KAAK,CAAC,IAAI,CAAC,mBAAmB,SAAS,IAAI,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;KACF,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1C,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;IAChB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,gBAAgB,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAEjF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;IAC9D,MAAM,MAAM,GAAG,eAAe,CAAC;QAC7B,gBAAgB;QAChB,SAAS;QACT,iBAAiB;QACjB,0BAA0B;KAC3B,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;QAC9B,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2DAA2D,EAAE,GAAG,EAAE;IACrE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,EAC3D,iBAAiB,CAClB,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAC;IAC1E,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ export interface DestroyOptions {
2
+ /** Either a persona file path (.json) or a literal agent UUID. */
3
+ target: string;
4
+ /** Workforce workspace id. Falls back to WORKFORCE_WORKSPACE_ID. */
5
+ workspace?: string;
6
+ /** Override cloud base URL. Falls back to env, then DEFAULT_CLOUD_URL. */
7
+ cloudUrl?: string;
8
+ /** Fail instead of opening the browser to log in. */
9
+ noPrompt?: boolean;
10
+ }
11
+ /**
12
+ * Argv parser + dispatcher for `agentworkforce destroy <persona-or-agent-id> [flags]`.
13
+ * Mirrors the shape of runDeploy so cli.ts stays slim — destroy is a single
14
+ * remote DELETE plus user-friendly resolution from persona file -> agentId.
15
+ */
16
+ export declare function runDestroy(args: readonly string[]): Promise<void>;
17
+ export declare const DESTROY_USAGE = "usage: agentworkforce destroy <persona-or-agent-id> [flags]\n\nTear down a deployed agent: cancel all relaycron schedules and mark the\nagent as destroyed in the workspace. Accepts either a persona JSON path\n(slug/id is resolved via the workspace's agents index) or a literal agent\nUUID.\n\nFlags:\n --workspace <id> Workforce workspace; defaults to WORKFORCE_WORKSPACE_ID\n --cloud-url <url> Override the workforce cloud base URL\n --no-prompt Fail instead of opening the browser to log in\n -h, --help Print this message\n\nExit codes:\n 0 destroyed\n 2 agent not found or already destroyed\n 1 any other error\n";
18
+ export declare function parseDestroyArgs(args: readonly string[]): DestroyOptions;
19
+ //# sourceMappingURL=destroy-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destroy-command.d.ts","sourceRoot":"","sources":["../src/destroy-command.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA4BD;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBvE;AAsMD,eAAO,MAAM,aAAa,opBAiBzB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,cAAc,CAwCxE"}