@indigoai-us/hq-cloud 6.18.44-alpha.9 → 6.18.44

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 (1068) hide show
  1. package/dist/bin/sync-runner-planning.d.ts +12 -0
  2. package/dist/bin/sync-runner-planning.d.ts.map +1 -1
  3. package/dist/bin/sync-runner-planning.js +18 -0
  4. package/dist/bin/sync-runner-planning.js.map +1 -1
  5. package/dist/bin/sync-runner-watch-loop.d.ts +18 -0
  6. package/dist/bin/sync-runner-watch-loop.d.ts.map +1 -1
  7. package/dist/bin/sync-runner-watch-loop.js +75 -6
  8. package/dist/bin/sync-runner-watch-loop.js.map +1 -1
  9. package/dist/bin/sync-runner.d.ts +22 -1
  10. package/dist/bin/sync-runner.d.ts.map +1 -1
  11. package/dist/bin/sync-runner.js +33 -4
  12. package/dist/bin/sync-runner.js.map +1 -1
  13. package/dist/cli/conflict.d.ts.map +1 -1
  14. package/dist/cli/conflict.js +2 -1
  15. package/dist/cli/conflict.js.map +1 -1
  16. package/dist/cli/rescue-core.d.ts +6 -0
  17. package/dist/cli/rescue-core.d.ts.map +1 -1
  18. package/dist/cli/rescue-core.js +10 -1
  19. package/dist/cli/rescue-core.js.map +1 -1
  20. package/dist/cli/rescue-windows-test-harness.d.ts +19 -0
  21. package/dist/cli/rescue-windows-test-harness.d.ts.map +1 -0
  22. package/dist/cli/rescue-windows-test-harness.js +443 -0
  23. package/dist/cli/rescue-windows-test-harness.js.map +1 -0
  24. package/dist/company-resolver.d.ts +22 -0
  25. package/dist/company-resolver.d.ts.map +1 -1
  26. package/dist/company-resolver.js +1 -1
  27. package/dist/company-resolver.js.map +1 -1
  28. package/dist/ignore.d.ts +4 -1
  29. package/dist/ignore.d.ts.map +1 -1
  30. package/dist/ignore.js +10 -12
  31. package/dist/ignore.js.map +1 -1
  32. package/dist/journal-snapshot-decoder.js +15 -2
  33. package/dist/journal-snapshot-decoder.js.map +1 -1
  34. package/dist/sync/durable-apply.d.ts +2 -0
  35. package/dist/sync/durable-apply.d.ts.map +1 -1
  36. package/dist/sync/durable-apply.js +9 -12
  37. package/dist/sync/durable-apply.js.map +1 -1
  38. package/dist/sync/fsync-compat.d.ts +13 -0
  39. package/dist/sync/fsync-compat.d.ts.map +1 -0
  40. package/dist/sync/fsync-compat.js +33 -0
  41. package/dist/sync/fsync-compat.js.map +1 -0
  42. package/dist/sync/multipart-uploader.d.ts.map +1 -1
  43. package/dist/sync/multipart-uploader.js +2 -1
  44. package/dist/sync/multipart-uploader.js.map +1 -1
  45. package/dist/sync/scope-inventory-client.d.ts.map +1 -1
  46. package/dist/sync/scope-inventory-client.js +7 -2
  47. package/dist/sync/scope-inventory-client.js.map +1 -1
  48. package/dist/telemetry.d.ts +31 -0
  49. package/dist/telemetry.d.ts.map +1 -1
  50. package/dist/telemetry.js +177 -17
  51. package/dist/telemetry.js.map +1 -1
  52. package/dist/usage-company-fallback.d.ts +104 -0
  53. package/dist/usage-company-fallback.d.ts.map +1 -0
  54. package/dist/usage-company-fallback.js +599 -0
  55. package/dist/usage-company-fallback.js.map +1 -0
  56. package/dist/watch-owner-lease.d.ts +3 -0
  57. package/dist/watch-owner-lease.d.ts.map +1 -1
  58. package/dist/watch-owner-lease.js +14 -3
  59. package/dist/watch-owner-lease.js.map +1 -1
  60. package/package.json +2 -2
  61. package/dist/active-company.test.d.ts +0 -2
  62. package/dist/active-company.test.d.ts.map +0 -1
  63. package/dist/active-company.test.js +0 -149
  64. package/dist/active-company.test.js.map +0 -1
  65. package/dist/agent-codex-instructions.test.d.ts +0 -2
  66. package/dist/agent-codex-instructions.test.d.ts.map +0 -1
  67. package/dist/agent-codex-instructions.test.js +0 -271
  68. package/dist/agent-codex-instructions.test.js.map +0 -1
  69. package/dist/backup-prune.test.d.ts +0 -2
  70. package/dist/backup-prune.test.d.ts.map +0 -1
  71. package/dist/backup-prune.test.js +0 -154
  72. package/dist/backup-prune.test.js.map +0 -1
  73. package/dist/bandwidth.test.d.ts +0 -2
  74. package/dist/bandwidth.test.d.ts.map +0 -1
  75. package/dist/bandwidth.test.js +0 -342
  76. package/dist/bandwidth.test.js.map +0 -1
  77. package/dist/best-effort-error.test.d.ts +0 -2
  78. package/dist/best-effort-error.test.d.ts.map +0 -1
  79. package/dist/best-effort-error.test.js +0 -54
  80. package/dist/best-effort-error.test.js.map +0 -1
  81. package/dist/bin/area-ledger-migration.test.d.ts +0 -2
  82. package/dist/bin/area-ledger-migration.test.d.ts.map +0 -1
  83. package/dist/bin/area-ledger-migration.test.js +0 -410
  84. package/dist/bin/area-ledger-migration.test.js.map +0 -1
  85. package/dist/bin/backup-prune-runner.test.d.ts +0 -2
  86. package/dist/bin/backup-prune-runner.test.d.ts.map +0 -1
  87. package/dist/bin/backup-prune-runner.test.js +0 -22
  88. package/dist/bin/backup-prune-runner.test.js.map +0 -1
  89. package/dist/bin/journal-repair.test.d.ts +0 -2
  90. package/dist/bin/journal-repair.test.d.ts.map +0 -1
  91. package/dist/bin/journal-repair.test.js +0 -53
  92. package/dist/bin/journal-repair.test.js.map +0 -1
  93. package/dist/bin/layout-compatibility.test.d.ts +0 -2
  94. package/dist/bin/layout-compatibility.test.d.ts.map +0 -1
  95. package/dist/bin/layout-compatibility.test.js +0 -87
  96. package/dist/bin/layout-compatibility.test.js.map +0 -1
  97. package/dist/bin/outpost-heartbeat.test.d.ts +0 -7
  98. package/dist/bin/outpost-heartbeat.test.d.ts.map +0 -1
  99. package/dist/bin/outpost-heartbeat.test.js +0 -84
  100. package/dist/bin/outpost-heartbeat.test.js.map +0 -1
  101. package/dist/bin/outpost-session-host.test.d.ts +0 -7
  102. package/dist/bin/outpost-session-host.test.d.ts.map +0 -1
  103. package/dist/bin/outpost-session-host.test.js +0 -52
  104. package/dist/bin/outpost-session-host.test.js.map +0 -1
  105. package/dist/bin/sync-mutation.test.d.ts +0 -2
  106. package/dist/bin/sync-mutation.test.d.ts.map +0 -1
  107. package/dist/bin/sync-mutation.test.js +0 -64
  108. package/dist/bin/sync-mutation.test.js.map +0 -1
  109. package/dist/bin/sync-runner-args.test.d.ts +0 -2
  110. package/dist/bin/sync-runner-args.test.d.ts.map +0 -1
  111. package/dist/bin/sync-runner-args.test.js +0 -82
  112. package/dist/bin/sync-runner-args.test.js.map +0 -1
  113. package/dist/bin/sync-runner-auth-wait.test.d.ts +0 -2
  114. package/dist/bin/sync-runner-auth-wait.test.d.ts.map +0 -1
  115. package/dist/bin/sync-runner-auth-wait.test.js +0 -406
  116. package/dist/bin/sync-runner-auth-wait.test.js.map +0 -1
  117. package/dist/bin/sync-runner-backoff.regression.test.d.ts +0 -29
  118. package/dist/bin/sync-runner-backoff.regression.test.d.ts.map +0 -1
  119. package/dist/bin/sync-runner-backoff.regression.test.js +0 -224
  120. package/dist/bin/sync-runner-backoff.regression.test.js.map +0 -1
  121. package/dist/bin/sync-runner-company.test.d.ts +0 -2
  122. package/dist/bin/sync-runner-company.test.d.ts.map +0 -1
  123. package/dist/bin/sync-runner-company.test.js +0 -2439
  124. package/dist/bin/sync-runner-company.test.js.map +0 -1
  125. package/dist/bin/sync-runner-delete-snapshot-mixed.bench.test.d.ts +0 -2
  126. package/dist/bin/sync-runner-delete-snapshot-mixed.bench.test.d.ts.map +0 -1
  127. package/dist/bin/sync-runner-delete-snapshot-mixed.bench.test.js +0 -648
  128. package/dist/bin/sync-runner-delete-snapshot-mixed.bench.test.js.map +0 -1
  129. package/dist/bin/sync-runner-delete-snapshot.bench.test.d.ts +0 -2
  130. package/dist/bin/sync-runner-delete-snapshot.bench.test.d.ts.map +0 -1
  131. package/dist/bin/sync-runner-delete-snapshot.bench.test.js +0 -329
  132. package/dist/bin/sync-runner-delete-snapshot.bench.test.js.map +0 -1
  133. package/dist/bin/sync-runner-events.test.d.ts +0 -2
  134. package/dist/bin/sync-runner-events.test.d.ts.map +0 -1
  135. package/dist/bin/sync-runner-events.test.js +0 -364
  136. package/dist/bin/sync-runner-events.test.js.map +0 -1
  137. package/dist/bin/sync-runner-heap-telemetry.test.d.ts +0 -2
  138. package/dist/bin/sync-runner-heap-telemetry.test.d.ts.map +0 -1
  139. package/dist/bin/sync-runner-heap-telemetry.test.js +0 -1966
  140. package/dist/bin/sync-runner-heap-telemetry.test.js.map +0 -1
  141. package/dist/bin/sync-runner-manifest.test.d.ts +0 -12
  142. package/dist/bin/sync-runner-manifest.test.d.ts.map +0 -1
  143. package/dist/bin/sync-runner-manifest.test.js +0 -921
  144. package/dist/bin/sync-runner-manifest.test.js.map +0 -1
  145. package/dist/bin/sync-runner-planning.test.d.ts +0 -2
  146. package/dist/bin/sync-runner-planning.test.d.ts.map +0 -1
  147. package/dist/bin/sync-runner-planning.test.js +0 -448
  148. package/dist/bin/sync-runner-planning.test.js.map +0 -1
  149. package/dist/bin/sync-runner-post-sync-flags.test.d.ts +0 -2
  150. package/dist/bin/sync-runner-post-sync-flags.test.d.ts.map +0 -1
  151. package/dist/bin/sync-runner-post-sync-flags.test.js +0 -64
  152. package/dist/bin/sync-runner-post-sync-flags.test.js.map +0 -1
  153. package/dist/bin/sync-runner-publish-expansion.test.d.ts +0 -2
  154. package/dist/bin/sync-runner-publish-expansion.test.d.ts.map +0 -1
  155. package/dist/bin/sync-runner-publish-expansion.test.js +0 -54
  156. package/dist/bin/sync-runner-publish-expansion.test.js.map +0 -1
  157. package/dist/bin/sync-runner-receiver-unresolved-company.test.d.ts +0 -2
  158. package/dist/bin/sync-runner-receiver-unresolved-company.test.d.ts.map +0 -1
  159. package/dist/bin/sync-runner-receiver-unresolved-company.test.js +0 -379
  160. package/dist/bin/sync-runner-receiver-unresolved-company.test.js.map +0 -1
  161. package/dist/bin/sync-runner-rollup.test.d.ts +0 -2
  162. package/dist/bin/sync-runner-rollup.test.d.ts.map +0 -1
  163. package/dist/bin/sync-runner-rollup.test.js +0 -24
  164. package/dist/bin/sync-runner-rollup.test.js.map +0 -1
  165. package/dist/bin/sync-runner-watch-loop.test.d.ts +0 -2
  166. package/dist/bin/sync-runner-watch-loop.test.d.ts.map +0 -1
  167. package/dist/bin/sync-runner-watch-loop.test.js +0 -734
  168. package/dist/bin/sync-runner-watch-loop.test.js.map +0 -1
  169. package/dist/bin/sync-runner-watch-routes.test.d.ts +0 -2
  170. package/dist/bin/sync-runner-watch-routes.test.d.ts.map +0 -1
  171. package/dist/bin/sync-runner-watch-routes.test.js +0 -181
  172. package/dist/bin/sync-runner-watch-routes.test.js.map +0 -1
  173. package/dist/bin/sync-runner.test.d.ts +0 -10
  174. package/dist/bin/sync-runner.test.d.ts.map +0 -1
  175. package/dist/bin/sync-runner.test.js +0 -18984
  176. package/dist/bin/sync-runner.test.js.map +0 -1
  177. package/dist/cli/case-alias.test.d.ts +0 -2
  178. package/dist/cli/case-alias.test.d.ts.map +0 -1
  179. package/dist/cli/case-alias.test.js +0 -96
  180. package/dist/cli/case-alias.test.js.map +0 -1
  181. package/dist/cli/conflict-recovery.test.d.ts +0 -2
  182. package/dist/cli/conflict-recovery.test.d.ts.map +0 -1
  183. package/dist/cli/conflict-recovery.test.js +0 -201
  184. package/dist/cli/conflict-recovery.test.js.map +0 -1
  185. package/dist/cli/conflict-winner.test.d.ts +0 -7
  186. package/dist/cli/conflict-winner.test.d.ts.map +0 -1
  187. package/dist/cli/conflict-winner.test.js +0 -98
  188. package/dist/cli/conflict-winner.test.js.map +0 -1
  189. package/dist/cli/doctor.test.d.ts +0 -13
  190. package/dist/cli/doctor.test.d.ts.map +0 -1
  191. package/dist/cli/doctor.test.js +0 -607
  192. package/dist/cli/doctor.test.js.map +0 -1
  193. package/dist/cli/invite.test.d.ts +0 -5
  194. package/dist/cli/invite.test.d.ts.map +0 -1
  195. package/dist/cli/invite.test.js +0 -178
  196. package/dist/cli/invite.test.js.map +0 -1
  197. package/dist/cli/onepass-pull-planner-regressions.test.d.ts +0 -2
  198. package/dist/cli/onepass-pull-planner-regressions.test.d.ts.map +0 -1
  199. package/dist/cli/onepass-pull-planner-regressions.test.js +0 -300
  200. package/dist/cli/onepass-pull-planner-regressions.test.js.map +0 -1
  201. package/dist/cli/onepass-pull-planner.test.d.ts +0 -2
  202. package/dist/cli/onepass-pull-planner.test.d.ts.map +0 -1
  203. package/dist/cli/onepass-pull-planner.test.js +0 -266
  204. package/dist/cli/onepass-pull-planner.test.js.map +0 -1
  205. package/dist/cli/push-scan-exclusions.test.d.ts +0 -2
  206. package/dist/cli/push-scan-exclusions.test.d.ts.map +0 -1
  207. package/dist/cli/push-scan-exclusions.test.js +0 -99
  208. package/dist/cli/push-scan-exclusions.test.js.map +0 -1
  209. package/dist/cli/reindex-knowledge.test.d.ts +0 -12
  210. package/dist/cli/reindex-knowledge.test.d.ts.map +0 -1
  211. package/dist/cli/reindex-knowledge.test.js +0 -260
  212. package/dist/cli/reindex-knowledge.test.js.map +0 -1
  213. package/dist/cli/reindex.test.d.ts +0 -11
  214. package/dist/cli/reindex.test.d.ts.map +0 -1
  215. package/dist/cli/reindex.test.js +0 -811
  216. package/dist/cli/reindex.test.js.map +0 -1
  217. package/dist/cli/rescue-breaker.test.d.ts +0 -2
  218. package/dist/cli/rescue-breaker.test.d.ts.map +0 -1
  219. package/dist/cli/rescue-breaker.test.js +0 -812
  220. package/dist/cli/rescue-breaker.test.js.map +0 -1
  221. package/dist/cli/rescue-classify-ordering.test.d.ts +0 -2
  222. package/dist/cli/rescue-classify-ordering.test.d.ts.map +0 -1
  223. package/dist/cli/rescue-classify-ordering.test.js +0 -500
  224. package/dist/cli/rescue-classify-ordering.test.js.map +0 -1
  225. package/dist/cli/rescue-clone-diagnostics.test.d.ts +0 -2
  226. package/dist/cli/rescue-clone-diagnostics.test.d.ts.map +0 -1
  227. package/dist/cli/rescue-clone-diagnostics.test.js +0 -101
  228. package/dist/cli/rescue-clone-diagnostics.test.js.map +0 -1
  229. package/dist/cli/rescue-clone-network-retry.test.d.ts +0 -2
  230. package/dist/cli/rescue-clone-network-retry.test.d.ts.map +0 -1
  231. package/dist/cli/rescue-clone-network-retry.test.js +0 -415
  232. package/dist/cli/rescue-clone-network-retry.test.js.map +0 -1
  233. package/dist/cli/rescue-core-stamp.test.d.ts +0 -2
  234. package/dist/cli/rescue-core-stamp.test.d.ts.map +0 -1
  235. package/dist/cli/rescue-core-stamp.test.js +0 -364
  236. package/dist/cli/rescue-core-stamp.test.js.map +0 -1
  237. package/dist/cli/rescue-drift-reconcile.test.d.ts +0 -2
  238. package/dist/cli/rescue-drift-reconcile.test.d.ts.map +0 -1
  239. package/dist/cli/rescue-drift-reconcile.test.js +0 -162
  240. package/dist/cli/rescue-drift-reconcile.test.js.map +0 -1
  241. package/dist/cli/rescue-drop-dir-symlink.test.d.ts +0 -2
  242. package/dist/cli/rescue-drop-dir-symlink.test.d.ts.map +0 -1
  243. package/dist/cli/rescue-drop-dir-symlink.test.js +0 -255
  244. package/dist/cli/rescue-drop-dir-symlink.test.js.map +0 -1
  245. package/dist/cli/rescue-exec-bit-preserve.test.d.ts +0 -2
  246. package/dist/cli/rescue-exec-bit-preserve.test.d.ts.map +0 -1
  247. package/dist/cli/rescue-exec-bit-preserve.test.js +0 -177
  248. package/dist/cli/rescue-exec-bit-preserve.test.js.map +0 -1
  249. package/dist/cli/rescue-hq-root-guard.test.d.ts +0 -2
  250. package/dist/cli/rescue-hq-root-guard.test.d.ts.map +0 -1
  251. package/dist/cli/rescue-hq-root-guard.test.js +0 -210
  252. package/dist/cli/rescue-hq-root-guard.test.js.map +0 -1
  253. package/dist/cli/rescue-journal-reconcile.test.d.ts +0 -2
  254. package/dist/cli/rescue-journal-reconcile.test.d.ts.map +0 -1
  255. package/dist/cli/rescue-journal-reconcile.test.js +0 -186
  256. package/dist/cli/rescue-journal-reconcile.test.js.map +0 -1
  257. package/dist/cli/rescue-keep-local-ignore.test.d.ts +0 -2
  258. package/dist/cli/rescue-keep-local-ignore.test.d.ts.map +0 -1
  259. package/dist/cli/rescue-keep-local-ignore.test.js +0 -315
  260. package/dist/cli/rescue-keep-local-ignore.test.js.map +0 -1
  261. package/dist/cli/rescue-move.test.d.ts +0 -2
  262. package/dist/cli/rescue-move.test.d.ts.map +0 -1
  263. package/dist/cli/rescue-move.test.js +0 -166
  264. package/dist/cli/rescue-move.test.js.map +0 -1
  265. package/dist/cli/rescue-mtime-preserve.test.d.ts +0 -2
  266. package/dist/cli/rescue-mtime-preserve.test.d.ts.map +0 -1
  267. package/dist/cli/rescue-mtime-preserve.test.js +0 -186
  268. package/dist/cli/rescue-mtime-preserve.test.js.map +0 -1
  269. package/dist/cli/rescue-preserve-copy-symlink.test.d.ts +0 -2
  270. package/dist/cli/rescue-preserve-copy-symlink.test.d.ts.map +0 -1
  271. package/dist/cli/rescue-preserve-copy-symlink.test.js +0 -483
  272. package/dist/cli/rescue-preserve-copy-symlink.test.js.map +0 -1
  273. package/dist/cli/rescue-realpath.test.d.ts +0 -2
  274. package/dist/cli/rescue-realpath.test.d.ts.map +0 -1
  275. package/dist/cli/rescue-realpath.test.js +0 -109
  276. package/dist/cli/rescue-realpath.test.js.map +0 -1
  277. package/dist/cli/rescue-restore-flag.test.d.ts +0 -2
  278. package/dist/cli/rescue-restore-flag.test.d.ts.map +0 -1
  279. package/dist/cli/rescue-restore-flag.test.js +0 -82
  280. package/dist/cli/rescue-restore-flag.test.js.map +0 -1
  281. package/dist/cli/rescue-rsync-preflight.test.d.ts +0 -2
  282. package/dist/cli/rescue-rsync-preflight.test.d.ts.map +0 -1
  283. package/dist/cli/rescue-rsync-preflight.test.js +0 -579
  284. package/dist/cli/rescue-rsync-preflight.test.js.map +0 -1
  285. package/dist/cli/rescue-rsync-status.test.d.ts +0 -2
  286. package/dist/cli/rescue-rsync-status.test.d.ts.map +0 -1
  287. package/dist/cli/rescue-rsync-status.test.js +0 -406
  288. package/dist/cli/rescue-rsync-status.test.js.map +0 -1
  289. package/dist/cli/rescue-settings-reconcile.test.d.ts +0 -2
  290. package/dist/cli/rescue-settings-reconcile.test.d.ts.map +0 -1
  291. package/dist/cli/rescue-settings-reconcile.test.js +0 -610
  292. package/dist/cli/rescue-settings-reconcile.test.js.map +0 -1
  293. package/dist/cli/rescue-snapshot-copy.test.d.ts +0 -2
  294. package/dist/cli/rescue-snapshot-copy.test.d.ts.map +0 -1
  295. package/dist/cli/rescue-snapshot-copy.test.js +0 -790
  296. package/dist/cli/rescue-snapshot-copy.test.js.map +0 -1
  297. package/dist/cli/rescue-snapshot-recovery.test.d.ts +0 -2
  298. package/dist/cli/rescue-snapshot-recovery.test.d.ts.map +0 -1
  299. package/dist/cli/rescue-snapshot-recovery.test.js +0 -265
  300. package/dist/cli/rescue-snapshot-recovery.test.js.map +0 -1
  301. package/dist/cli/rescue-snapshot.test.d.ts +0 -2
  302. package/dist/cli/rescue-snapshot.test.d.ts.map +0 -1
  303. package/dist/cli/rescue-snapshot.test.js +0 -46
  304. package/dist/cli/rescue-snapshot.test.js.map +0 -1
  305. package/dist/cli/rescue-source-switch-floor.test.d.ts +0 -2
  306. package/dist/cli/rescue-source-switch-floor.test.d.ts.map +0 -1
  307. package/dist/cli/rescue-source-switch-floor.test.js +0 -247
  308. package/dist/cli/rescue-source-switch-floor.test.js.map +0 -1
  309. package/dist/cli/rescue-unchanged-delete.test.d.ts +0 -2
  310. package/dist/cli/rescue-unchanged-delete.test.d.ts.map +0 -1
  311. package/dist/cli/rescue-unchanged-delete.test.js +0 -305
  312. package/dist/cli/rescue-unchanged-delete.test.js.map +0 -1
  313. package/dist/cli/rescue.reindex.test.d.ts +0 -2
  314. package/dist/cli/rescue.reindex.test.d.ts.map +0 -1
  315. package/dist/cli/rescue.reindex.test.js +0 -72
  316. package/dist/cli/rescue.reindex.test.js.map +0 -1
  317. package/dist/cli/rescue.test.d.ts +0 -2
  318. package/dist/cli/rescue.test.d.ts.map +0 -1
  319. package/dist/cli/rescue.test.js +0 -127
  320. package/dist/cli/rescue.test.js.map +0 -1
  321. package/dist/cli/share-plan-limit-presign.test.d.ts +0 -2
  322. package/dist/cli/share-plan-limit-presign.test.d.ts.map +0 -1
  323. package/dist/cli/share-plan-limit-presign.test.js +0 -271
  324. package/dist/cli/share-plan-limit-presign.test.js.map +0 -1
  325. package/dist/cli/share-presign-transport.test.d.ts +0 -22
  326. package/dist/cli/share-presign-transport.test.d.ts.map +0 -1
  327. package/dist/cli/share-presign-transport.test.js +0 -388
  328. package/dist/cli/share-presign-transport.test.js.map +0 -1
  329. package/dist/cli/share.test.d.ts +0 -5
  330. package/dist/cli/share.test.d.ts.map +0 -1
  331. package/dist/cli/share.test.js +0 -12335
  332. package/dist/cli/share.test.js.map +0 -1
  333. package/dist/cli/streaming-pull-planner.bench.test.d.ts +0 -15
  334. package/dist/cli/streaming-pull-planner.bench.test.d.ts.map +0 -1
  335. package/dist/cli/streaming-pull-planner.bench.test.js +0 -273
  336. package/dist/cli/streaming-pull-planner.bench.test.js.map +0 -1
  337. package/dist/cli/sync-scope.test.d.ts +0 -22
  338. package/dist/cli/sync-scope.test.d.ts.map +0 -1
  339. package/dist/cli/sync-scope.test.js +0 -903
  340. package/dist/cli/sync-scope.test.js.map +0 -1
  341. package/dist/cli/sync.test.d.ts +0 -5
  342. package/dist/cli/sync.test.d.ts.map +0 -1
  343. package/dist/cli/sync.test.js +0 -9028
  344. package/dist/cli/sync.test.js.map +0 -1
  345. package/dist/cli/tombstones.test.d.ts +0 -2
  346. package/dist/cli/tombstones.test.d.ts.map +0 -1
  347. package/dist/cli/tombstones.test.js +0 -120
  348. package/dist/cli/tombstones.test.js.map +0 -1
  349. package/dist/cli/watch-event-push-conflict.test.d.ts +0 -25
  350. package/dist/cli/watch-event-push-conflict.test.d.ts.map +0 -1
  351. package/dist/cli/watch-event-push-conflict.test.js +0 -230
  352. package/dist/cli/watch-event-push-conflict.test.js.map +0 -1
  353. package/dist/client-info.test.d.ts +0 -11
  354. package/dist/client-info.test.d.ts.map +0 -1
  355. package/dist/client-info.test.js +0 -168
  356. package/dist/client-info.test.js.map +0 -1
  357. package/dist/cognito-auth-lock-no-hard-links.test.d.ts +0 -11
  358. package/dist/cognito-auth-lock-no-hard-links.test.d.ts.map +0 -1
  359. package/dist/cognito-auth-lock-no-hard-links.test.js +0 -76
  360. package/dist/cognito-auth-lock-no-hard-links.test.js.map +0 -1
  361. package/dist/cognito-auth.test.d.ts +0 -9
  362. package/dist/cognito-auth.test.d.ts.map +0 -1
  363. package/dist/cognito-auth.test.js +0 -745
  364. package/dist/cognito-auth.test.js.map +0 -1
  365. package/dist/company-resolver.test.d.ts +0 -7
  366. package/dist/company-resolver.test.d.ts.map +0 -1
  367. package/dist/company-resolver.test.js +0 -533
  368. package/dist/company-resolver.test.js.map +0 -1
  369. package/dist/company-slug.test.d.ts +0 -7
  370. package/dist/company-slug.test.d.ts.map +0 -1
  371. package/dist/company-slug.test.js +0 -43
  372. package/dist/company-slug.test.js.map +0 -1
  373. package/dist/company-vault-transport.test.d.ts +0 -12
  374. package/dist/company-vault-transport.test.d.ts.map +0 -1
  375. package/dist/company-vault-transport.test.js +0 -97
  376. package/dist/company-vault-transport.test.js.map +0 -1
  377. package/dist/context.test.d.ts +0 -7
  378. package/dist/context.test.d.ts.map +0 -1
  379. package/dist/context.test.js +0 -646
  380. package/dist/context.test.js.map +0 -1
  381. package/dist/entity-resolver.test.d.ts +0 -10
  382. package/dist/entity-resolver.test.d.ts.map +0 -1
  383. package/dist/entity-resolver.test.js +0 -244
  384. package/dist/entity-resolver.test.js.map +0 -1
  385. package/dist/getindigo-dead-refs-contract.test.d.ts +0 -2
  386. package/dist/getindigo-dead-refs-contract.test.d.ts.map +0 -1
  387. package/dist/getindigo-dead-refs-contract.test.js +0 -58
  388. package/dist/getindigo-dead-refs-contract.test.js.map +0 -1
  389. package/dist/hermetic-test-env.test.d.ts +0 -2
  390. package/dist/hermetic-test-env.test.d.ts.map +0 -1
  391. package/dist/hermetic-test-env.test.js +0 -61
  392. package/dist/hermetic-test-env.test.js.map +0 -1
  393. package/dist/hq-root-recovery.test.d.ts +0 -2
  394. package/dist/hq-root-recovery.test.d.ts.map +0 -1
  395. package/dist/hq-root-recovery.test.js +0 -65
  396. package/dist/hq-root-recovery.test.js.map +0 -1
  397. package/dist/ignore.test.d.ts +0 -10
  398. package/dist/ignore.test.d.ts.map +0 -1
  399. package/dist/ignore.test.js +0 -926
  400. package/dist/ignore.test.js.map +0 -1
  401. package/dist/index.test.d.ts +0 -2
  402. package/dist/index.test.d.ts.map +0 -1
  403. package/dist/index.test.js +0 -26
  404. package/dist/index.test.js.map +0 -1
  405. package/dist/journal-area-ledger-read-boundary.test.d.ts +0 -2
  406. package/dist/journal-area-ledger-read-boundary.test.d.ts.map +0 -1
  407. package/dist/journal-area-ledger-read-boundary.test.js +0 -420
  408. package/dist/journal-area-ledger-read-boundary.test.js.map +0 -1
  409. package/dist/journal-baseline.test.d.ts +0 -2
  410. package/dist/journal-baseline.test.d.ts.map +0 -1
  411. package/dist/journal-baseline.test.js +0 -218
  412. package/dist/journal-baseline.test.js.map +0 -1
  413. package/dist/journal-decode-window.test.d.ts +0 -2
  414. package/dist/journal-decode-window.test.d.ts.map +0 -1
  415. package/dist/journal-decode-window.test.js +0 -99
  416. package/dist/journal-decode-window.test.js.map +0 -1
  417. package/dist/journal-delta-writes.test.d.ts +0 -2
  418. package/dist/journal-delta-writes.test.d.ts.map +0 -1
  419. package/dist/journal-delta-writes.test.js +0 -159
  420. package/dist/journal-delta-writes.test.js.map +0 -1
  421. package/dist/journal-ledger-index.test.d.ts +0 -15
  422. package/dist/journal-ledger-index.test.d.ts.map +0 -1
  423. package/dist/journal-ledger-index.test.js +0 -269
  424. package/dist/journal-ledger-index.test.js.map +0 -1
  425. package/dist/journal-public-boundary.test.d.ts +0 -2
  426. package/dist/journal-public-boundary.test.d.ts.map +0 -1
  427. package/dist/journal-public-boundary.test.js +0 -216
  428. package/dist/journal-public-boundary.test.js.map +0 -1
  429. package/dist/journal-row-store.test.d.ts +0 -2
  430. package/dist/journal-row-store.test.d.ts.map +0 -1
  431. package/dist/journal-row-store.test.js +0 -729
  432. package/dist/journal-row-store.test.js.map +0 -1
  433. package/dist/journal-snapshot-memory-helpers.d.ts +0 -33
  434. package/dist/journal-snapshot-memory-helpers.d.ts.map +0 -1
  435. package/dist/journal-snapshot-memory-helpers.js +0 -212
  436. package/dist/journal-snapshot-memory-helpers.js.map +0 -1
  437. package/dist/journal-snapshot-memory.test.d.ts +0 -2
  438. package/dist/journal-snapshot-memory.test.d.ts.map +0 -1
  439. package/dist/journal-snapshot-memory.test.js +0 -47
  440. package/dist/journal-snapshot-memory.test.js.map +0 -1
  441. package/dist/journal-snapshot-v4-memory.test.d.ts +0 -2
  442. package/dist/journal-snapshot-v4-memory.test.d.ts.map +0 -1
  443. package/dist/journal-snapshot-v4-memory.test.js +0 -24
  444. package/dist/journal-snapshot-v4-memory.test.js.map +0 -1
  445. package/dist/journal-snapshot-v4-writer-memory.test.d.ts +0 -2
  446. package/dist/journal-snapshot-v4-writer-memory.test.d.ts.map +0 -1
  447. package/dist/journal-snapshot-v4-writer-memory.test.js +0 -76
  448. package/dist/journal-snapshot-v4-writer-memory.test.js.map +0 -1
  449. package/dist/journal-snapshot-v4-writer.test.d.ts +0 -2
  450. package/dist/journal-snapshot-v4-writer.test.d.ts.map +0 -1
  451. package/dist/journal-snapshot-v4-writer.test.js +0 -282
  452. package/dist/journal-snapshot-v4-writer.test.js.map +0 -1
  453. package/dist/journal-snapshot-v4.test.d.ts +0 -2
  454. package/dist/journal-snapshot-v4.test.d.ts.map +0 -1
  455. package/dist/journal-snapshot-v4.test.js +0 -281
  456. package/dist/journal-snapshot-v4.test.js.map +0 -1
  457. package/dist/journal-store.test.d.ts +0 -2
  458. package/dist/journal-store.test.d.ts.map +0 -1
  459. package/dist/journal-store.test.js +0 -1227
  460. package/dist/journal-store.test.js.map +0 -1
  461. package/dist/journal-streaming.heap.test.d.ts +0 -2
  462. package/dist/journal-streaming.heap.test.d.ts.map +0 -1
  463. package/dist/journal-streaming.heap.test.js +0 -190
  464. package/dist/journal-streaming.heap.test.js.map +0 -1
  465. package/dist/journal.test.d.ts +0 -9
  466. package/dist/journal.test.d.ts.map +0 -1
  467. package/dist/journal.test.js +0 -1074
  468. package/dist/journal.test.js.map +0 -1
  469. package/dist/kms10-etag-safe-pull.test.d.ts +0 -2
  470. package/dist/kms10-etag-safe-pull.test.d.ts.map +0 -1
  471. package/dist/kms10-etag-safe-pull.test.js +0 -53
  472. package/dist/kms10-etag-safe-pull.test.js.map +0 -1
  473. package/dist/lib/cloud-authoritative.test.d.ts +0 -2
  474. package/dist/lib/cloud-authoritative.test.d.ts.map +0 -1
  475. package/dist/lib/cloud-authoritative.test.js +0 -42
  476. package/dist/lib/cloud-authoritative.test.js.map +0 -1
  477. package/dist/lib/conflict-reconcile.test.d.ts +0 -7
  478. package/dist/lib/conflict-reconcile.test.d.ts.map +0 -1
  479. package/dist/lib/conflict-reconcile.test.js +0 -246
  480. package/dist/lib/conflict-reconcile.test.js.map +0 -1
  481. package/dist/lib/conflict.test.d.ts +0 -9
  482. package/dist/lib/conflict.test.d.ts.map +0 -1
  483. package/dist/lib/conflict.test.js +0 -340
  484. package/dist/lib/conflict.test.js.map +0 -1
  485. package/dist/lib/describe-error.test.d.ts +0 -2
  486. package/dist/lib/describe-error.test.d.ts.map +0 -1
  487. package/dist/lib/describe-error.test.js +0 -148
  488. package/dist/lib/describe-error.test.js.map +0 -1
  489. package/dist/lib/machine-id.test.d.ts +0 -8
  490. package/dist/lib/machine-id.test.d.ts.map +0 -1
  491. package/dist/lib/machine-id.test.js +0 -228
  492. package/dist/lib/machine-id.test.js.map +0 -1
  493. package/dist/lib/net-errors.test.d.ts +0 -2
  494. package/dist/lib/net-errors.test.d.ts.map +0 -1
  495. package/dist/lib/net-errors.test.js +0 -111
  496. package/dist/lib/net-errors.test.js.map +0 -1
  497. package/dist/lib/ontology-entity-meta.test.d.ts +0 -2
  498. package/dist/lib/ontology-entity-meta.test.d.ts.map +0 -1
  499. package/dist/lib/ontology-entity-meta.test.js +0 -79
  500. package/dist/lib/ontology-entity-meta.test.js.map +0 -1
  501. package/dist/lib/ontology-entity-push.test.d.ts +0 -2
  502. package/dist/lib/ontology-entity-push.test.d.ts.map +0 -1
  503. package/dist/lib/ontology-entity-push.test.js +0 -156
  504. package/dist/lib/ontology-entity-push.test.js.map +0 -1
  505. package/dist/lib/personal-connector-settings-sync.test.d.ts +0 -2
  506. package/dist/lib/personal-connector-settings-sync.test.d.ts.map +0 -1
  507. package/dist/lib/personal-connector-settings-sync.test.js +0 -34
  508. package/dist/lib/personal-connector-settings-sync.test.js.map +0 -1
  509. package/dist/lib/readlink-safe.test.d.ts +0 -2
  510. package/dist/lib/readlink-safe.test.d.ts.map +0 -1
  511. package/dist/lib/readlink-safe.test.js +0 -34
  512. package/dist/lib/readlink-safe.test.js.map +0 -1
  513. package/dist/lib/s3-content-checksum.test.d.ts +0 -2
  514. package/dist/lib/s3-content-checksum.test.d.ts.map +0 -1
  515. package/dist/lib/s3-content-checksum.test.js +0 -26
  516. package/dist/lib/s3-content-checksum.test.js.map +0 -1
  517. package/dist/lib/skill-register-landed-bytes.test.d.ts +0 -2
  518. package/dist/lib/skill-register-landed-bytes.test.d.ts.map +0 -1
  519. package/dist/lib/skill-register-landed-bytes.test.js +0 -83
  520. package/dist/lib/skill-register-landed-bytes.test.js.map +0 -1
  521. package/dist/local-path-codec.test.d.ts +0 -14
  522. package/dist/local-path-codec.test.d.ts.map +0 -1
  523. package/dist/local-path-codec.test.js +0 -122
  524. package/dist/local-path-codec.test.js.map +0 -1
  525. package/dist/machine-auth.test.d.ts +0 -14
  526. package/dist/machine-auth.test.d.ts.map +0 -1
  527. package/dist/machine-auth.test.js +0 -1492
  528. package/dist/machine-auth.test.js.map +0 -1
  529. package/dist/machine-token-cache-isolation.test.d.ts +0 -24
  530. package/dist/machine-token-cache-isolation.test.d.ts.map +0 -1
  531. package/dist/machine-token-cache-isolation.test.js +0 -284
  532. package/dist/machine-token-cache-isolation.test.js.map +0 -1
  533. package/dist/manifest/US-002.acceptance.test.d.ts +0 -11
  534. package/dist/manifest/US-002.acceptance.test.d.ts.map +0 -1
  535. package/dist/manifest/US-002.acceptance.test.js +0 -160
  536. package/dist/manifest/US-002.acceptance.test.js.map +0 -1
  537. package/dist/manifest/US-004.acceptance.test.d.ts +0 -12
  538. package/dist/manifest/US-004.acceptance.test.d.ts.map +0 -1
  539. package/dist/manifest/US-004.acceptance.test.js +0 -173
  540. package/dist/manifest/US-004.acceptance.test.js.map +0 -1
  541. package/dist/manifest/build-manifest-resident-parity.test.d.ts +0 -2
  542. package/dist/manifest/build-manifest-resident-parity.test.d.ts.map +0 -1
  543. package/dist/manifest/build-manifest-resident-parity.test.js +0 -69
  544. package/dist/manifest/build-manifest-resident-parity.test.js.map +0 -1
  545. package/dist/manifest/build-manifest.bench.test.d.ts +0 -22
  546. package/dist/manifest/build-manifest.bench.test.d.ts.map +0 -1
  547. package/dist/manifest/build-manifest.bench.test.js +0 -930
  548. package/dist/manifest/build-manifest.bench.test.js.map +0 -1
  549. package/dist/manifest/build-manifest.test.d.ts +0 -10
  550. package/dist/manifest/build-manifest.test.d.ts.map +0 -1
  551. package/dist/manifest/build-manifest.test.js +0 -1217
  552. package/dist/manifest/build-manifest.test.js.map +0 -1
  553. package/dist/manifest/contract.test.d.ts +0 -17
  554. package/dist/manifest/contract.test.d.ts.map +0 -1
  555. package/dist/manifest/contract.test.js +0 -346
  556. package/dist/manifest/contract.test.js.map +0 -1
  557. package/dist/manifest/import-graph.test.d.ts +0 -25
  558. package/dist/manifest/import-graph.test.d.ts.map +0 -1
  559. package/dist/manifest/import-graph.test.js +0 -120
  560. package/dist/manifest/import-graph.test.js.map +0 -1
  561. package/dist/manifest/ledger-shard-isolation.test.d.ts +0 -18
  562. package/dist/manifest/ledger-shard-isolation.test.d.ts.map +0 -1
  563. package/dist/manifest/ledger-shard-isolation.test.js +0 -153
  564. package/dist/manifest/ledger-shard-isolation.test.js.map +0 -1
  565. package/dist/manifest/snapshot-store.test.d.ts +0 -11
  566. package/dist/manifest/snapshot-store.test.d.ts.map +0 -1
  567. package/dist/manifest/snapshot-store.test.js +0 -206
  568. package/dist/manifest/snapshot-store.test.js.map +0 -1
  569. package/dist/manifest/upload-manifest.test.d.ts +0 -10
  570. package/dist/manifest/upload-manifest.test.d.ts.map +0 -1
  571. package/dist/manifest/upload-manifest.test.js +0 -1335
  572. package/dist/manifest/upload-manifest.test.js.map +0 -1
  573. package/dist/manifest-reconcile.test.d.ts +0 -2
  574. package/dist/manifest-reconcile.test.d.ts.map +0 -1
  575. package/dist/manifest-reconcile.test.js +0 -1029
  576. package/dist/manifest-reconcile.test.js.map +0 -1
  577. package/dist/object-io.test.d.ts +0 -11
  578. package/dist/object-io.test.d.ts.map +0 -1
  579. package/dist/object-io.test.js +0 -2376
  580. package/dist/object-io.test.js.map +0 -1
  581. package/dist/operation-lock.test.d.ts +0 -5
  582. package/dist/operation-lock.test.d.ts.map +0 -1
  583. package/dist/operation-lock.test.js +0 -796
  584. package/dist/operation-lock.test.js.map +0 -1
  585. package/dist/outcome-telemetry.test.d.ts +0 -9
  586. package/dist/outcome-telemetry.test.d.ts.map +0 -1
  587. package/dist/outcome-telemetry.test.js +0 -663
  588. package/dist/outcome-telemetry.test.js.map +0 -1
  589. package/dist/outposts/client.test.d.ts +0 -9
  590. package/dist/outposts/client.test.d.ts.map +0 -1
  591. package/dist/outposts/client.test.js +0 -415
  592. package/dist/outposts/client.test.js.map +0 -1
  593. package/dist/outposts/command.test.d.ts +0 -18
  594. package/dist/outposts/command.test.d.ts.map +0 -1
  595. package/dist/outposts/command.test.js +0 -1230
  596. package/dist/outposts/command.test.js.map +0 -1
  597. package/dist/outposts/replica-sync.test.d.ts +0 -2
  598. package/dist/outposts/replica-sync.test.d.ts.map +0 -1
  599. package/dist/outposts/replica-sync.test.js +0 -224
  600. package/dist/outposts/replica-sync.test.js.map +0 -1
  601. package/dist/outposts/self-deploy.test.d.ts +0 -2
  602. package/dist/outposts/self-deploy.test.d.ts.map +0 -1
  603. package/dist/outposts/self-deploy.test.js +0 -218
  604. package/dist/outposts/self-deploy.test.js.map +0 -1
  605. package/dist/outposts/session-heartbeat-bounds.test.d.ts +0 -25
  606. package/dist/outposts/session-heartbeat-bounds.test.d.ts.map +0 -1
  607. package/dist/outposts/session-heartbeat-bounds.test.js +0 -156
  608. package/dist/outposts/session-heartbeat-bounds.test.js.map +0 -1
  609. package/dist/outposts/session-heartbeat-guard.test.d.ts +0 -16
  610. package/dist/outposts/session-heartbeat-guard.test.d.ts.map +0 -1
  611. package/dist/outposts/session-heartbeat-guard.test.js +0 -88
  612. package/dist/outposts/session-heartbeat-guard.test.js.map +0 -1
  613. package/dist/outposts/session-heartbeat-publisher.test.d.ts +0 -10
  614. package/dist/outposts/session-heartbeat-publisher.test.d.ts.map +0 -1
  615. package/dist/outposts/session-heartbeat-publisher.test.js +0 -153
  616. package/dist/outposts/session-heartbeat-publisher.test.js.map +0 -1
  617. package/dist/outposts/session-heartbeat-retain-guard.test.d.ts +0 -18
  618. package/dist/outposts/session-heartbeat-retain-guard.test.d.ts.map +0 -1
  619. package/dist/outposts/session-heartbeat-retain-guard.test.js +0 -106
  620. package/dist/outposts/session-heartbeat-retain-guard.test.js.map +0 -1
  621. package/dist/outposts/session-heartbeat-scan.test.d.ts +0 -20
  622. package/dist/outposts/session-heartbeat-scan.test.d.ts.map +0 -1
  623. package/dist/outposts/session-heartbeat-scan.test.js +0 -241
  624. package/dist/outposts/session-heartbeat-scan.test.js.map +0 -1
  625. package/dist/outposts/session-heartbeat.test.d.ts +0 -11
  626. package/dist/outposts/session-heartbeat.test.d.ts.map +0 -1
  627. package/dist/outposts/session-heartbeat.test.js +0 -370
  628. package/dist/outposts/session-heartbeat.test.js.map +0 -1
  629. package/dist/outposts/session-host-auth.test.d.ts +0 -16
  630. package/dist/outposts/session-host-auth.test.d.ts.map +0 -1
  631. package/dist/outposts/session-host-auth.test.js +0 -284
  632. package/dist/outposts/session-host-auth.test.js.map +0 -1
  633. package/dist/outposts/session-host-command.test.d.ts +0 -10
  634. package/dist/outposts/session-host-command.test.d.ts.map +0 -1
  635. package/dist/outposts/session-host-command.test.js +0 -180
  636. package/dist/outposts/session-host-command.test.js.map +0 -1
  637. package/dist/outposts/session-host-connection.test.d.ts +0 -18
  638. package/dist/outposts/session-host-connection.test.d.ts.map +0 -1
  639. package/dist/outposts/session-host-connection.test.js +0 -392
  640. package/dist/outposts/session-host-connection.test.js.map +0 -1
  641. package/dist/outposts/session-host-fakes.d.ts +0 -61
  642. package/dist/outposts/session-host-fakes.d.ts.map +0 -1
  643. package/dist/outposts/session-host-fakes.js +0 -115
  644. package/dist/outposts/session-host-fakes.js.map +0 -1
  645. package/dist/outposts/session-host-ndjson.test.d.ts +0 -11
  646. package/dist/outposts/session-host-ndjson.test.d.ts.map +0 -1
  647. package/dist/outposts/session-host-ndjson.test.js +0 -73
  648. package/dist/outposts/session-host-ndjson.test.js.map +0 -1
  649. package/dist/outposts/session-host-protocol.test.d.ts +0 -15
  650. package/dist/outposts/session-host-protocol.test.d.ts.map +0 -1
  651. package/dist/outposts/session-host-protocol.test.js +0 -0
  652. package/dist/outposts/session-host-protocol.test.js.map +0 -1
  653. package/dist/outposts/session-host-server.test.d.ts +0 -10
  654. package/dist/outposts/session-host-server.test.d.ts.map +0 -1
  655. package/dist/outposts/session-host-server.test.js +0 -118
  656. package/dist/outposts/session-host-server.test.js.map +0 -1
  657. package/dist/outposts/session-host-sessions.test.d.ts +0 -18
  658. package/dist/outposts/session-host-sessions.test.d.ts.map +0 -1
  659. package/dist/outposts/session-host-sessions.test.js +0 -439
  660. package/dist/outposts/session-host-sessions.test.js.map +0 -1
  661. package/dist/outposts/terminal.test.d.ts +0 -2
  662. package/dist/outposts/terminal.test.d.ts.map +0 -1
  663. package/dist/outposts/terminal.test.js +0 -146
  664. package/dist/outposts/terminal.test.js.map +0 -1
  665. package/dist/outposts/transport.test.d.ts +0 -10
  666. package/dist/outposts/transport.test.d.ts.map +0 -1
  667. package/dist/outposts/transport.test.js +0 -205
  668. package/dist/outposts/transport.test.js.map +0 -1
  669. package/dist/packed-journal-phase2.test.d.ts +0 -2
  670. package/dist/packed-journal-phase2.test.d.ts.map +0 -1
  671. package/dist/packed-journal-phase2.test.js +0 -273
  672. package/dist/packed-journal-phase2.test.js.map +0 -1
  673. package/dist/path-ancestors.test.d.ts +0 -2
  674. package/dist/path-ancestors.test.d.ts.map +0 -1
  675. package/dist/path-ancestors.test.js +0 -21
  676. package/dist/path-ancestors.test.js.map +0 -1
  677. package/dist/personal-vault-exclusions.test.d.ts +0 -22
  678. package/dist/personal-vault-exclusions.test.d.ts.map +0 -1
  679. package/dist/personal-vault-exclusions.test.js +0 -294
  680. package/dist/personal-vault-exclusions.test.js.map +0 -1
  681. package/dist/personal-vault.test.d.ts +0 -18
  682. package/dist/personal-vault.test.d.ts.map +0 -1
  683. package/dist/personal-vault.test.js +0 -1099
  684. package/dist/personal-vault.test.js.map +0 -1
  685. package/dist/plan-limit-pause.test.d.ts +0 -2
  686. package/dist/plan-limit-pause.test.d.ts.map +0 -1
  687. package/dist/plan-limit-pause.test.js +0 -150
  688. package/dist/plan-limit-pause.test.js.map +0 -1
  689. package/dist/plan-limit.fixtures.d.ts +0 -34
  690. package/dist/plan-limit.fixtures.d.ts.map +0 -1
  691. package/dist/plan-limit.fixtures.js +0 -96
  692. package/dist/plan-limit.fixtures.js.map +0 -1
  693. package/dist/plan-limit.test.d.ts +0 -2
  694. package/dist/plan-limit.test.d.ts.map +0 -1
  695. package/dist/plan-limit.test.js +0 -132
  696. package/dist/plan-limit.test.js.map +0 -1
  697. package/dist/prefix-coalesce.test.d.ts +0 -2
  698. package/dist/prefix-coalesce.test.d.ts.map +0 -1
  699. package/dist/prefix-coalesce.test.js +0 -260
  700. package/dist/prefix-coalesce.test.js.map +0 -1
  701. package/dist/private-folder-transport.test.d.ts +0 -2
  702. package/dist/private-folder-transport.test.d.ts.map +0 -1
  703. package/dist/private-folder-transport.test.js +0 -33
  704. package/dist/private-folder-transport.test.js.map +0 -1
  705. package/dist/public-surface.test.d.ts +0 -15
  706. package/dist/public-surface.test.d.ts.map +0 -1
  707. package/dist/public-surface.test.js +0 -110
  708. package/dist/public-surface.test.js.map +0 -1
  709. package/dist/qmd-reindex.test.d.ts +0 -14
  710. package/dist/qmd-reindex.test.d.ts.map +0 -1
  711. package/dist/qmd-reindex.test.js +0 -899
  712. package/dist/qmd-reindex.test.js.map +0 -1
  713. package/dist/read-only-state-dir.test.d.ts +0 -27
  714. package/dist/read-only-state-dir.test.d.ts.map +0 -1
  715. package/dist/read-only-state-dir.test.js +0 -167
  716. package/dist/read-only-state-dir.test.js.map +0 -1
  717. package/dist/remote-pull.test.d.ts +0 -2
  718. package/dist/remote-pull.test.d.ts.map +0 -1
  719. package/dist/remote-pull.test.js +0 -1147
  720. package/dist/remote-pull.test.js.map +0 -1
  721. package/dist/s3-download-stream-hash.test.d.ts +0 -2
  722. package/dist/s3-download-stream-hash.test.d.ts.map +0 -1
  723. package/dist/s3-download-stream-hash.test.js +0 -70
  724. package/dist/s3-download-stream-hash.test.js.map +0 -1
  725. package/dist/s3.list-cost.test.d.ts +0 -2
  726. package/dist/s3.list-cost.test.d.ts.map +0 -1
  727. package/dist/s3.list-cost.test.js +0 -51
  728. package/dist/s3.list-cost.test.js.map +0 -1
  729. package/dist/s3.rename-retry.test.d.ts +0 -2
  730. package/dist/s3.rename-retry.test.d.ts.map +0 -1
  731. package/dist/s3.rename-retry.test.js +0 -217
  732. package/dist/s3.rename-retry.test.js.map +0 -1
  733. package/dist/s3.symlink-materialize.test.d.ts +0 -18
  734. package/dist/s3.symlink-materialize.test.d.ts.map +0 -1
  735. package/dist/s3.symlink-materialize.test.js +0 -579
  736. package/dist/s3.symlink-materialize.test.js.map +0 -1
  737. package/dist/s3.test.d.ts +0 -9
  738. package/dist/s3.test.d.ts.map +0 -1
  739. package/dist/s3.test.js +0 -2047
  740. package/dist/s3.test.js.map +0 -1
  741. package/dist/s3.windows-portability.test.d.ts +0 -12
  742. package/dist/s3.windows-portability.test.d.ts.map +0 -1
  743. package/dist/s3.windows-portability.test.js +0 -223
  744. package/dist/s3.windows-portability.test.js.map +0 -1
  745. package/dist/schemas/signal-types.test.d.ts +0 -2
  746. package/dist/schemas/signal-types.test.d.ts.map +0 -1
  747. package/dist/schemas/signal-types.test.js +0 -65
  748. package/dist/schemas/signal-types.test.js.map +0 -1
  749. package/dist/schemas/source-channels.test.d.ts +0 -2
  750. package/dist/schemas/source-channels.test.d.ts.map +0 -1
  751. package/dist/schemas/source-channels.test.js +0 -65
  752. package/dist/schemas/source-channels.test.js.map +0 -1
  753. package/dist/scope-shrink.test.d.ts +0 -13
  754. package/dist/scope-shrink.test.d.ts.map +0 -1
  755. package/dist/scope-shrink.test.js +0 -558
  756. package/dist/scope-shrink.test.js.map +0 -1
  757. package/dist/session-log-capture.test.d.ts +0 -2
  758. package/dist/session-log-capture.test.d.ts.map +0 -1
  759. package/dist/session-log-capture.test.js +0 -533
  760. package/dist/session-log-capture.test.js.map +0 -1
  761. package/dist/session-log-retention.test.d.ts +0 -2
  762. package/dist/session-log-retention.test.d.ts.map +0 -1
  763. package/dist/session-log-retention.test.js +0 -383
  764. package/dist/session-log-retention.test.js.map +0 -1
  765. package/dist/signals/get.test.d.ts +0 -5
  766. package/dist/signals/get.test.d.ts.map +0 -1
  767. package/dist/signals/get.test.js +0 -254
  768. package/dist/signals/get.test.js.map +0 -1
  769. package/dist/signals/list.test.d.ts +0 -9
  770. package/dist/signals/list.test.d.ts.map +0 -1
  771. package/dist/signals/list.test.js +0 -330
  772. package/dist/signals/list.test.js.map +0 -1
  773. package/dist/skill-telemetry.test.d.ts +0 -2
  774. package/dist/skill-telemetry.test.d.ts.map +0 -1
  775. package/dist/skill-telemetry.test.js +0 -1484
  776. package/dist/skill-telemetry.test.js.map +0 -1
  777. package/dist/sources/get.test.d.ts +0 -5
  778. package/dist/sources/get.test.d.ts.map +0 -1
  779. package/dist/sources/get.test.js +0 -236
  780. package/dist/sources/get.test.js.map +0 -1
  781. package/dist/sources/list.test.d.ts +0 -8
  782. package/dist/sources/list.test.d.ts.map +0 -1
  783. package/dist/sources/list.test.js +0 -318
  784. package/dist/sources/list.test.js.map +0 -1
  785. package/dist/sts-credential-refresh.test.d.ts +0 -2
  786. package/dist/sts-credential-refresh.test.d.ts.map +0 -1
  787. package/dist/sts-credential-refresh.test.js +0 -181
  788. package/dist/sts-credential-refresh.test.js.map +0 -1
  789. package/dist/swallowed-error-sites.test.d.ts +0 -2
  790. package/dist/swallowed-error-sites.test.d.ts.map +0 -1
  791. package/dist/swallowed-error-sites.test.js +0 -199
  792. package/dist/swallowed-error-sites.test.js.map +0 -1
  793. package/dist/swallowed-error-w32.test.d.ts +0 -2
  794. package/dist/swallowed-error-w32.test.d.ts.map +0 -1
  795. package/dist/swallowed-error-w32.test.js +0 -171
  796. package/dist/swallowed-error-w32.test.js.map +0 -1
  797. package/dist/swallowed-error-w33.test.d.ts +0 -2
  798. package/dist/swallowed-error-w33.test.d.ts.map +0 -1
  799. package/dist/swallowed-error-w33.test.js +0 -125
  800. package/dist/swallowed-error-w33.test.js.map +0 -1
  801. package/dist/swallowed-error-w34.test.d.ts +0 -2
  802. package/dist/swallowed-error-w34.test.d.ts.map +0 -1
  803. package/dist/swallowed-error-w34.test.js +0 -110
  804. package/dist/swallowed-error-w34.test.js.map +0 -1
  805. package/dist/swallowed-error-w35.test.d.ts +0 -2
  806. package/dist/swallowed-error-w35.test.d.ts.map +0 -1
  807. package/dist/swallowed-error-w35.test.js +0 -223
  808. package/dist/swallowed-error-w35.test.js.map +0 -1
  809. package/dist/sync/area-ledger-auto-migration.test.d.ts +0 -2
  810. package/dist/sync/area-ledger-auto-migration.test.d.ts.map +0 -1
  811. package/dist/sync/area-ledger-auto-migration.test.js +0 -291
  812. package/dist/sync/area-ledger-auto-migration.test.js.map +0 -1
  813. package/dist/sync/area-ledger-migration.test.d.ts +0 -2
  814. package/dist/sync/area-ledger-migration.test.d.ts.map +0 -1
  815. package/dist/sync/area-ledger-migration.test.js +0 -554
  816. package/dist/sync/area-ledger-migration.test.js.map +0 -1
  817. package/dist/sync/area-ledger-recovery.bench.test.d.ts +0 -2
  818. package/dist/sync/area-ledger-recovery.bench.test.d.ts.map +0 -1
  819. package/dist/sync/area-ledger-recovery.bench.test.js +0 -60
  820. package/dist/sync/area-ledger-recovery.bench.test.js.map +0 -1
  821. package/dist/sync/area-ledger-writer-lock.bench.test.d.ts +0 -2
  822. package/dist/sync/area-ledger-writer-lock.bench.test.d.ts.map +0 -1
  823. package/dist/sync/area-ledger-writer-lock.bench.test.js +0 -57
  824. package/dist/sync/area-ledger-writer-lock.bench.test.js.map +0 -1
  825. package/dist/sync/area-ledger.test.d.ts +0 -2
  826. package/dist/sync/area-ledger.test.d.ts.map +0 -1
  827. package/dist/sync/area-ledger.test.js +0 -1401
  828. package/dist/sync/area-ledger.test.js.map +0 -1
  829. package/dist/sync/area-resolver.test.d.ts +0 -2
  830. package/dist/sync/area-resolver.test.d.ts.map +0 -1
  831. package/dist/sync/area-resolver.test.js +0 -234
  832. package/dist/sync/area-resolver.test.js.map +0 -1
  833. package/dist/sync/base-version-resolver.test.d.ts +0 -2
  834. package/dist/sync/base-version-resolver.test.d.ts.map +0 -1
  835. package/dist/sync/base-version-resolver.test.js +0 -24
  836. package/dist/sync/base-version-resolver.test.js.map +0 -1
  837. package/dist/sync/candidate-uploader.test.d.ts +0 -2
  838. package/dist/sync/candidate-uploader.test.d.ts.map +0 -1
  839. package/dist/sync/candidate-uploader.test.js +0 -132
  840. package/dist/sync/candidate-uploader.test.js.map +0 -1
  841. package/dist/sync/child-process-sync-worker-env.test.d.ts +0 -2
  842. package/dist/sync/child-process-sync-worker-env.test.d.ts.map +0 -1
  843. package/dist/sync/child-process-sync-worker-env.test.js +0 -38
  844. package/dist/sync/child-process-sync-worker-env.test.js.map +0 -1
  845. package/dist/sync/child-process-sync-worker-errors.test.d.ts +0 -2
  846. package/dist/sync/child-process-sync-worker-errors.test.d.ts.map +0 -1
  847. package/dist/sync/child-process-sync-worker-errors.test.js +0 -121
  848. package/dist/sync/child-process-sync-worker-errors.test.js.map +0 -1
  849. package/dist/sync/child-process-sync-worker.test.d.ts +0 -2
  850. package/dist/sync/child-process-sync-worker.test.d.ts.map +0 -1
  851. package/dist/sync/child-process-sync-worker.test.js +0 -262
  852. package/dist/sync/child-process-sync-worker.test.js.map +0 -1
  853. package/dist/sync/content-hash.test.d.ts +0 -2
  854. package/dist/sync/content-hash.test.d.ts.map +0 -1
  855. package/dist/sync/content-hash.test.js +0 -16
  856. package/dist/sync/content-hash.test.js.map +0 -1
  857. package/dist/sync/delta-client.test.d.ts +0 -2
  858. package/dist/sync/delta-client.test.d.ts.map +0 -1
  859. package/dist/sync/delta-client.test.js +0 -97
  860. package/dist/sync/delta-client.test.js.map +0 -1
  861. package/dist/sync/durable-apply.test.d.ts +0 -2
  862. package/dist/sync/durable-apply.test.d.ts.map +0 -1
  863. package/dist/sync/durable-apply.test.js +0 -180
  864. package/dist/sync/durable-apply.test.js.map +0 -1
  865. package/dist/sync/event-sync.test.d.ts +0 -14
  866. package/dist/sync/event-sync.test.d.ts.map +0 -1
  867. package/dist/sync/event-sync.test.js +0 -1714
  868. package/dist/sync/event-sync.test.js.map +0 -1
  869. package/dist/sync/feature-flags.test.d.ts +0 -24
  870. package/dist/sync/feature-flags.test.d.ts.map +0 -1
  871. package/dist/sync/feature-flags.test.js +0 -594
  872. package/dist/sync/feature-flags.test.js.map +0 -1
  873. package/dist/sync/full-pass-cap-governor.bench.test.d.ts +0 -2
  874. package/dist/sync/full-pass-cap-governor.bench.test.d.ts.map +0 -1
  875. package/dist/sync/full-pass-cap-governor.bench.test.js +0 -179
  876. package/dist/sync/full-pass-cap-governor.bench.test.js.map +0 -1
  877. package/dist/sync/full-pass-caps.test.d.ts +0 -2
  878. package/dist/sync/full-pass-caps.test.d.ts.map +0 -1
  879. package/dist/sync/full-pass-caps.test.js +0 -550
  880. package/dist/sync/full-pass-caps.test.js.map +0 -1
  881. package/dist/sync/idle-full-reconcile.test.d.ts +0 -2
  882. package/dist/sync/idle-full-reconcile.test.d.ts.map +0 -1
  883. package/dist/sync/idle-full-reconcile.test.js +0 -62
  884. package/dist/sync/idle-full-reconcile.test.js.map +0 -1
  885. package/dist/sync/inbound-event-admission.test.d.ts +0 -2
  886. package/dist/sync/inbound-event-admission.test.d.ts.map +0 -1
  887. package/dist/sync/inbound-event-admission.test.js +0 -125
  888. package/dist/sync/inbound-event-admission.test.js.map +0 -1
  889. package/dist/sync/journal-ledger-stream.test.d.ts +0 -12
  890. package/dist/sync/journal-ledger-stream.test.d.ts.map +0 -1
  891. package/dist/sync/journal-ledger-stream.test.js +0 -134
  892. package/dist/sync/journal-ledger-stream.test.js.map +0 -1
  893. package/dist/sync/lease-client.test.d.ts +0 -2
  894. package/dist/sync/lease-client.test.d.ts.map +0 -1
  895. package/dist/sync/lease-client.test.js +0 -119
  896. package/dist/sync/lease-client.test.js.map +0 -1
  897. package/dist/sync/logger.test.d.ts +0 -19
  898. package/dist/sync/logger.test.d.ts.map +0 -1
  899. package/dist/sync/logger.test.js +0 -204
  900. package/dist/sync/logger.test.js.map +0 -1
  901. package/dist/sync/metrics.test.d.ts +0 -19
  902. package/dist/sync/metrics.test.d.ts.map +0 -1
  903. package/dist/sync/metrics.test.js +0 -357
  904. package/dist/sync/metrics.test.js.map +0 -1
  905. package/dist/sync/multipart-uploader.test.d.ts +0 -2
  906. package/dist/sync/multipart-uploader.test.d.ts.map +0 -1
  907. package/dist/sync/multipart-uploader.test.js +0 -135
  908. package/dist/sync/multipart-uploader.test.js.map +0 -1
  909. package/dist/sync/mutation-client.test.d.ts +0 -2
  910. package/dist/sync/mutation-client.test.d.ts.map +0 -1
  911. package/dist/sync/mutation-client.test.js +0 -100
  912. package/dist/sync/mutation-client.test.js.map +0 -1
  913. package/dist/sync/mutation-session.test.d.ts +0 -2
  914. package/dist/sync/mutation-session.test.d.ts.map +0 -1
  915. package/dist/sync/mutation-session.test.js +0 -190
  916. package/dist/sync/mutation-session.test.js.map +0 -1
  917. package/dist/sync/parallel-sync-coordinator.test.d.ts +0 -2
  918. package/dist/sync/parallel-sync-coordinator.test.d.ts.map +0 -1
  919. package/dist/sync/parallel-sync-coordinator.test.js +0 -564
  920. package/dist/sync/parallel-sync-coordinator.test.js.map +0 -1
  921. package/dist/sync/path-leases.test.d.ts +0 -2
  922. package/dist/sync/path-leases.test.d.ts.map +0 -1
  923. package/dist/sync/path-leases.test.js +0 -51
  924. package/dist/sync/path-leases.test.js.map +0 -1
  925. package/dist/sync/per-area-maintenance.test.d.ts +0 -2
  926. package/dist/sync/per-area-maintenance.test.d.ts.map +0 -1
  927. package/dist/sync/per-area-maintenance.test.js +0 -100
  928. package/dist/sync/per-area-maintenance.test.js.map +0 -1
  929. package/dist/sync/push-event.test.d.ts +0 -15
  930. package/dist/sync/push-event.test.d.ts.map +0 -1
  931. package/dist/sync/push-event.test.js +0 -282
  932. package/dist/sync/push-event.test.js.map +0 -1
  933. package/dist/sync/push-receiver.test.d.ts +0 -25
  934. package/dist/sync/push-receiver.test.d.ts.map +0 -1
  935. package/dist/sync/push-receiver.test.js +0 -2851
  936. package/dist/sync/push-receiver.test.js.map +0 -1
  937. package/dist/sync/push-transport.test.d.ts +0 -2
  938. package/dist/sync/push-transport.test.d.ts.map +0 -1
  939. package/dist/sync/push-transport.test.js +0 -70
  940. package/dist/sync/push-transport.test.js.map +0 -1
  941. package/dist/sync/push-walk-matchers.bench.test.d.ts +0 -2
  942. package/dist/sync/push-walk-matchers.bench.test.d.ts.map +0 -1
  943. package/dist/sync/push-walk-matchers.bench.test.js +0 -230
  944. package/dist/sync/push-walk-matchers.bench.test.js.map +0 -1
  945. package/dist/sync/realtime-network-integration.test.d.ts +0 -2
  946. package/dist/sync/realtime-network-integration.test.d.ts.map +0 -1
  947. package/dist/sync/realtime-network-integration.test.js +0 -83
  948. package/dist/sync/realtime-network-integration.test.js.map +0 -1
  949. package/dist/sync/realtime-rollout.test.d.ts +0 -2
  950. package/dist/sync/realtime-rollout.test.d.ts.map +0 -1
  951. package/dist/sync/realtime-rollout.test.js +0 -94
  952. package/dist/sync/realtime-rollout.test.js.map +0 -1
  953. package/dist/sync/realtime-telemetry.test.d.ts +0 -2
  954. package/dist/sync/realtime-telemetry.test.d.ts.map +0 -1
  955. package/dist/sync/realtime-telemetry.test.js +0 -300
  956. package/dist/sync/realtime-telemetry.test.js.map +0 -1
  957. package/dist/sync/receiver-origin-config.test.d.ts +0 -2
  958. package/dist/sync/receiver-origin-config.test.d.ts.map +0 -1
  959. package/dist/sync/receiver-origin-config.test.js +0 -39
  960. package/dist/sync/receiver-origin-config.test.js.map +0 -1
  961. package/dist/sync/reconcile-cursor.test.d.ts +0 -2
  962. package/dist/sync/reconcile-cursor.test.d.ts.map +0 -1
  963. package/dist/sync/reconcile-cursor.test.js +0 -139
  964. package/dist/sync/reconcile-cursor.test.js.map +0 -1
  965. package/dist/sync/remote-file-spool.test.d.ts +0 -2
  966. package/dist/sync/remote-file-spool.test.d.ts.map +0 -1
  967. package/dist/sync/remote-file-spool.test.js +0 -77
  968. package/dist/sync/remote-file-spool.test.js.map +0 -1
  969. package/dist/sync/scope-inventory-client.test.d.ts +0 -2
  970. package/dist/sync/scope-inventory-client.test.d.ts.map +0 -1
  971. package/dist/sync/scope-inventory-client.test.js +0 -103
  972. package/dist/sync/scope-inventory-client.test.js.map +0 -1
  973. package/dist/sync/secret-path-policy.test.d.ts +0 -2
  974. package/dist/sync/secret-path-policy.test.d.ts.map +0 -1
  975. package/dist/sync/secret-path-policy.test.js +0 -183
  976. package/dist/sync/secret-path-policy.test.js.map +0 -1
  977. package/dist/sync/snapshot-client.test.d.ts +0 -2
  978. package/dist/sync/snapshot-client.test.d.ts.map +0 -1
  979. package/dist/sync/snapshot-client.test.js +0 -169
  980. package/dist/sync/snapshot-client.test.js.map +0 -1
  981. package/dist/sync/state-store.test.d.ts +0 -2
  982. package/dist/sync/state-store.test.d.ts.map +0 -1
  983. package/dist/sync/state-store.test.js +0 -1556
  984. package/dist/sync/state-store.test.js.map +0 -1
  985. package/dist/sync/sync-contract.test.d.ts +0 -2
  986. package/dist/sync/sync-contract.test.d.ts.map +0 -1
  987. package/dist/sync/sync-contract.test.js +0 -141
  988. package/dist/sync/sync-contract.test.js.map +0 -1
  989. package/dist/sync/targeted-pull-prefixes.test.d.ts +0 -2
  990. package/dist/sync/targeted-pull-prefixes.test.d.ts.map +0 -1
  991. package/dist/sync/targeted-pull-prefixes.test.js +0 -33
  992. package/dist/sync/targeted-pull-prefixes.test.js.map +0 -1
  993. package/dist/sync/targeted-upsert-exact-list.test.d.ts +0 -2
  994. package/dist/sync/targeted-upsert-exact-list.test.d.ts.map +0 -1
  995. package/dist/sync/targeted-upsert-exact-list.test.js +0 -247
  996. package/dist/sync/targeted-upsert-exact-list.test.js.map +0 -1
  997. package/dist/sync/unchanged-push-events.test.d.ts +0 -2
  998. package/dist/sync/unchanged-push-events.test.d.ts.map +0 -1
  999. package/dist/sync/unchanged-push-events.test.js +0 -76
  1000. package/dist/sync/unchanged-push-events.test.js.map +0 -1
  1001. package/dist/sync/uploader-finalization.test.d.ts +0 -2
  1002. package/dist/sync/uploader-finalization.test.d.ts.map +0 -1
  1003. package/dist/sync/uploader-finalization.test.js +0 -107
  1004. package/dist/sync/uploader-finalization.test.js.map +0 -1
  1005. package/dist/sync-core.test.d.ts +0 -2
  1006. package/dist/sync-core.test.d.ts.map +0 -1
  1007. package/dist/sync-core.test.js +0 -189
  1008. package/dist/sync-core.test.js.map +0 -1
  1009. package/dist/sync-progress.test.d.ts +0 -2
  1010. package/dist/sync-progress.test.d.ts.map +0 -1
  1011. package/dist/sync-progress.test.js +0 -277
  1012. package/dist/sync-progress.test.js.map +0 -1
  1013. package/dist/telemetry-events.test.d.ts +0 -2
  1014. package/dist/telemetry-events.test.d.ts.map +0 -1
  1015. package/dist/telemetry-events.test.js +0 -113
  1016. package/dist/telemetry-events.test.js.map +0 -1
  1017. package/dist/telemetry.test.d.ts +0 -11
  1018. package/dist/telemetry.test.d.ts.map +0 -1
  1019. package/dist/telemetry.test.js +0 -1603
  1020. package/dist/telemetry.test.js.map +0 -1
  1021. package/dist/vault-client.test.d.ts +0 -7
  1022. package/dist/vault-client.test.d.ts.map +0 -1
  1023. package/dist/vault-client.test.js +0 -1334
  1024. package/dist/vault-client.test.js.map +0 -1
  1025. package/dist/watch-coverage.test.d.ts +0 -2
  1026. package/dist/watch-coverage.test.d.ts.map +0 -1
  1027. package/dist/watch-coverage.test.js +0 -56
  1028. package/dist/watch-coverage.test.js.map +0 -1
  1029. package/dist/watch-owner-lease.test.d.ts +0 -2
  1030. package/dist/watch-owner-lease.test.d.ts.map +0 -1
  1031. package/dist/watch-owner-lease.test.js +0 -353
  1032. package/dist/watch-owner-lease.test.js.map +0 -1
  1033. package/dist/watch-parent.test.d.ts +0 -2
  1034. package/dist/watch-parent.test.d.ts.map +0 -1
  1035. package/dist/watch-parent.test.js +0 -131
  1036. package/dist/watch-parent.test.js.map +0 -1
  1037. package/dist/watch-roots.test.d.ts +0 -18
  1038. package/dist/watch-roots.test.d.ts.map +0 -1
  1039. package/dist/watch-roots.test.js +0 -395
  1040. package/dist/watch-roots.test.js.map +0 -1
  1041. package/dist/watcher-continuity-hot-path.test.d.ts +0 -2
  1042. package/dist/watcher-continuity-hot-path.test.d.ts.map +0 -1
  1043. package/dist/watcher-continuity-hot-path.test.js +0 -40
  1044. package/dist/watcher-continuity-hot-path.test.js.map +0 -1
  1045. package/dist/watcher-event-gate.test.d.ts +0 -16
  1046. package/dist/watcher-event-gate.test.d.ts.map +0 -1
  1047. package/dist/watcher-event-gate.test.js +0 -191
  1048. package/dist/watcher-event-gate.test.js.map +0 -1
  1049. package/dist/watcher-replan-sweep.test.d.ts +0 -2
  1050. package/dist/watcher-replan-sweep.test.d.ts.map +0 -1
  1051. package/dist/watcher-replan-sweep.test.js +0 -245
  1052. package/dist/watcher-replan-sweep.test.js.map +0 -1
  1053. package/dist/watcher-stdout.test.d.ts +0 -2
  1054. package/dist/watcher-stdout.test.d.ts.map +0 -1
  1055. package/dist/watcher-stdout.test.js +0 -86
  1056. package/dist/watcher-stdout.test.js.map +0 -1
  1057. package/dist/watcher.test.d.ts +0 -2
  1058. package/dist/watcher.test.d.ts.map +0 -1
  1059. package/dist/watcher.test.js +0 -4301
  1060. package/dist/watcher.test.js.map +0 -1
  1061. package/dist/watcher.warmup-cancel.test.d.ts +0 -2
  1062. package/dist/watcher.warmup-cancel.test.d.ts.map +0 -1
  1063. package/dist/watcher.warmup-cancel.test.js +0 -59
  1064. package/dist/watcher.warmup-cancel.test.js.map +0 -1
  1065. package/dist/watcher.warmup-responsive.test.d.ts +0 -2
  1066. package/dist/watcher.warmup-responsive.test.d.ts.map +0 -1
  1067. package/dist/watcher.warmup-responsive.test.js +0 -62
  1068. package/dist/watcher.warmup-responsive.test.js.map +0 -1
@@ -1,796 +0,0 @@
1
- /**
2
- * Unit tests for the per-HQ-root operation mutex.
3
- */
4
- import { describe, it, expect, beforeEach, afterEach } from "vitest";
5
- import { spawn, spawnSync } from "child_process";
6
- import { once } from "node:events";
7
- import * as fs from "fs";
8
- import * as os from "os";
9
- import * as path from "path";
10
- import { acquireOperationLock, acquireOperationLockAsync, withOperationLock, withOperationLockSync, lockPathFor, rethrowLockCreateError, OperationLockedError, OperationLockUnwritableError, OPERATION_LOCKED_EXIT, OPERATION_LOCK_UNWRITABLE_EXIT, DEFAULT_LOCK_POLL_MS, } from "./operation-lock.js";
11
- /** A PID that is guaranteed dead: spawn a node that exits immediately, reuse its pid. */
12
- function deadPid() {
13
- const r = spawnSync(process.execPath, ["-e", ""], { stdio: "ignore" });
14
- if (!r.pid)
15
- throw new Error("could not spawn to obtain a dead pid");
16
- return r.pid;
17
- }
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
- function writeLock(p, info) {
35
- fs.mkdirSync(path.dirname(p), { recursive: true });
36
- const full = {
37
- pid: process.pid,
38
- command: "sync",
39
- startedAt: new Date(0).toISOString(),
40
- hqRoot: "/x",
41
- ...info,
42
- };
43
- fs.writeFileSync(p, JSON.stringify(full));
44
- }
45
- function spawnGateWorker(root, stateDir, command) {
46
- const moduleUrl = new URL("./operation-lock.ts", import.meta.url).href;
47
- const program = `
48
- import { acquireOperationLock } from ${JSON.stringify(moduleUrl)};
49
- const handle = acquireOperationLock(${JSON.stringify(root)}, ${JSON.stringify(command)}, {
50
- pollIntervalMs: 10,
51
- onWaitStart: () => process.send?.({ kind: "waiting" }),
52
- });
53
- process.send?.({ kind: "acquired", pid: process.pid });
54
- process.on("message", (message) => {
55
- if (message === "release") {
56
- handle.release();
57
- process.exit(0);
58
- }
59
- });
60
- `;
61
- return spawn(process.execPath, ["--experimental-strip-types", "--input-type=module", "-e", program], {
62
- env: { ...process.env, HQ_STATE_DIR: stateDir },
63
- stdio: ["ignore", "ignore", "ignore", "ipc"],
64
- });
65
- }
66
- function nextGateMessage(child, kind) {
67
- return new Promise((resolve, reject) => {
68
- const timeout = setTimeout(() => reject(new Error(`worker did not report ${kind}`)), 5_000);
69
- const onMessage = (message) => {
70
- if (message?.kind !== kind)
71
- return;
72
- clearTimeout(timeout);
73
- child.off("message", onMessage);
74
- child.off("error", onError);
75
- child.off("exit", onExit);
76
- resolve(message);
77
- };
78
- const onError = (error) => {
79
- clearTimeout(timeout);
80
- child.off("message", onMessage);
81
- reject(error);
82
- };
83
- const onExit = (code, signal) => {
84
- clearTimeout(timeout);
85
- child.off("message", onMessage);
86
- reject(new Error(`worker exited before ${kind}: code=${code} signal=${signal}`));
87
- };
88
- child.on("message", onMessage);
89
- child.once("error", onError);
90
- child.once("exit", onExit);
91
- });
92
- }
93
- function releaseGateWorker(child) {
94
- return new Promise((resolve, reject) => {
95
- child.once("error", reject);
96
- child.once("exit", (code) => (code === 0 ? resolve() : reject(new Error(`worker exit ${code}`))));
97
- child.send("release");
98
- });
99
- }
100
- describe("operation-lock", () => {
101
- let stateDir;
102
- let rootA;
103
- let rootB;
104
- beforeEach(() => {
105
- stateDir = fs.mkdtempSync(path.join(os.tmpdir(), "hq-oplock-state-"));
106
- process.env.HQ_STATE_DIR = stateDir;
107
- delete process.env.HQ_DISABLE_OP_LOCK;
108
- delete process.env.HQ_OP_LOCK_TIMEOUT;
109
- rootA = fs.mkdtempSync(path.join(os.tmpdir(), "hq-rootA-"));
110
- rootB = fs.mkdtempSync(path.join(os.tmpdir(), "hq-rootB-"));
111
- });
112
- afterEach(() => {
113
- fs.rmSync(stateDir, { recursive: true, force: true });
114
- fs.rmSync(rootA, { recursive: true, force: true });
115
- fs.rmSync(rootB, { recursive: true, force: true });
116
- delete process.env.HQ_STATE_DIR;
117
- delete process.env.HQ_DISABLE_OP_LOCK;
118
- delete process.env.HQ_OP_LOCK_TIMEOUT;
119
- });
120
- it("the lock path is under the state dir, keyed per canonical root", () => {
121
- const a = lockPathFor(rootA);
122
- const b = lockPathFor(rootB);
123
- expect(a.startsWith(path.join(stateDir, "locks"))).toBe(true);
124
- expect(a).not.toBe(b); // different roots → different lock files
125
- // canonical: a trailing-slash variant maps to the same lock
126
- expect(lockPathFor(rootA + path.sep)).toBe(a);
127
- });
128
- it("scopes partition the lock: same root, different scope → different file, no mutual block", () => {
129
- // feedback_ed98d810: reindex must not be starved by a long-lived sync/watch
130
- // holder. Distinct scopes hash to distinct lock files and never block each
131
- // other, while the same scope stays a real cross-process mutex.
132
- const opPath = lockPathFor(rootA); // default "operation" scope
133
- const reindexPath = lockPathFor(rootA, "reindex");
134
- expect(reindexPath).not.toBe(opPath);
135
- expect(path.basename(reindexPath).startsWith("reindex-")).toBe(true);
136
- expect(path.basename(opPath).startsWith("operation-")).toBe(true);
137
- let opHandle;
138
- let reindexHandle;
139
- try {
140
- // A live "operation" holder (as a watch-mode runner keeps) does NOT block
141
- // a "reindex"-scope acquire, even with no wait.
142
- opHandle = acquireOperationLock(rootA, "sync");
143
- expect(() => {
144
- reindexHandle = acquireOperationLock(rootA, "reindex", {
145
- scope: "reindex",
146
- wait: false,
147
- });
148
- }).not.toThrow();
149
- expect(reindexHandle && fs.existsSync(reindexHandle.path)).toBe(true);
150
- // ...but a second acquire on the SAME "reindex" scope is still refused.
151
- expect(() => acquireOperationLock(rootA, "reindex", { scope: "reindex", wait: false })).toThrowError(OperationLockedError);
152
- }
153
- finally {
154
- reindexHandle?.release();
155
- opHandle?.release();
156
- }
157
- });
158
- it("fast exclusive acquisition excludes regular callers through the same marker", () => {
159
- const fast = acquireOperationLock(rootA, "area-ledger-writer", {
160
- mode: "exclusive",
161
- scope: "area-ledger-writer-test",
162
- timeoutSec: 0,
163
- required: true,
164
- fsync: false,
165
- fastExclusive: true,
166
- });
167
- try {
168
- expect(() => acquireOperationLock(rootA, "area-ledger-writer", {
169
- mode: "exclusive",
170
- scope: "area-ledger-writer-test",
171
- timeoutSec: 0,
172
- required: true,
173
- })).toThrow(OperationLockedError);
174
- }
175
- finally {
176
- fast.release();
177
- }
178
- const regular = acquireOperationLock(rootA, "area-ledger-writer", {
179
- mode: "exclusive",
180
- scope: "area-ledger-writer-test",
181
- timeoutSec: 0,
182
- required: true,
183
- });
184
- try {
185
- expect(() => acquireOperationLock(rootA, "area-ledger-writer", {
186
- mode: "exclusive",
187
- scope: "area-ledger-writer-test",
188
- timeoutSec: 0,
189
- required: true,
190
- fsync: false,
191
- fastExclusive: true,
192
- })).toThrow(OperationLockedError);
193
- }
194
- finally {
195
- regular.release();
196
- }
197
- });
198
- it("fast exclusive marker excludes a foreign process until normal release", async () => {
199
- const scope = "area-ledger-writer-fast-process-test";
200
- const moduleUrl = new URL("./operation-lock.ts", import.meta.url).href;
201
- const program = `
202
- import { acquireOperationLock } from ${JSON.stringify(moduleUrl)};
203
- const handle = acquireOperationLock(${JSON.stringify(rootA)}, "area-ledger-writer", {
204
- mode: "exclusive", scope: ${JSON.stringify(scope)}, timeoutSec: 0,
205
- fsync: false, fastExclusive: true, required: true,
206
- });
207
- process.send?.({ kind: "acquired", pid: process.pid });
208
- process.on("message", (message) => {
209
- if (message === "release") { handle.release(); process.exit(0); }
210
- });
211
- `;
212
- const child = spawn(process.execPath, ["--experimental-strip-types", "--input-type=module", "-e", program], { env: { ...process.env, HQ_STATE_DIR: stateDir }, stdio: ["ignore", "ignore", "ignore", "ipc"] });
213
- try {
214
- await nextGateMessage(child, "acquired");
215
- expect(() => acquireOperationLock(rootA, "area-ledger-writer", {
216
- mode: "exclusive",
217
- scope,
218
- timeoutSec: 0,
219
- required: true,
220
- })).toThrow(OperationLockedError);
221
- await releaseGateWorker(child);
222
- const afterRelease = acquireOperationLock(rootA, "area-ledger-writer", {
223
- mode: "exclusive",
224
- scope,
225
- timeoutSec: 0,
226
- required: true,
227
- });
228
- afterRelease.release();
229
- }
230
- finally {
231
- if (child.exitCode === null && child.signalCode === null)
232
- await releaseGateWorker(child);
233
- }
234
- });
235
- it("F14: symlink aliases share the same root lock", () => {
236
- const aliasParent = fs.mkdtempSync(path.join(os.tmpdir(), "hq-rootA-link-"));
237
- const aliasRoot = path.join(aliasParent, "alias");
238
- fs.symlinkSync(rootA, aliasRoot, "dir");
239
- let realHandle;
240
- let aliasHandle;
241
- try {
242
- expect(lockPathFor(aliasRoot)).toBe(lockPathFor(rootA));
243
- realHandle = acquireOperationLock(rootA, "sync");
244
- expect(() => {
245
- aliasHandle = acquireOperationLock(aliasRoot, "rescue", { wait: false });
246
- }).toThrowError(OperationLockedError);
247
- }
248
- finally {
249
- aliasHandle?.release();
250
- realHandle?.release();
251
- fs.rmSync(aliasParent, { recursive: true, force: true });
252
- }
253
- });
254
- it("acquires, writes holder info, and releases (file gone after release)", () => {
255
- const h = acquireOperationLock(rootA, "sync");
256
- expect(fs.existsSync(h.path)).toBe(true);
257
- const info = JSON.parse(fs.readFileSync(h.path, "utf8"));
258
- expect(info.pid).toBe(process.pid);
259
- expect(info.command).toBe("sync");
260
- h.release();
261
- expect(fs.existsSync(h.path)).toBe(false);
262
- });
263
- it("admits independent sync-worker PIDs together, then hands off to queued rescue", async () => {
264
- const first = spawnGateWorker(rootA, stateDir, "sync");
265
- const second = spawnGateWorker(rootA, stateDir, "sync");
266
- const [firstReady, secondReady] = await Promise.all([
267
- nextGateMessage(first, "acquired"),
268
- nextGateMessage(second, "acquired"),
269
- ]);
270
- expect(firstReady.pid).not.toBe(secondReady.pid);
271
- const p = lockPathFor(rootA);
272
- const memberPrefix = `${path.basename(p)}.shared-`;
273
- expect(fs.readdirSync(path.dirname(p)).filter((entry) => entry.startsWith(memberPrefix))).toHaveLength(2);
274
- const rescue = spawnGateWorker(rootA, stateDir, "rescue");
275
- await nextGateMessage(rescue, "waiting");
276
- // Writer preference closes admission as soon as rescue is queued: a new
277
- // chore cannot sneak in behind the two already admitted worker PIDs.
278
- expect(() => acquireOperationLock(rootA, "sync", { wait: false })).toThrowError(OperationLockedError);
279
- await Promise.all([releaseGateWorker(first), releaseGateWorker(second)]);
280
- await nextGateMessage(rescue, "acquired");
281
- expect(() => acquireOperationLock(rootA, "sync", { wait: false })).toThrowError(OperationLockedError);
282
- await releaseGateWorker(rescue);
283
- }, 20_000);
284
- it("reclaims a killed worker membership without creating a false-free window", async () => {
285
- const worker = spawnGateWorker(rootA, stateDir, "sync");
286
- await nextGateMessage(worker, "acquired");
287
- const exited = new Promise((resolve) => worker.once("exit", () => resolve()));
288
- worker.kill("SIGKILL");
289
- await exited;
290
- // The member file remains until a gate contender observes its dead PID.
291
- // Rescue reclaims that stale lease before it declares exclusivity.
292
- const rescue = acquireOperationLock(rootA, "rescue", { wait: false });
293
- expect(rescue.info.command).toBe("rescue");
294
- rescue.release();
295
- }, 20_000);
296
- it("async maintenance waits without blocking the parent event loop", async () => {
297
- const worker = acquireOperationLock(rootA, "sync");
298
- let timerRan = false;
299
- const timer = new Promise((resolve) => setTimeout(() => {
300
- timerRan = true;
301
- resolve();
302
- }, 20));
303
- const rescue = acquireOperationLockAsync(rootA, "rescue", {
304
- pollIntervalMs: 5,
305
- onWaitStart: () => undefined,
306
- });
307
- await timer;
308
- expect(timerRan).toBe(true);
309
- worker.release();
310
- (await rescue).release();
311
- });
312
- // Regression (HQ-CLI-2): when the lock's state dir is not writable, acquiring
313
- // must fail with an actionable OperationLockUnwritableError, NOT a raw
314
- // `EPERM: operation not permitted, open` (macOS) / `EACCES` (Linux) crash.
315
- describe("unwritable lock dir (HQ-CLI-2)", () => {
316
- // The classification decision (which fs error codes mean "unwritable lock"
317
- // vs. a genuinely different fault) is verified directly against the exported
318
- // `rethrowLockCreateError` helper. ESM module namespaces can't be spied, so
319
- // we can't mock `fs.openSync`; testing the classifier is both deterministic
320
- // (uid/OS-independent) and a tighter unit of the actual decision.
321
- const permErr = (code, msg) => Object.assign(new Error(`${code}: ${msg}, open`), { code, syscall: "open" });
322
- it.each(["EPERM", "EACCES", "EROFS"])("classifies %s as OperationLockUnwritableError with actionable guidance", (code) => {
323
- const dir = path.join(stateDir, "locks");
324
- let thrown;
325
- try {
326
- rethrowLockCreateError(permErr(code, "not permitted"), dir);
327
- }
328
- catch (e) {
329
- thrown = e;
330
- }
331
- expect(thrown).toBeInstanceOf(OperationLockUnwritableError);
332
- const err = thrown;
333
- expect(err.lockDir).toBe(dir);
334
- expect(err.cause.code).toBe(code);
335
- // Actionable: names the recovery levers so the user can self-serve.
336
- expect(err.message).toContain("HQ_DISABLE_OP_LOCK=1");
337
- expect(err.message).toContain("HQ_STATE_DIR");
338
- });
339
- it("POSITIVE CONTROL: a NON-permission fs error propagates unchanged (not masked)", () => {
340
- // A disk-full error is a genuine, different fault — it must NOT be
341
- // reclassified as an unwritable-lock error.
342
- const dir = path.join(stateDir, "locks");
343
- let thrown;
344
- try {
345
- rethrowLockCreateError(permErr("ENOSPC", "no space left on device"), dir);
346
- }
347
- catch (e) {
348
- thrown = e;
349
- }
350
- expect(thrown).not.toBeInstanceOf(OperationLockUnwritableError);
351
- expect(thrown.code).toBe("ENOSPC");
352
- });
353
- it("real unwritable locks dir → OperationLockUnwritableError, distinct exit (skipped as root)", () => {
354
- // End-to-end proof through the real acquire path: a locks dir with no write
355
- // bit makes the temp-file create fail (EACCES on Linux / EPERM on macOS),
356
- // and acquire must surface the typed error rather than crash. CI runners
357
- // run non-root, so this exercises the full path there.
358
- // Windows does not enforce these POSIX chmod mode bits on directories.
359
- if (process.platform === "win32")
360
- return;
361
- if (typeof process.getuid === "function" && process.getuid() === 0) {
362
- // root bypasses DAC permission bits, so a chmod-based unwritable dir
363
- // cannot be exercised — the classifier cases above cover the logic.
364
- return;
365
- }
366
- const locksDir = path.join(stateDir, "locks");
367
- fs.mkdirSync(locksDir, { recursive: true });
368
- fs.chmodSync(locksDir, 0o500); // r-x: cannot create files inside
369
- try {
370
- expect(() => acquireOperationLock(rootA, "reindex", { wait: false })).toThrowError(OperationLockUnwritableError);
371
- }
372
- finally {
373
- fs.chmodSync(locksDir, 0o700); // restore so afterEach cleanup can rm it
374
- }
375
- });
376
- it("async acquire also surfaces the typed error on an unwritable locks dir (skipped as root)", async () => {
377
- // Windows does not enforce these POSIX chmod mode bits on directories.
378
- if (process.platform === "win32")
379
- return;
380
- if (typeof process.getuid === "function" && process.getuid() === 0) {
381
- return;
382
- }
383
- const locksDir = path.join(stateDir, "locks");
384
- fs.mkdirSync(locksDir, { recursive: true });
385
- fs.chmodSync(locksDir, 0o500);
386
- try {
387
- await expect(acquireOperationLockAsync(rootB, "reindex", { wait: false })).rejects.toBeInstanceOf(OperationLockUnwritableError);
388
- }
389
- finally {
390
- fs.chmodSync(locksDir, 0o700);
391
- }
392
- });
393
- it("exposes a distinct exit code from the busy case", () => {
394
- expect(OPERATION_LOCK_UNWRITABLE_EXIT).not.toBe(OPERATION_LOCKED_EXIT);
395
- expect(OPERATION_LOCK_UNWRITABLE_EXIT).toBe(18);
396
- });
397
- });
398
- it("refuses immediately (wait:false) with the holder's command + pid when a LIVE process holds it", async () => {
399
- const holder = spawnLongLivedProcess();
400
- try {
401
- // A spawned child represents a distinct live holder and stays alive through
402
- // the assertions. The same-process reclaim path does not apply; wait:false
403
- // preserves the refuse-immediately behavior while the default waits.
404
- writeLock(lockPathFor(rootA), { pid: holder.pid, command: "rescue" });
405
- expect(() => acquireOperationLock(rootA, "sync", { wait: false })).toThrowError(OperationLockedError);
406
- try {
407
- acquireOperationLock(rootA, "sync", { wait: false });
408
- }
409
- catch (e) {
410
- const err = e;
411
- expect(err.holder.command).toBe("rescue");
412
- expect(err.holder.pid).toBe(holder.pid);
413
- expect(err.message).toContain("rescue");
414
- expect(err.message).toContain("pid " + holder.pid);
415
- }
416
- }
417
- finally {
418
- await stopLongLivedProcess(holder.child);
419
- }
420
- });
421
- it("timeoutSec:0 refuses immediately (no wait) — equivalent to wait:false", async () => {
422
- const holder = spawnLongLivedProcess();
423
- try {
424
- writeLock(lockPathFor(rootA), { pid: holder.pid, command: "sync" });
425
- const start = Date.now();
426
- expect(() => acquireOperationLock(rootA, "reindex", { timeoutSec: 0 })).toThrowError(OperationLockedError);
427
- // Did not actually sleep.
428
- expect(Date.now() - start).toBeLessThan(DEFAULT_LOCK_POLL_MS);
429
- }
430
- finally {
431
- await stopLongLivedProcess(holder.child);
432
- }
433
- });
434
- it("a bounded timeoutSec waits, then refuses with the old message + exit code", async () => {
435
- const holder = spawnLongLivedProcess();
436
- try {
437
- writeLock(lockPathFor(rootA), { pid: holder.pid, command: "rescue" });
438
- const start = Date.now();
439
- let thrown;
440
- try {
441
- // 150ms bound, 40ms poll → waits ~150ms then gives up. Suppress the
442
- // stderr status line with a no-op onWaitStart.
443
- acquireOperationLock(rootA, "sync", {
444
- timeoutSec: 0.15,
445
- pollIntervalMs: 40,
446
- onWaitStart: () => { },
447
- });
448
- }
449
- catch (e) {
450
- thrown = e;
451
- }
452
- const elapsed = Date.now() - start;
453
- expect(thrown).toBeInstanceOf(OperationLockedError);
454
- expect(thrown.message).toContain("rescue");
455
- expect(OPERATION_LOCKED_EXIT).toBe(17);
456
- // It actually waited (didn't refuse instantly) but didn't hang forever.
457
- expect(elapsed).toBeGreaterThanOrEqual(120);
458
- expect(elapsed).toBeLessThan(3000);
459
- const waiterPrefix = path.basename(lockPathFor(rootA)) + ".wait-";
460
- expect(fs.readdirSync(path.dirname(lockPathFor(rootA))).filter((entry) => entry.startsWith(waiterPrefix))).toEqual([]);
461
- }
462
- finally {
463
- await stopLongLivedProcess(holder.child);
464
- }
465
- });
466
- it("HQ_OP_LOCK_TIMEOUT env bounds the wait when no explicit option is given", async () => {
467
- const holder = spawnLongLivedProcess();
468
- try {
469
- process.env.HQ_OP_LOCK_TIMEOUT = "0"; // 0 → refuse immediately
470
- writeLock(lockPathFor(rootA), { pid: holder.pid, command: "sync" });
471
- const start = Date.now();
472
- expect(() => acquireOperationLock(rootA, "rescue", { onWaitStart: () => { } })).toThrowError(OperationLockedError);
473
- expect(Date.now() - start).toBeLessThan(DEFAULT_LOCK_POLL_MS);
474
- }
475
- finally {
476
- await stopLongLivedProcess(holder.child);
477
- }
478
- });
479
- it("an explicit timeoutSec overrides the HQ_OP_LOCK_TIMEOUT env", async () => {
480
- const holder = spawnLongLivedProcess();
481
- try {
482
- process.env.HQ_OP_LOCK_TIMEOUT = "9999"; // would be a near-infinite wait
483
- writeLock(lockPathFor(rootA), { pid: holder.pid, command: "sync" });
484
- // The explicit 0 wins → refuse immediately rather than honoring the env.
485
- expect(() => acquireOperationLock(rootA, "rescue", { timeoutSec: 0 })).toThrowError(OperationLockedError);
486
- }
487
- finally {
488
- await stopLongLivedProcess(holder.child);
489
- }
490
- });
491
- it("onWaitStart fires exactly once, naming the holder, even across many polls", async () => {
492
- const holder = spawnLongLivedProcess();
493
- try {
494
- writeLock(lockPathFor(rootA), { pid: holder.pid, command: "rescue" });
495
- const calls = [];
496
- expect(() => acquireOperationLock(rootA, "sync", {
497
- timeoutSec: 0.16,
498
- pollIntervalMs: 30, // ~5 polls within the window
499
- onWaitStart: (lockHolder, attempted) => calls.push({ cmd: lockHolder.command, attempted }),
500
- })).toThrowError(OperationLockedError);
501
- expect(calls).toHaveLength(1);
502
- expect(calls[0]).toEqual({ cmd: "rescue", attempted: "sync" });
503
- }
504
- finally {
505
- await stopLongLivedProcess(holder.child);
506
- }
507
- });
508
- it("a waiter acquires the lock the moment the holder releases (async poll path)", async () => {
509
- const holder = spawnLongLivedProcess();
510
- try {
511
- const p = lockPathFor(rootA);
512
- // A foreign LIVE holder (a spawned process) initially owns the lock.
513
- writeLock(p, { pid: holder.pid, command: "rescue" });
514
- // Simulate the holder finishing ~80ms in by removing its lock file.
515
- const release = setTimeout(() => fs.rmSync(p, { force: true }), 80);
516
- let releaseLock;
517
- try {
518
- const start = Date.now();
519
- const h = await acquireOperationLockAsync(rootA, "sync", {
520
- pollIntervalMs: 20,
521
- onWaitStart: () => { },
522
- });
523
- releaseLock = h.release;
524
- const elapsed = Date.now() - start;
525
- // We waited for the release, then took it over.
526
- expect(elapsed).toBeGreaterThanOrEqual(60);
527
- const info = JSON.parse(fs.readFileSync(h.path, "utf8"));
528
- expect(info.pid).toBe(process.pid);
529
- expect(info.command).toBe("sync");
530
- }
531
- finally {
532
- clearTimeout(release);
533
- releaseLock?.();
534
- }
535
- }
536
- finally {
537
- await stopLongLivedProcess(holder.child);
538
- }
539
- });
540
- it("a waiting rescue gets the next release before continuous watch passes", async () => {
541
- // Model an active watch pass, then keep scheduling another short watch pass
542
- // synchronously at every release. Without waiter intent, that reacquire loop
543
- // leaves no observable free interval for rescue's poll and can starve it
544
- // forever. With deferral, the already-waiting rescue owns the next handoff.
545
- const activePass = acquireOperationLock(rootA, "sync", { wait: false });
546
- let announceWait = () => { };
547
- const waitAnnounced = new Promise((resolve) => {
548
- announceWait = resolve;
549
- });
550
- const rescuePending = acquireOperationLockAsync(rootA, "rescue", {
551
- pollIntervalMs: 5,
552
- onWaitStart: announceWait,
553
- });
554
- await waitAnnounced;
555
- let stopped = false;
556
- let watchPasses = 0;
557
- let resolveWatchStopped = () => { };
558
- const watchStopped = new Promise((resolve) => {
559
- resolveWatchStopped = resolve;
560
- });
561
- const runNextWatchPass = () => {
562
- if (stopped) {
563
- resolveWatchStopped();
564
- return;
565
- }
566
- try {
567
- const handle = acquireOperationLock(rootA, "sync", {
568
- timeoutSec: 0,
569
- deferToWaiters: true,
570
- onWaitStart: () => { },
571
- });
572
- watchPasses++;
573
- setTimeout(() => {
574
- handle.release();
575
- runNextWatchPass();
576
- }, 2);
577
- }
578
- catch (err) {
579
- if (!(err instanceof OperationLockedError))
580
- throw err;
581
- setTimeout(runNextWatchPass, 2);
582
- }
583
- };
584
- runNextWatchPass();
585
- activePass.release();
586
- let timeout;
587
- const rescue = await Promise.race([
588
- rescuePending,
589
- new Promise((_resolve, reject) => {
590
- timeout = setTimeout(() => reject(new Error("rescue handoff timed out")), 250);
591
- }),
592
- ]).finally(() => clearTimeout(timeout));
593
- // Continuous watch attempts remained excluded while rescue acquired and
594
- // held the same operation lock: priority never weakens mutual exclusion.
595
- await new Promise((resolve) => setTimeout(resolve, 20));
596
- expect(rescue.info.command).toBe("rescue");
597
- expect(watchPasses).toBe(0);
598
- rescue.release();
599
- await new Promise((resolve, reject) => {
600
- const deadline = setTimeout(() => reject(new Error("watch did not resume after rescue")), 250);
601
- const check = () => {
602
- if (watchPasses > 0) {
603
- clearTimeout(deadline);
604
- resolve();
605
- }
606
- else {
607
- setTimeout(check, 2);
608
- }
609
- };
610
- check();
611
- });
612
- stopped = true;
613
- await watchStopped;
614
- });
615
- it("a dead waiter's intent is pruned instead of blocking watch mode", () => {
616
- const p = lockPathFor(rootA);
617
- const stalePid = deadPid();
618
- const waiterPath = `${p}.wait-${stalePid}-stale`;
619
- writeLock(waiterPath, { pid: stalePid, command: "rescue" });
620
- const handle = acquireOperationLock(rootA, "sync", {
621
- timeoutSec: 0,
622
- deferToWaiters: true,
623
- });
624
- expect(fs.existsSync(waiterPath)).toBe(false);
625
- expect(handle.info.command).toBe("sync");
626
- handle.release();
627
- });
628
- it("multiple foreign holders in a row: each release lets the next waiter in (no FIFO guarantee)", async () => {
629
- const holder = spawnLongLivedProcess();
630
- try {
631
- // The mutex is CROSS-PROCESS: it keys liveness on the holder's PID. Two
632
- // waiters in the SAME process share a pid, so the same-process reclaim path
633
- // would let them stomp each other — that scenario is unsupported by design.
634
- // Here we model the real case: a sequence of FOREIGN holders (a spawned process) that
635
- // each release, with a single waiter acquiring the instant the lock frees.
636
- // Order among multiple distinct-process waiters is whoever wins the next
637
- // O_EXCL race after a free — best-effort, NOT FIFO (documented).
638
- const p = lockPathFor(rootA);
639
- writeLock(p, { pid: holder.pid, command: "sync" });
640
- // Free it shortly; the waiter should grab it right after.
641
- const release = setTimeout(() => fs.rmSync(p, { force: true }), 50);
642
- let releaseLock;
643
- try {
644
- const h = await acquireOperationLockAsync(rootA, "reindex", {
645
- pollIntervalMs: 15,
646
- onWaitStart: () => { },
647
- });
648
- releaseLock = h.release;
649
- const info = JSON.parse(fs.readFileSync(h.path, "utf8"));
650
- expect(info.command).toBe("reindex");
651
- expect(info.pid).toBe(process.pid);
652
- }
653
- finally {
654
- clearTimeout(release);
655
- releaseLock?.();
656
- }
657
- }
658
- finally {
659
- await stopLongLivedProcess(holder.child);
660
- }
661
- });
662
- it("reclaims a stale lock whose holder PID is dead (takeover, never waits)", () => {
663
- const stale = deadPid();
664
- writeLock(lockPathFor(rootA), { pid: stale, command: "sync" });
665
- const start = Date.now();
666
- // The dead holder must not block us — even with an infinite default wait,
667
- // takeover is immediate.
668
- const h = acquireOperationLock(rootA, "rescue");
669
- expect(Date.now() - start).toBeLessThan(DEFAULT_LOCK_POLL_MS);
670
- const info = JSON.parse(fs.readFileSync(h.path, "utf8"));
671
- expect(info.pid).toBe(process.pid); // we took it over
672
- expect(info.command).toBe("rescue");
673
- h.release();
674
- });
675
- it("treats a torn/unreadable lock file as busy", () => {
676
- const p = lockPathFor(rootA);
677
- fs.mkdirSync(path.dirname(p), { recursive: true });
678
- fs.writeFileSync(p, "{ this is not valid json");
679
- expect(() => acquireOperationLock(rootA, "reindex", { wait: false })).toThrowError(OperationLockedError);
680
- expect(fs.readFileSync(p, "utf8")).toBe("{ this is not valid json");
681
- });
682
- it("F34: fresh empty lock files are not reclaimed as stale", () => {
683
- const p = lockPathFor(rootA);
684
- fs.mkdirSync(path.dirname(p), { recursive: true });
685
- fs.closeSync(fs.openSync(p, "wx"));
686
- let handle;
687
- try {
688
- expect(() => {
689
- handle = acquireOperationLock(rootA, "rescue", { wait: false });
690
- }).toThrow();
691
- expect(fs.existsSync(p)).toBe(true);
692
- expect(fs.readFileSync(p, "utf8")).toBe("");
693
- }
694
- finally {
695
- handle?.release();
696
- fs.rmSync(p, { force: true });
697
- }
698
- });
699
- it("R-F34: initializing empty and torn locks are busy, not reclaimed", () => {
700
- const p = lockPathFor(rootA);
701
- fs.mkdirSync(path.dirname(p), { recursive: true });
702
- fs.closeSync(fs.openSync(p, "wx"));
703
- const old = new Date(Date.now() - 10_000);
704
- fs.utimesSync(p, old, old);
705
- expect(() => acquireOperationLock(rootA, "sync", { wait: false })).toThrowError(OperationLockedError);
706
- expect(fs.readFileSync(p, "utf8")).toBe("");
707
- fs.writeFileSync(p, "{ torn");
708
- expect(() => acquireOperationLock(rootA, "sync", { wait: false })).toThrowError(OperationLockedError);
709
- expect(fs.readFileSync(p, "utf8")).toBe("{ torn");
710
- });
711
- it("fast exclusive writers preserve fresh initializing markers and reclaim expired ones", () => {
712
- const scope = "area-ledger-writer-fast-metadata-test";
713
- const p = lockPathFor(rootA, scope);
714
- fs.mkdirSync(path.dirname(p), { recursive: true });
715
- fs.closeSync(fs.openSync(p, "wx"));
716
- const options = {
717
- mode: "exclusive",
718
- scope,
719
- timeoutSec: 0,
720
- required: true,
721
- fsync: false,
722
- fastExclusive: true,
723
- };
724
- expect(() => acquireOperationLock(rootA, "area-ledger-writer", options)).toThrowError(OperationLockedError);
725
- expect(fs.readFileSync(p, "utf8")).toBe("");
726
- const old = new Date(Date.now() - 10_000);
727
- fs.utimesSync(p, old, old);
728
- const handle = acquireOperationLock(rootA, "area-ledger-writer", options);
729
- try {
730
- expect(JSON.parse(fs.readFileSync(p, "utf8"))).toMatchObject({
731
- pid: process.pid,
732
- command: "area-ledger-writer",
733
- });
734
- }
735
- finally {
736
- handle.release();
737
- }
738
- });
739
- it("different HQ roots are independent — both may hold concurrently", () => {
740
- const a = acquireOperationLock(rootA, "sync");
741
- const b = acquireOperationLock(rootB, "rescue"); // must NOT block
742
- expect(fs.existsSync(a.path)).toBe(true);
743
- expect(fs.existsSync(b.path)).toBe(true);
744
- expect(a.path).not.toBe(b.path);
745
- a.release();
746
- b.release();
747
- });
748
- it("the same root is mutually exclusive across different commands", async () => {
749
- const holder = spawnLongLivedProcess();
750
- try {
751
- // A live sync in ANOTHER process holds the root (a spawned process holds it).
752
- const p = lockPathFor(rootA);
753
- writeLock(p, { pid: holder.pid, command: "sync" });
754
- // Neither rescue nor reindex may acquire while that sync holds it
755
- // (wait:false → assert the refusal without hanging on the new wait default).
756
- expect(() => acquireOperationLock(rootA, "rescue", { wait: false })).toThrowError(OperationLockedError);
757
- expect(() => acquireOperationLock(rootA, "reindex", { wait: false })).toThrowError(OperationLockedError);
758
- // Once that sync finishes (its lock is gone), the next command acquires.
759
- fs.unlinkSync(p);
760
- const h2 = acquireOperationLock(rootA, "reindex");
761
- expect(fs.existsSync(h2.path)).toBe(true);
762
- h2.release();
763
- }
764
- finally {
765
- await stopLongLivedProcess(holder.child);
766
- }
767
- });
768
- it("withOperationLockSync releases even when the body throws", () => {
769
- const p = lockPathFor(rootA);
770
- expect(() => withOperationLockSync(rootA, "reindex", () => {
771
- expect(fs.existsSync(p)).toBe(true); // held during the body
772
- throw new Error("boom");
773
- })).toThrow("boom");
774
- expect(fs.existsSync(p)).toBe(false); // released on the way out
775
- });
776
- it("withOperationLock (async) releases even when the body throws", async () => {
777
- const p = lockPathFor(rootA);
778
- await expect(withOperationLock(rootA, "sync", async () => {
779
- expect(fs.existsSync(p)).toBe(true);
780
- throw new Error("boom");
781
- })).rejects.toThrow("boom");
782
- expect(fs.existsSync(p)).toBe(false);
783
- });
784
- it("HQ_DISABLE_OP_LOCK=1 makes acquisition a no-op", () => {
785
- process.env.HQ_DISABLE_OP_LOCK = "1";
786
- // Even with a live holder on record, the escape hatch acquires without error.
787
- writeLock(lockPathFor(rootA), { pid: process.pid, command: "sync" });
788
- const h = acquireOperationLock(rootA, "rescue");
789
- expect(h.path).toBe(""); // no real lock file written
790
- h.release(); // no-op, no throw
791
- });
792
- it("OPERATION_LOCKED_EXIT is a stable non-zero code", () => {
793
- expect(OPERATION_LOCKED_EXIT).toBe(17);
794
- });
795
- });
796
- //# sourceMappingURL=operation-lock.test.js.map