@moxt-ai/mobius 0.0.386 → 0.0.388
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/{chunk-FVYSQLQL.js → chunk-7BSIM5AK.js} +132 -136
- package/dist/{chunk-FVYSQLQL.js.map → chunk-7BSIM5AK.js.map} +3 -3
- package/dist/{chunk-Z6JG65YI.js → chunk-Z4WUPVBL.js} +2 -2
- package/dist/{chunk-Z6JG65YI.js.map → chunk-Z4WUPVBL.js.map} +1 -1
- package/dist/cli/handler/daemon/index.d.ts.map +1 -1
- package/dist/cli/handler/daemon/index.js +9 -4
- package/dist/cli/handler/daemon/index.js.map +1 -1
- package/dist/cli/handler/daemon/quit.d.ts.map +1 -1
- package/dist/cli/handler/daemon/quit.js +5 -4
- package/dist/cli/handler/daemon/quit.js.map +1 -1
- package/dist/cli/handler/daemon/release.js +1 -1
- package/dist/cli/handler/daemon/start.d.ts.map +1 -1
- package/dist/cli/handler/daemon/start.js +3 -3
- package/dist/cli/handler/daemon/start.js.map +1 -1
- package/dist/cli/handler/daemon/upgrade.d.ts.map +1 -1
- package/dist/cli/handler/daemon/upgrade.js +8 -24
- package/dist/cli/handler/daemon/upgrade.js.map +1 -1
- package/dist/cli/handler/pair/pair.js +3 -3
- package/dist/cli/handler/pair/pair.js.map +1 -1
- package/dist/cli/handler/pair/remove.js +1 -1
- package/dist/cli/handler/pair/stop.js +1 -1
- package/dist/cli/handler/version/index.d.ts.map +1 -1
- package/dist/cli/handler/version/index.js +6 -2
- package/dist/cli/handler/version/index.js.map +1 -1
- package/dist/{cli-NLIGRBEL.js → cli-O57WJIFN.js} +412 -1143
- package/dist/cli-O57WJIFN.js.map +7 -0
- package/dist/cli.js +1998 -6
- package/dist/cli.js.map +4 -4
- package/dist/daemon/control/protocol.d.ts +1 -133
- package/dist/daemon/control/protocol.d.ts.map +1 -1
- package/dist/daemon/control/protocol.js +4 -63
- package/dist/daemon/control/protocol.js.map +1 -1
- package/dist/daemon/lifecycle/daemon-client.d.ts +8 -0
- package/dist/daemon/lifecycle/daemon-client.d.ts.map +1 -0
- package/dist/daemon/lifecycle/daemon-client.js +154 -0
- package/dist/daemon/lifecycle/daemon-client.js.map +1 -0
- package/dist/daemon/lifecycle/{worker.d.ts → daemon.d.ts} +2 -2
- package/dist/daemon/lifecycle/daemon.d.ts.map +1 -0
- package/dist/daemon/lifecycle/daemon.js +266 -0
- package/dist/daemon/lifecycle/daemon.js.map +1 -0
- package/dist/daemon/lifecycle/unhandled-rejection.d.ts +1 -2
- package/dist/daemon/lifecycle/unhandled-rejection.d.ts.map +1 -1
- package/dist/daemon/lifecycle/unhandled-rejection.js +4 -7
- package/dist/daemon/lifecycle/unhandled-rejection.js.map +1 -1
- package/dist/daemon/upgrades/data.d.ts +0 -1
- package/dist/daemon/upgrades/data.d.ts.map +1 -1
- package/dist/daemon/upgrades/data.js +0 -5
- package/dist/daemon/upgrades/data.js.map +1 -1
- package/dist/engine/runtime/command/registry/prompt.d.ts.map +1 -1
- package/dist/engine/runtime/command/registry/prompt.js +2 -3
- package/dist/engine/runtime/command/registry/prompt.js.map +1 -1
- package/dist/engine/runtime/relay/session-event-publisher.d.ts.map +1 -1
- package/dist/engine/runtime/relay/session-event-publisher.js +2 -4
- package/dist/engine/runtime/relay/session-event-publisher.js.map +1 -1
- package/dist/engine/session/api/session-layer.js +3 -3
- package/dist/engine/session/api/session-layer.js.map +1 -1
- package/dist/engine/session/live/agent-session.d.ts.map +1 -1
- package/dist/engine/session/live/agent-session.js +4 -3
- package/dist/engine/session/live/agent-session.js.map +1 -1
- package/dist/engine/session/prompt/execute-prompt.d.ts +8 -8
- package/dist/engine/session/prompt/execute-prompt.d.ts.map +1 -1
- package/dist/engine/session/prompt/execute-prompt.js +10 -10
- package/dist/engine/session/prompt/execute-prompt.js.map +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.d.ts +8 -4
- package/dist/engine/session/prompt/prompt-lifecycle.d.ts.map +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.js +18 -17
- package/dist/engine/session/prompt/prompt-lifecycle.js.map +1 -1
- package/dist/engine/session/turn/active-executions.d.ts +4 -2
- package/dist/engine/session/turn/active-executions.d.ts.map +1 -1
- package/dist/engine/session/turn/active-executions.js +4 -6
- package/dist/engine/session/turn/active-executions.js.map +1 -1
- package/dist/engine/session/turn/active-turn.d.ts +12 -8
- package/dist/engine/session/turn/active-turn.d.ts.map +1 -1
- package/dist/engine/session/turn/active-turn.js +47 -36
- package/dist/engine/session/turn/active-turn.js.map +1 -1
- package/dist/engine/session/turn/execution-receipts.d.ts +6 -2
- package/dist/engine/session/turn/execution-receipts.d.ts.map +1 -1
- package/dist/engine/session/turn/execution-receipts.js +18 -32
- package/dist/engine/session/turn/execution-receipts.js.map +1 -1
- package/dist/engine/session/turn/session-execution.d.ts +6 -2
- package/dist/engine/session/turn/session-execution.d.ts.map +1 -1
- package/dist/engine/session/turn/session-execution.js +10 -7
- package/dist/engine/session/turn/session-execution.js.map +1 -1
- package/dist/engine/session/turn/session-turns.d.ts +1 -1
- package/dist/engine/session/turn/session-turns.d.ts.map +1 -1
- package/dist/engine/session/turn/session-turns.js +1 -1
- package/dist/engine/session/turn/session-turns.js.map +1 -1
- package/dist/engine/util/process/platform/windows.d.ts.map +1 -1
- package/dist/engine/util/process/platform/windows.js +7 -4
- package/dist/engine/util/process/platform/windows.js.map +1 -1
- package/dist/engine.js +2 -2
- package/dist/storage/daemon/daemon-lock.d.ts +9 -0
- package/dist/storage/daemon/daemon-lock.d.ts.map +1 -0
- package/dist/storage/daemon/{manager-lock.js → daemon-lock.js} +22 -7
- package/dist/storage/daemon/daemon-lock.js.map +1 -0
- package/dist/storage/state-root-layout.d.ts +0 -2
- package/dist/storage/state-root-layout.d.ts.map +1 -1
- package/dist/storage/state-root-layout.js +0 -2
- package/dist/storage/state-root-layout.js.map +1 -1
- package/package.json +2 -2
- package/dist/chunk-T2GPD4RK.js +0 -2002
- package/dist/chunk-T2GPD4RK.js.map +0 -7
- package/dist/cli/handler/daemon/manager.d.ts +0 -4
- package/dist/cli/handler/daemon/manager.d.ts.map +0 -1
- package/dist/cli/handler/daemon/manager.js +0 -9
- package/dist/cli/handler/daemon/manager.js.map +0 -1
- package/dist/cli/handler/daemon/worker.d.ts +0 -4
- package/dist/cli/handler/daemon/worker.d.ts.map +0 -1
- package/dist/cli/handler/daemon/worker.js +0 -7
- package/dist/cli/handler/daemon/worker.js.map +0 -1
- package/dist/cli-NLIGRBEL.js.map +0 -7
- package/dist/daemon/control/switch-status.d.ts +0 -4
- package/dist/daemon/control/switch-status.d.ts.map +0 -1
- package/dist/daemon/control/switch-status.js +0 -10
- package/dist/daemon/control/switch-status.js.map +0 -1
- package/dist/daemon/lifecycle/manager-client.d.ts +0 -8
- package/dist/daemon/lifecycle/manager-client.d.ts.map +0 -1
- package/dist/daemon/lifecycle/manager-client.js +0 -130
- package/dist/daemon/lifecycle/manager-client.js.map +0 -1
- package/dist/daemon/lifecycle/manager.d.ts +0 -3
- package/dist/daemon/lifecycle/manager.d.ts.map +0 -1
- package/dist/daemon/lifecycle/manager.js +0 -215
- package/dist/daemon/lifecycle/manager.js.map +0 -1
- package/dist/daemon/lifecycle/worker-lifecycle-log.d.ts +0 -14
- package/dist/daemon/lifecycle/worker-lifecycle-log.d.ts.map +0 -1
- package/dist/daemon/lifecycle/worker-lifecycle-log.js +0 -63
- package/dist/daemon/lifecycle/worker-lifecycle-log.js.map +0 -1
- package/dist/daemon/lifecycle/worker-process.d.ts +0 -26
- package/dist/daemon/lifecycle/worker-process.d.ts.map +0 -1
- package/dist/daemon/lifecycle/worker-process.js +0 -145
- package/dist/daemon/lifecycle/worker-process.js.map +0 -1
- package/dist/daemon/lifecycle/worker.d.ts.map +0 -1
- package/dist/daemon/lifecycle/worker.js +0 -213
- package/dist/daemon/lifecycle/worker.js.map +0 -1
- package/dist/daemon/upgrades/package.d.ts +0 -9
- package/dist/daemon/upgrades/package.d.ts.map +0 -1
- package/dist/daemon/upgrades/package.js +0 -157
- package/dist/daemon/upgrades/package.js.map +0 -1
- package/dist/daemon/upgrades/upgrade.d.ts +0 -21
- package/dist/daemon/upgrades/upgrade.d.ts.map +0 -1
- package/dist/daemon/upgrades/upgrade.js +0 -242
- package/dist/daemon/upgrades/upgrade.js.map +0 -1
- package/dist/storage/daemon/manager-lock.d.ts +0 -9
- package/dist/storage/daemon/manager-lock.d.ts.map +0 -1
- package/dist/storage/daemon/manager-lock.js.map +0 -1
- package/dist/storage/daemon/release-files.d.ts +0 -9
- package/dist/storage/daemon/release-files.d.ts.map +0 -1
- package/dist/storage/daemon/release-files.js +0 -14
- package/dist/storage/daemon/release-files.js.map +0 -1
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { InstallationDirectory } from "../../engine/storage/installation/installation-files.ts";
|
|
2
|
-
import { type DaemonReleaseSwitchState } from "./protocol.ts";
|
|
3
|
-
export declare function readSwitchStatus(directory: InstallationDirectory, signal: AbortSignal, wait?: boolean): Promise<DaemonReleaseSwitchState | null>;
|
|
4
|
-
//# sourceMappingURL=switch-status.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"switch-status.d.ts","sourceRoot":"","sources":["../../../src/daemon/control/switch-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAC;AAErG,OAAO,EAAE,KAAK,wBAAwB,EAAgC,MAAM,eAAe,CAAC;AAE5F,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,qBAAqB,EAChC,MAAM,EAAE,WAAW,EACnB,IAAI,UAAQ,GACb,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAQ1C"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { sendLocalRequest } from "./local-client.js";
|
|
2
|
-
import { decodeKnownLifecycleResponse } from "./protocol.js";
|
|
3
|
-
export async function readSwitchStatus(directory, signal, wait = false) {
|
|
4
|
-
const response = decodeKnownLifecycleResponse(await sendLocalRequest(directory, "manager", { kind: "switch-status", wait }, signal));
|
|
5
|
-
if (response?.kind !== "switch-status") {
|
|
6
|
-
throw new Error("The manager could not return the switch status");
|
|
7
|
-
}
|
|
8
|
-
return response.state;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=switch-status.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"switch-status.js","sourceRoot":"","sources":["../../../src/daemon/control/switch-status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAiC,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAE5F,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,SAAgC,EAChC,MAAmB,EACnB,IAAI,GAAG,KAAK;IAEZ,MAAM,QAAQ,GAAG,4BAA4B,CACzC,MAAM,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CACxF,CAAC;IACF,IAAI,QAAQ,EAAE,IAAI,KAAK,eAAe,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC;AAC1B,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { InstallationDirectory } from "../../engine/storage/installation/installation-files.ts";
|
|
2
|
-
import { type LifecycleResponse } from "../control/protocol.ts";
|
|
3
|
-
export declare function ensureWorkingProcess(stateDirectory: InstallationDirectory, cliVersion: string, signal: AbortSignal): Promise<string>;
|
|
4
|
-
export declare function readWorkingProcessVersion(stateDirectory: InstallationDirectory, signal: AbortSignal): Promise<string | null>;
|
|
5
|
-
export declare function stopManager(stateDirectory: InstallationDirectory, signal: AbortSignal): Promise<Extract<LifecycleResponse, {
|
|
6
|
-
kind: "stopped";
|
|
7
|
-
}>>;
|
|
8
|
-
//# sourceMappingURL=manager-client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manager-client.d.ts","sourceRoot":"","sources":["../../../src/daemon/lifecycle/manager-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAC;AAMrG,OAAO,EAAgC,KAAK,iBAAiB,EAAqB,MAAM,wBAAwB,CAAC;AAyCjH,wBAAsB,oBAAoB,CACtC,cAAc,EAAE,qBAAqB,EACrC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAID,wBAAsB,yBAAyB,CAC3C,cAAc,EAAE,qBAAqB,EACrC,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAcxB;AA2CD,wBAAsB,WAAW,CAC7B,cAAc,EAAE,qBAAqB,EACrC,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC,CAmB1D"}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { spawn } from "node:child_process";
|
|
2
|
-
import { gt } from "semver";
|
|
3
|
-
import { isNodeError } from "../../engine/util/node-error.js";
|
|
4
|
-
import { managerLockExists } from "../../storage/daemon/manager-lock.js";
|
|
5
|
-
import { readCurrentDataVersion } from "../../storage/daemon/version-data.js";
|
|
6
|
-
import { readStateDirectory } from "../../storage/state-directory.js";
|
|
7
|
-
import { CONTROL_TIMEOUT_MILLISECONDS, sendLocalRequest } from "../control/local-client.js";
|
|
8
|
-
import { decodeKnownLifecycleResponse } from "../control/protocol.js";
|
|
9
|
-
import { prepareDaemonReleaseVersion } from "../upgrades/package.js";
|
|
10
|
-
async function spawnManager(launch) {
|
|
11
|
-
const child = spawn(launch.executable, [launch.entry, "__manager"], {
|
|
12
|
-
detached: true,
|
|
13
|
-
windowsHide: true,
|
|
14
|
-
env: process.env,
|
|
15
|
-
stdio: "ignore",
|
|
16
|
-
});
|
|
17
|
-
child.unref();
|
|
18
|
-
return child;
|
|
19
|
-
}
|
|
20
|
-
async function launchManager(launch) {
|
|
21
|
-
process.stdout.write(`Starting mobius daemon ${launch.version}\n`);
|
|
22
|
-
await spawnManager(launch);
|
|
23
|
-
}
|
|
24
|
-
async function waitForManagerExit(stateDirectory, signal) {
|
|
25
|
-
const deadline = AbortSignal.any([signal, AbortSignal.timeout(30_000)]);
|
|
26
|
-
while (!deadline.aborted) {
|
|
27
|
-
if (!(await managerLockExists(stateDirectory))) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
await new Promise((resolve, reject) => {
|
|
31
|
-
const timeout = setTimeout(finish, 20);
|
|
32
|
-
const abort = () => finish(deadline.reason);
|
|
33
|
-
function finish(cause) {
|
|
34
|
-
clearTimeout(timeout);
|
|
35
|
-
deadline.removeEventListener("abort", abort);
|
|
36
|
-
cause === undefined ? resolve() : reject(cause);
|
|
37
|
-
}
|
|
38
|
-
deadline.addEventListener("abort", abort, { once: true });
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
throw deadline.reason;
|
|
42
|
-
}
|
|
43
|
-
// The daemon never runs behind the current data: an older version would reopen its own stale copy. A CLI older
|
|
44
|
-
// than the current data therefore keeps or starts the version that recorded it. Returns the running version.
|
|
45
|
-
export async function ensureWorkingProcess(stateDirectory, cliVersion, signal) {
|
|
46
|
-
const current = await readCurrentDataVersion(readStateDirectory(), signal);
|
|
47
|
-
const version = current !== null && gt(current, cliVersion) ? current : cliVersion;
|
|
48
|
-
const launch = await prepareDaemonReleaseVersion(version, signal);
|
|
49
|
-
const deadline = AbortSignal.any([signal, AbortSignal.timeout(CONTROL_TIMEOUT_MILLISECONDS)]);
|
|
50
|
-
await ensureManager(stateDirectory, launch, deadline);
|
|
51
|
-
const response = decodeKnownLifecycleResponse(await sendLocalRequest(stateDirectory, "manager", { kind: "ensure", launch }, deadline));
|
|
52
|
-
if (response?.kind === "error") {
|
|
53
|
-
throw new Error(response.message);
|
|
54
|
-
}
|
|
55
|
-
if (response?.kind !== "status" || response.worker?.version !== version) {
|
|
56
|
-
throw new Error("The working daemon did not start");
|
|
57
|
-
}
|
|
58
|
-
return version;
|
|
59
|
-
}
|
|
60
|
-
// Returns the running worker's version, or null when no compatible manager
|
|
61
|
-
// reports one. Callers fall back to ensureWorkingProcess to start a daemon.
|
|
62
|
-
export async function readWorkingProcessVersion(stateDirectory, signal) {
|
|
63
|
-
try {
|
|
64
|
-
const response = decodeKnownLifecycleResponse(await sendLocalRequest(stateDirectory, "manager", { kind: "status" }, signal));
|
|
65
|
-
if (response?.kind === "status") {
|
|
66
|
-
return response.worker?.version ?? null;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
catch (cause) {
|
|
70
|
-
if (!isNodeError(cause, "ENOENT") && !isNodeError(cause, "ECONNREFUSED")) {
|
|
71
|
-
throw cause;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
async function ensureManager(stateDirectory, launch, signal) {
|
|
77
|
-
let managerStarted = false;
|
|
78
|
-
while (!signal.aborted) {
|
|
79
|
-
try {
|
|
80
|
-
const response = decodeKnownLifecycleResponse(await sendLocalRequest(stateDirectory, "manager", { kind: "status" }, signal));
|
|
81
|
-
if (response?.kind === "status") {
|
|
82
|
-
if (managerStarted) {
|
|
83
|
-
process.stdout.write(`Mobius daemon ${launch.version} started\n`);
|
|
84
|
-
}
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
throw new Error("The manager could not return its status");
|
|
88
|
-
}
|
|
89
|
-
catch (cause) {
|
|
90
|
-
if (!isNodeError(cause, "ENOENT") && !isNodeError(cause, "ECONNREFUSED")) {
|
|
91
|
-
throw cause;
|
|
92
|
-
}
|
|
93
|
-
if (!managerStarted) {
|
|
94
|
-
await launchManager(launch);
|
|
95
|
-
managerStarted = true;
|
|
96
|
-
}
|
|
97
|
-
await new Promise((resolve, reject) => {
|
|
98
|
-
const timeout = setTimeout(finish, 50);
|
|
99
|
-
const abort = () => finish(signal.reason);
|
|
100
|
-
function finish(cause) {
|
|
101
|
-
clearTimeout(timeout);
|
|
102
|
-
signal.removeEventListener("abort", abort);
|
|
103
|
-
cause === undefined ? resolve() : reject(cause);
|
|
104
|
-
}
|
|
105
|
-
signal.addEventListener("abort", abort, { once: true });
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
throw signal.reason;
|
|
110
|
-
}
|
|
111
|
-
export async function stopManager(stateDirectory, signal) {
|
|
112
|
-
try {
|
|
113
|
-
const response = decodeKnownLifecycleResponse(await sendLocalRequest(stateDirectory, "manager", { kind: "stop" }, signal));
|
|
114
|
-
if (response?.kind === "error") {
|
|
115
|
-
throw new Error(response.message);
|
|
116
|
-
}
|
|
117
|
-
if (response?.kind !== "stopped") {
|
|
118
|
-
throw new Error("The Mobius manager returned an unexpected response");
|
|
119
|
-
}
|
|
120
|
-
await waitForManagerExit(stateDirectory, signal);
|
|
121
|
-
return response;
|
|
122
|
-
}
|
|
123
|
-
catch (cause) {
|
|
124
|
-
if (isNodeError(cause, "ENOENT") || isNodeError(cause, "ECONNREFUSED")) {
|
|
125
|
-
return { kind: "stopped" };
|
|
126
|
-
}
|
|
127
|
-
throw cause;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
//# sourceMappingURL=manager-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manager-client.js","sourceRoot":"","sources":["../../../src/daemon/lifecycle/manager-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/daemon/lifecycle/manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAC;AAcrG,wBAAsB,UAAU,CAAC,cAAc,EAAE,qBAAqB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkN1G"}
|
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
import { setTimeout } from "node:timers/promises";
|
|
2
|
-
import { acquireManagerLock } from "../../storage/daemon/manager-lock.js";
|
|
3
|
-
import { serveLocalControl } from "../control/local-server.js";
|
|
4
|
-
import { decodeKnownLifecycleCommand, } from "../control/protocol.js";
|
|
5
|
-
import { discardRolledBackData } from "../upgrades/data.js";
|
|
6
|
-
import { surviveUnhandledRejections } from "./unhandled-rejection.js";
|
|
7
|
-
import { WorkerLifecycleLog } from "./worker-lifecycle-log.js";
|
|
8
|
-
import { decodeWorkerLaunch, WorkerProcess, WorkerStartupError } from "./worker-process.js";
|
|
9
|
-
export async function runManager(stateDirectory, signal) {
|
|
10
|
-
const release = await acquireManagerLock(stateDirectory);
|
|
11
|
-
if (release === null) {
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
const rejectionGuard = surviveUnhandledRejections("manager");
|
|
15
|
-
rejectionGuard.bindStateDirectory(stateDirectory);
|
|
16
|
-
const shutdown = new AbortController();
|
|
17
|
-
const combined = AbortSignal.any([signal, shutdown.signal]);
|
|
18
|
-
const lifecycle = new WorkerLifecycleLog(stateDirectory);
|
|
19
|
-
const workerExits = new Set();
|
|
20
|
-
let worker;
|
|
21
|
-
let switchState = null;
|
|
22
|
-
let queue = Promise.resolve();
|
|
23
|
-
const status = () => ({
|
|
24
|
-
kind: "status",
|
|
25
|
-
protocolVersion: 2,
|
|
26
|
-
worker: worker?.running ? { pid: worker.pid, version: worker.launch.version } : null,
|
|
27
|
-
});
|
|
28
|
-
const start = async (launch) => {
|
|
29
|
-
combined.throwIfAborted();
|
|
30
|
-
await worker?.close();
|
|
31
|
-
const replacement = new WorkerProcess(launch, combined, process.env);
|
|
32
|
-
worker = replacement;
|
|
33
|
-
// Reading pid throws only when spawn failed outright; ready is rejected
|
|
34
|
-
// with worker_spawn_failed in that case, so consume it uniformly below.
|
|
35
|
-
let pid = null;
|
|
36
|
-
try {
|
|
37
|
-
pid = replacement.pid;
|
|
38
|
-
}
|
|
39
|
-
catch {
|
|
40
|
-
// The process never launched; there is no pid to record.
|
|
41
|
-
}
|
|
42
|
-
if (pid !== null) {
|
|
43
|
-
lifecycle.started(pid, launch.version);
|
|
44
|
-
}
|
|
45
|
-
try {
|
|
46
|
-
await replacement.ready;
|
|
47
|
-
}
|
|
48
|
-
catch (cause) {
|
|
49
|
-
await replacement.close();
|
|
50
|
-
await replacement.streamsSettled;
|
|
51
|
-
const code = cause instanceof WorkerStartupError ? cause.code : "worker_start_failed";
|
|
52
|
-
const message = cause instanceof WorkerStartupError ? cause.message : "The new daemon could not start";
|
|
53
|
-
lifecycle.startFailed(launch.version, pid, code, message, replacement.stderr);
|
|
54
|
-
throw cause;
|
|
55
|
-
}
|
|
56
|
-
if (pid !== null) {
|
|
57
|
-
lifecycle.ready(pid, launch.version);
|
|
58
|
-
}
|
|
59
|
-
const exited = replacement.exited.then(async () => {
|
|
60
|
-
// Wait for the stderr pipe to drain before freezing the tail into
|
|
61
|
-
// the log; the restart below is not delayed by this.
|
|
62
|
-
await replacement.streamsSettled;
|
|
63
|
-
if (pid !== null) {
|
|
64
|
-
lifecycle.exited(pid, launch.version, replacement.exit, replacement.stderr);
|
|
65
|
-
}
|
|
66
|
-
try {
|
|
67
|
-
await setTimeout(1000, undefined, { signal: combined });
|
|
68
|
-
const restart = queue.then(async () => {
|
|
69
|
-
if (worker === replacement && !combined.aborted) {
|
|
70
|
-
await start(replacement.launch);
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
queue = restart.catch(() => undefined);
|
|
74
|
-
await restart;
|
|
75
|
-
}
|
|
76
|
-
catch {
|
|
77
|
-
if (!combined.aborted) {
|
|
78
|
-
const message = "The working daemon could not be restarted; run mobius start to retry";
|
|
79
|
-
process.stderr.write(`${message}\n`);
|
|
80
|
-
lifecycle.restartFailed(launch.version, message);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
workerExits.add(exited);
|
|
85
|
-
void exited.finally(() => workerExits.delete(exited));
|
|
86
|
-
};
|
|
87
|
-
const switchWorker = async (transition) => {
|
|
88
|
-
try {
|
|
89
|
-
await start(transition.next);
|
|
90
|
-
switchState = { ...transition, kind: "switched" };
|
|
91
|
-
}
|
|
92
|
-
catch (cause) {
|
|
93
|
-
combined.throwIfAborted();
|
|
94
|
-
const code = cause instanceof WorkerStartupError ? cause.code : "worker_start_failed";
|
|
95
|
-
const message = cause instanceof WorkerStartupError ? cause.message : "The new daemon could not start";
|
|
96
|
-
// Keep the result in the surviving manager for the restored worker.
|
|
97
|
-
switchState = {
|
|
98
|
-
...transition,
|
|
99
|
-
kind: "rolled-back",
|
|
100
|
-
code,
|
|
101
|
-
message,
|
|
102
|
-
stdout: cause instanceof WorkerStartupError ? cause.stdout : "",
|
|
103
|
-
stderr: cause instanceof WorkerStartupError ? cause.stderr : "",
|
|
104
|
-
retryAfter: Date.now() + 8 * 3_600_000,
|
|
105
|
-
};
|
|
106
|
-
await start(transition.previous);
|
|
107
|
-
await discardRolledBackData(transition.next.version, combined);
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
const handle = async (value, requestSignal) => {
|
|
111
|
-
const command = decodeKnownLifecycleCommand(value);
|
|
112
|
-
if (command === null) {
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
115
|
-
// The new worker needs its source version before it can announce readiness.
|
|
116
|
-
if (command.kind === "switch-status" && !command.wait) {
|
|
117
|
-
return { kind: "switch-status", state: switchState };
|
|
118
|
-
}
|
|
119
|
-
const result = queue.then(async () => {
|
|
120
|
-
requestSignal.throwIfAborted();
|
|
121
|
-
switch (command.kind) {
|
|
122
|
-
case "switch-status":
|
|
123
|
-
return { kind: "switch-status", state: switchState };
|
|
124
|
-
case "status":
|
|
125
|
-
return status();
|
|
126
|
-
case "stop":
|
|
127
|
-
return { kind: "stopped" };
|
|
128
|
-
case "switch": {
|
|
129
|
-
const state = switchState;
|
|
130
|
-
if (state?.kind === "switching" ||
|
|
131
|
-
(state?.kind === "rolled-back" && state.retryAfter > Date.now())) {
|
|
132
|
-
return {
|
|
133
|
-
kind: "error",
|
|
134
|
-
code: "switch_blocked",
|
|
135
|
-
message: "A switch is in progress or cooling down",
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
if (!worker?.running) {
|
|
139
|
-
return {
|
|
140
|
-
kind: "error",
|
|
141
|
-
code: "worker_unavailable",
|
|
142
|
-
message: "There is no working daemon to replace",
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
const next = await decodeWorkerLaunch(command.launch);
|
|
146
|
-
if (next.version === worker.launch.version) {
|
|
147
|
-
return {
|
|
148
|
-
kind: "error",
|
|
149
|
-
code: "already_current",
|
|
150
|
-
message: "The requested version is already running",
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
switchState = {
|
|
154
|
-
kind: "switching",
|
|
155
|
-
id: command.id,
|
|
156
|
-
context: command.context,
|
|
157
|
-
previous: worker.launch,
|
|
158
|
-
next,
|
|
159
|
-
};
|
|
160
|
-
return { kind: "switching" };
|
|
161
|
-
}
|
|
162
|
-
case "ensure": {
|
|
163
|
-
const launch = await decodeWorkerLaunch(command.launch);
|
|
164
|
-
if (!worker?.running ||
|
|
165
|
-
worker.launch.version !== launch.version ||
|
|
166
|
-
worker.launch.entry !== launch.entry ||
|
|
167
|
-
worker.launch.executable !== launch.executable) {
|
|
168
|
-
await start(launch);
|
|
169
|
-
}
|
|
170
|
-
await worker?.ready;
|
|
171
|
-
return status();
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
|
-
queue = result.catch(() => undefined);
|
|
176
|
-
return await result;
|
|
177
|
-
};
|
|
178
|
-
try {
|
|
179
|
-
await serveLocalControl(stateDirectory, "manager", combined, handle, undefined, (response) => {
|
|
180
|
-
if (typeof response === "object" &&
|
|
181
|
-
response !== null &&
|
|
182
|
-
"kind" in response &&
|
|
183
|
-
response.kind === "switching") {
|
|
184
|
-
const pending = queue.then(async () => {
|
|
185
|
-
const state = switchState;
|
|
186
|
-
if (state?.kind === "switching") {
|
|
187
|
-
await switchWorker(state);
|
|
188
|
-
}
|
|
189
|
-
});
|
|
190
|
-
queue = pending.catch(() => {
|
|
191
|
-
if (!combined.aborted) {
|
|
192
|
-
process.stderr.write("Daemon switch or rollback failed; run mobius start to retry.\n");
|
|
193
|
-
}
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
if (typeof response === "object" &&
|
|
197
|
-
response !== null &&
|
|
198
|
-
"kind" in response &&
|
|
199
|
-
response.kind === "stopped") {
|
|
200
|
-
shutdown.abort();
|
|
201
|
-
}
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
finally {
|
|
205
|
-
shutdown.abort();
|
|
206
|
-
await queue;
|
|
207
|
-
await worker?.close();
|
|
208
|
-
// Exit observers drain output and write the final lifecycle entry. Keep
|
|
209
|
-
// ownership until they finish, before quit can report the manager gone.
|
|
210
|
-
await Promise.all(workerExits);
|
|
211
|
-
rejectionGuard.release();
|
|
212
|
-
await release();
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
//# sourceMappingURL=manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/daemon/lifecycle/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAEH,2BAA2B,GAG9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE5F,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,cAAqC,EAAE,MAAmB;IACvF,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACzD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO;IACX,CAAC;IACD,MAAM,cAAc,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;IAC7D,cAAc,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAiB,CAAC;IAC7C,IAAI,MAAiC,CAAC;IACtC,IAAI,WAAW,GAAoC,IAAI,CAAC;IACxD,IAAI,KAAK,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,GAAsB,EAAE,CAAC,CAAC;QACrC,IAAI,EAAE,QAAQ;QACd,eAAe,EAAE,CAAC;QAClB,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI;KACvF,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,KAAK,EAAE,MAAoB,EAAiB,EAAE;QACxD,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC1B,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACrE,MAAM,GAAG,WAAW,CAAC;QACrB,wEAAwE;QACxE,wEAAwE;QACxE,IAAI,GAAG,GAAkB,IAAI,CAAC;QAC9B,IAAI,CAAC;YACD,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACL,yDAAyD;QAC7D,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACf,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC;YACD,MAAM,WAAW,CAAC,KAAK,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,WAAW,CAAC,cAAc,CAAC;YACjC,MAAM,IAAI,GAAG,KAAK,YAAY,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC;YACtF,MAAM,OAAO,GAAG,KAAK,YAAY,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAgC,CAAC;YACvG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YAC9E,MAAM,KAAK,CAAC;QAChB,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACf,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAC9C,kEAAkE;YAClE,qDAAqD;YACrD,MAAM,WAAW,CAAC,cAAc,CAAC;YACjC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACf,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,CAAC;gBACD,MAAM,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACxD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;oBAClC,IAAI,MAAM,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;wBAC9C,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;oBACpC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBACvC,MAAM,OAAO,CAAC;YAClB,CAAC;YAAC,MAAM,CAAC;gBACL,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,OAAO,GAAG,sEAAsE,CAAC;oBACvF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;oBACrC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACrD,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;QACH,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxB,KAAK,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,KAAK,EACtB,UAAoE,EACvD,EAAE;QACf,IAAI,CAAC;YACD,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC7B,WAAW,GAAG,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,KAAK,YAAY,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC;YACtF,MAAM,OAAO,GAAG,KAAK,YAAY,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAgC,CAAC;YACvG,oEAAoE;YACpE,WAAW,GAAG;gBACV,GAAG,UAAU;gBACb,IAAI,EAAE,aAAa;gBACnB,IAAI;gBACJ,OAAO;gBACP,MAAM,EAAE,KAAK,YAAY,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAC/D,MAAM,EAAE,KAAK,YAAY,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAC/D,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS;aACzC,CAAC;YACF,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACjC,MAAM,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACnE,CAAC;IACL,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,KAAK,EAAE,KAAc,EAAE,aAA0B,EAAqC,EAAE;QACnG,MAAM,OAAO,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,4EAA4E;QAC5E,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpD,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACzD,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAgC,EAAE;YAC7D,aAAa,CAAC,cAAc,EAAE,CAAC;YAC/B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,eAAe;oBAChB,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;gBACzD,KAAK,QAAQ;oBACT,OAAO,MAAM,EAAE,CAAC;gBACpB,KAAK,MAAM;oBACP,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gBAC/B,KAAK,QAAQ,EAAE,CAAC;oBACZ,MAAM,KAAK,GAAG,WAAW,CAAC;oBAC1B,IACI,KAAK,EAAE,IAAI,KAAK,WAAW;wBAC3B,CAAC,KAAK,EAAE,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAClE,CAAC;wBACC,OAAO;4BACH,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,gBAAgB;4BACtB,OAAO,EAAE,yCAAyC;yBACrD,CAAC;oBACN,CAAC;oBACD,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;wBACnB,OAAO;4BACH,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,oBAAoB;4BAC1B,OAAO,EAAE,uCAAuC;yBACnD,CAAC;oBACN,CAAC;oBACD,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACtD,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACzC,OAAO;4BACH,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,iBAAiB;4BACvB,OAAO,EAAE,0CAA0C;yBACtD,CAAC;oBACN,CAAC;oBACD,WAAW,GAAG;wBACV,IAAI,EAAE,WAAW;wBACjB,EAAE,EAAE,OAAO,CAAC,EAAE;wBACd,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,QAAQ,EAAE,MAAM,CAAC,MAAM;wBACvB,IAAI;qBACP,CAAC;oBACF,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;gBACjC,CAAC;gBACD,KAAK,QAAQ,EAAE,CAAC;oBACZ,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACxD,IACI,CAAC,MAAM,EAAE,OAAO;wBAChB,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO;wBACxC,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;wBACpC,MAAM,CAAC,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,EAChD,CAAC;wBACC,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;oBACxB,CAAC;oBACD,MAAM,MAAM,EAAE,KAAK,CAAC;oBACpB,OAAO,MAAM,EAAE,CAAC;gBACpB,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;QACH,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACtC,OAAO,MAAM,MAAM,CAAC;IACxB,CAAC,CAAC;IACF,IAAI,CAAC;QACD,MAAM,iBAAiB,CAAC,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;YACzF,IACI,OAAO,QAAQ,KAAK,QAAQ;gBAC5B,QAAQ,KAAK,IAAI;gBACjB,MAAM,IAAI,QAAQ;gBAClB,QAAQ,CAAC,IAAI,KAAK,WAAW,EAC/B,CAAC;gBACC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;oBAClC,MAAM,KAAK,GAAG,WAAW,CAAC;oBAC1B,IAAI,KAAK,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;wBAC9B,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;oBAC9B,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;oBACvB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;oBAC3F,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;YACD,IACI,OAAO,QAAQ,KAAK,QAAQ;gBAC5B,QAAQ,KAAK,IAAI;gBACjB,MAAM,IAAI,QAAQ;gBAClB,QAAQ,CAAC,IAAI,KAAK,SAAS,EAC7B,CAAC;gBACC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;YAAS,CAAC;QACP,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,KAAK,CAAC;QACZ,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC;QACtB,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/B,cAAc,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,EAAE,CAAC;IACpB,CAAC;AACL,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { InstallationDirectory } from "../../engine/storage/installation/installation-files.ts";
|
|
2
|
-
export declare class WorkerLifecycleLog {
|
|
3
|
-
#private;
|
|
4
|
-
constructor(stateDirectory: InstallationDirectory);
|
|
5
|
-
readonly started: (pid: number, version: string) => void;
|
|
6
|
-
readonly ready: (pid: number, version: string) => void;
|
|
7
|
-
readonly exited: (pid: number, version: string, exit: {
|
|
8
|
-
readonly code: number | null;
|
|
9
|
-
readonly signal: string | null;
|
|
10
|
-
}, stderr: string) => void;
|
|
11
|
-
readonly startFailed: (version: string, pid: number | null, code: string, message: string, stderr: string) => void;
|
|
12
|
-
readonly restartFailed: (version: string, message: string) => void;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=worker-lifecycle-log.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-lifecycle-log.d.ts","sourceRoot":"","sources":["../../../src/daemon/lifecycle/worker-lifecycle-log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAC;AA0BrG,qBAAa,kBAAkB;;IAG3B,YAAY,cAAc,EAAE,qBAAqB,EAShD;IAED,QAAQ,CAAC,OAAO,QAAS,MAAM,WAAW,MAAM,KAAG,IAAI,CAErD;IAEF,QAAQ,CAAC,KAAK,QAAS,MAAM,WAAW,MAAM,KAAG,IAAI,CAEnD;IAEF,QAAQ,CAAC,MAAM,QACN,MAAM,WACF,MAAM,QACT;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,UAC9D,MAAM,KACf,IAAI,CASL;IAEF,QAAQ,CAAC,WAAW,YACP,MAAM,OACV,MAAM,GAAG,IAAI,QACZ,MAAM,WACH,MAAM,UACP,MAAM,KACf,IAAI,CASL;IAEF,QAAQ,CAAC,aAAa,YAAa,MAAM,WAAW,MAAM,KAAG,IAAI,CAE/D;CAOL"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { BoundedLineLog } from "../../engine/storage/logs/bounded-log.js";
|
|
2
|
-
import { logDirectory, WORKER_LIFECYCLE_LOG_FILENAME } from "../../engine/storage/logs/log-files.js";
|
|
3
|
-
const MAXIMUM_LIFECYCLE_LOG_BYTES = 512 * 1_024;
|
|
4
|
-
const MAXIMUM_TEXT_BYTES = 2_048;
|
|
5
|
-
function toLogText(value) {
|
|
6
|
-
// Keep each entry on one line even when the captured text contains newlines,
|
|
7
|
-
// and keep the END of the text: the fatal error is at the tail, so a prefix
|
|
8
|
-
// cut would preserve noise and drop the cause of death.
|
|
9
|
-
const singleLine = Array.from(value, (character) => {
|
|
10
|
-
const code = character.charCodeAt(0);
|
|
11
|
-
return code < 32 || code === 127 ? " " : character;
|
|
12
|
-
}).join("");
|
|
13
|
-
return singleLine.slice(-MAXIMUM_TEXT_BYTES);
|
|
14
|
-
}
|
|
15
|
-
// The manager is the only process that outlives every worker, so it is the only
|
|
16
|
-
// witness of how a worker died. This local log records each worker start,
|
|
17
|
-
// readiness, and death (exit code or killing signal, with the captured stderr
|
|
18
|
-
// tail) at a version-stable path, so a silent death like SIGHUP or an
|
|
19
|
-
// out-of-memory kill can be attributed after the fact.
|
|
20
|
-
//
|
|
21
|
-
// The log is diagnostic only: construction and writes are best-effort and never
|
|
22
|
-
// throw, so a broken log can never block the lifecycle it observes.
|
|
23
|
-
export class WorkerLifecycleLog {
|
|
24
|
-
#log;
|
|
25
|
-
constructor(stateDirectory) {
|
|
26
|
-
this.#log = new BoundedLineLog(logDirectory(stateDirectory), WORKER_LIFECYCLE_LOG_FILENAME, MAXIMUM_LIFECYCLE_LOG_BYTES, (cause) => {
|
|
27
|
-
process.stderr.write(`The worker lifecycle log could not be written: ${String(cause)}\n`);
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
started = (pid, version) => {
|
|
31
|
-
this.#append({ kind: "worker_started", pid, version });
|
|
32
|
-
};
|
|
33
|
-
ready = (pid, version) => {
|
|
34
|
-
this.#append({ kind: "worker_ready", pid, version });
|
|
35
|
-
};
|
|
36
|
-
exited = (pid, version, exit, stderr) => {
|
|
37
|
-
this.#append({
|
|
38
|
-
kind: "worker_exited",
|
|
39
|
-
pid,
|
|
40
|
-
version,
|
|
41
|
-
exitCode: exit.code,
|
|
42
|
-
signal: exit.signal,
|
|
43
|
-
stderr: toLogText(stderr),
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
startFailed = (version, pid, code, message, stderr) => {
|
|
47
|
-
this.#append({
|
|
48
|
-
kind: "worker_start_failed",
|
|
49
|
-
pid,
|
|
50
|
-
version,
|
|
51
|
-
code,
|
|
52
|
-
message: toLogText(message),
|
|
53
|
-
stderr: toLogText(stderr),
|
|
54
|
-
});
|
|
55
|
-
};
|
|
56
|
-
restartFailed = (version, message) => {
|
|
57
|
-
this.#append({ kind: "worker_restart_failed", version, message: toLogText(message) });
|
|
58
|
-
};
|
|
59
|
-
#append = (entry) => {
|
|
60
|
-
this.#log.record(`Mobius worker lifecycle ${JSON.stringify({ ...entry, timestamp: new Date().toISOString() })}`);
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=worker-lifecycle-log.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-lifecycle-log.js","sourceRoot":"","sources":["../../../src/daemon/lifecycle/worker-lifecycle-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { type WorkerLaunch } from "../control/protocol.ts";
|
|
2
|
-
export declare function decodeWorkerLaunch(value: unknown): Promise<WorkerLaunch>;
|
|
3
|
-
export declare class WorkerStartupError extends Error {
|
|
4
|
-
readonly code: string;
|
|
5
|
-
readonly stdout: string;
|
|
6
|
-
readonly stderr: string;
|
|
7
|
-
constructor(code: string, message: string, options?: ErrorOptions, stdout?: string, stderr?: string);
|
|
8
|
-
}
|
|
9
|
-
export interface WorkerExit {
|
|
10
|
-
readonly code: number | null;
|
|
11
|
-
readonly signal: NodeJS.Signals | null;
|
|
12
|
-
}
|
|
13
|
-
export declare class WorkerProcess {
|
|
14
|
-
#private;
|
|
15
|
-
readonly exited: Promise<void>;
|
|
16
|
-
readonly streamsSettled: Promise<void>;
|
|
17
|
-
readonly launch: WorkerLaunch;
|
|
18
|
-
readonly ready: Promise<unknown>;
|
|
19
|
-
constructor(launch: WorkerLaunch, signal: AbortSignal, environment: NodeJS.ProcessEnv);
|
|
20
|
-
get running(): boolean;
|
|
21
|
-
get pid(): number;
|
|
22
|
-
get exit(): WorkerExit;
|
|
23
|
-
get stderr(): string;
|
|
24
|
-
readonly close: () => Promise<void>;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=worker-process.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-process.d.ts","sourceRoot":"","sources":["../../../src/daemon/lifecycle/worker-process.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,wBAAwB,CAAC;AAEzE,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAU9E;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,YAAY,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,EAAE,MAAM,SAAK,EAAE,MAAM,SAAK,EAK1F;CACJ;AAKD,MAAM,WAAW,UAAU;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;CAC1C;AAED,qBAAa,aAAa;;IAQtB,QAAQ,CAAC,MAAM,gBAAwB;IAIvC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,CAAyB;IAC/D,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjC,YAAY,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,UAAU,EA6DpF;IAOD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,GAAG,IAAI,MAAM,CAMhB;IAID,IAAI,IAAI,IAAI,UAAU,CAKrB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,QAAQ,CAAC,KAAK,QAAa,OAAO,CAAC,IAAI,CAAC,CAUtC;CA0BL"}
|