@masons/runtime-broker 0.2.0 → 0.2.1
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 +7 -0
- package/dist/broker/broker-daemon.d.ts.map +1 -1
- package/dist/broker/broker-daemon.js +223 -28
- package/dist/broker/connector-ws.d.ts +4 -0
- package/dist/broker/connector-ws.d.ts.map +1 -1
- package/dist/broker/connector-ws.js +12 -0
- package/dist/broker/delivery-cursor-file.d.ts +8 -0
- package/dist/broker/delivery-cursor-file.d.ts.map +1 -0
- package/dist/broker/delivery-cursor-file.js +71 -0
- package/dist/broker/entry.d.ts.map +1 -1
- package/dist/broker/entry.js +4 -1
- package/dist/broker/ipc-server.d.ts +2 -1
- package/dist/broker/ipc-server.d.ts.map +1 -1
- package/dist/broker/ipc-server.js +2 -1
- package/dist/broker/paths.d.ts +1 -0
- package/dist/broker/paths.d.ts.map +1 -1
- package/dist/broker/paths.js +1 -0
- package/dist/broker/reconnecting-buffer.d.ts +1 -0
- package/dist/broker/reconnecting-buffer.d.ts.map +1 -1
- package/dist/broker/runtime-endpoint-port.d.ts +2 -0
- package/dist/broker/runtime-endpoint-port.d.ts.map +1 -1
- package/dist/broker/runtime-inbound-routed-emitter.d.ts +22 -0
- package/dist/broker/runtime-inbound-routed-emitter.d.ts.map +1 -0
- package/dist/broker/runtime-inbound-routed-emitter.js +147 -0
- package/dist/broker/runtime-inbound-routed-event-types.d.ts +10 -0
- package/dist/broker/runtime-inbound-routed-event-types.d.ts.map +1 -0
- package/dist/broker/runtime-inbound-routed-event-types.js +1 -0
- package/dist/broker/undispatched-changed-event-types.d.ts +1 -0
- package/dist/broker/undispatched-changed-event-types.d.ts.map +1 -1
- package/dist/broker/undispatched-inbox.d.ts +1 -0
- package/dist/broker/undispatched-inbox.d.ts.map +1 -1
- package/dist/broker/version-handshake.js +1 -1
- package/dist/broker-client/broker-client.d.ts +1 -0
- package/dist/broker-client/broker-client.d.ts.map +1 -1
- package/dist/broker-client/broker-client.js +3 -0
- package/dist/connector-client.d.ts +5 -0
- package/dist/connector-client.d.ts.map +1 -1
- package/dist/connector-client.js +47 -5
- package/dist/runtime-endpoint-client.d.ts +4 -0
- package/dist/runtime-endpoint-client.d.ts.map +1 -1
- package/dist/runtime-endpoint-client.js +33 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +13 -12
package/dist/broker/paths.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/broker/paths.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,iBAAiB;IAEhC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAE1B,aAAa,EAAE,MAAM,CAAC;IAEtB,YAAY,EAAE,MAAM,CAAC;IAErB,MAAM,EAAE,MAAM,CAAC;IAQf,UAAU,EAAE,MAAM,CAAC;CACpB;AASD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE,iBAAsB,GAC3B,WAAW,
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/broker/paths.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,iBAAiB;IAEhC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAE1B,aAAa,EAAE,MAAM,CAAC;IAEtB,kBAAkB,EAAE,MAAM,CAAC;IAE3B,YAAY,EAAE,MAAM,CAAC;IAErB,MAAM,EAAE,MAAM,CAAC;IAQf,UAAU,EAAE,MAAM,CAAC;CACpB;AASD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE,iBAAsB,GAC3B,WAAW,CAiCb"}
|
package/dist/broker/paths.js
CHANGED
|
@@ -20,6 +20,7 @@ export function resolveBrokerPaths(principal, runtimeToken, opts = {}) {
|
|
|
20
20
|
const buffersDir = join(discoveryDir, "buffers");
|
|
21
21
|
return {
|
|
22
22
|
discoveryFile: join(discoveryDir, "discovery.json"),
|
|
23
|
+
deliveryCursorFile: join(discoveryDir, "delivery-cursor.json"),
|
|
23
24
|
discoveryDir,
|
|
24
25
|
logDir,
|
|
25
26
|
buffersDir,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconnecting-buffer.d.ts","sourceRoot":"","sources":["../../src/broker/reconnecting-buffer.ts"],"names":[],"mappings":"AA+CA,MAAM,WAAW,eAAe;IAE9B,EAAE,EAAE,MAAM,CAAC;IAEX,UAAU,EAAE,MAAM,CAAC;IAEnB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"reconnecting-buffer.d.ts","sourceRoot":"","sources":["../../src/broker/reconnecting-buffer.ts"],"names":[],"mappings":"AA+CA,MAAM,WAAW,eAAe;IAE9B,EAAE,EAAE,MAAM,CAAC;IAEX,UAAU,EAAE,MAAM,CAAC;IAEnB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IAEjC,MAAM,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAAC;IAEnC,IAAI,IAAI,eAAe,EAAE,CAAC;IAE1B,KAAK,IAAI,eAAe,EAAE,CAAC;IAE3B,MAAM,IAAI,IAAI,CAAC;IAEf,IAAI,IAAI,MAAM,CAAC;CAChB;AA8ED,MAAM,WAAW,yBAAyB;IAExC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAAC;IAErD,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,GACjB,yBAAyB,CAmB3B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { RegisterRuntimeEndpointParams, RegisterRuntimeEndpointResponse, TransitionRuntimeEndpointStateParams, UpdateRuntimeEndpointDisplayMetadataParams } from "../runtime-endpoint-client.js";
|
|
2
2
|
import type { NetworkPresenceChangedEvent } from "./network-presence-changed-event-types.js";
|
|
3
|
+
import type { RuntimeInboundRoutedEvent } from "./runtime-inbound-routed-event-types.js";
|
|
3
4
|
import type { UndispatchedChangedEvent } from "./undispatched-changed-event-types.js";
|
|
4
5
|
export type EmitOutcome = {
|
|
5
6
|
ok: true;
|
|
@@ -17,5 +18,6 @@ export interface RuntimeEndpointPort {
|
|
|
17
18
|
updateDisplayMetadata?(endpointId: string, params: UpdateRuntimeEndpointDisplayMetadataParams): Promise<void>;
|
|
18
19
|
emitUndispatchedChanged?(event: UndispatchedChangedEvent): Promise<EmitOutcome>;
|
|
19
20
|
emitNetworkPresenceChanged?(event: NetworkPresenceChangedEvent): Promise<EmitOutcome>;
|
|
21
|
+
emitRuntimeInboundRouted?(event: RuntimeInboundRoutedEvent): Promise<EmitOutcome>;
|
|
20
22
|
}
|
|
21
23
|
//# sourceMappingURL=runtime-endpoint-port.d.ts.map
|
|
@@ -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,oCAAoC,EACpC,0CAA0C,EAC3C,MAAM,+BAA+B,CAAC;AACvC,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;CACzB"}
|
|
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,oCAAoC,EACpC,0CAA0C,EAC3C,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACzF,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,yBAAyB,GAC/B,OAAO,CAAC,WAAW,CAAC,CAAC;CACzB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { BrokerLogger } from "./logger.js";
|
|
2
|
+
import type { RuntimeInboundRoutedEvent } from "./runtime-inbound-routed-event-types.js";
|
|
3
|
+
import type { EmitOutcome, RuntimeEndpointPort } from "./runtime-endpoint-port.js";
|
|
4
|
+
export declare const DEFAULT_INBOUND_ROUTED_EMITTER_CAPACITY = 1024;
|
|
5
|
+
export declare const DEFAULT_INBOUND_ROUTED_EMITTER_BACKOFF_INITIAL_MS = 500;
|
|
6
|
+
export declare const DEFAULT_INBOUND_ROUTED_EMITTER_BACKOFF_MAX_MS = 30000;
|
|
7
|
+
export declare const DEFAULT_INBOUND_ROUTED_EMITTER_MAX_RETRIES = 5;
|
|
8
|
+
export interface RuntimeInboundRoutedEmitterOptions {
|
|
9
|
+
capacity?: number;
|
|
10
|
+
backoffInitialMs?: number;
|
|
11
|
+
backoffMaxMs?: number;
|
|
12
|
+
maxRetries?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface RuntimeInboundRoutedEmitter {
|
|
15
|
+
enqueue(event: RuntimeInboundRoutedEvent): boolean;
|
|
16
|
+
size(): number;
|
|
17
|
+
capacity(): number;
|
|
18
|
+
shutdown(): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
export declare function createRuntimeInboundRoutedEmitter(post: (event: RuntimeInboundRoutedEvent) => Promise<EmitOutcome>, logger: BrokerLogger, opts?: RuntimeInboundRoutedEmitterOptions): RuntimeInboundRoutedEmitter;
|
|
21
|
+
export declare function postRuntimeInboundRoutedViaPort(apiPort: RuntimeEndpointPort): (event: RuntimeInboundRoutedEvent) => Promise<EmitOutcome>;
|
|
22
|
+
//# sourceMappingURL=runtime-inbound-routed-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-inbound-routed-emitter.d.ts","sourceRoot":"","sources":["../../src/broker/runtime-inbound-routed-emitter.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,uCAAuC,OAAO,CAAC;AAC5D,eAAO,MAAM,iDAAiD,MAAM,CAAC;AACrE,eAAO,MAAM,6CAA6C,QAAS,CAAC;AACpE,eAAO,MAAM,0CAA0C,IAAI,CAAC;AAE5D,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC;IACnD,IAAI,IAAI,MAAM,CAAC;IACf,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,OAAO,CAAC,WAAW,CAAC,EAChE,MAAM,EAAE,YAAY,EACpB,IAAI,GAAE,kCAAuC,GAC5C,2BAA2B,CAsI7B;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,mBAAmB,GAC3B,CAAC,KAAK,EAAE,yBAAyB,KAAK,OAAO,CAAC,WAAW,CAAC,CAW5D"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
export const DEFAULT_INBOUND_ROUTED_EMITTER_CAPACITY = 1024;
|
|
2
|
+
export const DEFAULT_INBOUND_ROUTED_EMITTER_BACKOFF_INITIAL_MS = 500;
|
|
3
|
+
export const DEFAULT_INBOUND_ROUTED_EMITTER_BACKOFF_MAX_MS = 30_000;
|
|
4
|
+
export const DEFAULT_INBOUND_ROUTED_EMITTER_MAX_RETRIES = 5;
|
|
5
|
+
export function createRuntimeInboundRoutedEmitter(post, logger, opts = {}) {
|
|
6
|
+
const cap = opts.capacity ?? DEFAULT_INBOUND_ROUTED_EMITTER_CAPACITY;
|
|
7
|
+
const initialBackoff = opts.backoffInitialMs ?? DEFAULT_INBOUND_ROUTED_EMITTER_BACKOFF_INITIAL_MS;
|
|
8
|
+
const maxBackoff = opts.backoffMaxMs ?? DEFAULT_INBOUND_ROUTED_EMITTER_BACKOFF_MAX_MS;
|
|
9
|
+
const maxRetries = opts.maxRetries ?? DEFAULT_INBOUND_ROUTED_EMITTER_MAX_RETRIES;
|
|
10
|
+
if (cap <= 0)
|
|
11
|
+
throw new Error(`capacity must be positive: ${cap}`);
|
|
12
|
+
if (initialBackoff <= 0)
|
|
13
|
+
throw new Error(`backoffInitialMs must be positive: ${initialBackoff}`);
|
|
14
|
+
if (maxBackoff < initialBackoff)
|
|
15
|
+
throw new Error("backoffMaxMs must be >= backoffInitialMs");
|
|
16
|
+
if (maxRetries < 0)
|
|
17
|
+
throw new Error(`maxRetries must be non-negative: ${maxRetries}`);
|
|
18
|
+
const queue = [];
|
|
19
|
+
let draining = false;
|
|
20
|
+
let stopped = false;
|
|
21
|
+
let activeDrain = null;
|
|
22
|
+
let wakeSleep = null;
|
|
23
|
+
const sleep = (ms) => new Promise((resolve) => {
|
|
24
|
+
const t = setTimeout(() => {
|
|
25
|
+
wakeSleep = null;
|
|
26
|
+
resolve();
|
|
27
|
+
}, ms);
|
|
28
|
+
t.unref?.();
|
|
29
|
+
wakeSleep = () => {
|
|
30
|
+
clearTimeout(t);
|
|
31
|
+
wakeSleep = null;
|
|
32
|
+
resolve();
|
|
33
|
+
};
|
|
34
|
+
});
|
|
35
|
+
const drain = async () => {
|
|
36
|
+
while (!stopped && queue.length > 0) {
|
|
37
|
+
const event = queue[0];
|
|
38
|
+
if (!event)
|
|
39
|
+
break;
|
|
40
|
+
let attempts = 0;
|
|
41
|
+
while (true) {
|
|
42
|
+
if (stopped)
|
|
43
|
+
return;
|
|
44
|
+
let outcome;
|
|
45
|
+
try {
|
|
46
|
+
outcome = await post(event);
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
outcome = {
|
|
50
|
+
ok: false,
|
|
51
|
+
terminal: false,
|
|
52
|
+
detail: err instanceof Error ? err.message : String(err),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
if (outcome.ok)
|
|
56
|
+
break;
|
|
57
|
+
if (outcome.terminal) {
|
|
58
|
+
logger.warn("runtime_inbound_routed_drop_terminal", {
|
|
59
|
+
source_message_id: event.source_message_id,
|
|
60
|
+
routed_to_endpoint_id: event.routed_to_endpoint_id,
|
|
61
|
+
status: outcome.status,
|
|
62
|
+
detail: outcome.detail,
|
|
63
|
+
});
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
attempts++;
|
|
67
|
+
if (attempts > maxRetries) {
|
|
68
|
+
logger.warn("runtime_inbound_routed_drop_max_retries", {
|
|
69
|
+
source_message_id: event.source_message_id,
|
|
70
|
+
routed_to_endpoint_id: event.routed_to_endpoint_id,
|
|
71
|
+
attempts,
|
|
72
|
+
status: outcome.status,
|
|
73
|
+
detail: outcome.detail,
|
|
74
|
+
});
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
const backoff = Math.min(initialBackoff * 2 ** (attempts - 1), maxBackoff);
|
|
78
|
+
logger.info("runtime_inbound_routed_retry", {
|
|
79
|
+
source_message_id: event.source_message_id,
|
|
80
|
+
routed_to_endpoint_id: event.routed_to_endpoint_id,
|
|
81
|
+
attempt: attempts,
|
|
82
|
+
backoff_ms: backoff,
|
|
83
|
+
status: outcome.status,
|
|
84
|
+
});
|
|
85
|
+
await sleep(backoff);
|
|
86
|
+
}
|
|
87
|
+
queue.shift();
|
|
88
|
+
}
|
|
89
|
+
draining = false;
|
|
90
|
+
};
|
|
91
|
+
const kick = () => {
|
|
92
|
+
if (draining || stopped)
|
|
93
|
+
return;
|
|
94
|
+
draining = true;
|
|
95
|
+
activeDrain = drain().catch((err) => {
|
|
96
|
+
logger.error("runtime_inbound_routed_drain_unexpected_error", {
|
|
97
|
+
err: err instanceof Error ? err.message : String(err),
|
|
98
|
+
});
|
|
99
|
+
draining = false;
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
return {
|
|
103
|
+
enqueue(event) {
|
|
104
|
+
if (stopped)
|
|
105
|
+
return true;
|
|
106
|
+
let evicted = false;
|
|
107
|
+
if (queue.length >= cap) {
|
|
108
|
+
const old = queue.shift();
|
|
109
|
+
if (old) {
|
|
110
|
+
logger.warn("runtime_inbound_routed_queue_overflow", {
|
|
111
|
+
dropped_source_message_id: old.source_message_id,
|
|
112
|
+
size: queue.length,
|
|
113
|
+
capacity: cap,
|
|
114
|
+
});
|
|
115
|
+
evicted = true;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
queue.push(event);
|
|
119
|
+
kick();
|
|
120
|
+
return !evicted;
|
|
121
|
+
},
|
|
122
|
+
size() {
|
|
123
|
+
return queue.length;
|
|
124
|
+
},
|
|
125
|
+
capacity() {
|
|
126
|
+
return cap;
|
|
127
|
+
},
|
|
128
|
+
async shutdown() {
|
|
129
|
+
stopped = true;
|
|
130
|
+
wakeSleep?.();
|
|
131
|
+
if (activeDrain)
|
|
132
|
+
await activeDrain.catch(() => { });
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
export function postRuntimeInboundRoutedViaPort(apiPort) {
|
|
137
|
+
return async (event) => {
|
|
138
|
+
if (!apiPort.emitRuntimeInboundRouted) {
|
|
139
|
+
return {
|
|
140
|
+
ok: false,
|
|
141
|
+
terminal: true,
|
|
142
|
+
detail: "emitRuntimeInboundRouted not implemented on this apiPort",
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
return apiPort.emitRuntimeInboundRouted(event);
|
|
146
|
+
};
|
|
147
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type RuntimeInboundRouteKind = "active_endpoint" | "reconnecting_endpoint";
|
|
2
|
+
export interface RuntimeInboundRoutedEvent {
|
|
3
|
+
type: "runtime_inbound_routed";
|
|
4
|
+
version: 1;
|
|
5
|
+
source_message_id: string;
|
|
6
|
+
routed_to_endpoint_id: string;
|
|
7
|
+
route_kind: RuntimeInboundRouteKind;
|
|
8
|
+
routed_at: number;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=runtime-inbound-routed-event-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-inbound-routed-event-types.d.ts","sourceRoot":"","sources":["../../src/broker/runtime-inbound-routed-event-types.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,uBAAuB,GAC/B,iBAAiB,GACjB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,OAAO,EAAE,CAAC,CAAC;IAIX,iBAAiB,EAAE,MAAM,CAAC;IAK1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,uBAAuB,CAAC;IAEpC,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"undispatched-changed-event-types.d.ts","sourceRoot":"","sources":["../../src/broker/undispatched-changed-event-types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"undispatched-changed-event-types.d.ts","sourceRoot":"","sources":["../../src/broker/undispatched-changed-event-types.ts"],"names":[],"mappings":"AAiCA,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAMjD,MAAM,MAAM,kBAAkB,GAC1B,oBAAoB,GACpB,6BAA6B,CAAC;AAOlC,MAAM,MAAM,wBAAwB,GAWlC,2CAA2C,CAAC;AAG9C,UAAU,4BAA4B;IACpC,IAAI,EAAE,sBAAsB,CAAC;IAG7B,OAAO,EAAE,CAAC,CAAC;IAEX,eAAe,EAAE,MAAM,CAAC;IAKxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAGD,MAAM,WAAW,oBAAqB,SAAQ,4BAA4B;IACxE,MAAM,EAAE,KAAK,CAAC;IAEd,cAAc,EAAE,MAAM,CAAC;IASvB,eAAe,EAAE,MAAM,CAAC;IAExB,MAAM,EAAE,kBAAkB,CAAC;IAO3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAMjC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,yBACf,SAAQ,4BAA4B;IACpC,MAAM,EAAE,UAAU,CAAC;IAQnB,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAID,MAAM,WAAW,uBAAwB,SAAQ,4BAA4B;IAC3E,MAAM,EAAE,QAAQ,CAAC;IACjB,aAAa,EAAE,wBAAwB,CAAC;CACzC;AAED,MAAM,MAAM,wBAAwB,GAChC,oBAAoB,GACpB,yBAAyB,GACzB,uBAAuB,CAAC;AAqB5B,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,CAAC,GAAE,MAAuC,GACzC,MAAM,CAYR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"undispatched-inbox.d.ts","sourceRoot":"","sources":["../../src/broker/undispatched-inbox.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"undispatched-inbox.d.ts","sourceRoot":"","sources":["../../src/broker/undispatched-inbox.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IAEX,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAMlC,MAAM,EAAE,aAAa,GAAG,6BAA6B,CAAC;IAEtD,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAErC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAMhC,MAAM,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC;IAE1C,IAAI,IAAI,mBAAmB,EAAE,CAAC;IAE9B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAAC;IAKjD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAAC;IAElD,IAAI,IAAI,MAAM,CAAC;IAEf,QAAQ,IAAI,MAAM,CAAC;IAEnB,eAAe,IAAI,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,uBAAuB,CACrC,IAAI,GAAE,wBAA6B,GAClC,iBAAiB,CAkDnB"}
|
|
@@ -2,7 +2,7 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
export const IPC_PROTOCOL_VERSION = "1.0";
|
|
3
3
|
export const SERVER_CAPABILITIES = Object.freeze({
|
|
4
4
|
endpoint_metadata_v1: true,
|
|
5
|
-
remote_spawn_v1:
|
|
5
|
+
remote_spawn_v1: true,
|
|
6
6
|
undispatched_inbox_v1: false,
|
|
7
7
|
});
|
|
8
8
|
export function handleInitialize(req, ctx) {
|
|
@@ -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,EACL,KAAK,sBAAsB,EAE5B,MAAM,gCAAgC,CAAC;AAexC,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,IAAI,EAAG,uBAAuB,CAAU;IACjD,QAAQ,CAAC,SAAS,EAAG,IAAI,CAAU;gBACvB,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;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAQlB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"broker-client.d.ts","sourceRoot":"","sources":["../../src/broker-client/broker-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -197,6 +197,9 @@ export class BrokerClient extends EventEmitter {
|
|
|
197
197
|
content: msg.content,
|
|
198
198
|
contentType: msg.contentType,
|
|
199
199
|
metadata: msg.metadata,
|
|
200
|
+
...(msg.sourceMessageId !== undefined && {
|
|
201
|
+
sourceMessageId: msg.sourceMessageId,
|
|
202
|
+
}),
|
|
200
203
|
});
|
|
201
204
|
return;
|
|
202
205
|
}
|
|
@@ -27,6 +27,7 @@ export declare class ConnectorClient extends EventEmitter {
|
|
|
27
27
|
private registerReject;
|
|
28
28
|
private registerTimer;
|
|
29
29
|
private lastKnownSeq;
|
|
30
|
+
private readonly acceptedDeliveryGaps;
|
|
30
31
|
private pendingSends;
|
|
31
32
|
constructor(url: string, token: string);
|
|
32
33
|
connect(): Promise<void>;
|
|
@@ -34,6 +35,10 @@ export declare class ConnectorClient extends EventEmitter {
|
|
|
34
35
|
send(to: string, content: string, contentType?: string, metadata?: Record<string, unknown>): Promise<SendAckEvent>;
|
|
35
36
|
sendTyping(to: string, isTyping: boolean): boolean;
|
|
36
37
|
ackDelivery(upTo: string): boolean;
|
|
38
|
+
setDeliveryCursor(seq: number): void;
|
|
39
|
+
getDeliveryCursor(): number | undefined;
|
|
40
|
+
prepareDeliverySeqAccepted(seq: number): number | undefined;
|
|
41
|
+
markDeliverySeqAccepted(seq: number): number | undefined;
|
|
37
42
|
on<K extends keyof ConnectorClientEvents>(event: K, listener: ConnectorClientEvents[K]): this;
|
|
38
43
|
on(event: string | symbol, listener: (...args: unknown[]) => void): this;
|
|
39
44
|
once<K extends keyof ConnectorClientEvents>(event: K, listener: ConnectorClientEvents[K]): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector-client.d.ts","sourceRoot":"","sources":["../src/connector-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EAEL,KAAK,qBAAqB,EAI1B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EAWxB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EAC1B,MAAM,YAAY,CAAC;AA0BpB,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;gBACT,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM;CAMvD;AAID,KAAK,qBAAqB,GAAG;IAC3B,gBAAgB,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,gBAAgB,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACxD,eAAe,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACtD,gBAAgB,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACxD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAIF,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAE/B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,uBAAuB,CAAK;IACpC,OAAO,CAAC,cAAc,CAA8C;IAEpE,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,aAAa,CAA8C;
|
|
1
|
+
{"version":3,"file":"connector-client.d.ts","sourceRoot":"","sources":["../src/connector-client.ts"],"names":[],"mappings":"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"}
|
package/dist/connector-client.js
CHANGED
|
@@ -35,6 +35,7 @@ export class ConnectorClient extends EventEmitter {
|
|
|
35
35
|
registerReject = null;
|
|
36
36
|
registerTimer = null;
|
|
37
37
|
lastKnownSeq;
|
|
38
|
+
acceptedDeliveryGaps = new Set();
|
|
38
39
|
pendingSends = new Map();
|
|
39
40
|
constructor(url, token) {
|
|
40
41
|
super();
|
|
@@ -97,6 +98,50 @@ export class ConnectorClient extends EventEmitter {
|
|
|
97
98
|
dbg("ackDelivery upTo=%s sent=%s", upTo, sent);
|
|
98
99
|
return sent;
|
|
99
100
|
}
|
|
101
|
+
setDeliveryCursor(seq) {
|
|
102
|
+
if (!Number.isInteger(seq) || seq < 0) {
|
|
103
|
+
throw new Error(`delivery cursor must be a non-negative integer: ${seq}`);
|
|
104
|
+
}
|
|
105
|
+
this.lastKnownSeq = seq;
|
|
106
|
+
for (const accepted of [...this.acceptedDeliveryGaps]) {
|
|
107
|
+
if (accepted <= seq)
|
|
108
|
+
this.acceptedDeliveryGaps.delete(accepted);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
getDeliveryCursor() {
|
|
112
|
+
return this.lastKnownSeq;
|
|
113
|
+
}
|
|
114
|
+
prepareDeliverySeqAccepted(seq) {
|
|
115
|
+
if (!Number.isInteger(seq) || seq < 0)
|
|
116
|
+
return this.lastKnownSeq;
|
|
117
|
+
const floor = this.lastKnownSeq ?? 0;
|
|
118
|
+
if (seq <= floor)
|
|
119
|
+
return this.lastKnownSeq;
|
|
120
|
+
const pending = new Set(this.acceptedDeliveryGaps);
|
|
121
|
+
pending.add(seq);
|
|
122
|
+
let cursor = this.lastKnownSeq;
|
|
123
|
+
let next = floor + 1;
|
|
124
|
+
while (pending.has(next)) {
|
|
125
|
+
cursor = next;
|
|
126
|
+
next++;
|
|
127
|
+
}
|
|
128
|
+
return cursor;
|
|
129
|
+
}
|
|
130
|
+
markDeliverySeqAccepted(seq) {
|
|
131
|
+
if (!Number.isInteger(seq) || seq < 0)
|
|
132
|
+
return this.lastKnownSeq;
|
|
133
|
+
const floor = this.lastKnownSeq ?? 0;
|
|
134
|
+
if (seq <= floor)
|
|
135
|
+
return this.lastKnownSeq;
|
|
136
|
+
this.acceptedDeliveryGaps.add(seq);
|
|
137
|
+
let next = floor + 1;
|
|
138
|
+
while (this.acceptedDeliveryGaps.has(next)) {
|
|
139
|
+
this.acceptedDeliveryGaps.delete(next);
|
|
140
|
+
this.lastKnownSeq = next;
|
|
141
|
+
next++;
|
|
142
|
+
}
|
|
143
|
+
return this.lastKnownSeq;
|
|
144
|
+
}
|
|
100
145
|
on(event, listener) {
|
|
101
146
|
return super.on(event, listener);
|
|
102
147
|
}
|
|
@@ -130,6 +175,7 @@ export class ConnectorClient extends EventEmitter {
|
|
|
130
175
|
token: this.token,
|
|
131
176
|
protocolVersion: CURRENT_PROTOCOL_VERSION,
|
|
132
177
|
clientVersion: PLUGIN_VERSION,
|
|
178
|
+
clientKind: "runtime-broker",
|
|
133
179
|
...(this.lastKnownSeq !== undefined
|
|
134
180
|
? { lastKnownSeq: this.lastKnownSeq }
|
|
135
181
|
: {}),
|
|
@@ -188,10 +234,6 @@ export class ConnectorClient extends EventEmitter {
|
|
|
188
234
|
}
|
|
189
235
|
if (isAddressedMessage(parsed)) {
|
|
190
236
|
dbgMsg("MESSAGE_RECEIVED from=%s contentLength=%d seq=%s", parsed.from, parsed.content.length, parsed.seq ?? "none");
|
|
191
|
-
if (typeof parsed.seq === "number" &&
|
|
192
|
-
(this.lastKnownSeq === undefined || parsed.seq > this.lastKnownSeq)) {
|
|
193
|
-
this.lastKnownSeq = parsed.seq;
|
|
194
|
-
}
|
|
195
237
|
this.emit("message_received", parsed);
|
|
196
238
|
return;
|
|
197
239
|
}
|
|
@@ -220,7 +262,7 @@ export class ConnectorClient extends EventEmitter {
|
|
|
220
262
|
setEnvironmentContext(ack.agent, ack.owner);
|
|
221
263
|
if (typeof ack.deliverySeq === "number" &&
|
|
222
264
|
this.lastKnownSeq === undefined) {
|
|
223
|
-
this.
|
|
265
|
+
this.setDeliveryCursor(ack.deliverySeq);
|
|
224
266
|
dbg("delivery cursor initialized: %d", ack.deliverySeq);
|
|
225
267
|
}
|
|
226
268
|
this.backoffMs = BACKOFF_INITIAL_MS;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PlatformApiError, type PlatformClientConfig } from "./platform-client.js";
|
|
2
2
|
export { PlatformApiError, type PlatformClientConfig };
|
|
3
3
|
export type RuntimeKind = "claude-code" | "openclaw" | "codex" | "passport" | "custom" | (string & {});
|
|
4
|
+
export type RuntimeEndpointCapability = "remote_spawn_v1" | (string & {});
|
|
4
5
|
export interface WorkspaceMetadata {
|
|
5
6
|
root: string;
|
|
6
7
|
cwd: string;
|
|
@@ -18,6 +19,7 @@ export interface RegisterRuntimeEndpointParams {
|
|
|
18
19
|
task_hint?: string;
|
|
19
20
|
workspace?: WorkspaceMetadata;
|
|
20
21
|
tracking_ref?: string;
|
|
22
|
+
runtime_capabilities?: RuntimeEndpointCapability[];
|
|
21
23
|
share_with_peer?: ShareWithPeerField[];
|
|
22
24
|
}
|
|
23
25
|
export interface RegisterRuntimeEndpointResponse {
|
|
@@ -41,6 +43,7 @@ export interface OwnedRuntimeEndpointView {
|
|
|
41
43
|
fingerprint?: {
|
|
42
44
|
workspace_hash_per_peer?: Record<string, string>;
|
|
43
45
|
};
|
|
46
|
+
runtime_capabilities?: RuntimeEndpointCapability[];
|
|
44
47
|
registered_at: string;
|
|
45
48
|
retired_at?: string;
|
|
46
49
|
is_self: boolean;
|
|
@@ -78,4 +81,5 @@ export type EmitUndispatchedChangedOutcome = {
|
|
|
78
81
|
detail?: string;
|
|
79
82
|
};
|
|
80
83
|
export declare function emitRuntimeNetworkPresenceChanged(cfg: PlatformClientConfig, runtimeKey: string, event: Readonly<Record<string, unknown>>): Promise<EmitUndispatchedChangedOutcome>;
|
|
84
|
+
export declare function emitRuntimeInboundRouted(cfg: PlatformClientConfig, runtimeKey: string, event: Readonly<Record<string, unknown>>): Promise<EmitUndispatchedChangedOutcome>;
|
|
81
85
|
//# sourceMappingURL=runtime-endpoint-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-endpoint-client.d.ts","sourceRoot":"","sources":["../src/runtime-endpoint-client.ts"],"names":[],"mappings":"AAuBA,OAAO,EACL,gBAAgB,EAChB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,CAAC;AAmBvD,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,UAAU,GACV,OAAO,GACP,UAAU,GACV,QAAQ,GACR,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-endpoint-client.d.ts","sourceRoot":"","sources":["../src/runtime-endpoint-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -157,6 +157,39 @@ export async function emitRuntimeNetworkPresenceChanged(cfg, runtimeKey, event)
|
|
|
157
157
|
detail: await readErrorDetail(res),
|
|
158
158
|
};
|
|
159
159
|
}
|
|
160
|
+
export async function emitRuntimeInboundRouted(cfg, runtimeKey, event) {
|
|
161
|
+
let res;
|
|
162
|
+
try {
|
|
163
|
+
res = await fetch(`${baseUrl(cfg)}/runtime/inbound-routed`, {
|
|
164
|
+
method: "POST",
|
|
165
|
+
headers: jsonHeaders(runtimeKey),
|
|
166
|
+
body: JSON.stringify(event),
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
catch (err) {
|
|
170
|
+
return {
|
|
171
|
+
ok: false,
|
|
172
|
+
terminal: false,
|
|
173
|
+
detail: err instanceof Error ? err.message : String(err),
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
if (res.status === 204)
|
|
177
|
+
return { ok: true };
|
|
178
|
+
if (res.status === 401 || res.status === 422) {
|
|
179
|
+
return {
|
|
180
|
+
ok: false,
|
|
181
|
+
terminal: true,
|
|
182
|
+
status: res.status,
|
|
183
|
+
detail: await readErrorDetail(res),
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
return {
|
|
187
|
+
ok: false,
|
|
188
|
+
terminal: false,
|
|
189
|
+
status: res.status,
|
|
190
|
+
detail: await readErrorDetail(res),
|
|
191
|
+
};
|
|
192
|
+
}
|
|
160
193
|
async function readErrorDetail(res) {
|
|
161
194
|
try {
|
|
162
195
|
const body = (await res.json().catch(() => null));
|
package/dist/types.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export interface RegisterEvent {
|
|
|
6
6
|
token: string;
|
|
7
7
|
protocolVersion: number;
|
|
8
8
|
clientVersion?: string;
|
|
9
|
+
clientKind?: "runtime-broker";
|
|
9
10
|
lastKnownSeq?: number;
|
|
10
11
|
}
|
|
11
12
|
export interface AddressedSendEvent {
|
|
@@ -47,6 +48,7 @@ export interface SendAckEvent {
|
|
|
47
48
|
}
|
|
48
49
|
export interface AddressedMessageEvent {
|
|
49
50
|
event: "MESSAGE_RECEIVED";
|
|
51
|
+
messageId?: string;
|
|
50
52
|
from: string;
|
|
51
53
|
content: string;
|
|
52
54
|
contentType: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAC9C,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAQ1C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -15,6 +15,7 @@ export function isSendAck(data) {
|
|
|
15
15
|
export function isAddressedMessage(data) {
|
|
16
16
|
return (isObject(data) &&
|
|
17
17
|
data.event === "MESSAGE_RECEIVED" &&
|
|
18
|
+
(data.messageId === undefined || typeof data.messageId === "string") &&
|
|
18
19
|
typeof data.from === "string" &&
|
|
19
20
|
typeof data.content === "string");
|
|
20
21
|
}
|
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.1";
|
|
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.1";
|