@masons/runtime-broker 0.2.11 → 0.2.13
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/broker/broker-daemon.d.ts +2 -0
- package/dist/broker/broker-daemon.d.ts.map +1 -1
- package/dist/broker/broker-daemon.js +50 -7
- package/dist/broker/endpoint-registry.d.ts +2 -2
- package/dist/broker/endpoint-registry.d.ts.map +1 -1
- package/dist/broker/ipc-server.d.ts +2 -2
- package/dist/broker/ipc-server.d.ts.map +1 -1
- package/dist/broker/version-handshake.d.ts +2 -0
- package/dist/broker/version-handshake.d.ts.map +1 -1
- package/dist/broker/version-handshake.js +3 -0
- package/dist/broker-client/broker-client.d.ts +4 -2
- package/dist/broker-client/broker-client.d.ts.map +1 -1
- package/dist/broker-client/broker-client.js +10 -0
- package/dist/broker-client/lazy-spawn.d.ts +1 -0
- package/dist/broker-client/lazy-spawn.d.ts.map +1 -1
- package/dist/broker-client/lazy-spawn.js +103 -13
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ import type { ConnectorWS } from "./connector-ws.js";
|
|
|
5
5
|
import { type ControlEventDispatcher } from "./control-event-dispatcher.js";
|
|
6
6
|
import type { ControlAck } from "./control-event-types.js";
|
|
7
7
|
import { type DiscoveryRecord } from "./discovery-file.js";
|
|
8
|
+
import { type BrokerEndpointEntry } from "./endpoint-registry.js";
|
|
8
9
|
import { type EndpointState } from "./endpoint-state-machine.js";
|
|
9
10
|
import type { BrokerLogger } from "./logger.js";
|
|
10
11
|
import { type NetworkPresence } from "./network-presence.js";
|
|
@@ -66,6 +67,7 @@ export interface RunningBroker {
|
|
|
66
67
|
shutdown(reason: string): Promise<void>;
|
|
67
68
|
registrySize(): number;
|
|
68
69
|
state(endpoint_id: string): EndpointState | undefined;
|
|
70
|
+
displayMetadata(endpoint_id: string): BrokerEndpointEntry["display_metadata"] | undefined;
|
|
69
71
|
undispatchedInbox: UndispatchedInbox;
|
|
70
72
|
controlEventDispatcher: ControlEventDispatcher;
|
|
71
73
|
networkPresence(): NetworkPresence;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker-daemon.d.ts","sourceRoot":"","sources":["../../src/broker/broker-daemon.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAqB,KAAK,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"broker-daemon.d.ts","sourceRoot":"","sources":["../../src/broker/broker-daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -93,10 +93,53 @@ function assertEndpointOwnerToken(entry, candidate) {
|
|
|
93
93
|
throw new BrokerHttpError(403, "endpoint_owner_token_mismatch", "endpoint_owner_token does not own endpoint_id");
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
function
|
|
96
|
+
function normalizeWorkspace(workspace) {
|
|
97
|
+
if (workspace === undefined)
|
|
98
|
+
return undefined;
|
|
99
|
+
if (typeof workspace === "string") {
|
|
100
|
+
const trimmed = workspace.trim();
|
|
101
|
+
return trimmed ? { root: trimmed, cwd: trimmed } : undefined;
|
|
102
|
+
}
|
|
103
|
+
if (typeof workspace !== "object" || workspace === null) {
|
|
104
|
+
throw invalidWorkspace("workspace must be a string or object");
|
|
105
|
+
}
|
|
106
|
+
const root = cleanRequiredWorkspaceField(workspace.root, "root");
|
|
107
|
+
const cwd = cleanRequiredWorkspaceField(workspace.cwd, "cwd");
|
|
108
|
+
const remote = cleanOptionalWorkspaceField(workspace.remote, "remote");
|
|
109
|
+
const branch = cleanOptionalWorkspaceField(workspace.branch, "branch");
|
|
110
|
+
return {
|
|
111
|
+
root,
|
|
112
|
+
cwd,
|
|
113
|
+
...(remote ? { remote } : {}),
|
|
114
|
+
...(branch ? { branch } : {}),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
function cleanRequiredWorkspaceField(value, field) {
|
|
118
|
+
if (typeof value !== "string") {
|
|
119
|
+
throw invalidWorkspace(`workspace.${field} must be a non-empty string`);
|
|
120
|
+
}
|
|
121
|
+
const trimmed = value.trim();
|
|
122
|
+
if (!trimmed) {
|
|
123
|
+
throw invalidWorkspace(`workspace.${field} must be a non-empty string`);
|
|
124
|
+
}
|
|
125
|
+
return trimmed;
|
|
126
|
+
}
|
|
127
|
+
function cleanOptionalWorkspaceField(value, field) {
|
|
128
|
+
if (value === undefined)
|
|
129
|
+
return undefined;
|
|
130
|
+
if (typeof value !== "string") {
|
|
131
|
+
throw invalidWorkspace(`workspace.${field} must be a string`);
|
|
132
|
+
}
|
|
133
|
+
const trimmed = value.trim();
|
|
134
|
+
return trimmed || undefined;
|
|
135
|
+
}
|
|
136
|
+
function invalidWorkspace(message) {
|
|
137
|
+
return new BrokerHttpError(422, "invalid_request", message);
|
|
138
|
+
}
|
|
139
|
+
function derivePublicDisplayLabel(body, workspace = normalizeWorkspace(body.workspace)) {
|
|
97
140
|
const parts = [
|
|
98
141
|
body.kind,
|
|
99
|
-
|
|
142
|
+
workspace ? basename(workspace.root) || workspace.root : null,
|
|
100
143
|
body.tracking_ref ?? null,
|
|
101
144
|
].flatMap((part) => {
|
|
102
145
|
const value = part?.trim();
|
|
@@ -1189,13 +1232,12 @@ export async function startBrokerDaemon(opts) {
|
|
|
1189
1232
|
const runtimeSessionId = body.runtime_session_id?.trim() || undefined;
|
|
1190
1233
|
const endpointNonce = randomUUID();
|
|
1191
1234
|
const endpointOwnerToken = randomUUID();
|
|
1235
|
+
const workspace = normalizeWorkspace(body.workspace);
|
|
1192
1236
|
const apiResp = await apiPort.register({
|
|
1193
1237
|
runtime_kind: body.kind,
|
|
1194
1238
|
endpoint_nonce: endpointNonce,
|
|
1195
|
-
display_label: derivePublicDisplayLabel(body),
|
|
1196
|
-
workspace
|
|
1197
|
-
? { root: body.workspace, cwd: body.workspace }
|
|
1198
|
-
: undefined,
|
|
1239
|
+
display_label: derivePublicDisplayLabel(body, workspace),
|
|
1240
|
+
workspace,
|
|
1199
1241
|
tracking_ref: body.tracking_ref,
|
|
1200
1242
|
session_name: body.session_name,
|
|
1201
1243
|
task_hint: body.task_hint,
|
|
@@ -1219,7 +1261,7 @@ export async function startBrokerDaemon(opts) {
|
|
|
1219
1261
|
session_name: body.session_name,
|
|
1220
1262
|
kind: body.kind,
|
|
1221
1263
|
started_at: body.started_at ?? new Date().toISOString(),
|
|
1222
|
-
workspace
|
|
1264
|
+
workspace,
|
|
1223
1265
|
tracking_ref: body.tracking_ref,
|
|
1224
1266
|
task_hint: body.task_hint,
|
|
1225
1267
|
},
|
|
@@ -2452,6 +2494,7 @@ export async function startBrokerDaemon(opts) {
|
|
|
2452
2494
|
shutdown,
|
|
2453
2495
|
registrySize: () => registry.size(),
|
|
2454
2496
|
state: (endpoint_id) => registry.get(endpoint_id)?.state,
|
|
2497
|
+
displayMetadata: (endpoint_id) => registry.get(endpoint_id)?.display_metadata,
|
|
2455
2498
|
undispatchedInbox,
|
|
2456
2499
|
controlEventDispatcher,
|
|
2457
2500
|
networkPresence: () => networkPresence,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type WebSocket from "ws";
|
|
2
|
-
import type { EndpointBackgroundExchangeMode, EndpointExecutionSurface, RuntimeEndpointCapability } from "../runtime-endpoint-client.js";
|
|
2
|
+
import type { EndpointBackgroundExchangeMode, EndpointExecutionSurface, RuntimeEndpointCapability, WorkspaceMetadata } from "../runtime-endpoint-client.js";
|
|
3
3
|
import { CorrelationRingBuffer } from "./correlation-ring.js";
|
|
4
4
|
export interface DisplayMetadata {
|
|
5
5
|
session_name?: string;
|
|
6
6
|
kind: string;
|
|
7
7
|
started_at: string;
|
|
8
|
-
workspace?:
|
|
8
|
+
workspace?: WorkspaceMetadata;
|
|
9
9
|
tracking_ref?: string;
|
|
10
10
|
task_hint?: string;
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint-registry.d.ts","sourceRoot":"","sources":["../../src/broker/endpoint-registry.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,SAAS,MAAM,IAAI,CAAC;AAChC,OAAO,KAAK,EACV,8BAA8B,EAC9B,wBAAwB,EACxB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"endpoint-registry.d.ts","sourceRoot":"","sources":["../../src/broker/endpoint-registry.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,SAAS,MAAM,IAAI,CAAC;AAChC,OAAO,KAAK,EACV,8BAA8B,EAC9B,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,QAAQ,GAAG,cAAc,CAAC;IACjC,WAAW,EAAE,IAAI,CAAC;IAElB,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,oBAAoB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACnD,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAC7C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wBAAwB,CAAC,EAAE,8BAA8B,CAAC;IAC1D,gBAAgB,EAAE,eAAe,CAAC;IAClC,gBAAgB,EAAE,qBAAqB,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,oBAAoB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACnD,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAC7C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wBAAwB,CAAC,EAAE,8BAA8B,CAAC;IAC1D,gBAAgB,EAAE,eAAe,CAAC;CACnC;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0C;IAG/D,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,mBAAmB;IAyBjD,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAKzD,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAWhE,gBAAgB,CACd,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,IAAI,GACnB,mBAAmB;IAoBtB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,mBAAmB;IA8BvE,uBAAuB,CACrB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,mBAAmB,GAAG,SAAS;IAYlC,iBAAiB,CACf,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GAEhB;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,mBAAmB,CAAA;KAAE,GACxC;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,kBAAkB,CAAA;KAAE,GACzC;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,uBAAuB,CAAA;KAAE,GAC9C;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,2BAA2B,CAAA;KAAE;IAWtD,IAAI,IAAI,mBAAmB,EAAE;IAK7B,IAAI,IAAI,MAAM;CAGf"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type RawData, WebSocket } from "ws";
|
|
2
|
-
import type { EndpointBackgroundExchangeMode, EndpointExecutionSurface, RuntimeEndpointCapability } from "../runtime-endpoint-client.js";
|
|
2
|
+
import type { EndpointBackgroundExchangeMode, EndpointExecutionSurface, RuntimeEndpointCapability, WorkspaceMetadata } from "../runtime-endpoint-client.js";
|
|
3
3
|
import type { BrokerLogger } from "./logger.js";
|
|
4
4
|
import type { NetworkPresence } from "./network-presence.js";
|
|
5
5
|
import type { RuntimeProcessingState, RuntimeWorkTargetRef } from "./runtime-processing-state-event-types.js";
|
|
@@ -29,7 +29,7 @@ export interface RegisterEndpointBody {
|
|
|
29
29
|
client_kind?: string;
|
|
30
30
|
client_version?: string;
|
|
31
31
|
started_at?: string;
|
|
32
|
-
workspace?: string;
|
|
32
|
+
workspace?: string | WorkspaceMetadata;
|
|
33
33
|
tracking_ref?: string;
|
|
34
34
|
session_name?: string;
|
|
35
35
|
task_hint?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipc-server.d.ts","sourceRoot":"","sources":["../../src/broker/ipc-server.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,KAAK,OAAO,EAAE,SAAS,EAAmB,MAAM,IAAI,CAAC;AAC9D,OAAO,KAAK,EACV,8BAA8B,EAC9B,wBAAwB,EACxB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"ipc-server.d.ts","sourceRoot":"","sources":["../../src/broker/ipc-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export interface IpcCapabilities {
|
|
|
7
7
|
runtime_assignment_reply_v1?: boolean;
|
|
8
8
|
runtime_assignment_claim_v1?: boolean;
|
|
9
9
|
push_receipt_ack_v1?: boolean;
|
|
10
|
+
structured_workspace_v1?: boolean;
|
|
10
11
|
}
|
|
11
12
|
export declare const SERVER_CAPABILITIES: Readonly<IpcCapabilities>;
|
|
12
13
|
export interface InitializeRequestBody {
|
|
@@ -16,6 +17,7 @@ export interface InitializeRequestBody {
|
|
|
16
17
|
capabilities?: IpcCapabilities;
|
|
17
18
|
}
|
|
18
19
|
export interface InitializeResponseBody {
|
|
20
|
+
server_version?: string;
|
|
19
21
|
server_protocol_version: string;
|
|
20
22
|
server_capabilities: IpcCapabilities;
|
|
21
23
|
session_id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-handshake.d.ts","sourceRoot":"","sources":["../../src/broker/version-handshake.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"version-handshake.d.ts","sourceRoot":"","sources":["../../src/broker/version-handshake.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAM1C,MAAM,WAAW,eAAe;IAE9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAG1B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAMtC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAGD,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,eAAe,CAQxD,CAAC;AAEH,MAAM,WAAW,qBAAqB;IAEpC,uBAAuB,EAAE,MAAM,CAAC;IAEhC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC;AAED,MAAM,WAAW,sBAAsB;IAErC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,eAAe,CAAC;IAErC,UAAU,EAAE,MAAM,CAAC;IAanB,gBAAgB,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,2BAA2B,GAAG,aAAa,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;CACjB;AAUD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,qBAAqB,EAC1B,GAAG,EAAE;IAAE,eAAe,EAAE,eAAe,CAAA;CAAE,GAEvC;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,sBAAsB,CAAA;CAAE,GAC7C;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,mBAAmB,CAAA;CAAE,CA4C7C"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { PLUGIN_VERSION } from "../version.js";
|
|
2
3
|
export const IPC_PROTOCOL_VERSION = "1.1";
|
|
3
4
|
export const SERVER_CAPABILITIES = Object.freeze({
|
|
4
5
|
endpoint_metadata_v1: true,
|
|
@@ -7,6 +8,7 @@ export const SERVER_CAPABILITIES = Object.freeze({
|
|
|
7
8
|
runtime_assignment_reply_v1: true,
|
|
8
9
|
runtime_assignment_claim_v1: true,
|
|
9
10
|
push_receipt_ack_v1: true,
|
|
11
|
+
structured_workspace_v1: true,
|
|
10
12
|
});
|
|
11
13
|
export function handleInitialize(req, ctx) {
|
|
12
14
|
if (typeof req.client_protocol_version !== "string") {
|
|
@@ -42,6 +44,7 @@ export function handleInitialize(req, ctx) {
|
|
|
42
44
|
return {
|
|
43
45
|
status: 200,
|
|
44
46
|
body: {
|
|
47
|
+
server_version: PLUGIN_VERSION,
|
|
45
48
|
server_protocol_version: IPC_PROTOCOL_VERSION,
|
|
46
49
|
server_capabilities: { ...SERVER_CAPABILITIES },
|
|
47
50
|
session_id: randomUUID(),
|
|
@@ -3,7 +3,7 @@ import type { NetworkPresence } from "../broker/network-presence.js";
|
|
|
3
3
|
import type { RuntimeProcessingState, RuntimeWorkTargetRef } from "../broker/runtime-processing-state-event-types.js";
|
|
4
4
|
import type { UndispatchedMessage } from "../broker/undispatched-inbox.js";
|
|
5
5
|
import { type InitializeResponseBody, type IpcCapabilities } from "../broker/version-handshake.js";
|
|
6
|
-
import type { EndpointBackgroundExchangeMode, EndpointExecutionSurface, RuntimeEndpointCapability } from "../runtime-endpoint-client.js";
|
|
6
|
+
import type { EndpointBackgroundExchangeMode, EndpointExecutionSurface, RuntimeEndpointCapability, WorkspaceMetadata } from "../runtime-endpoint-client.js";
|
|
7
7
|
export declare class ConnectorUnavailableError extends Error {
|
|
8
8
|
readonly code: "connector_unavailable";
|
|
9
9
|
readonly retryable: true;
|
|
@@ -35,7 +35,7 @@ export interface RegisterEndpointArgs {
|
|
|
35
35
|
agentId: string;
|
|
36
36
|
kind: string;
|
|
37
37
|
sessionName?: string;
|
|
38
|
-
workspace?: string;
|
|
38
|
+
workspace?: string | WorkspaceMetadata;
|
|
39
39
|
trackingRef?: string;
|
|
40
40
|
taskHint?: string;
|
|
41
41
|
runtimeSessionId?: string;
|
|
@@ -122,6 +122,7 @@ export declare class BrokerClient extends EventEmitter {
|
|
|
122
122
|
private _sessionId;
|
|
123
123
|
private _networkPresence;
|
|
124
124
|
private _serverCapabilities;
|
|
125
|
+
private _serverVersion;
|
|
125
126
|
private _clientKind;
|
|
126
127
|
private _clientVersion;
|
|
127
128
|
private readonly endpointOwnerTokens;
|
|
@@ -132,6 +133,7 @@ export declare class BrokerClient extends EventEmitter {
|
|
|
132
133
|
get sessionId(): string | null;
|
|
133
134
|
get networkPresence(): NetworkPresence | null;
|
|
134
135
|
get serverCapabilities(): Readonly<IpcCapabilities>;
|
|
136
|
+
get serverVersion(): string | null;
|
|
135
137
|
connect(opts: BrokerClientConnectOptions): Promise<InitializeResponseBody>;
|
|
136
138
|
registerEndpoint(args: RegisterEndpointArgs): Promise<RegisterEndpointOutcome>;
|
|
137
139
|
send(endpointId: string, to: string, content: string, contentType?: string, metadata?: Record<string, unknown>): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker-client.d.ts","sourceRoot":"","sources":["../../src/broker-client/broker-client.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EACL,KAAK,sBAAsB,EAE3B,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EACV,8BAA8B,EAC9B,wBAAwB,EACxB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"broker-client.d.ts","sourceRoot":"","sources":["../../src/broker-client/broker-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { EventEmitter } from "node:events";
|
|
|
2
2
|
import WebSocket from "ws";
|
|
3
3
|
import { resolveBrokerPaths } from "../broker/paths.js";
|
|
4
4
|
import { IPC_PROTOCOL_VERSION, } from "../broker/version-handshake.js";
|
|
5
|
+
import { PLUGIN_VERSION } from "../version.js";
|
|
5
6
|
import { discoverBroker } from "./lazy-spawn.js";
|
|
6
7
|
export class ConnectorUnavailableError extends Error {
|
|
7
8
|
code = "connector_unavailable";
|
|
@@ -39,6 +40,7 @@ export class BrokerClient extends EventEmitter {
|
|
|
39
40
|
_sessionId = null;
|
|
40
41
|
_networkPresence = null;
|
|
41
42
|
_serverCapabilities = {};
|
|
43
|
+
_serverVersion = null;
|
|
42
44
|
_clientKind = null;
|
|
43
45
|
_clientVersion = null;
|
|
44
46
|
endpointOwnerTokens = new Map();
|
|
@@ -55,6 +57,7 @@ export class BrokerClient extends EventEmitter {
|
|
|
55
57
|
timeoutMs: opts.timeoutMs,
|
|
56
58
|
brokerEntry: opts.brokerEntry,
|
|
57
59
|
nodeBinary: opts.nodeBinary,
|
|
60
|
+
expectedBrokerVersion: PLUGIN_VERSION,
|
|
58
61
|
env: {
|
|
59
62
|
MASONS_BROKER_ACCOUNT_ID: opts.accountId,
|
|
60
63
|
...(opts.userDataDir
|
|
@@ -80,6 +83,9 @@ export class BrokerClient extends EventEmitter {
|
|
|
80
83
|
get serverCapabilities() {
|
|
81
84
|
return this._serverCapabilities;
|
|
82
85
|
}
|
|
86
|
+
get serverVersion() {
|
|
87
|
+
return this._serverVersion;
|
|
88
|
+
}
|
|
83
89
|
async connect(opts) {
|
|
84
90
|
if (this.ws) {
|
|
85
91
|
throw new Error("BrokerClient already connected");
|
|
@@ -106,6 +112,10 @@ export class BrokerClient extends EventEmitter {
|
|
|
106
112
|
});
|
|
107
113
|
this._sessionId = initRes.session_id;
|
|
108
114
|
this._serverCapabilities = initRes.server_capabilities;
|
|
115
|
+
this._serverVersion =
|
|
116
|
+
typeof initRes.server_version === "string"
|
|
117
|
+
? initRes.server_version
|
|
118
|
+
: null;
|
|
109
119
|
this._networkPresence = initRes.network_presence;
|
|
110
120
|
const wsUrl = `${this.handle.record.ipcUrl.replace(/^http/, "ws")}/v1/stream`;
|
|
111
121
|
const ws = new WebSocket(wsUrl, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy-spawn.d.ts","sourceRoot":"","sources":["../../src/broker-client/lazy-spawn.ts"],"names":[],"mappings":"AA6BA,OAAO,EACL,KAAK,eAAe,EAErB,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,gBAAgB;IAE/B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IAEvD,aAAa,EAAE,MAAM,CAAC;IAEtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,UAAU,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"lazy-spawn.d.ts","sourceRoot":"","sources":["../../src/broker-client/lazy-spawn.ts"],"names":[],"mappings":"AA6BA,OAAO,EACL,KAAK,eAAe,EAErB,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,gBAAgB;IAE/B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IAEvD,aAAa,EAAE,MAAM,CAAC;IAEtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,UAAU,CAAC,EAAE,OAAO,CAAC;IAKrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,eAAe,CAAC;IAExB,OAAO,EAAE,OAAO,CAAC;CAClB;AA2BD,wBAAsB,cAAc,CAClC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,eAAe,CAAC,CAgE1B"}
|
|
@@ -12,15 +12,21 @@ export async function discoverBroker(opts) {
|
|
|
12
12
|
const poll = opts.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;
|
|
13
13
|
if (!opts.forceSpawn) {
|
|
14
14
|
const existing = readDiscoveryFile(opts.discoveryFile);
|
|
15
|
-
if (existing
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
if (existing) {
|
|
16
|
+
const health = await probeHealth(existing.ipcUrl, existing.bearerToken);
|
|
17
|
+
if (usableHealth(health, opts.expectedBrokerVersion)) {
|
|
18
|
+
return { record: existing, spawned: false };
|
|
19
|
+
}
|
|
20
|
+
if (replaceableOlderHealth(health, opts.expectedBrokerVersion)) {
|
|
21
|
+
await terminateDiscoveredBroker(existing, opts.pollIntervalMs ?? poll);
|
|
22
|
+
}
|
|
18
23
|
}
|
|
19
24
|
}
|
|
20
25
|
const acquired = await acquireSpawnLock({
|
|
21
26
|
discoveryFile: opts.discoveryFile,
|
|
22
27
|
deadline,
|
|
23
28
|
pollIntervalMs: poll,
|
|
29
|
+
expectedBrokerVersion: opts.expectedBrokerVersion,
|
|
24
30
|
});
|
|
25
31
|
if (acquired.kind === "existing") {
|
|
26
32
|
return { record: acquired.record, spawned: false };
|
|
@@ -28,15 +34,23 @@ export async function discoverBroker(opts) {
|
|
|
28
34
|
const { lock } = acquired;
|
|
29
35
|
try {
|
|
30
36
|
const recovered = readDiscoveryFile(opts.discoveryFile);
|
|
31
|
-
if (recovered
|
|
32
|
-
|
|
33
|
-
|
|
37
|
+
if (recovered) {
|
|
38
|
+
const health = await probeHealth(recovered.ipcUrl, recovered.bearerToken);
|
|
39
|
+
if (usableHealth(health, opts.expectedBrokerVersion)) {
|
|
40
|
+
return { record: recovered, spawned: false };
|
|
41
|
+
}
|
|
42
|
+
if (replaceableOlderHealth(health, opts.expectedBrokerVersion)) {
|
|
43
|
+
await terminateDiscoveredBroker(recovered, poll);
|
|
44
|
+
}
|
|
34
45
|
}
|
|
35
46
|
spawnDaemon(opts);
|
|
36
47
|
while (Date.now() < deadline) {
|
|
37
48
|
const rec = readDiscoveryFile(opts.discoveryFile);
|
|
38
|
-
if (rec
|
|
39
|
-
|
|
49
|
+
if (rec) {
|
|
50
|
+
const health = await probeHealth(rec.ipcUrl, rec.bearerToken);
|
|
51
|
+
if (usableHealth(health, opts.expectedBrokerVersion)) {
|
|
52
|
+
return { record: rec, spawned: true };
|
|
53
|
+
}
|
|
40
54
|
}
|
|
41
55
|
await sleep(poll);
|
|
42
56
|
}
|
|
@@ -81,9 +95,15 @@ async function acquireSpawnLock(opts) {
|
|
|
81
95
|
if (!isNodeErr(err, "EEXIST"))
|
|
82
96
|
throw err;
|
|
83
97
|
const existing = readDiscoveryFile(opts.discoveryFile);
|
|
84
|
-
if (existing
|
|
85
|
-
|
|
86
|
-
|
|
98
|
+
if (existing) {
|
|
99
|
+
const health = await probeHealth(existing.ipcUrl, existing.bearerToken);
|
|
100
|
+
if (usableHealth(health, opts.expectedBrokerVersion)) {
|
|
101
|
+
return { kind: "existing", record: existing };
|
|
102
|
+
}
|
|
103
|
+
if (replaceableOlderHealth(health, opts.expectedBrokerVersion)) {
|
|
104
|
+
await terminateDiscoveredBroker(existing, opts.pollIntervalMs);
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
87
107
|
}
|
|
88
108
|
if (isStaleSpawnLock(lockPath)) {
|
|
89
109
|
try {
|
|
@@ -171,15 +191,85 @@ async function probeHealth(ipcUrl, bearerToken) {
|
|
|
171
191
|
headers: { Authorization: `Bearer ${bearerToken}` },
|
|
172
192
|
signal: ctrl.signal,
|
|
173
193
|
});
|
|
174
|
-
|
|
194
|
+
if (!res.ok)
|
|
195
|
+
return { ok: false };
|
|
196
|
+
let body = null;
|
|
197
|
+
try {
|
|
198
|
+
body = (await res.json());
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
body = null;
|
|
202
|
+
}
|
|
203
|
+
return {
|
|
204
|
+
ok: true,
|
|
205
|
+
...(typeof body?.version === "string" ? { version: body.version } : {}),
|
|
206
|
+
};
|
|
175
207
|
}
|
|
176
208
|
catch {
|
|
177
|
-
return false;
|
|
209
|
+
return { ok: false };
|
|
178
210
|
}
|
|
179
211
|
finally {
|
|
180
212
|
clearTimeout(timer);
|
|
181
213
|
}
|
|
182
214
|
}
|
|
215
|
+
function usableHealth(health, expectedBrokerVersion) {
|
|
216
|
+
if (!health.ok)
|
|
217
|
+
return false;
|
|
218
|
+
if (!expectedBrokerVersion)
|
|
219
|
+
return true;
|
|
220
|
+
if (!health.version)
|
|
221
|
+
return true;
|
|
222
|
+
const comparison = compareBrokerVersions(health.version, expectedBrokerVersion);
|
|
223
|
+
return comparison === null || comparison >= 0;
|
|
224
|
+
}
|
|
225
|
+
function replaceableOlderHealth(health, expectedBrokerVersion) {
|
|
226
|
+
if (!health.ok || !expectedBrokerVersion)
|
|
227
|
+
return false;
|
|
228
|
+
if (!health.version)
|
|
229
|
+
return false;
|
|
230
|
+
const comparison = compareBrokerVersions(health.version, expectedBrokerVersion);
|
|
231
|
+
return comparison !== null && comparison < 0;
|
|
232
|
+
}
|
|
233
|
+
async function terminateDiscoveredBroker(record, pollIntervalMs) {
|
|
234
|
+
try {
|
|
235
|
+
process.kill(record.pid, "SIGKILL");
|
|
236
|
+
}
|
|
237
|
+
catch (err) {
|
|
238
|
+
if (!isNodeErr(err, "ESRCH"))
|
|
239
|
+
throw err;
|
|
240
|
+
}
|
|
241
|
+
const deadline = Date.now() + DEFAULT_HEALTH_TIMEOUT_MS;
|
|
242
|
+
while (Date.now() < deadline) {
|
|
243
|
+
if (!(await probeHealth(record.ipcUrl, record.bearerToken)).ok)
|
|
244
|
+
return;
|
|
245
|
+
await sleep(pollIntervalMs);
|
|
246
|
+
}
|
|
247
|
+
throw new Error(`older broker pid ${record.pid} remained healthy after SIGKILL; ` +
|
|
248
|
+
`cannot replace ${record.ipcUrl}`);
|
|
249
|
+
}
|
|
250
|
+
function compareBrokerVersions(left, right) {
|
|
251
|
+
const a = parseBrokerVersion(left);
|
|
252
|
+
const b = parseBrokerVersion(right);
|
|
253
|
+
if (!a || !b) {
|
|
254
|
+
return null;
|
|
255
|
+
}
|
|
256
|
+
const major = a[0] - b[0];
|
|
257
|
+
if (major !== 0)
|
|
258
|
+
return major;
|
|
259
|
+
const minor = a[1] - b[1];
|
|
260
|
+
if (minor !== 0)
|
|
261
|
+
return minor;
|
|
262
|
+
const patch = a[2] - b[2];
|
|
263
|
+
if (patch !== 0)
|
|
264
|
+
return patch;
|
|
265
|
+
return 0;
|
|
266
|
+
}
|
|
267
|
+
function parseBrokerVersion(version) {
|
|
268
|
+
const match = /^(\d+)\.(\d+)\.(\d+)(?:[-+].*)?$/.exec(version.trim());
|
|
269
|
+
if (!match)
|
|
270
|
+
return null;
|
|
271
|
+
return [Number(match[1]), Number(match[2]), Number(match[3])];
|
|
272
|
+
}
|
|
183
273
|
function sleep(ms) {
|
|
184
274
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
185
275
|
}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const PLUGIN_VERSION = "0.2.
|
|
1
|
+
export declare const PLUGIN_VERSION = "0.2.13";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const PLUGIN_VERSION = "0.2.
|
|
1
|
+
export const PLUGIN_VERSION = "0.2.13";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@masons/runtime-broker",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.13",
|
|
4
4
|
"description": "MASONS Runtime Broker — local daemon and BrokerClient SDK for multi-session agent runtime coordination.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "MASONS.ai <hello@masons.ai> (https://masons.ai)",
|