@moxt-ai/mobius 0.0.25 → 0.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +466 -173
- package/dist/cli.js.map +4 -4
- package/dist/index.js +465 -172
- package/dist/index.js.map +4 -4
- package/dist/network/environment-proxy.d.ts +1 -0
- package/dist/network/environment-proxy.d.ts.map +1 -1
- package/dist/network/environment-proxy.js +47 -0
- package/dist/network/environment-proxy.js.map +1 -1
- package/dist/relay-connection/connect.d.ts.map +1 -1
- package/dist/relay-connection/connect.js +16 -8
- package/dist/relay-connection/connect.js.map +1 -1
- package/dist/relay-connection/diagnostics.d.ts +11 -0
- package/dist/relay-connection/diagnostics.d.ts.map +1 -0
- package/dist/relay-connection/diagnostics.js +122 -0
- package/dist/relay-connection/diagnostics.js.map +1 -0
- package/dist/relay-connection/liveness.d.ts +1 -1
- package/dist/relay-connection/liveness.d.ts.map +1 -1
- package/dist/relay-connection/liveness.js +2 -1
- package/dist/relay-connection/liveness.js.map +1 -1
- package/dist/relay-connection/session-event-outbox.d.ts +2 -1
- package/dist/relay-connection/session-event-outbox.d.ts.map +1 -1
- package/dist/relay-connection/session-event-outbox.js +48 -8
- package/dist/relay-connection/session-event-outbox.js.map +1 -1
- package/dist/run-daemon.d.ts.map +1 -1
- package/dist/run-daemon.js +182 -146
- package/dist/run-daemon.js.map +1 -1
- package/dist/runtime.js +465 -172
- package/dist/runtime.js.map +4 -4
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-proxy.d.ts","sourceRoot":"","sources":["../../src/network/environment-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"environment-proxy.d.ts","sourceRoot":"","sources":["../../src/network/environment-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAK3C,eAAO,MAAM,0BAA0B,mBAA0B,CAAC;AAmClE,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAa3F"}
|
|
@@ -1,3 +1,50 @@
|
|
|
1
1
|
import { EnvHttpProxyAgent } from "undici";
|
|
2
|
+
const configuredHttpProxy = process.env["http_proxy"] ?? process.env["HTTP_PROXY"] ?? "";
|
|
3
|
+
const configuredHttpsProxy = process.env["https_proxy"] ?? process.env["HTTPS_PROXY"] ?? configuredHttpProxy;
|
|
2
4
|
export const environmentProxyDispatcher = new EnvHttpProxyAgent();
|
|
5
|
+
function bypassesProxy(target) {
|
|
6
|
+
const noProxy = process.env["no_proxy"] ?? process.env["NO_PROXY"] ?? "";
|
|
7
|
+
if (noProxy === "*") {
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
const hostname = target.hostname.replace(/^\[|\]$/gu, "").toLowerCase();
|
|
11
|
+
const defaultPort = target.protocol === "wss:" || target.protocol === "https:" ? 443 : 80;
|
|
12
|
+
const port = Number.parseInt(target.port, 10) || defaultPort;
|
|
13
|
+
for (const rawEntry of noProxy.split(/[,\s]/u)) {
|
|
14
|
+
if (rawEntry.length === 0) {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
const parsed = rawEntry.match(/^(.+):(\d+)$/u);
|
|
18
|
+
const entryHostname = (parsed?.[1] ?? rawEntry).replace(/^\*?\./u, "").toLowerCase();
|
|
19
|
+
const entryPort = parsed?.[2] === undefined ? 0 : Number.parseInt(parsed[2], 10);
|
|
20
|
+
if (entryPort !== 0 && entryPort !== port) {
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
if (hostname === entryHostname || hostname.endsWith(`.${entryHostname}`)) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
function sanitizedProxyOrigin(proxyUrl) {
|
|
30
|
+
try {
|
|
31
|
+
return new URL(proxyUrl).origin;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return "configured-invalid-url";
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export function describeEnvironmentProxyRoute(target) {
|
|
38
|
+
if (bypassesProxy(target)) {
|
|
39
|
+
return { proxyRoute: "direct" };
|
|
40
|
+
}
|
|
41
|
+
const proxyUrl = target.protocol === "wss:" || target.protocol === "https:" ? configuredHttpsProxy : configuredHttpProxy;
|
|
42
|
+
if (proxyUrl.length === 0) {
|
|
43
|
+
return { proxyRoute: "direct" };
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
proxyOrigin: sanitizedProxyOrigin(proxyUrl),
|
|
47
|
+
proxyRoute: "proxy",
|
|
48
|
+
};
|
|
49
|
+
}
|
|
3
50
|
//# sourceMappingURL=environment-proxy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-proxy.js","sourceRoot":"","sources":["../../src/network/environment-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"environment-proxy.js","sourceRoot":"","sources":["../../src/network/environment-proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/relay-connection/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/relay-connection/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAuBnC,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CA0F9E"}
|
|
@@ -3,9 +3,11 @@ import { environmentProxyDispatcher } from "../network/environment-proxy.js";
|
|
|
3
3
|
const CONNECTION_TIMEOUT_MILLISECONDS = 15_000;
|
|
4
4
|
class RelayConnectionError extends Error {
|
|
5
5
|
code;
|
|
6
|
-
|
|
6
|
+
diagnosticDetails;
|
|
7
|
+
constructor(code, message, diagnosticDetails = {}, options = {}) {
|
|
7
8
|
super(message, options);
|
|
8
9
|
this.code = code;
|
|
10
|
+
this.diagnosticDetails = diagnosticDetails;
|
|
9
11
|
this.name = "RelayConnectionError";
|
|
10
12
|
}
|
|
11
13
|
}
|
|
@@ -43,14 +45,18 @@ export function connectRelay(url, signal) {
|
|
|
43
45
|
};
|
|
44
46
|
const onAbort = () => {
|
|
45
47
|
fail(new RelayConnectionError("relay_connection_cancelled", "Relay connection was cancelled", {
|
|
46
|
-
|
|
47
|
-
}));
|
|
48
|
+
cancellation: "requested",
|
|
49
|
+
}, { cause: signal.reason }));
|
|
48
50
|
};
|
|
49
|
-
const onClose = () => {
|
|
50
|
-
fail(new RelayConnectionError("relay_connection_closed", "Relay connection closed before it was ready"
|
|
51
|
+
const onClose = (event) => {
|
|
52
|
+
fail(new RelayConnectionError("relay_connection_closed", "Relay connection closed before it was ready", {
|
|
53
|
+
closeCode: event.code.toString(),
|
|
54
|
+
closeReason: event.reason,
|
|
55
|
+
}));
|
|
51
56
|
};
|
|
52
|
-
const onError = () => {
|
|
53
|
-
|
|
57
|
+
const onError = (event) => {
|
|
58
|
+
const cause = Reflect.get(event, "error");
|
|
59
|
+
fail(new RelayConnectionError("relay_connection_failed", "Relay connection failed", {}, { cause: cause ?? event }));
|
|
54
60
|
};
|
|
55
61
|
const onOpen = () => {
|
|
56
62
|
if (finished) {
|
|
@@ -61,7 +67,9 @@ export function connectRelay(url, signal) {
|
|
|
61
67
|
resolve(socket);
|
|
62
68
|
};
|
|
63
69
|
function onTimeout() {
|
|
64
|
-
fail(new RelayConnectionError("relay_connection_timeout", "Relay connection timed out"
|
|
70
|
+
fail(new RelayConnectionError("relay_connection_timeout", "Relay connection timed out", {
|
|
71
|
+
timeoutMilliseconds: CONNECTION_TIMEOUT_MILLISECONDS.toString(),
|
|
72
|
+
}));
|
|
65
73
|
}
|
|
66
74
|
signal.addEventListener("abort", onAbort, { once: true });
|
|
67
75
|
socket.addEventListener("close", onClose, { once: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/relay-connection/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,MAAM,+BAA+B,GAAG,MAAM,CAAC;AAE/C,MAAM,oBAAqB,SAAQ,KAAK;IAC3B,IAAI,CAAS;
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/relay-connection/connect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AuditStore } from "../audit/audit-store.ts";
|
|
2
|
+
export declare class RelayConnectionDiagnostics {
|
|
3
|
+
#private;
|
|
4
|
+
constructor(audit: AuditStore, channelId: string, relayUrl: URL);
|
|
5
|
+
readonly catalogFailed: (failure: unknown) => void;
|
|
6
|
+
readonly connectionClosed: (connectionEpoch: number, code: number, reason: string, source: string) => void;
|
|
7
|
+
readonly connectionFailed: (connectionEpoch: number, failure: unknown, source: string) => void;
|
|
8
|
+
readonly connectionOpened: (connectionEpoch: number) => void;
|
|
9
|
+
readonly heartbeatTimedOut: (connectionEpoch: number, heartbeatId: string, timeoutMilliseconds: number) => void;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/relay-connection/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAgD1D,qBAAa,0BAA0B;;IAQnC,YAAY,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAK9D;IAED,QAAQ,CAAC,aAAa,YAAa,OAAO,KAAG,IAAI,CAI/C;IAEF,QAAQ,CAAC,gBAAgB,oBAAqB,MAAM,QAAQ,MAAM,UAAU,MAAM,UAAU,MAAM,KAAG,IAAI,CAkBvG;IAEF,QAAQ,CAAC,gBAAgB,oBAAqB,MAAM,WAAW,OAAO,UAAU,MAAM,KAAG,IAAI,CAa3F;IAEF,QAAQ,CAAC,gBAAgB,oBAAqB,MAAM,KAAG,IAAI,CAWzD;IAEF,QAAQ,CAAC,iBAAiB,oBAAqB,MAAM,eAAe,MAAM,uBAAuB,MAAM,KAAG,IAAI,CAa5G;CAqBL"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { describeEnvironmentProxyRoute } from "../network/environment-proxy.js";
|
|
2
|
+
const MAX_DIAGNOSTIC_TEXT_LENGTH = 256;
|
|
3
|
+
function sanitizeDiagnosticText(value) {
|
|
4
|
+
const printable = Array.from(value, (character) => {
|
|
5
|
+
const code = character.charCodeAt(0);
|
|
6
|
+
return code < 32 || code === 127 ? " " : character;
|
|
7
|
+
}).join("");
|
|
8
|
+
const withoutSecrets = printable
|
|
9
|
+
.replace(/([?&](?:access_token|authorization|credential|key|secret|token)=)[^&\s]*/giu, "$1[redacted]")
|
|
10
|
+
.replace(/(?:https?|wss?):\/\/[^\s)]+/giu, (encodedUrl) => {
|
|
11
|
+
try {
|
|
12
|
+
return new URL(encodedUrl).origin;
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return "[redacted-url]";
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
return withoutSecrets.slice(0, MAX_DIAGNOSTIC_TEXT_LENGTH);
|
|
19
|
+
}
|
|
20
|
+
function addFailureDetails(details, failure) {
|
|
21
|
+
let current = failure;
|
|
22
|
+
for (let depth = 0; depth < 3 && current instanceof Error; depth += 1) {
|
|
23
|
+
const prefix = depth === 0 ? "failure" : `cause${depth.toString()}`;
|
|
24
|
+
details[`${prefix}Name`] = current.name;
|
|
25
|
+
details[`${prefix}Message`] = sanitizeDiagnosticText(current.message);
|
|
26
|
+
const code = Reflect.get(current, "code");
|
|
27
|
+
if (typeof code === "string" || typeof code === "number") {
|
|
28
|
+
details[`${prefix}Code`] = String(code);
|
|
29
|
+
}
|
|
30
|
+
const statusCode = Reflect.get(current, "statusCode");
|
|
31
|
+
if (typeof statusCode === "string" || typeof statusCode === "number") {
|
|
32
|
+
details[`${prefix}StatusCode`] = String(statusCode);
|
|
33
|
+
}
|
|
34
|
+
const diagnosticDetails = Reflect.get(current, "diagnosticDetails");
|
|
35
|
+
if (typeof diagnosticDetails === "object" && diagnosticDetails !== null) {
|
|
36
|
+
for (const [key, value] of Object.entries(diagnosticDetails)) {
|
|
37
|
+
if (typeof value === "string") {
|
|
38
|
+
details[key] = sanitizeDiagnosticText(value);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
current = current.cause;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export class RelayConnectionDiagnostics {
|
|
46
|
+
#audit;
|
|
47
|
+
#channelId;
|
|
48
|
+
#lastClosedEpoch = 0;
|
|
49
|
+
#lastFailedEpoch = 0;
|
|
50
|
+
#relayOrigin;
|
|
51
|
+
#route;
|
|
52
|
+
constructor(audit, channelId, relayUrl) {
|
|
53
|
+
this.#audit = audit;
|
|
54
|
+
this.#channelId = channelId;
|
|
55
|
+
this.#relayOrigin = relayUrl.origin;
|
|
56
|
+
this.#route = describeEnvironmentProxyRoute(relayUrl);
|
|
57
|
+
}
|
|
58
|
+
catalogFailed = (failure) => {
|
|
59
|
+
const details = { ...this.#route, relayOrigin: this.#relayOrigin };
|
|
60
|
+
addFailureDetails(details, failure);
|
|
61
|
+
this.#record("agent_catalog_publish_failed", "catalog", details, true);
|
|
62
|
+
};
|
|
63
|
+
connectionClosed = (connectionEpoch, code, reason, source) => {
|
|
64
|
+
if (this.#lastClosedEpoch === connectionEpoch) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
this.#lastClosedEpoch = connectionEpoch;
|
|
68
|
+
this.#record("relay_connection_closed", connectionEpoch.toString(), {
|
|
69
|
+
closeCode: code.toString(),
|
|
70
|
+
closeReason: sanitizeDiagnosticText(reason),
|
|
71
|
+
connectionEpoch: connectionEpoch.toString(),
|
|
72
|
+
relayOrigin: this.#relayOrigin,
|
|
73
|
+
source,
|
|
74
|
+
...this.#route,
|
|
75
|
+
}, true);
|
|
76
|
+
};
|
|
77
|
+
connectionFailed = (connectionEpoch, failure, source) => {
|
|
78
|
+
if (this.#lastFailedEpoch === connectionEpoch) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
this.#lastFailedEpoch = connectionEpoch;
|
|
82
|
+
const details = {
|
|
83
|
+
connectionEpoch: connectionEpoch.toString(),
|
|
84
|
+
relayOrigin: this.#relayOrigin,
|
|
85
|
+
source,
|
|
86
|
+
...this.#route,
|
|
87
|
+
};
|
|
88
|
+
addFailureDetails(details, failure);
|
|
89
|
+
this.#record("relay_connection_failed", connectionEpoch.toString(), details, true);
|
|
90
|
+
};
|
|
91
|
+
connectionOpened = (connectionEpoch) => {
|
|
92
|
+
this.#record("relay_connection_opened", connectionEpoch.toString(), {
|
|
93
|
+
connectionEpoch: connectionEpoch.toString(),
|
|
94
|
+
relayOrigin: this.#relayOrigin,
|
|
95
|
+
...this.#route,
|
|
96
|
+
}, false);
|
|
97
|
+
};
|
|
98
|
+
heartbeatTimedOut = (connectionEpoch, heartbeatId, timeoutMilliseconds) => {
|
|
99
|
+
this.#record("relay_heartbeat_timed_out", connectionEpoch.toString(), {
|
|
100
|
+
connectionEpoch: connectionEpoch.toString(),
|
|
101
|
+
heartbeatId,
|
|
102
|
+
relayOrigin: this.#relayOrigin,
|
|
103
|
+
timeoutMilliseconds: timeoutMilliseconds.toString(),
|
|
104
|
+
...this.#route,
|
|
105
|
+
}, true);
|
|
106
|
+
};
|
|
107
|
+
#record = (event, commandId, details, warning) => {
|
|
108
|
+
this.#audit.record({
|
|
109
|
+
commandId,
|
|
110
|
+
details,
|
|
111
|
+
event,
|
|
112
|
+
sessionId: this.#channelId,
|
|
113
|
+
});
|
|
114
|
+
const encoded = JSON.stringify({ channelId: this.#channelId, event, ...details });
|
|
115
|
+
if (warning) {
|
|
116
|
+
process.stderr.write(`Mobius relay diagnostic ${encoded}\n`);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
process.stdout.write(`Mobius relay diagnostic ${encoded}\n`);
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/relay-connection/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { type RuntimeHeartbeatAckEvent } from "@moxt-ai/mobius-protocol";
|
|
|
2
2
|
import type { DaemonTimer } from "./timer.ts";
|
|
3
3
|
export interface RelayLivenessTransport {
|
|
4
4
|
readonly send: (message: string) => void;
|
|
5
|
-
readonly unresponsive: () => void;
|
|
5
|
+
readonly unresponsive: (heartbeatId: string, timeoutMilliseconds: number) => void;
|
|
6
6
|
}
|
|
7
7
|
export declare class RelayConnectionLiveness {
|
|
8
8
|
#private;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liveness.d.ts","sourceRoot":"","sources":["../../src/relay-connection/liveness.ts"],"names":[],"mappings":"AAEA,OAAO,EAGH,KAAK,wBAAwB,EAChC,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAuB,WAAW,EAAE,MAAM,YAAY,CAAC;AA+BnE,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"liveness.d.ts","sourceRoot":"","sources":["../../src/relay-connection/liveness.ts"],"names":[],"mappings":"AAEA,OAAO,EAGH,KAAK,wBAAwB,EAChC,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAuB,WAAW,EAAE,MAAM,YAAY,CAAC;AA+BnE,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,KAAK,IAAI,CAAC;CACrF;AAED,qBAAa,uBAAuB;;IAKhC,YAAY,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,EAGhE;IAED,QAAQ,CAAC,WAAW,UAAW,wBAAwB,KAAG,IAAI,CAW5D;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAYvB;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAYvB;CAoCL"}
|
|
@@ -75,9 +75,10 @@ export class RelayConnectionLiveness {
|
|
|
75
75
|
if (!(this.#state instanceof AwaitingHeartbeatAckState)) {
|
|
76
76
|
throw new Error("Heartbeat timeout occurred in an invalid state");
|
|
77
77
|
}
|
|
78
|
+
const heartbeatId = this.#state.heartbeatId;
|
|
78
79
|
this.#state.timeout.cancel();
|
|
79
80
|
this.#state = new FinishedRelayLivenessState();
|
|
80
|
-
this.#transport.unresponsive();
|
|
81
|
+
this.#transport.unresponsive(heartbeatId, HEARTBEAT_ACK_TIMEOUT_MILLISECONDS);
|
|
81
82
|
};
|
|
82
83
|
#sendHeartbeat = () => {
|
|
83
84
|
if (this.#state instanceof WaitingForHeartbeatState) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liveness.js","sourceRoot":"","sources":["../../src/relay-connection/liveness.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"liveness.js","sourceRoot":"","sources":["../../src/relay-connection/liveness.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,10 +12,11 @@ export declare class SessionEventOutbox {
|
|
|
12
12
|
readonly claimExecution: (commandId: string, sessionId: string, commandJson: string) => DaemonExecutionReceipt;
|
|
13
13
|
readonly transitionExecution: (commandId: string, state: DaemonExecutionState) => void;
|
|
14
14
|
readonly isTerminalExecution: (commandId: string, sessionId: string) => boolean;
|
|
15
|
-
readonly acknowledge: (acknowledgement: SessionEventAcknowledgement) =>
|
|
15
|
+
readonly acknowledge: (acknowledgement: SessionEventAcknowledgement) => boolean;
|
|
16
16
|
readonly quarantine: (rejection: SessionEventRejection) => boolean;
|
|
17
17
|
readonly close: () => void;
|
|
18
18
|
readonly enqueue: (sessionId: string, payload: string, attemptId?: string | null) => string;
|
|
19
19
|
readonly pending: () => readonly string[];
|
|
20
|
+
readonly pendingBatch: (limit: number) => readonly string[];
|
|
20
21
|
}
|
|
21
22
|
//# sourceMappingURL=session-event-outbox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-event-outbox.d.ts","sourceRoot":"","sources":["../../src/relay-connection/session-event-outbox.ts"],"names":[],"mappings":"AAIA,OAAO,EAGH,KAAK,2BAA2B,EAEhC,KAAK,qBAAqB,EAC7B,MAAM,0BAA0B,CAAC;AAalC,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAEpG,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,GAAG,WAAW,CAAC;IAC/B,KAAK,EAAE,oBAAoB,CAAC;CAC/B,CAAC,CAAC;AAEH,qBAAa,kBAAkB;;IAG3B,YAAY,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"session-event-outbox.d.ts","sourceRoot":"","sources":["../../src/relay-connection/session-event-outbox.ts"],"names":[],"mappings":"AAIA,OAAO,EAGH,KAAK,2BAA2B,EAEhC,KAAK,qBAAqB,EAC7B,MAAM,0BAA0B,CAAC;AAalC,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAEpG,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,GAAG,WAAW,CAAC;IAC/B,KAAK,EAAE,oBAAoB,CAAC;CAC/B,CAAC,CAAC;AAEH,qBAAa,kBAAkB;;IAG3B,YAAY,IAAI,EAAE,MAAM,EAyDvB;IAED,QAAQ,CAAC,cAAc,cAAe,MAAM,aAAa,MAAM,eAAe,MAAM,KAAG,sBAAsB,CA4C3G;IAEF,QAAQ,CAAC,mBAAmB,cAAe,MAAM,SAAS,oBAAoB,KAAG,IAAI,CAgBnF;IAEF,QAAQ,CAAC,mBAAmB,cAAe,MAAM,aAAa,MAAM,KAAG,OAAO,CAM5E;IAEF,QAAQ,CAAC,WAAW,oBAAqB,2BAA2B,KAAG,OAAO,CAMC;IAE/E,QAAQ,CAAC,UAAU,cAAe,qBAAqB,KAAG,OAAO,CAgC/D;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAEvB;IAEF,QAAQ,CAAC,OAAO,cAAe,MAAM,WAAW,MAAM,cAAa,MAAM,GAAG,IAAI,KAAU,MAAM,CAqD9F;IAEF,QAAQ,CAAC,OAAO,QAAO,SAAS,MAAM,EAAE,CAQN;IAElC,QAAQ,CAAC,YAAY,UAAW,MAAM,KAAG,SAAS,MAAM,EAAE,CAuBxD;CACL"}
|
|
@@ -22,6 +22,7 @@ export class SessionEventOutbox {
|
|
|
22
22
|
ordinal INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
23
23
|
event_id TEXT NOT NULL UNIQUE,
|
|
24
24
|
session_id TEXT NOT NULL,
|
|
25
|
+
source_key TEXT NOT NULL,
|
|
25
26
|
envelope_json TEXT NOT NULL
|
|
26
27
|
) STRICT;
|
|
27
28
|
CREATE INDEX IF NOT EXISTS relay_session_event_outbox_order
|
|
@@ -48,6 +49,25 @@ export class SessionEventOutbox {
|
|
|
48
49
|
state IN ('dispatching', 'running', 'succeeded', 'failed', 'cancelled')
|
|
49
50
|
)
|
|
50
51
|
) STRICT;
|
|
52
|
+
`);
|
|
53
|
+
const outboxColumns = this.#database.prepare("PRAGMA table_info(relay_session_event_outbox)").all();
|
|
54
|
+
const hasSourceKey = outboxColumns.some((column) => typeof column === "object" && column !== null && Reflect.get(column, "name") === "source_key");
|
|
55
|
+
if (!hasSourceKey) {
|
|
56
|
+
this.#database.exec(`
|
|
57
|
+
ALTER TABLE relay_session_event_outbox
|
|
58
|
+
ADD COLUMN source_key TEXT NOT NULL DEFAULT '';
|
|
59
|
+
`);
|
|
60
|
+
}
|
|
61
|
+
this.#database.exec(`
|
|
62
|
+
UPDATE relay_session_event_outbox
|
|
63
|
+
SET source_key = CASE json_extract(envelope_json, '$.source.kind')
|
|
64
|
+
WHEN 'attempt' THEN
|
|
65
|
+
'attempt:' || session_id || ':' || json_extract(envelope_json, '$.source.attemptId')
|
|
66
|
+
ELSE 'runtime:' || session_id
|
|
67
|
+
END
|
|
68
|
+
WHERE source_key = '';
|
|
69
|
+
CREATE INDEX IF NOT EXISTS relay_session_event_outbox_source_order
|
|
70
|
+
ON relay_session_event_outbox(source_key, ordinal);
|
|
51
71
|
`);
|
|
52
72
|
}
|
|
53
73
|
claimExecution = (commandId, sessionId, commandJson) => {
|
|
@@ -113,12 +133,10 @@ export class SessionEventOutbox {
|
|
|
113
133
|
const state = typeof row === "object" && row !== null ? Reflect.get(row, "state") : undefined;
|
|
114
134
|
return state === "succeeded" || state === "failed" || state === "cancelled";
|
|
115
135
|
};
|
|
116
|
-
acknowledge = (acknowledgement) =>
|
|
117
|
-
|
|
118
|
-
.prepare(`DELETE FROM relay_session_event_outbox
|
|
136
|
+
acknowledge = (acknowledgement) => this.#database
|
|
137
|
+
.prepare(`DELETE FROM relay_session_event_outbox
|
|
119
138
|
WHERE event_id = ? AND session_id = ?`)
|
|
120
|
-
|
|
121
|
-
};
|
|
139
|
+
.run(acknowledgement.eventId, acknowledgement.sessionId).changes === 1;
|
|
122
140
|
quarantine = (rejection) => {
|
|
123
141
|
this.#database.exec("BEGIN IMMEDIATE");
|
|
124
142
|
try {
|
|
@@ -188,9 +206,9 @@ export class SessionEventOutbox {
|
|
|
188
206
|
.run(sourceKey, nextSourceSeq + 1);
|
|
189
207
|
this.#database
|
|
190
208
|
.prepare(`INSERT INTO relay_session_event_outbox (
|
|
191
|
-
event_id, session_id, envelope_json
|
|
192
|
-
) VALUES (?, ?, ?)`)
|
|
193
|
-
.run(envelope.eventId, envelope.sessionId, encoded);
|
|
209
|
+
event_id, session_id, source_key, envelope_json
|
|
210
|
+
) VALUES (?, ?, ?, ?)`)
|
|
211
|
+
.run(envelope.eventId, envelope.sessionId, sourceKey, encoded);
|
|
194
212
|
this.#database.exec("COMMIT");
|
|
195
213
|
return encoded;
|
|
196
214
|
}
|
|
@@ -205,6 +223,28 @@ export class SessionEventOutbox {
|
|
|
205
223
|
ORDER BY ordinal`)
|
|
206
224
|
.all()
|
|
207
225
|
.map(readPendingEnvelope);
|
|
226
|
+
pendingBatch = (limit) => {
|
|
227
|
+
if (!Number.isSafeInteger(limit) || limit < 1) {
|
|
228
|
+
throw new Error("Session event replay batch limit must be a positive integer");
|
|
229
|
+
}
|
|
230
|
+
return this.#database
|
|
231
|
+
.prepare(`WITH ranked_events AS (
|
|
232
|
+
SELECT ordinal,
|
|
233
|
+
ROW_NUMBER() OVER (
|
|
234
|
+
PARTITION BY source_key
|
|
235
|
+
ORDER BY ordinal
|
|
236
|
+
) AS source_position
|
|
237
|
+
FROM relay_session_event_outbox
|
|
238
|
+
)
|
|
239
|
+
SELECT outbox.envelope_json
|
|
240
|
+
FROM ranked_events AS ranked
|
|
241
|
+
INNER JOIN relay_session_event_outbox AS outbox
|
|
242
|
+
ON outbox.ordinal = ranked.ordinal
|
|
243
|
+
ORDER BY ranked.source_position, outbox.ordinal
|
|
244
|
+
LIMIT ?`)
|
|
245
|
+
.all(limit)
|
|
246
|
+
.map(readPendingEnvelope);
|
|
247
|
+
};
|
|
208
248
|
}
|
|
209
249
|
function isDaemonExecutionState(value) {
|
|
210
250
|
return (value === "cancelled" ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-event-outbox.js","sourceRoot":"","sources":["../../src/relay-connection/session-event-outbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EACH,0BAA0B,EAC1B,kBAAkB,GAIrB,MAAM,0BAA0B,CAAC;AAElC,SAAS,mBAAmB,CAAC,GAAY;IACrC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACnD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAWD,MAAM,OAAO,kBAAkB;IAClB,SAAS,CAAe;IAEjC,YAAY,IAAY;QACpB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"session-event-outbox.js","sourceRoot":"","sources":["../../src/relay-connection/session-event-outbox.ts"],"names":[],"mappings":"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"}
|
package/dist/run-daemon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-daemon.d.ts","sourceRoot":"","sources":["../src/run-daemon.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-daemon.d.ts","sourceRoot":"","sources":["../src/run-daemon.ts"],"names":[],"mappings":"AAyHA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAOzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQhD,OAAO,EAA4B,KAAK,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AAwwD5G,wBAAsB,SAAS,CAC3B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,EACnB,KAAK,GAAE,WAA+B,GACvC,OAAO,CAAC,IAAI,CAAC,CA2Hf"}
|