@electron-stagewright/host-supervisor 0.0.0-stage → 0.1.0

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.
Files changed (47) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +143 -2
  3. package/dist/contract.d.ts +50 -0
  4. package/dist/contract.d.ts.map +1 -0
  5. package/dist/contract.js +2 -0
  6. package/dist/contract.js.map +1 -0
  7. package/dist/env.d.ts +9 -0
  8. package/dist/env.d.ts.map +1 -0
  9. package/dist/env.js +30 -0
  10. package/dist/env.js.map +1 -0
  11. package/dist/errors.d.ts +11 -0
  12. package/dist/errors.d.ts.map +1 -0
  13. package/dist/errors.js +33 -0
  14. package/dist/errors.js.map +1 -0
  15. package/dist/host.d.ts +79 -0
  16. package/dist/host.d.ts.map +1 -0
  17. package/dist/host.js +712 -0
  18. package/dist/host.js.map +1 -0
  19. package/dist/in-process.d.ts +8 -0
  20. package/dist/in-process.d.ts.map +1 -0
  21. package/dist/in-process.js +60 -0
  22. package/dist/in-process.js.map +1 -0
  23. package/dist/index.d.ts +15 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +14 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/policy.d.ts +34 -0
  28. package/dist/policy.d.ts.map +1 -0
  29. package/dist/policy.js +46 -0
  30. package/dist/policy.js.map +1 -0
  31. package/dist/protocol.d.ts +81 -0
  32. package/dist/protocol.d.ts.map +1 -0
  33. package/dist/protocol.js +94 -0
  34. package/dist/protocol.js.map +1 -0
  35. package/dist/serve.d.ts +32 -0
  36. package/dist/serve.d.ts.map +1 -0
  37. package/dist/serve.js +252 -0
  38. package/dist/serve.js.map +1 -0
  39. package/dist/utility.d.ts +43 -0
  40. package/dist/utility.d.ts.map +1 -0
  41. package/dist/utility.js +50 -0
  42. package/dist/utility.js.map +1 -0
  43. package/dist/worker.d.ts +31 -0
  44. package/dist/worker.d.ts.map +1 -0
  45. package/dist/worker.js +50 -0
  46. package/dist/worker.js.map +1 -0
  47. package/package.json +64 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Contract, HostTransport } from './contract.js';
2
+ import { type ServeOptions } from './serve.js';
3
+ /**
4
+ * Runs the host in the caller's thread. Messages are cloned and delivered asynchronously, as they
5
+ * would be across a real boundary. Meant for tests: a crash here is the caller's crash.
6
+ */
7
+ export declare function inProcessTransport<Ops extends Contract<Ops>, Payload = undefined>(serve: Omit<ServeOptions<Ops, Payload>, 'port' | 'reportCrashes'>): HostTransport;
8
+ //# sourceMappingURL=in-process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-process.d.ts","sourceRoot":"","sources":["../src/in-process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,QAAQ,EAAe,aAAa,EAAE,MAAM,eAAe,CAAA;AAEtF,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,EAC/E,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC,GAChE,aAAa,CAiDf"}
@@ -0,0 +1,60 @@
1
+ import { serveHost } from './serve.js';
2
+ /**
3
+ * Runs the host in the caller's thread. Messages are cloned and delivered asynchronously, as they
4
+ * would be across a real boundary. Meant for tests: a crash here is the caller's crash.
5
+ */
6
+ export function inProcessTransport(serve) {
7
+ return {
8
+ launch() {
9
+ let alive = true;
10
+ let toHost = null;
11
+ let toSupervisor = null;
12
+ let exitListener = null;
13
+ const end = (exit) => {
14
+ if (!alive)
15
+ return;
16
+ alive = false;
17
+ queueMicrotask(() => exitListener?.(exit));
18
+ };
19
+ const deliver = (listener, message) => {
20
+ const copy = structuredClone(message);
21
+ queueMicrotask(() => {
22
+ if (alive)
23
+ listener?.(copy);
24
+ });
25
+ };
26
+ serveHost({
27
+ ...serve,
28
+ reportCrashes: false,
29
+ port: {
30
+ post: (message) => {
31
+ if (alive)
32
+ deliver(toSupervisor, message);
33
+ },
34
+ onMessage: (listener) => {
35
+ toHost = listener;
36
+ },
37
+ close: () => {
38
+ // Let the stop reply arrive before the exit, as a real port does.
39
+ queueMicrotask(() => end({ code: 0 }));
40
+ },
41
+ },
42
+ });
43
+ return {
44
+ send: (message) => {
45
+ if (!alive)
46
+ throw new Error('The host has exited');
47
+ deliver(toHost, message);
48
+ },
49
+ onMessage: (listener) => {
50
+ toSupervisor = listener;
51
+ },
52
+ onExit: (listener) => {
53
+ exitListener = listener;
54
+ },
55
+ kill: () => end({ code: 1 }),
56
+ };
57
+ },
58
+ };
59
+ }
60
+ //# sourceMappingURL=in-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-process.js","sourceRoot":"","sources":["../src/in-process.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAA;AAEzD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAiE;IAEjE,OAAO;QACL,MAAM;YACJ,IAAI,KAAK,GAAG,IAAI,CAAA;YAChB,IAAI,MAAM,GAAwC,IAAI,CAAA;YACtD,IAAI,YAAY,GAAwC,IAAI,CAAA;YAC5D,IAAI,YAAY,GAAyC,IAAI,CAAA;YAC7D,MAAM,GAAG,GAAG,CAAC,IAAiB,EAAE,EAAE;gBAChC,IAAI,CAAC,KAAK;oBAAE,OAAM;gBAClB,KAAK,GAAG,KAAK,CAAA;gBACb,cAAc,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC5C,CAAC,CAAA;YACD,MAAM,OAAO,GAAG,CAAC,QAA6C,EAAE,OAAgB,EAAE,EAAE;gBAClF,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;gBACrC,cAAc,CAAC,GAAG,EAAE;oBAClB,IAAI,KAAK;wBAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAA;gBAC7B,CAAC,CAAC,CAAA;YACJ,CAAC,CAAA;YACD,SAAS,CAAe;gBACtB,GAAG,KAAK;gBACR,aAAa,EAAE,KAAK;gBACpB,IAAI,EAAE;oBACJ,IAAI,EAAE,CAAC,OAAoB,EAAE,EAAE;wBAC7B,IAAI,KAAK;4BAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;oBAC3C,CAAC;oBACD,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;wBACtB,MAAM,GAAG,QAAQ,CAAA;oBACnB,CAAC;oBACD,KAAK,EAAE,GAAG,EAAE;wBACV,kEAAkE;wBAClE,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;oBACxC,CAAC;iBACF;aACF,CAAC,CAAA;YACF,OAAO;gBACL,IAAI,EAAE,CAAC,OAA0B,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK;wBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;oBAClD,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBAC1B,CAAC;gBACD,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;oBACtB,YAAY,GAAG,QAAQ,CAAA;gBACzB,CAAC;gBACD,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;oBACnB,YAAY,GAAG,QAAQ,CAAA;gBACzB,CAAC;gBACD,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;aAC7B,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `@electron-stagewright/host-supervisor`: one stateful host off the main thread, behind a closed
3
+ * contract. Transports live in the `./worker` and `./utility` subpaths.
4
+ *
5
+ * @module
6
+ */
7
+ export type { ArgsOf, CallContext, CallOperation, ChannelExit, Contract, Handlers, HostChannel, HostTransport, StreamOperation, } from './contract.js';
8
+ export { minimalEnvironment } from './env.js';
9
+ export { HOST_ERROR_CODES, HostError, isHostError, type HostErrorCode } from './errors.js';
10
+ export { DEFAULT_RETIRE_WAIT_MS, DEFAULT_STOP_GRACE_MS, createHost, type CallOptions, type ExitDecision, type Host, type HostExit, type HostOptions, type HostState, } from './host.js';
11
+ export { inProcessTransport } from './in-process.js';
12
+ export { DEFAULT_RESTART_POLICY, memoryWatch, restartPolicy, type MemoryWatchOptions, type RestartPolicyOptions, } from './policy.js';
13
+ export { CODE_PATTERN, PROTOCOL_VERSION, deserializeError, serializeError, type HostMessage, type HostStats, type SerializedError, type SupervisorMessage, } from './protocol.js';
14
+ export { defaultHostPort, serveHost, type HostPort, type ServeOptions } from './serve.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,MAAM,EACN,WAAW,EACX,aAAa,EACb,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAC1F,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,EACV,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,SAAS,GACf,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EACL,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `@electron-stagewright/host-supervisor`: one stateful host off the main thread, behind a closed
3
+ * contract. Transports live in the `./worker` and `./utility` subpaths.
4
+ *
5
+ * @module
6
+ */
7
+ export { minimalEnvironment } from './env.js';
8
+ export { HOST_ERROR_CODES, HostError, isHostError } from './errors.js';
9
+ export { DEFAULT_RETIRE_WAIT_MS, DEFAULT_STOP_GRACE_MS, createHost, } from './host.js';
10
+ export { inProcessTransport } from './in-process.js';
11
+ export { DEFAULT_RESTART_POLICY, memoryWatch, restartPolicy, } from './policy.js';
12
+ export { CODE_PATTERN, PROTOCOL_VERSION, deserializeError, serializeError, } from './protocol.js';
13
+ export { defaultHostPort, serveHost } from './serve.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAsB,MAAM,aAAa,CAAA;AAC1F,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,GAOX,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EACL,sBAAsB,EACtB,WAAW,EACX,aAAa,GAGd,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,GAKf,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,eAAe,EAAE,SAAS,EAAoC,MAAM,YAAY,CAAA"}
@@ -0,0 +1,34 @@
1
+ import type { ExitDecision, HostExit } from './host.js';
2
+ import type { HostStats } from './protocol.js';
3
+ export interface RestartPolicyOptions {
4
+ /** Restarts allowed inside `windowMs`; one more is fatal. */
5
+ readonly maxRestarts?: number;
6
+ readonly windowMs?: number;
7
+ /** Delay before the 1st, 2nd, ... restart in the window; the last value repeats. */
8
+ readonly backoffMs?: readonly number[];
9
+ /** Exits that must never be retried, such as a corrupt database or a key that no longer opens it. */
10
+ readonly isFatal?: (exit: HostExit) => boolean;
11
+ readonly now?: () => number;
12
+ }
13
+ export declare const DEFAULT_RESTART_POLICY: {
14
+ readonly maxRestarts: 3;
15
+ readonly windowMs: number;
16
+ readonly backoffMs: readonly [500, 2000, 8000];
17
+ };
18
+ /**
19
+ * Bounded restart: up to `maxRestarts` in a sliding window, with backoff. A restart whose start
20
+ * fails counts as an attempt.
21
+ */
22
+ export declare function restartPolicy(options?: RestartPolicyOptions): (exit: HostExit) => ExitDecision;
23
+ export interface MemoryWatchOptions {
24
+ readonly rssMb: number;
25
+ /** Samples over the limit in a row before the alert. Default 2. */
26
+ readonly consecutive?: number;
27
+ readonly onAlert: (stats: HostStats) => void;
28
+ }
29
+ /**
30
+ * Alerts once when RSS stays over a limit, and again only after it has come back under. Native
31
+ * memory sits outside any V8 heap cap, so RSS is what shows it.
32
+ */
33
+ export declare function memoryWatch(options: MemoryWatchOptions): (stats: HostStats) => void;
34
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,WAAW,oBAAoB;IACnC,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,oFAAoF;IACpF,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,qGAAqG;IACrG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAA;IAC9C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAC5B;AAED,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAA;AAEV;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,GAAE,oBAAyB,GACjC,CAAC,IAAI,EAAE,QAAQ,KAAK,YAAY,CAelC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,mEAAmE;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;CAC7C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAYnF"}
package/dist/policy.js ADDED
@@ -0,0 +1,46 @@
1
+ export const DEFAULT_RESTART_POLICY = {
2
+ maxRestarts: 3,
3
+ windowMs: 10 * 60_000,
4
+ backoffMs: [500, 2_000, 8_000],
5
+ };
6
+ /**
7
+ * Bounded restart: up to `maxRestarts` in a sliding window, with backoff. A restart whose start
8
+ * fails counts as an attempt.
9
+ */
10
+ export function restartPolicy(options = {}) {
11
+ const maxRestarts = options.maxRestarts ?? DEFAULT_RESTART_POLICY.maxRestarts;
12
+ const windowMs = options.windowMs ?? DEFAULT_RESTART_POLICY.windowMs;
13
+ const backoffMs = options.backoffMs ?? DEFAULT_RESTART_POLICY.backoffMs;
14
+ const now = options.now ?? Date.now;
15
+ let restarts = [];
16
+ return (exit) => {
17
+ if (options.isFatal?.(exit))
18
+ return 'fatal';
19
+ const at = now();
20
+ restarts = restarts.filter((time) => at - time < windowMs);
21
+ if (restarts.length >= maxRestarts)
22
+ return 'fatal';
23
+ restarts.push(at);
24
+ const delayMs = backoffMs[Math.min(restarts.length, backoffMs.length) - 1] ?? 0;
25
+ return { action: 'restart', delayMs };
26
+ };
27
+ }
28
+ /**
29
+ * Alerts once when RSS stays over a limit, and again only after it has come back under. Native
30
+ * memory sits outside any V8 heap cap, so RSS is what shows it.
31
+ */
32
+ export function memoryWatch(options) {
33
+ const needed = options.consecutive ?? 2;
34
+ let over = 0;
35
+ let alerted = false;
36
+ return (stats) => {
37
+ over = stats.rssMb > options.rssMb ? over + 1 : 0;
38
+ if (over === 0)
39
+ alerted = false;
40
+ if (over >= needed && !alerted) {
41
+ alerted = true;
42
+ options.onAlert(stats);
43
+ }
44
+ };
45
+ }
46
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,EAAE,GAAG,MAAM;IACrB,SAAS,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;CACtB,CAAA;AAEV;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,UAAgC,EAAE;IAElC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,sBAAsB,CAAC,WAAW,CAAA;IAC7E,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,sBAAsB,CAAC,QAAQ,CAAA;IACpE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,sBAAsB,CAAC,SAAS,CAAA;IACvE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAA;IACnC,IAAI,QAAQ,GAAa,EAAE,CAAA;IAC3B,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAA;QAC3C,MAAM,EAAE,GAAG,GAAG,EAAE,CAAA;QAChB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAA;QAC1D,IAAI,QAAQ,CAAC,MAAM,IAAI,WAAW;YAAE,OAAO,OAAO,CAAA;QAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACjB,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;QAC/E,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;IACvC,CAAC,CAAA;AACH,CAAC;AASD;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAA;IACvC,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACjD,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,GAAG,KAAK,CAAA;QAC/B,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,OAAO,GAAG,IAAI,CAAA;YACd,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Messages between the supervisor and the host. Plain data only: every message survives structured
3
+ * clone, and both sides validate what they receive.
4
+ */
5
+ /** Bumped when a message changes shape; a host that speaks another version refuses to start. */
6
+ export declare const PROTOCOL_VERSION = 1;
7
+ /** An error as it crosses the boundary: no stack, no object graph. */
8
+ export interface SerializedError {
9
+ readonly name: string;
10
+ readonly message: string;
11
+ readonly code?: string;
12
+ }
13
+ export type SupervisorMessage = {
14
+ readonly type: 'start';
15
+ readonly version: number;
16
+ readonly payload: unknown;
17
+ } | {
18
+ readonly type: 'call';
19
+ readonly id: number;
20
+ readonly op: string;
21
+ readonly args: readonly unknown[];
22
+ readonly stream?: true;
23
+ } | {
24
+ readonly type: 'next';
25
+ readonly id: number;
26
+ } | {
27
+ readonly type: 'cancel';
28
+ readonly id: number;
29
+ } | {
30
+ readonly type: 'stop';
31
+ };
32
+ /** Process figures in MB, except event-loop utilization (0 to 1). */
33
+ export interface HostStats {
34
+ readonly rssMb: number;
35
+ readonly heapUsedMb: number;
36
+ /** V8's heap limit: the old-generation cap plus the young generation's reserve. */
37
+ readonly heapLimitMb: number;
38
+ readonly externalMb: number;
39
+ readonly eventLoopUtilization: number;
40
+ }
41
+ export type HostMessage = {
42
+ readonly type: 'started';
43
+ } | {
44
+ readonly type: 'start-failed';
45
+ readonly error: SerializedError;
46
+ } | {
47
+ readonly type: 'result';
48
+ readonly id: number;
49
+ readonly ok: true;
50
+ readonly value: unknown;
51
+ } | {
52
+ readonly type: 'result';
53
+ readonly id: number;
54
+ readonly ok: false;
55
+ readonly error: SerializedError;
56
+ } | {
57
+ readonly type: 'item';
58
+ readonly id: number;
59
+ readonly done: boolean;
60
+ readonly value?: unknown;
61
+ } | {
62
+ readonly type: 'stopped';
63
+ readonly error?: SerializedError;
64
+ } | {
65
+ readonly type: 'crashed';
66
+ readonly error: SerializedError;
67
+ } | {
68
+ readonly type: 'stats';
69
+ readonly stats: HostStats;
70
+ };
71
+ /** The only shape a code may take to cross the boundary. */
72
+ export declare const CODE_PATTERN: RegExp;
73
+ /** Keeps the message and a well-formed code (own or from `cause`), and drops everything else. */
74
+ export declare function serializeError(error: unknown): SerializedError;
75
+ /** Rebuilds an Error on the receiving side. */
76
+ export declare function deserializeError(serialized: SerializedError): Error;
77
+ /** Narrows a message from the supervisor, or returns null for anything else. */
78
+ export declare function parseSupervisorMessage(value: unknown): SupervisorMessage | null;
79
+ /** Narrows a message from the host, or returns null for anything else. */
80
+ export declare function parseHostMessage(value: unknown): HostMessage | null;
81
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Messages between the supervisor and the host. Plain data only: every message survives structured
3
+ * clone, and both sides validate what they receive.
4
+ */
5
+ /** Bumped when a message changes shape; a host that speaks another version refuses to start. */
6
+ export const PROTOCOL_VERSION = 1;
7
+ /** The only shape a code may take to cross the boundary. */
8
+ export const CODE_PATTERN = /^[A-Z][A-Z0-9_]{1,80}$/;
9
+ /** Keeps the message and a well-formed code (own or from `cause`), and drops everything else. */
10
+ export function serializeError(error) {
11
+ const candidate = error;
12
+ const code = [candidate?.code, candidate?.cause?.code, candidate?.cause?.errorCode].find((value) => typeof value === 'string' && CODE_PATTERN.test(value));
13
+ const message = typeof candidate?.message === 'string'
14
+ ? candidate.message
15
+ : candidate === null || typeof candidate !== 'object'
16
+ ? String(error)
17
+ : 'Error';
18
+ return {
19
+ name: typeof candidate?.name === 'string' ? candidate.name : 'Error',
20
+ message,
21
+ ...(code ? { code } : {}),
22
+ };
23
+ }
24
+ /** Rebuilds an Error on the receiving side. */
25
+ export function deserializeError(serialized) {
26
+ const error = new Error(serialized.message);
27
+ error.name = serialized.name;
28
+ if (serialized.code)
29
+ Object.assign(error, { code: serialized.code });
30
+ return error;
31
+ }
32
+ function isRecord(value) {
33
+ return typeof value === 'object' && value !== null;
34
+ }
35
+ function isId(value) {
36
+ return Number.isSafeInteger(value) && value > 0;
37
+ }
38
+ function isSerializedError(value) {
39
+ return (isRecord(value) &&
40
+ typeof value['name'] === 'string' &&
41
+ typeof value['message'] === 'string' &&
42
+ (value['code'] === undefined || typeof value['code'] === 'string'));
43
+ }
44
+ /** Narrows a message from the supervisor, or returns null for anything else. */
45
+ export function parseSupervisorMessage(value) {
46
+ if (!isRecord(value))
47
+ return null;
48
+ switch (value['type']) {
49
+ case 'start':
50
+ return typeof value['version'] === 'number' ? value : null;
51
+ case 'call':
52
+ return isId(value['id']) && typeof value['op'] === 'string' && Array.isArray(value['args'])
53
+ ? value
54
+ : null;
55
+ case 'next':
56
+ case 'cancel':
57
+ return isId(value['id']) ? value : null;
58
+ case 'stop':
59
+ return value;
60
+ default:
61
+ return null;
62
+ }
63
+ }
64
+ /** Narrows a message from the host, or returns null for anything else. */
65
+ export function parseHostMessage(value) {
66
+ if (!isRecord(value))
67
+ return null;
68
+ switch (value['type']) {
69
+ case 'started':
70
+ return value;
71
+ case 'start-failed':
72
+ case 'crashed':
73
+ return isSerializedError(value['error']) ? value : null;
74
+ case 'stopped':
75
+ return value['error'] === undefined || isSerializedError(value['error'])
76
+ ? value
77
+ : null;
78
+ case 'result':
79
+ if (!isId(value['id']))
80
+ return null;
81
+ if (value['ok'] === true)
82
+ return value;
83
+ return value['ok'] === false && isSerializedError(value['error'])
84
+ ? value
85
+ : null;
86
+ case 'item':
87
+ return isId(value['id']) && typeof value['done'] === 'boolean' ? value : null;
88
+ case 'stats':
89
+ return isRecord(value['stats']) ? value : null;
90
+ default:
91
+ return null;
92
+ }
93
+ }
94
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Host side: answers the supervisor from a worker thread or a utility process. Never imports
3
+ * Electron, so the same entry runs under Node.
4
+ */
5
+ import type { CallOperation, Contract, Handlers, StreamOperation } from './contract.js';
6
+ import { type HostMessage } from './protocol.js';
7
+ /** The host's end of the channel. */
8
+ export interface HostPort {
9
+ post(message: HostMessage): void;
10
+ onMessage(listener: (message: unknown) => void): void;
11
+ /** Lets the thread or process end once the host has stopped. */
12
+ close(): void;
13
+ }
14
+ export interface ServeOptions<Ops extends Contract<Ops>, Payload = undefined> {
15
+ readonly operations: readonly CallOperation<Ops>[];
16
+ readonly streams?: readonly StreamOperation<Ops>[];
17
+ /** Opens whatever the host serves; called once, with the supervisor's start payload. */
18
+ readonly start: (payload: Payload) => Handlers<Ops> | Promise<Handlers<Ops>>;
19
+ /** Runs after every accepted call has answered. */
20
+ readonly stop?: () => void | Promise<void>;
21
+ /** Defaults to the utility process's parent port, else the worker thread's. */
22
+ readonly port?: HostPort;
23
+ /** Sends process memory and event-loop figures this often, from the start. */
24
+ readonly statsIntervalMs?: number;
25
+ /** Tells the supervisor the cause of an uncaught exception before the host ends. Default true. */
26
+ readonly reportCrashes?: boolean;
27
+ }
28
+ /** The port this host was started with, or null outside a worker or utility process. */
29
+ export declare function defaultHostPort(): HostPort | null;
30
+ /** Serves one host until the supervisor sends `stop`. */
31
+ export declare function serveHost<Ops extends Contract<Ops>, Payload = undefined>(options: ServeOptions<Ops, Payload>): void;
32
+ //# sourceMappingURL=serve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAe,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpG,OAAO,EAIL,KAAK,WAAW,EAEjB,MAAM,eAAe,CAAA;AAEtB,qCAAqC;AACrC,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IAChC,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAA;IACrD,gEAAgE;IAChE,KAAK,IAAI,IAAI,CAAA;CACd;AAED,MAAM,WAAW,YAAY,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS;IAC1E,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;IAClD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,eAAe,CAAC,GAAG,CAAC,EAAE,CAAA;IAClD,wFAAwF;IACxF,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5E,mDAAmD;IACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1C,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;IACxB,8EAA8E;IAC9E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,kGAAkG;IAClG,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CACjC;AAOD,wFAAwF;AACxF,wBAAgB,eAAe,IAAI,QAAQ,GAAG,IAAI,CAoBjD;AAmBD,yDAAyD;AACzD,wBAAgB,SAAS,CAAC,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,EACtE,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,GAClC,IAAI,CAgON"}