@indigoai-us/hq-cloud 6.18.12-alpha.2 → 6.18.12

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 (47) hide show
  1. package/dist/bin/sync-runner-watch-loop.d.ts.map +1 -1
  2. package/dist/bin/sync-runner-watch-loop.js +0 -1
  3. package/dist/bin/sync-runner-watch-loop.js.map +1 -1
  4. package/dist/bin/sync-runner-watch-loop.test.js +0 -2
  5. package/dist/bin/sync-runner-watch-loop.test.js.map +1 -1
  6. package/dist/bin/sync-runner.d.ts +22 -12
  7. package/dist/bin/sync-runner.d.ts.map +1 -1
  8. package/dist/bin/sync-runner.js +52 -78
  9. package/dist/bin/sync-runner.js.map +1 -1
  10. package/dist/bin/sync-runner.test.js +32 -73
  11. package/dist/bin/sync-runner.test.js.map +1 -1
  12. package/dist/ignore.d.ts.map +1 -1
  13. package/dist/ignore.js +6 -0
  14. package/dist/ignore.js.map +1 -1
  15. package/dist/ignore.test.js +7 -0
  16. package/dist/ignore.test.js.map +1 -1
  17. package/dist/index.d.ts +2 -2
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/lib/exit-codes.d.ts +2 -9
  22. package/dist/lib/exit-codes.d.ts.map +1 -1
  23. package/dist/lib/exit-codes.js +2 -9
  24. package/dist/lib/exit-codes.js.map +1 -1
  25. package/dist/manifest/build-manifest-resident-parity.test.js +4 -4
  26. package/dist/manifest/build-manifest-resident-parity.test.js.map +1 -1
  27. package/dist/operation-lock.d.ts +10 -41
  28. package/dist/operation-lock.d.ts.map +1 -1
  29. package/dist/operation-lock.js +48 -107
  30. package/dist/operation-lock.js.map +1 -1
  31. package/dist/operation-lock.test.js +116 -205
  32. package/dist/operation-lock.test.js.map +1 -1
  33. package/dist/sync-progress.d.ts +33 -0
  34. package/dist/sync-progress.d.ts.map +1 -1
  35. package/dist/sync-progress.js +81 -0
  36. package/dist/sync-progress.js.map +1 -1
  37. package/dist/sync-progress.test.js +80 -1
  38. package/dist/sync-progress.test.js.map +1 -1
  39. package/package.json +1 -1
  40. package/dist/watch-owner-lease.d.ts +0 -44
  41. package/dist/watch-owner-lease.d.ts.map +0 -1
  42. package/dist/watch-owner-lease.js +0 -368
  43. package/dist/watch-owner-lease.js.map +0 -1
  44. package/dist/watch-owner-lease.test.d.ts +0 -2
  45. package/dist/watch-owner-lease.test.d.ts.map +0 -1
  46. package/dist/watch-owner-lease.test.js +0 -335
  47. package/dist/watch-owner-lease.test.js.map +0 -1
@@ -3,7 +3,6 @@
3
3
  */
4
4
  import { describe, it, expect, beforeEach, afterEach } from "vitest";
5
5
  import { spawn, spawnSync } from "child_process";
6
- import { once } from "node:events";
7
6
  import * as fs from "fs";
8
7
  import * as os from "os";
9
8
  import * as path from "path";
@@ -15,26 +14,10 @@ function deadPid() {
15
14
  throw new Error("could not spawn to obtain a dead pid");
16
15
  return r.pid;
17
16
  }
18
- function spawnLongLivedProcess() {
19
- const child = spawn(process.execPath, ["-e", "setInterval(() => {}, 1000)"], {
20
- stdio: "ignore",
21
- windowsHide: true,
22
- });
23
- if (child.pid === undefined)
24
- throw new Error("could not start a live lock-holder process");
25
- return { child, pid: child.pid };
26
- }
27
- async function stopLongLivedProcess(child) {
28
- if (child.exitCode !== null || child.signalCode !== null)
29
- return;
30
- const exited = once(child, "exit");
31
- child.kill();
32
- await exited;
33
- }
34
17
  function writeLock(p, info) {
35
18
  fs.mkdirSync(path.dirname(p), { recursive: true });
36
19
  const full = {
37
- pid: process.pid,
20
+ pid: 1,
38
21
  command: "sync",
39
22
  startedAt: new Date(0).toISOString(),
40
23
  hqRoot: "/x",
@@ -278,9 +261,6 @@ describe("operation-lock", () => {
278
261
  // bit makes the temp-file create fail (EACCES on Linux / EPERM on macOS),
279
262
  // and acquire must surface the typed error rather than crash. CI runners
280
263
  // run non-root, so this exercises the full path there.
281
- // Windows does not enforce these POSIX chmod mode bits on directories.
282
- if (process.platform === "win32")
283
- return;
284
264
  if (typeof process.getuid === "function" && process.getuid() === 0) {
285
265
  // root bypasses DAC permission bits, so a chmod-based unwritable dir
286
266
  // cannot be exercised — the classifier cases above cover the logic.
@@ -297,9 +277,6 @@ describe("operation-lock", () => {
297
277
  }
298
278
  });
299
279
  it("async acquire also surfaces the typed error on an unwritable locks dir (skipped as root)", async () => {
300
- // Windows does not enforce these POSIX chmod mode bits on directories.
301
- if (process.platform === "win32")
302
- return;
303
280
  if (typeof process.getuid === "function" && process.getuid() === 0) {
304
281
  return;
305
282
  }
@@ -318,147 +295,100 @@ describe("operation-lock", () => {
318
295
  expect(OPERATION_LOCK_UNWRITABLE_EXIT).toBe(18);
319
296
  });
320
297
  });
321
- it("refuses immediately (wait:false) with the holder's command + pid when a LIVE process holds it", async () => {
322
- const holder = spawnLongLivedProcess();
323
- try {
324
- // A spawned child represents a distinct live holder and stays alive through
325
- // the assertions. The same-process reclaim path does not apply; wait:false
326
- // preserves the refuse-immediately behavior while the default waits.
327
- writeLock(lockPathFor(rootA), { pid: holder.pid, command: "rescue" });
328
- expect(() => acquireOperationLock(rootA, "sync", { wait: false })).toThrowError(OperationLockedError);
329
- try {
330
- acquireOperationLock(rootA, "sync", { wait: false });
331
- }
332
- catch (e) {
333
- const err = e;
334
- expect(err.holder.command).toBe("rescue");
335
- expect(err.holder.pid).toBe(holder.pid);
336
- expect(err.message).toContain("rescue");
337
- expect(err.message).toContain("pid " + holder.pid);
338
- }
339
- }
340
- finally {
341
- await stopLongLivedProcess(holder.child);
342
- }
343
- });
344
- it("timeoutSec:0 refuses immediately (no wait) — equivalent to wait:false", async () => {
345
- const holder = spawnLongLivedProcess();
298
+ it("refuses immediately (wait:false) with the holder's command + pid when a LIVE process holds it", () => {
299
+ // Simulate a DIFFERENT live process holding the lock. PID 1 (init/systemd)
300
+ // is always alive and is never our own pid, so kill(1,0) reports alive and
301
+ // the same-process reclaim path does not apply. `wait:false` keeps the old
302
+ // refuse-immediately behavior (the default is now to WAIT).
303
+ writeLock(lockPathFor(rootA), { pid: 1, command: "rescue" });
304
+ expect(() => acquireOperationLock(rootA, "sync", { wait: false })).toThrowError(OperationLockedError);
346
305
  try {
347
- writeLock(lockPathFor(rootA), { pid: holder.pid, command: "sync" });
348
- const start = Date.now();
349
- expect(() => acquireOperationLock(rootA, "reindex", { timeoutSec: 0 })).toThrowError(OperationLockedError);
350
- // Did not actually sleep.
351
- expect(Date.now() - start).toBeLessThan(DEFAULT_LOCK_POLL_MS);
306
+ acquireOperationLock(rootA, "sync", { wait: false });
352
307
  }
353
- finally {
354
- await stopLongLivedProcess(holder.child);
308
+ catch (e) {
309
+ const err = e;
310
+ expect(err.holder.command).toBe("rescue");
311
+ expect(err.holder.pid).toBe(1);
312
+ expect(err.message).toContain("rescue");
313
+ expect(err.message).toContain("pid 1");
355
314
  }
356
315
  });
357
- it("a bounded timeoutSec waits, then refuses with the old message + exit code", async () => {
358
- const holder = spawnLongLivedProcess();
359
- try {
360
- writeLock(lockPathFor(rootA), { pid: holder.pid, command: "rescue" });
361
- const start = Date.now();
362
- let thrown;
363
- try {
364
- // 150ms bound, 40ms poll → waits ~150ms then gives up. Suppress the
365
- // stderr status line with a no-op onWaitStart.
366
- acquireOperationLock(rootA, "sync", {
367
- timeoutSec: 0.15,
368
- pollIntervalMs: 40,
369
- onWaitStart: () => { },
370
- });
371
- }
372
- catch (e) {
373
- thrown = e;
374
- }
375
- const elapsed = Date.now() - start;
376
- expect(thrown).toBeInstanceOf(OperationLockedError);
377
- expect(thrown.message).toContain("rescue");
378
- expect(OPERATION_LOCKED_EXIT).toBe(17);
379
- // It actually waited (didn't refuse instantly) but didn't hang forever.
380
- expect(elapsed).toBeGreaterThanOrEqual(120);
381
- expect(elapsed).toBeLessThan(3000);
382
- const waiterPrefix = path.basename(lockPathFor(rootA)) + ".wait-";
383
- expect(fs.readdirSync(path.dirname(lockPathFor(rootA))).filter((entry) => entry.startsWith(waiterPrefix))).toEqual([]);
384
- }
385
- finally {
386
- await stopLongLivedProcess(holder.child);
387
- }
316
+ it("timeoutSec:0 refuses immediately (no wait) — equivalent to wait:false", () => {
317
+ writeLock(lockPathFor(rootA), { pid: 1, command: "sync" });
318
+ const start = Date.now();
319
+ expect(() => acquireOperationLock(rootA, "reindex", { timeoutSec: 0 })).toThrowError(OperationLockedError);
320
+ // Did not actually sleep.
321
+ expect(Date.now() - start).toBeLessThan(DEFAULT_LOCK_POLL_MS);
388
322
  });
389
- it("HQ_OP_LOCK_TIMEOUT env bounds the wait when no explicit option is given", async () => {
390
- const holder = spawnLongLivedProcess();
323
+ it("a bounded timeoutSec waits, then refuses with the old message + exit code", () => {
324
+ writeLock(lockPathFor(rootA), { pid: 1, command: "rescue" });
325
+ const start = Date.now();
326
+ let thrown;
391
327
  try {
392
- process.env.HQ_OP_LOCK_TIMEOUT = "0"; // 0 → refuse immediately
393
- writeLock(lockPathFor(rootA), { pid: holder.pid, command: "sync" });
394
- const start = Date.now();
395
- expect(() => acquireOperationLock(rootA, "rescue", { onWaitStart: () => { } })).toThrowError(OperationLockedError);
396
- expect(Date.now() - start).toBeLessThan(DEFAULT_LOCK_POLL_MS);
328
+ // 150ms bound, 40ms poll → waits ~150ms then gives up. Suppress the
329
+ // stderr status line with a no-op onWaitStart.
330
+ acquireOperationLock(rootA, "sync", {
331
+ timeoutSec: 0.15,
332
+ pollIntervalMs: 40,
333
+ onWaitStart: () => { },
334
+ });
397
335
  }
398
- finally {
399
- await stopLongLivedProcess(holder.child);
336
+ catch (e) {
337
+ thrown = e;
400
338
  }
339
+ const elapsed = Date.now() - start;
340
+ expect(thrown).toBeInstanceOf(OperationLockedError);
341
+ expect(thrown.message).toContain("rescue");
342
+ expect(OPERATION_LOCKED_EXIT).toBe(17);
343
+ // It actually waited (didn't refuse instantly) but didn't hang forever.
344
+ expect(elapsed).toBeGreaterThanOrEqual(120);
345
+ expect(elapsed).toBeLessThan(3000);
346
+ const waiterPrefix = `${path.basename(lockPathFor(rootA))}.wait-`;
347
+ expect(fs.readdirSync(path.dirname(lockPathFor(rootA))).filter((entry) => entry.startsWith(waiterPrefix))).toEqual([]);
348
+ });
349
+ it("HQ_OP_LOCK_TIMEOUT env bounds the wait when no explicit option is given", () => {
350
+ process.env.HQ_OP_LOCK_TIMEOUT = "0"; // 0 → refuse immediately
351
+ writeLock(lockPathFor(rootA), { pid: 1, command: "sync" });
352
+ const start = Date.now();
353
+ expect(() => acquireOperationLock(rootA, "rescue", { onWaitStart: () => { } })).toThrowError(OperationLockedError);
354
+ expect(Date.now() - start).toBeLessThan(DEFAULT_LOCK_POLL_MS);
401
355
  });
402
- it("an explicit timeoutSec overrides the HQ_OP_LOCK_TIMEOUT env", async () => {
403
- const holder = spawnLongLivedProcess();
404
- try {
405
- process.env.HQ_OP_LOCK_TIMEOUT = "9999"; // would be a near-infinite wait
406
- writeLock(lockPathFor(rootA), { pid: holder.pid, command: "sync" });
407
- // The explicit 0 wins → refuse immediately rather than honoring the env.
408
- expect(() => acquireOperationLock(rootA, "rescue", { timeoutSec: 0 })).toThrowError(OperationLockedError);
409
- }
410
- finally {
411
- await stopLongLivedProcess(holder.child);
412
- }
413
- });
414
- it("onWaitStart fires exactly once, naming the holder, even across many polls", async () => {
415
- const holder = spawnLongLivedProcess();
416
- try {
417
- writeLock(lockPathFor(rootA), { pid: holder.pid, command: "rescue" });
418
- const calls = [];
419
- expect(() => acquireOperationLock(rootA, "sync", {
420
- timeoutSec: 0.16,
421
- pollIntervalMs: 30, // ~5 polls within the window
422
- onWaitStart: (lockHolder, attempted) => calls.push({ cmd: lockHolder.command, attempted }),
423
- })).toThrowError(OperationLockedError);
424
- expect(calls).toHaveLength(1);
425
- expect(calls[0]).toEqual({ cmd: "rescue", attempted: "sync" });
426
- }
427
- finally {
428
- await stopLongLivedProcess(holder.child);
429
- }
356
+ it("an explicit timeoutSec overrides the HQ_OP_LOCK_TIMEOUT env", () => {
357
+ process.env.HQ_OP_LOCK_TIMEOUT = "9999"; // would be a near-infinite wait
358
+ writeLock(lockPathFor(rootA), { pid: 1, command: "sync" });
359
+ // The explicit 0 wins → refuse immediately rather than honoring the env.
360
+ expect(() => acquireOperationLock(rootA, "rescue", { timeoutSec: 0 })).toThrowError(OperationLockedError);
361
+ });
362
+ it("onWaitStart fires exactly once, naming the holder, even across many polls", () => {
363
+ writeLock(lockPathFor(rootA), { pid: 1, command: "rescue" });
364
+ const calls = [];
365
+ expect(() => acquireOperationLock(rootA, "sync", {
366
+ timeoutSec: 0.16,
367
+ pollIntervalMs: 30, // ~5 polls within the window
368
+ onWaitStart: (holder, attempted) => calls.push({ cmd: holder.command, attempted }),
369
+ })).toThrowError(OperationLockedError);
370
+ expect(calls).toHaveLength(1);
371
+ expect(calls[0]).toEqual({ cmd: "rescue", attempted: "sync" });
430
372
  });
431
373
  it("a waiter acquires the lock the moment the holder releases (async poll path)", async () => {
432
- const holder = spawnLongLivedProcess();
433
- try {
434
- const p = lockPathFor(rootA);
435
- // A foreign LIVE holder (a spawned process) initially owns the lock.
436
- writeLock(p, { pid: holder.pid, command: "rescue" });
437
- // Simulate the holder finishing ~80ms in by removing its lock file.
438
- const release = setTimeout(() => fs.rmSync(p, { force: true }), 80);
439
- let releaseLock;
440
- try {
441
- const start = Date.now();
442
- const h = await acquireOperationLockAsync(rootA, "sync", {
443
- pollIntervalMs: 20,
444
- onWaitStart: () => { },
445
- });
446
- releaseLock = h.release;
447
- const elapsed = Date.now() - start;
448
- // We waited for the release, then took it over.
449
- expect(elapsed).toBeGreaterThanOrEqual(60);
450
- const info = JSON.parse(fs.readFileSync(h.path, "utf8"));
451
- expect(info.pid).toBe(process.pid);
452
- expect(info.command).toBe("sync");
453
- }
454
- finally {
455
- clearTimeout(release);
456
- releaseLock?.();
457
- }
458
- }
459
- finally {
460
- await stopLongLivedProcess(holder.child);
461
- }
374
+ const p = lockPathFor(rootA);
375
+ // A foreign LIVE holder (pid 1) initially owns the lock.
376
+ writeLock(p, { pid: 1, command: "rescue" });
377
+ // Simulate the holder finishing ~80ms in by removing its lock file.
378
+ const release = setTimeout(() => fs.rmSync(p, { force: true }), 80);
379
+ const start = Date.now();
380
+ const h = await acquireOperationLockAsync(rootA, "sync", {
381
+ pollIntervalMs: 20,
382
+ onWaitStart: () => { },
383
+ });
384
+ clearTimeout(release);
385
+ const elapsed = Date.now() - start;
386
+ // We waited for the release, then took it over.
387
+ expect(elapsed).toBeGreaterThanOrEqual(60);
388
+ const info = JSON.parse(fs.readFileSync(h.path, "utf8"));
389
+ expect(info.pid).toBe(process.pid);
390
+ expect(info.command).toBe("sync");
391
+ h.release();
462
392
  });
463
393
  it("a waiting rescue gets the next release before continuous watch passes", async () => {
464
394
  // Model an active watch pass, then keep scheduling another short watch pass
@@ -549,38 +479,25 @@ describe("operation-lock", () => {
549
479
  handle.release();
550
480
  });
551
481
  it("multiple foreign holders in a row: each release lets the next waiter in (no FIFO guarantee)", async () => {
552
- const holder = spawnLongLivedProcess();
553
- try {
554
- // The mutex is CROSS-PROCESS: it keys liveness on the holder's PID. Two
555
- // waiters in the SAME process share a pid, so the same-process reclaim path
556
- // would let them stomp each other — that scenario is unsupported by design.
557
- // Here we model the real case: a sequence of FOREIGN holders (a spawned process) that
558
- // each release, with a single waiter acquiring the instant the lock frees.
559
- // Order among multiple distinct-process waiters is whoever wins the next
560
- // O_EXCL race after a free — best-effort, NOT FIFO (documented).
561
- const p = lockPathFor(rootA);
562
- writeLock(p, { pid: holder.pid, command: "sync" });
563
- // Free it shortly; the waiter should grab it right after.
564
- const release = setTimeout(() => fs.rmSync(p, { force: true }), 50);
565
- let releaseLock;
566
- try {
567
- const h = await acquireOperationLockAsync(rootA, "reindex", {
568
- pollIntervalMs: 15,
569
- onWaitStart: () => { },
570
- });
571
- releaseLock = h.release;
572
- const info = JSON.parse(fs.readFileSync(h.path, "utf8"));
573
- expect(info.command).toBe("reindex");
574
- expect(info.pid).toBe(process.pid);
575
- }
576
- finally {
577
- clearTimeout(release);
578
- releaseLock?.();
579
- }
580
- }
581
- finally {
582
- await stopLongLivedProcess(holder.child);
583
- }
482
+ // The mutex is CROSS-PROCESS: it keys liveness on the holder's PID. Two
483
+ // waiters in the SAME process share a pid, so the same-process reclaim path
484
+ // would let them stomp each other — that scenario is unsupported by design.
485
+ // Here we model the real case: a sequence of FOREIGN holders (pid 1) that
486
+ // each release, with a single waiter acquiring the instant the lock frees.
487
+ // Order among multiple distinct-process waiters is whoever wins the next
488
+ // O_EXCL race after a free — best-effort, NOT FIFO (documented).
489
+ const p = lockPathFor(rootA);
490
+ writeLock(p, { pid: 1, command: "sync" });
491
+ // Free it shortly; the waiter should grab it right after.
492
+ setTimeout(() => fs.rmSync(p, { force: true }), 50);
493
+ const h = await acquireOperationLockAsync(rootA, "reindex", {
494
+ pollIntervalMs: 15,
495
+ onWaitStart: () => { },
496
+ });
497
+ const info = JSON.parse(fs.readFileSync(h.path, "utf8"));
498
+ expect(info.command).toBe("reindex");
499
+ expect(info.pid).toBe(process.pid);
500
+ h.release();
584
501
  });
585
502
  it("reclaims a stale lock whose holder PID is dead (takeover, never waits)", () => {
586
503
  const stale = deadPid();
@@ -640,25 +557,19 @@ describe("operation-lock", () => {
640
557
  a.release();
641
558
  b.release();
642
559
  });
643
- it("the same root is mutually exclusive across different commands", async () => {
644
- const holder = spawnLongLivedProcess();
645
- try {
646
- // A live sync in ANOTHER process holds the root (a spawned process holds it).
647
- const p = lockPathFor(rootA);
648
- writeLock(p, { pid: holder.pid, command: "sync" });
649
- // Neither rescue nor reindex may acquire while that sync holds it
650
- // (wait:false → assert the refusal without hanging on the new wait default).
651
- expect(() => acquireOperationLock(rootA, "rescue", { wait: false })).toThrowError(OperationLockedError);
652
- expect(() => acquireOperationLock(rootA, "reindex", { wait: false })).toThrowError(OperationLockedError);
653
- // Once that sync finishes (its lock is gone), the next command acquires.
654
- fs.unlinkSync(p);
655
- const h2 = acquireOperationLock(rootA, "reindex");
656
- expect(fs.existsSync(h2.path)).toBe(true);
657
- h2.release();
658
- }
659
- finally {
660
- await stopLongLivedProcess(holder.child);
661
- }
560
+ it("the same root is mutually exclusive across different commands", () => {
561
+ // A live sync in ANOTHER process holds the root (pid 1 stands in for it).
562
+ const p = lockPathFor(rootA);
563
+ writeLock(p, { pid: 1, command: "sync" });
564
+ // Neither rescue nor reindex may acquire while that sync holds it
565
+ // (wait:false → assert the refusal without hanging on the new wait default).
566
+ expect(() => acquireOperationLock(rootA, "rescue", { wait: false })).toThrowError(OperationLockedError);
567
+ expect(() => acquireOperationLock(rootA, "reindex", { wait: false })).toThrowError(OperationLockedError);
568
+ // Once that sync finishes (its lock is gone), the next command acquires.
569
+ fs.unlinkSync(p);
570
+ const h2 = acquireOperationLock(rootA, "reindex");
571
+ expect(fs.existsSync(h2.path)).toBe(true);
572
+ h2.release();
662
573
  });
663
574
  it("withOperationLockSync releases even when the body throws", () => {
664
575
  const p = lockPathFor(rootA);
@@ -1 +1 @@
1
- {"version":3,"file":"operation-lock.test.js","sourceRoot":"","sources":["../src/operation-lock.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operation-lock.test.js","sourceRoot":"","sources":["../src/operation-lock.test.ts"],"names":[],"mappings":"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"}
@@ -51,4 +51,37 @@ export declare function createSyncProgressRecorder(opts: SyncProgressRecorderOpt
51
51
  * (or whose `pid` is dead) as idle.
52
52
  */
53
53
  export declare function readSyncProgress(): SyncProgressSnapshot | null;
54
+ /**
55
+ * End-of-pass record for a host app that does not read the runner's stdout
56
+ * (the desktop app when `hq daemon` runs sync). A `--watch` runner writes it
57
+ * once per pass, when `all-complete` is emitted, so the host can run its
58
+ * per-pass work (journal, conflict and plan-limit notices, git mirror, recent
59
+ * changes) from the file. It is separate from the live snapshot above so the
60
+ * next pass cannot overwrite a finished pass before the host reads it.
61
+ */
62
+ export declare function syncLastPassPath(): string;
63
+ /** Per-file progress events kept per pass; the rest are counted, not stored. */
64
+ export declare const PASS_SUMMARY_MAX_PROGRESS = 200;
65
+ /** One runner protocol event, as printed on stdout. */
66
+ export type PassEvent = {
67
+ type: string;
68
+ } & Record<string, unknown>;
69
+ export interface SyncLastPass {
70
+ schema: 1;
71
+ pid: number;
72
+ /** Unique per pass, so a host handles each pass once. */
73
+ passId: string;
74
+ completedAt: string;
75
+ /** Progress events past PASS_SUMMARY_MAX_PROGRESS that were left out. */
76
+ droppedProgress: number;
77
+ /** The pass's events a host acts on, in the order they were emitted; the last is `all-complete`. */
78
+ events: PassEvent[];
79
+ }
80
+ export interface PassSummaryRecorder {
81
+ /** Feed every event the runner emits; writes the record on `all-complete`. */
82
+ record(event: PassEvent): void;
83
+ }
84
+ export declare function createPassSummaryRecorder(): PassSummaryRecorder;
85
+ /** The last finished `--watch` pass, or null if none was recorded or it is unreadable. */
86
+ export declare function readSyncLastPass(): SyncLastPass | null;
54
87
  //# sourceMappingURL=sync-progress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-progress.d.ts","sourceRoot":"","sources":["../src/sync-progress.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOvD,uFAAuF;AACvF,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,CAAC,CAAC;IACV,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,uFAAuF;IACvF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,8EAA8E;IAC9E,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClF,kEAAkE;IAClE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC/E,gFAAgF;IAChF,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iEAAiE;IACjE,OAAO,IAAI,IAAI,CAAC;CACjB;AAYD;;;;;GAKG;AACH,wBAAgB,4BAA4B,IAAI,sBAAsB,CA0FrE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,2BAA2B,GAChC,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CA+DpC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,oBAAoB,GAAG,IAAI,CAQ9D"}
1
+ {"version":3,"file":"sync-progress.d.ts","sourceRoot":"","sources":["../src/sync-progress.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOvD,uFAAuF;AACvF,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,CAAC,CAAC;IACV,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,uFAAuF;IACvF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,8EAA8E;IAC9E,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClF,kEAAkE;IAClE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC/E,gFAAgF;IAChF,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iEAAiE;IACjE,OAAO,IAAI,IAAI,CAAC;CACjB;AAYD;;;;;GAKG;AACH,wBAAgB,4BAA4B,IAAI,sBAAsB,CA0FrE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,2BAA2B,GAChC,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CA+DpC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,oBAAoB,GAAG,IAAI,CAQ9D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,gFAAgF;AAChF,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,uDAAuD;AACvD,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,CAAC,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,eAAe,EAAE,MAAM,CAAC;IACxB,oGAAoG;IACpG,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAaD,MAAM,WAAW,mBAAmB;IAClC,8EAA8E;IAC9E,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CAChC;AAED,wBAAgB,yBAAyB,IAAI,mBAAmB,CA6C/D;AAED,0FAA0F;AAC1F,wBAAgB,gBAAgB,IAAI,YAAY,GAAG,IAAI,CAOtD"}