@cpajs/cpa 0.1.0-rc.1 → 0.1.0-rc.2
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 +13 -6
- package/dist/server/binary.d.ts +19 -0
- package/dist/server/binary.d.ts.map +1 -1
- package/dist/server/binary.js +35 -1
- package/dist/server/binary.js.map +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +27 -4
- package/dist/server/index.js.map +1 -1
- package/dist/server/internal.d.ts +3 -0
- package/dist/server/internal.d.ts.map +1 -1
- package/dist/server/internal.js.map +1 -1
- package/dist/server/process.d.ts +8 -0
- package/dist/server/process.d.ts.map +1 -1
- package/dist/server/process.js +36 -14
- package/dist/server/process.js.map +1 -1
- package/dist/server/targets.d.ts +4 -0
- package/dist/server/targets.d.ts.map +1 -1
- package/dist/server/targets.js +6 -0
- package/dist/server/targets.js.map +1 -1
- package/dist/server/types.d.ts +16 -0
- package/dist/server/types.d.ts.map +1 -1
- package/package.json +24 -24
- package/src/server/binary.ts +46 -1
- package/src/server/index.ts +34 -4
- package/src/server/internal.ts +4 -0
- package/src/server/process.ts +42 -14
- package/src/server/targets.ts +8 -0
- package/src/server/types.ts +16 -0
package/README.md
CHANGED
|
@@ -71,10 +71,18 @@ await server.stop();
|
|
|
71
71
|
`CpaStartError` code `port-in-use` instead of changing `origin`. Concurrent `restart()` calls share one
|
|
72
72
|
operation, `stop()` during a restart aborts it, and `restart()` after `stop()` rejects. A failed restart leaves
|
|
73
73
|
the handle stopped and cleans up a temporary state directory like `startServer` does.
|
|
74
|
-
- Shutdown: CPA
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
- Shutdown: CPA does not outlive your process, even if it is killed with SIGKILL, crashes, or is restarted by
|
|
75
|
+
`tsx watch` / `nodemon`. Each platform package ships a small `cpa-launcher` (pure Go, in `launcher/`) that
|
|
76
|
+
relies only on operating-system facilities:
|
|
77
|
+
- Linux: it sets `PR_SET_PDEATHSIG` and execs CPA, so there is no extra process. The kernel sends CPA SIGTERM
|
|
78
|
+
when your process dies.
|
|
79
|
+
- macOS / BSD: it stays as CPA's parent and stops CPA when the pipe to your process closes. `server.pid` is
|
|
80
|
+
then the launcher's pid; signals sent to it reach CPA.
|
|
81
|
+
- Windows: no launcher is needed, because Node already kills child processes with their parent.
|
|
82
|
+
|
|
83
|
+
Pass `launcher: false` to start CPA directly. With a custom `binaryPath`, the launcher is looked up next to
|
|
84
|
+
that binary and then in the installed platform package; if none is found, a notice is logged. A graceful stop
|
|
85
|
+
is still nicer than a kill, and `stopAllServers()` stops every server this process started:
|
|
78
86
|
|
|
79
87
|
```ts
|
|
80
88
|
import { stopAllServers } from '@cpajs/cpa/server';
|
|
@@ -87,8 +95,7 @@ await server.stop();
|
|
|
87
95
|
}
|
|
88
96
|
```
|
|
89
97
|
|
|
90
|
-
|
|
91
|
-
truncated, with a marker saying how much was dropped.
|
|
98
|
+
Lines longer than 64 KiB in CPA's output are truncated, with a marker saying how much was dropped.
|
|
92
99
|
- `management: { key }` manages the management API key. The default mode writes a bcrypt hash into
|
|
93
100
|
`management.secret-key` of the managed config and sets `management.allow-remote` from `allowRemote`
|
|
94
101
|
(default `false`), so the plaintext never reaches disk and remote management stays off.
|
package/dist/server/binary.d.ts
CHANGED
|
@@ -32,4 +32,23 @@ export declare function resolveBinary(options?: {
|
|
|
32
32
|
binaryPath?: string;
|
|
33
33
|
platform?: HostPlatform;
|
|
34
34
|
}): ResolvedBinary;
|
|
35
|
+
/** How the launcher keeps CPA from outliving this process. */
|
|
36
|
+
export type LauncherMode = 'exec' | 'supervise';
|
|
37
|
+
export interface ResolvedLauncher {
|
|
38
|
+
path: string;
|
|
39
|
+
/**
|
|
40
|
+
* `exec` (Linux): the launcher sets PR_SET_PDEATHSIG and becomes CPA.
|
|
41
|
+
* `supervise` (macOS, BSD): the launcher stays as CPA's parent and stops it
|
|
42
|
+
* when its stdin pipe from this process closes.
|
|
43
|
+
*/
|
|
44
|
+
mode: LauncherMode;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Finds `cpa-launcher` for a CPA binary: next to the binary first (platform
|
|
48
|
+
* packages and local builds keep both in one directory), then in an installed
|
|
49
|
+
* platform package. Returns undefined on Windows, where Node already places
|
|
50
|
+
* child processes in a job object that is closed (and its processes killed)
|
|
51
|
+
* when this process exits.
|
|
52
|
+
*/
|
|
53
|
+
export declare function resolveLauncher(cpaPath: string, platform?: HostPlatform): ResolvedLauncher | undefined;
|
|
35
54
|
//# sourceMappingURL=binary.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../src/server/binary.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../src/server/binary.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0E,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAInH,MAAM,MAAM,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC;IACzB,gCAAgC;IAChC,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,yDAAyD;AACzD,wBAAgB,UAAU,IAAI,IAAI,GAAG,SAAS,CAc7C;AAED,wBAAgB,eAAe,IAAI,YAAY,CAG9C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE,CAO7D;AAuBD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;CAAO,GAAG,cAAc,CAuC5G;AAED,8DAA8D;AAC9D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,EAAE,YAAY,CAAC;CACpB;AAYD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,YAAgC,GAAG,gBAAgB,GAAG,SAAS,CAazH"}
|
package/dist/server/binary.js
CHANGED
|
@@ -2,7 +2,7 @@ import { accessSync, chmodSync, constants, existsSync, readdirSync, statSync } f
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { dirname, join } from 'node:path';
|
|
4
4
|
import { CpaBinaryError } from './errors.js';
|
|
5
|
-
import { TARGETS, UNSUPPORTED_PLATFORMS, binaryName, packageName } from './targets.js';
|
|
5
|
+
import { LAUNCHER_NAME, TARGETS, UNSUPPORTED_PLATFORMS, binaryName, packageName } from './targets.js';
|
|
6
6
|
const require = createRequire(import.meta.url);
|
|
7
7
|
/** Detects the C library of the running Linux system. */
|
|
8
8
|
export function detectLibc() {
|
|
@@ -105,4 +105,38 @@ export function resolveBinary(options = {}) {
|
|
|
105
105
|
'It is an optional dependency of @cpajs/cpa; reinstall without --no-optional / --omit=optional, ' +
|
|
106
106
|
'make sure your lockfile was not created on another platform without it, or pass binaryPath.');
|
|
107
107
|
}
|
|
108
|
+
function isExecutable(path) {
|
|
109
|
+
try {
|
|
110
|
+
if (!statSync(path).isFile())
|
|
111
|
+
return false;
|
|
112
|
+
accessSync(path, constants.X_OK);
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Finds `cpa-launcher` for a CPA binary: next to the binary first (platform
|
|
121
|
+
* packages and local builds keep both in one directory), then in an installed
|
|
122
|
+
* platform package. Returns undefined on Windows, where Node already places
|
|
123
|
+
* child processes in a job object that is closed (and its processes killed)
|
|
124
|
+
* when this process exits.
|
|
125
|
+
*/
|
|
126
|
+
export function resolveLauncher(cpaPath, platform = currentPlatform()) {
|
|
127
|
+
if (platform.os === 'win32')
|
|
128
|
+
return undefined;
|
|
129
|
+
const mode = platform.os === 'linux' ? 'exec' : 'supervise';
|
|
130
|
+
const candidates = [join(dirname(cpaPath), LAUNCHER_NAME)];
|
|
131
|
+
for (const target of candidateTargets(platform)) {
|
|
132
|
+
try {
|
|
133
|
+
candidates.push(join(dirname(require.resolve(`${packageName(target)}/package.json`)), 'bin', LAUNCHER_NAME));
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
// Package not installed.
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
const path = candidates.find(isExecutable);
|
|
140
|
+
return path === undefined ? undefined : { path, mode };
|
|
141
|
+
}
|
|
108
142
|
//# sourceMappingURL=binary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../../src/server/binary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,WAAW,EAAe,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../../src/server/binary.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAA2B,kBAAkB,EAA0B,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1I,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3F,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC5E,mBAAmB,YAAY,CAAC;AAChC,YAAY,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAA2B,kBAAkB,EAA0B,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1I,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3F,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC5E,mBAAmB,YAAY,CAAC;AAChC,YAAY,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAgL3D;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,SAAS,CAAC,CAsLtF;AAyMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAErF"}
|
package/dist/server/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { tmpdir } from 'node:os';
|
|
|
3
3
|
import { join, resolve } from 'node:path';
|
|
4
4
|
import { setTimeout as delay } from 'node:timers/promises';
|
|
5
5
|
import { buildArgs } from './args.js';
|
|
6
|
-
import { resolveBinary } from './binary.js';
|
|
6
|
+
import { resolveBinary, resolveLauncher } from './binary.js';
|
|
7
7
|
import { inspectConfigFile, readManagedConfig, updateManagedSecret, writeManagedConfig } from './config.js';
|
|
8
8
|
import { CpaStartError } from './errors.js';
|
|
9
9
|
import { keyMatches, resolveManagement } from './management.js';
|
|
@@ -94,6 +94,7 @@ async function launchProcess(options) {
|
|
|
94
94
|
let proc;
|
|
95
95
|
try {
|
|
96
96
|
proc = new ManagedProcess(options.binaryPath, options.args, {
|
|
97
|
+
supervised: options.supervised,
|
|
97
98
|
cwd: options.stateDir,
|
|
98
99
|
env: options.env,
|
|
99
100
|
redact: options.redact,
|
|
@@ -160,11 +161,29 @@ export async function startServer(options = {}) {
|
|
|
160
161
|
const binary = command === undefined
|
|
161
162
|
? resolveBinary(options.binaryPath === undefined ? {} : { binaryPath: options.binaryPath })
|
|
162
163
|
: { path: command.path };
|
|
163
|
-
|
|
164
|
+
// What actually gets spawned: CPA wrapped in cpa-launcher when available, so CPA
|
|
165
|
+
// cannot outlive this process (see binary.ts and the launcher/ sources).
|
|
166
|
+
const program = command?.path ?? binary.path;
|
|
167
|
+
const launcher = options.launcher === false ? undefined : command !== undefined ? command.launcher : resolveLauncher(binary.path);
|
|
168
|
+
const spawnPath = launcher?.path ?? program;
|
|
169
|
+
const supervised = launcher?.mode === 'supervise';
|
|
170
|
+
const prefixArgs = [
|
|
171
|
+
...(launcher === undefined ? [] : [...(supervised ? ['--supervise', '--watch-stdin'] : []), '--', program]),
|
|
172
|
+
...(command?.args ?? []),
|
|
173
|
+
];
|
|
164
174
|
// Validate everything that can be validated before creating any resource, so a
|
|
165
175
|
// rejected option never leaves a temporary state directory behind.
|
|
166
176
|
const env = buildEnv(options, management);
|
|
177
|
+
// Exec mode checks this after PR_SET_PDEATHSIG to catch a parent that died first.
|
|
178
|
+
if (launcher?.mode === 'exec')
|
|
179
|
+
env.CPAJS_PARENT_PID = String(process.pid);
|
|
167
180
|
const extraArgs = buildArgs(options);
|
|
181
|
+
if (launcher === undefined && options.launcher !== false && command === undefined && process.platform !== 'win32') {
|
|
182
|
+
options.onLog?.({
|
|
183
|
+
stream: 'stderr',
|
|
184
|
+
line: `cpajs: notice: no cpa-launcher found for ${binary.path}; CPA will keep running if this process is killed. Pass launcher: false to silence this.`,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
168
187
|
const ownsStateDir = options.stateDir === undefined;
|
|
169
188
|
const stateDir = ownsStateDir ? await mkdtemp(join(tmpdir(), 'cpajs-')) : resolve(options.stateDir);
|
|
170
189
|
if (!ownsStateDir)
|
|
@@ -261,7 +280,8 @@ export async function startServer(options = {}) {
|
|
|
261
280
|
reservation = undefined;
|
|
262
281
|
await held?.release();
|
|
263
282
|
const result = await launchProcess({
|
|
264
|
-
binaryPath:
|
|
283
|
+
binaryPath: spawnPath,
|
|
284
|
+
supervised,
|
|
265
285
|
args: [...prefixArgs, '-config', prepared.configPath, ...extraArgs],
|
|
266
286
|
stateDir,
|
|
267
287
|
env,
|
|
@@ -280,6 +300,8 @@ export async function startServer(options = {}) {
|
|
|
280
300
|
if (result.kind === 'ready') {
|
|
281
301
|
return createHandle(result.proc, {
|
|
282
302
|
binaryPath: binary.path,
|
|
303
|
+
spawnPath,
|
|
304
|
+
supervised,
|
|
283
305
|
prefixArgs,
|
|
284
306
|
configPath: prepared.configPath,
|
|
285
307
|
listen: prepared.listen,
|
|
@@ -395,7 +417,8 @@ function createHandle(initialProc, info) {
|
|
|
395
417
|
// Reuse the config file as CPA left it. Rewriting it here would discard
|
|
396
418
|
// changes made through the management API during the previous run (#13).
|
|
397
419
|
const result = await launchProcess({
|
|
398
|
-
binaryPath: info.
|
|
420
|
+
binaryPath: info.spawnPath,
|
|
421
|
+
supervised: info.supervised,
|
|
399
422
|
args: [...info.prefixArgs, '-config', info.configPath, ...info.extraArgs],
|
|
400
423
|
stateDir: info.stateDir,
|
|
401
424
|
env: info.env,
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ResolvedLauncher } from './binary.ts';
|
|
1
2
|
/**
|
|
2
3
|
* Test-only hooks. Nothing here is exported from the public entry points.
|
|
3
4
|
*
|
|
@@ -12,5 +13,7 @@ export interface InternalCommand {
|
|
|
12
13
|
path: string;
|
|
13
14
|
/** Arguments placed before `-config <file>`. */
|
|
14
15
|
args: readonly string[];
|
|
16
|
+
/** Launcher to wrap the command in; omitted means none (tests opt in explicitly). */
|
|
17
|
+
launcher?: ResolvedLauncher;
|
|
15
18
|
}
|
|
16
19
|
//# sourceMappingURL=internal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/server/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,eAAkC,CAAC;AAE/D,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/server/internal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,eAAkC,CAAC;AAE/D,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/server/internal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/server/internal.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC"}
|
package/dist/server/process.d.ts
CHANGED
|
@@ -7,6 +7,12 @@ export interface SpawnOptions {
|
|
|
7
7
|
env: NodeJS.ProcessEnv;
|
|
8
8
|
redact: (text: string) => string;
|
|
9
9
|
onLog?: ((log: LogLine) => void) | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* Supervise mode of cpa-launcher: start it in its own process group, signal
|
|
12
|
+
* the whole group (launcher and CPA), and keep a stdin pipe open whose EOF
|
|
13
|
+
* tells the launcher that this process has died.
|
|
14
|
+
*/
|
|
15
|
+
supervised?: boolean;
|
|
10
16
|
}
|
|
11
17
|
/** A spawned CPA process with line-buffered, redacted output and idempotent stop. */
|
|
12
18
|
export declare class ManagedProcess {
|
|
@@ -18,6 +24,8 @@ export declare class ManagedProcess {
|
|
|
18
24
|
spawnError: Error | undefined;
|
|
19
25
|
exitResult: ExitResult | undefined;
|
|
20
26
|
constructor(binaryPath: string, args: readonly string[], options: SpawnOptions);
|
|
27
|
+
/** Signals the process, or the launcher's whole process group in supervise mode. */
|
|
28
|
+
kill(signal: NodeJS.Signals): void;
|
|
21
29
|
onLine(listener: (log: LogLine) => void): () => void;
|
|
22
30
|
output(): string;
|
|
23
31
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/server/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGtD,yFAAyF;AACzF,eAAO,MAAM,eAAe,QAAY,CAAC;AAmBzC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/server/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGtD,yFAAyF;AACzF,eAAO,MAAM,eAAe,QAAY,CAAC;AAmBzC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7C;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qFAAqF;AACrF,qBAAa,cAAc;;IACzB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,CAAM;IACpC,wDAAwD;IACxD,UAAU,EAAE,KAAK,GAAG,SAAS,CAAC;IAC9B,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IAQnC,YAAY,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EA6B7E;IA6CD,oFAAoF;IACpF,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAWjC;IAED,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAGnD;IAED,MAAM,IAAI,MAAM,CAEf;IAED;;;;OAIG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAc3C;CACF"}
|
package/dist/server/process.js
CHANGED
|
@@ -3,21 +3,21 @@ const MAX_RECENT_LINES = 200;
|
|
|
3
3
|
/** Longest line kept, in UTF-16 code units; longer output is truncated with a marker. */
|
|
4
4
|
export const MAX_LINE_LENGTH = 64 * 1024;
|
|
5
5
|
// Children still running when this process exits normally (or calls
|
|
6
|
-
// process.exit()) are killed.
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
6
|
+
// process.exit()) are killed. A fatal signal with no listener, e.g. a default
|
|
7
|
+
// SIGTERM or SIGKILL, ends Node without emitting 'exit'; there the launcher
|
|
8
|
+
// (cpa-launcher, see binary.ts) stops CPA instead. This library does not
|
|
9
|
+
// install signal handlers, because doing so would change how the host process
|
|
10
|
+
// reacts to them.
|
|
11
11
|
const live = new Set();
|
|
12
12
|
let exitHookInstalled = false;
|
|
13
|
-
function
|
|
14
|
-
live.add(
|
|
13
|
+
function track(proc) {
|
|
14
|
+
live.add(proc);
|
|
15
15
|
if (exitHookInstalled)
|
|
16
16
|
return;
|
|
17
17
|
exitHookInstalled = true;
|
|
18
18
|
process.once('exit', () => {
|
|
19
|
-
for (const
|
|
20
|
-
|
|
19
|
+
for (const p of live)
|
|
20
|
+
p.kill('SIGKILL');
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
23
|
/** A spawned CPA process with line-buffered, redacted output and idempotent stop. */
|
|
@@ -31,17 +31,25 @@ export class ManagedProcess {
|
|
|
31
31
|
#redact;
|
|
32
32
|
#onLog;
|
|
33
33
|
#lineListeners = new Set();
|
|
34
|
+
#supervised;
|
|
34
35
|
#stopping;
|
|
35
36
|
constructor(binaryPath, args, options) {
|
|
36
37
|
this.#redact = options.redact;
|
|
37
38
|
this.#onLog = options.onLog;
|
|
39
|
+
this.#supervised = options.supervised === true;
|
|
38
40
|
this.child = spawn(binaryPath, [...args], {
|
|
39
41
|
cwd: options.cwd,
|
|
40
42
|
env: options.env,
|
|
41
|
-
|
|
43
|
+
// The supervised launcher's stdin is a liveness pipe: never written, closed by
|
|
44
|
+
// the OS when this process dies.
|
|
45
|
+
stdio: [this.#supervised ? 'pipe' : 'ignore', 'pipe', 'pipe'],
|
|
46
|
+
// Its own process group, so stop() can signal the launcher and CPA together.
|
|
47
|
+
detached: this.#supervised,
|
|
42
48
|
windowsHide: true,
|
|
43
49
|
});
|
|
44
|
-
|
|
50
|
+
// A liveness pipe with nobody reading it is expected after the launcher exits.
|
|
51
|
+
this.child.stdin?.on('error', () => { });
|
|
52
|
+
track(this);
|
|
45
53
|
this.exited = new Promise((resolve) => {
|
|
46
54
|
this.child.once('error', (error) => {
|
|
47
55
|
this.spawnError = error;
|
|
@@ -58,7 +66,7 @@ export class ManagedProcess {
|
|
|
58
66
|
if (this.exitResult)
|
|
59
67
|
return;
|
|
60
68
|
this.exitResult = result;
|
|
61
|
-
live.delete(this
|
|
69
|
+
live.delete(this);
|
|
62
70
|
resolve(result);
|
|
63
71
|
}
|
|
64
72
|
#pipe(stream, name) {
|
|
@@ -101,6 +109,20 @@ export class ManagedProcess {
|
|
|
101
109
|
pending = '';
|
|
102
110
|
});
|
|
103
111
|
}
|
|
112
|
+
/** Signals the process, or the launcher's whole process group in supervise mode. */
|
|
113
|
+
kill(signal) {
|
|
114
|
+
const pid = this.child.pid;
|
|
115
|
+
if (this.#supervised && pid !== undefined) {
|
|
116
|
+
try {
|
|
117
|
+
process.kill(-pid, signal);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// The group is already gone; fall back to the direct child.
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
this.child.kill(signal);
|
|
125
|
+
}
|
|
104
126
|
onLine(listener) {
|
|
105
127
|
this.#lineListeners.add(listener);
|
|
106
128
|
return () => this.#lineListeners.delete(listener);
|
|
@@ -117,7 +139,7 @@ export class ManagedProcess {
|
|
|
117
139
|
if (this.exitResult)
|
|
118
140
|
return Promise.resolve(this.exitResult);
|
|
119
141
|
this.#stopping ??= (async () => {
|
|
120
|
-
this.
|
|
142
|
+
this.kill('SIGTERM');
|
|
121
143
|
let timer;
|
|
122
144
|
const timedOut = new Promise((resolve) => {
|
|
123
145
|
timer = setTimeout(() => resolve('timeout'), timeoutMs);
|
|
@@ -125,7 +147,7 @@ export class ManagedProcess {
|
|
|
125
147
|
const first = await Promise.race([this.exited, timedOut]);
|
|
126
148
|
clearTimeout(timer);
|
|
127
149
|
if (first === 'timeout')
|
|
128
|
-
this.
|
|
150
|
+
this.kill('SIGKILL');
|
|
129
151
|
return this.exited;
|
|
130
152
|
})();
|
|
131
153
|
return this.#stopping;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/server/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAI9D,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,yFAAyF;AACzF,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC;AAEzC,oEAAoE;AACpE,yEAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/server/process.ts"],"names":[],"mappings":"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"}
|
package/dist/server/targets.d.ts
CHANGED
|
@@ -45,4 +45,8 @@ export declare const TARGETS: readonly Target[];
|
|
|
45
45
|
export declare const UNSUPPORTED_PLATFORMS: Readonly<Record<string, string>>;
|
|
46
46
|
export declare function packageName(target: Target): string;
|
|
47
47
|
export declare function binaryName(target: Pick<Target, 'os'>): string;
|
|
48
|
+
/** Name of the launcher shipped next to the CPA binary. Windows needs none (see binary.ts). */
|
|
49
|
+
export declare const LAUNCHER_NAME = "cpa-launcher";
|
|
50
|
+
/** True for targets whose platform package ships `cpa-launcher`. */
|
|
51
|
+
export declare function hasLauncher(target: Pick<Target, 'os'>): boolean;
|
|
48
52
|
//# sourceMappingURL=targets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../src/server/targets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uCAAuC;AACvC,MAAM,MAAM,WAAW;AACrB,2FAA2F;AACzF,QAAQ;AACV,0FAA0F;GACxF,UAAU,CAAC;AAEf,2DAA2D;AAC3D,MAAM,MAAM,kBAAkB;AAC5B,wEAAwE;AACtE,QAAQ;AACV,yEAAyE;GACvE,UAAU;AACZ,+DAA+D;GAC7D,gBAAgB,CAAC;AAErB,MAAM,WAAW,MAAM;IACrB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC7B,4BAA4B;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC;IAClC,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,uDAAuD;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,SAAS,WAAW,CAAC;AAElC,eAAO,MAAM,OAAO,EAAE,SAAS,MAAM,EAmEpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOlE,CAAC;AAEF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,CAE7D"}
|
|
1
|
+
{"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../src/server/targets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uCAAuC;AACvC,MAAM,MAAM,WAAW;AACrB,2FAA2F;AACzF,QAAQ;AACV,0FAA0F;GACxF,UAAU,CAAC;AAEf,2DAA2D;AAC3D,MAAM,MAAM,kBAAkB;AAC5B,wEAAwE;AACtE,QAAQ;AACV,yEAAyE;GACvE,UAAU;AACZ,+DAA+D;GAC7D,gBAAgB,CAAC;AAErB,MAAM,WAAW,MAAM;IACrB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC7B,4BAA4B;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC;IAClC,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,uDAAuD;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,SAAS,WAAW,CAAC;AAElC,eAAO,MAAM,OAAO,EAAE,SAAS,MAAM,EAmEpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOlE,CAAC;AAEF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,CAE7D;AAED,+FAA+F;AAC/F,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAE5C,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,OAAO,CAE/D"}
|
package/dist/server/targets.js
CHANGED
|
@@ -87,4 +87,10 @@ export function packageName(target) {
|
|
|
87
87
|
export function binaryName(target) {
|
|
88
88
|
return target.os === 'win32' ? 'cli-proxy-api.exe' : 'cli-proxy-api';
|
|
89
89
|
}
|
|
90
|
+
/** Name of the launcher shipped next to the CPA binary. Windows needs none (see binary.ts). */
|
|
91
|
+
export const LAUNCHER_NAME = 'cpa-launcher';
|
|
92
|
+
/** True for targets whose platform package ships `cpa-launcher`. */
|
|
93
|
+
export function hasLauncher(target) {
|
|
94
|
+
return target.os !== 'win32';
|
|
95
|
+
}
|
|
90
96
|
//# sourceMappingURL=targets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targets.js","sourceRoot":"","sources":["../../src/server/targets.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"targets.js","sourceRoot":"","sources":["../../src/server/targets.ts"],"names":[],"mappings":"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"}
|
package/dist/server/types.d.ts
CHANGED
|
@@ -55,6 +55,22 @@ interface CommonServerOptions {
|
|
|
55
55
|
* (`-local-model`). Explicit `models.*` config sources still win.
|
|
56
56
|
*/
|
|
57
57
|
localModel?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Start CPA through `cpa-launcher` so it cannot outlive this process, even
|
|
60
|
+
* when this process is killed with SIGKILL or crashes. Default `true`.
|
|
61
|
+
*
|
|
62
|
+
* - Linux: the launcher sets PR_SET_PDEATHSIG and execs CPA (no extra process).
|
|
63
|
+
* - macOS / BSD: the launcher stays as CPA's parent and stops it when this
|
|
64
|
+
* process dies; `pid` is then the launcher's pid, and signals sent to it are
|
|
65
|
+
* forwarded to CPA.
|
|
66
|
+
* - Windows: not needed; Node already kills child processes with their parent.
|
|
67
|
+
*
|
|
68
|
+
* The launcher ships next to the CPA binary in every platform package. With a
|
|
69
|
+
* custom `binaryPath` it is looked up next to that binary and then in an
|
|
70
|
+
* installed platform package; if none is found CPA is started directly and a
|
|
71
|
+
* notice is logged through `onLog`.
|
|
72
|
+
*/
|
|
73
|
+
launcher?: boolean;
|
|
58
74
|
/** Run as a node of a CPA Home control plane. Home mode disables the local management API. */
|
|
59
75
|
home?: HomeOptions;
|
|
60
76
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cpajs/cpa",
|
|
3
|
-
"version": "0.1.0-rc.
|
|
3
|
+
"version": "0.1.0-rc.2",
|
|
4
4
|
"description": "Run the official CLIProxyAPI from JavaScript and talk to its v8 management API with a typed client",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "akarachen",
|
|
@@ -65,28 +65,28 @@
|
|
|
65
65
|
"access": "public"
|
|
66
66
|
},
|
|
67
67
|
"optionalDependencies": {
|
|
68
|
-
"@cpajs/darwin-x64": "0.1.0-rc.
|
|
69
|
-
"@cpajs/darwin-arm64": "0.1.0-rc.
|
|
70
|
-
"@cpajs/win32-x64": "0.1.0-rc.
|
|
71
|
-
"@cpajs/win32-arm64": "0.1.0-rc.
|
|
72
|
-
"@cpajs/win32-ia32": "0.1.0-rc.
|
|
73
|
-
"@cpajs/linux-x64-gnu": "0.1.0-rc.
|
|
74
|
-
"@cpajs/linux-arm64-gnu": "0.1.0-rc.
|
|
75
|
-
"@cpajs/linux-x64-musl": "0.1.0-rc.
|
|
76
|
-
"@cpajs/linux-arm64-musl": "0.1.0-rc.
|
|
77
|
-
"@cpajs/linux-arm": "0.1.0-rc.
|
|
78
|
-
"@cpajs/linux-ia32": "0.1.0-rc.
|
|
79
|
-
"@cpajs/linux-riscv64": "0.1.0-rc.
|
|
80
|
-
"@cpajs/linux-ppc64": "0.1.0-rc.
|
|
81
|
-
"@cpajs/linux-s390x": "0.1.0-rc.
|
|
82
|
-
"@cpajs/linux-loong64": "0.1.0-rc.
|
|
83
|
-
"@cpajs/linux-mips": "0.1.0-rc.
|
|
84
|
-
"@cpajs/linux-mipsel": "0.1.0-rc.
|
|
85
|
-
"@cpajs/freebsd-x64": "0.1.0-rc.
|
|
86
|
-
"@cpajs/freebsd-arm64": "0.1.0-rc.
|
|
87
|
-
"@cpajs/freebsd-ia32": "0.1.0-rc.
|
|
88
|
-
"@cpajs/openbsd-x64": "0.1.0-rc.
|
|
89
|
-
"@cpajs/openbsd-arm64": "0.1.0-rc.
|
|
90
|
-
"@cpajs/netbsd-x64": "0.1.0-rc.
|
|
68
|
+
"@cpajs/darwin-x64": "0.1.0-rc.2",
|
|
69
|
+
"@cpajs/darwin-arm64": "0.1.0-rc.2",
|
|
70
|
+
"@cpajs/win32-x64": "0.1.0-rc.2",
|
|
71
|
+
"@cpajs/win32-arm64": "0.1.0-rc.2",
|
|
72
|
+
"@cpajs/win32-ia32": "0.1.0-rc.2",
|
|
73
|
+
"@cpajs/linux-x64-gnu": "0.1.0-rc.2",
|
|
74
|
+
"@cpajs/linux-arm64-gnu": "0.1.0-rc.2",
|
|
75
|
+
"@cpajs/linux-x64-musl": "0.1.0-rc.2",
|
|
76
|
+
"@cpajs/linux-arm64-musl": "0.1.0-rc.2",
|
|
77
|
+
"@cpajs/linux-arm": "0.1.0-rc.2",
|
|
78
|
+
"@cpajs/linux-ia32": "0.1.0-rc.2",
|
|
79
|
+
"@cpajs/linux-riscv64": "0.1.0-rc.2",
|
|
80
|
+
"@cpajs/linux-ppc64": "0.1.0-rc.2",
|
|
81
|
+
"@cpajs/linux-s390x": "0.1.0-rc.2",
|
|
82
|
+
"@cpajs/linux-loong64": "0.1.0-rc.2",
|
|
83
|
+
"@cpajs/linux-mips": "0.1.0-rc.2",
|
|
84
|
+
"@cpajs/linux-mipsel": "0.1.0-rc.2",
|
|
85
|
+
"@cpajs/freebsd-x64": "0.1.0-rc.2",
|
|
86
|
+
"@cpajs/freebsd-arm64": "0.1.0-rc.2",
|
|
87
|
+
"@cpajs/freebsd-ia32": "0.1.0-rc.2",
|
|
88
|
+
"@cpajs/openbsd-x64": "0.1.0-rc.2",
|
|
89
|
+
"@cpajs/openbsd-arm64": "0.1.0-rc.2",
|
|
90
|
+
"@cpajs/netbsd-x64": "0.1.0-rc.2"
|
|
91
91
|
}
|
|
92
92
|
}
|
package/src/server/binary.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { accessSync, chmodSync, constants, existsSync, readdirSync, statSync } f
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { dirname, join } from 'node:path';
|
|
4
4
|
import { CpaBinaryError } from './errors.ts';
|
|
5
|
-
import { TARGETS, UNSUPPORTED_PLATFORMS, binaryName, packageName, type Target } from './targets.ts';
|
|
5
|
+
import { LAUNCHER_NAME, TARGETS, UNSUPPORTED_PLATFORMS, binaryName, packageName, type Target } from './targets.ts';
|
|
6
6
|
|
|
7
7
|
const require = createRequire(import.meta.url);
|
|
8
8
|
|
|
@@ -126,3 +126,48 @@ export function resolveBinary(options: { binaryPath?: string; platform?: HostPla
|
|
|
126
126
|
'make sure your lockfile was not created on another platform without it, or pass binaryPath.',
|
|
127
127
|
);
|
|
128
128
|
}
|
|
129
|
+
|
|
130
|
+
/** How the launcher keeps CPA from outliving this process. */
|
|
131
|
+
export type LauncherMode = 'exec' | 'supervise';
|
|
132
|
+
|
|
133
|
+
export interface ResolvedLauncher {
|
|
134
|
+
path: string;
|
|
135
|
+
/**
|
|
136
|
+
* `exec` (Linux): the launcher sets PR_SET_PDEATHSIG and becomes CPA.
|
|
137
|
+
* `supervise` (macOS, BSD): the launcher stays as CPA's parent and stops it
|
|
138
|
+
* when its stdin pipe from this process closes.
|
|
139
|
+
*/
|
|
140
|
+
mode: LauncherMode;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
function isExecutable(path: string): boolean {
|
|
144
|
+
try {
|
|
145
|
+
if (!statSync(path).isFile()) return false;
|
|
146
|
+
accessSync(path, constants.X_OK);
|
|
147
|
+
return true;
|
|
148
|
+
} catch {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Finds `cpa-launcher` for a CPA binary: next to the binary first (platform
|
|
155
|
+
* packages and local builds keep both in one directory), then in an installed
|
|
156
|
+
* platform package. Returns undefined on Windows, where Node already places
|
|
157
|
+
* child processes in a job object that is closed (and its processes killed)
|
|
158
|
+
* when this process exits.
|
|
159
|
+
*/
|
|
160
|
+
export function resolveLauncher(cpaPath: string, platform: HostPlatform = currentPlatform()): ResolvedLauncher | undefined {
|
|
161
|
+
if (platform.os === 'win32') return undefined;
|
|
162
|
+
const mode: LauncherMode = platform.os === 'linux' ? 'exec' : 'supervise';
|
|
163
|
+
const candidates = [join(dirname(cpaPath), LAUNCHER_NAME)];
|
|
164
|
+
for (const target of candidateTargets(platform)) {
|
|
165
|
+
try {
|
|
166
|
+
candidates.push(join(dirname(require.resolve(`${packageName(target)}/package.json`)), 'bin', LAUNCHER_NAME));
|
|
167
|
+
} catch {
|
|
168
|
+
// Package not installed.
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
const path = candidates.find(isExecutable);
|
|
172
|
+
return path === undefined ? undefined : { path, mode };
|
|
173
|
+
}
|
package/src/server/index.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { tmpdir } from 'node:os';
|
|
|
3
3
|
import { join, resolve } from 'node:path';
|
|
4
4
|
import { setTimeout as delay } from 'node:timers/promises';
|
|
5
5
|
import { buildArgs } from './args.ts';
|
|
6
|
-
import { resolveBinary } from './binary.ts';
|
|
6
|
+
import { resolveBinary, resolveLauncher } from './binary.ts';
|
|
7
7
|
import { inspectConfigFile, readManagedConfig, updateManagedSecret, writeManagedConfig, type PreparedConfig } from './config.ts';
|
|
8
8
|
import { CpaStartError } from './errors.ts';
|
|
9
9
|
import { keyMatches, resolveManagement, type ResolvedManagement } from './management.ts';
|
|
@@ -111,7 +111,10 @@ function abortError(signal: AbortSignal, output: string, message = 'startServer
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
interface LaunchOptions {
|
|
114
|
+
/** Executable to spawn: cpa-launcher, or CPA itself. */
|
|
114
115
|
binaryPath: string;
|
|
116
|
+
/** cpa-launcher supervise mode (process group + liveness pipe). */
|
|
117
|
+
supervised: boolean;
|
|
115
118
|
args: readonly string[];
|
|
116
119
|
stateDir: string;
|
|
117
120
|
env: NodeJS.ProcessEnv;
|
|
@@ -140,6 +143,7 @@ async function launchProcess(options: LaunchOptions): Promise<LaunchResult> {
|
|
|
140
143
|
let proc: ManagedProcess;
|
|
141
144
|
try {
|
|
142
145
|
proc = new ManagedProcess(options.binaryPath, options.args, {
|
|
146
|
+
supervised: options.supervised,
|
|
143
147
|
cwd: options.stateDir,
|
|
144
148
|
env: options.env,
|
|
145
149
|
redact: options.redact,
|
|
@@ -210,11 +214,29 @@ export async function startServer(options: StartServerOptions = {}): Promise<Cpa
|
|
|
210
214
|
command === undefined
|
|
211
215
|
? resolveBinary(options.binaryPath === undefined ? {} : { binaryPath: options.binaryPath })
|
|
212
216
|
: { path: command.path };
|
|
213
|
-
|
|
217
|
+
// What actually gets spawned: CPA wrapped in cpa-launcher when available, so CPA
|
|
218
|
+
// cannot outlive this process (see binary.ts and the launcher/ sources).
|
|
219
|
+
const program = command?.path ?? binary.path;
|
|
220
|
+
const launcher =
|
|
221
|
+
options.launcher === false ? undefined : command !== undefined ? command.launcher : resolveLauncher(binary.path);
|
|
222
|
+
const spawnPath = launcher?.path ?? program;
|
|
223
|
+
const supervised = launcher?.mode === 'supervise';
|
|
224
|
+
const prefixArgs = [
|
|
225
|
+
...(launcher === undefined ? [] : [...(supervised ? ['--supervise', '--watch-stdin'] : []), '--', program]),
|
|
226
|
+
...(command?.args ?? []),
|
|
227
|
+
];
|
|
214
228
|
// Validate everything that can be validated before creating any resource, so a
|
|
215
229
|
// rejected option never leaves a temporary state directory behind.
|
|
216
230
|
const env = buildEnv(options, management);
|
|
231
|
+
// Exec mode checks this after PR_SET_PDEATHSIG to catch a parent that died first.
|
|
232
|
+
if (launcher?.mode === 'exec') env.CPAJS_PARENT_PID = String(process.pid);
|
|
217
233
|
const extraArgs = buildArgs(options);
|
|
234
|
+
if (launcher === undefined && options.launcher !== false && command === undefined && process.platform !== 'win32') {
|
|
235
|
+
options.onLog?.({
|
|
236
|
+
stream: 'stderr',
|
|
237
|
+
line: `cpajs: notice: no cpa-launcher found for ${binary.path}; CPA will keep running if this process is killed. Pass launcher: false to silence this.`,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
218
240
|
const ownsStateDir = options.stateDir === undefined;
|
|
219
241
|
const stateDir = ownsStateDir ? await mkdtemp(join(tmpdir(), 'cpajs-')) : resolve(options.stateDir!);
|
|
220
242
|
if (!ownsStateDir) await mkdir(stateDir, { recursive: true });
|
|
@@ -318,7 +340,8 @@ export async function startServer(options: StartServerOptions = {}): Promise<Cpa
|
|
|
318
340
|
reservation = undefined;
|
|
319
341
|
await held?.release();
|
|
320
342
|
const result = await launchProcess({
|
|
321
|
-
binaryPath:
|
|
343
|
+
binaryPath: spawnPath,
|
|
344
|
+
supervised,
|
|
322
345
|
args: [...prefixArgs, '-config', prepared.configPath, ...extraArgs],
|
|
323
346
|
stateDir,
|
|
324
347
|
env,
|
|
@@ -338,6 +361,8 @@ export async function startServer(options: StartServerOptions = {}): Promise<Cpa
|
|
|
338
361
|
if (result.kind === 'ready') {
|
|
339
362
|
return createHandle(result.proc, {
|
|
340
363
|
binaryPath: binary.path,
|
|
364
|
+
spawnPath,
|
|
365
|
+
supervised,
|
|
341
366
|
prefixArgs,
|
|
342
367
|
configPath: prepared.configPath,
|
|
343
368
|
listen: prepared.listen,
|
|
@@ -390,7 +415,11 @@ async function waitUntilReady(
|
|
|
390
415
|
}
|
|
391
416
|
|
|
392
417
|
interface HandleInfo {
|
|
418
|
+
/** The CPA binary (exposed on the handle). */
|
|
393
419
|
binaryPath: string;
|
|
420
|
+
/** What is spawned: cpa-launcher or CPA itself. */
|
|
421
|
+
spawnPath: string;
|
|
422
|
+
supervised: boolean;
|
|
394
423
|
/** Arguments before `-config` (only set by the internal test launcher). */
|
|
395
424
|
prefixArgs: readonly string[];
|
|
396
425
|
configPath: string;
|
|
@@ -474,7 +503,8 @@ function createHandle(initialProc: ManagedProcess, info: HandleInfo): CpaServer
|
|
|
474
503
|
// Reuse the config file as CPA left it. Rewriting it here would discard
|
|
475
504
|
// changes made through the management API during the previous run (#13).
|
|
476
505
|
const result = await launchProcess({
|
|
477
|
-
binaryPath: info.
|
|
506
|
+
binaryPath: info.spawnPath,
|
|
507
|
+
supervised: info.supervised,
|
|
478
508
|
args: [...info.prefixArgs, '-config', info.configPath, ...info.extraArgs],
|
|
479
509
|
stateDir: info.stateDir,
|
|
480
510
|
env: info.env,
|
package/src/server/internal.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { ResolvedLauncher } from './binary.ts';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Test-only hooks. Nothing here is exported from the public entry points.
|
|
3
5
|
*
|
|
@@ -13,4 +15,6 @@ export interface InternalCommand {
|
|
|
13
15
|
path: string;
|
|
14
16
|
/** Arguments placed before `-config <file>`. */
|
|
15
17
|
args: readonly string[];
|
|
18
|
+
/** Launcher to wrap the command in; omitted means none (tests opt in explicitly). */
|
|
19
|
+
launcher?: ResolvedLauncher;
|
|
16
20
|
}
|
package/src/server/process.ts
CHANGED
|
@@ -7,19 +7,19 @@ const MAX_RECENT_LINES = 200;
|
|
|
7
7
|
export const MAX_LINE_LENGTH = 64 * 1024;
|
|
8
8
|
|
|
9
9
|
// Children still running when this process exits normally (or calls
|
|
10
|
-
// process.exit()) are killed.
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
const live = new Set<
|
|
10
|
+
// process.exit()) are killed. A fatal signal with no listener, e.g. a default
|
|
11
|
+
// SIGTERM or SIGKILL, ends Node without emitting 'exit'; there the launcher
|
|
12
|
+
// (cpa-launcher, see binary.ts) stops CPA instead. This library does not
|
|
13
|
+
// install signal handlers, because doing so would change how the host process
|
|
14
|
+
// reacts to them.
|
|
15
|
+
const live = new Set<ManagedProcess>();
|
|
16
16
|
let exitHookInstalled = false;
|
|
17
|
-
function
|
|
18
|
-
live.add(
|
|
17
|
+
function track(proc: ManagedProcess): void {
|
|
18
|
+
live.add(proc);
|
|
19
19
|
if (exitHookInstalled) return;
|
|
20
20
|
exitHookInstalled = true;
|
|
21
21
|
process.once('exit', () => {
|
|
22
|
-
for (const
|
|
22
|
+
for (const p of live) p.kill('SIGKILL');
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -28,6 +28,12 @@ export interface SpawnOptions {
|
|
|
28
28
|
env: NodeJS.ProcessEnv;
|
|
29
29
|
redact: (text: string) => string;
|
|
30
30
|
onLog?: ((log: LogLine) => void) | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Supervise mode of cpa-launcher: start it in its own process group, signal
|
|
33
|
+
* the whole group (launcher and CPA), and keep a stdin pipe open whose EOF
|
|
34
|
+
* tells the launcher that this process has died.
|
|
35
|
+
*/
|
|
36
|
+
supervised?: boolean;
|
|
31
37
|
}
|
|
32
38
|
|
|
33
39
|
/** A spawned CPA process with line-buffered, redacted output and idempotent stop. */
|
|
@@ -42,18 +48,26 @@ export class ManagedProcess {
|
|
|
42
48
|
readonly #redact: (text: string) => string;
|
|
43
49
|
readonly #onLog: ((log: LogLine) => void) | undefined;
|
|
44
50
|
readonly #lineListeners = new Set<(log: LogLine) => void>();
|
|
51
|
+
readonly #supervised: boolean;
|
|
45
52
|
#stopping: Promise<ExitResult> | undefined;
|
|
46
53
|
|
|
47
54
|
constructor(binaryPath: string, args: readonly string[], options: SpawnOptions) {
|
|
48
55
|
this.#redact = options.redact;
|
|
49
56
|
this.#onLog = options.onLog;
|
|
57
|
+
this.#supervised = options.supervised === true;
|
|
50
58
|
this.child = spawn(binaryPath, [...args], {
|
|
51
59
|
cwd: options.cwd,
|
|
52
60
|
env: options.env,
|
|
53
|
-
|
|
61
|
+
// The supervised launcher's stdin is a liveness pipe: never written, closed by
|
|
62
|
+
// the OS when this process dies.
|
|
63
|
+
stdio: [this.#supervised ? 'pipe' : 'ignore', 'pipe', 'pipe'],
|
|
64
|
+
// Its own process group, so stop() can signal the launcher and CPA together.
|
|
65
|
+
detached: this.#supervised,
|
|
54
66
|
windowsHide: true,
|
|
55
67
|
});
|
|
56
|
-
|
|
68
|
+
// A liveness pipe with nobody reading it is expected after the launcher exits.
|
|
69
|
+
this.child.stdin?.on('error', () => {});
|
|
70
|
+
track(this);
|
|
57
71
|
|
|
58
72
|
this.exited = new Promise<ExitResult>((resolve) => {
|
|
59
73
|
this.child.once('error', (error) => {
|
|
@@ -71,7 +85,7 @@ export class ManagedProcess {
|
|
|
71
85
|
#finish(resolve: (result: ExitResult) => void, result: ExitResult): void {
|
|
72
86
|
if (this.exitResult) return;
|
|
73
87
|
this.exitResult = result;
|
|
74
|
-
live.delete(this
|
|
88
|
+
live.delete(this);
|
|
75
89
|
resolve(result);
|
|
76
90
|
}
|
|
77
91
|
|
|
@@ -111,6 +125,20 @@ export class ManagedProcess {
|
|
|
111
125
|
});
|
|
112
126
|
}
|
|
113
127
|
|
|
128
|
+
/** Signals the process, or the launcher's whole process group in supervise mode. */
|
|
129
|
+
kill(signal: NodeJS.Signals): void {
|
|
130
|
+
const pid = this.child.pid;
|
|
131
|
+
if (this.#supervised && pid !== undefined) {
|
|
132
|
+
try {
|
|
133
|
+
process.kill(-pid, signal);
|
|
134
|
+
return;
|
|
135
|
+
} catch {
|
|
136
|
+
// The group is already gone; fall back to the direct child.
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
this.child.kill(signal);
|
|
140
|
+
}
|
|
141
|
+
|
|
114
142
|
onLine(listener: (log: LogLine) => void): () => void {
|
|
115
143
|
this.#lineListeners.add(listener);
|
|
116
144
|
return () => this.#lineListeners.delete(listener);
|
|
@@ -128,14 +156,14 @@ export class ManagedProcess {
|
|
|
128
156
|
stop(timeoutMs: number): Promise<ExitResult> {
|
|
129
157
|
if (this.exitResult) return Promise.resolve(this.exitResult);
|
|
130
158
|
this.#stopping ??= (async () => {
|
|
131
|
-
this.
|
|
159
|
+
this.kill('SIGTERM');
|
|
132
160
|
let timer: NodeJS.Timeout | undefined;
|
|
133
161
|
const timedOut = new Promise<'timeout'>((resolve) => {
|
|
134
162
|
timer = setTimeout(() => resolve('timeout'), timeoutMs);
|
|
135
163
|
});
|
|
136
164
|
const first = await Promise.race([this.exited, timedOut]);
|
|
137
165
|
clearTimeout(timer);
|
|
138
|
-
if (first === 'timeout') this.
|
|
166
|
+
if (first === 'timeout') this.kill('SIGKILL');
|
|
139
167
|
return this.exited;
|
|
140
168
|
})();
|
|
141
169
|
return this.#stopping;
|
package/src/server/targets.ts
CHANGED
|
@@ -131,3 +131,11 @@ export function packageName(target: Target): string {
|
|
|
131
131
|
export function binaryName(target: Pick<Target, 'os'>): string {
|
|
132
132
|
return target.os === 'win32' ? 'cli-proxy-api.exe' : 'cli-proxy-api';
|
|
133
133
|
}
|
|
134
|
+
|
|
135
|
+
/** Name of the launcher shipped next to the CPA binary. Windows needs none (see binary.ts). */
|
|
136
|
+
export const LAUNCHER_NAME = 'cpa-launcher';
|
|
137
|
+
|
|
138
|
+
/** True for targets whose platform package ships `cpa-launcher`. */
|
|
139
|
+
export function hasLauncher(target: Pick<Target, 'os'>): boolean {
|
|
140
|
+
return target.os !== 'win32';
|
|
141
|
+
}
|
package/src/server/types.ts
CHANGED
|
@@ -59,6 +59,22 @@ interface CommonServerOptions {
|
|
|
59
59
|
* (`-local-model`). Explicit `models.*` config sources still win.
|
|
60
60
|
*/
|
|
61
61
|
localModel?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Start CPA through `cpa-launcher` so it cannot outlive this process, even
|
|
64
|
+
* when this process is killed with SIGKILL or crashes. Default `true`.
|
|
65
|
+
*
|
|
66
|
+
* - Linux: the launcher sets PR_SET_PDEATHSIG and execs CPA (no extra process).
|
|
67
|
+
* - macOS / BSD: the launcher stays as CPA's parent and stops it when this
|
|
68
|
+
* process dies; `pid` is then the launcher's pid, and signals sent to it are
|
|
69
|
+
* forwarded to CPA.
|
|
70
|
+
* - Windows: not needed; Node already kills child processes with their parent.
|
|
71
|
+
*
|
|
72
|
+
* The launcher ships next to the CPA binary in every platform package. With a
|
|
73
|
+
* custom `binaryPath` it is looked up next to that binary and then in an
|
|
74
|
+
* installed platform package; if none is found CPA is started directly and a
|
|
75
|
+
* notice is logged through `onLog`.
|
|
76
|
+
*/
|
|
77
|
+
launcher?: boolean;
|
|
62
78
|
/** Run as a node of a CPA Home control plane. Home mode disables the local management API. */
|
|
63
79
|
home?: HomeOptions;
|
|
64
80
|
/**
|