@antelopejs/dms-ai 0.1.5 → 0.1.6
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/README.md +7 -0
- package/dist/constants/sidecar.d.ts +3 -0
- package/dist/constants/sidecar.js +4 -1
- package/dist/constants/sidecar.js.map +1 -1
- package/dist/lifecycle/sidecar-owner.d.ts +13 -0
- package/dist/lifecycle/sidecar-owner.js +89 -0
- package/dist/lifecycle/sidecar-owner.js.map +1 -0
- package/dist/lifecycle/spawn-sidecar.js +50 -136
- package/dist/lifecycle/spawn-sidecar.js.map +1 -1
- package/dist/lifecycle/terminate-process.d.ts +1 -0
- package/dist/lifecycle/terminate-process.js +34 -0
- package/dist/lifecycle/terminate-process.js.map +1 -0
- package/package.json +2 -1
- package/sidecar/dist/index.d.ts +4 -0
- package/sidecar/dist/index.js +7 -3
- package/sidecar/dist/index.js.map +1 -1
package/README.md
CHANGED
|
@@ -25,6 +25,12 @@ The module starts its bundled sidecar with the project as its working directory.
|
|
|
25
25
|
set `DMS_AI=0` before starting the backend to disable the sidecar. If
|
|
26
26
|
`@antelopejs/dms-builder` is installed, the assistant also exposes its builder integration.
|
|
27
27
|
|
|
28
|
+
The sidecar is a child process of the backend. A hot reload of the module keeps it running, unless
|
|
29
|
+
its build changed. Stopping the project stops it: Ctrl+C reaches it through the terminal's process
|
|
30
|
+
group, and `@antelopejs/core` 1.13.2 or later terminates it on shutdown (Linux only). A sidecar left
|
|
31
|
+
running by a backend that crashed or was killed is stopped when the next run starts; otherwise it
|
|
32
|
+
exits on its own after 15 idle minutes.
|
|
33
|
+
|
|
28
34
|
The assistant is a development tool, on purpose: the backend and the sidecar refuse to run with
|
|
29
35
|
`NODE_ENV=production`, and the chat is reserved to owners. Remote *development* is supported (see
|
|
30
36
|
below); a hosted use would be a separate product with its own design.
|
|
@@ -194,3 +200,4 @@ pnpm --dir frontend-vue typecheck
|
|
|
194
200
|
```
|
|
195
201
|
|
|
196
202
|
`pnpm test:frontend-registration` checks backend registration and sidecar inputs with the sidecar launcher mocked.
|
|
203
|
+
`pnpm test:sidecar-lifecycle` starts a stand-in sidecar to check that a hot reload keeps it, a sidecar left by an earlier run is stopped, and Ctrl+C on the backend stops it.
|
|
@@ -14,6 +14,9 @@ export declare const SIDECAR_LOG_FILE_NAME = "sidecar.log";
|
|
|
14
14
|
export declare const SIDECAR_HEALTH_PATH = "/health";
|
|
15
15
|
export declare const SIDECAR_HEALTH_TIMEOUT_MS = 1000;
|
|
16
16
|
export declare const SIDECAR_LOCK_POLL_INTERVAL_MS = 100;
|
|
17
|
+
export declare const SIDECAR_STOP_TIMEOUT_MS = 5000;
|
|
18
|
+
export declare const SIDECAR_EXIT_POLL_INTERVAL_MS = 100;
|
|
19
|
+
export declare const SIDECAR_OWNER_KEY = "@antelopejs/dms-ai/sidecar-owner";
|
|
17
20
|
export declare const SIDECAR_BUILD_ID_FLAG = "--build-id";
|
|
18
21
|
export declare const SIDECAR_MODULE_ROOTS_FLAG = "--module-roots";
|
|
19
22
|
export declare const SIDECAR_SKILL_DIRS_FLAG = "--skill-dirs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HOST_ORIGIN_DEPRECATION_WARNING = exports.SIDECAR_UNAVAILABLE_BODY = exports.SIDECAR_UNAVAILABLE_STATUS = exports.SIDECAR_AUTH_HEADER = exports.SIDECAR_LOOPBACK_HOST = exports.SIDECAR_BUILD_ID_HASH_ALGORITHM = exports.SIDECAR_DIST_EXTENSION = exports.MODULE_ROOTS_TIMEOUT_MS = exports.SIDECAR_BACKEND_URL_FLAG = exports.SIDECAR_BUILDER_FLAG = exports.SIDECAR_SKILL_DIRS_FLAG = exports.SIDECAR_MODULE_ROOTS_FLAG = exports.SIDECAR_BUILD_ID_FLAG = exports.SIDECAR_LOCK_POLL_INTERVAL_MS = exports.SIDECAR_HEALTH_TIMEOUT_MS = exports.SIDECAR_HEALTH_PATH = exports.SIDECAR_LOG_FILE_NAME = exports.SIDECAR_LOCK_FILE_NAME = exports.SIDECAR_CACHE_DIR_SEGMENTS = exports.SIDECAR_SUCCESS_EXIT_CODE = exports.SIDECAR_DIST_REL = exports.SIDECAR_ENV_DISABLE_KEY = exports.SIDECAR_DISABLED_FLAG = exports.SIDECAR_LOG_PREFIX = exports.SIDECAR_RESPAWN_DELAY_MS = exports.SIDECAR_RESPAWN_WINDOW_MS = exports.SIDECAR_RESPAWN_MAX = exports.SIDECAR_SPAWN_TIMEOUT_MS = exports.SIDECAR_BIN_NAME = void 0;
|
|
3
|
+
exports.HOST_ORIGIN_DEPRECATION_WARNING = exports.SIDECAR_UNAVAILABLE_BODY = exports.SIDECAR_UNAVAILABLE_STATUS = exports.SIDECAR_AUTH_HEADER = exports.SIDECAR_LOOPBACK_HOST = exports.SIDECAR_BUILD_ID_HASH_ALGORITHM = exports.SIDECAR_DIST_EXTENSION = exports.MODULE_ROOTS_TIMEOUT_MS = exports.SIDECAR_BACKEND_URL_FLAG = exports.SIDECAR_BUILDER_FLAG = exports.SIDECAR_SKILL_DIRS_FLAG = exports.SIDECAR_MODULE_ROOTS_FLAG = exports.SIDECAR_BUILD_ID_FLAG = exports.SIDECAR_OWNER_KEY = exports.SIDECAR_EXIT_POLL_INTERVAL_MS = exports.SIDECAR_STOP_TIMEOUT_MS = exports.SIDECAR_LOCK_POLL_INTERVAL_MS = exports.SIDECAR_HEALTH_TIMEOUT_MS = exports.SIDECAR_HEALTH_PATH = exports.SIDECAR_LOG_FILE_NAME = exports.SIDECAR_LOCK_FILE_NAME = exports.SIDECAR_CACHE_DIR_SEGMENTS = exports.SIDECAR_SUCCESS_EXIT_CODE = exports.SIDECAR_DIST_REL = exports.SIDECAR_ENV_DISABLE_KEY = exports.SIDECAR_DISABLED_FLAG = exports.SIDECAR_LOG_PREFIX = exports.SIDECAR_RESPAWN_DELAY_MS = exports.SIDECAR_RESPAWN_WINDOW_MS = exports.SIDECAR_RESPAWN_MAX = exports.SIDECAR_SPAWN_TIMEOUT_MS = exports.SIDECAR_BIN_NAME = void 0;
|
|
4
4
|
exports.SIDECAR_BIN_NAME = "dms-ai-sidecar";
|
|
5
5
|
exports.SIDECAR_SPAWN_TIMEOUT_MS = 10_000;
|
|
6
6
|
exports.SIDECAR_RESPAWN_MAX = 3;
|
|
@@ -21,6 +21,9 @@ exports.SIDECAR_LOG_FILE_NAME = "sidecar.log";
|
|
|
21
21
|
exports.SIDECAR_HEALTH_PATH = "/health";
|
|
22
22
|
exports.SIDECAR_HEALTH_TIMEOUT_MS = 1000;
|
|
23
23
|
exports.SIDECAR_LOCK_POLL_INTERVAL_MS = 100;
|
|
24
|
+
exports.SIDECAR_STOP_TIMEOUT_MS = 5_000;
|
|
25
|
+
exports.SIDECAR_EXIT_POLL_INTERVAL_MS = 100;
|
|
26
|
+
exports.SIDECAR_OWNER_KEY = "@antelopejs/dms-ai/sidecar-owner";
|
|
24
27
|
exports.SIDECAR_BUILD_ID_FLAG = "--build-id";
|
|
25
28
|
exports.SIDECAR_MODULE_ROOTS_FLAG = "--module-roots";
|
|
26
29
|
exports.SIDECAR_SKILL_DIRS_FLAG = "--skill-dirs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../../src/constants/sidecar.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,gBAAgB,CAAC;AACpC,QAAA,wBAAwB,GAAG,MAAM,CAAC;AAClC,QAAA,mBAAmB,GAAG,CAAC,CAAC;AACxB,QAAA,yBAAyB,GAAG,MAAM,CAAC;AACnC,QAAA,wBAAwB,GAAG,GAAG,CAAC;AAC/B,QAAA,kBAAkB,GAAG,UAAU,CAAC;AAChC,QAAA,qBAAqB,GAAG,GAAG,CAAC;AAC5B,QAAA,uBAAuB,GAAG,QAAQ,CAAC;AACnC,QAAA,gBAAgB,GAAG,6BAA6B,CAAC;AACjD,QAAA,yBAAyB,GAAG,CAAC,CAAC;AAC9B,QAAA,0BAA0B,GAAG;IACxC,cAAc;IACd,QAAQ;IACR,QAAQ;CACA,CAAC;AACE,QAAA,sBAAsB,GAAG,cAAc,CAAC;AACxC,QAAA,qBAAqB,GAAG,aAAa,CAAC;AACtC,QAAA,mBAAmB,GAAG,SAAS,CAAC;AAChC,QAAA,yBAAyB,GAAG,IAAI,CAAC;AACjC,QAAA,6BAA6B,GAAG,GAAG,CAAC;AACpC,QAAA,qBAAqB,GAAG,YAAY,CAAC;AACrC,QAAA,yBAAyB,GAAG,gBAAgB,CAAC;AAC7C,QAAA,uBAAuB,GAAG,cAAc,CAAC;AACzC,QAAA,oBAAoB,GAAG,mBAAmB,CAAC;AAC3C,QAAA,wBAAwB,GAAG,eAAe,CAAC;AAC3C,QAAA,uBAAuB,GAAG,KAAK,CAAC;AAChC,QAAA,sBAAsB,GAAG,KAAK,CAAC;AAC/B,QAAA,+BAA+B,GAAG,QAAQ,CAAC;AAC3C,QAAA,qBAAqB,GAAG,WAAW,CAAC;AACpC,QAAA,mBAAmB,GAAG,gBAAgB,CAAC;AAGvC,QAAA,0BAA0B,GAAG,GAAG,CAAC;AACjC,QAAA,wBAAwB,GAAG,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;AAC5D,QAAA,+BAA+B,GAAG,GAAG,0BAAkB,8FAA8F,CAAC"}
|
|
1
|
+
{"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../../src/constants/sidecar.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,gBAAgB,CAAC;AACpC,QAAA,wBAAwB,GAAG,MAAM,CAAC;AAClC,QAAA,mBAAmB,GAAG,CAAC,CAAC;AACxB,QAAA,yBAAyB,GAAG,MAAM,CAAC;AACnC,QAAA,wBAAwB,GAAG,GAAG,CAAC;AAC/B,QAAA,kBAAkB,GAAG,UAAU,CAAC;AAChC,QAAA,qBAAqB,GAAG,GAAG,CAAC;AAC5B,QAAA,uBAAuB,GAAG,QAAQ,CAAC;AACnC,QAAA,gBAAgB,GAAG,6BAA6B,CAAC;AACjD,QAAA,yBAAyB,GAAG,CAAC,CAAC;AAC9B,QAAA,0BAA0B,GAAG;IACxC,cAAc;IACd,QAAQ;IACR,QAAQ;CACA,CAAC;AACE,QAAA,sBAAsB,GAAG,cAAc,CAAC;AACxC,QAAA,qBAAqB,GAAG,aAAa,CAAC;AACtC,QAAA,mBAAmB,GAAG,SAAS,CAAC;AAChC,QAAA,yBAAyB,GAAG,IAAI,CAAC;AACjC,QAAA,6BAA6B,GAAG,GAAG,CAAC;AACpC,QAAA,uBAAuB,GAAG,KAAK,CAAC;AAChC,QAAA,6BAA6B,GAAG,GAAG,CAAC;AACpC,QAAA,iBAAiB,GAAG,kCAAkC,CAAC;AACvD,QAAA,qBAAqB,GAAG,YAAY,CAAC;AACrC,QAAA,yBAAyB,GAAG,gBAAgB,CAAC;AAC7C,QAAA,uBAAuB,GAAG,cAAc,CAAC;AACzC,QAAA,oBAAoB,GAAG,mBAAmB,CAAC;AAC3C,QAAA,wBAAwB,GAAG,eAAe,CAAC;AAC3C,QAAA,uBAAuB,GAAG,KAAK,CAAC;AAChC,QAAA,sBAAsB,GAAG,KAAK,CAAC;AAC/B,QAAA,+BAA+B,GAAG,QAAQ,CAAC;AAC3C,QAAA,qBAAqB,GAAG,WAAW,CAAC;AACpC,QAAA,mBAAmB,GAAG,gBAAgB,CAAC;AAGvC,QAAA,0BAA0B,GAAG,GAAG,CAAC;AACjC,QAAA,wBAAwB,GAAG,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;AAC5D,QAAA,+BAA+B,GAAG,GAAG,0BAAkB,8FAA8F,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ChildProcess } from "node:child_process";
|
|
2
|
+
export interface SidecarLaunch {
|
|
3
|
+
buildId: string;
|
|
4
|
+
spawn(): Promise<ChildProcess | null>;
|
|
5
|
+
waitForPort(pid: number): Promise<number | null>;
|
|
6
|
+
}
|
|
7
|
+
export interface SidecarOwner {
|
|
8
|
+
attach(launch: SidecarLaunch): Promise<void>;
|
|
9
|
+
revive(): Promise<void>;
|
|
10
|
+
getPort(): number | null;
|
|
11
|
+
hasGivenUp(): boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function getSidecarOwner(): SidecarOwner;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSidecarOwner = getSidecarOwner;
|
|
4
|
+
const logging_1 = require("@antelopejs/interface-core/logging");
|
|
5
|
+
const sidecar_1 = require("../constants/sidecar");
|
|
6
|
+
const respawn_tracker_1 = require("./respawn-tracker");
|
|
7
|
+
const terminate_process_1 = require("./terminate-process");
|
|
8
|
+
const ownerKey = Symbol.for(sidecar_1.SIDECAR_OWNER_KEY);
|
|
9
|
+
function getSidecarOwner() {
|
|
10
|
+
const registry = globalThis;
|
|
11
|
+
registry[ownerKey] ??= createSidecarOwner();
|
|
12
|
+
return registry[ownerKey];
|
|
13
|
+
}
|
|
14
|
+
function createSidecarOwner() {
|
|
15
|
+
const state = {
|
|
16
|
+
launch: null,
|
|
17
|
+
current: null,
|
|
18
|
+
inFlight: null,
|
|
19
|
+
hasGivenUp: false,
|
|
20
|
+
respawnTracker: (0, respawn_tracker_1.createRespawnTracker)(),
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
attach: (launch) => attach(state, launch),
|
|
24
|
+
revive: () => ensureRunning(state),
|
|
25
|
+
getPort: () => state.current?.port ?? null,
|
|
26
|
+
hasGivenUp: () => state.hasGivenUp,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function attach(state, launch) {
|
|
30
|
+
state.launch = launch;
|
|
31
|
+
state.hasGivenUp = false;
|
|
32
|
+
return ensureRunning(state);
|
|
33
|
+
}
|
|
34
|
+
function ensureRunning(state) {
|
|
35
|
+
const launch = state.launch;
|
|
36
|
+
if (launch === null || state.hasGivenUp)
|
|
37
|
+
return Promise.resolve();
|
|
38
|
+
if (state.inFlight !== null)
|
|
39
|
+
return state.inFlight;
|
|
40
|
+
if (state.current?.buildId === launch.buildId)
|
|
41
|
+
return Promise.resolve();
|
|
42
|
+
state.inFlight = replaceSidecar(state, launch).finally(() => {
|
|
43
|
+
state.inFlight = null;
|
|
44
|
+
});
|
|
45
|
+
return state.inFlight;
|
|
46
|
+
}
|
|
47
|
+
async function replaceSidecar(state, launch) {
|
|
48
|
+
await retireCurrent(state);
|
|
49
|
+
const child = await launch.spawn();
|
|
50
|
+
if (child === null)
|
|
51
|
+
return;
|
|
52
|
+
const owned = { child, buildId: launch.buildId, port: null };
|
|
53
|
+
state.current = owned;
|
|
54
|
+
child.on("exit", (code) => handleExit(state, owned, code));
|
|
55
|
+
child.on("error", (err) => logError("sidecar process error", err));
|
|
56
|
+
owned.port = await launch.waitForPort(child.pid ?? -1);
|
|
57
|
+
}
|
|
58
|
+
async function retireCurrent(state) {
|
|
59
|
+
const retired = state.current;
|
|
60
|
+
if (retired === null)
|
|
61
|
+
return;
|
|
62
|
+
state.current = null;
|
|
63
|
+
await (0, terminate_process_1.terminateProcess)(retired.child.pid, sidecar_1.SIDECAR_STOP_TIMEOUT_MS);
|
|
64
|
+
}
|
|
65
|
+
function handleExit(state, owned, code) {
|
|
66
|
+
if (state.current !== owned)
|
|
67
|
+
return;
|
|
68
|
+
state.current = null;
|
|
69
|
+
if (code === sidecar_1.SIDECAR_SUCCESS_EXIT_CODE) {
|
|
70
|
+
logging_1.Logging.Info(`${sidecar_1.SIDECAR_LOG_PREFIX} sidecar exited gracefully`);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
scheduleRespawnIfBudget(state);
|
|
74
|
+
}
|
|
75
|
+
function scheduleRespawnIfBudget(state) {
|
|
76
|
+
const now = Date.now();
|
|
77
|
+
if (!state.respawnTracker.hasBudget(now)) {
|
|
78
|
+
state.hasGivenUp = true;
|
|
79
|
+
logging_1.Logging.Error(`${sidecar_1.SIDECAR_LOG_PREFIX} sidecar crash budget exhausted, giving up`);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
state.respawnTracker.recordAttempt(now);
|
|
83
|
+
logging_1.Logging.Error(`${sidecar_1.SIDECAR_LOG_PREFIX} sidecar crashed, respawning in ${sidecar_1.SIDECAR_RESPAWN_DELAY_MS}ms`);
|
|
84
|
+
setTimeout(() => void ensureRunning(state), sidecar_1.SIDECAR_RESPAWN_DELAY_MS);
|
|
85
|
+
}
|
|
86
|
+
function logError(message, err) {
|
|
87
|
+
logging_1.Logging.Error(`${sidecar_1.SIDECAR_LOG_PREFIX} ${message}:`, err);
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=sidecar-owner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidecar-owner.js","sourceRoot":"","sources":["../../src/lifecycle/sidecar-owner.ts"],"names":[],"mappings":";;AAqDA,0CAIC;AAxDD,gEAA6D;AAC7D,kDAM8B;AAC9B,uDAA8E;AAC9E,2DAAuD;AAyCvD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,2BAAiB,CAAC,CAAC;AAE/C,SAAgB,eAAe;IAC7B,MAAM,QAAQ,GAAG,UAA2B,CAAC;IAC7C,QAAQ,CAAC,QAAQ,CAAC,KAAK,kBAAkB,EAAE,CAAC;IAC5C,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,KAAK,GAAe;QACxB,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,KAAK;QACjB,cAAc,EAAE,IAAA,sCAAoB,GAAE;KACvC,CAAC;IACF,OAAO;QACL,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;QACzC,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;QAClC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI;QAC1C,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,KAAiB,EAAE,MAAqB;IACtD,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;IACzB,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,aAAa,CAAC,KAAiB;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAClE,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC;IACnD,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IACxE,KAAK,CAAC,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QAC1D,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,QAAQ,CAAC;AACxB,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,KAAiB,EACjB,MAAqB;IAErB,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACnC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO;IAC3B,MAAM,KAAK,GAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3E,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3D,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC,CAAC;IACnE,KAAK,CAAC,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,KAAiB;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO;IAC7B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,MAAM,IAAA,oCAAgB,EAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,iCAAuB,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,UAAU,CACjB,KAAiB,EACjB,KAAmB,EACnB,IAAmB;IAEnB,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK;QAAE,OAAO;IACpC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,IAAI,IAAI,KAAK,mCAAyB,EAAE,CAAC;QACvC,iBAAO,CAAC,IAAI,CAAC,GAAG,4BAAkB,4BAA4B,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IACD,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAiB;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,iBAAO,CAAC,KAAK,CACX,GAAG,4BAAkB,4CAA4C,CAClE,CAAC;QACF,OAAO;IACT,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACxC,iBAAO,CAAC,KAAK,CACX,GAAG,4BAAkB,mCAAmC,kCAAwB,IAAI,CACrF,CAAC;IACF,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,aAAa,CAAC,KAAK,CAAC,EAAE,kCAAwB,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,GAAY;IAC7C,iBAAO,CAAC,KAAK,CAAC,GAAG,4BAAkB,IAAI,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -19,18 +19,13 @@ const logging_1 = require("@antelopejs/interface-core/logging");
|
|
|
19
19
|
const module_1 = require("../constants/module");
|
|
20
20
|
const sidecar_1 = require("../constants/sidecar");
|
|
21
21
|
const build_id_1 = require("./build-id");
|
|
22
|
-
const
|
|
23
|
-
const
|
|
22
|
+
const sidecar_owner_1 = require("./sidecar-owner");
|
|
23
|
+
const terminate_process_1 = require("./terminate-process");
|
|
24
24
|
const state = {
|
|
25
|
-
child: null,
|
|
26
|
-
port: null,
|
|
27
|
-
respawnTracker: (0, respawn_tracker_1.createRespawnTracker)(),
|
|
28
|
-
hasGivenUp: false,
|
|
29
25
|
options: null,
|
|
30
|
-
inFlight: null,
|
|
31
26
|
};
|
|
32
27
|
function getSidecarPort() {
|
|
33
|
-
return
|
|
28
|
+
return (0, sidecar_owner_1.getSidecarOwner)().getPort();
|
|
34
29
|
}
|
|
35
30
|
function getSidecarToken() {
|
|
36
31
|
const root = state.options?.hostProjectRoot ?? process.cwd();
|
|
@@ -41,40 +36,24 @@ function getSidecarClientToken() {
|
|
|
41
36
|
return readLock(root)?.clientToken ?? null;
|
|
42
37
|
}
|
|
43
38
|
function isSidecarRunning() {
|
|
44
|
-
return
|
|
39
|
+
return getSidecarPort() !== null;
|
|
45
40
|
}
|
|
46
41
|
function hasSidecarGivenUp() {
|
|
47
|
-
return
|
|
42
|
+
return (0, sidecar_owner_1.getSidecarOwner)().hasGivenUp();
|
|
48
43
|
}
|
|
49
44
|
function isSidecarDisabled() {
|
|
50
45
|
return mustSkipSpawn();
|
|
51
46
|
}
|
|
52
47
|
async function spawnSidecar(opts) {
|
|
53
48
|
state.options = opts;
|
|
54
|
-
|
|
49
|
+
if (mustSkipSpawn())
|
|
50
|
+
return;
|
|
51
|
+
await (0, sidecar_owner_1.getSidecarOwner)().attach(createLaunch(opts));
|
|
55
52
|
}
|
|
56
53
|
async function ensureSidecarRunning() {
|
|
57
54
|
if (mustSkipSpawn())
|
|
58
55
|
return;
|
|
59
|
-
|
|
60
|
-
return;
|
|
61
|
-
if (state.options === null)
|
|
62
|
-
return;
|
|
63
|
-
if (state.inFlight !== null)
|
|
64
|
-
return state.inFlight;
|
|
65
|
-
if (state.port !== null) {
|
|
66
|
-
if (state.child !== null)
|
|
67
|
-
return;
|
|
68
|
-
if ((await probeHealth(state.port)) !== null)
|
|
69
|
-
return;
|
|
70
|
-
state.port = null;
|
|
71
|
-
}
|
|
72
|
-
if (state.child !== null)
|
|
73
|
-
return;
|
|
74
|
-
state.inFlight = ensureSidecar(state.options.hostProjectRoot).finally(() => {
|
|
75
|
-
state.inFlight = null;
|
|
76
|
-
});
|
|
77
|
-
return state.inFlight;
|
|
56
|
+
await (0, sidecar_owner_1.getSidecarOwner)().revive();
|
|
78
57
|
}
|
|
79
58
|
function mustSkipSpawn() {
|
|
80
59
|
if (process.env.NODE_ENV === module_1.PRODUCTION_NODE_ENV)
|
|
@@ -108,15 +87,17 @@ function readLock(root) {
|
|
|
108
87
|
return null;
|
|
109
88
|
}
|
|
110
89
|
}
|
|
111
|
-
function
|
|
90
|
+
function removeLockOf(root, pid) {
|
|
91
|
+
if (readLock(root)?.pid !== pid)
|
|
92
|
+
return;
|
|
93
|
+
(0, node_fs_1.rmSync)(buildCachePath(root, sidecar_1.SIDECAR_LOCK_FILE_NAME), { force: true });
|
|
94
|
+
}
|
|
95
|
+
function isHealthyBody(body) {
|
|
112
96
|
try {
|
|
113
|
-
|
|
114
|
-
if (parsed.ok !== true)
|
|
115
|
-
return null;
|
|
116
|
-
return { version: parsed.version ?? "", buildId: parsed.buildId ?? "" };
|
|
97
|
+
return JSON.parse(body).ok === true;
|
|
117
98
|
}
|
|
118
99
|
catch {
|
|
119
|
-
return
|
|
100
|
+
return false;
|
|
120
101
|
}
|
|
121
102
|
}
|
|
122
103
|
function probeHealth(port) {
|
|
@@ -132,91 +113,60 @@ function probeHealth(port) {
|
|
|
132
113
|
res.on("data", (chunk) => {
|
|
133
114
|
body += chunk;
|
|
134
115
|
});
|
|
135
|
-
res.on("end", () => resolve(
|
|
116
|
+
res.on("end", () => resolve(isHealthyBody(body)));
|
|
136
117
|
});
|
|
137
|
-
req.on("error", () => resolve(
|
|
118
|
+
req.on("error", () => resolve(false));
|
|
138
119
|
req.on("timeout", () => {
|
|
139
120
|
req.destroy();
|
|
140
|
-
resolve(
|
|
121
|
+
resolve(false);
|
|
141
122
|
});
|
|
142
123
|
});
|
|
143
124
|
}
|
|
144
125
|
function delay(ms) {
|
|
145
126
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
146
127
|
}
|
|
147
|
-
function
|
|
148
|
-
state.child = null;
|
|
149
|
-
state.port = port;
|
|
150
|
-
logging_1.Logging.Info(`${sidecar_1.SIDECAR_LOG_PREFIX} reusing sidecar on port ${port}`);
|
|
151
|
-
}
|
|
152
|
-
function killPid(pid) {
|
|
153
|
-
try {
|
|
154
|
-
process.kill(pid, "SIGTERM");
|
|
155
|
-
}
|
|
156
|
-
catch {
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
async function retireStaleSidecar(lock) {
|
|
161
|
-
killPid(lock.pid);
|
|
162
|
-
const deadline = Date.now() + sidecar_1.SIDECAR_SPAWN_TIMEOUT_MS;
|
|
163
|
-
while (Date.now() < deadline) {
|
|
164
|
-
const health = await probeHealth(lock.port);
|
|
165
|
-
if (health === null)
|
|
166
|
-
return;
|
|
167
|
-
await delay(sidecar_1.SIDECAR_LOCK_POLL_INTERVAL_MS);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
async function tryReuse(root, buildId) {
|
|
128
|
+
async function retireLeftoverSidecar(root) {
|
|
171
129
|
const lock = readLock(root);
|
|
172
130
|
if (lock === null)
|
|
173
|
-
return
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
return true;
|
|
180
|
-
}
|
|
181
|
-
await retireStaleSidecar(lock);
|
|
182
|
-
return false;
|
|
131
|
+
return;
|
|
132
|
+
if (!(await probeHealth(lock.port)))
|
|
133
|
+
return;
|
|
134
|
+
logging_1.Logging.Info(`${sidecar_1.SIDECAR_LOG_PREFIX} stopping the sidecar left running on port ${lock.port}`);
|
|
135
|
+
await (0, terminate_process_1.terminateProcess)(lock.pid, sidecar_1.SIDECAR_STOP_TIMEOUT_MS);
|
|
136
|
+
removeLockOf(root, lock.pid);
|
|
183
137
|
}
|
|
184
|
-
function buildSpawnArgs(binPath, buildId) {
|
|
138
|
+
function buildSpawnArgs(opts, binPath, buildId) {
|
|
185
139
|
const args = [binPath, sidecar_1.SIDECAR_BUILD_ID_FLAG, buildId];
|
|
186
|
-
const moduleRoots =
|
|
140
|
+
const moduleRoots = opts.moduleRoots ?? [];
|
|
187
141
|
if (moduleRoots.length > 0) {
|
|
188
142
|
args.push(sidecar_1.SIDECAR_MODULE_ROOTS_FLAG, JSON.stringify(moduleRoots));
|
|
189
143
|
}
|
|
190
|
-
const skillDirs =
|
|
144
|
+
const skillDirs = opts.skillDirs ?? [];
|
|
191
145
|
if (skillDirs.length > 0) {
|
|
192
146
|
args.push(sidecar_1.SIDECAR_SKILL_DIRS_FLAG, JSON.stringify(skillDirs));
|
|
193
147
|
}
|
|
194
|
-
if (
|
|
148
|
+
if (opts.builderEnabled) {
|
|
195
149
|
args.push(sidecar_1.SIDECAR_BUILDER_FLAG, "1");
|
|
196
150
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
args.push(sidecar_1.SIDECAR_BACKEND_URL_FLAG, backendUrl);
|
|
151
|
+
if (opts.backendUrl !== undefined) {
|
|
152
|
+
args.push(sidecar_1.SIDECAR_BACKEND_URL_FLAG, opts.backendUrl);
|
|
200
153
|
}
|
|
201
154
|
return args;
|
|
202
155
|
}
|
|
203
|
-
function trySpawnChild(
|
|
156
|
+
function trySpawnChild(args, logPath) {
|
|
204
157
|
try {
|
|
205
158
|
(0, node_fs_1.mkdirSync)(node_path_1.default.dirname(logPath), { recursive: true });
|
|
206
159
|
const fd = (0, node_fs_1.openSync)(logPath, "a");
|
|
207
|
-
const
|
|
208
|
-
const child = (0, node_child_process_1.spawn)(process.execPath, buildSpawnArgs(binPath, buildId), {
|
|
209
|
-
detached,
|
|
160
|
+
const child = (0, node_child_process_1.spawn)(process.execPath, args, {
|
|
210
161
|
stdio: ["ignore", fd, fd],
|
|
211
162
|
env: { ...process.env },
|
|
212
163
|
});
|
|
213
164
|
(0, node_fs_1.closeSync)(fd);
|
|
214
|
-
|
|
215
|
-
child.unref();
|
|
165
|
+
child.unref();
|
|
216
166
|
return child;
|
|
217
167
|
}
|
|
218
168
|
catch (err) {
|
|
219
|
-
|
|
169
|
+
logging_1.Logging.Error(`${sidecar_1.SIDECAR_LOG_PREFIX} failed to spawn sidecar:`, err);
|
|
220
170
|
return null;
|
|
221
171
|
}
|
|
222
172
|
}
|
|
@@ -225,62 +175,26 @@ async function learnPortFromLock(root, childPid) {
|
|
|
225
175
|
while (Date.now() < deadline) {
|
|
226
176
|
const lock = readLock(root);
|
|
227
177
|
if (lock !== null && lock.pid === childPid) {
|
|
228
|
-
state.port = lock.port;
|
|
229
178
|
logging_1.Logging.Info(`${sidecar_1.SIDECAR_LOG_PREFIX} sidecar listening on port ${lock.port}`);
|
|
230
|
-
return;
|
|
179
|
+
return lock.port;
|
|
231
180
|
}
|
|
232
181
|
await delay(sidecar_1.SIDECAR_LOCK_POLL_INTERVAL_MS);
|
|
233
182
|
}
|
|
234
183
|
logging_1.Logging.Error(`${sidecar_1.SIDECAR_LOG_PREFIX} sidecar did not report a port in time`);
|
|
184
|
+
return null;
|
|
235
185
|
}
|
|
236
|
-
|
|
237
|
-
const
|
|
238
|
-
const child = trySpawnChild(binPath, buildId, logPath);
|
|
239
|
-
if (child === null)
|
|
240
|
-
return;
|
|
241
|
-
state.child = child;
|
|
242
|
-
state.port = null;
|
|
243
|
-
wireChildExit(child);
|
|
244
|
-
await learnPortFromLock(root, child.pid ?? -1);
|
|
245
|
-
}
|
|
246
|
-
async function ensureSidecar(root) {
|
|
186
|
+
function createLaunch(opts) {
|
|
187
|
+
const root = opts.hostProjectRoot;
|
|
247
188
|
const binPath = resolveSidecarBin();
|
|
248
189
|
const buildId = (0, build_id_1.computeBuildId)(node_path_1.default.dirname(binPath));
|
|
249
|
-
const
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
}
|
|
258
|
-
function handleChildExit(code) {
|
|
259
|
-
state.child = null;
|
|
260
|
-
state.port = null;
|
|
261
|
-
if (code === sidecar_1.SIDECAR_SUCCESS_EXIT_CODE) {
|
|
262
|
-
logging_1.Logging.Info(`${sidecar_1.SIDECAR_LOG_PREFIX} sidecar exited gracefully`);
|
|
263
|
-
return;
|
|
264
|
-
}
|
|
265
|
-
scheduleRespawnIfBudget();
|
|
266
|
-
}
|
|
267
|
-
function scheduleRespawnIfBudget() {
|
|
268
|
-
const now = Date.now();
|
|
269
|
-
if (!state.respawnTracker.hasBudget(now)) {
|
|
270
|
-
state.hasGivenUp = true;
|
|
271
|
-
logging_1.Logging.Error(`${sidecar_1.SIDECAR_LOG_PREFIX} sidecar crash budget exhausted, giving up`);
|
|
272
|
-
return;
|
|
273
|
-
}
|
|
274
|
-
state.respawnTracker.recordAttempt(now);
|
|
275
|
-
logging_1.Logging.Error(`${sidecar_1.SIDECAR_LOG_PREFIX} sidecar crashed, respawning in ${sidecar_1.SIDECAR_RESPAWN_DELAY_MS}ms`);
|
|
276
|
-
setTimeout(performScheduledRespawn, sidecar_1.SIDECAR_RESPAWN_DELAY_MS);
|
|
277
|
-
}
|
|
278
|
-
function performScheduledRespawn() {
|
|
279
|
-
if (state.hasGivenUp)
|
|
280
|
-
return;
|
|
281
|
-
void ensureSidecarRunning();
|
|
282
|
-
}
|
|
283
|
-
function logError(message, err) {
|
|
284
|
-
logging_1.Logging.Error(`${sidecar_1.SIDECAR_LOG_PREFIX} ${message}:`, err);
|
|
190
|
+
const args = buildSpawnArgs(opts, binPath, buildId);
|
|
191
|
+
return {
|
|
192
|
+
buildId,
|
|
193
|
+
spawn: async () => {
|
|
194
|
+
await retireLeftoverSidecar(root);
|
|
195
|
+
return trySpawnChild(args, buildCachePath(root, sidecar_1.SIDECAR_LOG_FILE_NAME));
|
|
196
|
+
},
|
|
197
|
+
waitForPort: (pid) => learnPortFromLock(root, pid),
|
|
198
|
+
};
|
|
285
199
|
}
|
|
286
200
|
//# sourceMappingURL=spawn-sidecar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-sidecar.js","sourceRoot":"","sources":["../../src/lifecycle/spawn-sidecar.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"spawn-sidecar.js","sourceRoot":"","sources":["../../src/lifecycle/spawn-sidecar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function terminateProcess(pid: number | undefined, timeoutMs: number): Promise<void>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.terminateProcess = terminateProcess;
|
|
4
|
+
const sidecar_1 = require("../constants/sidecar");
|
|
5
|
+
const LIVENESS_SIGNAL = 0;
|
|
6
|
+
function signalProcess(pid, signal) {
|
|
7
|
+
try {
|
|
8
|
+
process.kill(pid, signal);
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function delay(ms) {
|
|
16
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
17
|
+
}
|
|
18
|
+
async function waitForExit(pid, timeoutMs) {
|
|
19
|
+
const deadline = Date.now() + timeoutMs;
|
|
20
|
+
while (Date.now() < deadline) {
|
|
21
|
+
if (!signalProcess(pid, LIVENESS_SIGNAL))
|
|
22
|
+
return true;
|
|
23
|
+
await delay(sidecar_1.SIDECAR_EXIT_POLL_INTERVAL_MS);
|
|
24
|
+
}
|
|
25
|
+
return !signalProcess(pid, LIVENESS_SIGNAL);
|
|
26
|
+
}
|
|
27
|
+
async function terminateProcess(pid, timeoutMs) {
|
|
28
|
+
if (pid === undefined || !signalProcess(pid, "SIGTERM"))
|
|
29
|
+
return;
|
|
30
|
+
if (await waitForExit(pid, timeoutMs))
|
|
31
|
+
return;
|
|
32
|
+
signalProcess(pid, "SIGKILL");
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=terminate-process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminate-process.js","sourceRoot":"","sources":["../../src/lifecycle/terminate-process.ts"],"names":[],"mappings":";;AA8BA,4CAOC;AArCD,kDAAqE;AAErE,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B,SAAS,aAAa,CAAC,GAAW,EAAE,MAA+B;IACjE,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,SAAiB;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,eAAe,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,MAAM,KAAK,CAAC,uCAA6B,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AAC9C,CAAC;AAMM,KAAK,UAAU,gBAAgB,CACpC,GAAuB,EACvB,SAAiB;IAEjB,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC;QAAE,OAAO;IAChE,IAAI,MAAM,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC;QAAE,OAAO;IAC9C,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAChC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antelopejs/dms-ai",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"test:frontend-registration": "pnpm run build && node --test tests/frontend-registration.test.cjs",
|
|
42
42
|
"test:channels": "pnpm run build && node --test tests/channels.test.cjs tests/channel-limits.test.cjs",
|
|
43
43
|
"test:spawn-args": "node --test tests/spawn-args.test.cjs",
|
|
44
|
+
"test:sidecar-lifecycle": "node --test tests/sidecar-lifecycle.test.cjs",
|
|
44
45
|
"test:build-id": "node --test tests/build-id.test.cjs",
|
|
45
46
|
"test:release-script": "node --test tests/release-script.test.cjs",
|
|
46
47
|
"test:e2e": "cd sidecar && pnpm test:e2e",
|
package/sidecar/dist/index.d.ts
CHANGED
|
@@ -11,3 +11,7 @@ export interface ParsedArgs {
|
|
|
11
11
|
}
|
|
12
12
|
export declare function parseSkillDirs(value: string): SkillSource[];
|
|
13
13
|
export declare function parseArgs(argv: readonly string[]): ParsedArgs;
|
|
14
|
+
export interface ShutdownSignalSource {
|
|
15
|
+
on(signal: NodeJS.Signals, listener: () => void): unknown;
|
|
16
|
+
}
|
|
17
|
+
export declare function installSignalShutdown(run: () => void, source?: ShutdownSignalSource): void;
|
package/sidecar/dist/index.js
CHANGED
|
@@ -124,7 +124,11 @@ export function parseArgs(argv) {
|
|
|
124
124
|
}
|
|
125
125
|
return acc;
|
|
126
126
|
}
|
|
127
|
-
const SHUTDOWN_SIGNALS = [
|
|
127
|
+
const SHUTDOWN_SIGNALS = [
|
|
128
|
+
"SIGTERM",
|
|
129
|
+
"SIGINT",
|
|
130
|
+
"SIGHUP",
|
|
131
|
+
];
|
|
128
132
|
async function gracefulShutdown(deps, guard) {
|
|
129
133
|
if (guard.done)
|
|
130
134
|
return;
|
|
@@ -135,9 +139,9 @@ async function gracefulShutdown(deps, guard) {
|
|
|
135
139
|
await removeLock(deps.root);
|
|
136
140
|
deps.server.close(() => process.exit(GRACEFUL_EXIT_CODE));
|
|
137
141
|
}
|
|
138
|
-
function installSignalShutdown(run) {
|
|
142
|
+
export function installSignalShutdown(run, source = process) {
|
|
139
143
|
for (const sig of SHUTDOWN_SIGNALS) {
|
|
140
|
-
|
|
144
|
+
source.on(sig, run);
|
|
141
145
|
}
|
|
142
146
|
}
|
|
143
147
|
function stateDirFor(root) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|