@masons/runtime-broker 0.2.18 → 0.2.20
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.map +1 -1
- package/dist/broker/broker-daemon.js +12 -4
- package/dist/broker/connector-ws.d.ts +1 -0
- package/dist/broker/connector-ws.d.ts.map +1 -1
- package/dist/broker/connector-ws.js +15 -9
- package/dist/broker/entry.d.ts +8 -0
- package/dist/broker/entry.d.ts.map +1 -1
- package/dist/broker/entry.js +47 -1
- package/dist/broker/runtime-endpoint-port.d.ts +2 -1
- package/dist/broker/runtime-endpoint-port.d.ts.map +1 -1
- package/dist/broker-client/broker-client.d.ts +29 -2
- package/dist/broker-client/broker-client.d.ts.map +1 -1
- package/dist/broker-client/broker-client.js +272 -48
- package/dist/runtime-endpoint-client.d.ts +2 -0
- package/dist/runtime-endpoint-client.d.ts.map +1 -1
- package/dist/runtime-endpoint-client.js +30 -5
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker-daemon.d.ts","sourceRoot":"","sources":["../../src/broker/broker-daemon.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"broker-daemon.d.ts","sourceRoot":"","sources":["../../src/broker/broker-daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -1683,7 +1683,7 @@ export async function startBrokerDaemon(opts) {
|
|
|
1683
1683
|
}
|
|
1684
1684
|
}
|
|
1685
1685
|
else {
|
|
1686
|
-
throw new BrokerHttpError(409, "runtime_assignment_unknown", "source assignment is not known to this broker");
|
|
1686
|
+
throw new BrokerHttpError(409, "runtime_assignment_unknown", "source assignment is not known to this broker", { assignment_failure_category: "reply_handle_stale" });
|
|
1687
1687
|
}
|
|
1688
1688
|
if (existingRecord &&
|
|
1689
1689
|
existingRecord.requestFingerprint !== requestFingerprint) {
|
|
@@ -1701,7 +1701,7 @@ export async function startBrokerDaemon(opts) {
|
|
|
1701
1701
|
return inFlight.task;
|
|
1702
1702
|
}
|
|
1703
1703
|
if (!assignment) {
|
|
1704
|
-
throw new BrokerHttpError(409, "runtime_assignment_unknown", "source assignment is not known to this broker");
|
|
1704
|
+
throw new BrokerHttpError(409, "runtime_assignment_unknown", "source assignment is not known to this broker", { assignment_failure_category: "reply_handle_stale" });
|
|
1705
1705
|
}
|
|
1706
1706
|
if (assignment.brokerProjectionToken === undefined) {
|
|
1707
1707
|
throw new BrokerHttpError(409, "runtime_assignment_projection_authority_missing", "runtime assignment reply requires broker projection authority");
|
|
@@ -1728,7 +1728,11 @@ export async function startBrokerDaemon(opts) {
|
|
|
1728
1728
|
};
|
|
1729
1729
|
const replyRequested = await emitRuntimeProcessingState(replyRequestedEvent);
|
|
1730
1730
|
if (!replyRequested.ok) {
|
|
1731
|
-
throw new BrokerHttpError(replyRequested.terminal ? 409 : 503, "runtime_reply_request_rejected", replyRequested.detail ?? "runtime reply request was not accepted"
|
|
1731
|
+
throw new BrokerHttpError(replyRequested.terminal ? 409 : 503, "runtime_reply_request_rejected", replyRequested.detail ?? "runtime reply request was not accepted", {
|
|
1732
|
+
...(replyRequested.assignmentFailureCategory !== undefined && {
|
|
1733
|
+
assignment_failure_category: replyRequested.assignmentFailureCategory,
|
|
1734
|
+
}),
|
|
1735
|
+
});
|
|
1732
1736
|
}
|
|
1733
1737
|
record = {
|
|
1734
1738
|
replyRequestedEvent,
|
|
@@ -1861,7 +1865,11 @@ export async function startBrokerDaemon(opts) {
|
|
|
1861
1865
|
};
|
|
1862
1866
|
const outcome = await emitRuntimeProcessingState(event);
|
|
1863
1867
|
if (!outcome.ok) {
|
|
1864
|
-
throw new BrokerHttpError(outcome.terminal ? 409 : 503, "runtime_processing_state_rejected", outcome.detail ?? "runtime processing state was not accepted"
|
|
1868
|
+
throw new BrokerHttpError(outcome.terminal ? 409 : 503, "runtime_processing_state_rejected", outcome.detail ?? "runtime processing state was not accepted", {
|
|
1869
|
+
...(outcome.assignmentFailureCategory !== undefined && {
|
|
1870
|
+
assignment_failure_category: outcome.assignmentFailureCategory,
|
|
1871
|
+
}),
|
|
1872
|
+
});
|
|
1865
1873
|
}
|
|
1866
1874
|
assignment.lastStateSequence = Math.max(assignment.lastStateSequence, body.state_sequence);
|
|
1867
1875
|
if (body.state === "adapter_accepted") {
|
|
@@ -46,6 +46,7 @@ export declare class ConnectorWS {
|
|
|
46
46
|
off<E extends ConnectorWSEvent["event"]>(event: E, listener: ListenerFor<E>): this;
|
|
47
47
|
_emitForTesting(e: ConnectorWSEvent): void;
|
|
48
48
|
private wireForwarders;
|
|
49
|
+
private emitBus;
|
|
49
50
|
}
|
|
50
51
|
export { ConnectorError };
|
|
51
52
|
//# sourceMappingURL=connector-ws.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector-ws.d.ts","sourceRoot":"","sources":["../../src/broker/connector-ws.ts"],"names":[],"mappings":"AAaA,OAAO,EAAmB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,gBAAgB,GACxB;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,qBAAqB,CAAA;CAAE,GAC7D;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GAC5C;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,GAC5D;IAAE,KAAK,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAA;CAAE,GAC1D;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,GAC5D;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,GACtB;IAAE,KAAK,EAAE,cAAc,CAAA;CAAE,GACzB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;AAEvC,KAAK,WAAW,CAAC,CAAC,SAAS,gBAAgB,CAAC,OAAO,CAAC,IAAI,CACtD,CAAC,EAAE,OAAO,CAAC,gBAAgB,EAAE;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC,KACvC,IAAI,CAAC;AAEV,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAsB;gBAE9B,IAAI,EAAE,kBAAkB;IAMpC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxB,UAAU,IAAI,IAAI;IASlB,IAAI,CACF,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,WAAW,SAAS,EACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,YAAY,CAAC;IAKxB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKlC,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKpC,iBAAiB,IAAI,MAAM,GAAG,SAAS;IAKvC,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK3D,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxD,EAAE,CAAC,CAAC,SAAS,gBAAgB,CAAC,OAAO,CAAC,EACpC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,GACvB,IAAI;IAKP,GAAG,CAAC,CAAC,SAAS,gBAAgB,CAAC,OAAO,CAAC,EACrC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,GACvB,IAAI;IAMS,eAAe,CAAC,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAI1D,OAAO,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"connector-ws.d.ts","sourceRoot":"","sources":["../../src/broker/connector-ws.ts"],"names":[],"mappings":"AAaA,OAAO,EAAmB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,gBAAgB,GACxB;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,qBAAqB,CAAA;CAAE,GAC7D;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GAC5C;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,GAC5D;IAAE,KAAK,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAA;CAAE,GAC1D;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,GAC5D;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,GACtB;IAAE,KAAK,EAAE,cAAc,CAAA;CAAE,GACzB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;AAEvC,KAAK,WAAW,CAAC,CAAC,SAAS,gBAAgB,CAAC,OAAO,CAAC,IAAI,CACtD,CAAC,EAAE,OAAO,CAAC,gBAAgB,EAAE;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC,KACvC,IAAI,CAAC;AAEV,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAsB;gBAE9B,IAAI,EAAE,kBAAkB;IAMpC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxB,UAAU,IAAI,IAAI;IASlB,IAAI,CACF,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,WAAW,SAAS,EACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,YAAY,CAAC;IAKxB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKlC,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKpC,iBAAiB,IAAI,MAAM,GAAG,SAAS;IAKvC,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK3D,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxD,EAAE,CAAC,CAAC,SAAS,gBAAgB,CAAC,OAAO,CAAC,EACpC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,GACvB,IAAI;IAKP,GAAG,CAAC,CAAC,SAAS,gBAAgB,CAAC,OAAO,CAAC,EACrC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,GACvB,IAAI;IAMS,eAAe,CAAC,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAI1D,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,OAAO;CAMhB;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -40,33 +40,39 @@ export class ConnectorWS {
|
|
|
40
40
|
return this;
|
|
41
41
|
}
|
|
42
42
|
_emitForTesting(e) {
|
|
43
|
-
this.
|
|
43
|
+
this.emitBus(e);
|
|
44
44
|
}
|
|
45
45
|
wireForwarders() {
|
|
46
46
|
this.client.on("message_received", (payload) => {
|
|
47
|
-
this.
|
|
47
|
+
this.emitBus({ event: "message_received", payload });
|
|
48
48
|
});
|
|
49
49
|
this.client.on("send_ack", (payload) => {
|
|
50
|
-
this.
|
|
50
|
+
this.emitBus({ event: "send_ack", payload });
|
|
51
51
|
});
|
|
52
52
|
this.client.on("delivery_pending", (payload) => {
|
|
53
|
-
this.
|
|
53
|
+
this.emitBus({ event: "delivery_pending", payload });
|
|
54
54
|
});
|
|
55
55
|
this.client.on("delivery_status", (payload) => {
|
|
56
|
-
this.
|
|
56
|
+
this.emitBus({ event: "delivery_status", payload });
|
|
57
57
|
});
|
|
58
58
|
this.client.on("structured_error", (payload) => {
|
|
59
|
-
this.
|
|
59
|
+
this.emitBus({ event: "structured_error", payload });
|
|
60
60
|
});
|
|
61
61
|
this.client.on("connected", () => {
|
|
62
|
-
this.
|
|
62
|
+
this.emitBus({ event: "connected" });
|
|
63
63
|
});
|
|
64
64
|
this.client.on("disconnected", () => {
|
|
65
|
-
this.
|
|
65
|
+
this.emitBus({ event: "disconnected" });
|
|
66
66
|
});
|
|
67
67
|
this.client.on("error", (err) => {
|
|
68
|
-
this.
|
|
68
|
+
this.emitBus({ event: "error", payload: err });
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
|
+
emitBus(e) {
|
|
72
|
+
if (e.event === "error" && this.bus.listenerCount("error") === 0) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
return this.bus.emit(e.event, e);
|
|
76
|
+
}
|
|
71
77
|
}
|
|
72
78
|
export { ConnectorError };
|
package/dist/broker/entry.d.ts
CHANGED
|
@@ -14,6 +14,14 @@ interface RuntimePrincipal {
|
|
|
14
14
|
}
|
|
15
15
|
export declare function resolveCredentialsFromFile(filePath: string, accountId: string, envApiHost: string | undefined): Promise<ResolvedCredentials>;
|
|
16
16
|
export declare function resolveRuntimePrincipal(apiHost: string, runtimeKey: string, fetchImpl?: typeof globalThis.fetch): Promise<RuntimePrincipal>;
|
|
17
|
+
export interface ResolveRuntimePrincipalRetryOptions {
|
|
18
|
+
attempts?: number;
|
|
19
|
+
initialDelayMs?: number;
|
|
20
|
+
maxDelayMs?: number;
|
|
21
|
+
fetchImpl?: typeof globalThis.fetch;
|
|
22
|
+
logger?: BrokerLogger;
|
|
23
|
+
}
|
|
24
|
+
export declare function resolveRuntimePrincipalWithRetry(apiHost: string, runtimeKey: string, opts?: ResolveRuntimePrincipalRetryOptions): Promise<RuntimePrincipal>;
|
|
17
25
|
export declare function buildApiPort(apiHost: string, runtimeKey: string, logger: BrokerLogger): RuntimeEndpointPort;
|
|
18
26
|
export declare function installFatalExitHandlers(logger: BrokerLogger): void;
|
|
19
27
|
export declare function main(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/broker/entry.ts"],"names":[],"mappings":"AAyFA,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;
|
|
1
|
+
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/broker/entry.ts"],"names":[],"mappings":"AAyFA,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;AAED,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IACpC,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAWD,wBAAsB,gCAAgC,CACpD,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,mCAAwC,GAC7C,OAAO,CAAC,gBAAgB,CAAC,CA4B3B;AAgCD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,YAAY,GACnB,mBAAmB,CA8IrB;AAyCD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAenE;AAED,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAqG1C"}
|
package/dist/broker/entry.js
CHANGED
|
@@ -123,6 +123,52 @@ export async function resolveRuntimePrincipal(apiHost, runtimeKey, fetchImpl = g
|
|
|
123
123
|
...(typeof raw.carrier === "string" && { carrier: raw.carrier }),
|
|
124
124
|
};
|
|
125
125
|
}
|
|
126
|
+
export async function resolveRuntimePrincipalWithRetry(apiHost, runtimeKey, opts = {}) {
|
|
127
|
+
const attempts = Math.max(1, Math.floor(opts.attempts ?? 5));
|
|
128
|
+
const initialDelayMs = Math.max(0, opts.initialDelayMs ?? 500);
|
|
129
|
+
const maxDelayMs = Math.max(initialDelayMs, opts.maxDelayMs ?? 5_000);
|
|
130
|
+
const fetchImpl = opts.fetchImpl ?? globalThis.fetch;
|
|
131
|
+
let delayMs = initialDelayMs;
|
|
132
|
+
let lastErr;
|
|
133
|
+
for (let attempt = 1; attempt <= attempts; attempt++) {
|
|
134
|
+
try {
|
|
135
|
+
return await resolveRuntimePrincipal(apiHost, runtimeKey, fetchImpl);
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
lastErr = err;
|
|
139
|
+
if (attempt >= attempts || !isRetryableRuntimePrincipalError(err)) {
|
|
140
|
+
throw err;
|
|
141
|
+
}
|
|
142
|
+
opts.logger?.warn("runtime_principal_resolve_retry", {
|
|
143
|
+
attempt,
|
|
144
|
+
next_attempt: attempt + 1,
|
|
145
|
+
delay_ms: delayMs,
|
|
146
|
+
err: err instanceof Error ? err.message : String(err),
|
|
147
|
+
});
|
|
148
|
+
if (delayMs > 0)
|
|
149
|
+
await sleep(delayMs);
|
|
150
|
+
delayMs = delayMs === 0 ? 0 : Math.min(maxDelayMs, delayMs * 2);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
throw lastErr instanceof Error ? lastErr : new Error(String(lastErr));
|
|
154
|
+
}
|
|
155
|
+
function isRetryableRuntimePrincipalError(err) {
|
|
156
|
+
if (!(err instanceof Error))
|
|
157
|
+
return false;
|
|
158
|
+
const cause = err.cause;
|
|
159
|
+
if (cause instanceof Error)
|
|
160
|
+
return true;
|
|
161
|
+
if (err.name === "TypeError" ||
|
|
162
|
+
err.name === "AbortError" ||
|
|
163
|
+
/fetch failed|network|ECONNRESET|ECONNREFUSED|ETIMEDOUT|EAI_AGAIN/i.test(err.message)) {
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
const status = /^whoami failed: (\d+)$/.exec(err.message)?.[1];
|
|
167
|
+
if (!status)
|
|
168
|
+
return false;
|
|
169
|
+
const code = Number(status);
|
|
170
|
+
return code === 408 || code === 429 || code >= 500;
|
|
171
|
+
}
|
|
126
172
|
export function buildApiPort(apiHost, runtimeKey, logger) {
|
|
127
173
|
return {
|
|
128
174
|
async register(params) {
|
|
@@ -245,7 +291,7 @@ export async function main() {
|
|
|
245
291
|
});
|
|
246
292
|
const logger = createBrokerLogger(paths.logDir);
|
|
247
293
|
installFatalExitHandlers(logger);
|
|
248
|
-
const principal = await
|
|
294
|
+
const principal = await resolveRuntimePrincipalWithRetry(creds.apiHost, creds.token, { logger });
|
|
249
295
|
logger.info("broker_entry_starting", {
|
|
250
296
|
accountId: creds.accountId,
|
|
251
297
|
subjectId: principal.subjectId,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RegisterRuntimeEndpointParams, RegisterRuntimeEndpointResponse, RuntimeClaimCandidatesParams, RuntimeClaimCandidatesResponse, RuntimeInboundRouteClaimOutcome, RuntimeSelfClaimOutcome, RuntimeSelfClaimParams, RuntimeSelfClaimReleaseParams, TransitionRuntimeEndpointStateParams, UpdateRuntimeEndpointDisplayMetadataParams } from "../runtime-endpoint-client.js";
|
|
1
|
+
import type { RegisterRuntimeEndpointParams, RegisterRuntimeEndpointResponse, RuntimeAssignmentFailureCategory, RuntimeClaimCandidatesParams, RuntimeClaimCandidatesResponse, 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";
|
|
@@ -10,6 +10,7 @@ export type EmitOutcome = {
|
|
|
10
10
|
terminal: boolean;
|
|
11
11
|
status?: number;
|
|
12
12
|
detail?: string;
|
|
13
|
+
assignmentFailureCategory?: RuntimeAssignmentFailureCategory;
|
|
13
14
|
};
|
|
14
15
|
export interface RuntimeEndpointPort {
|
|
15
16
|
register(params: RegisterRuntimeEndpointParams): Promise<RegisterRuntimeEndpointResponse>;
|
|
@@ -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,4BAA4B,EAC5B,8BAA8B,EAC9B,+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;
|
|
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,gCAAgC,EAChC,4BAA4B,EAC5B,8BAA8B,EAC9B,+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;IACE,EAAE,EAAE,KAAK,CAAC;IACV,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB,CAAC,EAAE,gCAAgC,CAAC;CAC9D,CAAC;AAEN,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;IAMpC,0BAA0B,CAAC,CACzB,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAK3C,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"}
|
|
@@ -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, WorkspaceMetadata } from "../runtime-endpoint-client.js";
|
|
6
|
+
import type { EndpointBackgroundExchangeMode, EndpointExecutionSurface, RuntimeAssignmentFailureCategory, 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;
|
|
@@ -14,6 +14,19 @@ export declare class ConnectorSendOutcomeUnknownError extends Error {
|
|
|
14
14
|
readonly retryable: false;
|
|
15
15
|
constructor(message: string);
|
|
16
16
|
}
|
|
17
|
+
export declare class RuntimeAssignmentReplyHandleStaleError extends Error {
|
|
18
|
+
readonly code: "reply_handle_stale";
|
|
19
|
+
readonly brokerCode: string;
|
|
20
|
+
readonly retryable: false;
|
|
21
|
+
constructor(message: string, brokerCode?: string);
|
|
22
|
+
}
|
|
23
|
+
export declare class RuntimeAssignmentProcessingStateError extends Error {
|
|
24
|
+
readonly code: "runtime_processing_state_rejected";
|
|
25
|
+
readonly brokerCode: string;
|
|
26
|
+
readonly assignmentFailureCategory: RuntimeAssignmentFailureCategory;
|
|
27
|
+
readonly retryable: false;
|
|
28
|
+
constructor(message: string, assignmentFailureCategory: RuntimeAssignmentFailureCategory, brokerCode?: string);
|
|
29
|
+
}
|
|
17
30
|
export interface BrokerClientDiscoverOptions {
|
|
18
31
|
accountId: string;
|
|
19
32
|
runtimeToken: string;
|
|
@@ -111,8 +124,12 @@ type Events = {
|
|
|
111
124
|
error: (err: Error) => void;
|
|
112
125
|
};
|
|
113
126
|
export declare class BrokerClient extends EventEmitter {
|
|
114
|
-
private
|
|
127
|
+
private handle;
|
|
128
|
+
private readonly discoverOptions;
|
|
115
129
|
private ws;
|
|
130
|
+
private autoRecoverEnabled;
|
|
131
|
+
private recoverInFlight;
|
|
132
|
+
private connectOptions;
|
|
116
133
|
private heartbeatInterval;
|
|
117
134
|
private heartbeatTimeout;
|
|
118
135
|
private heartbeatMisses;
|
|
@@ -126,6 +143,8 @@ export declare class BrokerClient extends EventEmitter {
|
|
|
126
143
|
private _clientKind;
|
|
127
144
|
private _clientVersion;
|
|
128
145
|
private readonly endpointOwnerTokens;
|
|
146
|
+
private readonly endpointAliases;
|
|
147
|
+
private readonly endpointRegistrations;
|
|
129
148
|
private constructor();
|
|
130
149
|
static discover(opts: BrokerClientDiscoverOptions): Promise<BrokerClient>;
|
|
131
150
|
get spawnedNew(): boolean;
|
|
@@ -135,7 +154,9 @@ export declare class BrokerClient extends EventEmitter {
|
|
|
135
154
|
get serverCapabilities(): Readonly<IpcCapabilities>;
|
|
136
155
|
get serverVersion(): string | null;
|
|
137
156
|
connect(opts: BrokerClientConnectOptions): Promise<InitializeResponseBody>;
|
|
157
|
+
private connectCurrentHandle;
|
|
138
158
|
registerEndpoint(args: RegisterEndpointArgs): Promise<RegisterEndpointOutcome>;
|
|
159
|
+
private registerEndpointOnCurrentBroker;
|
|
139
160
|
send(endpointId: string, to: string, content: string, contentType?: string, metadata?: Record<string, unknown>): Promise<{
|
|
140
161
|
messageId: string;
|
|
141
162
|
status: string;
|
|
@@ -159,7 +180,13 @@ export declare class BrokerClient extends EventEmitter {
|
|
|
159
180
|
emit<K extends keyof Events>(event: K, ...args: Parameters<Events[K]>): boolean;
|
|
160
181
|
emit(event: string | symbol, ...args: unknown[]): boolean;
|
|
161
182
|
private httpJson;
|
|
183
|
+
private recoverBrokerConnection;
|
|
184
|
+
private recoverBrokerConnectionOnce;
|
|
185
|
+
private teardownWsForRecovery;
|
|
186
|
+
private reregisterCachedEndpoints;
|
|
187
|
+
private resolveEndpointId;
|
|
162
188
|
private requireEndpointOwnerToken;
|
|
189
|
+
private emitErrorIfObserved;
|
|
163
190
|
private handleFrame;
|
|
164
191
|
private sendPushAck;
|
|
165
192
|
private startHeartbeat;
|
|
@@ -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,EACzB,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"broker-client.d.ts","sourceRoot":"","sources":["../../src/broker-client/broker-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import WebSocket from "ws";
|
|
|
3
3
|
import { resolveBrokerPaths } from "../broker/paths.js";
|
|
4
4
|
import { IPC_PROTOCOL_VERSION, } from "../broker/version-handshake.js";
|
|
5
5
|
import { PLUGIN_VERSION } from "../version.js";
|
|
6
|
-
import { discoverBroker } from "./lazy-spawn.js";
|
|
6
|
+
import { discoverBroker, } from "./lazy-spawn.js";
|
|
7
7
|
export class ConnectorUnavailableError extends Error {
|
|
8
8
|
code = "connector_unavailable";
|
|
9
9
|
retryable = true;
|
|
@@ -20,6 +20,28 @@ export class ConnectorSendOutcomeUnknownError extends Error {
|
|
|
20
20
|
this.name = "ConnectorSendOutcomeUnknownError";
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
+
export class RuntimeAssignmentReplyHandleStaleError extends Error {
|
|
24
|
+
code = "reply_handle_stale";
|
|
25
|
+
brokerCode;
|
|
26
|
+
retryable = false;
|
|
27
|
+
constructor(message, brokerCode = "runtime_assignment_unknown") {
|
|
28
|
+
super(message);
|
|
29
|
+
this.name = "RuntimeAssignmentReplyHandleStaleError";
|
|
30
|
+
this.brokerCode = brokerCode;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export class RuntimeAssignmentProcessingStateError extends Error {
|
|
34
|
+
code = "runtime_processing_state_rejected";
|
|
35
|
+
brokerCode;
|
|
36
|
+
assignmentFailureCategory;
|
|
37
|
+
retryable = false;
|
|
38
|
+
constructor(message, assignmentFailureCategory, brokerCode = "runtime_processing_state_rejected") {
|
|
39
|
+
super(message);
|
|
40
|
+
this.name = "RuntimeAssignmentProcessingStateError";
|
|
41
|
+
this.assignmentFailureCategory = assignmentFailureCategory;
|
|
42
|
+
this.brokerCode = brokerCode;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
23
45
|
function safeJsonParse(text) {
|
|
24
46
|
try {
|
|
25
47
|
return JSON.parse(text);
|
|
@@ -28,9 +50,39 @@ function safeJsonParse(text) {
|
|
|
28
50
|
return null;
|
|
29
51
|
}
|
|
30
52
|
}
|
|
53
|
+
function normalizeRuntimeAssignmentFailureCategory(category) {
|
|
54
|
+
if (category === "assignment_in_progress" ||
|
|
55
|
+
category === "target_unavailable_before_acceptance" ||
|
|
56
|
+
category === "acceptance_rejected" ||
|
|
57
|
+
category === "processing_failed_or_expired" ||
|
|
58
|
+
category === "reply_handle_stale") {
|
|
59
|
+
return category;
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
function isIpcTransportError(err) {
|
|
64
|
+
if (!(err instanceof Error))
|
|
65
|
+
return false;
|
|
66
|
+
const cause = err.cause;
|
|
67
|
+
if (cause instanceof Error) {
|
|
68
|
+
return isIpcTransportError(cause);
|
|
69
|
+
}
|
|
70
|
+
return (err.name === "TypeError" ||
|
|
71
|
+
err.name === "AbortError" ||
|
|
72
|
+
/fetch failed|ECONNRESET|ECONNREFUSED|ECONNABORTED|EPIPE|ETIMEDOUT|socket|WebSocket/i.test(err.message));
|
|
73
|
+
}
|
|
74
|
+
function cacheRegistrationArgs(args) {
|
|
75
|
+
const cached = { ...args };
|
|
76
|
+
delete cached.spawnToken;
|
|
77
|
+
return cached;
|
|
78
|
+
}
|
|
31
79
|
export class BrokerClient extends EventEmitter {
|
|
32
80
|
handle;
|
|
81
|
+
discoverOptions;
|
|
33
82
|
ws = null;
|
|
83
|
+
autoRecoverEnabled = true;
|
|
84
|
+
recoverInFlight = null;
|
|
85
|
+
connectOptions = null;
|
|
34
86
|
heartbeatInterval = null;
|
|
35
87
|
heartbeatTimeout = null;
|
|
36
88
|
heartbeatMisses = 0;
|
|
@@ -44,15 +96,18 @@ export class BrokerClient extends EventEmitter {
|
|
|
44
96
|
_clientKind = null;
|
|
45
97
|
_clientVersion = null;
|
|
46
98
|
endpointOwnerTokens = new Map();
|
|
47
|
-
|
|
99
|
+
endpointAliases = new Map();
|
|
100
|
+
endpointRegistrations = new Map();
|
|
101
|
+
constructor(handle, discoverOptions) {
|
|
48
102
|
super();
|
|
49
103
|
this.handle = handle;
|
|
104
|
+
this.discoverOptions = discoverOptions;
|
|
50
105
|
}
|
|
51
106
|
static async discover(opts) {
|
|
52
107
|
const paths = resolveBrokerPaths(opts.accountId, opts.runtimeToken, {
|
|
53
108
|
userDataDir: opts.userDataDir,
|
|
54
109
|
});
|
|
55
|
-
const
|
|
110
|
+
const discoverOptions = {
|
|
56
111
|
discoveryFile: paths.discoveryFile,
|
|
57
112
|
timeoutMs: opts.timeoutMs,
|
|
58
113
|
brokerEntry: opts.brokerEntry,
|
|
@@ -65,8 +120,9 @@ export class BrokerClient extends EventEmitter {
|
|
|
65
120
|
: {}),
|
|
66
121
|
...(opts.env ?? {}),
|
|
67
122
|
},
|
|
68
|
-
}
|
|
69
|
-
|
|
123
|
+
};
|
|
124
|
+
const handle = await discoverBroker(discoverOptions);
|
|
125
|
+
return new BrokerClient(handle, discoverOptions);
|
|
70
126
|
}
|
|
71
127
|
get spawnedNew() {
|
|
72
128
|
return this.handle.spawned;
|
|
@@ -90,6 +146,11 @@ export class BrokerClient extends EventEmitter {
|
|
|
90
146
|
if (this.ws) {
|
|
91
147
|
throw new Error("BrokerClient already connected");
|
|
92
148
|
}
|
|
149
|
+
this.autoRecoverEnabled = true;
|
|
150
|
+
this.connectOptions = { ...opts };
|
|
151
|
+
return this.connectCurrentHandle(opts, true);
|
|
152
|
+
}
|
|
153
|
+
async connectCurrentHandle(opts, allowRecover) {
|
|
93
154
|
this.pluginPid = opts.pluginPid;
|
|
94
155
|
this._clientKind = opts.clientKind;
|
|
95
156
|
this._clientVersion = opts.clientVersion;
|
|
@@ -104,12 +165,21 @@ export class BrokerClient extends EventEmitter {
|
|
|
104
165
|
.filter(([, enabled]) => enabled === true)
|
|
105
166
|
.map(([name]) => name)
|
|
106
167
|
.join(",");
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
168
|
+
let initRes;
|
|
169
|
+
try {
|
|
170
|
+
initRes = await this.httpJson("POST", "/v1/initialize", {
|
|
171
|
+
client_protocol_version: IPC_PROTOCOL_VERSION,
|
|
172
|
+
client_kind: opts.clientKind,
|
|
173
|
+
client_version: opts.clientVersion,
|
|
174
|
+
capabilities: clientCapabilities,
|
|
175
|
+
}, { allowRecover: false });
|
|
176
|
+
}
|
|
177
|
+
catch (err) {
|
|
178
|
+
if (!allowRecover || !isIpcTransportError(err))
|
|
179
|
+
throw err;
|
|
180
|
+
await this.recoverBrokerConnection("initialize_failed", false);
|
|
181
|
+
return this.connectCurrentHandle(opts, false);
|
|
182
|
+
}
|
|
113
183
|
this._sessionId = initRes.session_id;
|
|
114
184
|
this._serverCapabilities = initRes.server_capabilities;
|
|
115
185
|
this._serverVersion =
|
|
@@ -126,26 +196,59 @@ export class BrokerClient extends EventEmitter {
|
|
|
126
196
|
},
|
|
127
197
|
});
|
|
128
198
|
this.ws = ws;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
199
|
+
try {
|
|
200
|
+
await new Promise((resolve, reject) => {
|
|
201
|
+
const onOpen = () => {
|
|
202
|
+
ws.off("error", onError);
|
|
203
|
+
resolve();
|
|
204
|
+
};
|
|
205
|
+
const onError = (err) => {
|
|
206
|
+
ws.off("open", onOpen);
|
|
207
|
+
reject(err);
|
|
208
|
+
};
|
|
209
|
+
ws.once("open", onOpen);
|
|
210
|
+
ws.once("error", onError);
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
catch (err) {
|
|
214
|
+
this.ws = null;
|
|
215
|
+
try {
|
|
216
|
+
ws.close();
|
|
217
|
+
}
|
|
218
|
+
catch {
|
|
219
|
+
}
|
|
220
|
+
if (!allowRecover || !isIpcTransportError(err))
|
|
221
|
+
throw err;
|
|
222
|
+
await this.recoverBrokerConnection("stream_open_failed", false);
|
|
223
|
+
return this.connectCurrentHandle(opts, false);
|
|
224
|
+
}
|
|
225
|
+
ws.on("message", (data) => {
|
|
226
|
+
if (this.ws !== ws)
|
|
227
|
+
return;
|
|
228
|
+
this.handleFrame(data.toString());
|
|
229
|
+
});
|
|
230
|
+
ws.on("pong", () => {
|
|
231
|
+
if (this.ws !== ws)
|
|
232
|
+
return;
|
|
233
|
+
this.markHeartbeatAlive();
|
|
140
234
|
});
|
|
141
|
-
ws.on("message", (data) => this.handleFrame(data.toString()));
|
|
142
|
-
ws.on("pong", () => this.markHeartbeatAlive());
|
|
143
235
|
ws.on("close", () => {
|
|
236
|
+
if (this.ws !== ws)
|
|
237
|
+
return;
|
|
144
238
|
this.clearHeartbeat();
|
|
145
239
|
this.ws = null;
|
|
146
240
|
this.emit("disconnected");
|
|
241
|
+
setTimeout(() => {
|
|
242
|
+
if (!this.autoRecoverEnabled || this.connectOptions === null)
|
|
243
|
+
return;
|
|
244
|
+
void this.recoverBrokerConnection("stream_closed", true).catch((err) => this.emitErrorIfObserved(err instanceof Error ? err : new Error(String(err))));
|
|
245
|
+
}, 0);
|
|
246
|
+
});
|
|
247
|
+
ws.on("error", (err) => {
|
|
248
|
+
if (this.ws !== ws)
|
|
249
|
+
return;
|
|
250
|
+
this.emitErrorIfObserved(err);
|
|
147
251
|
});
|
|
148
|
-
ws.on("error", (err) => this.emit("error", err));
|
|
149
252
|
this.startHeartbeat(opts.heartbeatIntervalMs ?? 30_000);
|
|
150
253
|
return initRes;
|
|
151
254
|
}
|
|
@@ -153,6 +256,11 @@ export class BrokerClient extends EventEmitter {
|
|
|
153
256
|
if (this.pluginPid === null) {
|
|
154
257
|
throw new Error("BrokerClient.connect must be called before registerEndpoint");
|
|
155
258
|
}
|
|
259
|
+
const outcome = await this.registerEndpointOnCurrentBroker(args, true);
|
|
260
|
+
this.endpointRegistrations.set(outcome.endpoint_id, cacheRegistrationArgs(args));
|
|
261
|
+
return outcome;
|
|
262
|
+
}
|
|
263
|
+
async registerEndpointOnCurrentBroker(args, allowRecover) {
|
|
156
264
|
const outcome = await this.httpJson("POST", "/v1/endpoint/register", {
|
|
157
265
|
agent_id: args.agentId,
|
|
158
266
|
plugin_pid: this.pluginPid,
|
|
@@ -168,15 +276,16 @@ export class BrokerClient extends EventEmitter {
|
|
|
168
276
|
execution_surface: args.executionSurface,
|
|
169
277
|
background_exchange_mode: args.backgroundExchangeMode,
|
|
170
278
|
spawn_token: args.spawnToken,
|
|
171
|
-
});
|
|
279
|
+
}, { allowRecover });
|
|
172
280
|
if (typeof outcome.endpoint_owner_token === "string") {
|
|
173
281
|
this.endpointOwnerTokens.set(outcome.endpoint_id, outcome.endpoint_owner_token);
|
|
174
282
|
}
|
|
175
283
|
return outcome;
|
|
176
284
|
}
|
|
177
285
|
async send(endpointId, to, content, contentType = "text", metadata) {
|
|
286
|
+
const resolvedEndpointId = this.resolveEndpointId(endpointId);
|
|
178
287
|
return this.httpJson("POST", "/v1/send", {
|
|
179
|
-
endpoint_id:
|
|
288
|
+
endpoint_id: resolvedEndpointId,
|
|
180
289
|
to,
|
|
181
290
|
content,
|
|
182
291
|
contentType,
|
|
@@ -187,10 +296,11 @@ export class BrokerClient extends EventEmitter {
|
|
|
187
296
|
if (this.pluginPid === null) {
|
|
188
297
|
throw new Error("BrokerClient.connect must be called before sendRuntimeAssignmentReply");
|
|
189
298
|
}
|
|
299
|
+
const endpointId = this.resolveEndpointId(args.endpointId);
|
|
190
300
|
return this.httpJson("POST", "/v1/runtime/assignment-reply", {
|
|
191
|
-
endpoint_id:
|
|
301
|
+
endpoint_id: endpointId,
|
|
192
302
|
plugin_pid: this.pluginPid,
|
|
193
|
-
endpoint_owner_token: this.requireEndpointOwnerToken(
|
|
303
|
+
endpoint_owner_token: this.requireEndpointOwnerToken(endpointId),
|
|
194
304
|
source_message_id: args.sourceMessageId,
|
|
195
305
|
assignment_id: args.assignmentId,
|
|
196
306
|
reply_request_id: args.replyRequestId,
|
|
@@ -202,10 +312,11 @@ export class BrokerClient extends EventEmitter {
|
|
|
202
312
|
if (this.pluginPid === null) {
|
|
203
313
|
throw new Error("BrokerClient.connect must be called before claimRuntimeAssignment");
|
|
204
314
|
}
|
|
315
|
+
const endpointId = this.resolveEndpointId(args.endpointId);
|
|
205
316
|
return this.httpJson("POST", "/v1/runtime/assignment-claim", {
|
|
206
|
-
endpoint_id:
|
|
317
|
+
endpoint_id: endpointId,
|
|
207
318
|
plugin_pid: this.pluginPid,
|
|
208
|
-
endpoint_owner_token: this.requireEndpointOwnerToken(
|
|
319
|
+
endpoint_owner_token: this.requireEndpointOwnerToken(endpointId),
|
|
209
320
|
undispatched_id: args.undispatchedId,
|
|
210
321
|
...(args.recoverExisting === true && { recover_existing: true }),
|
|
211
322
|
});
|
|
@@ -215,7 +326,7 @@ export class BrokerClient extends EventEmitter {
|
|
|
215
326
|
throw new Error("BrokerClient.connect must be called before listUndispatched");
|
|
216
327
|
}
|
|
217
328
|
const path = args?.endpointId
|
|
218
|
-
? `/v1/undispatched?endpoint_id=${encodeURIComponent(args.endpointId)}`
|
|
329
|
+
? `/v1/undispatched?endpoint_id=${encodeURIComponent(this.resolveEndpointId(args.endpointId))}`
|
|
219
330
|
: "/v1/undispatched";
|
|
220
331
|
const res = await this.httpJson("GET", path);
|
|
221
332
|
return res.items ?? [];
|
|
@@ -224,10 +335,11 @@ export class BrokerClient extends EventEmitter {
|
|
|
224
335
|
if (this.pluginPid === null) {
|
|
225
336
|
throw new Error("BrokerClient.connect must be called before reportRuntimeProcessingState");
|
|
226
337
|
}
|
|
338
|
+
const endpointId = this.resolveEndpointId(args.endpointId);
|
|
227
339
|
await this.httpJson("POST", "/v1/runtime/processing-state", {
|
|
228
|
-
endpoint_id:
|
|
340
|
+
endpoint_id: endpointId,
|
|
229
341
|
plugin_pid: this.pluginPid,
|
|
230
|
-
endpoint_owner_token: this.requireEndpointOwnerToken(
|
|
342
|
+
endpoint_owner_token: this.requireEndpointOwnerToken(endpointId),
|
|
231
343
|
source_message_id: args.sourceMessageId,
|
|
232
344
|
assignment_id: args.assignmentId,
|
|
233
345
|
state_event_id: args.stateEventId,
|
|
@@ -243,9 +355,11 @@ export class BrokerClient extends EventEmitter {
|
|
|
243
355
|
});
|
|
244
356
|
}
|
|
245
357
|
async close(endpointId) {
|
|
358
|
+
this.autoRecoverEnabled = false;
|
|
246
359
|
if (endpointId) {
|
|
247
360
|
try {
|
|
248
|
-
|
|
361
|
+
const resolvedEndpointId = this.resolveEndpointId(endpointId);
|
|
362
|
+
await this.httpJson("DELETE", `/v1/endpoint/${encodeURIComponent(resolvedEndpointId)}`, undefined, { allowRecover: false });
|
|
249
363
|
}
|
|
250
364
|
catch {
|
|
251
365
|
}
|
|
@@ -270,22 +384,64 @@ export class BrokerClient extends EventEmitter {
|
|
|
270
384
|
emit(event, ...args) {
|
|
271
385
|
return super.emit(event, ...args);
|
|
272
386
|
}
|
|
273
|
-
async httpJson(method, path, body) {
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
387
|
+
async httpJson(method, path, body, opts = {}) {
|
|
388
|
+
let res;
|
|
389
|
+
try {
|
|
390
|
+
res = await fetch(`${this.handle.record.ipcUrl}${path}`, {
|
|
391
|
+
method,
|
|
392
|
+
headers: {
|
|
393
|
+
Authorization: `Bearer ${this.handle.record.bearerToken}`,
|
|
394
|
+
...(this.pluginPid !== null
|
|
395
|
+
? { "x-plugin-pid": String(this.pluginPid) }
|
|
396
|
+
: {}),
|
|
397
|
+
...(body ? { "Content-Type": "application/json" } : {}),
|
|
398
|
+
},
|
|
399
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
catch (err) {
|
|
403
|
+
if (opts.allowRecover !== false && isIpcTransportError(err)) {
|
|
404
|
+
await this.recoverBrokerConnection("ipc_fetch_failed", true);
|
|
405
|
+
}
|
|
406
|
+
throw err;
|
|
407
|
+
}
|
|
285
408
|
if (!res.ok) {
|
|
286
409
|
const errText = await res.text().catch(() => "");
|
|
410
|
+
const parsed = safeJsonParse(errText);
|
|
411
|
+
if (parsed !== null &&
|
|
412
|
+
typeof parsed === "object" &&
|
|
413
|
+
"error" in parsed &&
|
|
414
|
+
parsed.error ===
|
|
415
|
+
"runtime_assignment_unknown" &&
|
|
416
|
+
parsed
|
|
417
|
+
.assignment_failure_category === "reply_handle_stale") {
|
|
418
|
+
const msgField = parsed.message;
|
|
419
|
+
const msg = typeof msgField === "string"
|
|
420
|
+
? msgField
|
|
421
|
+
: "Runtime assignment reply handle is stale";
|
|
422
|
+
throw new RuntimeAssignmentReplyHandleStaleError(msg, "runtime_assignment_unknown");
|
|
423
|
+
}
|
|
424
|
+
if (parsed !== null &&
|
|
425
|
+
typeof parsed === "object" &&
|
|
426
|
+
"error" in parsed &&
|
|
427
|
+
(parsed.error ===
|
|
428
|
+
"runtime_processing_state_rejected" ||
|
|
429
|
+
parsed.error ===
|
|
430
|
+
"runtime_reply_request_rejected")) {
|
|
431
|
+
const brokerCode = parsed.error;
|
|
432
|
+
const assignmentFailureCategory = normalizeRuntimeAssignmentFailureCategory(parsed
|
|
433
|
+
.assignment_failure_category);
|
|
434
|
+
if (assignmentFailureCategory !== null) {
|
|
435
|
+
const msgField = parsed.message;
|
|
436
|
+
const msg = typeof msgField === "string"
|
|
437
|
+
? msgField
|
|
438
|
+
: "Runtime processing state was not accepted";
|
|
439
|
+
throw new RuntimeAssignmentProcessingStateError(msg, assignmentFailureCategory, typeof brokerCode === "string"
|
|
440
|
+
? brokerCode
|
|
441
|
+
: "runtime_processing_state_rejected");
|
|
442
|
+
}
|
|
443
|
+
}
|
|
287
444
|
if (res.status === 503) {
|
|
288
|
-
const parsed = safeJsonParse(errText);
|
|
289
445
|
if (parsed !== null &&
|
|
290
446
|
typeof parsed === "object" &&
|
|
291
447
|
"error" in parsed &&
|
|
@@ -310,6 +466,69 @@ export class BrokerClient extends EventEmitter {
|
|
|
310
466
|
}
|
|
311
467
|
return (await res.json());
|
|
312
468
|
}
|
|
469
|
+
async recoverBrokerConnection(reason, reconnect) {
|
|
470
|
+
if (this.recoverInFlight)
|
|
471
|
+
return this.recoverInFlight;
|
|
472
|
+
this.recoverInFlight = this.recoverBrokerConnectionOnce(reason, reconnect).finally(() => {
|
|
473
|
+
this.recoverInFlight = null;
|
|
474
|
+
});
|
|
475
|
+
return this.recoverInFlight;
|
|
476
|
+
}
|
|
477
|
+
async recoverBrokerConnectionOnce(_reason, reconnect) {
|
|
478
|
+
const previousAutoRecover = this.autoRecoverEnabled;
|
|
479
|
+
this.autoRecoverEnabled = false;
|
|
480
|
+
try {
|
|
481
|
+
this.teardownWsForRecovery();
|
|
482
|
+
const handle = await discoverBroker(this.discoverOptions);
|
|
483
|
+
this.handle = handle;
|
|
484
|
+
this._sessionId = null;
|
|
485
|
+
this._serverCapabilities = {};
|
|
486
|
+
this._serverVersion = null;
|
|
487
|
+
this._networkPresence = null;
|
|
488
|
+
this.endpointOwnerTokens.clear();
|
|
489
|
+
const connectOptions = this.connectOptions;
|
|
490
|
+
if (!reconnect || connectOptions === null)
|
|
491
|
+
return;
|
|
492
|
+
await this.connectCurrentHandle(connectOptions, false);
|
|
493
|
+
await this.reregisterCachedEndpoints();
|
|
494
|
+
}
|
|
495
|
+
finally {
|
|
496
|
+
this.autoRecoverEnabled = previousAutoRecover;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
teardownWsForRecovery() {
|
|
500
|
+
this.clearHeartbeat();
|
|
501
|
+
const ws = this.ws;
|
|
502
|
+
this.ws = null;
|
|
503
|
+
if (ws &&
|
|
504
|
+
(ws.readyState === WebSocket.OPEN ||
|
|
505
|
+
ws.readyState === WebSocket.CONNECTING)) {
|
|
506
|
+
try {
|
|
507
|
+
ws.close(1012, "broker_recover");
|
|
508
|
+
}
|
|
509
|
+
catch {
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
async reregisterCachedEndpoints() {
|
|
514
|
+
const entries = Array.from(this.endpointRegistrations.entries()).filter(([endpointId]) => this.resolveEndpointId(endpointId) === endpointId);
|
|
515
|
+
for (const [previousEndpointId, args] of entries) {
|
|
516
|
+
const outcome = await this.registerEndpointOnCurrentBroker(args, false);
|
|
517
|
+
this.endpointRegistrations.set(outcome.endpoint_id, cacheRegistrationArgs(args));
|
|
518
|
+
if (outcome.endpoint_id !== previousEndpointId) {
|
|
519
|
+
this.endpointAliases.set(previousEndpointId, outcome.endpoint_id);
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
resolveEndpointId(endpointId) {
|
|
524
|
+
let current = endpointId;
|
|
525
|
+
const seen = new Set();
|
|
526
|
+
while (this.endpointAliases.has(current) && !seen.has(current)) {
|
|
527
|
+
seen.add(current);
|
|
528
|
+
current = this.endpointAliases.get(current) ?? current;
|
|
529
|
+
}
|
|
530
|
+
return current;
|
|
531
|
+
}
|
|
313
532
|
requireEndpointOwnerToken(endpointId) {
|
|
314
533
|
const token = this.endpointOwnerTokens.get(endpointId);
|
|
315
534
|
if (!token) {
|
|
@@ -317,6 +536,11 @@ export class BrokerClient extends EventEmitter {
|
|
|
317
536
|
}
|
|
318
537
|
return token;
|
|
319
538
|
}
|
|
539
|
+
emitErrorIfObserved(err) {
|
|
540
|
+
if (this.listenerCount("error") === 0)
|
|
541
|
+
return false;
|
|
542
|
+
return this.emit("error", err);
|
|
543
|
+
}
|
|
320
544
|
handleFrame(raw) {
|
|
321
545
|
let parsed;
|
|
322
546
|
try {
|
|
@@ -5,6 +5,7 @@ type PartialRuntimeSelfClaimResponse = Omit<Partial<RuntimeSelfClaimResponse>, "
|
|
|
5
5
|
export { PlatformApiError, type PlatformClientConfig };
|
|
6
6
|
export type RuntimeKind = "claude-code" | "openclaw" | "codex" | "passport" | "custom" | (string & {});
|
|
7
7
|
export type RuntimeEndpointCapability = "remote_spawn_v1" | "background_exchange_v1" | "foreground_channel_v1" | (string & {});
|
|
8
|
+
export type RuntimeAssignmentFailureCategory = "assignment_in_progress" | "target_unavailable_before_acceptance" | "acceptance_rejected" | "processing_failed_or_expired" | "reply_handle_stale";
|
|
8
9
|
export type EndpointExecutionSurface = "owner_attached" | "headless" | (string & {});
|
|
9
10
|
export type EndpointBackgroundExchangeMode = "resident_endpoint" | "adapter_managed_turn" | (string & {});
|
|
10
11
|
export type RuntimeWorkTargetRef = {
|
|
@@ -155,6 +156,7 @@ export type EmitUndispatchedChangedOutcome = {
|
|
|
155
156
|
terminal: boolean;
|
|
156
157
|
status?: number;
|
|
157
158
|
detail?: string;
|
|
159
|
+
assignmentFailureCategory?: RuntimeAssignmentFailureCategory;
|
|
158
160
|
};
|
|
159
161
|
export type RuntimeInboundRouteClaimOutcome = {
|
|
160
162
|
ok: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-endpoint-client.d.ts","sourceRoot":"","sources":["../src/runtime-endpoint-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runtime-endpoint-client.d.ts","sourceRoot":"","sources":["../src/runtime-endpoint-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -521,24 +521,49 @@ export async function emitRuntimeProcessingState(cfg, runtimeKey, event) {
|
|
|
521
521
|
ok: false,
|
|
522
522
|
terminal: true,
|
|
523
523
|
status: res.status,
|
|
524
|
-
|
|
524
|
+
...(await readErrorInfo(res)),
|
|
525
525
|
};
|
|
526
526
|
}
|
|
527
527
|
return {
|
|
528
528
|
ok: false,
|
|
529
529
|
terminal: false,
|
|
530
530
|
status: res.status,
|
|
531
|
-
|
|
531
|
+
...(await readErrorInfo(res)),
|
|
532
532
|
};
|
|
533
533
|
}
|
|
534
|
-
|
|
534
|
+
function normalizeRuntimeAssignmentFailureCategory(category) {
|
|
535
|
+
if (category === "assignment_in_progress" ||
|
|
536
|
+
category === "target_unavailable_before_acceptance" ||
|
|
537
|
+
category === "acceptance_rejected" ||
|
|
538
|
+
category === "processing_failed_or_expired" ||
|
|
539
|
+
category === "reply_handle_stale") {
|
|
540
|
+
return category;
|
|
541
|
+
}
|
|
542
|
+
return undefined;
|
|
543
|
+
}
|
|
544
|
+
async function readErrorInfo(res) {
|
|
535
545
|
try {
|
|
536
546
|
const body = (await res.json().catch(() => null));
|
|
537
547
|
if (!body)
|
|
538
|
-
return
|
|
548
|
+
return {};
|
|
539
549
|
const code = typeof body.error === "string" ? body.error : undefined;
|
|
540
550
|
const message = typeof body.message === "string" ? body.message : undefined;
|
|
541
|
-
|
|
551
|
+
const detail = [code, message].filter(Boolean).join(": ") || undefined;
|
|
552
|
+
const assignmentFailureCategory = normalizeRuntimeAssignmentFailureCategory(body.assignment_failure_category);
|
|
553
|
+
return {
|
|
554
|
+
...(detail !== undefined && { detail }),
|
|
555
|
+
...(assignmentFailureCategory !== undefined && {
|
|
556
|
+
assignmentFailureCategory,
|
|
557
|
+
}),
|
|
558
|
+
};
|
|
559
|
+
}
|
|
560
|
+
catch {
|
|
561
|
+
return {};
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
async function readErrorDetail(res) {
|
|
565
|
+
try {
|
|
566
|
+
return (await readErrorInfo(res)).detail;
|
|
542
567
|
}
|
|
543
568
|
catch {
|
|
544
569
|
return undefined;
|
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.20";
|
|
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.20";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@masons/runtime-broker",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.20",
|
|
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)",
|