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.
- package/README.md +64 -0
- package/dist/cli/agent-relay-mcp.d.ts.map +1 -1
- package/dist/cli/agent-relay-mcp.js +206 -54
- package/dist/cli/agent-relay-mcp.js.map +1 -1
- package/dist/cli/commands/core.d.ts +8 -0
- package/dist/cli/commands/core.d.ts.map +1 -1
- package/dist/cli/commands/core.js +4 -0
- package/dist/cli/commands/core.js.map +1 -1
- package/dist/cli/commands/fleet-agent.d.ts +5 -1
- package/dist/cli/commands/fleet-agent.d.ts.map +1 -1
- package/dist/cli/commands/fleet-agent.js +114 -26
- package/dist/cli/commands/fleet-agent.js.map +1 -1
- package/dist/cli/commands/fleet.d.ts.map +1 -1
- package/dist/cli/commands/fleet.js +93 -13
- package/dist/cli/commands/fleet.js.map +1 -1
- package/dist/cli/commands/integration-recipient.d.ts +21 -0
- package/dist/cli/commands/integration-recipient.d.ts.map +1 -0
- package/dist/cli/commands/integration-recipient.js +115 -0
- package/dist/cli/commands/integration-recipient.js.map +1 -0
- package/dist/cli/commands/integration.d.ts +3 -0
- package/dist/cli/commands/integration.d.ts.map +1 -1
- package/dist/cli/commands/integration.js +69 -30
- package/dist/cli/commands/integration.js.map +1 -1
- package/dist/cli/commands/node.js +4 -0
- package/dist/cli/commands/node.js.map +1 -1
- package/dist/cli/commands/status.d.ts +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +7 -3
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/lib/broker-lifecycle.d.ts +2 -0
- package/dist/cli/lib/broker-lifecycle.d.ts.map +1 -1
- package/dist/cli/lib/broker-lifecycle.js +232 -154
- package/dist/cli/lib/broker-lifecycle.js.map +1 -1
- package/dist/cli/lib/broker-process-identity.d.ts +30 -0
- package/dist/cli/lib/broker-process-identity.d.ts.map +1 -0
- package/dist/cli/lib/broker-process-identity.js +229 -0
- package/dist/cli/lib/broker-process-identity.js.map +1 -0
- package/dist/cli/lib/sdk-client.d.ts.map +1 -1
- package/dist/cli/lib/sdk-client.js +8 -0
- package/dist/cli/lib/sdk-client.js.map +1 -1
- package/dist/cli/lib/sdk-command.d.ts.map +1 -1
- package/dist/cli/lib/sdk-command.js +20 -2
- package/dist/cli/lib/sdk-command.js.map +1 -1
- package/dist/cli/lib/spawn-lifecycle.d.ts +12 -0
- package/dist/cli/lib/spawn-lifecycle.d.ts.map +1 -0
- package/dist/cli/lib/spawn-lifecycle.js +89 -0
- package/dist/cli/lib/spawn-lifecycle.js.map +1 -0
- package/dist/index.cjs +156 -23
- 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
|
-
|
|
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
|
-
|
|
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
|
|
136
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
|
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 &&
|
|
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
|
-
|
|
275
|
-
|
|
276
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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: [],
|