@masons/runtime-broker 0.2.8 → 0.2.10
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 +1 -0
- package/dist/broker/broker-daemon.d.ts.map +1 -1
- package/dist/broker/broker-daemon.js +441 -15
- package/dist/broker/endpoint-registry.d.ts +4 -0
- package/dist/broker/endpoint-registry.d.ts.map +1 -1
- package/dist/broker/endpoint-registry.js +2 -0
- package/dist/broker/entry.d.ts +1 -0
- package/dist/broker/entry.d.ts.map +1 -1
- package/dist/broker/entry.js +49 -2
- package/dist/broker/ipc-server.d.ts +27 -1
- package/dist/broker/ipc-server.d.ts.map +1 -1
- package/dist/broker/ipc-server.js +39 -2
- package/dist/broker/runtime-endpoint-port.d.ts +3 -1
- package/dist/broker/runtime-endpoint-port.d.ts.map +1 -1
- package/dist/broker/version-handshake.d.ts +3 -1
- package/dist/broker/version-handshake.d.ts.map +1 -1
- package/dist/broker/version-handshake.js +3 -1
- package/dist/broker-client/broker-client.d.ts +32 -0
- package/dist/broker-client/broker-client.d.ts.map +1 -1
- package/dist/broker-client/broker-client.js +122 -2
- package/dist/runtime-endpoint-client.d.ts +45 -0
- package/dist/runtime-endpoint-client.d.ts.map +1 -1
- package/dist/runtime-endpoint-client.js +170 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/broker/entry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/broker/entry.ts"],"names":[],"mappings":"AAwFA,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,aAAa,CAAC;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAOtE,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,gBAAgB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAUD,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAAC,mBAAmB,CAAC,CA8F9B;AA2DD,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,OAAO,UAAU,CAAC,KAAwB,GACpD,OAAO,CAAC,gBAAgB,CAAC,CA4B3B;AAaD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,YAAY,GACnB,mBAAmB,CA2IrB;AAyCD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAenE;AAED,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAiG1C"}
|
package/dist/broker/entry.js
CHANGED
|
@@ -2,7 +2,7 @@ import { readFile } from "node:fs/promises";
|
|
|
2
2
|
import { pathToFileURL } from "node:url";
|
|
3
3
|
import { readConfig } from "../config-fs.js";
|
|
4
4
|
import { DEFAULT_API_HOST } from "../platform-client.js";
|
|
5
|
-
import { claimRuntimeInboundRoute, emitRuntimeInboundRouted, emitRuntimeNetworkPresenceChanged, emitRuntimeProcessingState, emitRuntimeUndispatchedChanged, heartbeatRuntimeEndpoint, registerRuntimeEndpoint, transitionRuntimeEndpointState, unregisterRuntimeEndpoint, updateRuntimeEndpointDisplayMetadata, } from "../runtime-endpoint-client.js";
|
|
5
|
+
import { claimRuntimeInboundRoute, claimRuntimeSelfAssignment, emitRuntimeInboundRouted, emitRuntimeNetworkPresenceChanged, emitRuntimeProcessingState, emitRuntimeUndispatchedChanged, heartbeatRuntimeEndpoint, registerRuntimeEndpoint, releaseRuntimeSelfAssignment, transitionRuntimeEndpointState, unregisterRuntimeEndpoint, updateRuntimeEndpointDisplayMetadata, } from "../runtime-endpoint-client.js";
|
|
6
6
|
import { BrokerAlreadyRunningError, startBrokerDaemon, } from "./broker-daemon.js";
|
|
7
7
|
import { ClaudeCodeSpawnDriver } from "./claude-code-spawn-driver.js";
|
|
8
8
|
import { CodexSpawnDriverStub } from "./codex-spawn-driver-stub.js";
|
|
@@ -12,6 +12,7 @@ import { resolveBrokerPaths } from "./paths.js";
|
|
|
12
12
|
import { createServicesEventClient } from "./services-event-client.js";
|
|
13
13
|
import { SpawnDriverRegistry } from "./spawn-driver.js";
|
|
14
14
|
const DEFAULT_ACCOUNT_ID = "default";
|
|
15
|
+
let entryLogger = null;
|
|
15
16
|
export async function resolveCredentialsFromFile(filePath, accountId, envApiHost) {
|
|
16
17
|
let raw;
|
|
17
18
|
try {
|
|
@@ -174,6 +175,12 @@ export function buildApiPort(apiHost, runtimeKey, logger) {
|
|
|
174
175
|
async claimRuntimeInboundRoute(event) {
|
|
175
176
|
return claimRuntimeInboundRoute({ apiHost }, runtimeKey, event);
|
|
176
177
|
},
|
|
178
|
+
async claimRuntimeSelfAssignment(params) {
|
|
179
|
+
return claimRuntimeSelfAssignment({ apiHost }, runtimeKey, params);
|
|
180
|
+
},
|
|
181
|
+
async releaseRuntimeSelfAssignment(params) {
|
|
182
|
+
return releaseRuntimeSelfAssignment({ apiHost }, runtimeKey, params);
|
|
183
|
+
},
|
|
177
184
|
async emitRuntimeInboundRouted(event) {
|
|
178
185
|
return emitRuntimeInboundRouted({ apiHost }, runtimeKey, event);
|
|
179
186
|
},
|
|
@@ -191,6 +198,40 @@ function errorStatus(err) {
|
|
|
191
198
|
function sleep(ms) {
|
|
192
199
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
193
200
|
}
|
|
201
|
+
function serializeFatalReason(reason) {
|
|
202
|
+
if (reason instanceof Error) {
|
|
203
|
+
return {
|
|
204
|
+
name: reason.name,
|
|
205
|
+
message: reason.message,
|
|
206
|
+
stack: reason.stack,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
return { message: String(reason) };
|
|
210
|
+
}
|
|
211
|
+
function logBrokerFatalExit(kind, reason) {
|
|
212
|
+
const fields = {
|
|
213
|
+
kind,
|
|
214
|
+
...serializeFatalReason(reason),
|
|
215
|
+
};
|
|
216
|
+
if (entryLogger) {
|
|
217
|
+
entryLogger.error("broker_fatal_exit", fields);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
console.error("broker_fatal_exit", fields);
|
|
221
|
+
}
|
|
222
|
+
export function installFatalExitHandlers(logger) {
|
|
223
|
+
entryLogger = logger;
|
|
224
|
+
let fatalExitStarted = false;
|
|
225
|
+
const exitAfterLog = (kind, reason) => {
|
|
226
|
+
if (fatalExitStarted)
|
|
227
|
+
return;
|
|
228
|
+
fatalExitStarted = true;
|
|
229
|
+
logBrokerFatalExit(kind, reason);
|
|
230
|
+
process.exit(1);
|
|
231
|
+
};
|
|
232
|
+
process.on("uncaughtException", (err) => exitAfterLog("uncaughtException", err));
|
|
233
|
+
process.on("unhandledRejection", (reason) => exitAfterLog("unhandledRejection", reason));
|
|
234
|
+
}
|
|
194
235
|
export async function main() {
|
|
195
236
|
const accountId = process.env.MASONS_BROKER_ACCOUNT_ID ?? DEFAULT_ACCOUNT_ID;
|
|
196
237
|
const envApiHost = process.env.MASONS_BROKER_API_HOST;
|
|
@@ -200,6 +241,7 @@ export async function main() {
|
|
|
200
241
|
userDataDir: userDataOverride,
|
|
201
242
|
});
|
|
202
243
|
const logger = createBrokerLogger(paths.logDir);
|
|
244
|
+
installFatalExitHandlers(logger);
|
|
203
245
|
const principal = await resolveRuntimePrincipal(creds.apiHost, creds.token);
|
|
204
246
|
logger.info("broker_entry_starting", {
|
|
205
247
|
accountId: creds.accountId,
|
|
@@ -276,7 +318,12 @@ if (import.meta.url === argvUrl) {
|
|
|
276
318
|
if (err instanceof BrokerAlreadyRunningError) {
|
|
277
319
|
process.exit(0);
|
|
278
320
|
}
|
|
279
|
-
|
|
321
|
+
if (entryLogger) {
|
|
322
|
+
entryLogger.error("broker_entry_fatal", serializeFatalReason(err));
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
console.error("broker_entry_fatal", err);
|
|
326
|
+
}
|
|
280
327
|
process.exit(1);
|
|
281
328
|
});
|
|
282
329
|
}
|
|
@@ -3,12 +3,14 @@ import type { EndpointBackgroundExchangeMode, EndpointExecutionSurface, RuntimeE
|
|
|
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";
|
|
6
|
+
import { type IpcCapabilities } from "./version-handshake.js";
|
|
6
7
|
export interface IPCServerHandlers {
|
|
7
8
|
registerEndpoint(body: RegisterEndpointBody, ipcWs: WebSocket): Promise<RegisterEndpointResponse>;
|
|
8
9
|
heartbeatEndpoint(endpoint_id: string): Promise<void>;
|
|
9
10
|
unregisterEndpoint(endpoint_id: string): Promise<void>;
|
|
10
11
|
send(body: SendBody): Promise<SendResponse>;
|
|
11
12
|
sendRuntimeAssignmentReply(body: RuntimeAssignmentReplyBody): Promise<SendResponse>;
|
|
13
|
+
claimRuntimeAssignment(body: RuntimeAssignmentClaimBody): Promise<RuntimeAssignmentClaimResponse>;
|
|
12
14
|
reportProcessingState(body: ProcessingStateBody): Promise<void>;
|
|
13
15
|
reattachEndpoint(endpoint_id: string, plugin_pid: number, ipcWs: WebSocket): Promise<ReattachResponse>;
|
|
14
16
|
listUndispatched(): Promise<UndispatchedListResponse>;
|
|
@@ -44,6 +46,7 @@ export interface TaskHintBody {
|
|
|
44
46
|
}
|
|
45
47
|
export interface RegisterEndpointResponse {
|
|
46
48
|
endpoint_id: string;
|
|
49
|
+
endpoint_owner_token?: string;
|
|
47
50
|
}
|
|
48
51
|
export interface SendBody {
|
|
49
52
|
endpoint_id: string;
|
|
@@ -60,15 +63,34 @@ export interface SendResponse {
|
|
|
60
63
|
export interface RuntimeAssignmentReplyBody {
|
|
61
64
|
endpoint_id: string;
|
|
62
65
|
plugin_pid: number;
|
|
66
|
+
endpoint_owner_token?: string;
|
|
63
67
|
source_message_id: string;
|
|
64
68
|
assignment_id: string;
|
|
65
69
|
reply_request_id: string;
|
|
66
70
|
content: string;
|
|
67
71
|
contentType?: string;
|
|
68
72
|
}
|
|
73
|
+
export interface RuntimeAssignmentClaimBody {
|
|
74
|
+
endpoint_id: string;
|
|
75
|
+
plugin_pid: number;
|
|
76
|
+
endpoint_owner_token?: string;
|
|
77
|
+
undispatched_id: string;
|
|
78
|
+
recover_existing?: boolean;
|
|
79
|
+
}
|
|
80
|
+
export interface RuntimeAssignmentClaimResponse {
|
|
81
|
+
assignment: RuntimeAssignmentContext;
|
|
82
|
+
message: {
|
|
83
|
+
from: string;
|
|
84
|
+
content: string;
|
|
85
|
+
contentType: string;
|
|
86
|
+
metadata: Record<string, unknown>;
|
|
87
|
+
sourceMessageId?: string;
|
|
88
|
+
};
|
|
89
|
+
}
|
|
69
90
|
export interface ProcessingStateBody {
|
|
70
91
|
endpoint_id: string;
|
|
71
92
|
plugin_pid: number;
|
|
93
|
+
endpoint_owner_token?: string;
|
|
72
94
|
source_message_id: string;
|
|
73
95
|
assignment_id: string;
|
|
74
96
|
state_event_id: string;
|
|
@@ -101,8 +123,9 @@ export interface IPCServerOptions {
|
|
|
101
123
|
bearerToken: string;
|
|
102
124
|
handlers: IPCServerHandlers;
|
|
103
125
|
logger: BrokerLogger;
|
|
104
|
-
onChannelOpened?: (plugin_pid: number, ws: WebSocket) => void;
|
|
126
|
+
onChannelOpened?: (plugin_pid: number, ws: WebSocket, clientCapabilities: IpcCapabilities) => void;
|
|
105
127
|
onChannelClosed?: (plugin_pid: number, ws: WebSocket) => void;
|
|
128
|
+
onPushAck?: (plugin_pid: number, ws: WebSocket, push_id: string) => void;
|
|
106
129
|
getNetworkPresence: () => NetworkPresence;
|
|
107
130
|
}
|
|
108
131
|
export interface RunningIPCServer {
|
|
@@ -114,6 +137,7 @@ export declare function startIPCServer(opts: IPCServerOptions): Promise<RunningI
|
|
|
114
137
|
export declare function pushToPlugin(ws: WebSocket, event: PushEvent): boolean;
|
|
115
138
|
export type PushEvent = {
|
|
116
139
|
event: "message_received";
|
|
140
|
+
push_id?: string;
|
|
117
141
|
from: string;
|
|
118
142
|
content: string;
|
|
119
143
|
contentType: string;
|
|
@@ -122,9 +146,11 @@ export type PushEvent = {
|
|
|
122
146
|
runtimeAssignment?: RuntimeAssignmentContext;
|
|
123
147
|
} | {
|
|
124
148
|
event: "ping";
|
|
149
|
+
push_id?: string;
|
|
125
150
|
ts: string;
|
|
126
151
|
} | {
|
|
127
152
|
event: "presence_changed";
|
|
153
|
+
push_id?: string;
|
|
128
154
|
presence: NetworkPresence;
|
|
129
155
|
reason?: string;
|
|
130
156
|
};
|
|
@@ -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,EAC1B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"ipc-server.d.ts","sourceRoot":"","sources":["../../src/broker/ipc-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ export class BrokerHttpError extends Error {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
export async function startIPCServer(opts) {
|
|
32
|
-
const { bearerToken, handlers, logger, onChannelOpened, onChannelClosed, getNetworkPresence, } = opts;
|
|
32
|
+
const { bearerToken, handlers, logger, onChannelOpened, onChannelClosed, getNetworkPresence, onPushAck, } = opts;
|
|
33
33
|
const http = createServer((req, res) => {
|
|
34
34
|
void routeHttp(req, res, bearerToken, handlers, logger, getNetworkPresence);
|
|
35
35
|
});
|
|
@@ -52,8 +52,17 @@ export async function startIPCServer(opts) {
|
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
54
54
|
wss.handleUpgrade(req, socket, head, (ws) => {
|
|
55
|
-
onChannelOpened?.(pid, ws);
|
|
55
|
+
onChannelOpened?.(pid, ws, readClientCapabilities(req));
|
|
56
56
|
ws.once("close", () => onChannelClosed?.(pid, ws));
|
|
57
|
+
ws.on("message", (data) => {
|
|
58
|
+
const parsed = parsePluginFrame(data);
|
|
59
|
+
if (parsed !== null &&
|
|
60
|
+
typeof parsed === "object" &&
|
|
61
|
+
parsed.event === "push_ack" &&
|
|
62
|
+
typeof parsed.push_id === "string") {
|
|
63
|
+
onPushAck?.(pid, ws, parsed.push_id);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
57
66
|
wss.emit("connection", ws, req);
|
|
58
67
|
});
|
|
59
68
|
});
|
|
@@ -141,6 +150,19 @@ async function routeHttp(req, res, bearerToken, handlers, logger, getNetworkPres
|
|
|
141
150
|
sendJson(res, 200, out);
|
|
142
151
|
return;
|
|
143
152
|
}
|
|
153
|
+
if (method === "POST" && url === "/v1/runtime/assignment-claim") {
|
|
154
|
+
const body = await readJson(req);
|
|
155
|
+
const callerPid = readPluginPid(req);
|
|
156
|
+
if (callerPid === null) {
|
|
157
|
+
throw new BrokerHttpError(400, "plugin_pid_invalid", "x-plugin-pid header is required for assignment claim");
|
|
158
|
+
}
|
|
159
|
+
if (callerPid !== body.plugin_pid) {
|
|
160
|
+
throw new BrokerHttpError(403, "plugin_pid_mismatch", "x-plugin-pid header does not match claim body");
|
|
161
|
+
}
|
|
162
|
+
const out = await handlers.claimRuntimeAssignment(body);
|
|
163
|
+
sendJson(res, 200, out);
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
144
166
|
if (method === "POST" && url === "/v1/runtime/processing-state") {
|
|
145
167
|
const body = await readJson(req);
|
|
146
168
|
await handlers.reportProcessingState(body);
|
|
@@ -235,6 +257,21 @@ function readPluginPid(req) {
|
|
|
235
257
|
const n = Number.parseInt(str, 10);
|
|
236
258
|
return Number.isFinite(n) && n > 0 ? n : null;
|
|
237
259
|
}
|
|
260
|
+
function readClientCapabilities(req) {
|
|
261
|
+
const raw = req.headers["x-masons-ipc-capabilities"];
|
|
262
|
+
const str = Array.isArray(raw) ? raw.join(",") : raw;
|
|
263
|
+
const tokens = new Set(typeof str === "string"
|
|
264
|
+
? str
|
|
265
|
+
.split(",")
|
|
266
|
+
.map((part) => part.trim())
|
|
267
|
+
.filter(Boolean)
|
|
268
|
+
: []);
|
|
269
|
+
return {
|
|
270
|
+
...(tokens.has("push_receipt_ack_v1") && {
|
|
271
|
+
push_receipt_ack_v1: true,
|
|
272
|
+
}),
|
|
273
|
+
};
|
|
274
|
+
}
|
|
238
275
|
function constantTimeEquals(a, b) {
|
|
239
276
|
if (a.length !== b.length)
|
|
240
277
|
return false;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RegisterRuntimeEndpointParams, RegisterRuntimeEndpointResponse, RuntimeInboundRouteClaimOutcome, TransitionRuntimeEndpointStateParams, UpdateRuntimeEndpointDisplayMetadataParams } from "../runtime-endpoint-client.js";
|
|
1
|
+
import type { RegisterRuntimeEndpointParams, RegisterRuntimeEndpointResponse, RuntimeInboundRouteClaimOutcome, RuntimeSelfClaimOutcome, RuntimeSelfClaimParams, RuntimeSelfClaimReleaseParams, TransitionRuntimeEndpointStateParams, UpdateRuntimeEndpointDisplayMetadataParams } from "../runtime-endpoint-client.js";
|
|
2
2
|
import type { NetworkPresenceChangedEvent } from "./network-presence-changed-event-types.js";
|
|
3
3
|
import type { RuntimeInboundRouteClaimEvent, RuntimeInboundRoutedEvent } from "./runtime-inbound-routed-event-types.js";
|
|
4
4
|
import type { RuntimeProcessingStateEvent } from "./runtime-processing-state-event-types.js";
|
|
@@ -20,6 +20,8 @@ export interface RuntimeEndpointPort {
|
|
|
20
20
|
emitUndispatchedChanged?(event: UndispatchedChangedEvent): Promise<EmitOutcome>;
|
|
21
21
|
emitNetworkPresenceChanged?(event: NetworkPresenceChangedEvent): Promise<EmitOutcome>;
|
|
22
22
|
claimRuntimeInboundRoute?(event: RuntimeInboundRouteClaimEvent): Promise<RuntimeInboundRouteClaimOutcome>;
|
|
23
|
+
claimRuntimeSelfAssignment?(params: RuntimeSelfClaimParams): Promise<RuntimeSelfClaimOutcome>;
|
|
24
|
+
releaseRuntimeSelfAssignment?(params: RuntimeSelfClaimReleaseParams): Promise<EmitOutcome>;
|
|
23
25
|
emitRuntimeInboundRouted?(event: RuntimeInboundRoutedEvent): Promise<EmitOutcome>;
|
|
24
26
|
emitRuntimeProcessingState?(event: RuntimeProcessingStateEvent): Promise<EmitOutcome>;
|
|
25
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-endpoint-port.d.ts","sourceRoot":"","sources":["../../src/broker/runtime-endpoint-port.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,6BAA6B,EAC7B,+BAA+B,EAC/B,+BAA+B,EAC/B,oCAAoC,EACpC,0CAA0C,EAC3C,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,KAAK,EACV,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAWtF,MAAM,MAAM,WAAW,GACnB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CACN,MAAM,EAAE,6BAA6B,GACpC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC5C,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAO7C,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAQjE,eAAe,CACb,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,oCAAoC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAAC;IAKjB,qBAAqB,CAAC,CACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,0CAA0C,GACjD,OAAO,CAAC,IAAI,CAAC,CAAC;IAqBjB,uBAAuB,CAAC,CACtB,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,WAAW,CAAC,CAAC;IAYxB,0BAA0B,CAAC,CACzB,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC;IAMxB,wBAAwB,CAAC,CACvB,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,+BAA+B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-endpoint-port.d.ts","sourceRoot":"","sources":["../../src/broker/runtime-endpoint-port.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,6BAA6B,EAC7B,+BAA+B,EAC/B,+BAA+B,EAC/B,uBAAuB,EACvB,sBAAsB,EACtB,6BAA6B,EAC7B,oCAAoC,EACpC,0CAA0C,EAC3C,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,KAAK,EACV,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAWtF,MAAM,MAAM,WAAW,GACnB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CACN,MAAM,EAAE,6BAA6B,GACpC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC5C,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAO7C,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAQjE,eAAe,CACb,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,oCAAoC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAAC;IAKjB,qBAAqB,CAAC,CACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,0CAA0C,GACjD,OAAO,CAAC,IAAI,CAAC,CAAC;IAqBjB,uBAAuB,CAAC,CACtB,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,WAAW,CAAC,CAAC;IAYxB,0BAA0B,CAAC,CACzB,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC;IAMxB,wBAAwB,CAAC,CACvB,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAO5C,0BAA0B,CAAC,CACzB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAKpC,4BAA4B,CAAC,CAC3B,MAAM,EAAE,6BAA6B,GACpC,OAAO,CAAC,WAAW,CAAC,CAAC;IAMxB,wBAAwB,CAAC,CACvB,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,WAAW,CAAC,CAAC;IAMxB,0BAA0B,CAAC,CACzB,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC;CACzB"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { NetworkPresence } from "./network-presence.js";
|
|
2
|
-
export declare const IPC_PROTOCOL_VERSION = "1.
|
|
2
|
+
export declare const IPC_PROTOCOL_VERSION = "1.1";
|
|
3
3
|
export interface IpcCapabilities {
|
|
4
4
|
endpoint_metadata_v1?: boolean;
|
|
5
5
|
remote_spawn_v1?: boolean;
|
|
6
6
|
undispatched_inbox_v1?: boolean;
|
|
7
7
|
runtime_assignment_reply_v1?: boolean;
|
|
8
|
+
runtime_assignment_claim_v1?: boolean;
|
|
9
|
+
push_receipt_ack_v1?: boolean;
|
|
8
10
|
}
|
|
9
11
|
export declare const SERVER_CAPABILITIES: Readonly<IpcCapabilities>;
|
|
10
12
|
export interface InitializeRequestBody {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-handshake.d.ts","sourceRoot":"","sources":["../../src/broker/version-handshake.ts"],"names":[],"mappings":"AAkBA,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;
|
|
1
|
+
{"version":3,"file":"version-handshake.d.ts","sourceRoot":"","sources":["../../src/broker/version-handshake.ts"],"names":[],"mappings":"AAkBA,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;CAC/B;AAGD,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,eAAe,CAOxD,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;IACrC,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,CA2C7C"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
-
export const IPC_PROTOCOL_VERSION = "1.
|
|
2
|
+
export const IPC_PROTOCOL_VERSION = "1.1";
|
|
3
3
|
export const SERVER_CAPABILITIES = Object.freeze({
|
|
4
4
|
endpoint_metadata_v1: true,
|
|
5
5
|
remote_spawn_v1: true,
|
|
6
6
|
undispatched_inbox_v1: false,
|
|
7
7
|
runtime_assignment_reply_v1: true,
|
|
8
|
+
runtime_assignment_claim_v1: true,
|
|
9
|
+
push_receipt_ack_v1: true,
|
|
8
10
|
});
|
|
9
11
|
export function handleInitialize(req, ctx) {
|
|
10
12
|
if (typeof req.client_protocol_version !== "string") {
|
|
@@ -26,6 +26,9 @@ export interface BrokerClientConnectOptions {
|
|
|
26
26
|
pluginPid: number;
|
|
27
27
|
clientKind: string;
|
|
28
28
|
clientVersion: string;
|
|
29
|
+
heartbeatIntervalMs?: number;
|
|
30
|
+
heartbeatTimeoutMs?: number;
|
|
31
|
+
heartbeatMissesBeforeDisconnect?: number;
|
|
29
32
|
}
|
|
30
33
|
export interface RegisterEndpointArgs {
|
|
31
34
|
agentId: string;
|
|
@@ -42,6 +45,7 @@ export interface RegisterEndpointArgs {
|
|
|
42
45
|
}
|
|
43
46
|
export interface RegisterEndpointOutcome {
|
|
44
47
|
endpoint_id: string;
|
|
48
|
+
endpoint_owner_token?: string;
|
|
45
49
|
}
|
|
46
50
|
export interface BrokerInboundMessage {
|
|
47
51
|
from: string;
|
|
@@ -67,6 +71,21 @@ export interface SendRuntimeAssignmentReplyArgs {
|
|
|
67
71
|
content: string;
|
|
68
72
|
contentType?: string;
|
|
69
73
|
}
|
|
74
|
+
export interface ClaimRuntimeAssignmentArgs {
|
|
75
|
+
endpointId: string;
|
|
76
|
+
undispatchedId: string;
|
|
77
|
+
recoverExisting?: boolean;
|
|
78
|
+
}
|
|
79
|
+
export interface ClaimRuntimeAssignmentResponse {
|
|
80
|
+
assignment: BrokerRuntimeAssignmentContext;
|
|
81
|
+
message: {
|
|
82
|
+
from: string;
|
|
83
|
+
content: string;
|
|
84
|
+
contentType: string;
|
|
85
|
+
metadata: Record<string, unknown>;
|
|
86
|
+
sourceMessageId?: string;
|
|
87
|
+
};
|
|
88
|
+
}
|
|
70
89
|
export type AdapterRuntimeProcessingState = Exclude<RuntimeProcessingState, "assigned_to_runtime_target" | "reply_requested" | "reply_emitted">;
|
|
71
90
|
export interface ReportRuntimeProcessingStateArgs {
|
|
72
91
|
endpointId: string;
|
|
@@ -92,12 +111,18 @@ type Events = {
|
|
|
92
111
|
export declare class BrokerClient extends EventEmitter {
|
|
93
112
|
private readonly handle;
|
|
94
113
|
private ws;
|
|
114
|
+
private heartbeatInterval;
|
|
115
|
+
private heartbeatTimeout;
|
|
116
|
+
private heartbeatMisses;
|
|
117
|
+
private heartbeatTimeoutMs;
|
|
118
|
+
private heartbeatMissesBeforeDisconnect;
|
|
95
119
|
private pluginPid;
|
|
96
120
|
private _sessionId;
|
|
97
121
|
private _networkPresence;
|
|
98
122
|
private _serverCapabilities;
|
|
99
123
|
private _clientKind;
|
|
100
124
|
private _clientVersion;
|
|
125
|
+
private readonly endpointOwnerTokens;
|
|
101
126
|
private constructor();
|
|
102
127
|
static discover(opts: BrokerClientDiscoverOptions): Promise<BrokerClient>;
|
|
103
128
|
get spawnedNew(): boolean;
|
|
@@ -115,6 +140,7 @@ export declare class BrokerClient extends EventEmitter {
|
|
|
115
140
|
messageId: string;
|
|
116
141
|
status: string;
|
|
117
142
|
}>;
|
|
143
|
+
claimRuntimeAssignment(args: ClaimRuntimeAssignmentArgs): Promise<ClaimRuntimeAssignmentResponse>;
|
|
118
144
|
reportRuntimeProcessingState(args: ReportRuntimeProcessingStateArgs): Promise<void>;
|
|
119
145
|
close(endpointId?: string): Promise<void>;
|
|
120
146
|
on<K extends keyof Events>(event: K, listener: Events[K]): this;
|
|
@@ -126,7 +152,13 @@ export declare class BrokerClient extends EventEmitter {
|
|
|
126
152
|
emit<K extends keyof Events>(event: K, ...args: Parameters<Events[K]>): boolean;
|
|
127
153
|
emit(event: string | symbol, ...args: unknown[]): boolean;
|
|
128
154
|
private httpJson;
|
|
155
|
+
private requireEndpointOwnerToken;
|
|
129
156
|
private handleFrame;
|
|
157
|
+
private sendPushAck;
|
|
158
|
+
private startHeartbeat;
|
|
159
|
+
private sendHeartbeatProbe;
|
|
160
|
+
private markHeartbeatAlive;
|
|
161
|
+
private clearHeartbeat;
|
|
130
162
|
}
|
|
131
163
|
export {};
|
|
132
164
|
//# sourceMappingURL=broker-client.d.ts.map
|
|
@@ -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,EACL,KAAK,sBAAsB,EAE3B,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EACV,8BAA8B,EAC9B,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,+BAA+B,CAAC;AAcvC,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,IAAI,EAAG,uBAAuB,CAAU;IACjD,QAAQ,CAAC,SAAS,EAAG,IAAI,CAAU;gBACvB,OAAO,EAAE,MAAM;CAI5B;AAOD,qBAAa,gCAAiC,SAAQ,KAAK;IACzD,QAAQ,CAAC,IAAI,EAAG,gCAAgC,CAAU;IAC1D,QAAQ,CAAC,SAAS,EAAG,KAAK,CAAU;gBACxB,OAAO,EAAE,MAAM;CAI5B;AAgBD,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"broker-client.d.ts","sourceRoot":"","sources":["../../src/broker-client/broker-client.ts"],"names":[],"mappings":"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"}
|