@bjorntech/key-ferry 0.1.6 → 0.1.8

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.
@@ -7,72 +7,90 @@ export class Process extends Context.Service()("key-ferry/Process") {
7
7
  }
8
8
  const defaultMaxBytes = 1024 * 1024;
9
9
  const defaultGraceMs = 500;
10
+ const supportsOwnedProcessGroups = process.platform === "darwin" || process.platform === "linux";
10
11
  const safeMessage = (phase, code) => `${phase} failed (${code})`;
11
12
  const error = (phase, code, extra = {}) => new ProcessError({ phase, code, message: safeMessage(phase, code), ...extra });
12
- const kill = (child, graceMs) => Effect.callback((resume) => {
13
+ const leaderIsAlive = (owned) => owned.child.exitCode === null && owned.child.signalCode === null;
14
+ const signalOwned = (owned, value) => {
15
+ // A numeric process-group id is only usable while the leader is alive. Once
16
+ // it exits, the id can eventually be reused by an unrelated group and Node
17
+ // has no portable primitive that proves group identity.
18
+ if (!owned.owned || !leaderIsAlive(owned)) {
19
+ owned.owned = false;
20
+ return;
21
+ }
22
+ try {
23
+ if (owned.groupId !== undefined)
24
+ process.kill(-owned.groupId, value);
25
+ else
26
+ owned.child.kill(value);
27
+ }
28
+ catch {
29
+ // The leader/group may have exited between the check and signal.
30
+ }
31
+ };
32
+ /**
33
+ * Terminate one owned leader and, while ownership is still valid, its group.
34
+ * The returned promise owns every timer and listener and always settles within
35
+ * the reap deadline. Natural leader exit revokes group ownership; descendants
36
+ * that create their own group cannot be safely identified after that point.
37
+ */
38
+ const terminateOwned = (owned, graceMs) => new Promise((resolve) => {
13
39
  let settled = false;
14
40
  let graceTimer;
15
41
  let reapTimer;
16
42
  const finish = () => {
17
- if (!settled) {
18
- settled = true;
19
- if (graceTimer)
20
- clearTimeout(graceTimer);
21
- if (reapTimer)
22
- clearTimeout(reapTimer);
23
- child.removeListener("close", finish);
24
- resume(Effect.void);
25
- }
26
- };
27
- const waitForClose = () => {
28
- // `kill` only sends a signal. Keep the listener installed until Node has
29
- // reaped the child, but retain a deadline for runtimes that never emit
30
- // close after an already-lost child.
31
- reapTimer = setTimeout(finish, 1000);
32
- };
33
- const killImmediately = () => {
34
- try {
35
- child.kill("SIGKILL");
36
- }
37
- catch {
38
- // The child may have exited between the state check and the signal.
39
- }
40
- waitForClose();
43
+ if (settled)
44
+ return;
45
+ settled = true;
46
+ if (graceTimer)
47
+ clearTimeout(graceTimer);
48
+ if (reapTimer)
49
+ clearTimeout(reapTimer);
50
+ owned.child.removeListener("exit", onExit);
51
+ owned.child.removeListener("close", onClose);
52
+ resolve();
41
53
  };
42
- const cleanup = () => {
43
- clearTimeout(graceTimer);
44
- clearTimeout(reapTimer);
45
- child.removeListener("close", finish);
54
+ const onExit = () => {
55
+ owned.owned = false;
56
+ finish();
46
57
  };
47
- child.once("close", finish);
48
- if (child.exitCode !== null || child.signalCode !== null) {
49
- waitForClose();
50
- return Effect.sync(cleanup);
51
- }
52
- try {
53
- child.kill("SIGTERM");
54
- }
55
- catch {
56
- killImmediately();
57
- return Effect.sync(cleanup);
58
+ const onClose = () => finish();
59
+ owned.child.once("exit", onExit);
60
+ owned.child.once("close", onClose);
61
+ if (!leaderIsAlive(owned)) {
62
+ owned.owned = false;
63
+ finish();
64
+ return;
58
65
  }
66
+ signalOwned(owned, "SIGTERM");
59
67
  graceTimer = setTimeout(() => {
60
- killImmediately();
68
+ if (!leaderIsAlive(owned)) {
69
+ owned.owned = false;
70
+ finish();
71
+ return;
72
+ }
73
+ signalOwned(owned, "SIGKILL");
74
+ // SIGKILL should reap the leader promptly, but do not keep a scope alive
75
+ // forever if the runtime fails to report close.
76
+ reapTimer = setTimeout(finish, 1000);
61
77
  }, Math.max(0, graceMs));
62
- return Effect.sync(cleanup);
63
78
  });
64
- const spawnRaw = (input) => Effect.acquireRelease(Effect.callback((resume) => {
79
+ const spawnRaw = (input, spawnProcess = spawn) => Effect.acquireRelease(Effect.callback((resume, abortSignal) => {
65
80
  let child;
81
+ let acquired = false;
82
+ let acquisitionFailed = false;
83
+ let stopping;
66
84
  try {
67
85
  // shell is intentionally absent. Never inherit or mutate global env.
68
- child = spawn(input.executable, [...input.args], {
86
+ child = spawnProcess(input.executable, [...input.args], {
69
87
  cwd: input.cwd,
70
88
  // An omitted environment is intentionally isolated. Callers that
71
89
  // need the trusted Varlock resolver environment must pass it
72
90
  // deliberately; never inherit the host process environment.
73
91
  env: input.env ? { ...input.env } : {},
74
92
  shell: false,
75
- detached: false,
93
+ detached: supportsOwnedProcessGroups,
76
94
  stdio: ["ignore", "ignore", "ignore"],
77
95
  });
78
96
  }
@@ -80,58 +98,97 @@ const spawnRaw = (input) => Effect.acquireRelease(Effect.callback((resume) => {
80
98
  resume(Effect.fail(error("spawn", "spawn-failed")));
81
99
  return;
82
100
  }
83
- const completion = Effect.callback((done) => {
84
- const close = (code, signal) => {
85
- child.removeListener("error", onError);
86
- if (code === 0)
87
- done(Effect.succeed({ code, signal }));
88
- else
89
- done(Effect.fail(error("exit", code === null ? "signal" : "non-zero", {
101
+ const owned = {
102
+ child,
103
+ // Until the `spawn` event, never use a numeric group id. If
104
+ // acquisition is interrupted in this window, only direct-child
105
+ // termination is safe.
106
+ groupId: undefined,
107
+ owned: true,
108
+ };
109
+ let complete;
110
+ const completionResult = new Promise((resolve) => (complete = resolve));
111
+ const onCompletionError = () => complete({ ok: false, error: error("running", "io") });
112
+ const onClose = (code, signal) => {
113
+ child.removeListener("error", onCompletionError);
114
+ complete(code === 0
115
+ ? { ok: true, value: { code, signal } }
116
+ : {
117
+ ok: false,
118
+ error: error("exit", code === null ? "signal" : "non-zero", {
90
119
  exitCode: code ?? undefined,
91
120
  signal: signal ?? undefined,
92
- })));
93
- };
94
- const onError = () => done(Effect.fail(error("running", "io")));
95
- child.once("close", close);
96
- child.once("error", onError);
97
- return Effect.sync(() => {
98
- child.removeListener("close", close);
99
- child.removeListener("error", onError);
121
+ }),
122
+ });
123
+ };
124
+ const onSpawnError = () => {
125
+ acquisitionFailed = true;
126
+ child.removeListener("spawn", onSpawn);
127
+ child.removeListener("error", onSpawnError);
128
+ resume(Effect.fail(error("spawn", "spawn-failed")));
129
+ };
130
+ const onSpawn = () => {
131
+ child.removeListener("error", onSpawnError);
132
+ owned.groupId = supportsOwnedProcessGroups ? child.pid : undefined;
133
+ owned.owned = true;
134
+ child.once("close", onClose);
135
+ child.once("error", onCompletionError);
136
+ const completion = Effect.promise(() => completionResult).pipe(Effect.flatMap((result) => result.ok ? Effect.succeed(result.value) : Effect.fail(result.error)));
137
+ let stopped = false;
138
+ const stop = Effect.suspend(() => {
139
+ if (stopped)
140
+ return Effect.void;
141
+ // All callers join one bounded cleanup promise. The promise owns its
142
+ // timers, and uninterruptible prevents a canceled stop from leaving
143
+ // the leader or its still-owned group behind.
144
+ stopping ??= terminateOwned(owned, input.terminateGraceMs ?? defaultGraceMs);
145
+ return Effect.uninterruptible(Effect.promise(() => stopping)).pipe(Effect.tap(() => Effect.sync(() => (stopped = true))));
100
146
  });
101
- });
102
- let stopped = false;
103
- const stop = Effect.suspend(() => {
104
- if (stopped)
105
- return Effect.void;
106
- // A stop is bounded by kill's grace period, but must not be
107
- // interruptible between SIGTERM and the SIGKILL fallback. Otherwise
108
- // an interrupted stop can clear the fallback timer while `stopped`
109
- // prevents scope finalization from trying again.
110
- return Effect.uninterruptible(kill(child, input.terminateGraceMs ?? defaultGraceMs)).pipe(Effect.tap(() => Effect.sync(() => (stopped = true))));
111
- });
112
- resume(Effect.succeed({
113
- pid: child.pid,
114
- completion,
115
- health: Effect.sync(() => ({
147
+ acquired = true;
148
+ resume(Effect.succeed({
116
149
  pid: child.pid,
117
- running: child.exitCode === null && child.signalCode === null,
118
- exit: child.exitCode !== null || child.signalCode !== null
119
- ? { code: child.exitCode, signal: child.signalCode }
120
- : undefined,
121
- })),
122
- stop,
123
- }));
124
- }), (process) => process.stop.pipe(Effect.catch(() => Effect.void)));
150
+ completion,
151
+ health: Effect.sync(() => ({
152
+ pid: child.pid,
153
+ running: child.exitCode === null && child.signalCode === null,
154
+ exit: child.exitCode !== null || child.signalCode !== null
155
+ ? { code: child.exitCode, signal: child.signalCode }
156
+ : undefined,
157
+ })),
158
+ stop,
159
+ }));
160
+ };
161
+ // Install both listeners before returning from the callback. A failed
162
+ // async spawn is therefore converted to ProcessError, never an emitter
163
+ // event with no listener or a handle with an undefined pid.
164
+ child.once("spawn", onSpawn);
165
+ child.once("error", onSpawnError);
166
+ const acquisitionCleanup = () => {
167
+ if (acquired || acquisitionFailed)
168
+ return Promise.resolve();
169
+ stopping ??= terminateOwned(owned, input.terminateGraceMs ?? defaultGraceMs);
170
+ return stopping;
171
+ };
172
+ const onAbort = () => {
173
+ void acquisitionCleanup();
174
+ };
175
+ abortSignal.addEventListener("abort", onAbort, { once: true });
176
+ return Effect.promise(acquisitionCleanup).pipe(Effect.tap(() => Effect.sync(() => {
177
+ child.removeListener("spawn", onSpawn);
178
+ child.removeListener("error", onSpawnError);
179
+ abortSignal.removeEventListener("abort", onAbort);
180
+ })));
181
+ }), (process) => process.stop.pipe(Effect.catch(() => Effect.void)), { interruptible: true });
125
182
  const run = (input) => {
126
183
  const maxBytes = input.maxBytes ?? defaultMaxBytes;
127
- const spawned = Effect.callback((resume, signal) => {
184
+ const spawned = Effect.callback((resume, abortSignal) => {
128
185
  let child;
129
186
  try {
130
187
  child = spawn(input.executable, [...input.args], {
131
188
  cwd: input.cwd,
132
189
  env: input.env ? { ...input.env } : {},
133
190
  shell: false,
134
- detached: false,
191
+ detached: supportsOwnedProcessGroups,
135
192
  stdio: ["ignore", "pipe", "pipe"],
136
193
  });
137
194
  }
@@ -139,75 +196,106 @@ const run = (input) => {
139
196
  resume(Effect.fail(error("spawn", "spawn-failed")));
140
197
  return;
141
198
  }
199
+ const owned = {
200
+ child,
201
+ groupId: supportsOwnedProcessGroups ? child.pid : undefined,
202
+ owned: true,
203
+ };
142
204
  let stdout = "";
143
205
  let stderr = "";
144
206
  let limited = false;
145
- const onData = (which) => (chunk) => {
146
- if (which === "stdout")
147
- stdout += chunk.toString("utf8");
148
- else
149
- stderr += chunk.toString("utf8");
150
- if ((which === "stdout" ? Buffer.byteLength(stdout) : Buffer.byteLength(stderr)) > maxBytes &&
151
- !limited) {
207
+ let settled = false;
208
+ let stopping;
209
+ let closeFallback;
210
+ const out = (chunk) => {
211
+ stdout += chunk.toString("utf8");
212
+ if (Buffer.byteLength(stdout) > maxBytes && !limited) {
152
213
  limited = true;
153
- try {
154
- child.kill("SIGTERM");
155
- }
156
- catch {
157
- /* already exited */
158
- }
159
- setTimeout(() => {
160
- if (child.exitCode === null && child.signalCode === null) {
161
- try {
162
- child.kill("SIGKILL");
163
- }
164
- catch {
165
- /* already exited */
166
- }
167
- }
168
- }, defaultGraceMs);
214
+ beginTermination().then(() => finishFailure(error("capture-limit", "capture-limit")));
169
215
  }
170
216
  };
171
- const out = onData("stdout");
172
- const err = onData("stderr");
173
- child.stdout?.on("data", out);
174
- child.stderr?.on("data", err);
175
- const close = (code, sig) => {
217
+ const err = (chunk) => {
218
+ stderr += chunk.toString("utf8");
219
+ if (Buffer.byteLength(stderr) > maxBytes && !limited) {
220
+ limited = true;
221
+ beginTermination().then(() => finishFailure(error("capture-limit", "capture-limit")));
222
+ }
223
+ };
224
+ const cleanup = () => {
225
+ if (closeFallback)
226
+ clearTimeout(closeFallback);
227
+ child.stdout?.removeListener("data", out);
228
+ child.stderr?.removeListener("data", err);
229
+ child.removeListener("exit", onExit);
230
+ child.removeListener("close", onClose);
231
+ child.removeListener("error", onError);
232
+ };
233
+ const finishFailure = (failure) => {
234
+ if (settled)
235
+ return;
236
+ settled = true;
237
+ cleanup();
238
+ child.stdout?.destroy();
239
+ child.stderr?.destroy();
240
+ resume(Effect.fail(failure));
241
+ };
242
+ const closeResult = (code, sig) => {
176
243
  if (limited)
177
- resume(Effect.fail(error("capture-limit", "capture-limit")));
178
- else if (code === 0)
179
- resume(Effect.succeed({ code, signal: sig, stdout, stderr }));
180
- else
181
- resume(Effect.fail(error("exit", code === null ? "signal" : "non-zero", {
182
- exitCode: code ?? undefined,
183
- signal: sig ?? undefined,
184
- })));
244
+ return Effect.fail(error("capture-limit", "capture-limit"));
245
+ if (code === 0)
246
+ return Effect.succeed({ code, signal: sig, stdout, stderr });
247
+ return Effect.fail(error("exit", code === null ? "signal" : "non-zero", {
248
+ exitCode: code ?? undefined,
249
+ signal: sig ?? undefined,
250
+ }));
185
251
  };
186
- child.once("close", close);
187
- child.once("error", () => resume(Effect.fail(error("running", "io"))));
188
- signal.addEventListener("abort", () => {
189
- try {
190
- child.kill("SIGTERM");
191
- }
192
- catch {
193
- /* already exited */
194
- }
195
- setTimeout(() => {
196
- if (child.exitCode === null && child.signalCode === null) {
197
- try {
198
- child.kill("SIGKILL");
199
- }
200
- catch {
201
- /* already exited */
202
- }
252
+ const finishClose = (code, sig) => {
253
+ if (settled)
254
+ return;
255
+ settled = true;
256
+ cleanup();
257
+ resume(closeResult(code, sig));
258
+ };
259
+ const beginTermination = () => {
260
+ stopping ??= terminateOwned(owned, defaultGraceMs);
261
+ return stopping;
262
+ };
263
+ const onExit = () => {
264
+ // Once the leader exits, revoke the numeric group lease. Node cannot
265
+ // prove that a later process with the same id is ours. Descendants that
266
+ // retain stdio are allowed only a bounded close window; they are not
267
+ // signaled after this point because that would risk killing a reused id.
268
+ owned.owned = false;
269
+ closeFallback ??= setTimeout(() => {
270
+ child.stdout?.destroy();
271
+ child.stderr?.destroy();
272
+ finishClose(child.exitCode, child.signalCode);
273
+ }, 1000);
274
+ };
275
+ const onClose = (code, sig) => finishClose(code, sig);
276
+ const onError = () => {
277
+ beginTermination().then(() => finishFailure(error("running", "io")));
278
+ };
279
+ child.stdout?.on("data", out);
280
+ child.stderr?.on("data", err);
281
+ child.once("exit", onExit);
282
+ child.once("close", onClose);
283
+ child.once("error", onError);
284
+ abortSignal.addEventListener("abort", () => {
285
+ beginTermination().then(() => {
286
+ if (!settled) {
287
+ settled = true;
288
+ cleanup();
289
+ child.stdout?.destroy();
290
+ child.stderr?.destroy();
203
291
  }
204
- }, defaultGraceMs);
292
+ });
205
293
  }, { once: true });
206
- return Effect.sync(() => {
207
- child.stdout?.removeListener("data", out);
208
- child.stderr?.removeListener("data", err);
209
- child.removeListener("close", close);
210
- });
294
+ return Effect.uninterruptible(Effect.promise(() => stopping ?? Promise.resolve()).pipe(Effect.tap(() => Effect.sync(() => {
295
+ cleanup();
296
+ child.stdout?.destroy();
297
+ child.stderr?.destroy();
298
+ }))));
211
299
  });
212
300
  const bounded = input.timeoutMs === undefined
213
301
  ? spawned
@@ -217,5 +305,8 @@ const run = (input) => {
217
305
  }));
218
306
  return bounded;
219
307
  };
220
- export const ProcessLive = Layer.succeed(Process, Process.of({ run, spawn: spawnRaw }));
308
+ const makeProcessLive = (spawnProcess = spawn) => Layer.succeed(Process, Process.of({ run, spawn: (input) => spawnRaw(input, spawnProcess) }));
309
+ export const ProcessLive = makeProcessLive();
310
+ /** @internal Test-only seam; not exported from the package entrypoints. */
311
+ export const ProcessLiveForTesting = (spawnProcess) => makeProcessLive(spawnProcess);
221
312
  //# sourceMappingURL=process.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/services/process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/services/process.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,13 @@
1
+ import { mkdtemp, realpath, rm } from "node:fs/promises";
1
2
  import { Layer } from "effect";
2
3
  import { ProjectKeyFerryManager, type ProjectKeyFerryManagerFactory, type ProjectKeyFerryManagerOptions, VarlockError } from "../contracts.js";
3
4
  import { Process } from "../services/process.js";
4
- export declare function makeProjectKeyFerryManager(options: ProjectKeyFerryManagerOptions, processLayer?: Layer.Layer<Process, never, never>): Layer.Layer<ProjectKeyFerryManager, VarlockError, never>;
5
+ type ManagerFileOps = {
6
+ mkdtemp: typeof mkdtemp;
7
+ realpath: typeof realpath;
8
+ rm: typeof rm;
9
+ };
10
+ export declare function makeProjectKeyFerryManager(options: ProjectKeyFerryManagerOptions, processLayer?: Layer.Layer<Process, never, never>, fileOps?: ManagerFileOps): Layer.Layer<ProjectKeyFerryManager, VarlockError, never>;
5
11
  export declare const projectKeyFerryManagerFactory: ProjectKeyFerryManagerFactory;
12
+ export {};
6
13
  //# sourceMappingURL=manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/varlock/manager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,EAAoB,MAAM,QAAQ,CAAC;AACnE,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAIlC,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,OAAO,EAKR,MAAM,wBAAwB,CAAC;AAwUhC,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,6BAA6B,EACtC,YAAY,GAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAe,GAC7D,KAAK,CAAC,KAAK,CAAC,sBAAsB,EAAE,YAAY,EAAE,KAAK,CAAC,CAgW1D;AAED,eAAO,MAAM,6BAA6B,EAAE,6BAE3C,CAAC"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/varlock/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAe,MAAM,kBAAkB,CAAC;AAG9E,OAAO,EAAoB,KAAK,EAAoB,MAAM,QAAQ,CAAC;AACnE,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAIlC,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,OAAO,EAKR,MAAM,wBAAwB,CAAC;AA4BhC,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,EAAE,EAAE,OAAO,EAAE,CAAC;CACf,CAAC;AA8SF,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,6BAA6B,EACtC,YAAY,GAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAe,EAC9D,OAAO,GAAE,cAA+B,GACvC,KAAK,CAAC,KAAK,CAAC,sBAAsB,EAAE,YAAY,EAAE,KAAK,CAAC,CA6Z1D;AAED,eAAO,MAAM,6BAA6B,EAAE,6BAE3C,CAAC"}