@claudexor/daemon 3.25.1 → 4.0.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 (453) hide show
  1. package/dist/account-resets.d.ts +2 -2
  2. package/dist/account-resets.d.ts.map +1 -1
  3. package/dist/account-resets.js +15 -0
  4. package/dist/account-resets.js.map +1 -1
  5. package/dist/client.d.ts +25 -6
  6. package/dist/client.d.ts.map +1 -1
  7. package/dist/client.js +55 -51
  8. package/dist/client.js.map +1 -1
  9. package/dist/command-authority.d.ts +11 -8
  10. package/dist/command-authority.d.ts.map +1 -1
  11. package/dist/command-authority.js +5 -6
  12. package/dist/command-authority.js.map +1 -1
  13. package/dist/command-list-projection.d.ts +0 -1
  14. package/dist/command-list-projection.d.ts.map +1 -1
  15. package/dist/command-list-projection.js +0 -6
  16. package/dist/command-list-projection.js.map +1 -1
  17. package/dist/command-list-select.d.ts +0 -4
  18. package/dist/command-list-select.d.ts.map +1 -1
  19. package/dist/command-list-select.js +1 -115
  20. package/dist/command-list-select.js.map +1 -1
  21. package/dist/command-retention.d.ts +7 -19
  22. package/dist/command-retention.d.ts.map +1 -1
  23. package/dist/command-retention.js +1 -120
  24. package/dist/command-retention.js.map +1 -1
  25. package/dist/command-rpc.d.ts +4 -1
  26. package/dist/command-rpc.d.ts.map +1 -1
  27. package/dist/command-rpc.js +12 -1
  28. package/dist/command-rpc.js.map +1 -1
  29. package/dist/command-store.d.ts +15 -52
  30. package/dist/command-store.d.ts.map +1 -1
  31. package/dist/command-store.js +5 -493
  32. package/dist/command-store.js.map +1 -1
  33. package/dist/daemon-health.d.ts +56 -8
  34. package/dist/daemon-health.d.ts.map +1 -1
  35. package/dist/daemon-health.js +44 -9
  36. package/dist/daemon-health.js.map +1 -1
  37. package/dist/daemon-local-client.d.ts +28 -0
  38. package/dist/daemon-local-client.d.ts.map +1 -0
  39. package/dist/daemon-local-client.js +55 -0
  40. package/dist/daemon-local-client.js.map +1 -0
  41. package/dist/delivery-command.d.ts +4 -4
  42. package/dist/delivery-command.d.ts.map +1 -1
  43. package/dist/delivery-command.js.map +1 -1
  44. package/dist/index.d.ts +23 -8
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +25 -8
  47. package/dist/index.js.map +1 -1
  48. package/dist/interactions.d.ts +12 -28
  49. package/dist/interactions.d.ts.map +1 -1
  50. package/dist/interactions.js +22 -123
  51. package/dist/interactions.js.map +1 -1
  52. package/dist/job-admission.d.ts +26 -0
  53. package/dist/job-admission.d.ts.map +1 -0
  54. package/dist/job-admission.js +67 -0
  55. package/dist/job-admission.js.map +1 -0
  56. package/dist/journal-fold-policy.d.ts +1 -1
  57. package/dist/journal-fold-policy.d.ts.map +1 -1
  58. package/dist/journal-recovery-files.d.ts +1 -41
  59. package/dist/journal-recovery-files.d.ts.map +1 -1
  60. package/dist/journal-recovery-files.js +2 -340
  61. package/dist/journal-recovery-files.js.map +1 -1
  62. package/dist/loop-facts.d.ts +28 -0
  63. package/dist/loop-facts.d.ts.map +1 -0
  64. package/dist/loop-facts.js +97 -0
  65. package/dist/loop-facts.js.map +1 -0
  66. package/dist/memory-facts.d.ts +2 -0
  67. package/dist/memory-facts.d.ts.map +1 -1
  68. package/dist/memory-facts.js +5 -0
  69. package/dist/memory-facts.js.map +1 -1
  70. package/dist/model-operations.d.ts +11 -4
  71. package/dist/model-operations.d.ts.map +1 -1
  72. package/dist/model-operations.js +68 -38
  73. package/dist/model-operations.js.map +1 -1
  74. package/dist/operator-decisions.d.ts +15 -25
  75. package/dist/operator-decisions.d.ts.map +1 -1
  76. package/dist/operator-decisions.js +5 -84
  77. package/dist/operator-decisions.js.map +1 -1
  78. package/dist/projects.d.ts +42 -41
  79. package/dist/projects.d.ts.map +1 -1
  80. package/dist/projects.js +46 -184
  81. package/dist/projects.js.map +1 -1
  82. package/dist/quota-registry-replay.d.ts +2 -2
  83. package/dist/quota-registry-replay.d.ts.map +1 -1
  84. package/dist/quota-registry-replay.js.map +1 -1
  85. package/dist/quota-registry-support.d.ts +4 -1
  86. package/dist/quota-registry-support.d.ts.map +1 -1
  87. package/dist/quota-registry-support.js +15 -2
  88. package/dist/quota-registry-support.js.map +1 -1
  89. package/dist/quota-registry.d.ts +64 -2
  90. package/dist/quota-registry.d.ts.map +1 -1
  91. package/dist/quota-registry.js +10 -3
  92. package/dist/quota-registry.js.map +1 -1
  93. package/dist/quota-resources.d.ts +6 -3
  94. package/dist/quota-resources.d.ts.map +1 -1
  95. package/dist/quota-resources.js +25 -8
  96. package/dist/quota-resources.js.map +1 -1
  97. package/dist/runless-turn-recovery.d.ts +2 -9
  98. package/dist/runless-turn-recovery.d.ts.map +1 -1
  99. package/dist/runless-turn-recovery.js +0 -14
  100. package/dist/runless-turn-recovery.js.map +1 -1
  101. package/dist/server.d.ts +23 -22
  102. package/dist/server.d.ts.map +1 -1
  103. package/dist/server.js +74 -84
  104. package/dist/server.js.map +1 -1
  105. package/dist/store/blob-files.d.ts +71 -0
  106. package/dist/store/blob-files.d.ts.map +1 -0
  107. package/dist/store/blob-files.js +160 -0
  108. package/dist/store/blob-files.js.map +1 -0
  109. package/dist/store/command-prune.d.ts +37 -0
  110. package/dist/store/command-prune.d.ts.map +1 -0
  111. package/dist/store/command-prune.js +123 -0
  112. package/dist/store/command-prune.js.map +1 -0
  113. package/dist/store/command-queries.d.ts +41 -0
  114. package/dist/store/command-queries.d.ts.map +1 -0
  115. package/dist/store/command-queries.js +186 -0
  116. package/dist/store/command-queries.js.map +1 -0
  117. package/dist/store/command-rows.d.ts +66 -0
  118. package/dist/store/command-rows.d.ts.map +1 -0
  119. package/dist/store/command-rows.js +141 -0
  120. package/dist/store/command-rows.js.map +1 -0
  121. package/dist/store/commands.d.ts +49 -0
  122. package/dist/store/commands.d.ts.map +1 -0
  123. package/dist/store/commands.js +247 -0
  124. package/dist/store/commands.js.map +1 -0
  125. package/dist/store/cursors.d.ts +33 -0
  126. package/dist/store/cursors.d.ts.map +1 -0
  127. package/dist/store/cursors.js +82 -0
  128. package/dist/store/cursors.js.map +1 -0
  129. package/dist/store/engine-recovery-files.d.ts +14 -0
  130. package/dist/store/engine-recovery-files.d.ts.map +1 -0
  131. package/dist/store/engine-recovery-files.js +53 -0
  132. package/dist/store/engine-recovery-files.js.map +1 -0
  133. package/dist/store/engine-state-recovery.d.ts +71 -0
  134. package/dist/store/engine-state-recovery.d.ts.map +1 -0
  135. package/dist/store/engine-state-recovery.js +318 -0
  136. package/dist/store/engine-state-recovery.js.map +1 -0
  137. package/dist/store/errors.d.ts +80 -0
  138. package/dist/store/errors.d.ts.map +1 -0
  139. package/dist/store/errors.js +130 -0
  140. package/dist/store/errors.js.map +1 -0
  141. package/dist/store/event-store.d.ts +52 -0
  142. package/dist/store/event-store.d.ts.map +1 -0
  143. package/dist/store/event-store.js +117 -0
  144. package/dist/store/event-store.js.map +1 -0
  145. package/dist/store/external-files.d.ts +40 -0
  146. package/dist/store/external-files.d.ts.map +1 -0
  147. package/dist/store/external-files.js +90 -0
  148. package/dist/store/external-files.js.map +1 -0
  149. package/dist/store/flusher-protocol.d.ts +82 -0
  150. package/dist/store/flusher-protocol.d.ts.map +1 -0
  151. package/dist/store/flusher-protocol.js +23 -0
  152. package/dist/store/flusher-protocol.js.map +1 -0
  153. package/dist/store/flusher-worker.d.ts +24 -0
  154. package/dist/store/flusher-worker.d.ts.map +1 -0
  155. package/dist/store/flusher-worker.js +185 -0
  156. package/dist/store/flusher-worker.js.map +1 -0
  157. package/dist/store/flusher.d.ts +87 -0
  158. package/dist/store/flusher.d.ts.map +1 -0
  159. package/dist/store/flusher.js +264 -0
  160. package/dist/store/flusher.js.map +1 -0
  161. package/dist/store/generations.d.ts +43 -0
  162. package/dist/store/generations.d.ts.map +1 -0
  163. package/dist/store/generations.js +143 -0
  164. package/dist/store/generations.js.map +1 -0
  165. package/dist/store/idempotency.d.ts +25 -0
  166. package/dist/store/idempotency.d.ts.map +1 -0
  167. package/dist/store/idempotency.js +53 -0
  168. package/dist/store/idempotency.js.map +1 -0
  169. package/dist/store/import-context.d.ts +22 -0
  170. package/dist/store/import-context.d.ts.map +1 -0
  171. package/dist/store/import-context.js +87 -0
  172. package/dist/store/import-context.js.map +1 -0
  173. package/dist/store/import-discovery.d.ts +6 -0
  174. package/dist/store/import-discovery.d.ts.map +1 -0
  175. package/dist/store/import-discovery.js +66 -0
  176. package/dist/store/import-discovery.js.map +1 -0
  177. package/dist/store/import-records.d.ts +6 -0
  178. package/dist/store/import-records.d.ts.map +1 -0
  179. package/dist/store/import-records.js +191 -0
  180. package/dist/store/import-records.js.map +1 -0
  181. package/dist/store/import-resources.d.ts +14 -0
  182. package/dist/store/import-resources.d.ts.map +1 -0
  183. package/dist/store/import-resources.js +197 -0
  184. package/dist/store/import-resources.js.map +1 -0
  185. package/dist/store/import-source.d.ts +24 -0
  186. package/dist/store/import-source.d.ts.map +1 -0
  187. package/dist/store/import-source.js +65 -0
  188. package/dist/store/import-source.js.map +1 -0
  189. package/dist/store/import-verify.d.ts +6 -0
  190. package/dist/store/import-verify.d.ts.map +1 -0
  191. package/dist/store/import-verify.js +97 -0
  192. package/dist/store/import-verify.js.map +1 -0
  193. package/dist/store/import-worker.d.ts +18 -0
  194. package/dist/store/import-worker.d.ts.map +1 -0
  195. package/dist/store/import-worker.js +69 -0
  196. package/dist/store/import-worker.js.map +1 -0
  197. package/dist/store/importer.d.ts +42 -0
  198. package/dist/store/importer.d.ts.map +1 -0
  199. package/dist/store/importer.js +239 -0
  200. package/dist/store/importer.js.map +1 -0
  201. package/dist/store/interactions.d.ts +22 -0
  202. package/dist/store/interactions.d.ts.map +1 -0
  203. package/dist/store/interactions.js +82 -0
  204. package/dist/store/interactions.js.map +1 -0
  205. package/dist/store/legacy-journal/frame-codec.d.ts +94 -0
  206. package/dist/store/legacy-journal/frame-codec.d.ts.map +1 -0
  207. package/dist/store/legacy-journal/frame-codec.js +352 -0
  208. package/dist/store/legacy-journal/frame-codec.js.map +1 -0
  209. package/dist/store/legacy-journal/frame-reader.d.ts +30 -0
  210. package/dist/store/legacy-journal/frame-reader.d.ts.map +1 -0
  211. package/dist/store/legacy-journal/frame-reader.js +97 -0
  212. package/dist/store/legacy-journal/frame-reader.js.map +1 -0
  213. package/dist/store/legacy-journal/journal-fold.d.ts +47 -0
  214. package/dist/store/legacy-journal/journal-fold.d.ts.map +1 -0
  215. package/dist/store/legacy-journal/journal-fold.js +81 -0
  216. package/dist/store/legacy-journal/journal-fold.js.map +1 -0
  217. package/dist/store/legacy-journal/journal-partition.d.ts +2 -0
  218. package/dist/store/legacy-journal/journal-partition.d.ts.map +1 -0
  219. package/dist/store/legacy-journal/journal-partition.js +10 -0
  220. package/dist/store/legacy-journal/journal-partition.js.map +1 -0
  221. package/dist/store/legacy-journal/read-only-preparation.d.ts +48 -0
  222. package/dist/store/legacy-journal/read-only-preparation.d.ts.map +1 -0
  223. package/dist/store/legacy-journal/read-only-preparation.js +430 -0
  224. package/dist/store/legacy-journal/read-only-preparation.js.map +1 -0
  225. package/dist/store/maintenance-worker.d.ts +5 -0
  226. package/dist/store/maintenance-worker.d.ts.map +1 -0
  227. package/dist/store/maintenance-worker.js +175 -0
  228. package/dist/store/maintenance-worker.js.map +1 -0
  229. package/dist/store/maintenance.d.ts +124 -0
  230. package/dist/store/maintenance.d.ts.map +1 -0
  231. package/dist/store/maintenance.js +197 -0
  232. package/dist/store/maintenance.js.map +1 -0
  233. package/dist/store/mutation.d.ts +34 -0
  234. package/dist/store/mutation.d.ts.map +1 -0
  235. package/dist/store/mutation.js +85 -0
  236. package/dist/store/mutation.js.map +1 -0
  237. package/dist/store/obligations.d.ts +101 -0
  238. package/dist/store/obligations.d.ts.map +1 -0
  239. package/dist/store/obligations.js +226 -0
  240. package/dist/store/obligations.js.map +1 -0
  241. package/dist/store/operator-decisions.d.ts +23 -0
  242. package/dist/store/operator-decisions.d.ts.map +1 -0
  243. package/dist/store/operator-decisions.js +68 -0
  244. package/dist/store/operator-decisions.js.map +1 -0
  245. package/dist/store/owner-generations.d.ts +33 -0
  246. package/dist/store/owner-generations.d.ts.map +1 -0
  247. package/dist/store/owner-generations.js +63 -0
  248. package/dist/store/owner-generations.js.map +1 -0
  249. package/dist/store/partitions.d.ts +37 -0
  250. package/dist/store/partitions.d.ts.map +1 -0
  251. package/dist/store/partitions.js +68 -0
  252. package/dist/store/partitions.js.map +1 -0
  253. package/dist/store/pragmas.d.ts +32 -0
  254. package/dist/store/pragmas.d.ts.map +1 -0
  255. package/dist/store/pragmas.js +65 -0
  256. package/dist/store/pragmas.js.map +1 -0
  257. package/dist/store/project-router.d.ts +325 -0
  258. package/dist/store/project-router.d.ts.map +1 -0
  259. package/dist/store/project-router.js +298 -0
  260. package/dist/store/project-router.js.map +1 -0
  261. package/dist/store/projects.d.ts +36 -0
  262. package/dist/store/projects.d.ts.map +1 -0
  263. package/dist/store/projects.js +238 -0
  264. package/dist/store/projects.js.map +1 -0
  265. package/dist/store/publish-blob.d.ts +20 -0
  266. package/dist/store/publish-blob.d.ts.map +1 -0
  267. package/dist/store/publish-blob.js +158 -0
  268. package/dist/store/publish-blob.js.map +1 -0
  269. package/dist/store/purge-files.d.ts +30 -0
  270. package/dist/store/purge-files.d.ts.map +1 -0
  271. package/dist/store/purge-files.js +79 -0
  272. package/dist/store/purge-files.js.map +1 -0
  273. package/dist/store/resource-rows.d.ts +40 -0
  274. package/dist/store/resource-rows.d.ts.map +1 -0
  275. package/dist/store/resource-rows.js +103 -0
  276. package/dist/store/resource-rows.js.map +1 -0
  277. package/dist/store/resources.d.ts +67 -0
  278. package/dist/store/resources.d.ts.map +1 -0
  279. package/dist/store/resources.js +147 -0
  280. package/dist/store/resources.js.map +1 -0
  281. package/dist/store/retention.d.ts +91 -0
  282. package/dist/store/retention.d.ts.map +1 -0
  283. package/dist/store/retention.js +169 -0
  284. package/dist/store/retention.js.map +1 -0
  285. package/dist/store/run-events.d.ts +14 -0
  286. package/dist/store/run-events.d.ts.map +1 -0
  287. package/dist/store/run-events.js +35 -0
  288. package/dist/store/run-events.js.map +1 -0
  289. package/dist/store/runtime.d.ts +24 -0
  290. package/dist/store/runtime.d.ts.map +1 -0
  291. package/dist/store/runtime.js +67 -0
  292. package/dist/store/runtime.js.map +1 -0
  293. package/dist/store/schema.d.ts +33 -0
  294. package/dist/store/schema.d.ts.map +1 -0
  295. package/dist/store/schema.js +187 -0
  296. package/dist/store/schema.js.map +1 -0
  297. package/dist/store/setup-bindings.d.ts +20 -0
  298. package/dist/store/setup-bindings.d.ts.map +1 -0
  299. package/dist/store/setup-bindings.js +52 -0
  300. package/dist/store/setup-bindings.js.map +1 -0
  301. package/dist/store/sql-command-router.d.ts +79 -0
  302. package/dist/store/sql-command-router.d.ts.map +1 -0
  303. package/dist/store/sql-command-router.js +92 -0
  304. package/dist/store/sql-command-router.js.map +1 -0
  305. package/dist/store/sql-daemon-services.d.ts +61 -0
  306. package/dist/store/sql-daemon-services.d.ts.map +1 -0
  307. package/dist/store/sql-daemon-services.js +124 -0
  308. package/dist/store/sql-daemon-services.js.map +1 -0
  309. package/dist/store/sql-recovery-export.d.ts +8 -0
  310. package/dist/store/sql-recovery-export.d.ts.map +1 -0
  311. package/dist/store/sql-recovery-export.js +110 -0
  312. package/dist/store/sql-recovery-export.js.map +1 -0
  313. package/dist/store/sql-recovery-inspection.d.ts +22 -0
  314. package/dist/store/sql-recovery-inspection.d.ts.map +1 -0
  315. package/dist/store/sql-recovery-inspection.js +88 -0
  316. package/dist/store/sql-recovery-inspection.js.map +1 -0
  317. package/dist/store/sql-recovery.d.ts +69 -0
  318. package/dist/store/sql-recovery.d.ts.map +1 -0
  319. package/dist/store/sql-recovery.js +169 -0
  320. package/dist/store/sql-recovery.js.map +1 -0
  321. package/dist/store/sql-validation.d.ts +9 -0
  322. package/dist/store/sql-validation.d.ts.map +1 -0
  323. package/dist/store/sql-validation.js +103 -0
  324. package/dist/store/sql-validation.js.map +1 -0
  325. package/dist/store/statement-observer.d.ts +7 -0
  326. package/dist/store/statement-observer.d.ts.map +1 -0
  327. package/dist/store/statement-observer.js +44 -0
  328. package/dist/store/statement-observer.js.map +1 -0
  329. package/dist/store/store.d.ts +110 -0
  330. package/dist/store/store.d.ts.map +1 -0
  331. package/dist/store/store.js +296 -0
  332. package/dist/store/store.js.map +1 -0
  333. package/dist/store/terminal-files.d.ts +21 -0
  334. package/dist/store/terminal-files.d.ts.map +1 -0
  335. package/dist/store/terminal-files.js +115 -0
  336. package/dist/store/terminal-files.js.map +1 -0
  337. package/dist/store/thread-replay.d.ts +12 -0
  338. package/dist/store/thread-replay.d.ts.map +1 -0
  339. package/dist/store/thread-replay.js +49 -0
  340. package/dist/store/thread-replay.js.map +1 -0
  341. package/dist/store/thread-rows.d.ts +25 -0
  342. package/dist/store/thread-rows.d.ts.map +1 -0
  343. package/dist/store/thread-rows.js +141 -0
  344. package/dist/store/thread-rows.js.map +1 -0
  345. package/dist/store/threads.d.ts +105 -0
  346. package/dist/store/threads.d.ts.map +1 -0
  347. package/dist/store/threads.js +423 -0
  348. package/dist/store/threads.js.map +1 -0
  349. package/dist/store/upload-binding-retention.d.ts +26 -0
  350. package/dist/store/upload-binding-retention.d.ts.map +1 -0
  351. package/dist/store/upload-binding-retention.js +142 -0
  352. package/dist/store/upload-binding-retention.js.map +1 -0
  353. package/dist/store/uploads.d.ts +30 -0
  354. package/dist/store/uploads.d.ts.map +1 -0
  355. package/dist/store/uploads.js +238 -0
  356. package/dist/store/uploads.js.map +1 -0
  357. package/dist/store-contracts.d.ts +181 -0
  358. package/dist/store-contracts.d.ts.map +1 -0
  359. package/dist/store-contracts.js +2 -0
  360. package/dist/store-contracts.js.map +1 -0
  361. package/dist/terminal-authority.d.ts +9 -0
  362. package/dist/terminal-authority.d.ts.map +1 -1
  363. package/dist/terminal-authority.js +103 -1
  364. package/dist/terminal-authority.js.map +1 -1
  365. package/dist/thread-lane-checkpoints.d.ts +0 -2
  366. package/dist/thread-lane-checkpoints.d.ts.map +1 -1
  367. package/dist/thread-lane-checkpoints.js +0 -4
  368. package/dist/thread-lane-checkpoints.js.map +1 -1
  369. package/dist/thread-store-support.d.ts +1 -27
  370. package/dist/thread-store-support.d.ts.map +1 -1
  371. package/dist/thread-store-support.js +0 -63
  372. package/dist/thread-store-support.js.map +1 -1
  373. package/dist/threads.d.ts +1 -113
  374. package/dist/threads.d.ts.map +1 -1
  375. package/dist/threads.js +1 -379
  376. package/dist/threads.js.map +1 -1
  377. package/package.json +9 -7
  378. package/dist/command-activity.d.ts +0 -14
  379. package/dist/command-activity.d.ts.map +0 -1
  380. package/dist/command-activity.js +0 -16
  381. package/dist/command-activity.js.map +0 -1
  382. package/dist/journal-events.d.ts +0 -4
  383. package/dist/journal-events.d.ts.map +0 -1
  384. package/dist/journal-events.js +0 -23
  385. package/dist/journal-events.js.map +0 -1
  386. package/dist/journal-maintenance.d.ts +0 -50
  387. package/dist/journal-maintenance.d.ts.map +0 -1
  388. package/dist/journal-maintenance.js +0 -162
  389. package/dist/journal-maintenance.js.map +0 -1
  390. package/dist/journal-manager-journal.d.ts +0 -18
  391. package/dist/journal-manager-journal.d.ts.map +0 -1
  392. package/dist/journal-manager-journal.js +0 -25
  393. package/dist/journal-manager-journal.js.map +0 -1
  394. package/dist/journal-manager-lifecycle.d.ts +0 -11
  395. package/dist/journal-manager-lifecycle.d.ts.map +0 -1
  396. package/dist/journal-manager-lifecycle.js +0 -2
  397. package/dist/journal-manager-lifecycle.js.map +0 -1
  398. package/dist/journal-manager.d.ts +0 -99
  399. package/dist/journal-manager.d.ts.map +0 -1
  400. package/dist/journal-manager.js +0 -559
  401. package/dist/journal-manager.js.map +0 -1
  402. package/dist/journal-prepared-operation.d.ts +0 -53
  403. package/dist/journal-prepared-operation.d.ts.map +0 -1
  404. package/dist/journal-prepared-operation.js +0 -158
  405. package/dist/journal-prepared-operation.js.map +0 -1
  406. package/dist/journal-projection-slot.d.ts +0 -28
  407. package/dist/journal-projection-slot.d.ts.map +0 -1
  408. package/dist/journal-projection-slot.js +0 -71
  409. package/dist/journal-projection-slot.js.map +0 -1
  410. package/dist/journal-projection.d.ts +0 -13
  411. package/dist/journal-projection.d.ts.map +0 -1
  412. package/dist/journal-projection.js +0 -2
  413. package/dist/journal-projection.js.map +0 -1
  414. package/dist/partition-accounts.d.ts +0 -27
  415. package/dist/partition-accounts.d.ts.map +0 -1
  416. package/dist/partition-accounts.js +0 -21
  417. package/dist/partition-accounts.js.map +0 -1
  418. package/dist/project-partition-preparation.d.ts +0 -87
  419. package/dist/project-partition-preparation.d.ts.map +0 -1
  420. package/dist/project-partition-preparation.js +0 -273
  421. package/dist/project-partition-preparation.js.map +0 -1
  422. package/dist/project-partitions.d.ts +0 -214
  423. package/dist/project-partitions.d.ts.map +0 -1
  424. package/dist/project-partitions.js +0 -486
  425. package/dist/project-partitions.js.map +0 -1
  426. package/dist/project-remove.d.ts +0 -11
  427. package/dist/project-remove.d.ts.map +0 -1
  428. package/dist/project-remove.js +0 -65
  429. package/dist/project-remove.js.map +0 -1
  430. package/dist/project-thread-listing.d.ts +0 -14
  431. package/dist/project-thread-listing.d.ts.map +0 -1
  432. package/dist/project-thread-listing.js +0 -37
  433. package/dist/project-thread-listing.js.map +0 -1
  434. package/dist/quota-projection.d.ts +0 -11
  435. package/dist/quota-projection.d.ts.map +0 -1
  436. package/dist/quota-projection.js +0 -10
  437. package/dist/quota-projection.js.map +0 -1
  438. package/dist/resource-store.d.ts +0 -39
  439. package/dist/resource-store.d.ts.map +0 -1
  440. package/dist/resource-store.js +0 -464
  441. package/dist/resource-store.js.map +0 -1
  442. package/dist/run-event-terminal-index.d.ts +0 -13
  443. package/dist/run-event-terminal-index.d.ts.map +0 -1
  444. package/dist/run-event-terminal-index.js +0 -38
  445. package/dist/run-event-terminal-index.js.map +0 -1
  446. package/dist/run-events.d.ts +0 -17
  447. package/dist/run-events.d.ts.map +0 -1
  448. package/dist/run-events.js +0 -31
  449. package/dist/run-events.js.map +0 -1
  450. package/dist/thread-head-ping.d.ts +0 -35
  451. package/dist/thread-head-ping.d.ts.map +0 -1
  452. package/dist/thread-head-ping.js +0 -67
  453. package/dist/thread-head-ping.js.map +0 -1
@@ -1,78 +1,5 @@
1
1
  import { hashJson } from "@claudexor/util";
2
- const RECORDED = "operator.decision_recorded";
3
- /** Journal authority for the human decision that may unblock one exact run patch. */
4
- export class OperatorDecisionStore {
5
- journal;
6
- byRun = new Map();
7
- byKey = new Map();
8
- constructor(journal) {
9
- this.journal = journal;
10
- for (const entry of journal.records(0, [RECORDED])) {
11
- if (entry.type !== RECORDED)
12
- continue;
13
- const mutation = parseMutation(entry.payload);
14
- this.apply(mutation);
15
- }
16
- }
17
- get(runId) {
18
- const decision = this.byRun.get(runId);
19
- return decision ? structuredClone(decision) : null;
20
- }
21
- findByIdempotency(runId, idempotency) {
22
- const binding = decisionBinding(this.journal.options.partition, runId, idempotency);
23
- if (!binding)
24
- return null;
25
- const prior = this.byKey.get(binding.keyDigest);
26
- if (!prior)
27
- return null;
28
- if (prior.requestDigest !== binding.requestDigest)
29
- throw conflict();
30
- const existing = this.byRun.get(prior.runId);
31
- if (!existing)
32
- throw new Error("operator decision idempotency index is dangling");
33
- return structuredClone(existing);
34
- }
35
- record(input, idempotency) {
36
- const decision = parseDecision(input);
37
- const binding = decisionBinding(this.journal.options.partition, decision.runId, idempotency);
38
- if (binding) {
39
- const existing = this.findByIdempotency(decision.runId, idempotency);
40
- if (existing)
41
- return { record: existing, reused: true };
42
- }
43
- const mutation = { decision, ...(binding ? { idempotency: binding } : {}) };
44
- this.journal.append(RECORDED, mutation);
45
- this.apply(mutation);
46
- return { record: structuredClone(decision), reused: false };
47
- }
48
- validateProjection() {
49
- for (const decision of this.byRun.values())
50
- parseDecision(decision);
51
- for (const binding of this.byKey.values()) {
52
- if (!this.byRun.has(binding.runId))
53
- throw new Error("operator decision idempotency index is dangling");
54
- }
55
- }
56
- apply(mutation) {
57
- this.byRun.set(mutation.decision.runId, structuredClone(mutation.decision));
58
- if (mutation.idempotency) {
59
- const { keyDigest, requestDigest, runId } = mutation.idempotency;
60
- const prior = this.byKey.get(keyDigest);
61
- if (prior && (prior.requestDigest !== requestDigest || prior.runId !== runId)) {
62
- throw new Error("conflicting operator decision idempotency history");
63
- }
64
- this.byKey.set(keyDigest, { requestDigest, runId });
65
- }
66
- }
67
- }
68
- export function operatorDecisionProjection() {
69
- return {
70
- name: "operator-decisions",
71
- create: (journal) => new OperatorDecisionStore(journal),
72
- validate: (store) => store.validateProjection(),
73
- };
74
- }
75
- function parseDecision(value) {
2
+ export function parseOperatorDecision(value) {
76
3
  if (!value || typeof value !== "object" || Array.isArray(value)) {
77
4
  throw new Error("invalid operator decision record");
78
5
  }
@@ -90,14 +17,14 @@ function parseDecision(value) {
90
17
  }
91
18
  return structuredClone(input);
92
19
  }
93
- function parseMutation(value) {
20
+ export function parseDecisionMutation(value) {
94
21
  if (!value || typeof value !== "object" || Array.isArray(value)) {
95
22
  throw new Error("invalid operator decision mutation");
96
23
  }
97
24
  const input = value;
98
25
  // Accept the pre-idempotency v2 record shape while the release candidate is local-only.
99
26
  if (!("decision" in input))
100
- return { decision: parseDecision(value) };
27
+ return { decision: parseOperatorDecision(value) };
101
28
  const idempotency = input["idempotency"];
102
29
  if (idempotency !== undefined &&
103
30
  (!idempotency ||
@@ -109,11 +36,11 @@ function parseMutation(value) {
109
36
  throw new Error("invalid operator decision idempotency binding");
110
37
  }
111
38
  return {
112
- decision: parseDecision(input["decision"]),
39
+ decision: parseOperatorDecision(input["decision"]),
113
40
  ...(idempotency ? { idempotency: { ...idempotency } } : {}),
114
41
  };
115
42
  }
116
- function decisionBinding(partition, runId, input) {
43
+ export function operatorDecisionBinding(partition, runId, input) {
117
44
  if (!input)
118
45
  return undefined;
119
46
  if (!input.key || input.key.length > 256) {
@@ -133,12 +60,6 @@ function decisionBinding(partition, runId, input) {
133
60
  runId,
134
61
  };
135
62
  }
136
- function conflict() {
137
- return Object.assign(new Error("idempotency key was already used with a different request"), {
138
- code: "idempotency_conflict",
139
- status: 409,
140
- });
141
- }
142
63
  function stringArray(value) {
143
64
  return Array.isArray(value) && value.every((item) => typeof item === "string");
144
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"operator-decisions.js","sourceRoot":"","sources":["../src/operator-decisions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operator-decisions.js","sourceRoot":"","sources":["../src/operator-decisions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AA2B3C,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,KAAK,GAAG,KAAgC,CAAC;IAC/C,IACE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAC/B,CAAC,KAAK,CAAC,KAAK;QACZ,CAAC,KAAK,CAAC,MAAM,KAAK,aAAa,IAAI,KAAK,CAAC,MAAM,KAAK,sBAAsB,CAAC;QAC3E,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC;QAC9B,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC;QACjC,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;QACrC,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAChD,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;QACnC,CAAC,KAAK,CAAC,SAAS,EAChB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,eAAe,CAAC,KAA0C,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,KAAK,GAAG,KAAgC,CAAC;IAC/C,wFAAwF;IACxF,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;IAC9E,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IACzC,IACE,WAAW,KAAK,SAAS;QACzB,CAAC,CAAC,WAAW;YACX,OAAO,WAAW,KAAK,QAAQ;YAC/B,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAC1B,OAAQ,WAA+B,CAAC,SAAS,KAAK,QAAQ;YAC9D,OAAQ,WAA+B,CAAC,aAAa,KAAK,QAAQ;YAClE,OAAQ,WAA+B,CAAC,KAAK,KAAK,QAAQ,CAAC,EAC7D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAClD,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,GAAI,WAA+B,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,SAAiB,EACjB,KAAa,EACb,KAAoE;IAEpE,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACzC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+CAA+C,CAAC,EAAE;YAC9E,IAAI,EAAE,yBAAyB;YAC/B,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,SAAS,EAAE,QAAQ,CAAC;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS;YACT,SAAS,EAAE,cAAc;YACzB,GAAG,EAAE,KAAK,CAAC,GAAG;SACf,CAAC;QACF,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;QACtC,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;AACjF,CAAC"}
@@ -1,43 +1,44 @@
1
- import type { DurableJournal } from "@claudexor/journal";
2
- import { type Project } from "@claudexor/schema";
3
- /** Global-journal authority for the deliberately empty v2 project registry. */
4
- export declare class ProjectStore {
5
- private readonly journal;
6
- private readonly projects;
7
- private readonly projectIdByRoot;
8
- private readonly registrationByKey;
9
- constructor(journal: DurableJournal);
10
- list(): Project[];
11
- get(id: string): Project | undefined;
12
- findByRoot(root: string): Project | undefined;
13
- /** F3 nested-project disclosure: every registered project whose
14
- * root overlaps `id`'s root — `inside` when `id` lives under it, `contains`
15
- * when it lives under `id`. Pure projection over current roots (recomputed as
16
- * the registry changes), never a refusal — legit monorepos nest. */
17
- nestingFor(id: string): Array<{
18
- relation: "inside" | "contains";
19
- root: string;
20
- projectId: string;
21
- }>;
22
- register(input: {
23
- root: string;
24
- idempotencyKey: string;
25
- clientId: string;
26
- }): Project;
27
- relink(id: string, rootInput: string): Project;
28
- /** F2 ghost-cleanup: retire a registered project — used by the
29
- * daemon sweep to unregister ghosts whose root is inside the Claudexor
30
- * runtime tree or permanently gone. Removes the registry entry, its root
31
- * index, and any idempotency bindings pointing at it, in ONE locked write. */
32
- unregister(id: string): Project | undefined;
33
- validateProjection(): void;
34
- private replay;
35
- private commit;
36
- private apply;
1
+ import { type Project, type ProjectNesting } from "@claudexor/schema";
2
+ interface RegistrationBinding {
3
+ keyDigest: string;
4
+ requestDigest: string;
5
+ projectId: string;
37
6
  }
38
- export declare function projectProjection(): {
39
- name: string;
40
- create: (journal: DurableJournal) => ProjectStore;
41
- validate: (store: ProjectStore) => void;
42
- };
7
+ export interface ProjectMutation {
8
+ project: Project;
9
+ registration?: RegistrationBinding;
10
+ }
11
+ /** A registration's answer: the project, and whether THIS registration created
12
+ * it. Derived from journal order on replay, so a key replay after a restart
13
+ * still repeats its original answer. */
14
+ export interface RegisterProject {
15
+ root: string;
16
+ idempotencyKey: string;
17
+ clientId: string;
18
+ }
19
+ export interface ProjectRegistration {
20
+ project: Project;
21
+ created: boolean;
22
+ }
23
+ export declare function canonicalRoot(input: string): string;
24
+ /** F2 ghost-project guard: a project root inside the Claudexor
25
+ * runtime tree (`~/.claudexor`, esp. the `projects/<digest>/workspaces/`
26
+ * envelope worktrees) is daemon runtime state, never a user project — refuse it at
27
+ * registration/relink with a typed error so an envelope cwd can never become a
28
+ * durable ghost whose root later vanishes. */
29
+ export declare function assertNotClaudexorOwned(root: string): void;
30
+ /**
31
+ * Every project's nesting relations in one pass. A root can only lie inside
32
+ * its own ancestors, so each root looks up just its ancestor chain in an index
33
+ * of resolved roots (the same normalization `relative` applies, case-folded
34
+ * where the platform's paths are) instead of testing every other project:
35
+ * O(projects × path depth) predicate tests plus sorting each project's relations
36
+ * (Σ Kᵢ log Kᵢ); only a deep chain of nested roots makes the OUTPUT itself quadratic.
37
+ * Each candidate pair is still decided by `pathStrictlyInside` (`inside`), and
38
+ * ties keep the iteration order, so the answer equals per-project `nestingFor`.
39
+ */
40
+ export declare function projectNesting(projects: readonly Project[], inside?: (child: string, parent: string) => boolean): Map<string, ProjectNesting[]>;
41
+ export declare function parseMutation(value: unknown): ProjectMutation;
42
+ export declare function validateKey(key: string): void;
43
+ export {};
43
44
  //# sourceMappingURL=projects.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../src/projects.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAA4C,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAkB3F,+EAA+E;AAC/E,qBAAa,YAAY;IAQX,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAG9B;IAEJ,YAA6B,OAAO,EAAE,cAAc,EAEnD;IAED,IAAI,IAAI,OAAO,EAAE,CAEhB;IAED,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEnC;IAED,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAG5C;IAED;;;wEAGoE;IACpE,UAAU,CACR,EAAE,EAAE,MAAM,GACT,KAAK,CAAC;QAAE,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAa7E;IAED,QAAQ,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAmCnF;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAgB7C;IAED;;;kFAG8E;IAC9E,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAK1C;IAED,kBAAkB,IAAI,IAAI,CAUzB;IAED,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,KAAK;CA+Bd;AAED,wBAAgB,iBAAiB;IAE7B,IAAI;IACJ,MAAM,YAAY,cAAc;IAChC,QAAQ,UAAU,YAAY;EAEjC"}
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../src/projects.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGhG,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED;;wCAEwC;AACxC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAanD;AAED;;;;8CAI8C;AAC9C,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAS1D;AASD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,MAAM,GAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAA4B,GACtE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CA6B/B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAmB7D;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAO7C"}
package/dist/projects.js CHANGED
@@ -1,179 +1,8 @@
1
1
  import { lstatSync, realpathSync } from "node:fs";
2
- import { isAbsolute, relative } from "node:path";
3
- import { Project as ProjectSchema, SCHEMA_VERSION } from "@claudexor/schema";
4
- import { hashJson, isClaudexorOwnedRuntimePath, newId, nowIso } from "@claudexor/util";
5
- const REGISTERED = "project.registered";
6
- const RELINKED = "project.relinked";
7
- const UNREGISTERED = "project.unregistered";
8
- /** Global-journal authority for the deliberately empty v2 project registry. */
9
- export class ProjectStore {
10
- journal;
11
- projects = new Map();
12
- projectIdByRoot = new Map();
13
- registrationByKey = new Map();
14
- constructor(journal) {
15
- this.journal = journal;
16
- this.replay();
17
- }
18
- list() {
19
- return [...this.projects.values()].sort((a, b) => a.created_at.localeCompare(b.created_at));
20
- }
21
- get(id) {
22
- return this.projects.get(id);
23
- }
24
- findByRoot(root) {
25
- const id = this.projectIdByRoot.get(canonicalRoot(root));
26
- return id ? this.projects.get(id) : undefined;
27
- }
28
- /** F3 nested-project disclosure: every registered project whose
29
- * root overlaps `id`'s root — `inside` when `id` lives under it, `contains`
30
- * when it lives under `id`. Pure projection over current roots (recomputed as
31
- * the registry changes), never a refusal — legit monorepos nest. */
32
- nestingFor(id) {
33
- const self = this.projects.get(id);
34
- if (!self)
35
- return [];
36
- const relations = [];
37
- for (const other of this.projects.values()) {
38
- if (other.id === id)
39
- continue;
40
- if (pathStrictlyInside(self.root, other.root))
41
- relations.push({ relation: "inside", root: other.root, projectId: other.id });
42
- else if (pathStrictlyInside(other.root, self.root))
43
- relations.push({ relation: "contains", root: other.root, projectId: other.id });
44
- }
45
- return relations.sort((a, b) => a.root.localeCompare(b.root));
46
- }
47
- register(input) {
48
- validateKey(input.idempotencyKey);
49
- const root = canonicalRoot(input.root);
50
- assertNotClaudexorOwned(root);
51
- const keyDigest = hashJson({
52
- client: input.clientId,
53
- partition: "global",
54
- operation: "project.register",
55
- key: input.idempotencyKey,
56
- });
57
- const requestDigest = hashJson({ root });
58
- const prior = this.registrationByKey.get(keyDigest);
59
- if (prior) {
60
- if (prior.requestDigest !== requestDigest)
61
- throw conflict();
62
- const project = this.projects.get(prior.projectId);
63
- if (!project)
64
- throw new Error("project registration points to a missing project");
65
- return project;
66
- }
67
- const existingId = this.projectIdByRoot.get(root);
68
- const existing = existingId ? this.projects.get(existingId) : undefined;
69
- const now = nowIso();
70
- const project = existing ??
71
- ProjectSchema.parse({
72
- schema_version: SCHEMA_VERSION,
73
- id: newId("prj"),
74
- root,
75
- created_at: now,
76
- updated_at: now,
77
- });
78
- this.commit(REGISTERED, {
79
- project,
80
- registration: { keyDigest, requestDigest, projectId: project.id },
81
- });
82
- return project;
83
- }
84
- relink(id, rootInput) {
85
- const current = this.projects.get(id);
86
- if (!current)
87
- throw Object.assign(new Error(`no such project: ${id}`), { status: 404 });
88
- const root = canonicalRoot(rootInput);
89
- assertNotClaudexorOwned(root);
90
- const owner = this.projectIdByRoot.get(root);
91
- if (owner && owner !== id) {
92
- throw Object.assign(new Error(`project root is already registered to ${owner}`), {
93
- code: "project_root_conflict",
94
- status: 409,
95
- });
96
- }
97
- if (root === current.root)
98
- return current;
99
- const project = ProjectSchema.parse({ ...current, root, updated_at: nowIso() });
100
- this.commit(RELINKED, { project });
101
- return project;
102
- }
103
- /** F2 ghost-cleanup: retire a registered project — used by the
104
- * daemon sweep to unregister ghosts whose root is inside the Claudexor
105
- * runtime tree or permanently gone. Removes the registry entry, its root
106
- * index, and any idempotency bindings pointing at it, in ONE locked write. */
107
- unregister(id) {
108
- const project = this.projects.get(id);
109
- if (!project)
110
- return undefined;
111
- this.commit(UNREGISTERED, { project });
112
- return project;
113
- }
114
- validateProjection() {
115
- for (const project of this.projects.values())
116
- ProjectSchema.parse(project);
117
- if (this.projectIdByRoot.size !== this.projects.size) {
118
- throw new Error("project registry contains duplicate roots");
119
- }
120
- for (const binding of this.registrationByKey.values()) {
121
- if (!this.projects.has(binding.projectId)) {
122
- throw new Error("project registration idempotency index is dangling");
123
- }
124
- }
125
- }
126
- replay() {
127
- for (const record of this.journal.records(0, [REGISTERED, RELINKED, UNREGISTERED])) {
128
- if (record.type !== REGISTERED && record.type !== RELINKED && record.type !== UNREGISTERED)
129
- continue;
130
- this.apply(record.type, parseMutation(record.payload));
131
- }
132
- this.validateProjection();
133
- }
134
- commit(type, mutation) {
135
- const parsed = parseMutation(mutation);
136
- this.journal.append(type, parsed);
137
- this.apply(type, parsed);
138
- }
139
- apply(type, mutation) {
140
- if (type === UNREGISTERED) {
141
- this.projects.delete(mutation.project.id);
142
- if (this.projectIdByRoot.get(mutation.project.root) === mutation.project.id)
143
- this.projectIdByRoot.delete(mutation.project.root);
144
- for (const [keyDigest, binding] of this.registrationByKey) {
145
- if (binding.projectId === mutation.project.id)
146
- this.registrationByKey.delete(keyDigest);
147
- }
148
- return;
149
- }
150
- const previous = this.projects.get(mutation.project.id);
151
- if (previous && previous.root !== mutation.project.root)
152
- this.projectIdByRoot.delete(previous.root);
153
- const rootOwner = this.projectIdByRoot.get(mutation.project.root);
154
- if (rootOwner && rootOwner !== mutation.project.id) {
155
- throw new Error("conflicting project root history");
156
- }
157
- this.projects.set(mutation.project.id, mutation.project);
158
- this.projectIdByRoot.set(mutation.project.root, mutation.project.id);
159
- if (mutation.registration) {
160
- const { keyDigest, requestDigest, projectId } = mutation.registration;
161
- const prior = this.registrationByKey.get(keyDigest);
162
- if (prior && (prior.requestDigest !== requestDigest || prior.projectId !== projectId)) {
163
- throw new Error("conflicting project registration history");
164
- }
165
- this.registrationByKey.set(keyDigest, { requestDigest, projectId });
166
- }
167
- }
168
- }
169
- export function projectProjection() {
170
- return {
171
- name: "projects",
172
- create: (journal) => new ProjectStore(journal),
173
- validate: (store) => store.validateProjection(),
174
- };
175
- }
176
- function canonicalRoot(input) {
2
+ import { dirname, isAbsolute, relative, resolve } from "node:path";
3
+ import { Project as ProjectSchema } from "@claudexor/schema";
4
+ import { isClaudexorOwnedRuntimePath } from "@claudexor/util";
5
+ export function canonicalRoot(input) {
177
6
  if (!isAbsolute(input))
178
7
  throw Object.assign(new Error("project root must be absolute"), { status: 400 });
179
8
  let root;
@@ -193,7 +22,7 @@ function canonicalRoot(input) {
193
22
  * envelope worktrees) is daemon runtime state, never a user project — refuse it at
194
23
  * registration/relink with a typed error so an envelope cwd can never become a
195
24
  * durable ghost whose root later vanishes. */
196
- function assertNotClaudexorOwned(root) {
25
+ export function assertNotClaudexorOwned(root) {
197
26
  if (isClaudexorOwnedRuntimePath(root)) {
198
27
  throw Object.assign(new Error(`project root is inside the Claudexor runtime tree and cannot be registered as a project: ${root}`), { code: "claudexor_owned_root", status: 400 });
199
28
  }
@@ -204,7 +33,46 @@ function pathStrictlyInside(child, parent) {
204
33
  const rel = relative(parent, child);
205
34
  return rel !== "" && !rel.startsWith("..") && !isAbsolute(rel);
206
35
  }
207
- function parseMutation(value) {
36
+ /**
37
+ * Every project's nesting relations in one pass. A root can only lie inside
38
+ * its own ancestors, so each root looks up just its ancestor chain in an index
39
+ * of resolved roots (the same normalization `relative` applies, case-folded
40
+ * where the platform's paths are) instead of testing every other project:
41
+ * O(projects × path depth) predicate tests plus sorting each project's relations
42
+ * (Σ Kᵢ log Kᵢ); only a deep chain of nested roots makes the OUTPUT itself quadratic.
43
+ * Each candidate pair is still decided by `pathStrictlyInside` (`inside`), and
44
+ * ties keep the iteration order, so the answer equals per-project `nestingFor`.
45
+ */
46
+ export function projectNesting(projects, inside = pathStrictlyInside) {
47
+ const key = (root) => process.platform === "win32" ? resolve(root).toLowerCase() : resolve(root);
48
+ const order = new Map(projects.map((project, index) => [project.id, index]));
49
+ const byRoot = new Map();
50
+ for (const project of projects) {
51
+ const owners = byRoot.get(key(project.root));
52
+ if (owners)
53
+ owners.push(project);
54
+ else
55
+ byRoot.set(key(project.root), [project]);
56
+ }
57
+ const relations = new Map(projects.map((project) => [project.id, []]));
58
+ const add = (to, relation, other) => relations.get(to.id).push({ relation, root: other.root, projectId: other.id });
59
+ for (const child of projects) {
60
+ let dir = resolve(child.root);
61
+ for (let parent = dirname(dir); parent !== dir; dir = parent, parent = dirname(dir)) {
62
+ for (const owner of byRoot.get(key(parent)) ?? []) {
63
+ if (owner.id === child.id || !inside(child.root, owner.root))
64
+ continue;
65
+ add(child, "inside", owner);
66
+ add(owner, "contains", child);
67
+ }
68
+ }
69
+ }
70
+ for (const list of relations.values()) {
71
+ list.sort((a, b) => a.root.localeCompare(b.root) || order.get(a.projectId) - order.get(b.projectId));
72
+ }
73
+ return relations;
74
+ }
75
+ export function parseMutation(value) {
208
76
  if (!value || typeof value !== "object" || Array.isArray(value)) {
209
77
  throw new Error("invalid project mutation");
210
78
  }
@@ -222,7 +90,7 @@ function parseMutation(value) {
222
90
  ...(registration ? { registration: { ...registration } } : {}),
223
91
  };
224
92
  }
225
- function validateKey(key) {
93
+ export function validateKey(key) {
226
94
  if (!key || key.length > 256) {
227
95
  throw Object.assign(new Error("Idempotency-Key must contain 1-256 characters"), {
228
96
  code: "invalid_idempotency_key",
@@ -230,10 +98,4 @@ function validateKey(key) {
230
98
  });
231
99
  }
232
100
  }
233
- function conflict() {
234
- return Object.assign(new Error("idempotency key was already used with a different request"), {
235
- code: "idempotency_conflict",
236
- status: 409,
237
- });
238
- }
239
101
  //# sourceMappingURL=projects.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../src/projects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../src/projects.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { DurableJournal } from "@claudexor/journal";
1
+ import type { EventLedger } from "./store-contracts.js";
2
2
  import { QuotaWindowSupersession, type QuotaSnapshot, type AccountResourceObservation, type AccountTarget } from "@claudexor/schema";
3
3
  export declare const RESOURCES_INVALIDATED = "quota.resources.invalidated";
4
4
  export declare const RESOURCES_OBSERVED = "quota.resources.observed";
@@ -6,7 +6,7 @@ export declare const WINDOW_SUPERSEDED = "quota.window.superseded";
6
6
  export declare const REMOVED = "quota.subject.removed";
7
7
  export declare const PROJECTION_UPDATED = "quota.projection.updated";
8
8
  /** Replay is part of QuotaRegistry's existing journal projection, not another store. */
9
- export declare function replayQuotaJournal(journal: DurableJournal, owner: {
9
+ export declare function replayQuotaJournal(journal: EventLedger, owner: {
10
10
  apply: (snapshot: QuotaSnapshot) => void;
11
11
  applyWindowSupersession: (value: QuotaWindowSupersession) => void;
12
12
  applyResources: (value: AccountResourceObservation) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"quota-registry-replay.d.ts","sourceRoot":"","sources":["../src/quota-registry-replay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAKL,uBAAuB,EACvB,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,qBAAqB,gCAAgC,CAAC;AACnE,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAG7D,eAAO,MAAM,iBAAiB,4BAA4B,CAAC;AAE3D,eAAO,MAAM,OAAO,0BAA0B,CAAC;AAC/C,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAY7D,wFAAwF;AACxF,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE;IACL,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACzC,uBAAuB,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAClE,cAAc,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAC5D,mBAAmB,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1E;;;EA8FF"}
1
+ {"version":3,"file":"quota-registry-replay.d.ts","sourceRoot":"","sources":["../src/quota-registry-replay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAKL,uBAAuB,EACvB,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,qBAAqB,gCAAgC,CAAC;AACnE,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAG7D,eAAO,MAAM,iBAAiB,4BAA4B,CAAC;AAE3D,eAAO,MAAM,OAAO,0BAA0B,CAAC;AAC/C,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAY7D,wFAAwF;AACxF,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE;IACL,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACzC,uBAAuB,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAClE,cAAc,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAC5D,mBAAmB,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1E;;;EA8FF"}
@@ -1 +1 @@
1
- {"version":3,"file":"quota-registry-replay.js","sourceRoot":"","sources":["../src/quota-registry-replay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,aAAa,IAAI,mBAAmB,EACpC,sBAAsB,EACtB,uBAAuB,GAIxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,6BAA6B,CAAC;AACnE,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAC7D,MAAM,QAAQ,GAAG,yBAAyB,CAAC;AAC3C,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAChD,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAC3D,MAAM,eAAe,GAAG,gCAAgC,CAAC;AACzD,MAAM,CAAC,MAAM,OAAO,GAAG,uBAAuB,CAAC;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAC7D,MAAM,YAAY,GAAG;IACnB,kBAAkB;IAClB,qBAAqB;IACrB,eAAe;IACf,QAAQ;IACR,eAAe;IACf,iBAAiB;IACjB,OAAO;IACP,kBAAkB;CACnB,CAAC;AAEF,wFAAwF;AACxF,MAAM,UAAU,kBAAkB,CAChC,OAAuB,EACvB,KAMC;IAED,IAAI,mBAAmB,GAAkB,IAAI,CAAC;IAC9C,IAAI,sBAAsB,GAAG,KAAK,CAAC;IACnC,IAAI,aAAa,GAAsE,IAAI,CAAC;IAC5F,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;QACtD,gEAAgE;QAChE,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,GAAG,CAAC;YAAE,aAAa,GAAG,IAAI,CAAC;QAChF,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACpC,MAAM,OAAO,GACX,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;gBAClC,MAAM,CAAC,OAAO,KAAK,IAAI;gBACvB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC5B,CAAC,CAAE,MAAM,CAAC,OAIN;gBACJ,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACjE,aAAa;gBACX,OAAO,CAAC,OAAO,KAAK,CAAC,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO;oBAChF,CAAC,CAAC;wBACE,GAAG,EAAE,MAAM,CAAC,GAAG;wBACf,QAAQ,EAAE,OAAO,CAAC,SAAS;wBAC3B,QAAQ,EAAE,QAAQ,CAAC,IAAI;qBACxB;oBACH,CAAC,CAAC,IAAI,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,eAAe,GACnB,aAAa,KAAK,IAAI;gBACtB,aAAa,CAAC,QAAQ,KAAK,QAAQ;gBACnC,QAAQ,CAAC,kBAAkB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,KAAK,QAAQ;gBAC/D,CAAC,CAAC,aAAa,CAAC,QAAQ;gBACxB,CAAC,CAAC,IAAI,CAAC;YACX,KAAK,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC;YACrC,aAAa,GAAG,IAAI,CAAC;YACrB,sBAAsB,GAAG,IAAI,CAAC;YAC9B,SAAS;QACX,CAAC;QACD,kEAAkE;QAClE,kEAAkE;QAClE,uDAAuD;QACvD,aAAa,GAAG,IAAI,CAAC;QACrB,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChE,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YAC3D,sBAAsB,GAAG,IAAI,CAAC;YAC9B,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACvC,MAAM,EAAE,WAAW,EAAE,GAAG,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACvE,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAClC,sBAAsB,GAAG,IAAI,CAAC;YAC9B,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACpC,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;YACnE,sBAAsB,GAAG,IAAI,CAAC;YAC9B,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACtC,KAAK,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7E,sBAAsB,GAAG,IAAI,CAAC;YAC9B,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,OAItB,CAAC;YACF,sEAAsE;YACtE,oDAAoD;YACpD,IACE,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;gBACnC,CAAC,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,EACvE,CAAC;gBACD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,kBAAkB,KAAK,IAAI,CAAC,CAAC;YACzF,CAAC;YACD,sBAAsB,GAAG,IAAI,CAAC;QAChC,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,MAAM,CAAC,OAA6C,CAAC;YACrE,mBAAmB;gBACjB,OAAO,OAAO,CAAC,oBAAoB,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;YACzF,sBAAsB,GAAG,KAAK,CAAC;QACjC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"quota-registry-replay.js","sourceRoot":"","sources":["../src/quota-registry-replay.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * keying, freshness aging, and expired scoped-cooldown pruning. No registry
5
5
  * state lives here.
6
6
  */
7
- import { type CredentialRoute, type HarnessEvent, type QuotaConstraint, type QuotaSnapshot, type QuotaSource } from "@claudexor/schema";
7
+ import { type CredentialRoute, type HarnessEvent, type QuotaConstraint, type ControlQuotaFreshnessSnapshot, type QuotaSnapshot, type QuotaSource } from "@claudexor/schema";
8
8
  /** The reactive vendor-limit cooldown snapshot for a harness event: the
9
9
  * existing subject's constraints minus the superseded/expired cooldown, plus
10
10
  * the new bounded cooldown window. Pure: the registry finds `existing`. */
@@ -20,6 +20,9 @@ export declare function reactiveCooldownSnapshot(input: {
20
20
  * weekly cooldown/reset seen once) is kept and stale-marked: pruning it
21
21
  * would hide a live cap from both the footer and the router's ledger. */
22
22
  export declare function activeQuotaSnapshots(snapshots: readonly QuotaSnapshot[], now: number): QuotaSnapshot[];
23
+ /** Passive display projection. Apply the SAME aging rule to each singleton
24
+ * window using raw freshness, before aggregate aging can erase that evidence. */
25
+ export declare function activeQuotaSnapshotsWithConstraintFreshness(snapshots: readonly QuotaSnapshot[], now: number): ControlQuotaFreshnessSnapshot[];
23
26
  export declare const QUOTA_FRESHNESS_TTL_MS: number;
24
27
  /** Same quota EVIDENCE: everything but the observation time (a freshness flip
25
28
  * is evidence). A poll that only re-observed unchanged evidence keeps the fresh
@@ -1 +1 @@
1
- {"version":3,"file":"quota-registry-support.d.ts","sourceRoot":"","sources":["../src/quota-registry-support.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EASL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAG3B;;2EAE2E;AAC3E,wBAAgB,wBAAwB,CACtC,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,eAAe,CAAC;IACjC,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;CACrC,EACD,GAAG,EAAE,IAAI,GACR,aAAa,CAyCf;AAMD;;;yEAGyE;AACzE,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,GAAG,EAAE,MAAM,GACV,aAAa,EAAE,CAgBjB;AAED,eAAO,MAAM,sBAAsB,QAAa,CAAC;AAEjD;;sDAEsD;AACtD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,OAAO,CAE7E;AAED;;iFAEiF;AACjF,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,aAAa,EAC1B,GAAG,EAAE,IAAI,GACR,aAAa,CAqCf;AAyDD;uEACuE;AACvE,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,GAAG,EAAE,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBV;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,GACtB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAyB3C;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAE3D;AAED;;6DAE6D;AAC7D,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa,CAoBzE;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,CAM3E;AAED;;;;oDAIoD;AACpD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAQlE;AAED;;+EAE+E;AAC/E,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzF;AAOD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC/B,UAAU,EAAE,eAAe,EAC3B,GAAG,EAAE,MAAM,GACV,OAAO,CAQT;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,MAAM,GACV,aAAa,GAAG,IAAI,CAMtB"}
1
+ {"version":3,"file":"quota-registry-support.d.ts","sourceRoot":"","sources":["../src/quota-registry-support.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EASL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,6BAA6B,EAClC,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAG3B;;2EAE2E;AAC3E,wBAAgB,wBAAwB,CACtC,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,eAAe,CAAC;IACjC,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;CACrC,EACD,GAAG,EAAE,IAAI,GACR,aAAa,CAyCf;AAMD;;;yEAGyE;AACzE,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,GAAG,EAAE,MAAM,GACV,aAAa,EAAE,CAEjB;AAED;iFACiF;AACjF,wBAAgB,2CAA2C,CACzD,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,GAAG,EAAE,MAAM,GACV,6BAA6B,EAAE,CAQjC;AAsBD,eAAO,MAAM,sBAAsB,QAAa,CAAC;AAEjD;;sDAEsD;AACtD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,OAAO,CAE7E;AAED;;iFAEiF;AACjF,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,aAAa,EAC1B,GAAG,EAAE,IAAI,GACR,aAAa,CAqCf;AAyDD;uEACuE;AACvE,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,GAAG,EAAE,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBV;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,GACtB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAyB3C;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAE3D;AAED;;6DAE6D;AAC7D,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa,CAoBzE;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,CAM3E;AAED;;;;oDAIoD;AACpD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAQlE;AAED;;+EAE+E;AAC/E,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzF;AAOD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC/B,UAAU,EAAE,eAAe,EAC3B,GAAG,EAAE,MAAM,GACV,OAAO,CAQT;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,MAAM,GACV,aAAa,GAAG,IAAI,CAMtB"}