@cortexkit/aft-bridge 0.57.2 → 0.58.1

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 (116) hide show
  1. package/dist/bash-format.d.ts +7 -0
  2. package/dist/bash-format.d.ts.map +1 -1
  3. package/dist/bash-format.js +9 -0
  4. package/dist/bash-format.js.map +1 -1
  5. package/dist/bash-hints.d.ts +31 -3
  6. package/dist/bash-hints.d.ts.map +1 -1
  7. package/dist/bash-hints.js +40 -9
  8. package/dist/bash-hints.js.map +1 -1
  9. package/dist/bash-host-fallback.js +1 -1
  10. package/dist/bash-host-fallback.js.map +1 -1
  11. package/dist/binary-identity.d.ts +109 -0
  12. package/dist/binary-identity.d.ts.map +1 -0
  13. package/dist/binary-identity.js +295 -0
  14. package/dist/binary-identity.js.map +1 -0
  15. package/dist/bridge.d.ts +10 -1
  16. package/dist/bridge.d.ts.map +1 -1
  17. package/dist/bridge.js +74 -24
  18. package/dist/bridge.js.map +1 -1
  19. package/dist/child-process.d.ts +39 -0
  20. package/dist/child-process.d.ts.map +1 -0
  21. package/dist/child-process.js +64 -0
  22. package/dist/child-process.js.map +1 -0
  23. package/dist/coerce.d.ts +2 -0
  24. package/dist/coerce.d.ts.map +1 -1
  25. package/dist/coerce.js +29 -0
  26. package/dist/coerce.js.map +1 -1
  27. package/dist/config-error.d.ts +71 -0
  28. package/dist/config-error.d.ts.map +1 -0
  29. package/dist/config-error.js +112 -0
  30. package/dist/config-error.js.map +1 -0
  31. package/dist/config-watch.d.ts +170 -0
  32. package/dist/config-watch.d.ts.map +1 -0
  33. package/dist/config-watch.js +479 -0
  34. package/dist/config-watch.js.map +1 -0
  35. package/dist/downloader.d.ts +4 -2
  36. package/dist/downloader.d.ts.map +1 -1
  37. package/dist/downloader.js +41 -20
  38. package/dist/downloader.js.map +1 -1
  39. package/dist/durable-log.d.ts +11 -0
  40. package/dist/durable-log.d.ts.map +1 -1
  41. package/dist/durable-log.js +81 -5
  42. package/dist/durable-log.js.map +1 -1
  43. package/dist/edit-summary.d.ts +8 -0
  44. package/dist/edit-summary.d.ts.map +1 -1
  45. package/dist/edit-summary.js +7 -0
  46. package/dist/edit-summary.js.map +1 -1
  47. package/dist/feature-config.d.ts +192 -0
  48. package/dist/feature-config.d.ts.map +1 -0
  49. package/dist/feature-config.js +657 -0
  50. package/dist/feature-config.js.map +1 -0
  51. package/dist/index.d.ts +19 -8
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +19 -7
  54. package/dist/index.js.map +1 -1
  55. package/dist/message-detach.d.ts +25 -0
  56. package/dist/message-detach.d.ts.map +1 -0
  57. package/dist/message-detach.js +34 -0
  58. package/dist/message-detach.js.map +1 -0
  59. package/dist/migration-notices.d.ts +29 -0
  60. package/dist/migration-notices.d.ts.map +1 -0
  61. package/dist/migration-notices.js +114 -0
  62. package/dist/migration-notices.js.map +1 -0
  63. package/dist/migration.d.ts +1 -1
  64. package/dist/migration.d.ts.map +1 -1
  65. package/dist/migration.js +1 -1
  66. package/dist/migration.js.map +1 -1
  67. package/dist/npm-resolver.d.ts +1 -1
  68. package/dist/npm-resolver.d.ts.map +1 -1
  69. package/dist/npm-resolver.js +1 -1
  70. package/dist/npm-resolver.js.map +1 -1
  71. package/dist/onnx-probe.d.ts +44 -0
  72. package/dist/onnx-probe.d.ts.map +1 -0
  73. package/dist/onnx-probe.js +167 -0
  74. package/dist/onnx-probe.js.map +1 -0
  75. package/dist/onnx-runtime.d.ts +19 -4
  76. package/dist/onnx-runtime.d.ts.map +1 -1
  77. package/dist/onnx-runtime.js +146 -34
  78. package/dist/onnx-runtime.js.map +1 -1
  79. package/dist/path-lookup.d.ts +22 -0
  80. package/dist/path-lookup.d.ts.map +1 -0
  81. package/dist/path-lookup.js +51 -0
  82. package/dist/path-lookup.js.map +1 -0
  83. package/dist/resolver.d.ts +47 -21
  84. package/dist/resolver.d.ts.map +1 -1
  85. package/dist/resolver.js +254 -159
  86. package/dist/resolver.js.map +1 -1
  87. package/dist/revivable-transport.d.ts.map +1 -1
  88. package/dist/revivable-transport.js +12 -0
  89. package/dist/revivable-transport.js.map +1 -1
  90. package/dist/semantic-status.d.ts +10 -1
  91. package/dist/semantic-status.d.ts.map +1 -1
  92. package/dist/semantic-status.js +50 -2
  93. package/dist/semantic-status.js.map +1 -1
  94. package/dist/storage-paths.d.ts +9 -0
  95. package/dist/storage-paths.d.ts.map +1 -1
  96. package/dist/storage-paths.js +18 -1
  97. package/dist/storage-paths.js.map +1 -1
  98. package/dist/subc-transport.d.ts +58 -1
  99. package/dist/subc-transport.d.ts.map +1 -1
  100. package/dist/subc-transport.js +378 -50
  101. package/dist/subc-transport.js.map +1 -1
  102. package/dist/tar-executable.js +1 -1
  103. package/dist/tar-executable.js.map +1 -1
  104. package/dist/transport-factory.d.ts +14 -2
  105. package/dist/transport-factory.d.ts.map +1 -1
  106. package/dist/transport-factory.js +24 -16
  107. package/dist/transport-factory.js.map +1 -1
  108. package/dist/version-probe.d.ts +33 -0
  109. package/dist/version-probe.d.ts.map +1 -0
  110. package/dist/version-probe.js +108 -0
  111. package/dist/version-probe.js.map +1 -0
  112. package/package.json +2 -2
  113. package/dist/bash-timeout.d.ts +0 -19
  114. package/dist/bash-timeout.d.ts.map +0 -1
  115. package/dist/bash-timeout.js +0 -26
  116. package/dist/bash-timeout.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGlE,KAAK,YAAY,GAAG,OAAO,YAAY,CAAC;AAIxC,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAEzE;AAID,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAiG7B,iBAAS,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAKvD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAgC9D;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,QAAQ,GAAE,MAAyB,EACnC,IAAI,GAAE,MAAqB,GAC1B,MAAM,CAgBR;AAmBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMtE;AA8GD,eAAO,MAAM,QAAQ;;CAEpB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAsB,UAAU,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmC1E"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIlE,KAAK,YAAY,GAAG,OAAO,YAAY,CAAC;AAIxC,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAEzE;AAED,KAAK,kBAAkB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAClE,KAAK,wBAAwB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,kBAAkB,GAAG,IAAI,CAAC;AAI3E,uGAAuG;AACvG,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI,GAAG,IAAI,CAE3F;AAED,KAAK,WAAW,GAAG,OAAO,OAAO,CAAC,GAAG,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAmF7B,4EAA4E;AAC5E,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,CAIlE;AAuCD;;;;;GAKG;AACH,iBAAS,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAY/D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAgC9D;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,QAAQ,GAAE,MAAyB,EACnC,IAAI,GAAE,MAAqB,GAC1B,MAAM,CAgBR;AAiED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMtE;AAsGD,eAAO,MAAM,QAAQ;;CAEpB,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,UAAU,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0D1E"}
package/dist/resolver.js CHANGED
@@ -1,69 +1,99 @@
1
- import { execSync } from "node:child_process";
2
- import { chmodSync, closeSync, copyFileSync, existsSync, mkdirSync, openSync, readSync, renameSync, unlinkSync, } from "node:fs";
1
+ import { closeSync, existsSync, promises as fsPromises, openSync, readFileSync, readSync, } from "node:fs";
3
2
  import { createRequire } from "node:module";
4
3
  import { homedir } from "node:os";
5
- import { join } from "node:path";
4
+ import { delimiter, dirname, isAbsolute, join } from "node:path";
6
5
  import { log, warn } from "./active-logger.js";
6
+ import { isTrustedCachedBinary, recordBinaryIdentity, removeBinaryIdentitySidecar, sha256File, writeBinaryIdentitySidecar, } from "./binary-identity.js";
7
7
  import { getAftBinaryCacheDir } from "./cache-paths.js";
8
8
  import { ensureBinary, readBinaryVersion } from "./downloader.js";
9
9
  import { PLATFORM_ARCH_MAP } from "./platform.js";
10
+ import { readBinaryVersionOffThread } from "./version-probe.js";
10
11
  let ensureBinaryForResolver = ensureBinary;
11
12
  export function __setEnsureBinaryForTests(impl) {
12
13
  ensureBinaryForResolver = impl ?? ensureBinary;
13
14
  }
15
+ let npmPlatformPackageReader = null;
16
+ /** Test seam: stand in for the installed `@cortexkit/aft-<platform>` package. Pass null to restore. */
17
+ export function __setNpmPlatformPackageForTests(impl) {
18
+ npmPlatformPackageReader = impl;
19
+ }
14
20
  export { readBinaryVersion };
21
+ /** Copies into the versioned cache that are still running, keyed by destination. */
22
+ const cacheCopiesInFlight = new Map();
15
23
  /**
16
- * Copy an npm platform binary to the versioned cache so we never run from
24
+ * Copy an npm platform binary into the versioned cache so we never run from
17
25
  * node_modules directly. This prevents corruption when npm updates the
18
26
  * package while a bridge process is running the binary.
19
27
  *
20
- * @param npmBinaryPath Absolute path to the npm-installed `aft` binary.
21
- * @param knownVersion Optional pre-resolved version string to skip the extra
22
- * `--version` invocation (the caller often has it already).
28
+ * `version` comes from the platform package's own package.json, so nothing is
29
+ * executed. An existing cache entry is reused only when its identity sidecar
30
+ * vouches for it; an entry without one, or whose sidecar no longer matches
31
+ * (for example a copy another process finished but has not recorded yet), is
32
+ * replaced from the npm package rather than run to learn its version.
33
+ *
34
+ * The copy itself (~85 MB) runs asynchronously so the host thread never waits
35
+ * on it. Until it lands, callers use the npm package's own binary, whose
36
+ * identity is already known from its manifest.
23
37
  */
24
- function copyToVersionedCache(npmBinaryPath, knownVersion) {
38
+ function copyToVersionedCache(npmBinaryPath, version) {
39
+ const tag = version.startsWith("v") ? version : `v${version}`;
40
+ const ext = process.platform === "win32" ? ".exe" : "";
41
+ const versionedDir = join(getAftBinaryCacheDir(), tag);
42
+ const cachedPath = join(versionedDir, `aft${ext}`);
43
+ if (existsSync(cachedPath) && isTrustedCachedBinary(cachedPath, version))
44
+ return { cachedPath };
45
+ const existing = cacheCopiesInFlight.get(cachedPath);
46
+ if (existing)
47
+ return { pendingCopy: existing };
48
+ const task = copyIntoCache(npmBinaryPath, version, versionedDir, cachedPath).finally(() => {
49
+ cacheCopiesInFlight.delete(cachedPath);
50
+ });
51
+ cacheCopiesInFlight.set(cachedPath, task);
52
+ return { pendingCopy: task };
53
+ }
54
+ async function copyIntoCache(npmBinaryPath, version, versionedDir, cachedPath) {
55
+ const tmpPath = `${cachedPath}.${process.pid}.${Date.now()}.${Math.random().toString(16).slice(2)}.tmp`;
25
56
  try {
26
- const version = knownVersion ?? readBinaryVersion(npmBinaryPath);
27
- if (!version)
28
- return null;
29
- const tag = version.startsWith("v") ? version : `v${version}`;
30
- const cacheDir = getAftBinaryCacheDir();
31
- const versionedDir = join(cacheDir, tag);
32
- const ext = process.platform === "win32" ? ".exe" : "";
33
- const cachedPath = join(versionedDir, `aft${ext}`);
34
- // Already cached. Probe before trusting the directory label; stale or
35
- // corrupted cache entries must not shadow PATH/cargo fallback forever.
36
- if (existsSync(cachedPath)) {
37
- const cachedVersion = readBinaryVersion(cachedPath);
38
- if (cachedVersion === version)
39
- return cachedPath;
40
- warn(`Cached binary at ${cachedPath} reports ${cachedVersion ?? "no version"}, expected ${version}; refreshing from npm package`);
41
- }
42
- // Copy to versioned cache
43
- mkdirSync(versionedDir, { recursive: true });
44
- const tmpPath = `${cachedPath}.${process.pid}.${Date.now()}.tmp`;
45
- copyFileSync(npmBinaryPath, tmpPath);
57
+ await fsPromises.mkdir(versionedDir, { recursive: true });
58
+ await fsPromises.copyFile(npmBinaryPath, tmpPath);
46
59
  if (process.platform !== "win32") {
47
- chmodSync(tmpPath, 0o755);
60
+ await fsPromises.chmod(tmpPath, 0o755);
48
61
  }
49
- // Best-effort replace — unlink first on Windows where renameSync fails if target exists
50
- if (process.platform === "win32" && existsSync(cachedPath)) {
51
- try {
52
- unlinkSync(cachedPath);
53
- }
54
- catch {
55
- // best-effort; renameSync will surface the error if unlink fails
56
- }
62
+ // Hash the private temp copy, which nothing else can touch, before it is
63
+ // renamed into place. Hashing the final path afterwards raced a second
64
+ // copy replacing it (another resolve, or another process, sees the entry
65
+ // without a sidecar and copies again), so on first start the identity was
66
+ // discarded as "changed while it was being hashed" and never recorded.
67
+ const sha256 = await sha256File(tmpPath);
68
+ removeBinaryIdentitySidecar(cachedPath);
69
+ // Best-effort replace — unlink first on Windows where rename fails if target exists
70
+ if (process.platform === "win32") {
71
+ await fsPromises.unlink(cachedPath).catch(() => { });
57
72
  }
58
- renameSync(tmpPath, cachedPath);
73
+ await fsPromises.rename(tmpPath, cachedPath);
59
74
  log(`Copied npm binary to versioned cache: ${cachedPath}`);
75
+ // A rename keeps the file's size, mtime and inode, so the stamp taken now
76
+ // describes the bytes that were just hashed.
77
+ try {
78
+ writeBinaryIdentitySidecar(cachedPath, version, sha256);
79
+ }
80
+ catch (err) {
81
+ warn(`Could not record identity for ${cachedPath}: ${err instanceof Error ? err.message : String(err)}`);
82
+ }
60
83
  return cachedPath;
61
84
  }
62
85
  catch (err) {
86
+ await fsPromises.unlink(tmpPath).catch(() => { });
63
87
  warn(`Failed to copy binary to cache: ${err instanceof Error ? err.message : String(err)}`);
64
88
  return null;
65
89
  }
66
90
  }
91
+ /** Test helper: wait for every background copy into the versioned cache. */
92
+ export async function __waitForCacheCopiesForTests() {
93
+ while (cacheCopiesInFlight.size > 0) {
94
+ await Promise.all([...cacheCopiesInFlight.values()]);
95
+ }
96
+ }
67
97
  function normalizeBareVersion(version) {
68
98
  return version.startsWith("v") ? version.slice(1) : version;
69
99
  }
@@ -74,16 +104,13 @@ function cachedBinaryPathFromEnv(version, env, ext) {
74
104
  const binaryPath = join(getAftBinaryCacheDir(env), version, `aft${ext}`);
75
105
  return existsSync(binaryPath) ? binaryPath : null;
76
106
  }
77
- function isExpectedCachedBinary(binaryPath, expectedVersion) {
78
- const expected = normalizeBareVersion(expectedVersion);
79
- const actual = readBinaryVersion(binaryPath);
80
- if (actual === expected)
81
- return true;
82
- warn(`Cached binary at ${binaryPath} reports ${actual ?? "no version"}, expected ${expected}; skipping cache candidate`);
83
- return false;
84
- }
85
- function probeBinaryCandidate(binaryPath, source, expectedVersion) {
86
- const actual = readBinaryVersion(binaryPath);
107
+ /**
108
+ * Ask `binaryPath` for its version on a worker thread and accept it when it
109
+ * reports `expectedVersion` (any version when none is expected). The host's
110
+ * event loop keeps running while the binary is loaded.
111
+ */
112
+ async function probeBinaryCandidateOffThread(binaryPath, source, expectedVersion) {
113
+ const actual = await readBinaryVersionOffThread(binaryPath);
87
114
  if (actual === null) {
88
115
  warn(`${source} binary at ${binaryPath} did not report a version; skipping`);
89
116
  return null;
@@ -94,22 +121,38 @@ function probeBinaryCandidate(binaryPath, source, expectedVersion) {
94
121
  }
95
122
  return binaryPath;
96
123
  }
97
- function parsePathLookupOutput(output) {
98
- return output
99
- .split(/\r?\n/)
100
- .map((candidate) => candidate.trim())
101
- .filter(Boolean);
124
+ /**
125
+ * Every `aft` executable on PATH, in PATH order, found by checking each
126
+ * directory in-process instead of forking `which aft` / `where aft`.
127
+ * Relative PATH entries are ignored so a project directory can never plant a
128
+ * binary that the resolver would pick up.
129
+ */
130
+ function pathCandidates(env, ext) {
131
+ const rawPath = env.PATH ?? (process.platform === "win32" ? env.Path : undefined) ?? "";
132
+ const seen = new Set();
133
+ const candidates = [];
134
+ for (const dir of rawPath.split(delimiter)) {
135
+ if (!dir || !isAbsolute(dir))
136
+ continue;
137
+ const candidate = join(dir, `aft${ext}`);
138
+ if (seen.has(candidate))
139
+ continue;
140
+ seen.add(candidate);
141
+ if (existsSync(candidate))
142
+ candidates.push(candidate);
143
+ }
144
+ return candidates;
102
145
  }
103
146
  /**
104
147
  * True when `binaryPath` begins with a recognized native-executable magic
105
148
  * number (Mach-O, ELF, or PE/`MZ`). False for script shims that start with a
106
149
  * shebang (`#!`) or anything else.
107
150
  *
108
- * This is the guard against a `which aft` / `where aft` PATH lookup resolving to
151
+ * This is the guard against a PATH lookup for `aft` resolving to
109
152
  * the `@cortexkit/aft` CLI's OWN node-script shim. The CLI publishes a `bin`
110
153
  * named `aft` (same name as the native binary), and npx prepends its
111
- * `node_modules/.bin` to PATH, so `which aft` can resolve to that shim. Probing
112
- * it with `--version` re-enters the CLI, which probes `which aft` again, which
154
+ * `node_modules/.bin` to PATH, so the lookup can resolve to that shim. Probing
155
+ * it with `--version` re-enters the CLI, which looks `aft` up again, which
113
156
  * forks `opencode --version` / `pi --version` for its harness report — an
114
157
  * exponential fork bomb (issue: self-resolution recursion). Native binaries
115
158
  * never start with `#!`, so a magic-number check rejects the shim regardless of
@@ -182,152 +225,204 @@ export function platformKey(platform = process.platform, arch = process.arch) {
182
225
  function logBinaryResolution(resolution) {
183
226
  log(`Resolved binary from ${resolution.source}: ${resolution.path}`);
184
227
  }
228
+ function explicitBinaryOverride(env) {
229
+ const explicitBinary = env.AFT_BINARY_PATH?.trim();
230
+ if (!explicitBinary)
231
+ return null;
232
+ // Hermetic host probes provide the just-built binary explicitly. Treat a bad
233
+ // override as an error instead of falling through to an operator cache or PATH.
234
+ if (!existsSync(explicitBinary) || !isNativeExecutable(explicitBinary)) {
235
+ throw new Error(`AFT_BINARY_PATH does not name a native executable: ${explicitBinary}`);
236
+ }
237
+ return explicitBinary;
238
+ }
239
+ /** The version this package ships with, used when the caller names none. */
240
+ function ownPackageVersion() {
241
+ try {
242
+ const req = createRequire(import.meta.url);
243
+ return req("../package.json").version;
244
+ }
245
+ catch {
246
+ return null;
247
+ }
248
+ }
185
249
  /**
186
- * Locate the `aft` binary synchronously by checking (in order):
187
- * 1. Cached binary from previous auto-download (~/.cache/aft/bin/)
188
- * 2. npm platform package via `require.resolve(@cortexkit/aft-<platform>/bin/aft)`
189
- * 3. PATH lookup via `which aft` (or `where aft` on Windows)
190
- * 4. ~/.cargo/bin/aft (Rust cargo install location)
250
+ * Read the npm platform package's binary path and version. The version comes
251
+ * from the package's package.json, which npm installs together with the
252
+ * binary, so no exec is needed to learn it.
253
+ */
254
+ function npmPlatformPackage(ext) {
255
+ if (npmPlatformPackageReader)
256
+ return npmPlatformPackageReader(ext);
257
+ try {
258
+ const req = createRequire(import.meta.url);
259
+ const manifestPath = req.resolve(`@cortexkit/aft-${platformKey()}/package.json`);
260
+ const manifest = JSON.parse(readFileSync(manifestPath, "utf8"));
261
+ const binaryPath = join(dirname(manifestPath), "bin", `aft${ext}`);
262
+ if (typeof manifest.version !== "string" || !existsSync(binaryPath))
263
+ return null;
264
+ return { binaryPath, version: normalizeBareVersion(manifest.version) };
265
+ }
266
+ catch {
267
+ // npm package not installed or resolution failed
268
+ return null;
269
+ }
270
+ }
271
+ /**
272
+ * Locate the `aft` binary synchronously WITHOUT executing anything, so it is
273
+ * safe on a plugin host's only JavaScript thread. Checks, in order:
274
+ * 0. `AFT_BINARY_PATH` (must be a native executable; its version is checked
275
+ * by {@link findBinary} and by the bridge handshake, not here)
276
+ * 1. The versioned cache (`~/.cache/aft/bin/v<version>/aft`), accepted only
277
+ * when its identity sidecar still matches the file (stat only)
278
+ * 2. The npm platform package `@cortexkit/aft-<platform>`, whose version is
279
+ * read from its package.json. It is copied into the versioned cache in the
280
+ * background; until that copy is in place (and recorded), the package's
281
+ * own binary is returned for this boot.
282
+ *
283
+ * PATH and `~/.cargo/bin` binaries are not considered here: their version is
284
+ * unknown until they run. {@link findBinary} probes them on a worker thread.
191
285
  *
192
- * @param expectedVersion Optional version (without `v` prefix) — when set, the
193
- * versioned cache for that version is checked first. Hosts that ship in
194
- * lock-step with the binary should pass their own package version so a
195
- * freshly downloaded binary is picked up before fallback resolution.
196
- * @returns Absolute path to the first binary found, or null if none found.
286
+ * @param expectedVersion Optional version (without `v` prefix). Defaults to
287
+ * this package's own version.
288
+ * @returns Absolute path to a binary whose identity is established, or null.
197
289
  */
198
290
  export function findBinarySync(expectedVersion) {
199
- const resolution = findBinarySyncInner(expectedVersion);
291
+ const resolution = findTrustedBinarySync(expectedVersion, { ...process.env });
200
292
  // Keep one durable, source-labeled line after every successful binary-resolution
201
293
  // path. Operators need to distinguish a stale cache hit from npm, PATH, cargo, or a download.
202
294
  if (resolution)
203
295
  logBinaryResolution(resolution);
204
296
  return resolution?.path ?? null;
205
297
  }
206
- function findBinarySyncInner(expectedVersion) {
298
+ function findTrustedBinarySync(expectedVersion, env) {
207
299
  const ext = process.platform === "win32" ? ".exe" : "";
208
- const env = { ...process.env };
209
- // Hermetic host probes provide the just-built binary explicitly. Treat a bad
210
- // override as an error instead of falling through to an operator cache or PATH.
211
- const explicitBinary = env.AFT_BINARY_PATH?.trim();
212
- if (explicitBinary) {
213
- if (!existsSync(explicitBinary) || !isNativeExecutable(explicitBinary)) {
214
- throw new Error(`AFT_BINARY_PATH does not name a native executable: ${explicitBinary}`);
215
- }
216
- const usable = probeBinaryCandidate(explicitBinary, "AFT_BINARY_PATH", expectedVersion);
217
- if (!usable) {
218
- throw new Error(`AFT_BINARY_PATH is incompatible with the requested AFT version: ${explicitBinary}`);
219
- }
220
- return { path: usable, source: "AFT_BINARY_PATH" };
221
- }
222
- // 1. Check versioned cache for the requested version (or this package's own
223
- // version as a fallback so direct callers without a host still benefit from
224
- // the cache).
225
- const pluginVersion = expectedVersion ??
226
- (() => {
227
- try {
228
- const req = createRequire(import.meta.url);
229
- return req("../package.json").version;
230
- }
231
- catch {
232
- return null;
233
- }
234
- })();
300
+ const explicitBinary = explicitBinaryOverride(env);
301
+ if (explicitBinary)
302
+ return { path: explicitBinary, source: "AFT_BINARY_PATH" };
303
+ const pluginVersion = expectedVersion ?? ownPackageVersion();
304
+ // 1. Versioned cache, vouched for by its identity sidecar.
235
305
  if (pluginVersion) {
236
306
  const tag = pluginVersion.startsWith("v") ? pluginVersion : `v${pluginVersion}`;
237
- const versionCached = cachedBinaryPathFromEnv(tag, env, ext);
238
- if (versionCached && isExpectedCachedBinary(versionCached, pluginVersion)) {
239
- return { path: versionCached, source: "versioned cache" };
307
+ const cached = cachedBinaryPathFromEnv(tag, env, ext);
308
+ if (cached && isTrustedCachedBinary(cached, pluginVersion)) {
309
+ return { path: cached, source: "versioned cache" };
240
310
  }
241
311
  }
242
- // 2. Check npm platform package — copy to versioned cache to avoid
243
- // corruption when npm updates the package while a bridge is running.
312
+ // 2. npm platform package — copy to versioned cache to avoid corruption
313
+ // when npm updates the package while a bridge is running.
244
314
  //
245
- // IMPORTANT: when `pluginVersion` is known, REJECT npm binaries whose
315
+ // IMPORTANT: when `pluginVersion` is known, REJECT npm packages whose
246
316
  // version does not match. A workspace with bun-cached older versions of
247
317
  // `@cortexkit/aft-<platform>` (e.g. v0.19.5 left over after upgrading the
248
318
  // plugin to v0.22.x) can otherwise hijack resolution and produce stale
249
- // task-id slugs / outdated protocol behavior. Skip to step 3 (PATH) so a
250
- // freshly built local binary can take over.
251
- try {
252
- const key = platformKey();
253
- const packageBin = `@cortexkit/aft-${key}/bin/aft${ext}`;
254
- const req = createRequire(import.meta.url);
255
- const resolved = req.resolve(packageBin);
256
- if (existsSync(resolved)) {
257
- const npmVersion = readBinaryVersion(resolved);
258
- if (npmVersion === null) {
259
- warn(`npm platform package binary at ${resolved} did not report a version; skipping (continuing to PATH lookup)`);
260
- }
261
- else if (pluginVersion && npmVersion !== normalizeBareVersion(pluginVersion)) {
262
- warn(`npm platform package binary v${npmVersion} does not match plugin v${pluginVersion}; skipping (continuing to PATH lookup)`);
263
- }
264
- else {
265
- const copied = copyToVersionedCache(resolved, npmVersion);
266
- return { path: copied ?? resolved, source: "npm platform package" };
267
- }
319
+ // task-id slugs / outdated protocol behavior.
320
+ const npm = npmPlatformPackage(ext);
321
+ if (npm) {
322
+ if (pluginVersion && npm.version !== normalizeBareVersion(pluginVersion)) {
323
+ warn(`npm platform package binary v${npm.version} does not match plugin v${pluginVersion}; skipping`);
324
+ }
325
+ else {
326
+ const copy = copyToVersionedCache(npm.binaryPath, npm.version);
327
+ if ("cachedPath" in copy)
328
+ return { path: copy.cachedPath, source: "npm platform package" };
329
+ return {
330
+ path: npm.binaryPath,
331
+ source: "npm platform package",
332
+ pendingCopy: copy.pendingCopy,
333
+ };
268
334
  }
269
335
  }
270
- catch {
271
- // npm package not installed or resolution failed
272
- }
273
- // 3. Check PATH
274
- try {
275
- const whichCmd = process.platform === "win32" ? "where aft" : "which aft";
276
- const result = execSync(whichCmd, {
277
- encoding: "utf-8",
278
- env,
279
- stdio: ["pipe", "pipe", "pipe"],
280
- }).trim();
281
- for (const candidate of parsePathLookupOutput(result)) {
282
- // Guard against self-resolution: a `which aft` hit can be the
283
- // @cortexkit/aft CLI's own node-script shim (npx prepends its
284
- // node_modules/.bin to PATH). Probing it with --version re-enters the CLI
285
- // and fork-bombs. Only accept native executables here.
286
- if (!isNativeExecutable(candidate)) {
287
- warn(`PATH binary at ${candidate} is not a native executable (script shim?); skipping`);
288
- continue;
336
+ return null;
337
+ }
338
+ /**
339
+ * Candidates whose version can only be learned by running them, probed on a
340
+ * worker thread in resolution order: a versioned-cache entry without a
341
+ * matching identity sidecar (for example one written before sidecars
342
+ * existed), every `aft` on PATH, then `~/.cargo/bin/aft`.
343
+ */
344
+ async function findProbedBinary(expectedVersion, env) {
345
+ const ext = process.platform === "win32" ? ".exe" : "";
346
+ const pluginVersion = expectedVersion ?? ownPackageVersion();
347
+ // 1. An unvouched versioned-cache entry. Verified by running it off the
348
+ // host thread; once confirmed, a sidecar is recorded in the background so
349
+ // the next lookup is stat-only.
350
+ if (pluginVersion) {
351
+ const tag = pluginVersion.startsWith("v") ? pluginVersion : `v${pluginVersion}`;
352
+ const cached = cachedBinaryPathFromEnv(tag, env, ext);
353
+ if (cached) {
354
+ const usable = await probeBinaryCandidateOffThread(cached, "Cached", pluginVersion);
355
+ if (usable) {
356
+ void recordBinaryIdentity(usable, pluginVersion);
357
+ return { path: usable, source: "versioned cache" };
289
358
  }
290
- const usable = probeBinaryCandidate(candidate, "PATH", expectedVersion);
291
- if (usable)
292
- return { path: usable, source: "PATH" };
293
359
  }
294
360
  }
295
- catch {
296
- // not in PATH
361
+ // 2. PATH
362
+ for (const candidate of pathCandidates(env, ext)) {
363
+ // Guard against self-resolution: a PATH hit can be the @cortexkit/aft
364
+ // CLI's own node-script shim (npx prepends its node_modules/.bin to
365
+ // PATH). Probing it with --version re-enters the CLI and fork-bombs.
366
+ // Only accept native executables here.
367
+ if (!isNativeExecutable(candidate)) {
368
+ warn(`PATH binary at ${candidate} is not a native executable (script shim?); skipping`);
369
+ continue;
370
+ }
371
+ const usable = await probeBinaryCandidateOffThread(candidate, "PATH", expectedVersion);
372
+ if (usable)
373
+ return { path: usable, source: "PATH" };
297
374
  }
298
- // 4. Check ~/.cargo/bin/aft
375
+ // 3. ~/.cargo/bin/aft
299
376
  const cargoPath = join(homeDirFromEnv(env), ".cargo", "bin", `aft${ext}`);
300
377
  if (existsSync(cargoPath)) {
301
- const usable = probeBinaryCandidate(cargoPath, "cargo", expectedVersion);
378
+ const usable = await probeBinaryCandidateOffThread(cargoPath, "cargo", expectedVersion);
302
379
  if (usable)
303
380
  return { path: usable, source: "cargo" };
304
381
  }
305
382
  return null;
306
383
  }
307
384
  export const __test__ = {
308
- parsePathLookupOutput,
385
+ pathCandidates,
309
386
  };
310
387
  /**
311
- * Locate the `aft` binary, with auto-download as a last resort.
388
+ * Locate the `aft` binary, with auto-download as a last resort. Never
389
+ * executes a binary on the calling thread: identities come from sidecars and
390
+ * package manifests, and anything that has to be run to learn its version is
391
+ * run on a worker thread while the caller awaits.
312
392
  *
313
393
  * Resolution order:
314
- * 0. Explicit AFT_BINARY_PATH (hermetic host probes)
315
- * 1. Cached binary (~/.cache/aft/bin/)
394
+ * 0. Explicit AFT_BINARY_PATH (hermetic host probes; version verified)
395
+ * 1. Versioned cache (~/.cache/aft/bin/) with a matching identity sidecar
316
396
  * 2. npm platform package (@cortexkit/aft-<platform>)
317
- * 3. PATH lookup (which aft)
318
- * 4. ~/.cargo/bin/aft
319
- * 5. Auto-download from GitHub releases
397
+ * 3. Versioned cache entry without a sidecar, verified by running it
398
+ * 4. PATH lookup
399
+ * 5. ~/.cargo/bin/aft
400
+ * 6. Auto-download from GitHub releases
320
401
  *
321
402
  * Returns the absolute path to the binary.
322
403
  * Throws a descriptive error with install instructions if all sources fail.
323
404
  */
324
405
  export async function findBinary(expectedVersion) {
325
- // Try synchronous resolution first (fast path)
326
- const syncResult = findBinarySync(expectedVersion);
327
- if (syncResult) {
328
- return syncResult;
406
+ const env = { ...process.env };
407
+ const explicitBinary = explicitBinaryOverride(env);
408
+ if (explicitBinary) {
409
+ const usable = await probeBinaryCandidateOffThread(explicitBinary, "AFT_BINARY_PATH", expectedVersion);
410
+ if (!usable) {
411
+ throw new Error(`AFT_BINARY_PATH is incompatible with the requested AFT version: ${explicitBinary}`);
412
+ }
413
+ logBinaryResolution({ path: usable, source: "AFT_BINARY_PATH" });
414
+ return usable;
415
+ }
416
+ const resolution = findTrustedBinarySync(expectedVersion, env) ?? (await findProbedBinary(expectedVersion, env));
417
+ if (resolution) {
418
+ // An async caller can wait for the npm copy without blocking the host
419
+ // thread, and then avoids running from node_modules at all.
420
+ const copied = resolution.pendingCopy ? await resolution.pendingCopy : null;
421
+ const path = copied ?? resolution.path;
422
+ logBinaryResolution({ path, source: resolution.source });
423
+ return path;
329
424
  }
330
- // 5. Auto-download from GitHub releases
425
+ // 6. Auto-download from GitHub releases
331
426
  log("Binary not found locally, attempting auto-download...");
332
427
  const downloaded = await ensureBinaryForResolver(expectedVersion);
333
428
  if (downloaded) {
@@ -341,7 +436,7 @@ export async function findBinary(expectedVersion) {
341
436
  "Attempted sources:",
342
437
  " - Cache directory (~/.cache/aft/bin/)",
343
438
  " - npm platform package (@cortexkit/aft-<platform>)",
344
- " - PATH lookup (which aft)",
439
+ " - PATH lookup",
345
440
  " - ~/.cargo/bin/aft",
346
441
  " - Auto-download from GitHub releases (failed)",
347
442
  "",
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"revivable-transport.d.ts","sourceRoot":"","sources":["../src/revivable-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"revivable-transport.d.ts","sourceRoot":"","sources":["../src/revivable-transport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACf,MAAM,gBAAgB,CAAC;AAMxB,KAAK,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAElE,KAAK,WAAW,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAMnD;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,gBAAgB;IAY3D,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAZpC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgD;IAC3E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8B;IACjE,OAAO,CAAC,wBAAwB,CAAS;gBAGvC,WAAW,EAAE,gBAAgB,EACZ,UAAU,EAAE,WAAW,EACvB,gBAAgB,CAAC,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,aAAA;IAK5D,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,yBAAyB;IAUzD;gEAC4D;IAC5D,aAAa,IAAI,mBAAmB,EAAE;IAItC,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,yBAAyB,GAAG,IAAI;IASvE,QAAQ,CACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,EAC/B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,cAAc,CAAC;IAI1B,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAmBjD,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BnF,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMlD,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,QAAQ,CAAC,MAAM,SAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjD,UAAU,IAAI,OAAO;IAIf,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAsDnD;;;;OAIG;IACH,gCAAgC,CAAC,GAAG,EAAE,UAAU,GAAG,yBAAyB,GAAG,IAAI;IAQnF,sBAAsB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI;IAO7C,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,SAAS;IAO5E,iBAAiB,IAAI,UAAU,CAAC,gBAAgB,CAAC,GAAG,SAAS;IAO7D,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAIxD,IAAI,CACR,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GACnD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAO7B,iBAAiB,CACrB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,cAAc,CAAC;CAM3B;AAED;;;GAGG;AACH,cAAM,yBAA0B,YAAW,mBAAmB;IAK1D,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAL9B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyC;IACzE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyD;gBAGpE,KAAK,EAAE,sBAAsB,EAC7B,WAAW,EAAE,MAAM;IAGtC,MAAM,IAAI,MAAM;IAIhB,eAAe;IAIf,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAI9F,IAAI,CACF,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GACnD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAInC,QAAQ,CACN,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,cAAc,CAAC;IAI1B,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,IAAI;IAOrD,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,GAAG,IAAI;IAMnE,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,oBAAoB;CAM7B"}
@@ -70,6 +70,18 @@ export class RevivableTransportPool {
70
70
  this.activePool.setConfigureOverride(key, value);
71
71
  }
72
72
  async reconfigure(projectRoot, overrides) {
73
+ if (this.activePool.isShutdown() && !this.revival) {
74
+ // Reconfigure only updates live bridges, and a shut-down pool has none.
75
+ // Reviving here would leave a live pool behind after the host's shutdown
76
+ // hook finished: background work that settles during shutdown (an LSP
77
+ // install aborted by that hook, for example) then keeps an unowned pool
78
+ // around and a headless host never exits. Record the overrides instead;
79
+ // a later revival applies them to the replacement pool.
80
+ for (const [key, value] of Object.entries(overrides)) {
81
+ this.setConfigureOverride(key, value);
82
+ }
83
+ return;
84
+ }
73
85
  const pool = await this.ensureActivePool();
74
86
  const runtimeOverrides = {};
75
87
  for (const [key, value] of Object.entries(overrides)) {