@claudexor/daemon 5.0.2 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/dist/client.d.ts +56 -0
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/deferred-message-owner.d.ts +4 -0
  4. package/dist/deferred-message-owner.d.ts.map +1 -1
  5. package/dist/deferred-messages.d.ts +22 -1
  6. package/dist/deferred-messages.d.ts.map +1 -1
  7. package/dist/deferred-messages.js +50 -15
  8. package/dist/deferred-messages.js.map +1 -1
  9. package/dist/index.d.ts +2 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/interactions.d.ts.map +1 -1
  14. package/dist/interactions.js +29 -7
  15. package/dist/interactions.js.map +1 -1
  16. package/dist/model-operation-execution.d.ts +10 -0
  17. package/dist/model-operation-execution.d.ts.map +1 -1
  18. package/dist/model-operation-execution.js +12 -5
  19. package/dist/model-operation-execution.js.map +1 -1
  20. package/dist/model-operations.d.ts +1 -0
  21. package/dist/model-operations.d.ts.map +1 -1
  22. package/dist/model-operations.js +20 -10
  23. package/dist/model-operations.js.map +1 -1
  24. package/dist/quota-registry-support.d.ts.map +1 -1
  25. package/dist/quota-registry-support.js +14 -9
  26. package/dist/quota-registry-support.js.map +1 -1
  27. package/dist/server.d.ts +2 -2
  28. package/dist/server.d.ts.map +1 -1
  29. package/dist/server.js.map +1 -1
  30. package/dist/store/blob-files.d.ts +2 -2
  31. package/dist/store/blob-files.d.ts.map +1 -1
  32. package/dist/store/blob-files.js +1 -0
  33. package/dist/store/blob-files.js.map +1 -1
  34. package/dist/store/command-prune.d.ts.map +1 -1
  35. package/dist/store/command-prune.js +4 -0
  36. package/dist/store/command-prune.js.map +1 -1
  37. package/dist/store/commands.d.ts +7 -2
  38. package/dist/store/commands.d.ts.map +1 -1
  39. package/dist/store/commands.js +38 -11
  40. package/dist/store/commands.js.map +1 -1
  41. package/dist/store/deferred-message-rows.d.ts +10 -0
  42. package/dist/store/deferred-message-rows.d.ts.map +1 -1
  43. package/dist/store/deferred-message-rows.js +28 -1
  44. package/dist/store/deferred-message-rows.js.map +1 -1
  45. package/dist/store/deferred-messages.d.ts +10 -3
  46. package/dist/store/deferred-messages.d.ts.map +1 -1
  47. package/dist/store/deferred-messages.js +45 -9
  48. package/dist/store/deferred-messages.js.map +1 -1
  49. package/dist/store/external-files.d.ts +17 -0
  50. package/dist/store/external-files.d.ts.map +1 -1
  51. package/dist/store/external-files.js +54 -0
  52. package/dist/store/external-files.js.map +1 -1
  53. package/dist/store/idempotency.d.ts +1 -1
  54. package/dist/store/idempotency.d.ts.map +1 -1
  55. package/dist/store/idempotency.js +2 -1
  56. package/dist/store/idempotency.js.map +1 -1
  57. package/dist/store/libuv-pool.d.ts +25 -0
  58. package/dist/store/libuv-pool.d.ts.map +1 -0
  59. package/dist/store/libuv-pool.js +96 -0
  60. package/dist/store/libuv-pool.js.map +1 -0
  61. package/dist/store/maintenance-worker.d.ts.map +1 -1
  62. package/dist/store/maintenance-worker.js +45 -0
  63. package/dist/store/maintenance-worker.js.map +1 -1
  64. package/dist/store/maintenance.d.ts +28 -2
  65. package/dist/store/maintenance.d.ts.map +1 -1
  66. package/dist/store/maintenance.js +36 -6
  67. package/dist/store/maintenance.js.map +1 -1
  68. package/dist/store/project-router.d.ts +107 -1
  69. package/dist/store/project-router.d.ts.map +1 -1
  70. package/dist/store/project-router.js +30 -0
  71. package/dist/store/project-router.js.map +1 -1
  72. package/dist/store/publish-blob.d.ts.map +1 -1
  73. package/dist/store/publish-blob.js +36 -14
  74. package/dist/store/publish-blob.js.map +1 -1
  75. package/dist/store/purge-files.d.ts +11 -2
  76. package/dist/store/purge-files.d.ts.map +1 -1
  77. package/dist/store/purge-files.js +34 -7
  78. package/dist/store/purge-files.js.map +1 -1
  79. package/dist/store/resource-release.d.ts +15 -0
  80. package/dist/store/resource-release.d.ts.map +1 -0
  81. package/dist/store/resource-release.js +56 -0
  82. package/dist/store/resource-release.js.map +1 -0
  83. package/dist/store/resource-rows.d.ts +2 -0
  84. package/dist/store/resource-rows.d.ts.map +1 -1
  85. package/dist/store/resource-rows.js.map +1 -1
  86. package/dist/store/resource-uses.d.ts +84 -0
  87. package/dist/store/resource-uses.d.ts.map +1 -0
  88. package/dist/store/resource-uses.js +129 -0
  89. package/dist/store/resource-uses.js.map +1 -0
  90. package/dist/store/resources.d.ts +16 -2
  91. package/dist/store/resources.d.ts.map +1 -1
  92. package/dist/store/resources.js +42 -3
  93. package/dist/store/resources.js.map +1 -1
  94. package/dist/store/retention-changes.d.ts +8 -2
  95. package/dist/store/retention-changes.d.ts.map +1 -1
  96. package/dist/store/retention-changes.js +24 -11
  97. package/dist/store/retention-changes.js.map +1 -1
  98. package/dist/store/retention-generations.d.ts +7 -2
  99. package/dist/store/retention-generations.d.ts.map +1 -1
  100. package/dist/store/retention-generations.js +71 -26
  101. package/dist/store/retention-generations.js.map +1 -1
  102. package/dist/store/retention-reference-reader.d.ts +26 -1
  103. package/dist/store/retention-reference-reader.d.ts.map +1 -1
  104. package/dist/store/retention-reference-reader.js +31 -7
  105. package/dist/store/retention-reference-reader.js.map +1 -1
  106. package/dist/store/retention-references.d.ts +5 -0
  107. package/dist/store/retention-references.d.ts.map +1 -1
  108. package/dist/store/retention-references.js +35 -6
  109. package/dist/store/retention-references.js.map +1 -1
  110. package/dist/store/schema.d.ts +2 -2
  111. package/dist/store/schema.d.ts.map +1 -1
  112. package/dist/store/schema.js +17 -2
  113. package/dist/store/schema.js.map +1 -1
  114. package/dist/store/sql-command-router.d.ts +10 -1
  115. package/dist/store/sql-command-router.d.ts.map +1 -1
  116. package/dist/store/sql-command-router.js +10 -1
  117. package/dist/store/sql-command-router.js.map +1 -1
  118. package/dist/store/sql-daemon-services.d.ts.map +1 -1
  119. package/dist/store/sql-daemon-services.js +9 -8
  120. package/dist/store/sql-daemon-services.js.map +1 -1
  121. package/dist/store/sql-validation.d.ts.map +1 -1
  122. package/dist/store/sql-validation.js +1 -0
  123. package/dist/store/sql-validation.js.map +1 -1
  124. package/dist/store/terminal-files.d.ts +6 -3
  125. package/dist/store/terminal-files.d.ts.map +1 -1
  126. package/dist/store/terminal-files.js +6 -38
  127. package/dist/store/terminal-files.js.map +1 -1
  128. package/dist/store/thread-closure.d.ts +62 -0
  129. package/dist/store/thread-closure.d.ts.map +1 -0
  130. package/dist/store/thread-closure.js +290 -0
  131. package/dist/store/thread-closure.js.map +1 -0
  132. package/dist/store/thread-retirement.d.ts +29 -0
  133. package/dist/store/thread-retirement.d.ts.map +1 -0
  134. package/dist/store/thread-retirement.js +123 -0
  135. package/dist/store/thread-retirement.js.map +1 -0
  136. package/dist/store/threads.d.ts.map +1 -1
  137. package/dist/store/threads.js +6 -1
  138. package/dist/store/threads.js.map +1 -1
  139. package/dist/store/upload-imports.d.ts.map +1 -1
  140. package/dist/store/upload-imports.js +16 -3
  141. package/dist/store/upload-imports.js.map +1 -1
  142. package/dist/store/uploads.d.ts +13 -2
  143. package/dist/store/uploads.d.ts.map +1 -1
  144. package/dist/store/uploads.js +76 -30
  145. package/dist/store/uploads.js.map +1 -1
  146. package/dist/store-contracts.d.ts +25 -2
  147. package/dist/store-contracts.d.ts.map +1 -1
  148. package/dist/terminal-authority.d.ts +1 -1
  149. package/dist/thread-lifecycle.d.ts +3 -1
  150. package/dist/thread-lifecycle.d.ts.map +1 -1
  151. package/dist/thread-lifecycle.js +2 -2
  152. package/dist/thread-lifecycle.js.map +1 -1
  153. package/dist/writer-lease.d.ts.map +1 -1
  154. package/dist/writer-lease.js +6 -3
  155. package/dist/writer-lease.js.map +1 -1
  156. package/package.json +5 -5
@@ -4,6 +4,7 @@ import { closeSync, constants, existsSync, linkSync, mkdirSync, openSync, rename
4
4
  import { link, open, stat, unlink } from "node:fs/promises";
5
5
  import { dirname, join } from "node:path";
6
6
  import { mapStoreError } from "./errors.js";
7
+ import { withUploadWriteSlot } from "./libuv-pool.js";
7
8
  /** Node does not expose the POSIX O_DSYNC name on Windows, but passes numeric
8
9
  * open flags to libuv. UV_FS_O_DSYNC maps to FILE_FLAG_WRITE_THROUGH there
9
10
  * (deps/uv/include/uv/win.h in the supported Node runtime). */
@@ -150,6 +151,59 @@ export async function writeStagedTemp(dir, name, bytes) {
150
151
  throw error;
151
152
  }
152
153
  }
154
+ /**
155
+ * Incremental `O_DSYNC` write of an existing file on the libuv pool, using the
156
+ * same flags as `writeStagedTemp`. The caller owns the path (an upload part).
157
+ * `accept` runs on the request thread before each chunk is submitted and may
158
+ * throw to stop the transfer; `committed` runs after that chunk's write returns.
159
+ * A write already sitting in the pool finishes before the next `accept`.
160
+ * Each pool operation (the open with its truncate, every write, the close)
161
+ * holds one slot of the upload gate until it returns, so a transfer waiting for
162
+ * its next chunk from the network holds none. `cancelled` runs while the open
163
+ * or a write waits for a slot and may throw. The close waits for its slot even
164
+ * after a cancel, so the descriptor is closed on every exit.
165
+ */
166
+ export async function writeExternalIncremental(path, chunks, hooks) {
167
+ const handle = await withUploadWriteSlot(hooks?.cancelled, async () => {
168
+ const opened = await open(path, externalWriteFlags(constants.O_RDWR));
169
+ try {
170
+ await opened.truncate(0);
171
+ return opened;
172
+ }
173
+ catch (error) {
174
+ await opened.close().catch(() => undefined);
175
+ throw error;
176
+ }
177
+ });
178
+ let received = 0;
179
+ let closed = false;
180
+ const close = async () => {
181
+ if (closed)
182
+ return;
183
+ closed = true;
184
+ await withUploadWriteSlot(undefined, () => handle.close());
185
+ };
186
+ try {
187
+ for await (const chunk of chunks) {
188
+ hooks?.accept?.(chunk, received);
189
+ let offset = 0;
190
+ while (offset < chunk.byteLength) {
191
+ const { bytesWritten } = await withUploadWriteSlot(hooks?.cancelled, () => handle.write(chunk, offset, chunk.byteLength - offset, received + offset));
192
+ if (bytesWritten <= 0)
193
+ throw new Error(`short write of ${path}`);
194
+ offset += bytesWritten;
195
+ }
196
+ received += chunk.byteLength;
197
+ hooks?.committed?.(chunk, received);
198
+ }
199
+ await close();
200
+ return received;
201
+ }
202
+ catch (error) {
203
+ await close().catch(() => undefined);
204
+ throw error;
205
+ }
206
+ }
153
207
  /**
154
208
  * The off-loop twin of `writeExternalFile` for a content-addressed body: the
155
209
  * same `O_DSYNC` temp, published under its final name only while that name is
@@ -1 +1 @@
1
- {"version":3,"file":"external-files.js","sourceRoot":"","sources":["../../src/store/external-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"external-files.js","sourceRoot":"","sources":["../../src/store/external-files.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type SqlWriteContext } from "./mutation.js";
2
- export type IdempotencyOwner = "command" | "thread" | "turn" | "decision" | "project" | "setup" | "upload" | "quarantine" | "deferred_message";
2
+ export type IdempotencyOwner = "command" | "thread" | "turn" | "decision" | "project" | "setup" | "upload" | "quarantine" | "deferred_message" | "thread_retire";
3
3
  export interface IdempotencyKey {
4
4
  owner: IdempotencyOwner;
5
5
  pid: number;
@@ -1 +1 @@
1
- {"version":3,"file":"idempotency.d.ts","sourceRoot":"","sources":["../../src/store/idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAEzE,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,QAAQ,GACR,MAAM,GACN,UAAU,GACV,SAAS,GACT,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,kBAAkB,CAAC;AAEvB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,gBAAgB,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAiBD,kFAAkF;AAClF,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,EACrC,GAAG,EAAE,cAAc,EACnB,aAAa,EAAE,MAAM,GACpB,kBAAkB,GAAG,SAAS,CAoBhC;AAED;+EAC+E;AAC/E,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,kBAAkB,GAC1B,kBAAkB,CA0BpB;AAED;mFACmF;AACnF,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,gBAAgB,EACvB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,MAAM,CAOR"}
1
+ {"version":3,"file":"idempotency.d.ts","sourceRoot":"","sources":["../../src/store/idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAEzE,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,QAAQ,GACR,MAAM,GACN,UAAU,GACV,SAAS,GACT,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,kBAAkB,GAClB,eAAe,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,gBAAgB,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAiBD,kFAAkF;AAClF,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,EACrC,GAAG,EAAE,cAAc,EACnB,aAAa,EAAE,MAAM,GACpB,kBAAkB,GAAG,SAAS,CAoBhC;AAED;+EAC+E;AAC/E,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,kBAAkB,GAC1B,kBAAkB,CA6BpB;AAED;mFACmF;AACnF,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,gBAAgB,EACvB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,MAAM,CAOR"}
@@ -36,8 +36,9 @@ export function bindIdempotencyInTx(sql, binding) {
36
36
  return existing;
37
37
  if (binding.owner !== "upload" &&
38
38
  binding.owner !== "deferred_message" &&
39
+ binding.owner !== "thread_retire" &&
39
40
  binding.result !== undefined) {
40
- throw new Error("only upload and deferred-message idempotency bindings carry a result");
41
+ throw new Error("only upload, deferred-message and thread-retire idempotency bindings carry a result");
41
42
  }
42
43
  sql
43
44
  .prepare("INSERT INTO idempotency(owner, pid, key_digest, operation, request_digest, target_id, result, created_at) VALUES(?, ?, ?, ?, ?, ?, ?, ?)")
@@ -1 +1 @@
1
- {"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/store/idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAwB,MAAM,eAAe,CAAC;AAqCzE,SAAS,QAAQ;IACf,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2DAA2D,CAAC,EAAE;QAC1F,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE,GAAG;KACZ,CAAC,CAAC;AACL,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,iBAAiB,CAC/B,GAAqC,EACrC,GAAmB,EACnB,aAAqB;IAErB,MAAM,GAAG,GAAG,GAAG;SACZ,OAAO,CACN,iIAAiI,CAClI;SACA,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAA2B,CAAC;IACpE,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,IAAI,GAAG,CAAC,cAAc,KAAK,aAAa;QAAE,QAAQ,EAAE,CAAC;IACrD,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,IAAI;YACrB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAY,EAAE,CAAC;KACjF,CAAC;AACJ,CAAC;AAED;+EAC+E;AAC/E,MAAM,UAAU,mBAAmB,CACjC,GAAoB,EACpB,OAA2B;IAE3B,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACxE,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IACE,OAAO,CAAC,KAAK,KAAK,QAAQ;QAC1B,OAAO,CAAC,KAAK,KAAK,kBAAkB;QACpC,OAAO,CAAC,MAAM,KAAK,SAAS,EAC5B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,GAAG;SACA,OAAO,CACN,0IAA0I,CAC3I;SACA,GAAG,CACF,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EACjF,OAAO,CAAC,SAAS,CAClB,CAAC;IACJ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;mFACmF;AACnF,MAAM,UAAU,2BAA2B,CACzC,GAAoB,EACpB,KAAuB,EACvB,GAAW,EACX,QAAgB;IAEhB,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACxB,OAAO,MAAM,CACX,GAAG;SACA,OAAO,CAAC,uEAAuE,CAAC;SAChF,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CACrC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/store/idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAwB,MAAM,eAAe,CAAC;AAsCzE,SAAS,QAAQ;IACf,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2DAA2D,CAAC,EAAE;QAC1F,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE,GAAG;KACZ,CAAC,CAAC;AACL,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,iBAAiB,CAC/B,GAAqC,EACrC,GAAmB,EACnB,aAAqB;IAErB,MAAM,GAAG,GAAG,GAAG;SACZ,OAAO,CACN,iIAAiI,CAClI;SACA,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAA2B,CAAC;IACpE,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,IAAI,GAAG,CAAC,cAAc,KAAK,aAAa;QAAE,QAAQ,EAAE,CAAC;IACrD,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,IAAI;YACrB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAY,EAAE,CAAC;KACjF,CAAC;AACJ,CAAC;AAED;+EAC+E;AAC/E,MAAM,UAAU,mBAAmB,CACjC,GAAoB,EACpB,OAA2B;IAE3B,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACxE,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IACE,OAAO,CAAC,KAAK,KAAK,QAAQ;QAC1B,OAAO,CAAC,KAAK,KAAK,kBAAkB;QACpC,OAAO,CAAC,KAAK,KAAK,eAAe;QACjC,OAAO,CAAC,MAAM,KAAK,SAAS,EAC5B,CAAC;QACD,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;IACJ,CAAC;IACD,GAAG;SACA,OAAO,CACN,0IAA0I,CAC3I;SACA,GAAG,CACF,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EACjF,OAAO,CAAC,SAAS,CAClB,CAAC;IACJ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;mFACmF;AACnF,MAAM,UAAU,2BAA2B,CACzC,GAAoB,EACpB,KAAuB,EACvB,GAAW,EACX,QAAgB;IAEhB,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACxB,OAAO,MAAM,CACX,GAAG;SACA,OAAO,CAAC,uEAAuE,CAAC;SAChF,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CACrC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * The pool an operator-set (or unset) `UV_THREADPOOL_SIZE` gives. Unset means
3
+ * libuv's default of 4; assigning the variable after the pool exists does not
4
+ * resize it. A non-positive value is libuv's 1, and anything above 1024 is
5
+ * libuv's maximum.
6
+ */
7
+ export declare function libuvPoolSizeFrom(raw: string | undefined): number;
8
+ export declare function libuvPoolSize(): number;
9
+ /** Upload writes leave two threads for DNS and other filesystem work.
10
+ * A pool of one cannot spare them; that is the size the operator set. */
11
+ export declare function uploadWriteSlots(): number;
12
+ export interface UploadWriteGate {
13
+ acquire(cancelled?: () => void): Promise<() => void>;
14
+ wake(): void;
15
+ }
16
+ /** One queue. `acquire` resolves with a release function. A caller who finds
17
+ * the gate full waits on that promise (the event loop), not a spin. `wake`
18
+ * rechecks every waiter, so a cancellation rejects without waiting for a slot.
19
+ * Release is idempotent and hands the slot to the oldest waiter. */
20
+ export declare function createUploadWriteGate(slots: () => number): UploadWriteGate;
21
+ /** One pool operation under one upload slot, released when the operation settles.
22
+ * Callers do not hold a slot while they wait for network bytes. */
23
+ export declare function withUploadWriteSlot<T>(cancelled: (() => void) | undefined, operation: () => Promise<T>): Promise<T>;
24
+ export declare function wakeUploadWriteSlots(): void;
25
+ //# sourceMappingURL=libuv-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libuv-pool.d.ts","sourceRoot":"","sources":["../../src/store/libuv-pool.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAKjE;AAED,wBAAgB,aAAa,IAAI,MAAM,CAItC;AAED;yEACyE;AACzE,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IACrD,IAAI,IAAI,IAAI,CAAC;CACd;AAED;;;oEAGoE;AACpE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,MAAM,GAAG,eAAe,CA6C1E;AAID;mEACmE;AACnE,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,EACnC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAOZ;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * The size the daemon entry applied when the operator had not set
3
+ * `UV_THREADPOOL_SIZE`. The entry created the pool at that size and then removed
4
+ * the variable, so harness children do not inherit it. Same key as
5
+ * `packages/cli/src/host-libuv-pool.ts` and `packages/claudexor/bin/libuv-pool.js`.
6
+ */
7
+ const APPLIED_POOL = Symbol.for("claudexor.libuvPoolSize");
8
+ /**
9
+ * The pool an operator-set (or unset) `UV_THREADPOOL_SIZE` gives. Unset means
10
+ * libuv's default of 4; assigning the variable after the pool exists does not
11
+ * resize it. A non-positive value is libuv's 1, and anything above 1024 is
12
+ * libuv's maximum.
13
+ */
14
+ export function libuvPoolSizeFrom(raw) {
15
+ if (raw == null || raw === "")
16
+ return 4;
17
+ const parsed = Number.parseInt(raw, 10);
18
+ if (!Number.isFinite(parsed) || parsed <= 0)
19
+ return 1;
20
+ return Math.min(parsed, 1024);
21
+ }
22
+ export function libuvPoolSize() {
23
+ const applied = globalThis[APPLIED_POOL];
24
+ if (typeof applied === "number")
25
+ return applied;
26
+ return libuvPoolSizeFrom(process.env.UV_THREADPOOL_SIZE);
27
+ }
28
+ /** Upload writes leave two threads for DNS and other filesystem work.
29
+ * A pool of one cannot spare them; that is the size the operator set. */
30
+ export function uploadWriteSlots() {
31
+ return Math.max(1, libuvPoolSize() - 2);
32
+ }
33
+ /** One queue. `acquire` resolves with a release function. A caller who finds
34
+ * the gate full waits on that promise (the event loop), not a spin. `wake`
35
+ * rechecks every waiter, so a cancellation rejects without waiting for a slot.
36
+ * Release is idempotent and hands the slot to the oldest waiter. */
37
+ export function createUploadWriteGate(slots) {
38
+ let active = 0;
39
+ const queue = [];
40
+ const attemptOf = (cancelled, settle) => {
41
+ const attempt = () => {
42
+ const index = queue.indexOf(attempt);
43
+ if (index >= 0)
44
+ queue.splice(index, 1);
45
+ try {
46
+ cancelled?.();
47
+ }
48
+ catch (error) {
49
+ settle.reject(error);
50
+ return;
51
+ }
52
+ if (active >= slots()) {
53
+ queue.push(attempt);
54
+ return;
55
+ }
56
+ active += 1;
57
+ let released = false;
58
+ settle.resolve(() => {
59
+ if (released)
60
+ return;
61
+ released = true;
62
+ active -= 1;
63
+ queue.shift()?.();
64
+ });
65
+ };
66
+ return attempt;
67
+ };
68
+ return {
69
+ acquire(cancelled) {
70
+ return new Promise((resolve, reject) => {
71
+ attemptOf(cancelled, { resolve, reject })();
72
+ });
73
+ },
74
+ wake() {
75
+ const pending = queue.splice(0, queue.length);
76
+ for (const attempt of pending)
77
+ attempt();
78
+ },
79
+ };
80
+ }
81
+ const uploadWrites = createUploadWriteGate(uploadWriteSlots);
82
+ /** One pool operation under one upload slot, released when the operation settles.
83
+ * Callers do not hold a slot while they wait for network bytes. */
84
+ export async function withUploadWriteSlot(cancelled, operation) {
85
+ const release = await uploadWrites.acquire(cancelled);
86
+ try {
87
+ return await operation();
88
+ }
89
+ finally {
90
+ release();
91
+ }
92
+ }
93
+ export function wakeUploadWriteSlots() {
94
+ uploadWrites.wake();
95
+ }
96
+ //# sourceMappingURL=libuv-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libuv-pool.js","sourceRoot":"","sources":["../../src/store/libuv-pool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"maintenance-worker.d.ts","sourceRoot":"","sources":["../../src/store/maintenance-worker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwC,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQ7F,OAAO,KAAK,EAKV,qBAAqB,EAGtB,MAAM,kBAAkB,CAAC;AAqG1B,2FAA2F;AAC3F,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
1
+ {"version":3,"file":"maintenance-worker.d.ts","sourceRoot":"","sources":["../../src/store/maintenance-worker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwC,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAS7F,OAAO,KAAK,EAKV,qBAAqB,EAGtB,MAAM,kBAAkB,CAAC;AAuI1B,2FAA2F;AAC3F,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA0Cf"}
@@ -7,6 +7,7 @@ import { STORE_WORKER_DATA_KEY } from "./flusher-protocol.js";
7
7
  import { loadEngineRuntime } from "./runtime.js";
8
8
  import { runLegacyImport } from "./importer.js";
9
9
  import { discoverLegacyPartitions } from "./import-discovery.js";
10
+ import { readThreadClosure } from "./thread-closure.js";
10
11
  const BLOB_NAME = /^[0-9a-f]{64}$/;
11
12
  const PART_NAME = /^(.+)\.part$/;
12
13
  const SQLITE_CORRUPT = 11;
@@ -107,10 +108,47 @@ function sweepCandidates(db, request) {
107
108
  result.durationMs = performance.now() - started;
108
109
  return result;
109
110
  }
111
+ /**
112
+ * One thread's closure in one read-only snapshot. Its first read fixes the snapshot
113
+ * and proves which store it is; every closure row then comes from that snapshot, so
114
+ * no commit in between can tear it. It writes nothing and always ends here, so the
115
+ * WAL is never held past this request.
116
+ */
117
+ function threadClosure(db, prepare, request, barrier) {
118
+ db.exec("BEGIN");
119
+ try {
120
+ const identity = prepare("SELECT value FROM meta WHERE key='store_id'").get();
121
+ if ((identity?.value ?? null) !== request.storeId)
122
+ throw new Error("the maintenance snapshot does not read this engine store");
123
+ if (barrier)
124
+ parkAtBarrier(barrier);
125
+ return readThreadClosure({ prepare, storeId: request.storeId ?? undefined }, request.threadId);
126
+ }
127
+ finally {
128
+ if (db.isTransaction)
129
+ db.exec("ROLLBACK");
130
+ }
131
+ }
132
+ /** Test seam (`MaintenanceWorkerHooks.closureBarrier`): wait for this arrival's release. */
133
+ function parkAtBarrier(buffer) {
134
+ const slots = new Int32Array(buffer);
135
+ const arrival = Atomics.add(slots, 0, 1) + 1;
136
+ Atomics.notify(slots, 0);
137
+ for (let released = Atomics.load(slots, 1); released < arrival; released = Atomics.load(slots, 1))
138
+ Atomics.wait(slots, 1, released);
139
+ }
110
140
  /** `node:sqlite` is imported lazily: the daemon package must load on a Node without it. */
111
141
  export async function runMaintenanceWorker(port, data) {
112
142
  const { sqlite } = await loadEngineRuntime();
113
143
  const db = new sqlite.DatabaseSync(data.dbPath, { readOnly: true, timeout: 0 });
144
+ // Cached per SQL text for the connection's life, as the writer caches its own.
145
+ const statements = new Map();
146
+ const prepare = (sql) => {
147
+ let statement = statements.get(sql);
148
+ if (!statement)
149
+ statements.set(sql, (statement = db.prepare(sql)));
150
+ return statement;
151
+ };
114
152
  port.on("message", (request) => {
115
153
  let response;
116
154
  try {
@@ -124,6 +162,13 @@ export async function runMaintenanceWorker(port, data) {
124
162
  case "sweep_candidates":
125
163
  response = { id: request.id, ok: true, result: sweepCandidates(db, request) };
126
164
  break;
165
+ case "thread_closure":
166
+ response = {
167
+ id: request.id,
168
+ ok: true,
169
+ result: threadClosure(db, prepare, request, data.hooks?.closureBarrier),
170
+ };
171
+ break;
127
172
  }
128
173
  }
129
174
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"maintenance-worker.js","sourceRoot":"","sources":["../../src/store/maintenance-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maintenance-worker.js","sourceRoot":"","sources":["../../src/store/maintenance-worker.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,19 @@
1
1
  import { BlobFiles } from "./blob-files.js";
2
2
  import { STORE_WORKER_DATA_KEY } from "./flusher-protocol.js";
3
3
  import type { EngineStore } from "./store.js";
4
+ import type { ThreadClosure } from "./thread-closure.js";
4
5
  import "./maintenance-worker.js";
5
6
  export interface MaintenanceWorkerData {
6
7
  [STORE_WORKER_DATA_KEY]: "maintenance";
7
8
  dbPath: string;
9
+ hooks?: MaintenanceWorkerHooks;
10
+ }
11
+ /** Test seams, inert unless set (the flusher's `FlusherHooks` precedent). */
12
+ export interface MaintenanceWorkerHooks {
13
+ /** A closure read parks here inside its snapshot, once the snapshot is fixed and
14
+ * before any closure row is read: slot 0 counts arrivals, and a read goes on once
15
+ * slot 1 reaches its own arrival number. */
16
+ closureBarrier?: SharedArrayBuffer;
8
17
  }
9
18
  /** Requests are a discriminated union: the importer (PR-D) adds its kind here
10
19
  * and a handler in the worker; nothing else changes. */
@@ -22,6 +31,12 @@ export type MaintenanceRequest = {
22
31
  uploadsDir: string;
23
32
  /** Files whose mtime is at or after this epoch-ms instant are left alone. */
24
33
  olderThanMs: number;
34
+ } | {
35
+ id: number;
36
+ kind: "thread_closure";
37
+ threadId: string;
38
+ /** The store the snapshot must prove it reads. */
39
+ storeId: string | null;
25
40
  };
26
41
  export interface IntegrityReport {
27
42
  ok: boolean;
@@ -64,7 +79,7 @@ export interface SweepReport extends Omit<SweepCandidates, "candidates"> {
64
79
  export type MaintenanceResponse = {
65
80
  id: number;
66
81
  ok: true;
67
- result: IntegrityReport | ExportReport | SweepCandidates;
82
+ result: IntegrityReport | ExportReport | SweepCandidates | ThreadClosure | null;
68
83
  } | {
69
84
  id: number;
70
85
  ok: false;
@@ -78,6 +93,7 @@ export interface MaintenanceControllerOptions {
78
93
  processStartedAt?: number;
79
94
  /** The store's blob owner (one per store: it holds the unref generations). */
80
95
  blobs?: BlobFiles;
96
+ hooks?: MaintenanceWorkerHooks;
81
97
  }
82
98
  /**
83
99
  * Maintenance (SYNTHESIS_R5 §2, §6.5, §7 p.6; R5_AMENDMENTS A4, C2, C9):
@@ -86,7 +102,9 @@ export interface MaintenanceControllerOptions {
86
102
  * The worker owns a separate read-only connection, never shares a thread or
87
103
  * connection with the flusher, never writes a row, and only ENUMERATES sweep
88
104
  * candidates older than the process start; every removal is decided on the
89
- * main thread through the one owner-generation unlink rule (C10).
105
+ * main thread through the one owner-generation unlink rule (C10). Its snapshot
106
+ * also answers a thread's closure for an export's observation; every decision
107
+ * reads the closure again on the writer, inside the deciding transaction.
90
108
  */
91
109
  export declare class MaintenanceController {
92
110
  private readonly store;
@@ -104,6 +122,14 @@ export declare class MaintenanceController {
104
122
  integrityCheck(): Promise<IntegrityReport>;
105
123
  /** `VACUUM INTO target`: a consistent snapshot copy, written by the worker. */
106
124
  exportTo(target: string): Promise<ExportReport>;
125
+ /**
126
+ * The thread's closure as one read-only snapshot holds it, read on the worker so
127
+ * the writer's thread stays free. An observation only: retirement reads it again
128
+ * inside its own transaction. `signal` ends the caller's wait alone. A read the
129
+ * worker has not taken leaves the queue; one it has taken keeps the worker until
130
+ * it ends, and its answer is dropped.
131
+ */
132
+ threadClosure(threadId: string, signal?: AbortSignal): Promise<ThreadClosure | null>;
107
133
  /** The worker's candidate list for files older than the process start (test seam). */
108
134
  sweepCandidates(): Promise<SweepCandidates>;
109
135
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"maintenance.d.ts","sourceRoot":"","sources":["../../src/store/maintenance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maintenance.d.ts","sourceRoot":"","sources":["../../src/store/maintenance.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,9 @@ import "./maintenance-worker.js";
14
14
  * The worker owns a separate read-only connection, never shares a thread or
15
15
  * connection with the flusher, never writes a row, and only ENUMERATES sweep
16
16
  * candidates older than the process start; every removal is decided on the
17
- * main thread through the one owner-generation unlink rule (C10).
17
+ * main thread through the one owner-generation unlink rule (C10). Its snapshot
18
+ * also answers a thread's closure for an export's observation; every decision
19
+ * reads the closure again on the writer, inside the deciding transaction.
18
20
  */
19
21
  export class MaintenanceController {
20
22
  store;
@@ -46,6 +48,16 @@ export class MaintenanceController {
46
48
  exportTo(target) {
47
49
  return this.run({ id: 0, kind: "vacuum_into", target });
48
50
  }
51
+ /**
52
+ * The thread's closure as one read-only snapshot holds it, read on the worker so
53
+ * the writer's thread stays free. An observation only: retirement reads it again
54
+ * inside its own transaction. `signal` ends the caller's wait alone. A read the
55
+ * worker has not taken leaves the queue; one it has taken keeps the worker until
56
+ * it ends, and its answer is dropped.
57
+ */
58
+ threadClosure(threadId, signal) {
59
+ return this.run({ id: 0, kind: "thread_closure", threadId, storeId: this.store.storeId ?? null }, signal);
60
+ }
49
61
  /** The worker's candidate list for files older than the process start (test seam). */
50
62
  sweepCandidates() {
51
63
  return this.run({
@@ -113,16 +125,33 @@ export class MaintenanceController {
113
125
  if (worker)
114
126
  await worker.terminate();
115
127
  }
116
- run(request) {
128
+ run(request, signal) {
117
129
  if (this.closing) {
118
130
  return Promise.reject(new StoreError("store_closed", 503, false, "engine store is closing"));
119
131
  }
132
+ if (signal?.aborted)
133
+ return Promise.reject(signal.reason);
120
134
  return new Promise((resolve, reject) => {
121
- this.queue.push({
135
+ const leave = () => {
136
+ const queued = this.queue.indexOf(pending);
137
+ if (queued >= 0)
138
+ this.queue.splice(queued, 1);
139
+ reject(signal.reason);
140
+ };
141
+ const settled = () => signal?.removeEventListener("abort", leave);
142
+ const pending = {
122
143
  request: { ...request, id: this.nextId++ },
123
- resolve: resolve,
124
- reject,
125
- });
144
+ resolve: (value) => {
145
+ settled();
146
+ resolve(value);
147
+ },
148
+ reject: (error) => {
149
+ settled();
150
+ reject(error);
151
+ },
152
+ };
153
+ signal?.addEventListener("abort", leave, { once: true });
154
+ this.queue.push(pending);
126
155
  this.pump();
127
156
  });
128
157
  }
@@ -139,6 +168,7 @@ export class MaintenanceController {
139
168
  const data = {
140
169
  [STORE_WORKER_DATA_KEY]: "maintenance",
141
170
  dbPath: this.store.paths.database,
171
+ ...(this.options.hooks ? { hooks: this.options.hooks } : {}),
142
172
  };
143
173
  const worker = new Worker(this.entry, {
144
174
  workerData: data,
@@ -1 +1 @@
1
- {"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../src/store/maintenance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../src/store/maintenance.ts"],"names":[],"mappings":"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"}