agent-relay 9.2.4 → 10.0.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/dist/cli/bootstrap.d.ts.map +1 -1
- package/dist/cli/bootstrap.js +2 -0
- package/dist/cli/bootstrap.js.map +1 -1
- package/dist/cli/commands/fleet.d.ts.map +1 -1
- package/dist/cli/commands/fleet.js +52 -48
- package/dist/cli/commands/fleet.js.map +1 -1
- package/dist/cli/lib/broker-lifecycle.d.ts +29 -0
- package/dist/cli/lib/broker-lifecycle.d.ts.map +1 -1
- package/dist/cli/lib/broker-lifecycle.js +194 -35
- package/dist/cli/lib/broker-lifecycle.js.map +1 -1
- package/dist/cli/lib/ensure-websocket.d.ts +10 -0
- package/dist/cli/lib/ensure-websocket.d.ts.map +1 -0
- package/dist/cli/lib/ensure-websocket.js +16 -0
- package/dist/cli/lib/ensure-websocket.js.map +1 -0
- package/dist/cli/lib/fleet-sidecar.d.ts +7 -11
- package/dist/cli/lib/fleet-sidecar.d.ts.map +1 -1
- package/dist/cli/lib/fleet-sidecar.js +38 -13
- package/dist/cli/lib/fleet-sidecar.js.map +1 -1
- package/dist/cli/lib/node-definition-loader.d.ts +7 -0
- package/dist/cli/lib/node-definition-loader.d.ts.map +1 -1
- package/dist/cli/lib/node-definition-loader.js +10 -0
- package/dist/cli/lib/node-definition-loader.js.map +1 -1
- package/dist/cli/lib/redact.d.ts +17 -0
- package/dist/cli/lib/redact.d.ts.map +1 -0
- package/dist/cli/lib/redact.js +38 -0
- package/dist/cli/lib/redact.js.map +1 -0
- package/dist/index.cjs +16826 -2272
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/cli/bootstrap.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/cli/bootstrap.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqEpC,eAAO,MAAM,OAAO,QAAsB,CAAC;AAkB3C,eAAO,MAAM,WAAW,oBAAsB,CAAC;AAkM/C,wBAAgB,aAAa,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAkDtE;AAqCD,wBAAsB,MAAM,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAuE5E"}
|
package/dist/cli/bootstrap.js
CHANGED
|
@@ -7,6 +7,7 @@ import { Command } from 'commander';
|
|
|
7
7
|
import { config as dotenvConfig } from 'dotenv';
|
|
8
8
|
import { checkForUpdatesInBackground } from '@agent-relay/utils';
|
|
9
9
|
import { ORCHESTRATOR_HARNESS_ENV, detectOrchestratorHarness, getDistinctId, initTelemetry, isEnabled as isTelemetryEnabled, shutdown as shutdownTelemetry, track, } from './telemetry/index.js';
|
|
10
|
+
import { ensureWebSocketGlobal } from './lib/ensure-websocket.js';
|
|
10
11
|
import { CliExit } from './lib/exit.js';
|
|
11
12
|
import { errorClassName } from './lib/telemetry-helpers.js';
|
|
12
13
|
import { registerSetupCommands } from './commands/setup.js';
|
|
@@ -308,6 +309,7 @@ function collectTopLevelVerbs(program) {
|
|
|
308
309
|
return verbs;
|
|
309
310
|
}
|
|
310
311
|
export async function runCli(argv = process.argv) {
|
|
312
|
+
ensureWebSocketGlobal();
|
|
311
313
|
maybeRunUpdateCheck(VERSION, argv);
|
|
312
314
|
const orchestratorHarness = propagateTelemetryContextToChildren();
|
|
313
315
|
if (!shouldSkipTelemetryInit(argv)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/cli/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/cli/bootstrap.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":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"fleet.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/fleet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGhE,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAM/B,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,gBAAgB,CAAC;IACvB,GAAG,EAAE,cAAc,CAAC;IACpB,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;AAgBD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,OAAO,CAAC,wBAAwB,CAAM,GAChD,IAAI,CAiFN"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { HarnessDriverClient } from '@agent-relay/harness-driver';
|
|
2
|
-
import { readFleetSidecarStatus } from '@agent-relay/fleet';
|
|
3
2
|
import { withDefaults } from './core.js';
|
|
4
3
|
import { readBrokerConnection } from '../lib/broker-lifecycle.js';
|
|
5
|
-
import {
|
|
4
|
+
import { redactSecrets } from '../lib/redact.js';
|
|
6
5
|
import { addSdkOptions, printJson, runSdk, sdkOptionsFromOpts, withSdkDefaults, } from '../lib/sdk-command.js';
|
|
7
6
|
const SERVE_REPLACEMENT_MESSAGE = "'fleet serve' has been replaced. Run 'relay node up' (with an optional --config <file>); " +
|
|
8
7
|
"for Cloud-managed nodes run 'relay cloud enroll --token <token>' first.";
|
|
@@ -73,12 +72,9 @@ export function registerFleetCommands(program, overrides = {}) {
|
|
|
73
72
|
printJson(deps.sdk, await relay.workspace.fleetNodes.inherit());
|
|
74
73
|
});
|
|
75
74
|
});
|
|
76
|
-
group
|
|
77
|
-
.command('status')
|
|
78
|
-
.description('Show local fleet broker and node status')
|
|
79
|
-
.action(async () => {
|
|
75
|
+
addSdkOptions(group.command('status').description('Show local broker status and this node’s provider attachment')).action(async (options) => {
|
|
80
76
|
try {
|
|
81
|
-
await runFleetStatus(deps);
|
|
77
|
+
await runFleetStatus(deps, options);
|
|
82
78
|
}
|
|
83
79
|
catch (error) {
|
|
84
80
|
deps.error(error instanceof Error ? error.message : String(error));
|
|
@@ -86,51 +82,59 @@ export function registerFleetCommands(program, overrides = {}) {
|
|
|
86
82
|
}
|
|
87
83
|
});
|
|
88
84
|
}
|
|
89
|
-
async function runFleetStatus(deps) {
|
|
85
|
+
async function runFleetStatus(deps, options) {
|
|
90
86
|
const paths = deps.core.getProjectPaths();
|
|
91
87
|
const conn = readBrokerConnection(paths.dataDir);
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
if (
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
88
|
+
let broker = { running: false };
|
|
89
|
+
let nodeName;
|
|
90
|
+
if (conn) {
|
|
91
|
+
const client = new HarnessDriverClient({ baseUrl: conn.url, apiKey: conn.api_key });
|
|
92
|
+
try {
|
|
93
|
+
const session = await client.getSession();
|
|
94
|
+
nodeName = session.node_name;
|
|
95
|
+
broker = {
|
|
96
|
+
running: true,
|
|
97
|
+
url: conn.url,
|
|
98
|
+
pid: conn.pid,
|
|
99
|
+
workspaceKey: session.workspace_key,
|
|
100
|
+
brokerVersion: session.broker_version,
|
|
101
|
+
protocolVersion: session.protocol_version,
|
|
102
|
+
nodeId: session.node_id,
|
|
103
|
+
nodeName: session.node_name,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
broker = {
|
|
108
|
+
running: false,
|
|
109
|
+
url: conn.url,
|
|
110
|
+
pid: conn.pid,
|
|
111
|
+
error: error instanceof Error ? error.message : String(error),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
finally {
|
|
115
|
+
client.disconnect();
|
|
116
|
+
}
|
|
121
117
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
118
|
+
// Provider attachment (per-provider liveness) is owned by the engine now, not a
|
|
119
|
+
// local status file; read this node's record from the nodes API.
|
|
120
|
+
let node;
|
|
121
|
+
if (nodeName) {
|
|
122
|
+
try {
|
|
123
|
+
const relay = deps.sdk.createWorkspaceRelay(sdkOptionsFromOpts(options));
|
|
124
|
+
const nodes = await relay.nodes.list({ name: nodeName });
|
|
125
|
+
node = nodes[0] ?? { available: false, reason: `no node named "${nodeName}" in the workspace` };
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
node = { error: error instanceof Error ? error.message : String(error) };
|
|
129
|
+
}
|
|
131
130
|
}
|
|
132
|
-
|
|
133
|
-
|
|
131
|
+
else {
|
|
132
|
+
// A running broker that never reported a node name means the engine lookup
|
|
133
|
+
// was skipped — say so rather than looking fully checked.
|
|
134
|
+
node = { available: false, reason: 'broker did not report a node name' };
|
|
134
135
|
}
|
|
136
|
+
// Redact the node token / workspace key structurally so status output (which a
|
|
137
|
+
// user may paste into a bug report) never carries a live credential.
|
|
138
|
+
deps.log(JSON.stringify(redactSecrets({ broker, node }), null, 2));
|
|
135
139
|
}
|
|
136
140
|
//# sourceMappingURL=fleet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fleet.js","sourceRoot":"","sources":["../../../src/cli/commands/fleet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"fleet.js","sourceRoot":"","sources":["../../../src/cli/commands/fleet.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,6 +71,35 @@ export declare function startBrokerWithPortFallback(paths: CoreProjectPaths, bas
|
|
|
71
71
|
relay: CoreRelay;
|
|
72
72
|
apiPort: number;
|
|
73
73
|
}>;
|
|
74
|
+
/** A handle to stop the capability providers started alongside the broker. */
|
|
75
|
+
export interface RunningNodeProviders {
|
|
76
|
+
stop(): Promise<void>;
|
|
77
|
+
}
|
|
78
|
+
export interface BrokerNodeIdentity {
|
|
79
|
+
nodeId: string;
|
|
80
|
+
nodeName: string;
|
|
81
|
+
nodeToken?: string;
|
|
82
|
+
}
|
|
83
|
+
interface SessionSnapshot {
|
|
84
|
+
node_id?: string;
|
|
85
|
+
node_name?: string;
|
|
86
|
+
node_token?: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Resolve the broker's node identity from repeated `/api/session` reads.
|
|
90
|
+
*
|
|
91
|
+
* The broker publishes its node id as soon as the workspace handshake completes,
|
|
92
|
+
* but mints the node token off the API-readiness path (in the background), so a
|
|
93
|
+
* freshly started broker can report `node_id` before `node_token`. When
|
|
94
|
+
* `awaitTokenMs` is set, poll until the token appears (or the budget elapses) so
|
|
95
|
+
* a provider that needs the broker-minted token isn't skipped over a startup
|
|
96
|
+
* race. A transient session-read error yields the best identity seen so far
|
|
97
|
+
* (identity without token), or `null` if no `node_id` was ever read.
|
|
98
|
+
*/
|
|
99
|
+
export declare function resolveNodeIdentityFromSession(getSession: () => Promise<SessionSnapshot>, options?: {
|
|
100
|
+
awaitTokenMs?: number;
|
|
101
|
+
sleep?: (ms: number) => Promise<void>;
|
|
102
|
+
}): Promise<BrokerNodeIdentity | null>;
|
|
74
103
|
export declare function waitForNodeDelivery(relay: CoreRelay, deps: CoreDependencies, waitMs?: number): Promise<{
|
|
75
104
|
ready: boolean;
|
|
76
105
|
status: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/broker-lifecycle.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"broker-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/broker-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@ import { startServeNode } from '@agent-relay/fleet';
|
|
|
5
5
|
import { track } from '../telemetry/index.js';
|
|
6
6
|
import { buildBundledAgentRelayMcpCommand } from './agent-relay-mcp-command.js';
|
|
7
7
|
import { errorClassName } from './telemetry-helpers.js';
|
|
8
|
-
import {
|
|
9
|
-
import { discoverNodeConfigPath, loadNodeDefinition } from './node-definition-loader.js';
|
|
8
|
+
import { createTriggerSyncClient, resolveNodeCapacityHarnesses } from './fleet-sidecar.js';
|
|
9
|
+
import { discoverNodeConfigPath, discoverPythonNodeConfigPath, loadNodeDefinition, } from './node-definition-loader.js';
|
|
10
10
|
import { startReflexCapture } from './reflex-capture.js';
|
|
11
11
|
const MAX_API_PORT_ATTEMPTS = 25;
|
|
12
12
|
const MAX_PORT = 65535;
|
|
@@ -16,6 +16,10 @@ const CONNECTION_FILENAME = 'connection.json';
|
|
|
16
16
|
const STATUS_POLL_INTERVAL_MS = 500;
|
|
17
17
|
const DETACHED_START_READY_TIMEOUT_MS = 10_000;
|
|
18
18
|
const NODE_DELIVERY_READY_TIMEOUT_MS = 10_000;
|
|
19
|
+
// Bounded wait for the broker's background-minted node token to surface on
|
|
20
|
+
// `/api/session` when serving a capability definition without an explicit
|
|
21
|
+
// RELAY_NODE_TOKEN.
|
|
22
|
+
const NODE_TOKEN_WAIT_MS = 15_000;
|
|
19
23
|
function parseBrokerConnection(raw) {
|
|
20
24
|
try {
|
|
21
25
|
const conn = JSON.parse(raw);
|
|
@@ -204,42 +208,188 @@ export async function startBrokerWithPortFallback(paths, basePort, deps, brokerN
|
|
|
204
208
|
vlog(deps, verbose, 'Broker status check passed.');
|
|
205
209
|
return { relay: candidate, apiPort };
|
|
206
210
|
}
|
|
207
|
-
|
|
208
|
-
|
|
211
|
+
/** Reject if `promise` doesn't settle within `ms`, clearing the timer on settle. */
|
|
212
|
+
function withTimeout(promise, ms) {
|
|
213
|
+
return new Promise((resolve, reject) => {
|
|
214
|
+
const timer = setTimeout(() => reject(new Error('session read exceeded token-wait budget')), ms);
|
|
215
|
+
promise.then((value) => {
|
|
216
|
+
clearTimeout(timer);
|
|
217
|
+
resolve(value);
|
|
218
|
+
}, (err) => {
|
|
219
|
+
clearTimeout(timer);
|
|
220
|
+
reject(err);
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Resolve the broker's node identity from repeated `/api/session` reads.
|
|
226
|
+
*
|
|
227
|
+
* The broker publishes its node id as soon as the workspace handshake completes,
|
|
228
|
+
* but mints the node token off the API-readiness path (in the background), so a
|
|
229
|
+
* freshly started broker can report `node_id` before `node_token`. When
|
|
230
|
+
* `awaitTokenMs` is set, poll until the token appears (or the budget elapses) so
|
|
231
|
+
* a provider that needs the broker-minted token isn't skipped over a startup
|
|
232
|
+
* race. A transient session-read error yields the best identity seen so far
|
|
233
|
+
* (identity without token), or `null` if no `node_id` was ever read.
|
|
234
|
+
*/
|
|
235
|
+
export async function resolveNodeIdentityFromSession(getSession, options = {}) {
|
|
236
|
+
const awaitTokenMs = options.awaitTokenMs ?? 0;
|
|
237
|
+
const sleep = options.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
|
|
238
|
+
const deadline = Date.now() + awaitTokenMs;
|
|
239
|
+
let identity = null;
|
|
240
|
+
for (;;) {
|
|
241
|
+
let session;
|
|
242
|
+
try {
|
|
243
|
+
// Bound each read to the remaining token-wait budget so a single stalled
|
|
244
|
+
// `/api/session` can't hold startup past `awaitTokenMs` (the transport's
|
|
245
|
+
// own request timeout is far longer). The non-await path issues one read
|
|
246
|
+
// and doesn't need the bound.
|
|
247
|
+
session =
|
|
248
|
+
awaitTokenMs > 0
|
|
249
|
+
? await withTimeout(getSession(), Math.max(0, deadline - Date.now()))
|
|
250
|
+
: await getSession();
|
|
251
|
+
}
|
|
252
|
+
catch {
|
|
253
|
+
return identity;
|
|
254
|
+
}
|
|
255
|
+
if (!session.node_id)
|
|
256
|
+
return identity;
|
|
257
|
+
identity = {
|
|
258
|
+
nodeId: session.node_id,
|
|
259
|
+
nodeName: session.node_name ?? session.node_id,
|
|
260
|
+
...(session.node_token ? { nodeToken: session.node_token } : {}),
|
|
261
|
+
};
|
|
262
|
+
if (session.node_token || awaitTokenMs <= 0 || Date.now() >= deadline) {
|
|
263
|
+
return identity;
|
|
264
|
+
}
|
|
265
|
+
await sleep(250);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Read the node id/name the broker registered as, from its HTTP session. The
|
|
270
|
+
* capability providers attach to this same node so they share its identity.
|
|
271
|
+
*/
|
|
272
|
+
async function readBrokerNodeIdentity(conn, options = {}) {
|
|
273
|
+
const client = new HarnessDriverClient({ baseUrl: conn.url, apiKey: conn.api_key });
|
|
274
|
+
try {
|
|
275
|
+
return await resolveNodeIdentityFromSession(() => client.getSession(), options);
|
|
276
|
+
}
|
|
277
|
+
finally {
|
|
278
|
+
client.disconnect();
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Serve the project's capability definitions as node providers connected
|
|
283
|
+
* directly to the engine, alongside the broker provider: an `agent-relay.{ts,…}`
|
|
284
|
+
* definition via {@link startServeNode}, and an `agent-relay.py` script spawned
|
|
285
|
+
* as a supervised `python` child with the node token in its env. When no
|
|
286
|
+
* definition exists, nothing is served — the broker's capacity already brings
|
|
287
|
+
* the node online. Best-effort: a provider setup failure never aborts `up`.
|
|
288
|
+
*/
|
|
289
|
+
async function startNodeCapabilityProviders(paths, relay, options, deps, nodeDefinition) {
|
|
290
|
+
// Definition discovery is opt-in (`node up` only), matching the TS config scan.
|
|
291
|
+
const pythonConfig = options.discoverConfig === true ? discoverPythonNodeConfigPath(paths.projectRoot) : undefined;
|
|
292
|
+
if (!nodeDefinition && !pythonConfig) {
|
|
209
293
|
return undefined;
|
|
210
294
|
}
|
|
211
295
|
const conn = readBrokerConnectionFromFs(deps.fs, paths.dataDir);
|
|
212
296
|
if (!conn) {
|
|
213
|
-
deps.warn('
|
|
297
|
+
deps.warn('Capability providers skipped: broker connection file was not available.');
|
|
298
|
+
return undefined;
|
|
299
|
+
}
|
|
300
|
+
const baseUrl = deps.env.RELAY_BASE_URL?.trim();
|
|
301
|
+
// Serving a definition needs the node token. When no explicit RELAY_NODE_TOKEN
|
|
302
|
+
// is set we rely on the broker's background-minted token, which can lag its
|
|
303
|
+
// node id by a Relaycast round-trip — wait a bounded window for it rather than
|
|
304
|
+
// racing the mint and skipping the provider.
|
|
305
|
+
const awaitTokenMs = deps.env.RELAY_NODE_TOKEN?.trim() ? 0 : NODE_TOKEN_WAIT_MS;
|
|
306
|
+
const identity = await readBrokerNodeIdentity(conn, { awaitTokenMs });
|
|
307
|
+
if (!identity) {
|
|
308
|
+
deps.warn('Capability providers skipped: the broker did not report its node id yet.');
|
|
214
309
|
return undefined;
|
|
215
310
|
}
|
|
216
|
-
// The
|
|
217
|
-
//
|
|
218
|
-
//
|
|
311
|
+
// The broker mints its own node token when RELAY_NODE_TOKEN is unset (local,
|
|
312
|
+
// un-enrolled); all providers on the node share that token, so fall back to
|
|
313
|
+
// the one it reports on its session rather than requiring pre-enrollment.
|
|
314
|
+
const nodeToken = deps.env.RELAY_NODE_TOKEN?.trim() || identity.nodeToken;
|
|
315
|
+
if (!nodeToken) {
|
|
316
|
+
deps.warn('Capability providers skipped: no node token available from the broker or environment.');
|
|
317
|
+
return undefined;
|
|
318
|
+
}
|
|
319
|
+
const served = [];
|
|
320
|
+
let pythonChild;
|
|
321
|
+
if (nodeDefinition) {
|
|
322
|
+
try {
|
|
323
|
+
const workspaceKey = relay.workspaceKey;
|
|
324
|
+
served.push(startServeNode({
|
|
325
|
+
definition: nodeDefinition,
|
|
326
|
+
connection: {
|
|
327
|
+
...(baseUrl ? { baseUrl } : {}),
|
|
328
|
+
nodeToken,
|
|
329
|
+
nodeId: identity.nodeId,
|
|
330
|
+
},
|
|
331
|
+
nameOverride: options.nodeName ?? identity.nodeName,
|
|
332
|
+
// The served definition attaches as its own provider, distinct from the
|
|
333
|
+
// broker ("broker") on the same node.
|
|
334
|
+
providerName: nodeDefinition.name,
|
|
335
|
+
...(workspaceKey ? { triggers: createTriggerSyncClient({ workspaceKey, baseUrl }) } : {}),
|
|
336
|
+
reconnect: true,
|
|
337
|
+
warn: (message) => deps.warn(message),
|
|
338
|
+
log: (message) => deps.log(message),
|
|
339
|
+
}));
|
|
340
|
+
}
|
|
341
|
+
catch (err) {
|
|
342
|
+
deps.warn(`Capability provider skipped: ${toErrorMessage(err)}`);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
if (pythonConfig) {
|
|
346
|
+
pythonChild = startPythonNodeProvider(pythonConfig, {
|
|
347
|
+
nodeToken,
|
|
348
|
+
baseUrl,
|
|
349
|
+
nodeId: identity.nodeId,
|
|
350
|
+
// Prefer the enrolled/override name so a Cloud-enrolled py provider
|
|
351
|
+
// registers under the same name as the TS provider, not the broker default.
|
|
352
|
+
nodeName: options.nodeName ?? identity.nodeName,
|
|
353
|
+
}, deps);
|
|
354
|
+
}
|
|
355
|
+
if (served.length === 0 && !pythonChild) {
|
|
356
|
+
return undefined;
|
|
357
|
+
}
|
|
358
|
+
return {
|
|
359
|
+
stop: async () => {
|
|
360
|
+
await Promise.all(served.map((node) => node.stop().catch(() => undefined)));
|
|
361
|
+
if (pythonChild?.pid) {
|
|
362
|
+
try {
|
|
363
|
+
deps.killProcess(pythonChild.pid, 'SIGTERM');
|
|
364
|
+
}
|
|
365
|
+
catch {
|
|
366
|
+
// Already exited.
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
},
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Spawn `python agent-relay.py` as a supervised child with the node credentials
|
|
374
|
+
* in its environment. The child connects to the engine on its own via the SDK's
|
|
375
|
+
* `NodeProvider.from_enrollment()`.
|
|
376
|
+
*/
|
|
377
|
+
function startPythonNodeProvider(configPath, credentials, deps) {
|
|
378
|
+
const python = deps.env.AGENT_RELAY_PYTHON?.trim() || 'python3';
|
|
379
|
+
const env = {
|
|
380
|
+
...deps.env,
|
|
381
|
+
RELAY_NODE_TOKEN: credentials.nodeToken,
|
|
382
|
+
RELAY_NODE_ID: credentials.nodeId,
|
|
383
|
+
RELAY_NODE_NAME: credentials.nodeName,
|
|
384
|
+
...(credentials.baseUrl ? { RELAY_BASE_URL: credentials.baseUrl } : {}),
|
|
385
|
+
};
|
|
219
386
|
try {
|
|
220
|
-
const
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
teamsConfig,
|
|
224
|
-
name: options.brokerName ?? (path.basename(paths.projectRoot) || 'local-node'),
|
|
225
|
-
});
|
|
226
|
-
const workspaceKey = relay.workspaceKey;
|
|
227
|
-
const baseUrl = deps.env.RELAY_BASE_URL;
|
|
228
|
-
return startServeNode({
|
|
229
|
-
definition: node,
|
|
230
|
-
connection: { url: conn.url, apiKey: conn.api_key },
|
|
231
|
-
...(options.nodeName ? { nameOverride: options.nodeName } : {}),
|
|
232
|
-
// A started relay's workspace key lets a config-defined node reconcile its
|
|
233
|
-
// declared triggers with the workspace. The implicit local node declares no
|
|
234
|
-
// triggers, so the adapter is created but never issues a request.
|
|
235
|
-
...(workspaceKey ? { triggers: createTriggerSyncClient({ workspaceKey, baseUrl }) } : {}),
|
|
236
|
-
statusPath: fleetStatusPath(paths),
|
|
237
|
-
reconnect: true,
|
|
238
|
-
warn: (message) => deps.warn(message),
|
|
239
|
-
});
|
|
387
|
+
const child = deps.spawnProcess(python, [configPath], { stdio: 'inherit', env });
|
|
388
|
+
deps.log(`Serving Python node provider: ${python} ${path.basename(configPath)} (pid: ${child.pid ?? 'unknown'}).`);
|
|
389
|
+
return child;
|
|
240
390
|
}
|
|
241
391
|
catch (err) {
|
|
242
|
-
deps.warn(`
|
|
392
|
+
deps.warn(`Python node provider skipped: ${toErrorMessage(err)}`);
|
|
243
393
|
return undefined;
|
|
244
394
|
}
|
|
245
395
|
}
|
|
@@ -738,7 +888,7 @@ export async function runUpCommand(options, deps) {
|
|
|
738
888
|
deps.fs.mkdirSync(paths.dataDir, { recursive: true });
|
|
739
889
|
const existingPid = readBrokerPid(paths.dataDir, deps);
|
|
740
890
|
let relay = null;
|
|
741
|
-
let
|
|
891
|
+
let nodeProviders;
|
|
742
892
|
let reflexCapture;
|
|
743
893
|
let shuttingDown = false;
|
|
744
894
|
let sigintCount = 0;
|
|
@@ -752,7 +902,7 @@ export async function runUpCommand(options, deps) {
|
|
|
752
902
|
else {
|
|
753
903
|
shutdownPromise = (async () => {
|
|
754
904
|
await reflexCapture?.stop();
|
|
755
|
-
await
|
|
905
|
+
await nodeProviders?.stop();
|
|
756
906
|
await shutdownUpResources(relay, paths.dataDir, deps);
|
|
757
907
|
})();
|
|
758
908
|
}
|
|
@@ -778,6 +928,13 @@ export async function runUpCommand(options, deps) {
|
|
|
778
928
|
// Resolved BEFORE the broker starts so an explicit bad --config fails
|
|
779
929
|
// fast instead of tearing down a broker that just came up.
|
|
780
930
|
const nodeDefinition = await resolveNodeDefinitionForUp(paths, options, deps);
|
|
931
|
+
const teamsConfig = deps.loadTeamsConfig(paths.projectRoot);
|
|
932
|
+
// The broker advertises spawn:<harness> capacity for this set. A pre-set
|
|
933
|
+
// AGENT_RELAY_NODE_HARNESSES is the operator's authoritative declaration of the
|
|
934
|
+
// node's real capacity and is used verbatim; otherwise the CLI computes it from
|
|
935
|
+
// the project's runnable harnesses (built-in defaults plus teams.json clis and
|
|
936
|
+
// any spawn:<harness> definitions) and passes it to the broker before it registers.
|
|
937
|
+
deps.env.AGENT_RELAY_NODE_HARNESSES = resolveNodeCapacityHarnesses(deps.env.AGENT_RELAY_NODE_HARNESSES, teamsConfig, nodeDefinition);
|
|
781
938
|
// Kill any orphaned broker processes for this project that lost their PID
|
|
782
939
|
// files (e.g. user deleted .agentworkforce/relay/ while broker was running).
|
|
783
940
|
vlog(deps, options.verbose, 'Checking for orphaned broker processes...');
|
|
@@ -789,9 +946,8 @@ export async function runUpCommand(options, deps) {
|
|
|
789
946
|
deps.log('Mode: broker (stdio)');
|
|
790
947
|
deps.log(`Workspace Key: ${relay.workspaceKey ?? 'unknown'}`);
|
|
791
948
|
deps.log('Broker started.');
|
|
792
|
-
vlog(deps, options.verbose, '
|
|
793
|
-
|
|
794
|
-
fleetSidecar = startImplicitLocalFleetSidecar(paths, relay, options, deps, teamsConfig, nodeDefinition);
|
|
949
|
+
vlog(deps, options.verbose, 'Starting node capability providers (if any)...');
|
|
950
|
+
nodeProviders = await startNodeCapabilityProviders(paths, relay, options, deps, nodeDefinition);
|
|
795
951
|
// When Reflex is enabled, periodically sync + push local session history to
|
|
796
952
|
// relayhistory-cloud in-process via the ai-hist-native addon (no subprocess).
|
|
797
953
|
// No-op when disabled or the addon isn't available.
|
|
@@ -799,7 +955,10 @@ export async function runUpCommand(options, deps) {
|
|
|
799
955
|
const shouldSpawn = options.spawn === true ? true : options.spawn === false ? false : Boolean(teamsConfig?.autoSpawn);
|
|
800
956
|
if (shouldSpawn && teamsConfig && teamsConfig.agents.length > 0) {
|
|
801
957
|
vlog(deps, options.verbose, 'Waiting for broker node delivery (/v1/node/ws) before auto-spawning...');
|
|
802
|
-
|
|
958
|
+
// Node delivery can't connect until the broker mints its node token, which
|
|
959
|
+
// now happens in the background after `Broker started.`. Budget for that
|
|
960
|
+
// mint window plus the connect so a slow mint doesn't abort auto-spawn.
|
|
961
|
+
const delivery = await waitForNodeDelivery(relay, deps, NODE_TOKEN_WAIT_MS + NODE_DELIVERY_READY_TIMEOUT_MS);
|
|
803
962
|
if (!delivery.ready) {
|
|
804
963
|
deps.error('Refusing to auto-spawn agents because broker node delivery is not connected.');
|
|
805
964
|
deps.error(`Node delivery: ${formatNodeDeliveryStatus(delivery.status)}`);
|