@bjorntech/key-ferry 0.1.12 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +20 -0
  2. package/dist/broker-registry.d.ts +32 -0
  3. package/dist/broker-registry.d.ts.map +1 -1
  4. package/dist/broker-registry.js +376 -42
  5. package/dist/broker-registry.js.map +1 -1
  6. package/dist/contracts.d.ts +13 -3
  7. package/dist/contracts.d.ts.map +1 -1
  8. package/dist/contracts.js +3 -0
  9. package/dist/contracts.js.map +1 -1
  10. package/dist/options.d.ts +1 -0
  11. package/dist/options.d.ts.map +1 -1
  12. package/dist/options.js +17 -0
  13. package/dist/options.js.map +1 -1
  14. package/dist/plugin.d.ts.map +1 -1
  15. package/dist/plugin.js +4 -4
  16. package/dist/plugin.js.map +1 -1
  17. package/dist/rpc.d.ts +62 -12
  18. package/dist/rpc.d.ts.map +1 -1
  19. package/dist/rpc.js +41 -27
  20. package/dist/rpc.js.map +1 -1
  21. package/dist/scoped-controller.d.ts +5 -3
  22. package/dist/scoped-controller.d.ts.map +1 -1
  23. package/dist/scoped-controller.js +110 -44
  24. package/dist/scoped-controller.js.map +1 -1
  25. package/dist/scopes/controller-helpers.d.ts.map +1 -1
  26. package/dist/scopes/controller-helpers.js +15 -6
  27. package/dist/scopes/controller-helpers.js.map +1 -1
  28. package/dist/services/process.d.ts +3 -0
  29. package/dist/services/process.d.ts.map +1 -1
  30. package/dist/services/process.js +22 -6
  31. package/dist/services/process.js.map +1 -1
  32. package/dist/varlock/diagnostics.d.ts +7 -0
  33. package/dist/varlock/diagnostics.d.ts.map +1 -0
  34. package/dist/varlock/diagnostics.js +35 -0
  35. package/dist/varlock/diagnostics.js.map +1 -0
  36. package/dist/varlock/manager.d.ts.map +1 -1
  37. package/dist/varlock/manager.js +265 -72
  38. package/dist/varlock/manager.js.map +1 -1
  39. package/dist/varlock/ownership.d.ts +60 -0
  40. package/dist/varlock/ownership.d.ts.map +1 -0
  41. package/dist/varlock/ownership.js +372 -0
  42. package/dist/varlock/ownership.js.map +1 -0
  43. package/package.json +1 -1
@@ -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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"}
@@ -0,0 +1,7 @@
1
+ export type VarlockStderrCode = "op_prompt_dismissed" | "op_not_signed_in" | "op_auth_failed" | "op_bad_vault_reference" | "op_multiple_accounts_app_auth" | "op_not_found" | "varlock_schema_error" | "varlock_timeout" | "unknown";
2
+ export declare function classifyStderr(stderr: string | undefined): {
3
+ readonly code: VarlockStderrCode;
4
+ readonly message: string;
5
+ };
6
+ export declare function safeStderrMessage(code: string | undefined, message: string | undefined): string | undefined;
7
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/varlock/diagnostics.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GACzB,qBAAqB,GACrB,kBAAkB,GAClB,gBAAgB,GAChB,wBAAwB,GACxB,+BAA+B,GAC/B,cAAc,GACd,sBAAsB,GACtB,iBAAiB,GACjB,SAAS,CAAC;AAed,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG;IAC1D,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAiBA;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,MAAM,GAAG,SAAS,CAGpB"}
@@ -0,0 +1,35 @@
1
+ const messages = {
2
+ op_prompt_dismissed: "1Password app authorization prompt dismissed by user",
3
+ op_not_signed_in: "1Password CLI is not signed in",
4
+ op_auth_failed: "1Password authentication failed",
5
+ op_bad_vault_reference: "1Password vault or account reference is invalid",
6
+ op_multiple_accounts_app_auth: "Cannot use multiple different 1Password accounts when using CLI auth with batching enabled",
7
+ op_not_found: "The Varlock or 1Password CLI was not found",
8
+ varlock_schema_error: "Varlock schema validation failed",
9
+ varlock_timeout: "Varlock operation timed out",
10
+ unknown: "Varlock failed; see the doctor guidance",
11
+ };
12
+ export function classifyStderr(stderr) {
13
+ const value = stderr ?? "";
14
+ const matchers = [
15
+ [/dismiss|cancel|declin|reject.*prompt|prompt.*(?:close|dismiss)/i, "op_prompt_dismissed"],
16
+ [/not signed in|not logged in|sign in to 1password/i, "op_not_signed_in"],
17
+ [/authentication failed|auth failed|invalid credentials|unauthorized/i, "op_auth_failed"],
18
+ [
19
+ /BAD_VAULT_REFERENCE|bad vault|vault.*(?:not found|invalid)|account.*(?:not found|invalid)/i,
20
+ "op_bad_vault_reference",
21
+ ],
22
+ [/multiple different 1password accounts|batching enabled/i, "op_multiple_accounts_app_auth"],
23
+ [/command not found|enoent|could not find.*(?:varlock|op)/i, "op_not_found"],
24
+ [/schema|validation|parse error/i, "varlock_schema_error"],
25
+ [/timed out|timeout/i, "varlock_timeout"],
26
+ ];
27
+ const code = matchers.find(([pattern]) => pattern.test(value))?.[1] ?? "unknown";
28
+ return { code, message: messages[code] };
29
+ }
30
+ export function safeStderrMessage(code, message) {
31
+ if (!code || !(code in messages))
32
+ return undefined;
33
+ return messages[code] === message ? message : undefined;
34
+ }
35
+ //# sourceMappingURL=diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/varlock/diagnostics.ts"],"names":[],"mappings":"AAWA,MAAM,QAAQ,GAAsC;IAClD,mBAAmB,EAAE,sDAAsD;IAC3E,gBAAgB,EAAE,gCAAgC;IAClD,cAAc,EAAE,iCAAiC;IACjD,sBAAsB,EAAE,iDAAiD;IACzE,6BAA6B,EAC3B,4FAA4F;IAC9F,YAAY,EAAE,4CAA4C;IAC1D,oBAAoB,EAAE,kCAAkC;IACxD,eAAe,EAAE,6BAA6B;IAC9C,OAAO,EAAE,yCAAyC;CACnD,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,MAA0B;IAIvD,MAAM,KAAK,GAAG,MAAM,IAAI,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAsD;QAClE,CAAC,iEAAiE,EAAE,qBAAqB,CAAC;QAC1F,CAAC,mDAAmD,EAAE,kBAAkB,CAAC;QACzE,CAAC,qEAAqE,EAAE,gBAAgB,CAAC;QACzF;YACE,4FAA4F;YAC5F,wBAAwB;SACzB;QACD,CAAC,yDAAyD,EAAE,+BAA+B,CAAC;QAC5F,CAAC,0DAA0D,EAAE,cAAc,CAAC;QAC5E,CAAC,gCAAgC,EAAE,sBAAsB,CAAC;QAC1D,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;KAC1C,CAAC;IACF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IACjF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAwB,EACxB,OAA2B;IAE3B,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO,QAAQ,CAAC,IAAyB,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/E,CAAC"}
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/varlock/manager.ts"],"names":[],"mappings":"AAEA,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;AA2ChC,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,EAAE,EAAE,OAAO,EAAE,CAAC;CACf,CAAC;AAgZF,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,CA4mB1D;AAED,eAAO,MAAM,6BAA6B,EAAE,6BAE3C,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { createHash } from "node:crypto";
1
2
  import { constants as fsConstants } from "node:fs";
2
3
  import { access, mkdtemp, realpath, rm, stat, lstat } from "node:fs/promises";
3
4
  import { tmpdir } from "node:os";
@@ -5,6 +6,8 @@ import { join, relative } from "node:path";
5
6
  import { Duration, Effect, Layer, Scope, Semaphore } from "effect";
6
7
  import { ProjectKeyFerryManager, VarlockError, } from "../contracts.js";
7
8
  import { Process, ProcessLive, } from "../services/process.js";
9
+ import { classifyStderr } from "./diagnostics.js";
10
+ import { removeOwnershipRecord, reapStaleOwnershipRecords, writeOwnershipRecord, ownershipFileOps, ownershipDirectory, } from "./ownership.js";
8
11
  import { decodeSessionList, findOwnedSession, sanitizeSessionStatus, selectPlaceholderEnvironment, validateProxyWiring, } from "./protocol.js";
9
12
  const DEFAULT_COMMAND = ["varlock"];
10
13
  const DEFAULT_START_TIMEOUT = 30_000;
@@ -13,48 +16,88 @@ const DEFAULT_REFRESH_TIMEOUT = 30_000;
13
16
  const DEFAULT_POLL_INTERVAL = 100;
14
17
  const MAX_OUTPUT_BYTES = 2 * 1024 * 1024;
15
18
  const MAX_TIMEOUT = 10 * 60_000;
19
+ const DEFAULT_HEALTH_CHECK_INTERVAL = 1_000;
16
20
  const defaultFileOps = { mkdtemp, realpath, rm };
17
- const safeError = (code, retryable) => new VarlockError({ code, retryable, message: `Varlock ${code.replaceAll("_", " ")}` });
21
+ const safeError = (code, retryable) => new VarlockError({
22
+ code,
23
+ retryable,
24
+ message: code === "ownership_unavailable"
25
+ ? "Key Ferry ownership directory is unavailable"
26
+ : `Varlock ${code.replaceAll("_", " ")}`,
27
+ });
18
28
  const fromProcessError = (error, code) => new VarlockError({
19
29
  code,
20
30
  retryable: error.code === "timeout" || error.code === "spawn-failed" || error.code === "io",
21
31
  message: error.code === "timeout" ? "Varlock command timed out" : `Varlock command ${error.code}`,
32
+ ...(error.stderr
33
+ ? {
34
+ stderrTail: classifyStderr(error.stderr).message,
35
+ stderrCode: classifyStderr(error.stderr).code,
36
+ }
37
+ : {}),
22
38
  });
23
39
  function adapterOptions(options) {
24
40
  const raw = options.adapter ?? {};
25
41
  const command = raw.command === undefined ? [...DEFAULT_COMMAND] : raw.command;
26
42
  const environmentKeys = raw.environmentKeys;
27
- if (!Array.isArray(command) ||
28
- command.length === 0 ||
29
- command.length > 32 ||
30
- command.some((v) => typeof v !== "string" || v.length === 0 || v.length > 1024 || v.includes("\0"))) {
43
+ const [validCommand, validEnvironmentKeys] = validateAdapterArrays(command, environmentKeys);
44
+ const ownershipDirectory = raw.ownershipDirectory;
45
+ validateOwnershipDirectory(ownershipDirectory);
46
+ return {
47
+ command: [...validCommand],
48
+ environmentKeys: [...validEnvironmentKeys],
49
+ startupTimeoutMs: adapterNumber(raw, "startupTimeoutMs", DEFAULT_START_TIMEOUT, 100, MAX_TIMEOUT),
50
+ commandTimeoutMs: adapterNumber(raw, "commandTimeoutMs", DEFAULT_COMMAND_TIMEOUT, 100, MAX_TIMEOUT),
51
+ reloadTimeoutMs: adapterNumber(raw, "reloadTimeoutMs", DEFAULT_REFRESH_TIMEOUT, 100, MAX_TIMEOUT),
52
+ pollIntervalMs: adapterNumber(raw, "pollIntervalMs", DEFAULT_POLL_INTERVAL, 10, 10_000),
53
+ requireStrictEgress: readStrictEgress(raw.requireStrictEgress),
54
+ ...(ownershipDirectory === undefined ? {} : { ownershipDirectory }),
55
+ healthCheckIntervalMs: adapterNumber(raw, "healthCheckIntervalMs", DEFAULT_HEALTH_CHECK_INTERVAL, 100, MAX_TIMEOUT),
56
+ ...readLifecycleLogger(raw),
57
+ };
58
+ }
59
+ function validateAdapterArrays(command, environmentKeys) {
60
+ if (!validCommandArray(command) || !validEnvironmentKeyArray(environmentKeys))
31
61
  throw safeError("invalid_config", false);
32
- }
33
- if (!Array.isArray(environmentKeys) ||
34
- environmentKeys.length > 128 ||
35
- environmentKeys.some((v) => typeof v !== "string" || !/^[A-Za-z_][A-Za-z0-9_]*$/.test(v) || v.length > 256)) {
62
+ return [command, environmentKeys];
63
+ }
64
+ function validateOwnershipDirectory(value) {
65
+ if (value !== undefined && (typeof value !== "string" || value.length === 0))
36
66
  throw safeError("invalid_config", false);
37
- }
38
- const numberOption = (name, fallback, min, max) => {
39
- const value = raw[name];
40
- if (value === undefined)
41
- return fallback;
42
- if (typeof value !== "number" || !Number.isSafeInteger(value) || value < min || value > max)
43
- throw safeError("invalid_config", false);
44
- return value;
45
- };
46
- const strict = raw.requireStrictEgress;
47
- if (strict !== undefined && typeof strict !== "boolean")
67
+ }
68
+ function adapterNumber(raw, name, fallback, min, max) {
69
+ const value = raw[name];
70
+ if (value === undefined)
71
+ return fallback;
72
+ if (!validAdapterNumber(value, min, max))
48
73
  throw safeError("invalid_config", false);
49
- return {
50
- command: [...command],
51
- environmentKeys: [...environmentKeys],
52
- startupTimeoutMs: numberOption("startupTimeoutMs", DEFAULT_START_TIMEOUT, 100, MAX_TIMEOUT),
53
- commandTimeoutMs: numberOption("commandTimeoutMs", DEFAULT_COMMAND_TIMEOUT, 100, MAX_TIMEOUT),
54
- reloadTimeoutMs: numberOption("reloadTimeoutMs", DEFAULT_REFRESH_TIMEOUT, 100, MAX_TIMEOUT),
55
- pollIntervalMs: numberOption("pollIntervalMs", DEFAULT_POLL_INTERVAL, 10, 10_000),
56
- requireStrictEgress: strict ?? true,
57
- };
74
+ return value;
75
+ }
76
+ function validAdapterNumber(value, min, max) {
77
+ return typeof value === "number" && Number.isSafeInteger(value) && value >= min && value <= max;
78
+ }
79
+ function readLifecycleLogger(raw) {
80
+ return typeof raw.lifecycleLogger === "function"
81
+ ? {
82
+ lifecycleLogger: raw.lifecycleLogger,
83
+ }
84
+ : {};
85
+ }
86
+ function validCommandArray(value) {
87
+ return (Array.isArray(value) &&
88
+ value.length > 0 &&
89
+ value.length <= 32 &&
90
+ value.every((v) => typeof v === "string" && v.length > 0 && v.length <= 1024 && !v.includes("\0")));
91
+ }
92
+ function validEnvironmentKeyArray(value) {
93
+ return (Array.isArray(value) &&
94
+ value.length <= 128 &&
95
+ value.every((v) => typeof v === "string" && /^[A-Za-z_][A-Za-z0-9_]*$/.test(v) && v.length <= 256));
96
+ }
97
+ function readStrictEgress(value) {
98
+ if (value !== undefined && typeof value !== "boolean")
99
+ throw safeError("invalid_config", false);
100
+ return value ?? true;
58
101
  }
59
102
  function safeProjectDirectory(value) {
60
103
  if (typeof value !== "string" ||
@@ -95,32 +138,48 @@ function parseEnvironmentOutput(raw) {
95
138
  return result;
96
139
  }
97
140
  function statusSnapshot(state, projectDirectory) {
98
- let endpoint;
99
- if (state.session) {
100
- try {
101
- endpoint = validateProxyWiring(state.session.env).proxyUrl;
102
- }
103
- catch {
104
- endpoint = undefined;
105
- }
106
- }
107
141
  return {
108
142
  phase: state.phase,
109
143
  projectDirectory: projectDirectory,
110
144
  generation: state.generation,
145
+ ...statusOptionalFields(state),
146
+ };
147
+ }
148
+ function statusOptionalFields(state) {
149
+ return {
111
150
  ...(state.process ? { pid: state.process.pid } : {}),
112
- ...(endpoint ? { endpoint } : {}),
151
+ ...(state.session ? { sessionId: state.session.uuid, proxySessionId: state.session.uuid } : {}),
152
+ ...statusEndpointField(state),
113
153
  ...(state.lastRefreshAt ? { lastRefreshAt: state.lastRefreshAt } : {}),
114
154
  ...(state.error ? { error: state.error } : {}),
115
155
  };
116
156
  }
157
+ function statusEndpointField(state) {
158
+ if (!state.session)
159
+ return {};
160
+ try {
161
+ return { endpoint: validateProxyWiring(state.session.env).proxyUrl };
162
+ }
163
+ catch {
164
+ return {};
165
+ }
166
+ }
117
167
  function commandParts(options, args) {
118
- return { executable: options.command[0], args: [...options.command.slice(1), ...args] };
168
+ return {
169
+ executable: options.command[0],
170
+ args: [...options.command.slice(1), ...args],
171
+ };
119
172
  }
120
173
  function runCommand(process, options, cwd, args, timeoutMs, environment) {
121
174
  const parts = commandParts(options, args);
122
175
  return process
123
- .run({ ...parts, cwd, env: environment, maxBytes: MAX_OUTPUT_BYTES, timeoutMs })
176
+ .run({
177
+ ...parts,
178
+ cwd,
179
+ env: environment,
180
+ maxBytes: MAX_OUTPUT_BYTES,
181
+ timeoutMs,
182
+ })
124
183
  .pipe(Effect.mapError((error) => fromProcessError(error, error.code === "timeout" ? "timeout" : "unavailable")), Effect.map(({ stdout, stderr }) => ({ stdout, stderr })));
125
184
  }
126
185
  function candidatesForOwner(records, pid, cwd) {
@@ -136,7 +195,17 @@ function prepareStart(state, healthCheck, snapshot) {
136
195
  return Effect.fail(safeError("disposed", false));
137
196
  if (!state.process || !state.session)
138
197
  return Effect.succeed(undefined);
139
- return healthCheck().pipe(Effect.map(() => (state.phase === "ready" ? snapshot() : undefined)));
198
+ return healthCheck(true).pipe(Effect.flatMap(() => prepareExistingStart(state, snapshot)));
199
+ }
200
+ function prepareExistingStart(state, snapshot) {
201
+ if (!state.process || !state.session)
202
+ return Effect.succeed(undefined);
203
+ if (state.phase === "ready")
204
+ return Effect.succeed(snapshot());
205
+ return Effect.fail(startFailure(state.error));
206
+ }
207
+ function startFailure(error) {
208
+ return error ?? safeError("not_ready", true);
140
209
  }
141
210
  function requireRefreshSession(state) {
142
211
  if (!state.process || !state.session)
@@ -180,13 +249,10 @@ function validateRefreshCapability(state, session, requireStrictEgress, healthCh
180
249
  }
181
250
  });
182
251
  }
183
- function validateStartupEgress(state, requireStrictEgress, session, handle) {
252
+ function validateStartupEgress(state, requireStrictEgress, session, _handle) {
184
253
  if (!requireStrictEgress || session.egressMode === "strict")
185
254
  return Effect.void;
186
- const error = safeError("invalid_config", false);
187
- return handle.stop.pipe(Effect.catch(() => Effect.void), Effect.tap(() => Effect.sync(() => {
188
- state.process = undefined;
189
- })), Effect.flatMap(() => Effect.fail(error)));
255
+ return Effect.fail(safeError("invalid_config", false));
190
256
  }
191
257
  function assertRegularCertificate(pathInfo) {
192
258
  if (!pathInfo.isFile() || pathInfo.isSymbolicLink())
@@ -216,6 +282,8 @@ export function makeProjectKeyFerryManager(options, processLayer = ProcessLive,
216
282
  // released, rather than being released at the end of ensureStarted.
217
283
  const managerScope = yield* Scope.Scope;
218
284
  const config = adapterOptions(options);
285
+ // Stale cleanup is bounded, idempotent, and never gates MCP startup.
286
+ yield* Effect.promise(() => reapStaleOwnershipRecords(config.command, ownershipFileOps(config.ownershipDirectory ?? ownershipDirectory()))).pipe(Effect.forkDetach, Effect.asVoid);
219
287
  const requestedCwd = safeProjectDirectory(options.projectDirectory);
220
288
  const cwd = yield* Effect.tryPromise({
221
289
  try: async () => {
@@ -237,25 +305,101 @@ export function makeProjectKeyFerryManager(options, processLayer = ProcessLive,
237
305
  let certDirectoryReal;
238
306
  const ownedCertDirectories = new Set();
239
307
  const lock = yield* Semaphore.make(1);
240
- const state = { phase: "stopped", generation: 0, disposed: false };
308
+ const state = {
309
+ phase: "stopped",
310
+ generation: 0,
311
+ disposed: false,
312
+ };
313
+ let ownershipHash = createHash("sha256").update(cwd).digest("hex");
314
+ const ownershipRecord = (session, pid, _command) => Effect.tryPromise({
315
+ try: async () => {
316
+ const starterStartTime = processService.startTime
317
+ ? await Effect.runPromise(processService.startTime(pid))
318
+ : undefined;
319
+ await writeOwnershipRecord({
320
+ brokerKeyHash: (ownershipHash = createHash("sha256")
321
+ .update(`${cwd}\0${session.uuid}`)
322
+ .digest("hex")),
323
+ version: 2,
324
+ sessionUuid: session.uuid,
325
+ starterPid: pid,
326
+ ...(starterStartTime ? { starterStartTime } : {}),
327
+ cwd,
328
+ created: new Date().toISOString(),
329
+ }, ownershipFileOps(config.ownershipDirectory ?? ownershipDirectory()));
330
+ },
331
+ catch: () => safeError("ownership_unavailable", false),
332
+ });
241
333
  const clearCapability = (phase, error) => {
242
334
  state.phase = phase;
243
335
  state.environment = undefined;
244
- state.session = undefined;
245
336
  state.error = error;
246
337
  state.generation += 1;
247
338
  };
248
- const healthCheck = () => {
249
- if (!state.process)
339
+ let lastHealthCheckAt = 0;
340
+ const healthCheck = (force = false) => {
341
+ if (!state.process || !state.session)
250
342
  return Effect.void;
251
- return state.process.health.pipe(Effect.flatMap((health) => {
252
- if (health.running)
253
- return Effect.void;
254
- clearCapability("degraded", safeError("unavailable", true));
343
+ if (!force && Date.now() - lastHealthCheckAt < config.healthCheckIntervalMs)
255
344
  return Effect.void;
256
- }));
345
+ lastHealthCheckAt = Date.now();
346
+ const old = state.session;
347
+ const oldHandle = state.process;
348
+ return runCommand(processService, config, cwd, ["proxy", "status", "--format", "json"], config.commandTimeoutMs, ambientEnvironment).pipe(
349
+ // A failed status query is unknown, not evidence that the proxy died.
350
+ Effect.flatMap(({ stdout }) => Effect.try({
351
+ try: () => decodeSessionList(stdout),
352
+ catch: () => undefined,
353
+ })), Effect.flatMap((records) => {
354
+ if (!records)
355
+ return Effect.void;
356
+ return oldHandle.health.pipe(Effect.flatMap((health) => {
357
+ const failedStarter = !health.running &&
358
+ health.exit !== undefined &&
359
+ (health.exit.code !== 0 || health.exit.signal !== null);
360
+ const active = records.some((item) => item.uuid === old.uuid && item.endedAt === undefined);
361
+ if (active && !failedStarter)
362
+ return Effect.void;
363
+ return stopCapturedSession(old).pipe(Effect.tap((stopped) => oldHandle.stop.pipe(Effect.catch(() => Effect.void)).pipe(Effect.andThen(Effect.sync(() => {
364
+ if (stopped) {
365
+ state.process = undefined;
366
+ clearCapability("degraded", safeError("unavailable", true));
367
+ }
368
+ else {
369
+ state.phase = "degraded";
370
+ state.error = safeError("unavailable", true);
371
+ }
372
+ })))), Effect.asVoid);
373
+ }));
374
+ }), Effect.catch(() => Effect.void));
257
375
  };
258
376
  const status = Effect.suspend(() => healthCheck()).pipe(Effect.asVoid, Effect.map(() => statusSnapshot(state, cwd)));
377
+ // `proxy start` is a daemon command: the CLI process we spawn may hand
378
+ // the listener to a longer-lived session process. Always use Varlock's
379
+ // session protocol first, then reap our owned process group as a bounded
380
+ // fallback. The command is deliberately best-effort during teardown.
381
+ const stopProxy = (session) => session
382
+ ? runCommand(processService, config, cwd, ["proxy", "stop", "--session", session.uuid], config.commandTimeoutMs, ambientEnvironment).pipe(Effect.as(true), Effect.catch(() => Effect.sync(() => {
383
+ config.lifecycleLogger?.({
384
+ event: "stop-failed",
385
+ proxySessionId: session.uuid,
386
+ });
387
+ return false;
388
+ })))
389
+ : Effect.succeed(true);
390
+ const stopCapturedSession = (session = state.session) => stopProxy(session).pipe(Effect.tap((stopped) => stopped
391
+ ? Effect.tryPromise({
392
+ try: () => removeOwnershipRecord(ownershipHash, ownershipFileOps(config.ownershipDirectory ?? ownershipDirectory())),
393
+ catch: () => undefined,
394
+ }).pipe(Effect.catch(() => Effect.void), Effect.andThen(Effect.sync(() => {
395
+ if (state.session?.uuid === session?.uuid)
396
+ state.session = undefined;
397
+ })))
398
+ : Effect.void));
399
+ const cleanupUncapturedSessions = (handle) => runCommand(processService, config, cwd, ["proxy", "status", "--format", "json"], config.commandTimeoutMs, ambientEnvironment).pipe(Effect.flatMap(({ stdout }) => Effect.try({
400
+ try: () => decodeSessionList(stdout),
401
+ catch: () => [],
402
+ })), Effect.flatMap((records) => Effect.forEach(records.filter((record) => record.ownerPid === handle.pid && record.cwd === cwd), (record) => stopProxy(record), { discard: true })), Effect.catch(() => Effect.void));
259
403
  const waitForSession = (handle) => {
260
404
  const deadline = Date.now() + config.startupTimeoutMs;
261
405
  const poll = () => Effect.gen(function* () {
@@ -331,10 +475,11 @@ export function makeProjectKeyFerryManager(options, processLayer = ProcessLive,
331
475
  return { directory, canonical };
332
476
  }));
333
477
  const interruptedStartCleanup = (handle, directory) => Effect.uninterruptible(Effect.gen(function* () {
334
- if (handle)
478
+ yield* stopCapturedSession();
479
+ if (handle) {
335
480
  yield* handle.stop.pipe(Effect.catch(() => Effect.void));
481
+ }
336
482
  state.process = undefined;
337
- state.session = undefined;
338
483
  state.environment = undefined;
339
484
  clearCapability("failed", safeError("timeout", true));
340
485
  if (directory) {
@@ -369,25 +514,59 @@ export function makeProjectKeyFerryManager(options, processLayer = ProcessLive,
369
514
  certDirectory,
370
515
  ]);
371
516
  const handle = yield* Effect.provideService(processService
372
- .spawn({ ...parts, cwd, env: ambientEnvironment, terminateGraceMs: 500 })
517
+ .spawn({
518
+ ...parts,
519
+ cwd,
520
+ env: ambientEnvironment,
521
+ terminateGraceMs: 500,
522
+ })
373
523
  .pipe(Effect.mapError((error) => fromProcessError(error, "start_failed"))), Scope.Scope, managerScope);
374
524
  acquired = handle;
375
525
  state.process = handle;
376
- const result = yield* waitForSession(handle).pipe(Effect.flatMap((session) => readEnvironment(session).pipe(Effect.map((environment) => ({ session, environment })))), Effect.catch((error) => Effect.gen(function* () {
526
+ let startedSession;
527
+ const result = yield* waitForSession(handle).pipe(Effect.flatMap((session) => Effect.gen(function* () {
528
+ startedSession = session;
529
+ // Capture is the ownership boundary: publish before any
530
+ // environment or policy work can fail.
531
+ state.session = session;
532
+ yield* ownershipRecord(session, handle.pid, [config.command[0], ...parts.args]);
533
+ const environment = yield* readEnvironment(session);
534
+ yield* validateStartupEgress(state, config.requireStrictEgress, session, handle);
535
+ return { session, environment };
536
+ })), Effect.catch((error) => Effect.gen(function* () {
537
+ const captured = startedSession;
538
+ let stopped = true;
539
+ if (captured) {
540
+ stopped = yield* stopCapturedSession(captured);
541
+ }
542
+ else
543
+ yield* cleanupUncapturedSessions(handle);
377
544
  yield* handle.stop.pipe(Effect.catch(() => Effect.void));
378
- state.process = undefined;
545
+ if (stopped) {
546
+ state.process = undefined;
547
+ }
548
+ else {
549
+ state.phase = "failed";
550
+ state.error = error;
551
+ }
379
552
  return yield* Effect.fail(error);
380
553
  })));
381
- yield* validateStartupEgress(state, config.requireStrictEgress, result.session, handle);
382
554
  state.session = result.session;
383
555
  state.environment = result.environment;
384
556
  state.phase = "ready";
385
557
  state.error = undefined;
386
558
  return statusSnapshot(state, cwd);
387
559
  }).pipe(Effect.catch((error) => Effect.gen(function* () {
388
- if (error.code !== "disposed")
389
- clearCapability("failed", error);
390
- return yield* Effect.fail(error);
560
+ const failure = error ?? safeError("start_failed", true);
561
+ if (failure.code !== "disposed") {
562
+ // A failed post-capture stop must retain the session so the
563
+ // finalizer can retry the exact UUID without deleting its record.
564
+ if (state.phase === "failed" && state.session)
565
+ state.error = failure;
566
+ else
567
+ clearCapability("failed", failure);
568
+ }
569
+ return yield* Effect.fail(failure);
391
570
  })), Effect.onInterrupt(() => interruptedStartCleanup(acquired, cleanupDirectory)));
392
571
  });
393
572
  // Do not attach ownership cleanup until preflight has completed: a
@@ -407,7 +586,10 @@ export function makeProjectKeyFerryManager(options, processLayer = ProcessLive,
407
586
  }
408
587
  if (!state.environment)
409
588
  return yield* Effect.fail(safeError("not_ready", true));
410
- return { status: statusSnapshot(state, cwd), environment: state.environment };
589
+ return {
590
+ status: statusSnapshot(state, cwd),
591
+ environment: state.environment,
592
+ };
411
593
  }));
412
594
  const environmentEffect = exclusive(Effect.gen(function* () {
413
595
  yield* healthCheck();
@@ -420,7 +602,11 @@ export function makeProjectKeyFerryManager(options, processLayer = ProcessLive,
420
602
  return state.environment;
421
603
  }));
422
604
  const refreshInternal = Effect.gen(function* () {
423
- yield* ensureRefreshReadiness({ state, healthCheck, start: startInternal });
605
+ yield* ensureRefreshReadiness({
606
+ state,
607
+ healthCheck,
608
+ start: startInternal,
609
+ });
424
610
  const session = yield* requireRefreshSession(state);
425
611
  const reload = runCommand(processService, config, cwd, ["proxy", "reload", "--session", session.uuid], config.reloadTimeoutMs, ambientEnvironment).pipe(Effect.mapError((error) => new VarlockError({
426
612
  ...error,
@@ -442,8 +628,10 @@ export function makeProjectKeyFerryManager(options, processLayer = ProcessLive,
442
628
  }).pipe(Effect.catch((error) => Effect.gen(function* () {
443
629
  if (error.code !== "disposed") {
444
630
  const handle = state.process;
445
- if (handle)
631
+ yield* stopCapturedSession();
632
+ if (handle) {
446
633
  yield* handle.stop.pipe(Effect.catch(() => Effect.void));
634
+ }
447
635
  state.process = undefined;
448
636
  clearCapability("failed", error.code === "refresh_failed" ? error : safeError("refresh_failed", true));
449
637
  }
@@ -458,15 +646,18 @@ export function makeProjectKeyFerryManager(options, processLayer = ProcessLive,
458
646
  return { status, environment: state.environment };
459
647
  }));
460
648
  const dispose = lock.withPermit(Effect.gen(function* () {
461
- if (state.disposed)
649
+ if (state.disposed && !state.session)
462
650
  return;
463
651
  state.disposed = true;
464
652
  state.phase = "stopping";
465
653
  const handle = state.process;
654
+ const stopped = yield* stopCapturedSession();
655
+ if (!stopped)
656
+ return;
466
657
  state.environment = undefined;
467
- state.session = undefined;
468
- if (handle)
658
+ if (handle) {
469
659
  yield* handle.stop.pipe(Effect.catch(() => Effect.void));
660
+ }
470
661
  state.process = undefined;
471
662
  state.phase = "stopped";
472
663
  state.generation += 1;
@@ -481,7 +672,9 @@ export function makeProjectKeyFerryManager(options, processLayer = ProcessLive,
481
672
  dispose,
482
673
  withExclusive: (effect) => lock.withPermit(effect),
483
674
  };
484
- yield* Effect.addFinalizer(() => Effect.forEach([...ownedCertDirectories], removeOwnedDirectory, { discard: true }));
675
+ yield* Effect.addFinalizer(() => Effect.forEach([...ownedCertDirectories], removeOwnedDirectory, {
676
+ discard: true,
677
+ }));
485
678
  // Finalizers run in reverse registration order, so stop the sidecar
486
679
  // before removing the directory that contains its CA.
487
680
  yield* Effect.addFinalizer(() => dispose);