@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-watch.js","sourceRoot":"","sources":["../src/config-watch.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,10 @@
15
15
  * `--version`. Returns the bare version (e.g. `"0.22.1"`) without the
16
16
  * leading `v` or the `aft` prefix, or `null` if the invocation fails.
17
17
  *
18
- * Shared by the downloader and resolver so both cache hot-paths validate the
19
- * binary itself instead of trusting directory names.
18
+ * BLOCKING: the calling thread waits in `posix_spawn` until the child is
19
+ * loaded, which for a cold binary under memory pressure has taken close to a
20
+ * minute. Only command-line tools may call this. Plugin hosts must use the
21
+ * identity sidecar (`isTrustedCachedBinary`) or `readBinaryVersionOffThread`.
20
22
  */
21
23
  export declare function readBinaryVersion(binaryPath: string): string | null;
22
24
  /** Keep getCacheDir as an alias for getAftBinaryCacheDir so existing callers using the older name continue to work. */
@@ -1 +1 @@
1
- {"version":3,"file":"downloader.d.ts","sourceRoot":"","sources":["../src/downloader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAqCH;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsBnE;AAgBD,uHAAuH;AACvH,OAAO,EAAE,oBAAoB,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEvE,4CAA4C;AAC5C,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;sFAGsF;AACtF,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAInE;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2N7E;AAUD;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiC3E;AAED,KAAK,kBAAkB,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AA8FF,iBAAe,mBAAmB,CAChC,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,kBAAuB,GAC9B,OAAO,CAAC,MAAM,IAAI,CAAC,CA+CrB;AAwCD,eAAO,MAAM,QAAQ;;CAEpB,CAAC"}
1
+ {"version":3,"file":"downloader.d.ts","sourceRoot":"","sources":["../src/downloader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA4CH;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgBnE;AA4BD,uHAAuH;AACvH,OAAO,EAAE,oBAAoB,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEvE,4CAA4C;AAC5C,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;sFAGsF;AACtF,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAInE;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwO7E;AAUD;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiC3E;AAED,KAAK,kBAAkB,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AA8FF,iBAAe,mBAAmB,CAChC,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,kBAAuB,GAC9B,OAAO,CAAC,MAAM,IAAI,CAAC,CA+CrB;AAwCD,eAAO,MAAM,QAAQ;;CAEpB,CAAC"}
@@ -10,7 +10,6 @@
10
10
  *
11
11
  * Cache dir respects XDG_CACHE_HOME on Linux/macOS and LOCALAPPDATA on Windows.
12
12
  */
13
- import { spawnSync } from "node:child_process";
14
13
  import { createHash, randomUUID } from "node:crypto";
15
14
  import { chmodSync, closeSync, copyFileSync, createWriteStream, existsSync, mkdirSync, openSync, readdirSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeSync, } from "node:fs";
16
15
  import { hostname } from "node:os";
@@ -18,8 +17,11 @@ import { join } from "node:path";
18
17
  import { Readable } from "node:stream";
19
18
  import { pipeline } from "node:stream/promises";
20
19
  import { error, log, warn } from "./active-logger.js";
20
+ import { isTrustedCachedBinary, recordBinaryIdentity, removeBinaryIdentitySidecar, writeBinaryIdentitySidecar, } from "./binary-identity.js";
21
21
  import { getAftBinaryCacheDir } from "./cache-paths.js";
22
+ import { spawnSync } from "./child-process.js";
22
23
  import { PLATFORM_ARCH_MAP, PLATFORM_ASSET_MAP } from "./platform.js";
24
+ import { parseAftVersionOutput, readBinaryVersionOffThread } from "./version-probe.js";
23
25
  const REPO = "cortexkit/aft";
24
26
  const DOWNLOAD_TIMEOUT_MS = 300_000;
25
27
  const LATEST_TAG_TIMEOUT_MS = 30_000;
@@ -33,8 +35,10 @@ const DOWNLOAD_LOCK_TIMEOUT_MS = DOWNLOAD_LOCK_STALE_MS + 30_000;
33
35
  * `--version`. Returns the bare version (e.g. `"0.22.1"`) without the
34
36
  * leading `v` or the `aft` prefix, or `null` if the invocation fails.
35
37
  *
36
- * Shared by the downloader and resolver so both cache hot-paths validate the
37
- * binary itself instead of trusting directory names.
38
+ * BLOCKING: the calling thread waits in `posix_spawn` until the child is
39
+ * loaded, which for a cold binary under memory pressure has taken close to a
40
+ * minute. Only command-line tools may call this. Plugin hosts must use the
41
+ * identity sidecar (`isTrustedCachedBinary`) or `readBinaryVersionOffThread`.
38
42
  */
39
43
  export function readBinaryVersion(binaryPath) {
40
44
  try {
@@ -43,19 +47,12 @@ export function readBinaryVersion(binaryPath) {
43
47
  stdio: ["pipe", "pipe", "pipe"],
44
48
  // macOS assesses an executable once per inode, and a just-downloaded
45
49
  // binary is always a new one. That first exec has been measured at
46
- // seconds — occasionally far worse under memory pressure — so a
47
- // five-second cap would report a perfectly good binary as unreadable
48
- // and trigger a needless re-download. Later execs of the same inode
49
- // return in milliseconds, so this budget is only ever paid once.
50
+ // seconds — far worse under memory pressure — so a five-second cap
51
+ // would report a perfectly good binary as unreadable and trigger a
52
+ // needless re-download.
50
53
  timeout: 60_000,
51
54
  });
52
- const stdoutVersion = result.stdout?.trim();
53
- const stderrVersion = result.stderr?.trim();
54
- const rawVersion = stdoutVersion || stderrVersion;
55
- if (!rawVersion)
56
- return null;
57
- // `aft --version` outputs "aft 0.9.0" — extract just the version number
58
- return rawVersion.replace(/^aft\s+/, "");
55
+ return parseAftVersionOutput(result.stdout ?? "", result.stderr ?? "");
59
56
  }
60
57
  catch {
61
58
  return null;
@@ -64,11 +61,23 @@ export function readBinaryVersion(binaryPath) {
64
61
  function expectedVersionFromTag(tag) {
65
62
  return tag.startsWith("v") ? tag.slice(1) : tag;
66
63
  }
67
- function isExpectedCachedBinary(binaryPath, tag) {
64
+ /**
65
+ * Decide whether the cached binary at `binaryPath` is the release `tag`
66
+ * without executing it on the calling thread. A matching identity sidecar is
67
+ * enough. An entry without one (written before sidecars existed) or whose
68
+ * sidecar no longer matches the file is asked for its version on a worker
69
+ * thread; when that confirms the version, a fresh sidecar is recorded in the
70
+ * background so later lookups are stat-only.
71
+ */
72
+ async function isExpectedCachedBinary(binaryPath, tag) {
68
73
  const expected = expectedVersionFromTag(tag);
69
- const actual = readBinaryVersion(binaryPath);
70
- if (actual === expected)
74
+ if (isTrustedCachedBinary(binaryPath, expected))
71
75
  return true;
76
+ const actual = await readBinaryVersionOffThread(binaryPath);
77
+ if (actual === expected) {
78
+ void recordBinaryIdentity(binaryPath, expected);
79
+ return true;
80
+ }
72
81
  warn(`Cached binary at ${binaryPath} reports ${actual ?? "no version"}, expected ${expected}; refreshing cache entry`);
73
82
  return false;
74
83
  }
@@ -127,7 +136,7 @@ export async function downloadBinary(version) {
127
136
  // Already cached for this version. Probe the binary itself before trusting
128
137
  // the cache directory name; stale hot-swap entries can otherwise shadow a
129
138
  // freshly requested compatible version forever.
130
- if (existsSync(binaryPath) && isExpectedCachedBinary(binaryPath, tag)) {
139
+ if (existsSync(binaryPath) && (await isExpectedCachedBinary(binaryPath, tag))) {
131
140
  return binaryPath;
132
141
  }
133
142
  const downloadUrl = `https://github.com/${REPO}/releases/download/${tag}/${assetName}`;
@@ -183,7 +192,7 @@ export async function downloadBinary(version) {
183
192
  // Another process may have completed the same version while we waited.
184
193
  // Re-probe here too because a stale owner might have left a mismatched
185
194
  // binary in the versioned directory before this process acquired the lock.
186
- if (existsSync(binaryPath) && isExpectedCachedBinary(binaryPath, tag)) {
195
+ if (existsSync(binaryPath) && (await isExpectedCachedBinary(binaryPath, tag))) {
187
196
  return binaryPath;
188
197
  }
189
198
  // Download binary and checksum file in parallel
@@ -247,6 +256,9 @@ export async function downloadBinary(version) {
247
256
  "The binary may have been tampered with.");
248
257
  }
249
258
  log(`Checksum verified (SHA-256: ${actualHash.slice(0, 16)}...)`);
259
+ // Drop the old entry's sidecar first so no reader pairs it with the new
260
+ // bytes; the stat check would reject that pairing anyway.
261
+ removeBinaryIdentitySidecar(binaryPath);
250
262
  // Atomic rename (POSIX) or copy (Windows — renameSync fails with EEXIST
251
263
  // when target exists). On Windows, copyFileSync overwrites the target;
252
264
  // if it fails the original binary at binaryPath is preserved.
@@ -257,6 +269,15 @@ export async function downloadBinary(version) {
257
269
  chmodSync(tmpPath, 0o755);
258
270
  renameSync(tmpPath, binaryPath);
259
271
  }
272
+ // The bytes matched the release checksum for `tag`, so the version is
273
+ // known without running the binary. Recorded only once the binary is in
274
+ // its final place, so the sidecar describes that exact file.
275
+ try {
276
+ writeBinaryIdentitySidecar(binaryPath, tag, actualHash);
277
+ }
278
+ catch (err) {
279
+ warn(`Could not record identity for ${binaryPath}: ${err instanceof Error ? err.message : String(err)}`);
280
+ }
260
281
  // Binary was replaced successfully. Clean up the temp file best-effort;
261
282
  // a cleanup failure should NOT propagate as a download failure.
262
283
  try {
@@ -321,7 +342,7 @@ export async function ensureBinary(version) {
321
342
  // Do NOT fall back to legacy flat cache — it may contain a different version,
322
343
  // causing an infinite spawn-check-replace loop.
323
344
  const versionCached = getCachedBinaryPath(tag);
324
- if (versionCached && isExpectedCachedBinary(versionCached, tag)) {
345
+ if (versionCached && (await isExpectedCachedBinary(versionCached, tag))) {
325
346
  log(`Found cached binary for ${tag}: ${versionCached}`);
326
347
  return versionCached;
327
348
  }
@@ -1 +1 @@
1
- {"version":3,"file":"downloader.js","sourceRoot":"","sources":["../src/downloader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"downloader.js","sourceRoot":"","sources":["../src/downloader.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,13 @@
2
2
  export declare const DEFAULT_LOG_BYTES: number;
3
3
  /** Retention hygiene keeps one backup generation and no numbered chain. */
4
4
  export declare const DEFAULT_LOG_GENERATIONS = 1;
5
+ /**
6
+ * Log lines can quote paths, commands and server output, so the log directory
7
+ * is owner-only and log files are owner read/write, matching the Rust daemon's
8
+ * logs in the same directory. POSIX only: Windows ignores these modes.
9
+ */
10
+ export declare const LOG_DIR_MODE = 448;
11
+ export declare const LOG_FILE_MODE = 384;
5
12
  import { resolveAftLogPath, resolveAftStorageRoot } from "./storage-paths.js";
6
13
  export { resolveAftLogPath, resolveAftStorageRoot };
7
14
  export interface RotatingLogOptions {
@@ -22,6 +29,10 @@ export declare class RotatingLogSink {
22
29
  private queue;
23
30
  private disabled;
24
31
  private failureReported;
32
+ private queuedBytes;
33
+ private queuedRecords;
34
+ private droppedBytes;
35
+ private overflowQueued;
25
36
  constructor(path: string, options?: RotatingLogOptions);
26
37
  append(data: string): void;
27
38
  /** Wait for queued writes. Intended for shutdown hooks and tests. */
@@ -1 +1 @@
1
- {"version":3,"file":"durable-log.d.ts","sourceRoot":"","sources":["../src/durable-log.ts"],"names":[],"mappings":"AAGA,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,QAAmB,CAAC;AAClD,2EAA2E;AAC3E,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAS;gBAEpB,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB;IAM1D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAmB1B,qEAAqE;IAC/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAId,KAAK;YAmBL,MAAM;CAarB"}
1
+ {"version":3,"file":"durable-log.d.ts","sourceRoot":"","sources":["../src/durable-log.ts"],"names":[],"mappings":"AAGA,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,QAAmB,CAAC;AAClD,2EAA2E;AAC3E,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC;;;;GAIG;AACH,eAAO,MAAM,YAAY,MAAQ,CAAC;AAClC,eAAO,MAAM,aAAa,MAAQ,CAAC;AAEnC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAS;gBAEnB,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB;IAM1D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IA8C1B,qEAAqE;IAC/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAId,KAAK;YAgCL,MAAM;CAarB"}
@@ -1,9 +1,16 @@
1
- import { appendFile, mkdir, rename, rm, stat } from "node:fs/promises";
1
+ import { appendFile, chmod, mkdir, rename, rm, stat } from "node:fs/promises";
2
2
  import { dirname } from "node:path";
3
3
  /** Maximum size of the active plugin log before its single backup rotates in. */
4
4
  export const DEFAULT_LOG_BYTES = 32 * 1024 * 1024;
5
5
  /** Retention hygiene keeps one backup generation and no numbered chain. */
6
6
  export const DEFAULT_LOG_GENERATIONS = 1;
7
+ /**
8
+ * Log lines can quote paths, commands and server output, so the log directory
9
+ * is owner-only and log files are owner read/write, matching the Rust daemon's
10
+ * logs in the same directory. POSIX only: Windows ignores these modes.
11
+ */
12
+ export const LOG_DIR_MODE = 0o700;
13
+ export const LOG_FILE_MODE = 0o600;
7
14
  import { resolveAftLogPath, resolveAftStorageRoot } from "./storage-paths.js";
8
15
  export { resolveAftLogPath, resolveAftStorageRoot };
9
16
  /**
@@ -20,6 +27,10 @@ export class RotatingLogSink {
20
27
  queue = Promise.resolve();
21
28
  disabled = false;
22
29
  failureReported = false;
30
+ queuedBytes = 0;
31
+ queuedRecords = 0;
32
+ droppedBytes = 0;
33
+ overflowQueued = false;
23
34
  constructor(path, options = {}) {
24
35
  this.path = path;
25
36
  this.maxBytes = options.maxBytes ?? DEFAULT_LOG_BYTES;
@@ -28,8 +39,37 @@ export class RotatingLogSink {
28
39
  append(data) {
29
40
  if (this.disabled || data.length === 0)
30
41
  return;
42
+ const bytes = Buffer.byteLength(data);
43
+ const overflow = this.queuedBytes + bytes > 1024 * 1024 || this.queuedRecords >= 4096;
44
+ if (overflow) {
45
+ this.droppedBytes += bytes;
46
+ if (this.overflowQueued)
47
+ return;
48
+ this.overflowQueued = true;
49
+ data = "";
50
+ }
51
+ else {
52
+ this.queuedBytes += bytes;
53
+ this.queuedRecords += 1;
54
+ }
31
55
  this.queue = this.queue
32
- .then(() => this.write(data))
56
+ .then(async () => {
57
+ if (overflow) {
58
+ const dropped = this.droppedBytes;
59
+ this.droppedBytes = 0;
60
+ this.overflowQueued = false;
61
+ await this.write(`[aft-plugin] durable log queue overflow: dropped ${dropped} bytes (1MiB/4096-record pending limit); reduce diagnostic volume.\n`);
62
+ }
63
+ else {
64
+ try {
65
+ await this.write(data);
66
+ }
67
+ finally {
68
+ this.queuedBytes -= bytes;
69
+ this.queuedRecords -= 1;
70
+ }
71
+ }
72
+ })
33
73
  .catch((error) => {
34
74
  this.disabled = true;
35
75
  if (!this.failureReported) {
@@ -48,8 +88,23 @@ export class RotatingLogSink {
48
88
  await this.queue;
49
89
  }
50
90
  async write(data) {
51
- await mkdir(dirname(this.path), { recursive: true });
91
+ const dir = dirname(this.path);
92
+ await mkdir(dirname(dir), { recursive: true });
93
+ try {
94
+ await mkdir(dir, { mode: LOG_DIR_MODE });
95
+ }
96
+ catch (error) {
97
+ if (!hasCode(error, "EEXIST"))
98
+ throw error;
99
+ }
52
100
  if (this.estimatedBytes === null) {
101
+ // First write from this sink: tighten a directory and files left over
102
+ // from before logs were private. Later files are created owner-only.
103
+ await tightenIfOwned(dir, LOG_DIR_MODE);
104
+ await tightenIfOwned(this.path, LOG_FILE_MODE);
105
+ for (let generation = 1; generation <= this.generations; generation += 1) {
106
+ await tightenIfOwned(`${this.path}.${generation}`, LOG_FILE_MODE);
107
+ }
53
108
  try {
54
109
  this.estimatedBytes = (await stat(this.path)).size;
55
110
  }
@@ -63,7 +118,7 @@ export class RotatingLogSink {
63
118
  if (this.estimatedBytes > 0 && this.estimatedBytes + bytes > this.maxBytes) {
64
119
  await this.rotate();
65
120
  }
66
- await appendFile(this.path, data, "utf8");
121
+ await appendFile(this.path, data, { encoding: "utf8", mode: LOG_FILE_MODE });
67
122
  this.estimatedBytes = (this.estimatedBytes ?? 0) + bytes;
68
123
  }
69
124
  async rotate() {
@@ -81,7 +136,28 @@ export class RotatingLogSink {
81
136
  }
82
137
  }
83
138
  function isMissing(error) {
84
- return typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT";
139
+ return hasCode(error, "ENOENT");
140
+ }
141
+ function hasCode(error, code) {
142
+ return typeof error === "object" && error !== null && "code" in error && error.code === code;
143
+ }
144
+ /**
145
+ * Drop group/other permission bits when the current user owns `path`. Best
146
+ * effort: a missing path, another owner, or a failed chmod leaves it as is
147
+ * rather than disabling the log.
148
+ */
149
+ async function tightenIfOwned(path, mode) {
150
+ if (process.platform === "win32" || typeof process.getuid !== "function")
151
+ return;
152
+ try {
153
+ const info = await stat(path);
154
+ if (info.uid !== process.getuid() || (info.mode & 0o777 & ~mode) === 0)
155
+ return;
156
+ await chmod(path, mode);
157
+ }
158
+ catch {
159
+ // Best effort; see above.
160
+ }
85
161
  }
86
162
  async function removeIfPresent(path) {
87
163
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"durable-log.js","sourceRoot":"","sources":["../src/durable-log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"durable-log.js","sourceRoot":"","sources":["../src/durable-log.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,14 @@ export interface EditSummaryInput {
10
10
  replacements?: number;
11
11
  /** Number of edits applied in batch mode (Rust `edits_applied`). */
12
12
  edits_applied?: number;
13
+ fuzzy_match?: {
14
+ pass: number;
15
+ replaced_text: string[];
16
+ };
17
+ fuzzy_matches?: Array<{
18
+ pass: number;
19
+ replaced_text: string[];
20
+ }>;
13
21
  /** True when a new file was created (append/write create path). */
14
22
  created?: boolean;
15
23
  /** True when the post-write content is byte-identical to before. */
@@ -1 +1 @@
1
- {"version":3,"file":"edit-summary.d.ts","sourceRoot":"","sources":["../src/edit-summary.ts"],"names":[],"mappings":"AAeA,oEAAoE;AACpE,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wEAAwE;IACxE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wFAAwF;IACxF,WAAW,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACrD,uEAAuE;IACvE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CA8ChE"}
1
+ {"version":3,"file":"edit-summary.d.ts","sourceRoot":"","sources":["../src/edit-summary.ts"],"names":[],"mappings":"AAeA,oEAAoE;AACpE,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACxD,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACjE,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wEAAwE;IACxE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wFAAwF;IACxF,WAAW,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACrD,uEAAuE;IACvE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAqDhE"}
@@ -65,6 +65,13 @@ export function formatEditSummary(data) {
65
65
  let s = `Edited (${detail}).`;
66
66
  if (data.formatted)
67
67
  s += formatAutoFormattedSuffix(data);
68
+ const fuzzy = data.fuzzy_matches ?? (data.fuzzy_match ? [data.fuzzy_match] : []);
69
+ for (const match of fuzzy) {
70
+ s += `\nFuzzy match (pass ${match.pass}).`;
71
+ for (const [index, text] of match.replaced_text.entries()) {
72
+ s += `\nReplaced text ${index + 1}: ${text}`;
73
+ }
74
+ }
68
75
  return s;
69
76
  }
70
77
  function formatAutoFormattedSuffix(data) {
@@ -1 +1 @@
1
- {"version":3,"file":"edit-summary.js","sourceRoot":"","sources":["../src/edit-summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edit-summary.js","sourceRoot":"","sources":["../src/edit-summary.ts"],"names":[],"mappings":"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"}