agent-relay 11.11.0 → 12.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +64 -0
  2. package/dist/cli/agent-relay-mcp.d.ts.map +1 -1
  3. package/dist/cli/agent-relay-mcp.js +206 -54
  4. package/dist/cli/agent-relay-mcp.js.map +1 -1
  5. package/dist/cli/commands/core.d.ts +8 -0
  6. package/dist/cli/commands/core.d.ts.map +1 -1
  7. package/dist/cli/commands/core.js +4 -0
  8. package/dist/cli/commands/core.js.map +1 -1
  9. package/dist/cli/commands/fleet-agent.d.ts +5 -1
  10. package/dist/cli/commands/fleet-agent.d.ts.map +1 -1
  11. package/dist/cli/commands/fleet-agent.js +114 -26
  12. package/dist/cli/commands/fleet-agent.js.map +1 -1
  13. package/dist/cli/commands/fleet.d.ts.map +1 -1
  14. package/dist/cli/commands/fleet.js +93 -13
  15. package/dist/cli/commands/fleet.js.map +1 -1
  16. package/dist/cli/commands/integration-recipient.d.ts +21 -0
  17. package/dist/cli/commands/integration-recipient.d.ts.map +1 -0
  18. package/dist/cli/commands/integration-recipient.js +115 -0
  19. package/dist/cli/commands/integration-recipient.js.map +1 -0
  20. package/dist/cli/commands/integration.d.ts +3 -0
  21. package/dist/cli/commands/integration.d.ts.map +1 -1
  22. package/dist/cli/commands/integration.js +69 -30
  23. package/dist/cli/commands/integration.js.map +1 -1
  24. package/dist/cli/commands/node.js +4 -0
  25. package/dist/cli/commands/node.js.map +1 -1
  26. package/dist/cli/commands/status.d.ts +1 -1
  27. package/dist/cli/commands/status.d.ts.map +1 -1
  28. package/dist/cli/commands/status.js +7 -3
  29. package/dist/cli/commands/status.js.map +1 -1
  30. package/dist/cli/lib/broker-lifecycle.d.ts +2 -0
  31. package/dist/cli/lib/broker-lifecycle.d.ts.map +1 -1
  32. package/dist/cli/lib/broker-lifecycle.js +232 -154
  33. package/dist/cli/lib/broker-lifecycle.js.map +1 -1
  34. package/dist/cli/lib/broker-process-identity.d.ts +30 -0
  35. package/dist/cli/lib/broker-process-identity.d.ts.map +1 -0
  36. package/dist/cli/lib/broker-process-identity.js +229 -0
  37. package/dist/cli/lib/broker-process-identity.js.map +1 -0
  38. package/dist/cli/lib/sdk-client.d.ts.map +1 -1
  39. package/dist/cli/lib/sdk-client.js +8 -0
  40. package/dist/cli/lib/sdk-client.js.map +1 -1
  41. package/dist/cli/lib/sdk-command.d.ts.map +1 -1
  42. package/dist/cli/lib/sdk-command.js +20 -2
  43. package/dist/cli/lib/sdk-command.js.map +1 -1
  44. package/dist/cli/lib/spawn-lifecycle.d.ts +12 -0
  45. package/dist/cli/lib/spawn-lifecycle.d.ts.map +1 -0
  46. package/dist/cli/lib/spawn-lifecycle.js +89 -0
  47. package/dist/cli/lib/spawn-lifecycle.js.map +1 -0
  48. package/dist/index.cjs +156 -23
  49. package/package.json +9 -9
@@ -22,6 +22,15 @@
22
22
  */
23
23
  export { collectWithRetry } from '../lib/collect-with-retry.js';
24
24
  export { LIVE_AGENT_CAPABILITY_NAME, readRemoteLiveAgents } from '../lib/fleet-live-agents.js';
25
+ function controlPlaneState(node) {
26
+ if (node.status === 'online' && node.live === true && node.handlersLive === true)
27
+ return 'online';
28
+ if (node.status === 'offline' || node.live === false)
29
+ return 'offline';
30
+ if (node.handlersLive === false)
31
+ return 'degraded';
32
+ return 'unknown';
33
+ }
25
34
  const AGENT_STATE_SYMBOL = {
26
35
  working: '● working',
27
36
  idle: '○ idle',
@@ -84,6 +93,10 @@ function cliModel(agent) {
84
93
  export function buildRows(input, now) {
85
94
  const perNode = [];
86
95
  const errors = [];
96
+ // Stable per-row identity: node *names* collide for unnamed nodes
97
+ // (`(unnamed)`), so the control-plane/worker-liveness backfill below must
98
+ // key off this object identity map instead of `row.node === contribution`.
99
+ const contributionByRow = new Map();
87
100
  // Cache roster names in a Set for O(1) membership; the roster today runs to
88
101
  // 1600+ records so linear scans per row would be visible.
89
102
  const rosterNames = new Set(input.roster.map((entry) => entry.name));
@@ -91,7 +104,7 @@ export function buildRows(input, now) {
91
104
  for (const contribution of input.contributions) {
92
105
  const nodeName = contribution.node.name || '(unnamed)';
93
106
  if (contribution.error) {
94
- perNode.push({
107
+ const row = {
95
108
  node: nodeName,
96
109
  name: '',
97
110
  cliModel: '',
@@ -100,12 +113,16 @@ export function buildRows(input, now) {
100
113
  lastActive: '-',
101
114
  presence: 'count only',
102
115
  ...(contribution.retried ? { note: 'retried' } : {}),
103
- });
116
+ };
117
+ perNode.push(row);
118
+ contributionByRow.set(row, contribution);
104
119
  errors.push({ node: nodeName, message: contribution.error });
105
120
  continue;
106
121
  }
107
122
  if (!contribution.isLocal) {
108
123
  const count = contribution.node.activeAgents;
124
+ const controlPlane = controlPlaneState(contribution.node);
125
+ const hostedWorkersUnavailable = controlPlane !== 'online';
109
126
  if (contribution.remoteAgents === undefined) {
110
127
  const renderedCount = count === undefined
111
128
  ? 'active count unavailable'
@@ -113,7 +130,7 @@ export function buildRows(input, now) {
113
130
  const detail = contribution.remoteError
114
131
  ? `live-name heartbeat unavailable: ${sanitizeCell(contribution.remoteError)}`
115
132
  : 'live-name heartbeat unavailable';
116
- perNode.push({
133
+ const row = {
117
134
  node: nodeName,
118
135
  name: `<${renderedCount} — names unavailable: ${detail}>`,
119
136
  cliModel: '',
@@ -121,8 +138,12 @@ export function buildRows(input, now) {
121
138
  pending: '-',
122
139
  lastActive: '-',
123
140
  presence: 'count only (degraded)',
141
+ controlPlane,
142
+ workerLiveness: 'unknown',
124
143
  note: contribution.retried ? 'retried' : 'inventory unavailable',
125
- });
144
+ };
145
+ perNode.push(row);
146
+ contributionByRow.set(row, contribution);
126
147
  if (contribution.remoteError) {
127
148
  errors.push({ node: nodeName, message: sanitizeCell(contribution.remoteError) });
128
149
  }
@@ -132,52 +153,76 @@ export function buildRows(input, now) {
132
153
  const mismatch = count !== undefined && count !== remoteAgents.length;
133
154
  const noteParts = [
134
155
  ...(contribution.retried ? ['retried'] : []),
135
- ...(contribution.remoteWarning ? [`degraded: ${contribution.remoteWarning}`] : []),
136
- ...(mismatch ? [`degraded: heartbeat reports ${count}, broker returned ${remoteAgents.length}`] : []),
156
+ ...(contribution.remoteWarning
157
+ ? [`${hostedWorkersUnavailable ? 'stale' : 'degraded'}: ${contribution.remoteWarning}`]
158
+ : []),
159
+ ...(mismatch
160
+ ? [
161
+ `${hostedWorkersUnavailable ? 'stale' : 'degraded'}: heartbeat reports ${count}, broker returned ${remoteAgents.length}`,
162
+ ]
163
+ : []),
137
164
  ];
138
165
  const note = noteParts.length > 0 ? noteParts.join('; ') : undefined;
139
166
  for (const agent of remoteAgents) {
140
167
  const inRoster = rosterNames.has(agent.name);
141
168
  if (inRoster)
142
169
  rosterPlaced.add(agent.name);
143
- perNode.push({
170
+ const row = {
144
171
  node: nodeName,
145
172
  name: sanitizeCell(agent.name),
146
173
  cliModel: '',
147
174
  state: '· remote',
148
175
  pending: '-',
149
176
  lastActive: '-',
150
- presence: inRoster ? 'remote live+roster' : 'remote live',
177
+ presence: hostedWorkersUnavailable
178
+ ? 'remote stale (control plane unavailable)'
179
+ : inRoster
180
+ ? 'remote live+roster'
181
+ : 'remote live',
182
+ controlPlane,
183
+ workerLiveness: hostedWorkersUnavailable ? 'unknown' : 'live',
151
184
  ...(note ? { note: sanitizeCell(note) } : {}),
152
- });
185
+ };
186
+ perNode.push(row);
187
+ contributionByRow.set(row, contribution);
153
188
  }
154
189
  if (remoteAgents.length === 0 && count === 0) {
155
- perNode.push({
190
+ const row = {
156
191
  node: nodeName,
157
192
  name: '<0 agents on this node>',
158
193
  cliModel: '',
159
194
  state: '· empty',
160
195
  pending: '-',
161
196
  lastActive: '-',
162
- presence: 'remote live',
197
+ presence: hostedWorkersUnavailable ? 'remote stale (control plane unavailable)' : 'remote live',
198
+ controlPlane,
199
+ workerLiveness: hostedWorkersUnavailable ? 'unknown' : 'empty',
163
200
  ...(note ? { note: sanitizeCell(note) } : {}),
164
- });
201
+ };
202
+ perNode.push(row);
203
+ contributionByRow.set(row, contribution);
165
204
  }
166
205
  else if (count !== undefined && count > remoteAgents.length) {
167
206
  const missing = count - remoteAgents.length;
168
- perNode.push({
207
+ const row = {
169
208
  node: nodeName,
170
209
  name: `<${missing} additional agent${missing === 1 ? '' : 's'} — names unavailable: broker/heartbeat mismatch>`,
171
210
  cliModel: '',
172
- state: '· remote degraded',
211
+ state: hostedWorkersUnavailable ? '· remote stale' : '· remote degraded',
173
212
  pending: '-',
174
213
  lastActive: '-',
175
- presence: 'count only (degraded)',
214
+ presence: hostedWorkersUnavailable
215
+ ? 'remote stale (control plane unavailable)'
216
+ : 'count only (degraded)',
217
+ controlPlane,
218
+ workerLiveness: hostedWorkersUnavailable ? 'unknown' : 'degraded',
176
219
  ...(note ? { note: sanitizeCell(note) } : {}),
177
- });
220
+ };
221
+ perNode.push(row);
222
+ contributionByRow.set(row, contribution);
178
223
  }
179
224
  else if (remoteAgents.length === 0) {
180
- perNode.push({
225
+ const row = {
181
226
  node: nodeName,
182
227
  name: '<node inventory returned no names; active count unavailable>',
183
228
  cliModel: '',
@@ -185,8 +230,12 @@ export function buildRows(input, now) {
185
230
  pending: '-',
186
231
  lastActive: '-',
187
232
  presence: 'count only (degraded)',
233
+ controlPlane,
234
+ workerLiveness: 'unknown',
188
235
  note: 'inventory/count comparison unavailable',
189
- });
236
+ };
237
+ perNode.push(row);
238
+ contributionByRow.set(row, contribution);
190
239
  }
191
240
  continue;
192
241
  }
@@ -211,7 +260,7 @@ export function buildRows(input, now) {
211
260
  // strictly stronger than the pre-fix behaviour, which produced an ERROR
212
261
  // row whenever EITHER half failed and threw away the surviving map.
213
262
  const combined = [contribution.liveError, contribution.inventoryError].filter(Boolean).join('; ');
214
- perNode.push({
263
+ const row = {
215
264
  node: nodeName,
216
265
  name: '',
217
266
  cliModel: '',
@@ -220,7 +269,9 @@ export function buildRows(input, now) {
220
269
  lastActive: '-',
221
270
  presence: 'count only',
222
271
  ...(contribution.retried ? { note: 'retried' } : {}),
223
- });
272
+ };
273
+ perNode.push(row);
274
+ contributionByRow.set(row, contribution);
224
275
  errors.push({ node: nodeName, message: combined || 'local broker unavailable' });
225
276
  continue;
226
277
  }
@@ -229,7 +280,7 @@ export function buildRows(input, now) {
229
280
  // so plainly rather than rendering "0 agents on this node" — a
230
281
  // partially-observed empty result is not a confirmed empty node.
231
282
  if (liveKnown && inventoryKnown) {
232
- perNode.push({
283
+ const row = {
233
284
  node: nodeName,
234
285
  name: '<0 agents on this node>',
235
286
  cliModel: '',
@@ -238,11 +289,13 @@ export function buildRows(input, now) {
238
289
  lastActive: '-',
239
290
  presence: 'live+inventory',
240
291
  ...(contribution.retried ? { note: 'retried' } : {}),
241
- });
292
+ };
293
+ perNode.push(row);
294
+ contributionByRow.set(row, contribution);
242
295
  }
243
296
  else {
244
297
  const missing = liveKnown ? 'inventory' : 'live';
245
- perNode.push({
298
+ const row = {
246
299
  node: nodeName,
247
300
  name: `<local ${missing} map unavailable — other map empty; total unknown>`,
248
301
  cliModel: '',
@@ -251,7 +304,9 @@ export function buildRows(input, now) {
251
304
  lastActive: '-',
252
305
  presence: liveKnown ? 'empty (inventory?)' : 'empty (live?)',
253
306
  ...(contribution.retried ? { note: 'retried' } : {}),
254
- });
307
+ };
308
+ perNode.push(row);
309
+ contributionByRow.set(row, contribution);
255
310
  }
256
311
  continue;
257
312
  }
@@ -263,7 +318,7 @@ export function buildRows(input, now) {
263
318
  if (inRoster)
264
319
  rosterPlaced.add(name);
265
320
  const presence = classifyPresenceWithUncertainty({ present: Boolean(liveEntry), known: liveKnown }, { present: Boolean(inventoryEntry), known: inventoryKnown }, inRoster);
266
- perNode.push({
321
+ const row = {
267
322
  node: nodeName,
268
323
  name: sanitizeCell(name),
269
324
  cliModel: liveEntry ? sanitizeCell(cliModel(liveEntry)) : '',
@@ -272,7 +327,9 @@ export function buildRows(input, now) {
272
327
  lastActive: liveEntry ? sanitizeCell(renderRelative(liveEntry.last_activity_at, now)) : '-',
273
328
  presence,
274
329
  ...(contribution.retried ? { note: 'retried' } : {}),
275
- });
330
+ };
331
+ perNode.push(row);
332
+ contributionByRow.set(row, contribution);
276
333
  }
277
334
  }
278
335
  // Roster-only entries: registered identities that we never saw on any node
@@ -289,8 +346,31 @@ export function buildRows(input, now) {
289
346
  pending: '-',
290
347
  lastActive: sanitizeCell(renderRelative(entry.lastSeenAt, now)),
291
348
  presence: 'roster only',
349
+ controlPlane: 'unknown',
350
+ workerLiveness: 'unknown',
292
351
  });
293
352
  }
353
+ // Every row carries both axes explicitly. In particular, a local broker can
354
+ // lose its control-plane link while its child workers continue doing useful
355
+ // work; that must render as offline control-plane + live hosted workers.
356
+ for (const row of perNode) {
357
+ if (row.controlPlane !== undefined)
358
+ continue;
359
+ const contribution = contributionByRow.get(row);
360
+ if (!contribution)
361
+ continue;
362
+ row.controlPlane = controlPlaneState(contribution.node);
363
+ row.workerLiveness =
364
+ contribution.liveAgents === undefined
365
+ ? 'unknown'
366
+ : contribution.liveAgents.length > 0
367
+ ? 'live'
368
+ : contribution.inventoryAgents === undefined
369
+ ? 'unknown'
370
+ : contribution.inventoryAgents.length > 0
371
+ ? 'degraded'
372
+ : 'empty';
373
+ }
294
374
  perNode.sort((a, b) => (a.node === b.node ? a.name.localeCompare(b.name) : a.node.localeCompare(b.node)));
295
375
  unplacedRoster.sort((a, b) => a.name.localeCompare(b.name));
296
376
  return { perNode, unplacedRoster, errors };
@@ -345,6 +425,8 @@ export function formatPretty(output) {
345
425
  { header: 'NODE', values: rows.map((r) => r.node) },
346
426
  { header: 'NAME', values: rows.map((r) => r.name) },
347
427
  { header: 'CLI / MODEL', values: rows.map((r) => r.cliModel) },
428
+ { header: 'CONTROL PLANE', values: rows.map((r) => r.controlPlane ?? 'unknown') },
429
+ { header: 'WORKERS', values: rows.map((r) => r.workerLiveness ?? 'unknown') },
348
430
  { header: 'STATE', values: rows.map((r) => r.state) },
349
431
  { header: 'PENDING', values: rows.map((r) => r.pending) },
350
432
  { header: 'LAST ACTIVE', values: rows.map((r) => r.lastActive) },
@@ -372,6 +454,12 @@ export function formatPretty(output) {
372
454
  if (output.perNode.some((row) => row.presence === 'remote live' || row.presence === 'remote live+roster')) {
373
455
  notes.push("remote live: names come from the broker's live WorkerName set on the node heartbeat; PTY detail remains node-local.");
374
456
  }
457
+ if (output.perNode.some((row) => row.presence === 'remote stale (control plane unavailable)')) {
458
+ notes.push('remote stale: names came from the last broker heartbeat while the control plane was unavailable; worker liveness is unknown.');
459
+ }
460
+ if (rows.some((row) => row.controlPlane !== undefined || row.workerLiveness !== undefined)) {
461
+ notes.push('CONTROL PLANE reports node reachability/handler health; WORKERS reports hosted-worker evidence. Offline or degraded control plane does not prove workers are dead.');
462
+ }
375
463
  if (output.perNode.some((row) => row.presence === 'count only (degraded)')) {
376
464
  notes.push('remote degraded: the heartbeat count and heartbeat-published live names could not be reconciled; names may be incomplete.');
377
465
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-agent.js","sourceRoot":"","sources":["../../../src/cli/commands/fleet-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fleet-agent.js","sourceRoot":"","sources":["../../../src/cli/commands/fleet-agent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fleet.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/fleet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAEL,uBAAuB,EACvB,uBAAuB,EAGxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAyB,KAAK,wBAAwB,EAAkB,MAAM,kBAAkB,CAAC;AAExG,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAehE,OAAO,EAEL,yBAAyB,EACzB,+BAA+B,EAG/B,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAU/B,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,gBAAgB,CAAC;IACvB,GAAG,EAAE,cAAc,CAAC;IACpB,0BAA0B,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,wBAAwB,CAAC;IACpF,yBAAyB,EAAE,OAAO,yBAAyB,CAAC;IAC5D,+BAA+B,EAAE,OAAO,+BAA+B,CAAC;IACxE,uBAAuB,EAAE,OAAO,uBAAuB,CAAC;IACxD,uBAAuB,EAAE,OAAO,uBAAuB,CAAC;IACxD,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;CAC/B;AAwBD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,OAAO,CAAC,wBAAwB,CAAM,GAChD,IAAI,CA4lBN"}
1
+ {"version":3,"file":"fleet.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/fleet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAEL,uBAAuB,EACvB,uBAAuB,EAGxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAGL,KAAK,wBAAwB,EAE9B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAgBhE,OAAO,EAEL,yBAAyB,EACzB,+BAA+B,EAG/B,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AA0D/B,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,gBAAgB,CAAC;IACvB,GAAG,EAAE,cAAc,CAAC;IACpB,0BAA0B,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,wBAAwB,CAAC;IACpF,yBAAyB,EAAE,OAAO,yBAAyB,CAAC;IAC5D,+BAA+B,EAAE,OAAO,+BAA+B,CAAC;IACxE,uBAAuB,EAAE,OAAO,uBAAuB,CAAC;IACxD,uBAAuB,EAAE,OAAO,uBAAuB,CAAC;IACxD,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;CAC/B;AAwBD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,OAAO,CAAC,wBAAwB,CAAM,GAChD,IAAI,CAsoBN"}
@@ -2,7 +2,7 @@ import { randomUUID } from 'node:crypto';
2
2
  import { InvalidArgumentError } from 'commander';
3
3
  import { CloudFleetSandboxProvisionError, deleteCloudFleetSandbox, ensureCloudFleetSandbox, } from '@agent-relay/cloud';
4
4
  import { HarnessDriverClient } from '@agent-relay/harness-driver';
5
- import { createWorkspaceClient } from '@agent-relay/sdk';
5
+ import { createWorkspaceClient, RelayPlacementError, } from '@agent-relay/sdk';
6
6
  import { withDefaults } from './core.js';
7
7
  import { buildRows, collectWithRetry, formatPretty, readRemoteLiveAgents, readLocalBrokerMaps, } from './fleet-agent.js';
8
8
  import { readBrokerConnection } from '../lib/broker-lifecycle.js';
@@ -10,12 +10,57 @@ import { isAvailableFleetNode } from '../lib/fleet-live-agents.js';
10
10
  import { declaredWorkforceMetadata } from '../lib/registration-metadata.js';
11
11
  import { redactSecrets } from '../lib/redact.js';
12
12
  import { attributableReleaseReason } from '../lib/release-reason.js';
13
+ import { spawnPlacementReceipt } from '../lib/spawn-lifecycle.js';
13
14
  import { resolveAgentToken, resolveWorkspaceSelection, persistWorkspaceRelaycastTarget, resolveWorkspaceKeyWithSource, resolveWorkspaceTransport, } from '../lib/sdk-client.js';
14
15
  import { addSdkOptions, printJson, runSdk, sdkOptionsFromOpts, withSdkDefaults, } from '../lib/sdk-command.js';
15
16
  const SERVE_REPLACEMENT_MESSAGE = "'fleet serve' has been replaced. Run 'relay node up' (with an optional --config <file>); " +
16
17
  "for Cloud-managed nodes run 'relay cloud enroll --token <token>' first.";
17
18
  const FLEET_CLIS = new Set(['claude', 'codex', 'gemini', 'aider', 'goose', 'grok', 'opencode']);
18
19
  const CLOUD_SANDBOX_ID_PATTERN = /^sbx_[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;
20
+ function spawnInvocationWithPlacement(invocation) {
21
+ return { ...invocation, placement: spawnPlacementReceipt(invocation) };
22
+ }
23
+ // The targeted spawn path (relay.messaging.placement.spawn) returns an
24
+ // invocation whose `placement` is the SDK's own evidence object
25
+ // (`state: 'accepted' | 'ready'`, `confirmed`). `spawnPlacementReceipt`
26
+ // derives a *different* lifecycle receipt from top-level invocation fields
27
+ // (`state: SpawnLifecycleState`, `dispatchState`, ...) — replacing the SDK
28
+ // placement with it would silently downgrade a confirmed `accepted` result
29
+ // to `unconfirmed_may_be_running` under `--no-confirm`. Preserve the SDK
30
+ // placement and only augment it with the normalized `dispatchState` and
31
+ // `invocationId`.
32
+ function spawnInvocationWithMergedPlacement(invocation) {
33
+ const receipt = spawnPlacementReceipt(invocation);
34
+ const sdkPlacement = invocation.placement !== null && typeof invocation.placement === 'object'
35
+ ? invocation.placement
36
+ : undefined;
37
+ const invocationId = typeof receipt.invocationId === 'string' ? receipt.invocationId : undefined;
38
+ return {
39
+ ...invocation,
40
+ placement: {
41
+ ...(sdkPlacement ?? {}),
42
+ dispatchState: receipt.dispatchState,
43
+ ...(invocationId ? { invocationId } : {}),
44
+ },
45
+ };
46
+ }
47
+ function throwForTerminalSpawnFailure(invocation) {
48
+ const placement = spawnPlacementReceipt(invocation);
49
+ if (placement.state !== 'failed')
50
+ return;
51
+ const invocationId = typeof placement.invocationId === 'string' ? placement.invocationId : undefined;
52
+ const message = typeof invocation.error === 'string' && invocation.error.trim()
53
+ ? invocation.error
54
+ : 'Fleet spawn invocation reported a terminal failure.';
55
+ throw new RelayPlacementError('spawn_failed', message, {
56
+ capability: typeof invocation.capability === 'string' ? invocation.capability : 'spawn',
57
+ attempts: 1,
58
+ ...(invocationId ? { invocationId } : {}),
59
+ state: 'failed',
60
+ dispatchState: placement.dispatchState,
61
+ receipt: invocation,
62
+ });
63
+ }
19
64
  function withFleetDefaults(overrides = {}) {
20
65
  const core = overrides.core ?? withDefaults();
21
66
  const sdk = overrides.sdk ?? withSdkDefaults();
@@ -223,6 +268,14 @@ export function registerFleetCommands(program, overrides = {}) {
223
268
  throw new Error(`--sandbox-name must be '${deterministicSandboxName}' when --sandbox-id is supplied; custom names cannot preserve the one-to-one sandbox identity.`);
224
269
  }
225
270
  const effectiveSandboxName = deterministicSandboxName ?? sandboxName;
271
+ // The unpinned/Agent37 path deliberately carries the measured heavy
272
+ // 8 CPU / 16 GiB / 20 GiB profile. Daytona and E2B cannot satisfy that
273
+ // shape, so an explicit legacy-provider selection must request the
274
+ // provider-neutral durable profile instead of becoming unroutable by
275
+ // construction.
276
+ const workloadProfile = sandboxProvider === undefined || sandboxProvider === 'agent37'
277
+ ? 'long-running-agent'
278
+ : 'standard-long-running-agent';
226
279
  if (explicitWorkspaceId !== undefined &&
227
280
  workspaceSelection?.workspaceId !== undefined &&
228
281
  explicitWorkspaceId !== workspaceSelection.workspaceId.trim()) {
@@ -238,13 +291,27 @@ export function registerFleetCommands(program, overrides = {}) {
238
291
  ...(sandboxId === undefined ? {} : { sandboxId }),
239
292
  forceProvision: true,
240
293
  ...(sandboxProvider === undefined ? {} : { providerId: sandboxProvider }),
241
- workloadProfile: 'long-running-agent',
294
+ workloadProfile,
242
295
  waitTimeoutMs: 90_000,
243
296
  ...(effectiveSandboxName === undefined ? {} : { name: effectiveSandboxName }),
244
297
  });
245
298
  }
246
299
  catch (error) {
247
- if (error instanceof CloudFleetSandboxProvisionError && error.outcomeUnknown) {
300
+ if (error instanceof CloudFleetSandboxProvisionError &&
301
+ error.confirmedProvisioned &&
302
+ error.cloudWorkspaceId &&
303
+ error.sandboxId) {
304
+ await deps
305
+ .deleteCloudFleetSandbox({
306
+ cloudWorkspaceId: error.cloudWorkspaceId,
307
+ sandboxId: error.sandboxId,
308
+ ...(error.providerId === undefined ? {} : { providerId: error.providerId }),
309
+ })
310
+ .catch((cleanupError) => {
311
+ deps.warn(`Provisioning failed after Cloud confirmed sandbox '${error.sandboxId}', and automatic cleanup failed: ${cleanupError instanceof Error ? cleanupError.message : String(cleanupError)}`);
312
+ });
313
+ }
314
+ else if (error instanceof CloudFleetSandboxProvisionError && error.outcomeUnknown) {
248
315
  deps.warn(`Cloud did not return a complete provisioning response. The outcome is unknown; check Cloud Fleet for node '${error.nodeName ?? effectiveSandboxName ?? 'the requested sandbox'}'${sandboxId === undefined ? '' : ` before retrying with --sandbox-id '${sandboxId}'`} so a sandbox is not left running.`);
249
316
  }
250
317
  else if (error instanceof CloudFleetSandboxProvisionError &&
@@ -270,10 +337,11 @@ export function registerFleetCommands(program, overrides = {}) {
270
337
  // exact workspace Cloud returned.
271
338
  try {
272
339
  const target = sandbox.relaycastTarget;
340
+ const returnedRelayWorkspaceId = 'relayWorkspaceId' in sandbox ? sandbox.relayWorkspaceId?.trim() : undefined;
273
341
  if ((sandboxProvider === 'agent37' && target.route !== 'agent37-isolated') ||
274
- target.workspaceId.trim() !== relayWorkspaceId.trim() ||
275
- (sandbox.outcome === 'provisioned' &&
276
- sandbox.relayWorkspaceId.trim() !== relayWorkspaceId.trim())) {
342
+ (returnedRelayWorkspaceId !== undefined &&
343
+ target.workspaceId.trim() !== returnedRelayWorkspaceId) ||
344
+ (sandbox.outcome === 'provisioned' && !returnedRelayWorkspaceId)) {
277
345
  throw new Error(sandboxProvider === 'agent37' && target.route !== 'agent37-isolated'
278
346
  ? 'Explicit Agent37 provisioning requires the isolated Agent37 Relaycast target.'
279
347
  : 'Cloud returned a Relaycast target for a different workspace.');
@@ -287,8 +355,7 @@ export function registerFleetCommands(program, overrides = {}) {
287
355
  const postEnsureWorkspace = await workspaceRelay.workspace.info();
288
356
  const postEnsureWorkspaceId = postEnsureWorkspace.id?.trim();
289
357
  if (!postEnsureWorkspaceId ||
290
- (sandbox.outcome === 'provisioned' &&
291
- postEnsureWorkspaceId !== sandbox.relayWorkspaceId.trim()) ||
358
+ (sandbox.outcome === 'provisioned' && postEnsureWorkspaceId !== returnedRelayWorkspaceId) ||
292
359
  postEnsureWorkspaceId !== target.workspaceId.trim()) {
293
360
  throw new Error('Cloud returned a Relaycast workspace that could not be verified on the selected gateway.');
294
361
  }
@@ -374,7 +441,14 @@ export function registerFleetCommands(program, overrides = {}) {
374
441
  throw new Error('The temporary fleet spawn launcher did not receive an agent token.');
375
442
  }
376
443
  }
377
- const relay = deps.sdk.createAgentRelay({ ...relaycastClientOptions, token: agentToken });
444
+ // A sandbox launcher token is already scoped to the exact workspace
445
+ // and Relaycast deployment selected by Cloud. Keep the workspace key
446
+ // only on `workspaceRelay`, where it mints and releases that token;
447
+ // passing both authorities to the agent client is rejected by the
448
+ // SDK and would prevent every sandbox placement from dispatching.
449
+ const relay = deps.sdk.createAgentRelay(sandbox
450
+ ? { token: agentToken, baseUrl: relaycastClientOptions.baseUrl }
451
+ : { ...relaycastClientOptions, token: agentToken });
378
452
  // Placement alone only proves the node accepted the dispatch. A node
379
453
  // running an obsolete broker advertises `spawn:<cli>` capacity, acks
380
454
  // the invocation and launches nothing, which is indistinguishable from
@@ -419,11 +493,12 @@ export function registerFleetCommands(program, overrides = {}) {
419
493
  : ''),
420
494
  }
421
495
  : {}),
422
- invocation,
496
+ invocation: spawnInvocationWithMergedPlacement(invocation),
423
497
  });
424
498
  }
425
499
  catch (error) {
426
- if (sandbox?.outcome === 'provisioned') {
500
+ if (sandbox?.outcome === 'provisioned' &&
501
+ !(error instanceof RelayPlacementError && error.state === 'unconfirmed_may_be_running')) {
427
502
  await deps
428
503
  .deleteCloudFleetSandbox({
429
504
  cloudWorkspaceId: sandbox.cloudWorkspaceId,
@@ -472,7 +547,8 @@ export function registerFleetCommands(program, overrides = {}) {
472
547
  }
473
548
  : {}),
474
549
  });
475
- printJson(deps.sdk, { invocation });
550
+ throwForTerminalSpawnFailure(invocation);
551
+ printJson(deps.sdk, { invocation: spawnInvocationWithPlacement(invocation) });
476
552
  });
477
553
  });
478
554
  addSdkOptions(group
@@ -753,7 +829,11 @@ async function runFleetAgentList(deps, options) {
753
829
  (localNodeName || localSessionError || conn) &&
754
830
  !contributions.some((c) => c.isLocal)) {
755
831
  const syntheticNodeName = localNodeName ?? (process.env.AGENT_RELAY_BROKER_NAME?.trim() || undefined) ?? '(local broker)';
756
- const syntheticNode = {
832
+ // Keep the authoritative roster metadata when the node was filtered from
833
+ // the default visible set. This preserves a known offline/degraded
834
+ // control-plane state while still showing node-local workers.
835
+ const knownLocalNode = nodes.find((node) => node.name === syntheticNodeName);
836
+ const syntheticNode = knownLocalNode ?? {
757
837
  name: syntheticNodeName,
758
838
  status: 'unknown',
759
839
  capabilities: [],