scoutline 0.19.7 → 0.20.0

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 (38) hide show
  1. package/dist/command-invocation.d.ts.map +1 -1
  2. package/dist/command-invocation.js +5 -0
  3. package/dist/command-invocation.js.map +1 -1
  4. package/dist/commands/archive.d.ts +111 -0
  5. package/dist/commands/archive.d.ts.map +1 -0
  6. package/dist/commands/archive.js +426 -0
  7. package/dist/commands/archive.js.map +1 -0
  8. package/dist/commands/doctor.d.ts +8 -0
  9. package/dist/commands/doctor.d.ts.map +1 -1
  10. package/dist/commands/doctor.js +39 -4
  11. package/dist/commands/doctor.js.map +1 -1
  12. package/dist/commands/fetch.d.ts +75 -0
  13. package/dist/commands/fetch.d.ts.map +1 -0
  14. package/dist/commands/fetch.js +592 -0
  15. package/dist/commands/fetch.js.map +1 -0
  16. package/dist/commands/read.d.ts.map +1 -1
  17. package/dist/commands/read.js +14 -0
  18. package/dist/commands/read.js.map +1 -1
  19. package/dist/index.d.ts +2 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +92 -7
  22. package/dist/index.js.map +1 -1
  23. package/dist/lib/artifacts.d.ts +5 -1
  24. package/dist/lib/artifacts.d.ts.map +1 -1
  25. package/dist/lib/artifacts.js +7 -2
  26. package/dist/lib/artifacts.js.map +1 -1
  27. package/dist/lib/async-file-lock.d.ts +2 -2
  28. package/dist/lib/async-file-lock.d.ts.map +1 -1
  29. package/dist/lib/async-file-lock.js +7 -4
  30. package/dist/lib/async-file-lock.js.map +1 -1
  31. package/dist/lib/pdf.d.ts +22 -0
  32. package/dist/lib/pdf.d.ts.map +1 -0
  33. package/dist/lib/pdf.js +1213 -0
  34. package/dist/lib/pdf.js.map +1 -0
  35. package/dist/lib/tty.d.ts.map +1 -1
  36. package/dist/lib/tty.js +10 -1
  37. package/dist/lib/tty.js.map +1 -1
  38. package/package.json +1 -1
@@ -94,8 +94,8 @@ export async function breakStaleLock(lockPath, statted) {
94
94
  * Serialize a critical section via an exclusive lockfile.
95
95
  *
96
96
  * Creates `{stateDir}/{identityHash}.lock` with `wx` (exclusive create).
97
- * If the lock is held, polls every 500ms until acquired or `timeoutMs`
98
- * elapses. A lock older than `staleMs` is broken (unlinked) and retried —
97
+ * If the lock is held, retries with jittered exponential backoff until acquired or
98
+ * `timeoutMs` elapses. A lock older than `staleMs` is broken (unlinked) and retried —
99
99
  * but only when its mtime is genuinely stale: while `fn()` runs, the
100
100
  * holder refreshes the lock mtime (issue #46/#48a), so a live holder is
101
101
  * never displaced no matter how long the critical section takes.
@@ -150,6 +150,7 @@ export async function withAsyncFileLock(stateDir, identityHash, fn, options) {
150
150
  }, ms);
151
151
  signal.addEventListener("abort", onAbort, { once: true });
152
152
  });
153
+ let attempt = 0;
153
154
  for (;;) {
154
155
  if (signal?.aborted)
155
156
  throw lockAborted();
@@ -189,8 +190,10 @@ export async function withAsyncFileLock(stateDir, identityHash, fn, options) {
189
190
  await sleep(500);
190
191
  continue;
191
192
  }
192
- await sleep(500);
193
- // Re-check deadline after sleeping — the 500ms sleep may have
193
+ attempt++;
194
+ const backoffMs = Math.min(500, Math.floor(50 * Math.pow(1.3, Math.min(attempt, 8)) + Math.random() * 50));
195
+ await sleep(backoffMs);
196
+ // Re-check deadline after sleeping — the sleep may have
194
197
  // crossed it, and the next open attempt bypasses the check above.
195
198
  if (Date.now() > deadline) {
196
199
  throw lockDeadline();
@@ -1 +1 @@
1
- {"version":3,"file":"async-file-lock.js","sourceRoot":"","sources":["../../src/lib/async-file-lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"async-file-lock.js","sourceRoot":"","sources":["../../src/lib/async-file-lock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * PDF text extraction and structural repair module (ADR-0006).
3
+ *
4
+ * Hybrid architecture:
5
+ * 1. Opportunistic system delegation to `pdftotext` and `qpdf` when installed.
6
+ * 2. Self-contained pure-Node fallback using zlib stream inflation and
7
+ * PDF text operator extraction (BT/ET, Tj, TJ, Td, hex strings) so Scoutline
8
+ * runs without mandatory system dependencies.
9
+ */
10
+ /**
11
+ * Check whether a buffer begins with a valid PDF header (%PDF-).
12
+ */
13
+ export declare function isPdfBuffer(buffer: Buffer): boolean;
14
+ /**
15
+ * Extract text from a PDF buffer using opportunistic delegation or pure-Node fallback.
16
+ */
17
+ export declare function extractPdfText(buffer: Buffer, timeoutMs?: number): Promise<string>;
18
+ /**
19
+ * Attempt structural repair on damaged PDFs (e.g. broken xref table).
20
+ */
21
+ export declare function repairPdf(buffer: Buffer, timeoutMs?: number): Promise<Buffer>;
22
+ //# sourceMappingURL=pdf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../../src/lib/pdf.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAInD;AAi9BD;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBtF;AAuDD;;GAEG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA6JjF"}